Copy_test : modif boucle, Calcul : modif CI

This commit is contained in:
Yann Damour 2020-05-21 13:23:24 +02:00
parent e94a23fff0
commit a44126a743
3 changed files with 1908 additions and 23 deletions

View File

@ -618,7 +618,7 @@
" in\n",
" let m_new_m_C , critere_D, norme_alpha = new_m_C m_C methode \n",
" in\n",
" let diff = prev_critere_D -. critere_D +. 1.\n",
" let diff = prev_critere_D -. critere_D \n",
"\n",
"in\n",
"\n",
@ -795,7 +795,7 @@
" \n",
"let ci_coef, ci_energy = Lazy.force ci.eigensystem ;;\n",
"let m_ci_coef = Mat.as_vec ci_coef;;\n",
"Vec.iteri (fun i x -> Printf.printf \"%e %f\\n\" i x) ci_coef;;\n"
"Vec.iteri (fun i x -> Printf.printf \"%d %e\\n\" i x) m_ci_coef;;"
]
}
],

1878
Copy_test.ipynb Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1792,9 +1792,9 @@
"(* Calcul de la nouvelle matrice des coefficient après n rotation d'orbitales *)\n",
"let rec localisation m_C methode epsilon n prev_critere_D cc=\n",
"\n",
" (*Printf.printf \"%i\\n%!\" n;*)\n",
" Printf.printf \"%i\\n%!\" n;\n",
"\n",
" (*Util.debug_matrix \"m_C\" m_C;*)\n",
" Util.debug_matrix \"m_C\" m_C;\n",
"\n",
"if n == 0 \n",
" then m_C\n",
@ -1811,14 +1811,14 @@
" let critere_D = alphad.d \n",
" in\n",
" \n",
" (*Printf.printf \"%f\\n%!\" critere_D;*)\n",
" Printf.printf \"%f\\n%!\" critere_D;\n",
" \n",
" (* Matrice des alphas *)\n",
" let m_alpha = alphad.m_alpha\n",
" in\n",
" let norme_alpha = norme m_alpha\n",
" in\n",
" \n",
" (*let norme_alpha = norme m_alpha\n",
" in*)\n",
" Util.debug_matrix \"new_alpha_m\" m_alpha;\n",
" (*Printf.printf \"%f\\n%!\" norme_alpha;*)\n",
" \n",
" (*Util.debug_matrix \"m_alpha\" m_alpha;*)\n",
@ -1833,7 +1833,7 @@
" let alpha = (alphaij.alpha_max) *. epsilon \n",
" in\n",
"\n",
" (*Printf.printf \"%f\\n%!\" alpha;*)\n",
" Printf.printf \"%f\\n%!\" alpha;\n",
" \n",
" (* Indice i et j du alpha max après calcul *)\n",
" let indice_i = alphaij.indice_ii \n",
@ -1880,21 +1880,22 @@
" (*Util.debug_matrix \"m_interm\" m_interm;*)\n",
" \n",
" (* Matrice après rotation *)\n",
" ( Mat.add m_Psi_tilde m_interm, critere_D, norme_alpha)\n",
" ( Mat.add m_Psi_tilde m_interm, critere_D)\n",
" \n",
" in\n",
" let m_new_m_C , critere_D, norme_alpha = new_m_C m_C methode \n",
" let m_new_m_C , critere_D = new_m_C m_C methode \n",
" in\n",
" let diff = prev_critere_D -. critere_D +. 1.\n",
" let diff = prev_critere_D -. critere_D\n",
"\n",
"in\n",
"\n",
"(*Util.debug_matrix \"new_alpha_m\" (f_alpha m_C);*)\n",
"(*Util.debug_matrix \"m_new_m_C\" m_new_m_C;*)\n",
"Util.debug_matrix \"m_new_m_C\" m_new_m_C;\n",
"\n",
"if diff**2. < cc**2.\n",
" then m_new_m_C\n",
" else\n",
"localisation m_new_m_C methode epsilon (n-1) critere_D cc;;"
"localisation m_new_m_C methode epsilon (n-1) critere_D cc;;\n"
]
},
{
@ -1907,9 +1908,9 @@
"(* Fonction / Matrice des coef / Méthode(\"Boys\" ou \"ER\") / Pas(<=1.) \n",
"/ Nombre d'itérations max / 0. (valeur de D pour initier la boucle) / critère de convergence sur D*)\n",
"\n",
"(*let new_m_boys = localisation m_C \"boys\" 1. 100 0. 10e-7;;\n",
"let new_m_er = localisation m_C \"ER\" 1. 100 0. 10e-7;;\n",
"*)"
"let new_m_boys = localisation m_C \"boys\" 1. 5 0. 10e-7;;\n",
"(*let new_m_er = localisation m_C \"ER\" 1. 100 0. 10e-7;;\n",
"*)\n"
]
},
{
@ -1987,20 +1988,19 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"jupyter": {
"outputs_hidden": true
}
},
"metadata": {},
"outputs": [],
"source": [
"(*let new_m_boys = localisation m_C \"boys\" 1. 100 0. 10e-7;;\n",
"let new_m_er = localisation m_C \"ER\" 1. 100 0. 10e-7;;\n",
"*)\n",
"\n",
"let loc_m_occ_boys = localisation m_occ \"boys\" 0.9 100 0. 10e-7;;\n",
"let loc_m_occ_boys = localisation m_occ \"boys\" 1. 100 0. 10e-7;;\n",
"\n",
"(*\n",
"let loc_m_vir_boys = localisation m_vir \"boys\" 1. 100 0. 10e-7;;\n",
"let m_assemble_boys = assemble loc_m_occ_boys loc_m_vir_boys;;\n",
"*)\n",
"\n",
"(*\n",
"let loc_m_occ_er = localisation m_occ \"ER\" 1. 100 0. 10e-7;;\n",
@ -2145,6 +2145,13 @@
"Vec.iteri (fun i x -> Printf.printf \"%e %f\\n\" i x) ci_coef;;\n",
"*)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {