Ajout base pour C et N

This commit is contained in:
Yann Damour 2020-05-22 15:48:59 +02:00
parent 096b436ca7
commit 77c65a1b99
2 changed files with 108 additions and 35 deletions

View File

@ -237,8 +237,7 @@
"source": [
"\n",
"let basis_string = \n",
"\"\n",
"HYDROGEN\n",
"\"HYDROGEN\n",
"S 6\n",
"1 0.3552322122E+02 0.9163596281E-02\n",
"2 0.6513143725E+01 0.4936149294E-01\n",
@ -247,7 +246,39 @@
"5 0.2430767471E+00 0.4164915298E+00\n",
"6 0.1001124280E+00 0.1303340841E+00\n",
"\"\n",
"(*\n",
"CARBON\n",
"S 6\n",
"1 0.7427370491E+03 0.9163596281E-02\n",
"2 0.1361800249E+03 0.4936149294E-01\n",
"3 0.3809826352E+02 0.1685383049E+00\n",
"4 0.1308778177E+02 0.3705627997E+00\n",
"5 0.5082368648E+01 0.4164915298E+00\n",
"6 0.2093200076E+01 0.1303340841E+00\n",
"L 6\n",
"1 0.3049723950E+02 -0.1325278809E-01 0.3759696623E-02\n",
"2 0.6036199601E+01 -0.4699171014E-01 0.3767936984E-01\n",
"3 0.1876046337E+01 -0.3378537151E-01 0.1738967435E+00\n",
"4 0.7217826470E+00 0.2502417861E+00 0.4180364347E+00\n",
"5 0.3134706954E+00 0.5951172526E+00 0.4258595477E+00\n",
"6 0.1436865550E+00 0.2407061763E+00 0.1017082955E+00\n",
"\n",
"NITROGEN\n",
"S 6\n",
"1 0.1027828458E+04 0.9163596281E-02\n",
"2 0.1884512226E+03 0.4936149294E-01\n",
"3 0.5272186097E+02 0.1685383049E+00\n",
"4 0.1811138217E+02 0.3705627997E+00\n",
"5 0.7033179691E+01 0.4164915298E+00\n",
"6 0.2896651794E+01 0.1303340841E+00\n",
"L 6\n",
"1 0.3919880787E+02 -0.1325278809E-01 0.3759696623E-02\n",
"2 0.7758467071E+01 -0.4699171014E-01 0.3767936984E-01\n",
"3 0.2411325783E+01 -0.3378537151E-01 0.1738967435E+00\n",
"4 0.9277239437E+00 0.2502417861E+00 0.4180364347E+00\n",
"5 0.4029111410E+00 0.5951172526E+00 0.4258595477E+00\n",
"6 0.1846836552E+00 0.2407061763E+00 0.1017082955E+00\n",
"*)\n",
"\n",
"\n",
"(*\n",
@ -320,29 +351,6 @@
"hidden": true
},
"outputs": [],
"source": [
"(*let nuclei =\n",
" Nuclei.of_xyz_string xyz_string\n",
" \n",
"let basis = \n",
" Basis.of_nuclei_and_basis_string nuclei basis_string\n",
" \n",
"let simulation = \n",
" Simulation.make ~charge:0 ~multiplicity:1 ~nuclei basis\n",
" \n",
"let ao_basis = \n",
" Simulation.ao_basis simulation\n",
" \n",
"let nocc =\n",
" let elec = Simulation.electrons simulation in\n",
" Electrons.n_alfa elec*)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"let nuclei =\n",
" Nuclei.of_xyz_string xyz_string\n",
@ -358,7 +366,32 @@
" \n",
"let nocc =\n",
" let elec = Simulation.electrons simulation in\n",
" Electrons.n_alfa elec\n"
" Electrons.n_alfa elec"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"(*\n",
"let nuclei =\n",
" Nuclei.of_xyz_string xyz_string\n",
" \n",
"let basis = \n",
" Basis.of_nuclei_and_basis_string nuclei basis_string\n",
" \n",
"let simulation = \n",
" Simulation.make ~charge:0 ~multiplicity:1 ~nuclei basis\n",
" \n",
"let ao_basis = \n",
" Simulation.ao_basis simulation\n",
" \n",
"let nocc =\n",
" let elec = Simulation.electrons simulation in\n",
" Electrons.n_alfa elec\n",
"*)"
]
},
{
@ -2007,10 +2040,14 @@
"in int_list vec_occ;;\n",
"\n",
"(* Fonction de rassemblement de 2 matrices *)\n",
"let assemble m_occ m_vir = Mat.init_cols n_ao n_mo ( fun i j ->\n",
" if j > nocc \n",
" then m_vir.{i,j-(n_mo - nocc)}\n",
" else m_occ.{i,j});;\n",
"let assemble m_occ m_vir =\n",
" let v_occ = Mat.to_col_vecs m_occ\n",
" in\n",
" let v_vir = Mat.to_col_vecs m_vir\n",
" in\n",
" let m = Array.append v_occ v_vir\n",
"in Mat.of_col_vecs m;;\n",
"\n",
"\n",
"(**********************************)\n",
"(*\n",

View File

@ -109,7 +109,40 @@
"4 0.6259552659E+00 0.3705627997E+00\n",
"5 0.2430767471E+00 0.4164915298E+00\n",
"6 0.1001124280E+00 0.1303340841E+00\n",
"\"\n"
"\"\n",
"(*\n",
"CARBON\n",
"S 6\n",
"1 0.7427370491E+03 0.9163596281E-02\n",
"2 0.1361800249E+03 0.4936149294E-01\n",
"3 0.3809826352E+02 0.1685383049E+00\n",
"4 0.1308778177E+02 0.3705627997E+00\n",
"5 0.5082368648E+01 0.4164915298E+00\n",
"6 0.2093200076E+01 0.1303340841E+00\n",
"L 6\n",
"1 0.3049723950E+02 -0.1325278809E-01 0.3759696623E-02\n",
"2 0.6036199601E+01 -0.4699171014E-01 0.3767936984E-01\n",
"3 0.1876046337E+01 -0.3378537151E-01 0.1738967435E+00\n",
"4 0.7217826470E+00 0.2502417861E+00 0.4180364347E+00\n",
"5 0.3134706954E+00 0.5951172526E+00 0.4258595477E+00\n",
"6 0.1436865550E+00 0.2407061763E+00 0.1017082955E+00\n",
"\n",
"NITROGEN\n",
"S 6\n",
"1 0.1027828458E+04 0.9163596281E-02\n",
"2 0.1884512226E+03 0.4936149294E-01\n",
"3 0.5272186097E+02 0.1685383049E+00\n",
"4 0.1811138217E+02 0.3705627997E+00\n",
"5 0.7033179691E+01 0.4164915298E+00\n",
"6 0.2896651794E+01 0.1303340841E+00\n",
"L 6\n",
"1 0.3919880787E+02 -0.1325278809E-01 0.3759696623E-02\n",
"2 0.7758467071E+01 -0.4699171014E-01 0.3767936984E-01\n",
"3 0.2411325783E+01 -0.3378537151E-01 0.1738967435E+00\n",
"4 0.9277239437E+00 0.2502417861E+00 0.4180364347E+00\n",
"5 0.4029111410E+00 0.5951172526E+00 0.4258595477E+00\n",
"6 0.1846836552E+00 0.2407061763E+00 0.1017082955E+00\n",
"*)\n"
]
},
{
@ -725,10 +758,13 @@
"in int_list vec_occ;;\n",
"\n",
"(* 5. Fonction de rassemblement de 2 matrices *)\n",
"let assemble m_occ m_vir = Mat.init_cols n_ao n_mo ( fun i j ->\n",
" if j > nocc \n",
" then m_vir.{i,j-(n_mo - nocc)}\n",
" else m_occ.{i,j});;\n",
"let assemble m_occ m_vir =\n",
" let v_occ = Mat.to_col_vecs m_occ\n",
" in\n",
" let v_vir = Mat.to_col_vecs m_vir\n",
" in\n",
" let m = Array.append v_occ v_vir\n",
"in Mat.of_col_vecs m;;\n",
" \n",
"(* 6. Séparation des OMs -> m_occ : OMs occupées; m_vir : OMs vacantes *)\n",
"let m_occ , m_vir = split_mat m_C list_occ;;\n"