diff --git a/Notebooks/F12_matrix.ipynb b/Notebooks/F12_matrix.ipynb index adab92c..903c6ea 100644 --- a/Notebooks/F12_matrix.ipynb +++ b/Notebooks/F12_matrix.ipynb @@ -827,7 +827,7 @@ " let int_value = \n", " integral_value ki kj\n", " in\n", - "(* Printf.printf \"%d %d %e %e\\n%!\" i j det_value int_value; *)\n", + "(* Printf.printf \"%d %d %e %e\\n%!\" i j det_value int_value; *)\n", " (i,j,det_value,int_value)\n", " end\n", " ) det_list\n", @@ -842,7 +842,7 @@ " else\n", " let i, j, d, v = result.(k) in\n", " let e = abs_float (d -. v) in\n", - " if e > emax then\n", + " if e >= emax then\n", " aux (k-1) i j e d v\n", " else\n", " aux (k-1) imax jmax emax dmax vmax\n", @@ -881,6 +881,7 @@ " done;\n", " result\n", "\n", + "\n", "let array_4_init d1 d2 d3 d4 f =\n", " let result = \n", " Bigarray.(Genarray.create Float64 fortran_layout) [| d1;d2;d3;d4 |]\n", @@ -896,6 +897,24 @@ " done;\n", " result\n", "\n", + "\n", + "let array_5_init d1 d2 d3 d4 d5 f =\n", + " let result = \n", + " Bigarray.(Genarray.create Float64 fortran_layout) [| d1;d2;d3;d4;d5 |]\n", + " in\n", + " for m=1 to d5 do\n", + " for l=1 to d4 do\n", + " for k=1 to d3 do\n", + " for j=1 to d2 do\n", + " for i=1 to d1 do\n", + " result.{i,j,k,l,m} <- f i j k l m\n", + " done\n", + " done\n", + " done\n", + " done\n", + " done;\n", + " result\n", + "\n", "(* ----- *)" ] }, @@ -919,7 +938,7 @@ "metadata": {}, "outputs": [], "source": [ - "png_image \"0_1_11.png\"" + "let _ = png_image \"0_1_11.png\"" ] }, { @@ -1099,7 +1118,7 @@ "metadata": {}, "outputs": [], "source": [ - "png_image \"0_1_22.png\"" + "let _ = png_image \"0_1_22.png\"" ] }, { @@ -1256,7 +1275,7 @@ }, "outputs": [], "source": [ - "png_image \"0_2_22.png\"" + "let _ = png_image \"0_2_22.png\"" ] }, { @@ -1371,7 +1390,7 @@ "metadata": {}, "outputs": [], "source": [ - "png_image \"1_1_11.png\"" + "let _ = png_image \"1_1_11.png\"" ] }, { @@ -1560,7 +1579,7 @@ "metadata": {}, "outputs": [], "source": [ - "png_image \"1_1_12.png\"" + "let _ = png_image \"1_1_12.png\"" ] }, { @@ -1647,6 +1666,109 @@ "let _ = check 0 integral_value 1 1 1 2" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "let m_1112_1H_2Fa = \n", + " array_3_init mo_num mo_num mo_num (fun i j k ->\n", + " sum mos_cabs (fun a ->\n", + " h_one j a Spin.Alfa *. f_two a i j k Spin.Alfa Spin.Alfa ))\n", + "\n", + " \n", + "let m_1112_1H_2Fb = \n", + " array_3_init mo_num mo_num mo_num (fun i j k ->\n", + " sum mos_cabs (fun a ->\n", + " h_one j a Spin.Beta *. f_two a i j k Spin.Alfa Spin.Beta ))\n", + "\n", + "\n", + "let m_1112_2Ha_2Fa =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two j m a m Spin.Alfa Spin.Alfa *.\n", + " f_two a i j k Spin.Alfa Spin.Alfa \n", + " )\n", + " )\n", + "\n", + "\n", + "let m_1112_2Hb_2Fa =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two j m a m Spin.Alfa Spin.Beta *.\n", + " f_two a i j k Spin.Alfa Spin.Alfa \n", + " )\n", + " )\n", + "\n", + "let m_1112_2Ha_2Fb =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two j m a m Spin.Alfa Spin.Alfa *.\n", + " f_two a i j k Spin.Alfa Spin.Beta \n", + " )\n", + " )\n", + "\n", + "\n", + "let m_1112_2Hb_2Fb =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two j m a m Spin.Alfa Spin.Beta *.\n", + " f_two a i j k Spin.Alfa Spin.Beta \n", + " )\n", + " )\n", + "\n", + "\n", + "let integral_value ki kj = \n", + " let i, k, s, phase =\n", + " match Excitation.of_det ki kj with\n", + " | Excitation.(Single (phase, { hole ; particle ; spin })) ->\n", + " hole, particle, spin, phase\n", + " | _ -> assert false\n", + " in\n", + " \n", + " let mos_j, mos_j' =\n", + " let alfa = \n", + " let i = Spindeterminant.bitstring @@ Determinant.alfa ki in\n", + " let j = Spindeterminant.bitstring @@ Determinant.alfa kj in\n", + " Bitstring.to_list (Bitstring.logand i j)\n", + " in\n", + " let beta = \n", + " let i = Spindeterminant.bitstring @@ Determinant.beta ki in\n", + " let j = Spindeterminant.bitstring @@ Determinant.beta kj in\n", + " Bitstring.to_list (Bitstring.logand i j)\n", + " in\n", + " match s with\n", + " | Spin.Alfa -> alfa, beta\n", + " | Spin.Beta -> beta, alfa\n", + " in\n", + " \n", + " let mos_i, mos_i' =\n", + " match s with\n", + " | Spin.Alfa -> mos_a ki, mos_b ki\n", + " | Spin.Beta -> mos_b ki, mos_a ki\n", + " in\n", + " \n", + " let result = \n", + " sum mos_j (fun j -> \n", + " m_1112_1H_2Fa.{i,j,k} +. \n", + " sum mos_i (fun m -> m_1112_2Ha_2Fa.{i,j,k,m}) +.\n", + " sum mos_i' (fun m -> m_1112_2Hb_2Fa.{i,j,k,m})) +.\n", + " sum mos_j' (fun j ->\n", + " m_1112_1H_2Fb.{i,j,k} +. \n", + " sum mos_i (fun m -> m_1112_2Hb_2Fb.{i,j,k,m}) +.\n", + " sum mos_i' (fun m -> m_1112_2Ha_2Fb.{i,j,k,m}))\n", + " in\n", + " \n", + " match phase with\n", + " | Phase.Pos -> result\n", + " | Phase.Neg -> -. result\n", + " \n", + " \n", + "\n", + "let _ = check 0 integral_value 1 1 1 2" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -1662,7 +1784,7 @@ }, "outputs": [], "source": [ - "png_image \"1_1_21.png\"" + "let _ = png_image \"1_1_21.png\"" ] }, { @@ -1748,6 +1870,109 @@ "let _ = check 0 integral_value 1 1 2 1" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "let m_1121_2Ha_1F = \n", + " array_3_init mo_num mo_num mo_num (fun i j k ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j k a Spin.Alfa Spin.Alfa *. f_one a j Spin.Alfa))\n", + "\n", + " \n", + "let m_1121_2Hb_1F = \n", + " array_3_init mo_num mo_num mo_num (fun i j k ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j k a Spin.Alfa Spin.Beta *. f_one a j Spin.Beta))\n", + "\n", + "\n", + "let m_1121_2Ha_2Fa =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j k a Spin.Alfa Spin.Alfa *.\n", + " f_two m a m j Spin.Alfa Spin.Alfa \n", + " )\n", + " )\n", + "\n", + "\n", + "let m_1121_2Hb_2Fa =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j k a Spin.Alfa Spin.Beta *.\n", + " f_two m a m j Spin.Alfa Spin.Alfa \n", + " )\n", + " )\n", + "\n", + "let m_1121_2Ha_2Fb =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j k a Spin.Alfa Spin.Alfa *.\n", + " f_two m a m j Spin.Alfa Spin.Beta \n", + " )\n", + " )\n", + "\n", + "\n", + "let m_1121_2Hb_2Fb =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j k a Spin.Alfa Spin.Beta *.\n", + " f_two m a m j Spin.Alfa Spin.Beta \n", + " )\n", + " )\n", + "\n", + "\n", + "let integral_value ki kj = \n", + " let i, k, s, phase =\n", + " match Excitation.of_det ki kj with\n", + " | Excitation.(Single (phase, { hole ; particle ; spin })) ->\n", + " hole, particle, spin, phase\n", + " | _ -> assert false\n", + " in\n", + " \n", + " let mos_j, mos_j' =\n", + " let alfa = \n", + " let i = Spindeterminant.bitstring @@ Determinant.alfa ki in\n", + " let j = Spindeterminant.bitstring @@ Determinant.alfa kj in\n", + " Bitstring.to_list (Bitstring.logand i j)\n", + " in\n", + " let beta = \n", + " let i = Spindeterminant.bitstring @@ Determinant.beta ki in\n", + " let j = Spindeterminant.bitstring @@ Determinant.beta kj in\n", + " Bitstring.to_list (Bitstring.logand i j)\n", + " in\n", + " match s with\n", + " | Spin.Alfa -> alfa, beta\n", + " | Spin.Beta -> beta, alfa\n", + " in\n", + " \n", + " let mos_i, mos_i' =\n", + " match s with\n", + " | Spin.Alfa -> mos_a kj, mos_b kj\n", + " | Spin.Beta -> mos_b kj, mos_a kj\n", + " in\n", + " \n", + " let result = \n", + " sum mos_j (fun j -> \n", + " m_1121_2Ha_1F.{i,j,k} +. \n", + " sum mos_i (fun m -> m_1121_2Ha_2Fa.{i,j,k,m}) +.\n", + " sum mos_i' (fun m -> m_1121_2Ha_2Fb.{i,j,k,m})) +.\n", + " sum mos_j' (fun j ->\n", + " m_1121_2Hb_1F.{i,j,k} +. \n", + " sum mos_i (fun m -> m_1121_2Hb_2Fb.{i,j,k,m}) +.\n", + " sum mos_i' (fun m -> m_1121_2Hb_2Fa.{i,j,k,m}))\n", + " in\n", + " \n", + " match phase with\n", + " | Phase.Pos -> result\n", + " | Phase.Neg -> -. result\n", + " \n", + " \n", + "\n", + "let _ = check 0 integral_value 1 1 2 1" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -1761,7 +1986,7 @@ "metadata": {}, "outputs": [], "source": [ - "png_image \"1_1_22.png\"" + "let _ = png_image \"1_1_22.png\"" ] }, { @@ -1774,9 +1999,10 @@ " \\hat{T}_{ij}^{ma} \\hat{T}_{ma}^{kj} - \n", " \\hat{T}_{lj}^{ka} \\hat{T}_{ia}^{lj} + \\\\\n", "\\sum_{\\bar{j}} \\sum_{\\bar{a}} \\sum_{m}\n", - " \\hat{T}_{i\\bar{j}}^{m\\bar{a}} \\hat{T}_{m\\bar{a}}^{k\\bar{j}} + \n", - " \\hat{T}_{i\\bar{j}}^{a\\bar{m}} \\hat{T}_{a\\bar{m}}^{k\\bar{j}} -\n", - " \\hat{T}_{l\\bar{j}}^{k\\bar{a}} \\hat{T}_{i\\bar{a}}^{l\\bar{j}}\n", + " \\hat{T}_{i\\bar{j}}^{m\\bar{a}} \\hat{T}_{m\\bar{a}}^{k\\bar{j}} - \n", + " \\hat{T}_{l\\bar{j}}^{k\\bar{a}} \\hat{T}_{i\\bar{a}}^{l\\bar{j}} +\n", + "\\sum_{\\bar{j}} \\sum_{a} \\sum_{\\bar{m}}\n", + " \\hat{T}_{i\\bar{j}}^{a\\bar{m}} \\hat{T}_{a\\bar{m}}^{k\\bar{j}} \n", "$\n", "\n", "$j,l$ : orbital indices of MOs occupied both in $|I\\rangle$ and $|J\\rangle$.\n", @@ -1786,16 +2012,16 @@ "$a$ : orbital indices of CABS MOs\n", "\n", "\\begin{align}\n", - "% \\sum_{a} \\sum_{j} \\sum_{m}\n", - "% \\langle i j || m a \\rangle \\left[ m a || k j \\right] + \n", - "% \\sum_{\\bar{a}} \\sum_{\\bar{j}} \\sum_{m} \n", - "% \\langle i \\bar{j} | m \\bar{a} \\rangle \\left[ m \\bar{a} | k \\bar{j} \\right] - \\\\\n", - "% \\sum_{a} \\sum_{j} \\sum_{l}\n", - "% \\langle l j || k a \\rangle \\left[ i a || l j \\right] - \n", - "% \\sum_{\\bar{a}} \\sum_{\\bar{j}} \\sum_{l} \n", - "% \\langle l \\bar{j} | k \\bar{a} \\rangle \\left[ i \\bar{a} | l \\bar{j} \\right] + \\\\\n", - "% \\sum_{a} \\sum_{\\bar{j}} \\sum_{\\bar{m}} \n", - "% \\langle i \\bar{j} | a \\bar{m} \\rangle \\left[ a \\bar{m} | k \\bar{j} \\right] \\\\\n", + " \\sum_{a} \\sum_{j} \\sum_{m}\n", + " \\langle i j || m a \\rangle \\left[ m a || k j \\right] - \\\\\n", + " \\sum_{a} \\sum_{j} \\sum_{l}\n", + " \\langle l j || k a \\rangle \\left[ i a || l j \\right] + \\\\\n", + " \\sum_{\\bar{a}} \\sum_{\\bar{j}} \\sum_{m}\n", + " \\langle i \\bar{j} | m \\bar{a} \\rangle \\left[ m \\bar{a} | k \\bar{j} \\right] + \\\\\n", + " \\sum_{\\bar{a}} \\sum_{\\bar{j}} \\sum_{l}\n", + " \\langle l \\bar{j} | k \\bar{a} \\rangle \\left[ i \\bar{a} | l \\bar{j} \\right] - \\\\\n", + " \\sum_{\\bar{a}} \\sum_{\\bar{j}} \\sum_{\\bar{m}}\n", + " \\langle i \\bar{j} | a \\bar{m} \\rangle \\left[ a \\bar{m} | k \\bar{j} \\right] \n", "\\end{align}" ] }, @@ -1807,6 +2033,47 @@ }, "outputs": [], "source": [ + "let m_1122_oa =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k l ->\n", + " sum mos_cabs (fun a ->\n", + " h_two l j k a Spin.Alfa Spin.Alfa *.\n", + " f_two i a l j Spin.Alfa Spin.Alfa \n", + " )\n", + " )\n", + "\n", + "let m_1122_va =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j m a Spin.Alfa Spin.Alfa *.\n", + " f_two m a k j Spin.Alfa Spin.Alfa \n", + " )\n", + " )\n", + "\n", + "let m_1122_o =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k l ->\n", + " sum mos_cabs (fun a ->\n", + " h_two l j k a Spin.Alfa Spin.Beta *.\n", + " f_two i a l j Spin.Alfa Spin.Beta \n", + " )\n", + " )\n", + "\n", + "let m_1122_v =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j m a Spin.Alfa Spin.Beta *.\n", + " f_two m a k j Spin.Alfa Spin.Beta \n", + " )\n", + " )\n", + "\n", + "let m_1122_v2 =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k m ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j a m Spin.Alfa Spin.Beta *.\n", + " f_two a m k j Spin.Alfa Spin.Beta \n", + " )\n", + " )\n", + "\n", + "\n", "let integral_value ki kj = \n", " let i, k, s, phase =\n", " match Excitation.of_det ki kj with\n", @@ -1853,32 +2120,26 @@ " in\n", "\n", " let result = \n", - " let s' = Spin.other s in\n", - " sum mos_cabs (fun a -> \n", " sum mos_j (fun j -> \n", " sum mos_virt (fun m -> \n", - " h_two i j m a s s *. f_two m a k j s s \n", - " ))) +.\n", - " sum mos_cabs (fun a -> \n", + " m_1122_va.{i,j,k,m}\n", + " )) +.\n", " sum mos_j' (fun j -> \n", " sum mos_virt (fun m -> \n", - " h_two i j m a s s' *. f_two m a k j s s' \n", - " ))) +.\n", - " sum mos_cabs (fun a -> \n", + " m_1122_v.{i,j,k,m}\n", + " )) +.\n", " sum mos_j' (fun j -> \n", " sum mos_virt' (fun m -> \n", - " h_two i j a m s s' *. f_two a m k j s s'\n", - " ))) -.\n", - " sum mos_cabs (fun a -> \n", + " m_1122_v2.{i,j,k,m}\n", + " )) -.\n", " sum mos_j (fun j -> \n", " sum mos_j (fun l -> if l = i then 0. else\n", - " h_two l j k a s s *. f_two i a l j s s \n", - " ))) -. \n", - " sum mos_cabs (fun a -> \n", + " m_1122_oa.{i,j,k,l}\n", + " )) -. \n", " sum mos_j' (fun j -> \n", " sum mos_j (fun l -> if l = i then 0. else\n", - " h_two l j k a s s' *. f_two i a l j s s'\n", - " ))) \n", + " m_1122_o.{i,j,k,l}\n", + " )) \n", " in\n", " match phase with\n", " | Phase.Pos -> result\n", @@ -1903,7 +2164,7 @@ "metadata": {}, "outputs": [], "source": [ - "png_image \"1_2_22.png\"" + "let _ = png_image \"1_2_22.png\"" ] }, { @@ -1973,11 +2234,79 @@ "let _ = check 0 integral_value 1 2 2 2" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "let m_1222a =\n", + " array_3_init mo_num mo_num mo_num (fun i j k ->\n", + " sum mos_cabs (fun a ->\n", + " sum mos_cabs (fun b -> if b > a then 0. else\n", + " h_two i j a b Spin.Alfa Spin.Alfa *.\n", + " f_two a b k j Spin.Alfa Spin.Alfa \n", + " )\n", + " )\n", + " )\n", + "\n", + "let m_1222 =\n", + " array_3_init mo_num mo_num mo_num (fun i j k ->\n", + " sum mos_cabs (fun a ->\n", + " sum mos_cabs (fun b ->\n", + " h_two i j a b Spin.Alfa Spin.Beta *.\n", + " f_two a b k j Spin.Alfa Spin.Beta \n", + " )\n", + " )\n", + " )\n", + " \n", + "\n", + "let integral_value ki kj = \n", + " let i, k, s, phase =\n", + " match Excitation.of_det ki kj with\n", + " | Excitation.(Single (phase, { hole ; particle ; spin })) ->\n", + " hole, particle, spin, phase\n", + " | _ -> assert false\n", + " in\n", + " \n", + " (* MOs unoccupied in both I and J *)\n", + " let mos_j, mos_j' =\n", + " let alfa = \n", + " let i = Spindeterminant.bitstring @@ Determinant.alfa ki in\n", + " let j = Spindeterminant.bitstring @@ Determinant.alfa kj in\n", + " Bitstring.to_list (Bitstring.logand i j)\n", + " in\n", + " let beta = \n", + " let i = Spindeterminant.bitstring @@ Determinant.beta ki in\n", + " let j = Spindeterminant.bitstring @@ Determinant.beta kj in\n", + " Bitstring.to_list (Bitstring.logand i j)\n", + " in\n", + " match s with\n", + " | Spin.Alfa -> alfa, beta\n", + " | Spin.Beta -> beta, alfa\n", + " in\n", + "\n", + " let result = \n", + " sum mos_j (fun j -> m_1222a.{i,j,k} ) +.\n", + " sum mos_j' (fun j -> m_1222.{i,j,k} )\n", + " in\n", + " match phase with\n", + " | Phase.Pos -> result\n", + " | Phase.Neg -> -. result\n", + " \n", + "\n", + "let _ = check 0 integral_value 1 2 2 2\n", + "\n", + "\n" + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# 9. *2 1 12*" + "# 9. 2 1 12" ] }, { @@ -1986,7 +2315,7 @@ "metadata": {}, "outputs": [], "source": [ - "png_image \"2_1_12.png\"" + "let _ = png_image \"2_1_12.png\"" ] }, { @@ -2001,9 +2330,7 @@ "\n", "$\\sum_{a} \n", " \\hat{T}_{i}^{a} \\hat{T}_{aj}^{kl} +\n", - " \\hat{T}_{j}^{a} \\hat{T}_{ai}^{lk} +\n", - " \\hat{T}_{i}^{a} \\hat{T}_{a\\bar{j}}^{k\\bar{l}} + \n", - " \\hat{T}_{j}^{a} \\hat{T}_{a\\bar{i}}^{l\\bar{k}} \n", + " \\hat{T}_{j}^{a} \\hat{T}_{ia}^{kl} \n", "$\n", "\n", "\n", @@ -2011,14 +2338,16 @@ "\\sum_{a}\n", " \\left( h_{ia} + \\sum_{n} \\langle i n || a n \\rangle + \\sum_{\\bar{n}} \\langle i \\bar{n} | a \\bar{n} \\rangle \\right) \\left[ a j || k l \\right] + \\\\\n", "\\sum_{a}\n", - " \\left( h_{ja} + \\sum_{n} \\langle j n || a n \\rangle + \\sum_{\\bar{n}} \\langle j \\bar{n} | a \\bar{n} \\rangle \\right) \\left[ a i || l k \\right] \n", + " \\left( h_{ja} + \\sum_{n} \\langle j n || a n \\rangle + \\sum_{\\bar{n}} \\langle j \\bar{n} | a \\bar{n} \\rangle \\right) \\left[ i a || k l \\right] \n", "$$" ] }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [], "source": [ "let integral_value ki kj = \n", @@ -2034,20 +2363,27 @@ " | Spin.Alfa -> mos_a ki, mos_b ki\n", " | Spin.Beta -> mos_b ki, mos_a ki\n", " in\n", + " \n", + " let mos2, mos2' =\n", + " match s' with\n", + " | Spin.Alfa -> mos_a ki, mos_b ki\n", + " | Spin.Beta -> mos_b ki, mos_a ki\n", + " in\n", "\n", " let result = \n", - " let s'' = Spin.other s in\n", " sum mos_cabs (fun a -> \n", + " let s'' = Spin.other s in\n", " ( h_one i a s +.\n", - " sum mos (fun n -> h_two n i n a s s) +.\n", - " sum mos' (fun n -> h_two n i n a s'' s) \n", - " ) *. f_two j a l k s' s\n", + " sum mos (fun n -> h_two i n a n s s ) +.\n", + " sum mos' (fun n -> h_two i n a n s s'') \n", + " ) *. f_two a j k l s s'\n", " ) +.\n", " sum mos_cabs (fun a -> \n", - " ( h_one j a s +.\n", - " sum mos (fun n -> h_two n j n a s s) +.\n", - " sum mos' (fun n -> h_two n j n a s'' s) \n", - " ) *. f_two i a k l s' s\n", + " let s'' = Spin.other s' in\n", + " ( h_one j a s' +.\n", + " sum mos2 (fun n -> h_two j n a n s' s' ) +.\n", + " sum mos2' (fun n -> h_two j n a n s' s'') \n", + " ) *. f_two i a k l s s'\n", " ) \n", " in\n", "\n", @@ -2059,6 +2395,122 @@ "let _ = check 0 integral_value 2 1 1 2" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$|J\\rangle = \\hat{T}_{ij}^{kl}|I\\rangle$\n", + "\n", + "$m$ : orbital indices of MOs unoccupied both in $|I\\rangle$ and $|J\\rangle$.\n", + "\n", + "$n$ : orbital indices of MOs occupied in $|I\\rangle$\n", + "\n", + "$\\sum_{a} \n", + " \\hat{T}_{i}^{a} \\hat{T}_{aj}^{kl} +\n", + " \\hat{T}_{j}^{a} \\hat{T}_{ia}^{kl} \n", + "$\n", + "\n", + "\n", + "$$\n", + "\\sum_{a}\n", + " \\left( h_{ia} + \\sum_{n} \\langle i n || a n \\rangle + \\sum_{\\bar{n}} \\langle i \\bar{n} | a \\bar{n} \\rangle \\right) \\left[ a j || k l \\right] + \\\\\n", + "\\sum_{a}\n", + " \\left( h_{ja} + \\sum_{n} \\langle j n || a n \\rangle + \\sum_{\\bar{n}} \\langle j \\bar{n} | a \\bar{n} \\rangle \\right) \\left[ i a || k l \\right] \n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "let m_2112_1H_2Fa =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k l ->\n", + " sum mos_cabs (fun a ->\n", + " h_one i a Spin.Alfa *. f_two a j k l Spin.Alfa Spin.Alfa +.\n", + " h_one j a Spin.Alfa *. f_two i a k l Spin.Alfa Spin.Alfa )\n", + " )\n", + "\n", + "let m_2112_1H_2Fb =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k l ->\n", + " sum mos_cabs (fun a ->\n", + " h_one i a Spin.Alfa *. f_two a j k l Spin.Alfa Spin.Beta +.\n", + " h_one j a Spin.Alfa *. f_two i a k l Spin.Alfa Spin.Beta)\n", + " )\n", + "\n", + "let m_2112_2Ha_2Fa =\n", + " array_5_init mo_num mo_num mo_num mo_num mo_num (fun i j k l n ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i n a n Spin.Alfa Spin.Alfa *.\n", + " f_two a j k l Spin.Alfa Spin.Alfa )\n", + " )\n", + " \n", + "let m_2112_2Hb_2Fa =\n", + " array_5_init mo_num mo_num mo_num mo_num mo_num (fun i j k l n ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i n a n Spin.Alfa Spin.Beta *.\n", + " f_two a j k l Spin.Alfa Spin.Alfa )\n", + " )\n", + " \n", + "let m_2112_2Ha_2Fb =\n", + " array_5_init mo_num mo_num mo_num mo_num mo_num (fun i j k l n ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i n a n Spin.Alfa Spin.Alfa *.\n", + " f_two a j k l Spin.Alfa Spin.Beta )\n", + " )\n", + " \n", + "let m_2112_2Hb_2Fb =\n", + " array_5_init mo_num mo_num mo_num mo_num mo_num (fun i j k l n ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i n a n Spin.Alfa Spin.Beta *.\n", + " f_two a j k l Spin.Alfa Spin.Beta )\n", + " )\n", + " \n", + "let integral_value ki kj = \n", + " let i, j, k, l, s, s', phase =\n", + " match Excitation.of_det ki kj with\n", + " | Excitation.(Double (phase, { hole ; particle ; spin }, {hole=hole' ; particle=particle' ; spin=spin' })) ->\n", + " hole, hole', particle, particle', spin, spin', phase\n", + " | _ -> assert false\n", + " in\n", + " let mos, mos' =\n", + " match s with\n", + " | Spin.Alfa -> mos_a ki, mos_b ki\n", + " | Spin.Beta -> mos_b ki, mos_a ki\n", + " in\n", + " \n", + " let result = \n", + " if s = s' then\n", + " m_2112_1H_2Fa.{i,j,k,l} +. \n", + " sum mos (fun n ->\n", + " m_2112_2Ha_2Fa.{i,j,k,l,n} +. m_2112_2Ha_2Fa.{j,i,l,k,n}\n", + " ) +.\n", + " sum mos' (fun n ->\n", + " m_2112_2Hb_2Fa.{i,j,k,l,n} +. m_2112_2Hb_2Fa.{j,i,l,k,n}\n", + " ) \n", + " else\n", + " m_2112_1H_2Fb.{i,j,k,l} +.\n", + " sum mos (fun n ->\n", + " m_2112_2Ha_2Fb.{i,j,k,l,n} +. m_2112_2Hb_2Fb.{j,i,l,k,n}\n", + " ) +.\n", + " sum mos' (fun n ->\n", + " m_2112_2Hb_2Fb.{i,j,k,l,n} +. m_2112_2Ha_2Fb.{j,i,l,k,n}\n", + " ) \n", + " in\n", + "\n", + " match phase with\n", + " | Phase.Pos -> result\n", + " | Phase.Neg -> -. result\n", + " \n", + "\n", + "let _ = check 0 integral_value 2 1 1 2\n", + "\n", + "\n" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -2072,7 +2524,7 @@ "metadata": {}, "outputs": [], "source": [ - "png_image \"2_1_21.png\"" + "let _ = png_image \"2_1_21.png\"" ] }, { @@ -2083,7 +2535,7 @@ "\n", "$m$ : orbital indices of MOs unoccupied both in $|I\\rangle$ and $|J\\rangle$.\n", "\n", - "$n$ : orbital indices of MOs occupied in $|I\\rangle$\n", + "$n$ : orbital indices of MOs occupied in $|J\\rangle$\n", "\n", "$\\sum_{a} \n", " \\hat{T}_{ij}^{al} \\hat{T}_{a}^{k} +\n", @@ -2135,10 +2587,10 @@ " | Spin.Beta -> mos_b kj, mos_a kj, Spin.Alfa\n", " in\n", " sum mos_cabs (fun a -> \n", - " h_two i j k a s s' *.\n", + " h_two j i a k s' s *.\n", " ( f_one a l s' +.\n", - " sum mos (fun n -> f_two n a n l s' s') +.\n", - " sum mos' (fun n -> f_two n a n l s'' s') \n", + " sum mos (fun n -> f_two a n l n s' s') +.\n", + " sum mos' (fun n -> f_two a n l n s' s'') \n", " ) \n", " ) \n", " in\n", @@ -2151,11 +2603,103 @@ "let _ = check 0 integral_value 2 1 2 1" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "let m_2121_2Ha_1F =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k l ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j a l Spin.Alfa Spin.Alfa *. f_one a k Spin.Alfa +.\n", + " h_two i j k a Spin.Alfa Spin.Alfa *. f_one a l Spin.Alfa)\n", + " )\n", + "\n", + "let m_2121_2Hb_1F =\n", + " array_4_init mo_num mo_num mo_num mo_num (fun i j k l ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j a l Spin.Alfa Spin.Beta *. f_one a k Spin.Alfa +.\n", + " h_two i j k a Spin.Alfa Spin.Beta *. f_one a l Spin.Alfa)\n", + " )\n", + "\n", + "let m_2121_2Ha_2Fa =\n", + " array_5_init mo_num mo_num mo_num mo_num mo_num (fun i j k l n ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j a l Spin.Alfa Spin.Alfa *.\n", + " f_two a n k n Spin.Alfa Spin.Alfa )\n", + " )\n", + " \n", + "let m_2121_2Hb_2Fa =\n", + " array_5_init mo_num mo_num mo_num mo_num mo_num (fun i j k l n ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j a l Spin.Alfa Spin.Beta *.\n", + " f_two a n k n Spin.Alfa Spin.Alfa )\n", + " )\n", + " \n", + "let m_2121_2Ha_2Fb =\n", + " array_5_init mo_num mo_num mo_num mo_num mo_num (fun i j k l n ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j a l Spin.Alfa Spin.Alfa *.\n", + " f_two a n k n Spin.Alfa Spin.Beta )\n", + " )\n", + " \n", + "let m_2121_2Hb_2Fb =\n", + " array_5_init mo_num mo_num mo_num mo_num mo_num (fun i j k l n ->\n", + " sum mos_cabs (fun a ->\n", + " h_two i j a l Spin.Alfa Spin.Beta *.\n", + " f_two a n k n Spin.Alfa Spin.Beta )\n", + " )\n", + " \n", + "let integral_value ki kj = \n", + " let i, j, k, l, s, s', phase =\n", + " match Excitation.of_det ki kj with\n", + " | Excitation.(Double (phase, { hole ; particle ; spin }, {hole=hole' ; particle=particle' ; spin=spin' })) ->\n", + " hole, hole', particle, particle', spin, spin', phase\n", + " | _ -> assert false\n", + " in\n", + " let mos, mos' =\n", + " match s with\n", + " | Spin.Alfa -> mos_a kj, mos_b kj\n", + " | Spin.Beta -> mos_b kj, mos_a kj\n", + " in\n", + " \n", + " let result = \n", + " if s = s' then\n", + " m_2121_2Ha_1F.{i,j,k,l} +. \n", + " sum mos (fun n ->\n", + " m_2121_2Ha_2Fa.{i,j,k,l,n} +. m_2121_2Ha_2Fa.{j,i,l,k,n}\n", + " ) +.\n", + " sum mos' (fun n ->\n", + " m_2121_2Ha_2Fb.{i,j,k,l,n} +. m_2121_2Ha_2Fb.{j,i,l,k,n}\n", + " ) \n", + " else\n", + " m_2121_2Hb_1F.{i,j,k,l} +.\n", + " sum mos (fun n ->\n", + " m_2121_2Hb_2Fa.{i,j,k,l,n} +. m_2121_2Hb_2Fb.{j,i,l,k,n}\n", + " ) +.\n", + " sum mos' (fun n ->\n", + " m_2121_2Hb_2Fb.{i,j,k,l,n} +. m_2121_2Hb_2Fa.{j,i,l,k,n}\n", + " ) \n", + " in\n", + "\n", + " match phase with\n", + " | Phase.Pos -> result\n", + " | Phase.Neg -> -. result\n", + " \n", + "\n", + "let _ = check 0 integral_value 2 1 2 1\n", + "\n", + "\n" + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# 11. *2 1 22*" + "# *11. 2 1 22*" ] }, { @@ -2164,7 +2708,7 @@ "metadata": {}, "outputs": [], "source": [ - "png_image \"2_1_22.png\"" + "let _ = png_image \"2_1_22.png\"" ] }, { @@ -2175,13 +2719,15 @@ "\n", "$m$ : orbital indices of MOs unoccupied both in $|I\\rangle$ and $|J\\rangle$.\n", "\n", - "$n$ : orbital indices of MOs occupied in $|I\\rangle$\n", + "$n$ : orbital indices of MOs occupied in both $|I\\rangle$ and $|J\\rangle$ .\n", "\n", "$\\sum_{a} \n", " \\hat{T}_{ij}^{am} \\hat{T}_{am}^{kl} +\n", " \\hat{T}_{ij}^{ma} \\hat{T}_{ma}^{kl} -\n", " \\hat{T}_{in}^{al} \\hat{T}_{aj}^{kn} -\n", - " \\hat{T}_{nj}^{ka} \\hat{T}_{ia}^{nl} \n", + " \\hat{T}_{nj}^{ka} \\hat{T}_{ia}^{nl} +\n", + " \\sum_{n}\n", + " \\hat{T}_{i\\bar{n}}^{k\\bar{a}} \\hat{T}_{\\bar{a}j}^{\\bar{n}l}\n", "$\n", "\n", "\n", @@ -2236,13 +2782,26 @@ " \n", " sum mos_cabs (fun a -> \n", " sum mos_virt' (fun m -> \n", - " h_two i j a m s s' *. f_two a m k l s s' ) +. \n", + " h_two i j a m s s' *. f_two a m k l s s') +.\n", + " sum mos (fun n ->\n", + " h_two i n k a s s *. f_two a j n l s s' +. \n", + " h_two j n l a s s *. f_two a i n k s s' ) +.\n", + " sum mos' (fun n ->\n", + " h_two i n k a s s' *. f_two a j n l s' s') \n", + " (*\n", " sum mos_virt (fun m -> \n", - " h_two i j m a s s' *. f_two m a k l s s' ) -.\n", + " h_two i j m a s s' *. f_two m a k l s s' )\n", + " -.\n", " sum mos' (fun n -> \n", " h_two i n a l s s' *. f_two a j k n s s' ) -.\n", " sum mos (fun n -> \n", " h_two n j k a s s' *. f_two i a n l s s' )\n", + " +.\n", + " sum mos' (fun n -> \n", + " h_two n j a l s s' *. f_two a i k n s s ) +.\n", + " sum mos (fun n -> \n", + " h_two n i a k s s' *. f_two a j l n s' s' )\n", + " *)\n", " )\n", " in\n", "\n", @@ -2251,7 +2810,117 @@ " | Phase.Neg -> -. result\n", "\n", "\n", - "let _ = check 0 integral_value 2 1 2 2" + "let _ = check 10 integral_value 2 1 2 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "let ki = det_I.(0)\n", + "let kj = det_I.(9)\n", + "\n", + "let _ = \n", + "generate_alphas ki kj 2 1 2 2\n", + "|> Array.of_list\n", + "|> Array.mapi (fun kk alpha -> \n", + "\n", + "(*\n", + "let _ = Determinant.to_lists ki\n", + "let _ = Determinant.to_lists alpha\n", + "let _ = Determinant.to_lists kj\n", + "\n", + " \n", + "let _ = \n", + " Format.printf \"|I> -> |J> : %a\\n@.\" Excitation.pp (Excitation.of_det ki kj);\n", + " Format.printf \"|I> -> |a> : %a\\n@.\" Excitation.pp (Excitation.of_det ki alpha);\n", + " Format.printf \"|a> -> |J> : %a\\n@.\" Excitation.pp (Excitation.of_det alpha kj)\n", + "*)\n", + " let i, j, k, l, s, s', phase =\n", + " match Excitation.of_det ki kj with\n", + " | Excitation.(Double (phase, { hole ; particle ; spin }, {hole=hole' ; particle=particle' ; spin=spin' })) ->\n", + " hole, hole', particle, particle', spin, spin', phase\n", + " | _ -> assert false\n", + " in\n", + "\n", + "\n", + " let integral_value ki kj = \n", + " \n", + " (* \n", + " let i, j, k, l, s, s', phase =\n", + " match Excitation.of_det ki kj with\n", + " | Excitation.(Double (phase, { hole ; particle ; spin }, {hole=hole' ; particle=particle' ; spin=spin' })) ->\n", + " hole, hole', particle, particle', spin, spin', phase\n", + " | _ -> assert false\n", + " in\n", + " let i, a, s, _ = \n", + " match Excitation.of_det ki alpha with\n", + " | Excitation.(Single (phase, { hole ; particle ; spin })) ->\n", + " hole, particle, spin, phase\n", + " | _ -> assert false\n", + " in\n", + "\n", + " let i', j', k', l', t, u, _ =\n", + " match Excitation.of_det ki alpha with\n", + " | Excitation.(Double (phase, { hole ; particle ; spin }, {hole=hole' ; particle=particle' ; spin=spin' })) ->\n", + " hole, hole', particle, particle', spin, spin', phase\n", + " | _ -> assert false\n", + " in\n", + " \n", + " let i'', j'', k'', l'', t', u', _ =\n", + " match Excitation.of_det alpha kj with\n", + " | Excitation.(Double (phase, { hole ; particle ; spin }, {hole=hole' ; particle=particle' ; spin=spin' })) ->\n", + " hole, hole', particle, particle', spin, spin', phase\n", + " | _ -> assert false\n", + " in\n", + " *)\n", + " (*\n", + " let j, k, l, s' = \n", + " if i' = a then\n", + " (assert (k' = k) ; j', k', l', t')\n", + " else\n", + " (assert (j'=a) ; assert (l'=k) ; i', l', k', t)\n", + " in\n", + " *)\n", + " \n", + " Format.printf \"|I> -> |J> : %a |\\n@.\" Excitation.pp (Excitation.of_det ki kj) ;\n", + " Format.printf \"|I> -> |a> : %a |\\n@.\" Excitation.pp (Excitation.of_det ki alpha) ;\n", + " Format.printf \"|a> -> |J> : %a |\\n@.\" Excitation.pp (Excitation.of_det alpha kj);\n", + " \n", + " \n", + " let mos, mos' =\n", + " match s with\n", + " | Spin.Alfa -> mos_a ki, mos_b ki\n", + " | Spin.Beta -> mos_b ki, mos_a ki\n", + " in\n", + "\n", + " let result = \n", + " let k=5 and l=4 in\n", + " let i=1 and j=2 in\n", + " let n=2 and a=6 in\n", + " let s = Spin.Alfa\n", + " and s' = Spin.Alfa\n", + " and s'' = Spin.Beta\n", + " in\n", + " h_two j n l a s s *. f_two a i n k s s'\n", + " in\n", + "\n", + " match phase with\n", + " | Phase.Pos -> result\n", + " | Phase.Neg -> -. result\n", + "\n", + "in\n", + "let a = (compute_HaaF ki [alpha] kj)\n", + "and b = (integral_value ki kj)\n", + "in\n", + "(*\n", + "if a <> b then\n", + "*)\n", + "Format.printf \"%6d %e %e@.\" (kk) a b\n", + ")\n", + "\n" ] }, { @@ -2489,202 +3158,6 @@ ")\n", "\n" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Packed diagrams" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Diagonal elements" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Two electrons in CABS" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "(* 0 2 22 *)\n", - "\n", - "\n", - "let integral_value ki kj = \n", - " (* Alpha-Beta *)\n", - " let s, s' = Spin.(Alfa, Beta) in\n", - " sum mos_cabs (fun a -> \n", - " sum mos_cabs (fun b -> \n", - " sum (mos_a ki) (fun i -> \n", - " sum (mos_b ki) (fun j -> \n", - " h_two i j a b s s' *. f_two a b i j s s'\n", - " ))))\n", - " +.\n", - " (* Alpha-Alpha / Beta-Beta *)\n", - " List.fold_left (fun accu (mos,s) -> \n", - " let s' = s in accu +.\n", - " sum mos_cabs (fun b -> \n", - " sum mos_cabs (fun a -> if b > a then 0. else\n", - " sum mos (fun j -> \n", - " sum mos (fun i -> if i < j then 0. else\n", - " h_two i j a b s s' *. f_two a b i j s s'\n", - " ))))\n", - " ) 0. [ (mos_a ki,Spin.Alfa) ; (mos_b ki,Spin.Beta)]\n", - " \n", - "let _ =\n", - " check 0 integral_value 0 2 2 2\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### One electron in CABS" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "(* 0 1 11 *)\n", - "\n", - "\n", - "let integral_value ki kj = \n", - " (* Alpha-Beta *)\n", - " let s, s' = Spin.(Alfa, Beta) in \n", - " let mos_a, mos_b = mos_a ki, mos_b ki in\n", - " \n", - " sum mos_cabs (fun a ->\n", - " sum mos_a (fun i -> \n", - " (h_one i a s +.\n", - " sum mos_a (fun j -> h_two i j a j s s ) +.\n", - " sum mos_b (fun j -> h_two i j a j s s') ) *. \n", - " (f_one a i s +.\n", - " sum mos_a (fun j -> f_two a j i j s s ) +.\n", - " sum mos_b (fun j -> f_two a j i j s s') )\n", - " )\n", - " +.\n", - " sum mos_b (fun i -> \n", - " (h_one i a s +.\n", - " sum mos_b (fun j -> h_two i j a j s' s') +.\n", - " sum mos_a (fun j -> h_two i j a j s' s ) ) *. \n", - " (f_one a i s +.\n", - " sum mos_a (fun j -> f_two a j i j s' s ) +.\n", - " sum mos_b (fun j -> f_two a j i j s' s') )\n", - " ) \n", - " ) \n", - " \n", - "\n", - "(* 0 1 22 *)\n", - "\n", - "let integral_value ki kj = \n", - " (* mos unoccupied in both I and J *)\n", - " let mos_virt_a, mos_virt_b = \n", - " Array.init mo_num (fun i -> Some (i+1)) , \n", - " Array.init mo_num (fun i -> Some (i+1)) \n", - " in\n", - " List.iter (fun i -> mos_virt_a.(i-1) <- None) (mos_a ki);\n", - " List.iter (fun i -> mos_virt_a.(i-1) <- None) (mos_a kj);\n", - " List.iter (fun i -> mos_virt_b.(i-1) <- None) (mos_b ki);\n", - " List.iter (fun i -> mos_virt_b.(i-1) <- None) (mos_b kj);\n", - " \n", - " let mos_virt_a, mos_virt_b = \n", - " Array.to_list mos_virt_a |> Util.list_some,\n", - " Array.to_list mos_virt_b |> Util.list_some\n", - " in\n", - " \n", - " (* Alpha-Beta *)\n", - " let s, s' = Spin.(Alfa, Beta) in\n", - " sum mos_cabs (fun a ->\n", - " sum (mos_b ki) (fun j -> \n", - " sum (mos_a ki) (fun i -> \n", - " sum mos_virt_b (fun k -> \n", - " h_two i j a k s s' *. f_two a k i j s s'\n", - " )))\n", - " +.\n", - " sum (mos_a ki) (fun j -> \n", - " sum (mos_b ki) (fun i -> \n", - " sum mos_virt_a (fun k -> \n", - " h_two i j a k s s' *. f_two a k i j s s'\n", - " )))) \n", - " +.\n", - " (* Alpha-Alpha / Beta-Beta *)\n", - " List.fold_left (fun accu (mos_virt,mos,s) -> \n", - " let s' = s in accu +.\n", - " sum mos (fun j -> \n", - " sum mos (fun i -> if i < j then 0. else\n", - " sum mos_virt (fun k -> \n", - " sum mos_cabs (fun a -> \n", - " h_two i j a k s s' *. f_two a k i j s s'\n", - " )))) \n", - " ) 0. [ (mos_virt_a,mos_a ki,Spin.Alfa) ; (mos_virt_b,mos_b ki,Spin.Beta)]\n", - " \n", - "let _ =\n", - " check 0 integral_value 0 1 2 2\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Single excitations" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Two electrons in CABS" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### One electron in CABS" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double excitations" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Two electrons in CABS" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### One electron in CABS" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": {