diff --git a/HartreeFock.ipynb b/HartreeFock.ipynb index aabaa85..dd6ce2d 100644 --- a/HartreeFock.ipynb +++ b/HartreeFock.ipynb @@ -767,22 +767,33 @@ "let i = 1;;\n", "let j = 2;;\n", "\n", + "let integral_general g =\n", "Array.map (fun a ->\n", " let v = \n", " Array.map (fun b ->\n", " let u = \n", " Array.map (fun e ->\n", " let t = Array.map (fun f ->\n", - " m_C.{f,j} *. ERI.get_phys ee_ints a b e f\n", + " (g a b e f i j) *. ERI.get_phys ee_ints a b e f\n", " ) (Util.array_range 1 n_ao)\n", - " in m_C.{e,i} *. sum t\n", + " in sum t\n", " ) (Util.array_range 1 n_ao)\n", - " in m_C.{b,j} *. sum u\n", + " in sum u\n", " ) (Util.array_range 1 n_ao)\n", - " in m_C.{a,i} *. sum v\n", + " in sum v\n", ") (Util.array_range 1 n_ao)\n", "|> sum\n", - "\n" + "\n", + "let func_a = \n", + " integral_general (fun a b e f i j ->\n", + " m_C.{a,i} *. m_C.{b,i} *. m_C.{e,i} *. m_C.{f,j}\n", + " )\n", + "\n", + "\n", + "let func_b = \n", + " integral_general (fun a b e f i j ->\n", + " m_C.{a,i} *. m_C.{b,i} *. m_C.{e,i} *. m_C.{f,j}\n", + " )\n" ] }, { @@ -791,8 +802,9 @@ "source": [ "$\\langle \\phi_i \\phi_j | \\phi_i \\phi_j \\rangle =\n", "\\sum_a c_{ai} \\langle \\chi_a \\phi_j | \\phi_i \\phi_j \\rangle =\n", - "\\sum_a \\sum_b c_{ai} c_{bj} \\langle \\chi_a \\chi_b | \\phi_i \\phi_j \\rangle$\n", - "$\\sum_a \\sum_b \\sum_e \\sum_f \\left(c_{ai} \\left(c_{bj} \\left(c_{ei} \\left(c_{fj} \\langle \\chi_a \\chi_b | \\chi_e \\chi_f \\rangle \\right)\\right)\\right)\\right) $" + "\\sum_a \\sum_b c_{ai} c_{bj} \\langle \\chi_a \\chi_b | \\phi_i \\phi_j \\rangle =$\n", + "$\\left(\\sum_a c_{ai} \\sum_b \\left(c_{bj} \\sum_e \\left(c_{ei} \\sum_f \\left(c_{fj} \\langle \\chi_a \\chi_b | \\chi_e \\chi_f \\rangle \\right)\\right)\\right)\\right) =$\n", + "$\\sum_a \\sum_b \\sum_e \\sum_f \\left( c_{ai} c_{bj} c_{ei} c_{fj} \\langle \\chi_a \\chi_b | \\chi_e \\chi_f \\rangle \\right) $" ] }, {