Modis index
This commit is contained in:
parent
a28dab63cd
commit
7e542fc7f2
55
Work.ipynb
55
Work.ipynb
@ -1535,7 +1535,8 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"(* Fonction de calcul de tous les alpha ER -> Matrice, dépend de m_a12, m_b12 qui dépendent de m_C *)\n",
|
"(* Fonction de calcul de tous les alpha ER -> Matrice, dépend de m_a12, m_b12 qui dépendent de m_C *)\n",
|
||||||
"let f_alpha m_C =\n",
|
"let f_alpha m_C =\n",
|
||||||
"\n",
|
" let n_mo = Mat.dim2 m_C\n",
|
||||||
|
" in\n",
|
||||||
" (* Fonction de calcul de toutes les intégrales B_12 -> Matrice, dépend de m_C *)\n",
|
" (* Fonction de calcul de toutes les intégrales B_12 -> Matrice, dépend de m_C *)\n",
|
||||||
" let m_b12 = Mat.init_cols n_mo n_mo (fun i j -> \n",
|
" let m_b12 = Mat.init_cols n_mo n_mo (fun i j -> \n",
|
||||||
" integral_general (fun a b e f i j ->\n",
|
" integral_general (fun a b e f i j ->\n",
|
||||||
@ -1571,6 +1572,8 @@
|
|||||||
"(* Calcul de D -> critère à maximiser dans ER*)\n",
|
"(* Calcul de D -> critère à maximiser dans ER*)\n",
|
||||||
"let s_D m_C = \n",
|
"let s_D m_C = \n",
|
||||||
" let v_D = \n",
|
" let v_D = \n",
|
||||||
|
" let n_mo = Mat.dim2 m_C\n",
|
||||||
|
" in\n",
|
||||||
" let m_D = Mat.init_cols n_mo n_mo (fun i j ->\n",
|
" let m_D = Mat.init_cols n_mo n_mo (fun i j ->\n",
|
||||||
" integral_general (fun a b e f i j -> m_C.{a,i} *. m_C.{b,i} *. m_C.{e,i} *. m_C.{f,i} \n",
|
" integral_general (fun a b e f i j -> m_C.{a,i} *. m_C.{b,i} *. m_C.{e,i} *. m_C.{f,i} \n",
|
||||||
" ) i j\n",
|
" ) i j\n",
|
||||||
@ -1590,19 +1593,20 @@
|
|||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"(* Fonction calcul alpha Boys *)\n",
|
"(* Fonction calcul alpha Boys *)\n",
|
||||||
"let f_alpha_boys mo_coef = \n",
|
"let f_alpha_boys m_C = \n",
|
||||||
"\n",
|
" let n_mo = Mat.dim2 m_C\n",
|
||||||
|
" in\n",
|
||||||
" let phi_x_phi =\n",
|
" let phi_x_phi =\n",
|
||||||
" Multipole.matrix_x multipoles \n",
|
" Multipole.matrix_x multipoles \n",
|
||||||
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef \n",
|
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef:m_C\n",
|
||||||
" in \n",
|
" in \n",
|
||||||
" let phi_y_phi =\n",
|
" let phi_y_phi =\n",
|
||||||
" Multipole.matrix_y multipoles \n",
|
" Multipole.matrix_y multipoles \n",
|
||||||
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef \n",
|
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef:m_C\n",
|
||||||
" in\n",
|
" in\n",
|
||||||
" let phi_z_phi =\n",
|
" let phi_z_phi =\n",
|
||||||
" Multipole.matrix_z multipoles \n",
|
" Multipole.matrix_z multipoles \n",
|
||||||
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef\n",
|
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef:m_C\n",
|
||||||
" in \n",
|
" in \n",
|
||||||
"\n",
|
"\n",
|
||||||
" let m_b12= \n",
|
" let m_b12= \n",
|
||||||
@ -1636,33 +1640,34 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"(* Fonction de calcul de D Boys *)\n",
|
"(* Fonction de calcul de D Boys *)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"let d_boys mo_coef = \n",
|
"let d_boys m_C = \n",
|
||||||
"\n",
|
"\n",
|
||||||
" let phi_x2_phi =\n",
|
" let phi_x_phi =\n",
|
||||||
" Multipole.matrix_x2 multipoles \n",
|
" Multipole.matrix_x multipoles \n",
|
||||||
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef \n",
|
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef:m_C \n",
|
||||||
" in\n",
|
" in\n",
|
||||||
" \n",
|
" \n",
|
||||||
" Util.debug_matrix \"phi_x2_phi\" phi_x2_phi;\n",
|
" (*Util.debug_matrix \"phi_x_phi\" phi_x_phi;*)\n",
|
||||||
" \n",
|
" \n",
|
||||||
" let phi_y2_phi =\n",
|
" let phi_y_phi =\n",
|
||||||
" Multipole.matrix_y2 multipoles \n",
|
" Multipole.matrix_y multipoles \n",
|
||||||
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef \n",
|
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef:m_C \n",
|
||||||
" in\n",
|
" in\n",
|
||||||
" \n",
|
" \n",
|
||||||
" Util.debug_matrix \"phi_y2_phi\" phi_y2_phi;\n",
|
" (*Util.debug_matrix \"phi_y_phi\" phi_y_phi;*)\n",
|
||||||
" \n",
|
" \n",
|
||||||
" let phi_z2_phi =\n",
|
" let phi_z_phi =\n",
|
||||||
" Multipole.matrix_z2 multipoles \n",
|
" Multipole.matrix_z multipoles \n",
|
||||||
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef\n",
|
" |> MOBasis.mo_matrix_of_ao_matrix ~mo_coef:m_C\n",
|
||||||
"\n",
|
"\n",
|
||||||
" in\n",
|
" in\n",
|
||||||
" \n",
|
" \n",
|
||||||
" Util.debug_matrix \"phi_z2_phi\" phi_z2_phi;\n",
|
" (*Util.debug_matrix \"phi_z_phi\" phi_z_phi;*)\n",
|
||||||
" \n",
|
" \n",
|
||||||
" let v_D_boys = \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",
|
" let n_mo = Mat.dim2 m_C\n",
|
||||||
"\n",
|
" in\n",
|
||||||
|
" Vec.init n_mo ( fun i -> (phi_x_phi.{i,i})**2. +. (phi_y_phi.{i,i})**2. +. (phi_z_phi.{i,i})**2.)\n",
|
||||||
"in\n",
|
"in\n",
|
||||||
"Vec.sum v_D_boys;;\n",
|
"Vec.sum v_D_boys;;\n",
|
||||||
"\n",
|
"\n",
|
||||||
@ -1690,7 +1695,7 @@
|
|||||||
" in\n",
|
" in\n",
|
||||||
" let d_boys = d_boys m_C\n",
|
" let d_boys = d_boys m_C\n",
|
||||||
" in\n",
|
" in\n",
|
||||||
" Printf.printf \"%f\\n\" d_boys;\n",
|
" (*Printf.printf \"%f\\n\" d_boys;*)\n",
|
||||||
" let alpha_er = f_alpha m_C\n",
|
" let alpha_er = f_alpha m_C\n",
|
||||||
" in\n",
|
" in\n",
|
||||||
" let d_er = s_D m_C\n",
|
" let d_er = s_D m_C\n",
|
||||||
@ -1748,6 +1753,8 @@
|
|||||||
"(* Détermination alpha_max et ses indices i et j.\n",
|
"(* Détermination alpha_max et ses indices i et j.\n",
|
||||||
"Si alpha max > pi/2 on soustrait pi/2 à la matrice des alphas de manière récursive *)\n",
|
"Si alpha max > pi/2 on soustrait pi/2 à la matrice des alphas de manière récursive *)\n",
|
||||||
"let rec new_m_alpha m_alpha n_rec_alpha=\n",
|
"let rec new_m_alpha m_alpha n_rec_alpha=\n",
|
||||||
|
" let n_mo = Mat.dim1 m_alpha\n",
|
||||||
|
" in\n",
|
||||||
" let alpha_m =\n",
|
" let alpha_m =\n",
|
||||||
" \n",
|
" \n",
|
||||||
" (*Printf.printf \"%i\\n%!\" n_rec_alpha;*)\n",
|
" (*Printf.printf \"%i\\n%!\" n_rec_alpha;*)\n",
|
||||||
@ -1957,7 +1964,7 @@
|
|||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"let toto = [4];;\n",
|
"let toto = [4];;\n",
|
||||||
"let occ_m_C m_C toto= Mat.init_cols n_ao n_mo (fun i j ->\n",
|
"let occ_m_C m_C toto= Mat.init_cols n_ao 3 (fun i j ->\n",
|
||||||
" if not (List.mem j toto) \n",
|
" if not (List.mem j toto) \n",
|
||||||
" then m_C.{i,j}\n",
|
" then m_C.{i,j}\n",
|
||||||
" else 0.);;\n",
|
" else 0.);;\n",
|
||||||
@ -2096,7 +2103,7 @@
|
|||||||
"(* Calcul *)\n",
|
"(* Calcul *)\n",
|
||||||
"(* Fonction / Matrice des coef / Méthode(\"Boys\" ou \"ER\") / Pas(=< 1.) / Nombre d'itérations max / \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",
|
"0. (valeur de D pour initier la boucle) / critère de convergence sur D*)\n",
|
||||||
"final_m_C m_C \"boys\" 1. 3 0. 10e-7;;"
|
"final_m_C m_C \"boys\" 1. 20 0. 10e-7;;"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user