2020-05-13 12:07:31 +02:00
|
|
|
{
|
|
|
|
"cells": [
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": null,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"let png_image = print_endline ;;\n",
|
|
|
|
"\n",
|
|
|
|
"(* --------- *)\n",
|
|
|
|
"\n",
|
|
|
|
"(*Mettre le bon chemin ici *)\n",
|
|
|
|
"#cd \"/home/ydamour/QCaml\";;\n",
|
|
|
|
"\n",
|
|
|
|
"#use \"topfind\";;\n",
|
|
|
|
"#require \"jupyter.notebook\";;\n",
|
|
|
|
"\n",
|
|
|
|
"#require \"gnuplot\";;\n",
|
|
|
|
"let png_image name = \n",
|
|
|
|
" Jupyter_notebook.display_file ~base64:true \"image/png\" (name)\n",
|
|
|
|
";;\n",
|
|
|
|
"\n",
|
|
|
|
"#require \"lacaml.top\";;\n",
|
|
|
|
"#require \"alcotest\";;\n",
|
|
|
|
"#require \"str\";;\n",
|
|
|
|
"#require \"bigarray\";;\n",
|
|
|
|
"#require \"zarith\";;\n",
|
|
|
|
"#require \"getopt\";;\n",
|
|
|
|
"#directory \"_build\";;\n",
|
|
|
|
"#directory \"_build/Basis\";;\n",
|
|
|
|
"#directory \"_build/CI\";;\n",
|
|
|
|
"#directory \"_build/MOBasis\";;\n",
|
|
|
|
"#directory \"_build/Nuclei\";;\n",
|
|
|
|
"#directory \"_build/Parallel\";;\n",
|
|
|
|
"#directory \"_build/Perturbation\";;\n",
|
|
|
|
"#directory \"_build/SCF\";;\n",
|
|
|
|
"#directory \"_build/Utils\";;\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"#load \"Constants.cmo\";;\n",
|
|
|
|
"#load_rec \"Util.cma\";;\n",
|
|
|
|
"#load_rec \"Matrix.cmo\";;\n",
|
|
|
|
"#load_rec \"Simulation.cmo\";;\n",
|
|
|
|
"#load_rec \"Spindeterminant.cmo\";;\n",
|
|
|
|
"#load_rec \"Determinant.cmo\";;\n",
|
|
|
|
"#load_rec \"HartreeFock.cmo\";;\n",
|
|
|
|
"#load_rec \"MOBasis.cmo\";;\n",
|
|
|
|
"#load_rec \"F12CI.cmo\";;\n",
|
|
|
|
"\n",
|
|
|
|
"#install_printer AngularMomentum.pp_string ;;\n",
|
|
|
|
"#install_printer Basis.pp ;;\n",
|
|
|
|
"#install_printer Charge.pp ;;\n",
|
|
|
|
"#install_printer Coordinate.pp ;;\n",
|
|
|
|
"#install_printer Vector.pp;;\n",
|
|
|
|
"#install_printer Matrix.pp;;\n",
|
|
|
|
"#install_printer Util.pp_float_2darray;;\n",
|
|
|
|
"#install_printer Util.pp_float_array;;\n",
|
|
|
|
"#install_printer Util.pp_matrix;;\n",
|
|
|
|
"#install_printer HartreeFock.pp ;;\n",
|
|
|
|
"#install_printer Fock.pp ;;\n",
|
|
|
|
"#install_printer MOClass.pp ;;\n",
|
|
|
|
"(*\n",
|
|
|
|
"#install_printer DeterminantSpace.pp;;\n",
|
|
|
|
"#install_printer SpindeterminantSpace.pp;;\n",
|
|
|
|
"*)\n",
|
|
|
|
"#install_printer Bitstring.pp;;\n",
|
|
|
|
"let pp_mo ppf t = MOBasis.pp ~start:1 ~finish:0 ppf t ;;\n",
|
|
|
|
"#install_printer pp_mo;;\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"(* --------- *)\n",
|
|
|
|
"\n",
|
|
|
|
"open Lacaml.D"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": null,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"let xyz_string =\n",
|
|
|
|
"\" 6\n",
|
|
|
|
"Hydrogen chain, d=1.8 Bohr\n",
|
|
|
|
"H -2.381297 0.000000 0.000000\n",
|
|
|
|
"H -1.428778 0.000000 0.000000\n",
|
|
|
|
"H -0.476259 0.000000 0.000000\n",
|
|
|
|
"H 0.476259 0.000000 0.000000\n",
|
|
|
|
"H 1.428778 0.000000 0.000000\n",
|
|
|
|
"H 2.381297 0.000000 0.000000\n",
|
|
|
|
"\"\n",
|
|
|
|
"\n",
|
|
|
|
"let basis_string = \n",
|
|
|
|
"\"\n",
|
|
|
|
"HYDROGEN\n",
|
|
|
|
"S 6\n",
|
|
|
|
"1 0.3552322122E+02 0.9163596281E-02\n",
|
|
|
|
"2 0.6513143725E+01 0.4936149294E-01\n",
|
|
|
|
"3 0.1822142904E+01 0.1685383049E+00\n",
|
|
|
|
"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",
|
|
|
|
"\""
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": null,
|
|
|
|
"metadata": {},
|
|
|
|
"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 hf = HartreeFock.make simulation\n",
|
|
|
|
"\n",
|
2020-05-18 16:04:18 +02:00
|
|
|
"let mo_basis = MOBasis.of_hartree_fock hf;;"
|
2020-05-13 12:07:31 +02:00
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": null,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"let ci =\n",
|
|
|
|
" DeterminantSpace.fci_of_mo_basis mo_basis ~frozen_core:false\n",
|
|
|
|
" |> CI.make\n",
|
|
|
|
" \n",
|
|
|
|
"let ci_coef, ci_energy = Lazy.force ci.eigensystem "
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": null,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": []
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": null,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": []
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"metadata": {
|
|
|
|
"kernelspec": {
|
|
|
|
"display_name": "OCaml 4.10.0",
|
|
|
|
"language": "OCaml",
|
|
|
|
"name": "ocaml-jupyter"
|
|
|
|
},
|
|
|
|
"language_info": {
|
|
|
|
"codemirror_mode": "text/x-ocaml",
|
|
|
|
"file_extension": ".ml",
|
|
|
|
"mimetype": "text/x-ocaml",
|
|
|
|
"name": "OCaml",
|
|
|
|
"nbconverter_exporter": null,
|
|
|
|
"pygments_lexer": "OCaml",
|
|
|
|
"version": "4.10.0"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"nbformat": 4,
|
|
|
|
"nbformat_minor": 4
|
|
|
|
}
|