2020-12-07 13:52:56 +01:00
|
|
|
open Alcotest
|
|
|
|
open Particles
|
|
|
|
|
|
|
|
let wd = Common.Qcaml.root ^ Filename.dir_sep ^ "test"
|
|
|
|
|
|
|
|
let tests =
|
|
|
|
[ "HF Water", `Quick, fun () ->
|
|
|
|
let nuclei =
|
|
|
|
wd ^ Filename.dir_sep ^ "water.xyz"
|
|
|
|
|> Nuclei.of_xyz_file
|
|
|
|
in
|
|
|
|
let basis_filename =
|
|
|
|
wd ^ Filename.dir_sep ^ "cc-pvdz"
|
|
|
|
in
|
|
|
|
let ao_basis =
|
|
|
|
Ao.Basis.of_nuclei_and_basis_filename ~kind:`Gaussian
|
|
|
|
~cartesian:false ~nuclei basis_filename
|
|
|
|
in
|
|
|
|
let simulation = Simulation.make ~nuclei ao_basis in
|
|
|
|
let hf = Mo.Hartree_fock.make ~guess:`Huckel simulation in
|
|
|
|
Format.printf "%a" (Mo.Hartree_fock.pp) hf;
|
2020-12-07 14:12:35 +01:00
|
|
|
check (float 2.e-10) "Energy" (-76.0267987005) (Mo.Hartree_fock.energy hf);
|
2020-12-07 13:52:56 +01:00
|
|
|
let e_mp2 = Perturbation.Mp2.make ~frozen_core:true hf in
|
|
|
|
Printf.printf "%s\n" (string_of_float e_mp2);
|
2020-12-07 14:12:35 +01:00
|
|
|
check (float 1.e-9) "MP2" (-0.2016211415) (e_mp2)
|
2020-12-07 13:52:56 +01:00
|
|
|
]
|
|
|
|
|