Work : update boucle

This commit is contained in:
Yann Damour 2020-05-12 11:17:15 +02:00
parent 46fbf660b3
commit 189e25c72e

View File

@ -1976,11 +1976,11 @@
"(* Localisation de Edminstion ou de Boys *)\n",
"let n_rec_alpha = 10;;\n",
"(* Calcul de la nouvelle matrice des coefficient après n rotation d'orbitales *)\n",
"let rec final_m_C m_C methode n =\n",
"let rec final_m_C m_C methode epsilon 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",
@ -2002,14 +2002,14 @@
" let m_alpha = alphad.m_alpha\n",
" in\n",
"\n",
" Util.debug_matrix \"m_alpha\" m_alpha;\n",
" (*Util.debug_matrix \"m_alpha\" m_alpha;*)\n",
"\n",
" (* alphaij contient le alpha max ainsi que ses indices i et j *)\n",
" let alphaij = new_m_alpha m_alpha n_rec_alpha (* Fonction -> constante *)\n",
" in\n",
"\n",
" (* Valeur de alpha max après calcul *)\n",
" let alpha = alphaij.alpha_max (* Fonction -> constante *)\n",
" (* Valeur de alpha max après calcul *) (* Epsilon = Pas <1. , 1. -> normal, sinon Pas plus petit *)\n",
" let alpha = epsilon *. alphaij.alpha_max (* Fonction -> constante *)\n",
" in\n",
"\n",
" (* Indice i et j du alpha max après calcul *)\n",
@ -2030,30 +2030,30 @@
" let m_Ksi = f_Ksi indice_i indice_j m_C (* Fonction -> constante *)\n",
" in\n",
"\n",
" Util.debug_matrix \"m_Ksi\" m_Ksi;\n",
" (*Util.debug_matrix \"m_Ksi\" m_Ksi;*)\n",
"\n",
" (* Matrice ayant subit la rotation *)\n",
" let m_Ksi_tilde = f_Ksi_tilde m_R m_Ksi (* Fonction -> constante *)\n",
" in\n",
"\n",
" Util.debug_matrix \"m_Ksi_tilde\" m_Ksi_tilde;\n",
" (*Util.debug_matrix \"m_Ksi_tilde\" m_Ksi_tilde;*)\n",
"\n",
" (* Matrice pour supprimerles coef des orbitales i et j dans la matrice des coef *)\n",
" let m_Psi = f_Psi m_Ksi indice_i indice_j (* Fonction -> constante *)\n",
" in\n",
"\n",
" Util.debug_matrix \"m_Psi\" m_Psi;\n",
" (*Util.debug_matrix \"m_Psi\" m_Psi;*)\n",
"\n",
" (* Matrice pour ajouter les coef des orbitales i~ et j~ dans la matrice des coef *)\n",
" let m_Psi_tilde = f_Psi_tilde m_Ksi_tilde indice_i indice_j (* Fonction -> constante *)\n",
" in\n",
"\n",
" Util.debug_matrix \"m_Psi_tilde\" m_Psi_tilde;\n",
" (*Util.debug_matrix \"m_Psi_tilde\" m_Psi_tilde;*)\n",
"\n",
" (* Matrice avec les coef des orbitales i et j remplacés par 0 *)\n",
" let m_interm = f_interm m_C m_Psi (* Fonction -> constante *)\n",
" in\n",
" Util.debug_matrix \"m_interm\" m_interm;\n",
" (*Util.debug_matrix \"m_interm\" m_interm;*)\n",
" \n",
" (* Matrice après rotation *)\n",
" Mat.add m_Psi_tilde m_interm\n",
@ -2062,10 +2062,10 @@
"\n",
"in\n",
"\n",
"Util.debug_matrix \"new_alpha_m\" (f_alpha m_C);\n",
"(*Util.debug_matrix \"new_alpha_m\" (f_alpha m_C);*)\n",
"Util.debug_matrix \"m_new_m_C\" m_new_m_C;\n",
"\n",
"final_m_C m_new_m_C methode (n-1);;"
"final_m_C m_new_m_C methode epsilon (n-1);;"
]
},
{
@ -2074,7 +2074,9 @@
"metadata": {},
"outputs": [],
"source": [
"final_m_C m_C \"ER\" 1;;"
"(* Calcul *)\n",
"(* Fonction Matrice des coef Méthode(\"Boys\" ou \"ER\") Pas (=< 1.) *)\n",
"final_m_C m_C \"ER\" 1. 20;;"
]
},
{
@ -2189,8 +2191,10 @@
"metadata": {},
"outputs": [],
"source": [
"(*\n",
"(*Cellule de calcul*)\n",
"final_m_C m_C 10;;"
"final_m_C m_C 10;;\n",
"*)"
]
},
{