diff --git a/ocaml/Input_cisd_sc2.ml b/ocaml/Input_cisd_sc2.ml index 48d99559..47dca5e5 100644 --- a/ocaml/Input_cisd_sc2.ml +++ b/ocaml/Input_cisd_sc2.ml @@ -9,7 +9,8 @@ module Cisd_sc2 : sig do_pt2_end : 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 @@ -33,6 +34,11 @@ end = struct |> Det_number_max.of_int ;; + let write_n_det_max_cisd_sc2 n = + Det_number_max.to_int n + |> Ezfio.set_cisd_sc2_selected_n_det_max_cisd_sc2 + ;; + let read_pt2_max () = if not (Ezfio.has_cisd_sc2_selected_pt2_max ()) then @@ -44,6 +50,11 @@ end = struct |> PT2_energy.of_float ;; + let write_pt2_max p = + PT2_energy.to_float p + |> Ezfio.set_cisd_sc2_selected_pt2_max + ;; + let read_do_pt2_end () = if not (Ezfio.has_cisd_sc2_selected_do_pt2_end ()) then @@ -54,6 +65,10 @@ end = struct Ezfio.get_cisd_sc2_selected_do_pt2_end () ;; + let write_do_pt2_end = + Ezfio.set_cisd_sc2_selected_do_pt2_end + ;; + let read () = { n_det_max_cisd_sc2 = read_n_det_max_cisd_sc2 (); @@ -62,6 +77,15 @@ end = struct } ;; + let write { n_det_max_cisd_sc2 ; + pt2_max ; + do_pt2_end ; + } = + write_n_det_max_cisd_sc2 n_det_max_cisd_sc2; + write_pt2_max pt2_max; + write_do_pt2_end do_pt2_end; + ;; + let to_string b = Printf.sprintf " n_det_max_cisd_sc2 = %s diff --git a/ocaml/qp_edit.ml b/ocaml/qp_edit.ml index d29d2f91..a01bd2f1 100644 --- a/ocaml/qp_edit.ml +++ b/ocaml/qp_edit.ml @@ -88,8 +88,10 @@ let set str s = | Mo_basis -> | Electrons -> | Determinants -> - | Cisd_sc2 -> *) + | Cisd_sc2 -> + Input.Cisd_sc2.of_rst str + |> Input.Cisd_sc2.write | Nuclei -> Input.Nuclei.of_rst str |> Input.Nuclei.write @@ -129,7 +131,6 @@ let run ezfio_filename = Ao_basis ; Mo_basis ; Bielec_integrals ; - Cisd_sc2 ; Determinants ; Full_ci ; Hartree_fock ; @@ -142,6 +143,7 @@ let run ezfio_filename = let tasks = [ Nuclei ; Bielec_integrals ; + Cisd_sc2 ; ] in