From 4dccd121e0da23254321db43a883f089e8b2686f Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Mon, 30 Mar 2020 18:06:21 +0200 Subject: [PATCH] Envoi Nico --- Notebooks/F12_fast.ipynb | 900 ++++++++++++++++++++++++++++++++++++--- Simulation.ml | 16 +- 2 files changed, 842 insertions(+), 74 deletions(-) diff --git a/Notebooks/F12_fast.ipynb b/Notebooks/F12_fast.ipynb index ef18f66..81c558e 100644 --- a/Notebooks/F12_fast.ipynb +++ b/Notebooks/F12_fast.ipynb @@ -9,16 +9,126 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "heading_collapsed": true + }, "source": [ "## Initialization" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-30T10:15:59.908500Z", + "start_time": "2020-03-30T10:15:58.731Z" + }, + "hidden": true, + "init_cell": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "val png_image : string -> unit = \n" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "- : unit = ()\n", + "Findlib has been successfully loaded. Additional directives:\n", + " #require \"package\";; to load a package\n", + " #list;; to list the available packages\n", + " #camlp4o;; to load camlp4 (standard syntax)\n", + " #camlp4r;; to load camlp4 (revised syntax)\n", + " #predicates \"p,q,...\";; to set these predicates\n", + " Topfind.reset();; to force that packages will be reloaded\n", + " #thread;; to enable threads\n", + "\n", + "- : unit = ()\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/scemama/qp2/external/opam/4.10.0/lib/bytes: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/base64: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/base64/base64.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/ocaml/compiler-libs: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/ocaml/compiler-libs/ocamlcommon.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/result: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/result/result.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/ppx_deriving/runtime: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/ppx_deriving/runtime/ppx_deriving_runtime.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/ppx_deriving_yojson/runtime: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/ppx_deriving_yojson/runtime/ppx_deriving_yojson_runtime.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/ocaml/unix.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/uuidm: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/uuidm/uuidm.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/easy-format: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/easy-format/easy_format.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/biniou: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/biniou/biniou.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/yojson: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/yojson/yojson.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/jupyter: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/jupyter/jupyter.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/jupyter/notebook: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/jupyter/notebook/jupyter_notebook.cma: loaded\n" + ] + }, + { + "data": { + "text/plain": [ + "val png_image : string -> Jupyter_notebook.display_id = \n" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/scemama/qp2/external/opam/4.10.0/lib/ocaml/compiler-libs/ocamlbytecomp.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/ocaml/compiler-libs/ocamltoplevel.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/ocaml/bigarray.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/lacaml: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/lacaml/lacaml.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/lacaml/top: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/lacaml/top/lacaml_top.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/astring: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/astring/astring.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/cmdliner: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/cmdliner/cmdliner.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/seq: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/stdlib-shims: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/stdlib-shims/stdlib_shims.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/fmt: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/fmt/fmt.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/fmt/fmt_cli.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/fmt/fmt_tty.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/re: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/re/re.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/alcotest: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/alcotest/alcotest.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/ocaml/str.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/zarith: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/zarith/zarith.cma: loaded\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/getopt: added to search path\n", + "/home/scemama/qp2/external/opam/4.10.0/lib/getopt/getopt.cma: loaded\n" + ] + } + ], "source": [ "let png_image = print_endline ;;\n", "\n", @@ -51,15 +161,24 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "### Modules" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-30T10:16:00.033900Z", + "start_time": "2020-03-30T10:15:58.750Z" + }, + "hidden": true, + "init_cell": true + }, "outputs": [], "source": [ "#load \"Constants.cmo\";;\n", @@ -75,16 +194,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "### Printers" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-30T10:16:00.095400Z", + "start_time": "2020-03-30T10:15:58.760Z" + }, + "hidden": true, + "init_cell": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "val pp_mo : Format.formatter -> MOBasis.t -> unit = \n" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "#install_printer AngularMomentum.pp_string ;;\n", "#install_printer Basis.pp ;;\n", @@ -113,25 +252,251 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "heading_collapsed": true + }, "source": [ "## Run" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "### Simulation\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { + "ExecuteTime": { + "end_time": "2020-03-30T10:16:00.287500Z", + "start_time": "2020-03-30T10:15:58.769Z" + }, + "hidden": true, + "init_cell": true, "scrolled": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "val basis_filename : string = \"/home/scemama/qp2/data/basis/6-31g\"\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val aux_basis_filename : string = \"/home/scemama/qp2/data/basis/cc-pvdz\"\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val nuclei : Nuclei.t = [|(Element.C, 0.0000 0.0000 0.0000)|]\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val frozen_core : bool = false\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val multiplicity : int = 1\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val state : int = 1\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val basis : Basis.t =\n", + " \n", + " Atomic Basis set\n", + " ----------------\n", + "\n", + "-----------------------------------------------------------------------\n", + " # Angular Coordinates (Bohr) Exponents Coefficients\n", + " Momentum X Y Z\n", + "-----------------------------------------------------------------------\n", + " 1-3 S 0.0000 0.0000 0.0000 3.04752488e+03 1.83473713e-03\n", + " 4.57369518e+02 1.40373228e-02\n", + " 1.03948685e+02 6.88426223e-02\n", + " 2.92101553e+01 2.32184443e-01\n", + " 9.28666296e+00 4.67941348e-01\n", + " 3.16392696e+00 3.62311985e-01\n", + " \n", + " 7.86827235e+00 -1.19332420e-01\n", + " 1.88128854e+00 -1.60854152e-01\n", + " 5.44249258e-01 1.14345644e+00\n", + " \n", + " 1.68714478e-01 1.00000000e+00\n", + " \n", + " \n", + "-----------------------------------------------------------------------\n", + " 4-9 P 0.0000 0.0000 0.0000 7.86827235e+00 6.89990666e-02\n", + " 1.88128854e+00 3.16423961e-01\n", + " 5.44249258e-01 7.44308291e-01\n", + " \n", + " 1.68714478e-01 1.00000000e+00\n", + " \n", + " \n", + "-----------------------------------------------------------------------\n", + "\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val aux_basis : Basis.t =\n", + " \n", + " Atomic Basis set\n", + " ----------------\n", + "\n", + "-----------------------------------------------------------------------\n", + " # Angular Coordinates (Bohr) Exponents Coefficients\n", + " Momentum X Y Z\n", + "-----------------------------------------------------------------------\n", + " 1-6 S 0.0000 0.0000 0.0000 3.04752488e+03 1.83473713e-03\n", + " 4.57369518e+02 1.40373228e-02\n", + " 1.03948685e+02 6.88426223e-02\n", + " 2.92101553e+01 2.32184443e-01\n", + " 9.28666296e+00 4.67941348e-01\n", + " 3.16392696e+00 3.62311985e-01\n", + " \n", + " 7.86827235e+00 -1.19332420e-01\n", + " 1.88128854e+00 -1.60854152e-01\n", + " 5.44249258e-01 1.14345644e+00\n", + " \n", + " 1.68714478e-01 1.00000000e+00\n", + " \n", + " 6.66500000e+03 6.92000000e-04\n", + " 1.00000000e+03 5.32900000e-03\n", + " 2.28000000e+02 2.70770000e-02\n", + " 6.47100000e+01 1.01718000e-01\n", + " 2.10600000e+01 2.74740000e-01\n", + " 7.49500000e+00 4.48564000e-01\n", + " 2.79700000e+00 2.85074000e-01\n", + " 5.21500000e-01 1.52040000e-02\n", + " 1.59600000e-01 -3.19100000e-03\n", + " \n", + " 6.66500000e+03 -1.46000000e-04\n", + " 1.00000000e+03 -1.15400000e-03\n", + " 2.28000000e+02 -5.72500000e-03\n", + " 6.47100000e+01 -2.33120000e-02\n", + " 2.10600000e+01 -6.39550000e-02\n", + " 7.49500000e+00 -1.49981000e-01\n", + " 2.79700000e+00 -1.27262000e-01\n", + " 5.21500000e-01 5.44529000e-01\n", + " 1.59600000e-01 5.80496000e-01\n", + " \n", + " 1.59600000e-01 1.00000000e+00\n", + " \n", + " \n", + "-----------------------------------------------------------------------\n", + " 4-15 P 0.0000 0.0000 0.0000 7.86827235e+00 6.89990666e-02\n", + " 1.88128854e+00 3.16423961e-01\n", + " 5.44249258e-01 7.44308291e-01\n", + " \n", + " 1.68714478e-01 1.00000000e+00\n", + " \n", + " 9.43900000e+00 3.81090000e-02\n", + " 2.00200000e+00 2.09480000e-01\n", + " 5.45600000e-01 5.08557000e-01\n", + " 1.51700000e-01 4.68842000e-01\n", + " \n", + " 1.51700000e-01 1.00000000e+00\n", + " \n", + " \n", + "-----------------------------------------------------------------------\n", + " 19-24 D 0.0000 0.0000 0.0000 5.50000000e-01 1.00000000e+00\n", + " \n", + " \n", + "-----------------------------------------------------------------------\n", + "\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val f12 : F12factor.t =\n", + " {F12factor.expo_s = 1.;\n", + " gaussian =\n", + " {GaussianOperator.coef_g =\n", + " [ -0.314400 -0.303700 -0.168100 -0.098110 -0.060240 -0.037260 ];\n", + " expo_g =\n", + " [ 0.220900 1.004000 3.622000 12.160000 45.870000 254.400000 ];\n", + " expo_g_inv =\n", + " [ 4.526935 0.996016 0.276091 0.082237 0.021801 0.003931 ]}}\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val charge : int = 0\n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val simulation : Simulation.t = \n" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "let basis_filename = \"/home/scemama/qp2/data/basis/6-31g\" \n", "let aux_basis_filename = \"/home/scemama/qp2/data/basis/cc-pvdz\" \n", @@ -155,9 +520,29 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-30T10:16:00.298200Z", + "start_time": "2020-03-30T10:15:58.778Z" + }, + "hidden": true, + "init_cell": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "val n_elec_alfa : int = 3\n", + "val n_elec_beta : int = 3\n", + "val n_elec : int = 6\n" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "let n_elec_alfa, n_elec_beta, n_elec = \n", " let e = Simulation.electrons simulation in\n", @@ -166,16 +551,131 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "### Hartree-Fock" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-30T10:16:00.474000Z", + "start_time": "2020-03-30T10:15:58.786Z" + }, + "hidden": true, + "init_cell": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15 significant shell pairs computed in 0.013028 seconds\n", + "1\n", + "2\n", + "3\n", + "6\n", + "Computed ERIs in 0.083199 seconds\n", + "MOs =\n", + "\n", + "\n", + " -- 1 -- -- 2 -- -- 3 -- -- 4 -- -- 5 --\n", + " 1 0.995189 -0.236456 0 -0 0\n", + " 2 0.0272807 0.573253 0 2.23673E-15 0\n", + " 3 -0.00753288 0.50151 0 -2.90078E-15 0\n", + " ... ... ... ... ...\n", + " 7 -0 -0 0.028973 0.7796 -0.0935272\n", + " 8 -0 -0 0.269658 0.0144514 0.61693\n", + " 9 -0 -0 -0.260237 0.10177 0.628851\n", + " \n", + "\n", + " -- 6 -- -- 7 -- -- 8 -- -- 9 --\n", + " 1 -0 0.0649867 -0 0\n", + " 2 -4.19726E-16 -1.62901 5.23178E-16 0\n", + " 3 -0 1.63955 -1.33409E-15 0\n", + " ... ... ... ...\n", + " 7 0.0892087 0 -0.920636 0.088067\n", + " 8 0.830283 0 -0.0170658 -0.580913\n", + " 9 -0.801275 0 -0.120181 -0.592138\n", + " \n" + ] + }, + { + "data": { + "text/plain": [ + "val hf : HartreeFock.t = \n", + "======================================================================\n", + " Restricted Hartree-Fock \n", + "======================================================================\n", + "\n", + " ------------------------------------------------------------\n", + " # HF energy Convergence HOMO-LUMO\n", + " ------------------------------------------------------------\n", + " 1 -36.54848150 7.4861e-01 0.2723\n", + " ------------------------------------------------------------\n", + "\n", + "\n", + " ============================================================\n", + " One-electron energy -52.6699343629\n", + " Kinetic 42.4526846308\n", + " Potential -95.1226189937\n", + " -------------------------------------------------------- \n", + " Two-electron energy 16.1214528647\n", + " Coulomb 21.8535626014\n", + " Exchange -5.7321097367\n", + " -------------------------------------------------------- \n", + " HF HOMO 0.8237527941\n", + " HF LUMO 8.2337246898\n", + " HF LUMO-LUMO 7.4099718957\n", + " -------------------------------------------------------- \n", + " Electronic energy -36.5484814981\n", + " Nuclear repulsion 0.0000000000\n", + " Hartree-Fock energy -36.5484814981\n", + " ============================================================\n", + " \n", + "\n" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val mo_basis : MOBasis.t =\n", + " Eigenvalues: -11.127416 -0.632049 -0.269831 0.131526 0.151773 \n", + " -- 1 -- -- 2 -- -- 3 -- -- 4 -- -- 5 --\n", + " 1 0.995189 -0.236456 0 -0 0\n", + " 2 0.0272807 0.573253 0 2.23673E-15 0\n", + " 3 -0.00753288 0.50151 0 -2.90078E-15 0\n", + " ... ... ... ... ...\n", + " 7 -0 -0 0.028973 0.7796 -0.0935272\n", + " 8 -0 -0 0.269658 0.0144514 0.61693\n", + " 9 -0 -0 -0.260237 0.10177 0.628851\n", + " \n", + " Eigenvalues: 0.786913 0.828232 0.869410 0.849164 \n", + " -- 6 -- -- 7 -- -- 8 -- -- 9 --\n", + " 1 -0 0.0649867 -0 0\n", + " 2 -4.19726E-16 -1.62901 5.23178E-16 0\n", + " 3 -0 1.63955 -1.33409E-15 0\n", + " ... ... ... ...\n", + " 7 0.0892087 0 -0.920636 0.088067\n", + " 8 0.830283 0 -0.0170658 -0.580913\n", + " 9 -0.801275 0 -0.120181 -0.592138\n", + " \n", + " \n" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "let hf = HartreeFock.make ~guess:`Hcore ~max_scf:1 simulation ;;\n", "\n", @@ -184,23 +684,83 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "heading_collapsed": true + }, "source": [ "# FCI-F12" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "## Common functions" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-30T10:16:00.507100Z", + "start_time": "2020-03-30T10:15:58.791Z" + }, + "hidden": true, + "init_cell": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "val f12 : F12factor.t =\n", + " {F12factor.expo_s = 1.;\n", + " gaussian =\n", + " {GaussianOperator.coef_g =\n", + " [ -0.314400 -0.303700 -0.168100 -0.098110 -0.060240 -0.037260 ];\n", + " expo_g =\n", + " [ 0.220900 1.004000 3.622000 12.160000 45.870000 254.400000 ];\n", + " expo_g_inv =\n", + " [ 4.526935 0.996016 0.276091 0.082237 0.021801 0.003931 ]}}\n" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val mo_num : int = 9\n" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val pp_spindet : Format.formatter -> Spindeterminant.t -> unit = \n" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val pp_det : Format.formatter -> Determinant.t -> unit = \n" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "let f12 = Util.of_some @@ Simulation.f12 simulation \n", "\n", @@ -219,9 +779,116 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-30T10:16:03.181400Z", + "start_time": "2020-03-30T10:15:58.799Z" + }, + "hidden": true, + "init_cell": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "val simulation_aux : Simulation.t = \n" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "66 significant shell pairs computed in 0.122791 seconds\n", + "1\n", + "2\n", + "3\n", + "6\n", + "9\n", + "10\n", + "11\n", + "12\n", + "15\n", + "18\n", + "Computed ERIs in 2.253815 seconds\n" + ] + }, + { + "data": { + "text/plain": [ + "val aux_basis : MOBasis.t =\n", + " Eigenvalues: -11.127416 -0.632049 -0.269831 0.131526 0.151773 \n", + " -- 1 -- -- 2 -- -- 3 -- -- 4 -- -- 5 --\n", + " 1 0.995189 -0.236456 8.68506E-12 4.39594E-12 -7.46805E-12\n", + " 2 0.0272807 0.573253 -4.95565E-12 -5.67405E-12 -4.47366E-13\n", + " 3 -0.00753288 0.50151 -8.79918E-13 -7.15566E-13 2.36287E-13\n", + " ... ... ... ... ...\n", + " 22 0 0 -0 -0 0\n", + " 23 0 0 -0 -0 0\n", + " 24 0 0 -0 -0 0\n", + " \n", + " Eigenvalues: 0.786913 0.828232 0.869410 0.849164 1.471540 \n", + " -- 6 -- -- 7 -- -- 8 -- -- 9 -- -- 10 --\n", + " 1 -9.38797E-12 0.0649867 -5.92171E-12 -1.01808E-11 2.71822E-13\n", + " 2 1.16966E-12 -1.62901 -8.06973E-13 6.55834E-12 -5.57185E-14\n", + " 3 6.63605E-13 1.63955 5.0525E-13 1.12933E-12 -2.61365E-15\n", + " ... ... ... ... ...\n", + " 22 0 0 0 0 -0.866025\n", + " 23 0 0 0 0 0\n", + " 24 0 0 0 0 0\n", + " \n", + " Eigenvalues: 1.031908 1.024910 1.028381 1.247024 25.947498 \n", + " -- 11 -- -- 12 -- -- 13 -- -- 14 -- -- 15 --\n", + " 1 4.00353E-10 -8.57233E-11 1.06969E-10 3.79632 -2.36312E-10\n", + " 2 1.4024E-10 1.19157E-12 9.07568E-12 -10.5897 -8.33662E-10\n", + " 3 3.79392E-12 7.24542E-12 -1.17682E-11 53.7881 -1.17393E-10\n", + " ... ... ... ... ...\n", + " 22 0 -0 0 -0 0\n", + " 23 0 -0 0 -0 1.05805E-13\n", + " 24 0 -0 0 -0 0\n", + " \n", + " Eigenvalues: 25.902263 25.896210 18.767112 377.619959 1.471980 \n", + " -- 16 -- -- 17 -- -- 18 -- -- 19 -- -- 20 --\n", + " 1 -1.81712E-09 7.6446E-09 27.2935 436.547 7.08629E-12\n", + " 2 -7.15883E-10 2.38277E-09 -127.494 -10.9671 -2.66825E-13\n", + " 3 -1.90088E-11 -1.74694E-11 -21.2025 -23.8199 -3.9535E-13\n", + " ... ... ... ... ...\n", + " 22 0 0 -0 0 -0.0208586\n", + " 23 0 0 -0 0 -0.442591\n", + " 24 0 0 -0 0 0.0417173\n", + " \n", + " Eigenvalues: 1.478279 1.478333 1.471737 \n", + " -- 21 -- -- 22 -- -- 23 --\n", + " 1 -1.36007E-11 -2.98191E-11 6.74696E-10\n", + " 2 5.12555E-13 1.12961E-12 -2.54412E-11\n", + " 3 7.58688E-13 1.66236E-12 -3.76295E-11\n", + " ... ... ...\n", + " 22 -0.0667224 0.492879 0.0467273\n", + " 23 0.890945 0.100348 0.0161496\n", + " 24 0.133445 -0.985758 -0.0934546\n", + " \n", + " \n" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "val aux_num : int = 23\n" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "let simulation_aux = \n", " let charge = Charge.to_int @@ Simulation.charge simulation \n", @@ -247,9 +914,45 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-30T10:16:41.349200Z", + "start_time": "2020-03-30T10:15:58.806Z" + }, + "hidden": true, + "init_cell": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "66 significant shell pairs computed in 1.895893 seconds\n", + "1\n", + "2\n", + "3\n", + "6\n", + "9\n", + "10\n", + "11\n", + "12\n", + "15\n", + "18\n", + "Computed ERIs in 35.957611 seconds\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "4-idx transformation \n", + "23 / 23\n", + "4-idx transformation \n", + "23 / 23\n" + ] + } + ], "source": [ "let () = ignore @@ MOBasis.f12_ints aux_basis\n", "let () = ignore @@ MOBasis.two_e_ints aux_basis" @@ -257,14 +960,18 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "## Integral-based functions" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "\\begin{equation}\n", "\\langle I | \\hat{H} | J \\rangle = \\begin{cases}\n", @@ -287,7 +994,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "let cancel_singles = false \n", @@ -313,7 +1022,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "### H integrals" ] @@ -321,7 +1032,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "let h_one =\n", @@ -346,7 +1059,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "### F12 integrals" ] @@ -354,7 +1069,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "let f_two = \n", @@ -386,14 +1103,18 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "## Determinant-based functions" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "### Integrals" ] @@ -401,7 +1122,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "let f12_integrals mo_basis =\n", @@ -437,7 +1160,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "### Determinant space" ] @@ -445,7 +1170,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "let is_a_double det_space =\n", @@ -478,7 +1205,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "let in_space = \n", @@ -514,6 +1243,7 @@ "cell_type": "code", "execution_count": null, "metadata": { + "hidden": true, "scrolled": false }, "outputs": [], @@ -527,14 +1257,18 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "Permutation operator $p_{12}$ that generates a new determinant with electrons 1 and 2 swapped." ] }, { "cell_type": "raw", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "let p12 det_space =\n", " let mo_class = DeterminantSpace.mo_class det_space in\n", @@ -578,7 +1312,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "## Matrices $\\langle I | H | \\alpha \\rangle$ and $\\langle I | F | \\alpha \\rangle$ " ] @@ -587,6 +1323,7 @@ "cell_type": "code", "execution_count": null, "metadata": { + "hidden": true, "scrolled": true }, "outputs": [], @@ -617,6 +1354,7 @@ { "cell_type": "raw", "metadata": { + "hidden": true, "raw_mimetype": "text/markdown" }, "source": [ @@ -654,7 +1392,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "Function to generate all intermediate external determinants $|\\alpha \\rangle$ between $|I\\rangle$ and $|J\\rangle$, with a positive phase factor.\n", "\n", @@ -664,7 +1404,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "let generate_alphas ki kj exc =\n", @@ -792,7 +1534,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "let check n integral_value exc =\n", @@ -870,7 +1614,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "let array_3_init d1 d2 d3 f =\n", @@ -925,14 +1671,18 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "******" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "heading_collapsed": true + }, "source": [ "# 1. 0 " ] @@ -940,7 +1690,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "let m_0111_1H_1F = \n", @@ -1106,7 +1858,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "heading_collapsed": true + }, "source": [ "# 2. 1" ] @@ -1115,6 +1869,7 @@ "cell_type": "code", "execution_count": null, "metadata": { + "hidden": true, "scrolled": false }, "outputs": [], @@ -1395,14 +2150,18 @@ }, { "cell_type": "raw", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "Timing : 40.020974 0.019294" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "heading_collapsed": true + }, "source": [ "# 3. 2" ] @@ -1410,7 +2169,9 @@ { "cell_type": "code", "execution_count": 129, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [ { "data": { @@ -1918,7 +2679,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "heading_collapsed": true + }, "source": [ "# 4. 3" ] @@ -1926,7 +2689,9 @@ { "cell_type": "code", "execution_count": 130, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [ { "data": { @@ -2030,7 +2795,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "---------------------------" ] @@ -2039,6 +2806,7 @@ "cell_type": "code", "execution_count": null, "metadata": { + "hidden": true, "scrolled": false }, "outputs": [], @@ -2179,9 +2947,9 @@ } ], "metadata": { - "celltoolbar": "Raw Cell Format", + "celltoolbar": "Initialization Cell", "kernelspec": { - "display_name": "OCaml 4.07.1", + "display_name": "OCaml 4.10.0", "language": "OCaml", "name": "ocaml-jupyter" }, @@ -2192,7 +2960,7 @@ "name": "OCaml", "nbconverter_exporter": null, "pygments_lexer": "OCaml", - "version": "4.07.1" + "version": "4.10.0" } }, "nbformat": 4, diff --git a/Simulation.ml b/Simulation.ml index 6a010b4..c8287bd 100644 --- a/Simulation.ml +++ b/Simulation.ml @@ -1,6 +1,6 @@ type t = { charge : Charge.t; - electrons : Electrons.t ; + electrons : Electrons.t; nuclei : Nuclei.t; basis : Basis.t; ao_basis : AOBasis.t; @@ -19,12 +19,12 @@ let mu_erf t = t.mu_erf let f12 t = t.f12 let make ?cartesian:(cartesian=false) - ?multiplicity:(multiplicity=1) - ?charge:(charge=0) - ?f12 - ?mu_erf - ~nuclei - basis + ?multiplicity:(multiplicity=1) + ?charge:(charge=0) + ?f12 + ?mu_erf + ~nuclei + basis = (* Tune Garbage Collector *) @@ -35,7 +35,7 @@ let make ?cartesian:(cartesian=false) Electrons.make ~multiplicity ~charge nuclei in - let charge = + let chargre = Charge.(Nuclei.charge nuclei + Electrons.charge electrons) in