acceleration ER
This commit is contained in:
parent
7e542fc7f2
commit
7ee871c7a9
72
Work.ipynb
72
Work.ipynb
@ -78,7 +78,7 @@
|
||||
"(* --------- *)\n",
|
||||
"\n",
|
||||
"(*Mettre le bon chemin ici *)\n",
|
||||
"#cd \"/home/ydamour/QCaml\";;\n",
|
||||
"#cd \"/home/scemama/QCaml\";;\n",
|
||||
"\n",
|
||||
"#use \"topfind\";;\n",
|
||||
"#require \"jupyter.notebook\";;\n",
|
||||
@ -161,15 +161,13 @@
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"(*\n",
|
||||
"let xyz_string = \n",
|
||||
"\"3\n",
|
||||
"Water\n",
|
||||
"O 0. 0. 0.\n",
|
||||
"H -0.756950272703377558 0. -0.585882234512562827\n",
|
||||
"H 0.756950272703377558 0. -0.585882234512562827\n",
|
||||
"\"\n",
|
||||
"*) "
|
||||
"\""
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -185,7 +183,7 @@
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"\n",
|
||||
"(*\n",
|
||||
"let xyz_string = \n",
|
||||
"\"4\n",
|
||||
"H4\n",
|
||||
@ -193,7 +191,8 @@
|
||||
"H 1.8 0. 0.\n",
|
||||
"H 3.6 0. 0.\n",
|
||||
"H 5.4 0. 0.\n",
|
||||
"\"\n"
|
||||
"\"\n",
|
||||
"*)"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -203,7 +202,7 @@
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"(* Fonction création chaîne linéaire de n H *)\n",
|
||||
"\n",
|
||||
"(*\n",
|
||||
"let xyz d n = \n",
|
||||
" let accu = \"\"\n",
|
||||
" in\n",
|
||||
@ -219,7 +218,8 @@
|
||||
" accu\n",
|
||||
" in string_of_int(n) ^ \"\\nH\" ^ string_of_int(n) ^ \"\\n\" ^ toto accu d n;;\n",
|
||||
" \n",
|
||||
"let xyz_string = xyz 1.8 4;;\n"
|
||||
"let xyz_string = xyz 1.8 4;;\n",
|
||||
"*)"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -250,8 +250,8 @@
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"(*\n",
|
||||
"let basis_string = \n",
|
||||
"\n",
|
||||
"\"\n",
|
||||
"HYDROGEN\n",
|
||||
"S 6\n",
|
||||
@ -263,11 +263,10 @@
|
||||
"6 0.1001124280E+00 0.1303340841E+00\n",
|
||||
"\n",
|
||||
"\"\n",
|
||||
"*)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"(*\n",
|
||||
"let basis_string = \n",
|
||||
"\"\n",
|
||||
"HYDROGEN\n",
|
||||
@ -280,7 +279,6 @@
|
||||
"1 1.220000E-01 1.000000E+00\n",
|
||||
"P 1\n",
|
||||
"1 7.270000E-01 1.0000000\n",
|
||||
"\"\n",
|
||||
"\n",
|
||||
"OXYGEN\n",
|
||||
"S 9\n",
|
||||
@ -314,8 +312,7 @@
|
||||
"1 2.753000E-01 1.000000E+00\n",
|
||||
"D 1\n",
|
||||
"1 1.185000E+00 1.0000000\n",
|
||||
"\n",
|
||||
"*)"
|
||||
"\""
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -1493,6 +1490,7 @@
|
||||
"let n_mo = Mat.dim2 m_C ;;\n",
|
||||
"let multipoles = \n",
|
||||
" AOBasis.multipole ao_basis;;\n",
|
||||
" \n",
|
||||
"let sum a = \n",
|
||||
" Array.fold_left (fun accu x -> accu +. x) 0. a\n",
|
||||
" \n",
|
||||
@ -1524,7 +1522,51 @@
|
||||
" ) (Util.array_range 1 n_ao)\n",
|
||||
" in sum v\n",
|
||||
") (Util.array_range 1 n_ao)\n",
|
||||
"|> sum "
|
||||
"|> sum \n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"(* 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 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",
|
||||
" let m_b12 = Mat.init_cols n_mo n_mo (fun i j -> 0.) in\n",
|
||||
" let m_a12 = Mat.init_cols n_mo n_mo (fun i j -> 0.) in\n",
|
||||
" Array.iter (fun a ->\n",
|
||||
" Array.iter (fun b ->\n",
|
||||
" let mca = Vec.init n_mo (fun i -> m_C.{a,i} *. m_C.{b,i}) in\n",
|
||||
" Array.iter (fun e ->\n",
|
||||
" Array.iter (fun f ->\n",
|
||||
" let integral = ERI.get_phys ee_ints a e b f in\n",
|
||||
" Array.iter ( fun i -> \n",
|
||||
" let mcei = m_C.{e,i} *. m_C.{f,i} in\n",
|
||||
" Array.iter ( fun j -> \n",
|
||||
" let x = m_C.{e,i} *. m_C.{f,j} *. integral in\n",
|
||||
" let mcaij = ( mca.{i} -. mca.{j} ) in\n",
|
||||
" m_b12.{i,j} <- m_b12.{i,j} +. mcaij *. x;\n",
|
||||
" m_a12.{i,j} <- m_a12.{i,j} +. m_C.{a,i} *. m_C.{b,j} *. x\n",
|
||||
" -. 0.25 *. ( mcei -. m_C.{e,j} *. m_C.{f,j} ) *. mcaij *. integral \n",
|
||||
" ) (Util.array_range 1 n_mo)\n",
|
||||
" ) (Util.array_range 1 n_mo)\n",
|
||||
" ) (Util.array_range 1 n_ao)\n",
|
||||
" ) (Util.array_range 1 n_ao)\n",
|
||||
" ) (Util.array_range 1 n_ao)\n",
|
||||
" ) (Util.array_range 1 n_ao);\n",
|
||||
"\n",
|
||||
" Mat.init_cols n_mo n_mo ( fun i j -> \n",
|
||||
" if i= j then 0. \n",
|
||||
" else 0.25 *. (acos(-. m_a12.{i,j} /. sqrt((m_a12.{i,j}**2.) +. (m_b12.{i,j}**2.)))));;\n",
|
||||
"\n",
|
||||
"(*********************)\n",
|
||||
"\n",
|
||||
"f_alpha m_C;; "
|
||||
]
|
||||
},
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user