From c8b1170270dd66b4cca0e7093f9d5984ae810d7b Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Fri, 25 Sep 2020 16:17:43 +0200 Subject: [PATCH] Added multipole integrals in run_integrals --- Basis/Multipole.ml | 15 +++++++++++++++ Basis/Multipole.mli | 5 +++++ run_integrals.ml | 5 +++++ 3 files changed, 25 insertions(+) diff --git a/Basis/Multipole.ml b/Basis/Multipole.ml index 4aaa870..67df599 100644 --- a/Basis/Multipole.ml +++ b/Basis/Multipole.ml @@ -227,3 +227,18 @@ let of_basis basis = done; result + +let to_file ~filename eni_array = + let n = Mat.dim1 eni_array in + let oc = open_out filename in + + for j=1 to n do + for i=1 to j do + let value = eni_array.{i,j} in + if (value <> 0.) then + Printf.fprintf oc " %5d %5d %20.15f\n" i j value; + done; + done; + close_out oc + + diff --git a/Basis/Multipole.mli b/Basis/Multipole.mli index 841a3c2..c377045 100644 --- a/Basis/Multipole.mli +++ b/Basis/Multipole.mli @@ -55,3 +55,8 @@ val matrix_r2 : t -> Mat.t val of_basis : Basis.t -> t + + +val to_file : filename:string -> Mat.t -> unit +(** Write a matrix to a file *) + diff --git a/run_integrals.ml b/run_integrals.ml index 0ff96e4..b75b6f8 100644 --- a/run_integrals.ml +++ b/run_integrals.ml @@ -48,10 +48,15 @@ let run () = let eN_ints = AOBasis.eN_ints ao_basis in let kin_ints = AOBasis.kin_ints ao_basis in let ee_ints = AOBasis.ee_ints ao_basis in + let multipole = AOBasis.multipole ao_basis in Overlap.to_file ~filename:("Ov.dat") overlap; NucInt.to_file ~filename:("Nuc.dat") eN_ints; KinInt.to_file ~filename:("Kin.dat") kin_ints; ERI.to_file ~filename:("ERI.dat") ee_ints; + Multipole.to_file ~filename:("x.dat") (Multipole.matrix_x multipole); + Multipole.to_file ~filename:("y.dat") (Multipole.matrix_y multipole); + Multipole.to_file ~filename:("z.dat") (Multipole.matrix_z multipole); + match range_separation with | Some _mu -> ERI_lr.to_file ~filename:("ERI_lr.dat") (AOBasis.ee_lr_ints ao_basis)