This commit is contained in:
Yann Damour 2020-05-14 08:54:39 +02:00
parent b76fd4a673
commit dcc860d316

View File

@ -185,7 +185,7 @@
"metadata": {},
"outputs": [],
"source": [
"(*\n",
"\n",
"let xyz_string = \n",
"\"4\n",
"H4\n",
@ -193,8 +193,7 @@
"H 1.8 0. 0.\n",
"H 3.6 0. 0.\n",
"H 5.4 0. 0.\n",
"\"\n",
"*)"
"\"\n"
]
},
{
@ -251,7 +250,7 @@
},
"outputs": [],
"source": [
"(*let basis_string = \n",
"let basis_string = \n",
"\n",
"\"\n",
"HYDROGEN\n",
@ -265,10 +264,10 @@
"\n",
"\"\n",
"\n",
"*)\n",
"\n",
"\n",
"\n",
"(*\n",
"let basis_string = \n",
"\"\n",
"HYDROGEN\n",
@ -282,7 +281,7 @@
"P 1\n",
"1 7.270000E-01 1.0000000\n",
"\"\n",
"(*\n",
"\n",
"OXYGEN\n",
"S 9\n",
"1 1.172000E+04 7.100000E-04\n",
@ -1644,14 +1643,14 @@
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef \n",
" in\n",
" \n",
" (*Util.debug_matrix \"phi_x2_phi\" phi_x2_phi;*)\n",
" Util.debug_matrix \"phi_x2_phi\" phi_x2_phi;\n",
" \n",
" let phi_y2_phi =\n",
" Multipole.matrix_y2 multipoles \n",
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef \n",
" in\n",
" \n",
" (*Util.debug_matrix \"phi_y2_phi\" phi_y2_phi;*)\n",
" Util.debug_matrix \"phi_y2_phi\" phi_y2_phi;\n",
" \n",
" let phi_z2_phi =\n",
" Multipole.matrix_z2 multipoles \n",
@ -1659,7 +1658,7 @@
"\n",
" in\n",
" \n",
" (*Util.debug_matrix \"phi_z2_phi\" phi_z2_phi;*)\n",
" Util.debug_matrix \"phi_z2_phi\" phi_z2_phi;\n",
" \n",
" let v_D_boys = \n",
" Vec.init n_mo ( fun i -> phi_x2_phi.{i,i} +. phi_y2_phi.{i,i} +. phi_z2_phi.{i,i})\n",
@ -1667,9 +1666,10 @@
"in\n",
"Vec.sum v_D_boys;;\n",
"\n",
"(*************************)\n",
"\n",
"d_boys m_C;;"
"(*************************)\n",
"(*Multipole.matrix_x2 multipoles;;\n",
"d_boys m_C;;*)"
]
},
{
@ -1690,6 +1690,7 @@
" in\n",
" let d_boys = d_boys m_C\n",
" in\n",
" Printf.printf \"%f\\n\" d_boys;\n",
" let alpha_er = f_alpha m_C\n",
" in\n",
" let d_er = s_D m_C\n",
@ -1712,7 +1713,7 @@
"\n",
"let methode = \"ER\";;\n",
"\n",
"let alphad = m_alpha_d methode ;;\n",
"let alphad = m_alpha_d methode m_C;;\n",
"\n",
"let m_alpha = alphad.m_alpha;;\n",
"let d = alphad.d;;\n",
@ -1949,6 +1950,21 @@
"*)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"let toto = [4];;\n",
"let occ_m_C m_C toto= Mat.init_cols n_ao n_mo (fun i j ->\n",
" if not (List.mem j toto) \n",
" then m_C.{i,j}\n",
" else 0.);;\n",
" \n",
"let occ = occ_m_C m_C toto;;"
]
},
{
"cell_type": "markdown",
"metadata": {},
@ -2057,7 +2073,7 @@
" in\n",
" let m_new_m_C , critere_D = new_m_C m_C methode (* Fonction -> constante *)\n",
" in\n",
" let diff = prev_critere_D -. critere_D\n",
" let diff = prev_critere_D -. critere_D +. 1.\n",
" \n",
"in\n",
"\n",
@ -2080,7 +2096,7 @@
"(* Calcul *)\n",
"(* Fonction / Matrice des coef / Méthode(\"Boys\" ou \"ER\") / Pas(=< 1.) / Nombre d'itérations max / \n",
"0. (valeur de D pour initier la boucle) / critère de convergence sur D*)\n",
"final_m_C m_C \"ER\" 1. 100 0. 10e-12;;"
"final_m_C m_C \"boys\" 1. 3 0. 10e-7;;"
]
},
{
@ -2088,7 +2104,21 @@
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
"source": [
"let new_m_C = final_m_C occ \"ER\" 1. 50 0. 10e-15;;\n",
"let m_alpha = f_alpha new_m_C;;"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"m_alpha_d \"Boys\" new_m_C;;\n",
"d_boys m_C;;\n",
"d_boys new_m_C;;"
]
},
{
"cell_type": "markdown",