From a6d2892ab7aea0809c6ebc197608dcc43443f5c4 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Mon, 3 Nov 2014 22:33:32 +0100 Subject: [PATCH] Input_bi_ints is written by qp_edit --- ocaml/Input_bi_integrals.ml | 56 ++++++++++++++++++++++++++++++++++++- ocaml/qp_edit.ml | 6 ++-- 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/ocaml/Input_bi_integrals.ml b/ocaml/Input_bi_integrals.ml index fdb859d9..8cc8203c 100644 --- a/ocaml/Input_bi_integrals.ml +++ b/ocaml/Input_bi_integrals.ml @@ -13,7 +13,8 @@ module Bielec_integrals : sig direct : bool; } with sexp ;; - val read : unit -> t + val read : unit -> t + val write : t -> unit val to_string : t -> string val to_rst : t -> Rst_string.t val of_rst : Rst_string.t -> t @@ -40,6 +41,11 @@ end = struct Ezfio.get_bielec_integrals_read_ao_integrals () ;; + let write_read_ao_integrals = + Ezfio.set_bielec_integrals_read_ao_integrals + ;; + + let read_read_mo_integrals () = if not (Ezfio.has_bielec_integrals_read_mo_integrals ()) then get_default "read_mo_integrals" @@ -49,6 +55,11 @@ end = struct Ezfio.get_bielec_integrals_read_mo_integrals () ;; + let write_read_mo_integrals = + Ezfio.set_bielec_integrals_read_mo_integrals + ;; + + let read_write_ao_integrals () = if not (Ezfio.has_bielec_integrals_write_ao_integrals ()) then get_default "write_ao_integrals" @@ -58,6 +69,11 @@ end = struct Ezfio.get_bielec_integrals_write_ao_integrals () ;; + let write_write_ao_integrals = + Ezfio.set_bielec_integrals_write_ao_integrals + ;; + + let read_write_mo_integrals () = if not (Ezfio.has_bielec_integrals_write_mo_integrals ()) then get_default "write_mo_integrals" @@ -67,6 +83,11 @@ end = struct Ezfio.get_bielec_integrals_write_mo_integrals () ;; + let write_write_mo_integrals = + Ezfio.set_bielec_integrals_write_mo_integrals + ;; + + let read_direct () = if not (Ezfio.has_bielec_integrals_direct ()) then get_default "direct" @@ -76,6 +97,11 @@ end = struct Ezfio.get_bielec_integrals_direct () ;; + let write_direct = + Ezfio.set_bielec_integrals_direct + ;; + + let read_threshold_ao () = if not (Ezfio.has_bielec_integrals_threshold_ao ()) then get_default "threshold_ao" @@ -86,6 +112,12 @@ end = struct |> Threshold.of_float ;; + let write_threshold_ao t = + Threshold.to_float t + |> Ezfio.set_bielec_integrals_threshold_ao + ;; + + let read_threshold_mo () = if not (Ezfio.has_bielec_integrals_threshold_mo ()) then get_default "threshold_mo" @@ -96,6 +128,12 @@ end = struct |> Threshold.of_float ;; + let write_threshold_mo t = + Threshold.to_float t + |> Ezfio.set_bielec_integrals_threshold_mo + ;; + + let read ()= let result = { read_ao_integrals = read_read_ao_integrals(); @@ -115,6 +153,22 @@ end = struct result ;; + let write b = + if (b.read_ao_integrals && + b.write_ao_integrals) then + failwith "Read and Write AO integrals are both true."; + if (b.read_mo_integrals && + b.write_mo_integrals) then + failwith "Read and Write MO integrals are both true."; + write_read_ao_integrals b.read_ao_integrals; + write_read_mo_integrals b.read_mo_integrals; + write_write_ao_integrals b.write_ao_integrals ; + write_write_mo_integrals b.write_mo_integrals ; + write_threshold_ao b.threshold_ao; + write_threshold_mo b.threshold_mo; + write_direct b.direct; + ;; + let to_string b = Printf.sprintf " read_ao_integrals = %s diff --git a/ocaml/qp_edit.ml b/ocaml/qp_edit.ml index 58724215..d29d2f91 100644 --- a/ocaml/qp_edit.ml +++ b/ocaml/qp_edit.ml @@ -92,10 +92,10 @@ let set str s = *) | Nuclei -> Input.Nuclei.of_rst str - |> Input.Nuclei.write; + |> Input.Nuclei.write | Bielec_integrals -> - let b = Input.Bielec_integrals.of_rst str in - print_string (Input.Bielec_integrals.to_string b); + Input.Bielec_integrals.of_rst str + |> Input.Bielec_integrals.write (* | Ao_basis -> *)