mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-11-12 16:33:37 +01:00
This commit is contained in:
parent
d870cb7a87
commit
7c52335c85
@ -1,113 +0,0 @@
|
||||
(* =~=~ *)
|
||||
(* Init *)
|
||||
(* =~=~ *)
|
||||
|
||||
open Qptypes;;
|
||||
open Qputils;;
|
||||
open Sexplib.Std;;
|
||||
|
||||
module Ao_two_e_eff_pot : sig
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
adjoint_tc_h : bool;
|
||||
grad_squared : bool;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
val read : unit -> t option
|
||||
val write : t-> unit
|
||||
val to_string : t -> string
|
||||
val to_rst : t -> Rst_string.t
|
||||
val of_rst : Rst_string.t -> t option
|
||||
end = struct
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
adjoint_tc_h : bool;
|
||||
grad_squared : bool;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
|
||||
let get_default = Qpackage.get_ezfio_default "ao_two_e_eff_pot";;
|
||||
|
||||
(* =~=~=~=~=~=~==~=~=~=~=~=~ *)
|
||||
(* Generate Special Function *)
|
||||
(* =~=~=~==~=~~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read snippet for adjoint_tc_h *)
|
||||
let read_adjoint_tc_h () =
|
||||
if not (Ezfio.has_ao_two_e_eff_pot_adjoint_tc_h ()) then
|
||||
get_default "adjoint_tc_h"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_ao_two_e_eff_pot_adjoint_tc_h
|
||||
;
|
||||
Ezfio.get_ao_two_e_eff_pot_adjoint_tc_h ()
|
||||
;;
|
||||
(* Write snippet for adjoint_tc_h *)
|
||||
let write_adjoint_tc_h =
|
||||
Ezfio.set_ao_two_e_eff_pot_adjoint_tc_h
|
||||
;;
|
||||
|
||||
(* Read snippet for grad_squared *)
|
||||
let read_grad_squared () =
|
||||
if not (Ezfio.has_ao_two_e_eff_pot_grad_squared ()) then
|
||||
get_default "grad_squared"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_ao_two_e_eff_pot_grad_squared
|
||||
;
|
||||
Ezfio.get_ao_two_e_eff_pot_grad_squared ()
|
||||
;;
|
||||
(* Write snippet for grad_squared *)
|
||||
let write_grad_squared =
|
||||
Ezfio.set_ao_two_e_eff_pot_grad_squared
|
||||
;;
|
||||
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
(* Generate Global Function *)
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read all *)
|
||||
let read() =
|
||||
Some
|
||||
{
|
||||
adjoint_tc_h = read_adjoint_tc_h ();
|
||||
grad_squared = read_grad_squared ();
|
||||
}
|
||||
;;
|
||||
(* Write all *)
|
||||
let write{
|
||||
adjoint_tc_h;
|
||||
grad_squared;
|
||||
} =
|
||||
write_adjoint_tc_h adjoint_tc_h;
|
||||
write_grad_squared grad_squared;
|
||||
;;
|
||||
(* to_string*)
|
||||
let to_string b =
|
||||
Printf.sprintf "
|
||||
adjoint_tc_h = %s
|
||||
grad_squared = %s
|
||||
"
|
||||
(string_of_bool b.adjoint_tc_h)
|
||||
(string_of_bool b.grad_squared)
|
||||
;;
|
||||
(* to_rst*)
|
||||
let to_rst b =
|
||||
Printf.sprintf "
|
||||
If |true|, you compute the adjoint of the transcorrelated Hamiltonian ::
|
||||
|
||||
adjoint_tc_h = %s
|
||||
|
||||
If |true|, you compute also the square of the gradient of the correlation factor ::
|
||||
|
||||
grad_squared = %s
|
||||
|
||||
"
|
||||
(string_of_bool b.adjoint_tc_h)
|
||||
(string_of_bool b.grad_squared)
|
||||
|> Rst_string.of_string
|
||||
;;
|
||||
include Generic_input_of_rst;;
|
||||
let of_rst = of_rst t_of_sexp;;
|
||||
|
||||
end
|
@ -1,87 +0,0 @@
|
||||
(* =~=~ *)
|
||||
(* Init *)
|
||||
(* =~=~ *)
|
||||
|
||||
open Qptypes;;
|
||||
open Qputils;;
|
||||
open Sexplib.Std;;
|
||||
|
||||
module Bi_ortho_mos : sig
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
bi_ortho : bool;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
val read : unit -> t option
|
||||
val write : t-> unit
|
||||
val to_string : t -> string
|
||||
val to_rst : t -> Rst_string.t
|
||||
val of_rst : Rst_string.t -> t option
|
||||
end = struct
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
bi_ortho : bool;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
|
||||
let get_default = Qpackage.get_ezfio_default "bi_ortho_mos";;
|
||||
|
||||
(* =~=~=~=~=~=~==~=~=~=~=~=~ *)
|
||||
(* Generate Special Function *)
|
||||
(* =~=~=~==~=~~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read snippet for bi_ortho *)
|
||||
let read_bi_ortho () =
|
||||
if not (Ezfio.has_bi_ortho_mos_bi_ortho ()) then
|
||||
get_default "bi_ortho"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_bi_ortho_mos_bi_ortho
|
||||
;
|
||||
Ezfio.get_bi_ortho_mos_bi_ortho ()
|
||||
;;
|
||||
(* Write snippet for bi_ortho *)
|
||||
let write_bi_ortho =
|
||||
Ezfio.set_bi_ortho_mos_bi_ortho
|
||||
;;
|
||||
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
(* Generate Global Function *)
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read all *)
|
||||
let read() =
|
||||
Some
|
||||
{
|
||||
bi_ortho = read_bi_ortho ();
|
||||
}
|
||||
;;
|
||||
(* Write all *)
|
||||
let write{
|
||||
bi_ortho;
|
||||
} =
|
||||
write_bi_ortho bi_ortho;
|
||||
;;
|
||||
(* to_string*)
|
||||
let to_string b =
|
||||
Printf.sprintf "
|
||||
bi_ortho = %s
|
||||
"
|
||||
(string_of_bool b.bi_ortho)
|
||||
;;
|
||||
(* to_rst*)
|
||||
let to_rst b =
|
||||
Printf.sprintf "
|
||||
If |true|, the MO basis is assumed to be bi-orthonormal ::
|
||||
|
||||
bi_ortho = %s
|
||||
|
||||
"
|
||||
(string_of_bool b.bi_ortho)
|
||||
|> Rst_string.of_string
|
||||
;;
|
||||
include Generic_input_of_rst;;
|
||||
let of_rst = of_rst t_of_sexp;;
|
||||
|
||||
end
|
@ -1,113 +0,0 @@
|
||||
(* =~=~ *)
|
||||
(* Init *)
|
||||
(* =~=~ *)
|
||||
|
||||
open Qptypes;;
|
||||
open Qputils;;
|
||||
open Sexplib.Std;;
|
||||
|
||||
module Cassd : sig
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
do_ddci : bool;
|
||||
do_only_1h1p : bool;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
val read : unit -> t option
|
||||
val write : t-> unit
|
||||
val to_string : t -> string
|
||||
val to_rst : t -> Rst_string.t
|
||||
val of_rst : Rst_string.t -> t option
|
||||
end = struct
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
do_ddci : bool;
|
||||
do_only_1h1p : bool;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
|
||||
let get_default = Qpackage.get_ezfio_default "cassd";;
|
||||
|
||||
(* =~=~=~=~=~=~==~=~=~=~=~=~ *)
|
||||
(* Generate Special Function *)
|
||||
(* =~=~=~==~=~~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read snippet for do_ddci *)
|
||||
let read_do_ddci () =
|
||||
if not (Ezfio.has_cassd_do_ddci ()) then
|
||||
get_default "do_ddci"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_cassd_do_ddci
|
||||
;
|
||||
Ezfio.get_cassd_do_ddci ()
|
||||
;;
|
||||
(* Write snippet for do_ddci *)
|
||||
let write_do_ddci =
|
||||
Ezfio.set_cassd_do_ddci
|
||||
;;
|
||||
|
||||
(* Read snippet for do_only_1h1p *)
|
||||
let read_do_only_1h1p () =
|
||||
if not (Ezfio.has_cassd_do_only_1h1p ()) then
|
||||
get_default "do_only_1h1p"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_cassd_do_only_1h1p
|
||||
;
|
||||
Ezfio.get_cassd_do_only_1h1p ()
|
||||
;;
|
||||
(* Write snippet for do_only_1h1p *)
|
||||
let write_do_only_1h1p =
|
||||
Ezfio.set_cassd_do_only_1h1p
|
||||
;;
|
||||
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
(* Generate Global Function *)
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read all *)
|
||||
let read() =
|
||||
Some
|
||||
{
|
||||
do_ddci = read_do_ddci ();
|
||||
do_only_1h1p = read_do_only_1h1p ();
|
||||
}
|
||||
;;
|
||||
(* Write all *)
|
||||
let write{
|
||||
do_ddci;
|
||||
do_only_1h1p;
|
||||
} =
|
||||
write_do_ddci do_ddci;
|
||||
write_do_only_1h1p do_only_1h1p;
|
||||
;;
|
||||
(* to_string*)
|
||||
let to_string b =
|
||||
Printf.sprintf "
|
||||
do_ddci = %s
|
||||
do_only_1h1p = %s
|
||||
"
|
||||
(string_of_bool b.do_ddci)
|
||||
(string_of_bool b.do_only_1h1p)
|
||||
;;
|
||||
(* to_rst*)
|
||||
let to_rst b =
|
||||
Printf.sprintf "
|
||||
If true, remove purely inactive double excitations ::
|
||||
|
||||
do_ddci = %s
|
||||
|
||||
If true, do only one hole/one particle excitations ::
|
||||
|
||||
do_only_1h1p = %s
|
||||
|
||||
"
|
||||
(string_of_bool b.do_ddci)
|
||||
(string_of_bool b.do_only_1h1p)
|
||||
|> Rst_string.of_string
|
||||
;;
|
||||
include Generic_input_of_rst;;
|
||||
let of_rst = of_rst t_of_sexp;;
|
||||
|
||||
end
|
@ -1,243 +0,0 @@
|
||||
(* =~=~ *)
|
||||
(* Init *)
|
||||
(* =~=~ *)
|
||||
|
||||
open Qptypes;;
|
||||
open Qputils;;
|
||||
open Sexplib.Std;;
|
||||
|
||||
module Cipsi_deb : sig
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
pert_2rdm : bool;
|
||||
save_wf_after_selection : bool;
|
||||
seniority_max : int;
|
||||
excitation_ref : int;
|
||||
excitation_max : int;
|
||||
excitation_alpha_max : int;
|
||||
excitation_beta_max : int;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
val read : unit -> t option
|
||||
val write : t-> unit
|
||||
val to_string : t -> string
|
||||
val to_rst : t -> Rst_string.t
|
||||
val of_rst : Rst_string.t -> t option
|
||||
end = struct
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
pert_2rdm : bool;
|
||||
save_wf_after_selection : bool;
|
||||
seniority_max : int;
|
||||
excitation_ref : int;
|
||||
excitation_max : int;
|
||||
excitation_alpha_max : int;
|
||||
excitation_beta_max : int;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
|
||||
let get_default = Qpackage.get_ezfio_default "cipsi_deb";;
|
||||
|
||||
(* =~=~=~=~=~=~==~=~=~=~=~=~ *)
|
||||
(* Generate Special Function *)
|
||||
(* =~=~=~==~=~~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read snippet for excitation_alpha_max *)
|
||||
let read_excitation_alpha_max () =
|
||||
if not (Ezfio.has_cipsi_deb_excitation_alpha_max ()) then
|
||||
get_default "excitation_alpha_max"
|
||||
|> int_of_string
|
||||
|> Ezfio.set_cipsi_deb_excitation_alpha_max
|
||||
;
|
||||
Ezfio.get_cipsi_deb_excitation_alpha_max ()
|
||||
;;
|
||||
(* Write snippet for excitation_alpha_max *)
|
||||
let write_excitation_alpha_max =
|
||||
Ezfio.set_cipsi_deb_excitation_alpha_max
|
||||
;;
|
||||
|
||||
(* Read snippet for excitation_beta_max *)
|
||||
let read_excitation_beta_max () =
|
||||
if not (Ezfio.has_cipsi_deb_excitation_beta_max ()) then
|
||||
get_default "excitation_beta_max"
|
||||
|> int_of_string
|
||||
|> Ezfio.set_cipsi_deb_excitation_beta_max
|
||||
;
|
||||
Ezfio.get_cipsi_deb_excitation_beta_max ()
|
||||
;;
|
||||
(* Write snippet for excitation_beta_max *)
|
||||
let write_excitation_beta_max =
|
||||
Ezfio.set_cipsi_deb_excitation_beta_max
|
||||
;;
|
||||
|
||||
(* Read snippet for excitation_max *)
|
||||
let read_excitation_max () =
|
||||
if not (Ezfio.has_cipsi_deb_excitation_max ()) then
|
||||
get_default "excitation_max"
|
||||
|> int_of_string
|
||||
|> Ezfio.set_cipsi_deb_excitation_max
|
||||
;
|
||||
Ezfio.get_cipsi_deb_excitation_max ()
|
||||
;;
|
||||
(* Write snippet for excitation_max *)
|
||||
let write_excitation_max =
|
||||
Ezfio.set_cipsi_deb_excitation_max
|
||||
;;
|
||||
|
||||
(* Read snippet for excitation_ref *)
|
||||
let read_excitation_ref () =
|
||||
if not (Ezfio.has_cipsi_deb_excitation_ref ()) then
|
||||
get_default "excitation_ref"
|
||||
|> int_of_string
|
||||
|> Ezfio.set_cipsi_deb_excitation_ref
|
||||
;
|
||||
Ezfio.get_cipsi_deb_excitation_ref ()
|
||||
;;
|
||||
(* Write snippet for excitation_ref *)
|
||||
let write_excitation_ref =
|
||||
Ezfio.set_cipsi_deb_excitation_ref
|
||||
;;
|
||||
|
||||
(* Read snippet for pert_2rdm *)
|
||||
let read_pert_2rdm () =
|
||||
if not (Ezfio.has_cipsi_deb_pert_2rdm ()) then
|
||||
get_default "pert_2rdm"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_cipsi_deb_pert_2rdm
|
||||
;
|
||||
Ezfio.get_cipsi_deb_pert_2rdm ()
|
||||
;;
|
||||
(* Write snippet for pert_2rdm *)
|
||||
let write_pert_2rdm =
|
||||
Ezfio.set_cipsi_deb_pert_2rdm
|
||||
;;
|
||||
|
||||
(* Read snippet for save_wf_after_selection *)
|
||||
let read_save_wf_after_selection () =
|
||||
if not (Ezfio.has_cipsi_deb_save_wf_after_selection ()) then
|
||||
get_default "save_wf_after_selection"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_cipsi_deb_save_wf_after_selection
|
||||
;
|
||||
Ezfio.get_cipsi_deb_save_wf_after_selection ()
|
||||
;;
|
||||
(* Write snippet for save_wf_after_selection *)
|
||||
let write_save_wf_after_selection =
|
||||
Ezfio.set_cipsi_deb_save_wf_after_selection
|
||||
;;
|
||||
|
||||
(* Read snippet for seniority_max *)
|
||||
let read_seniority_max () =
|
||||
if not (Ezfio.has_cipsi_deb_seniority_max ()) then
|
||||
get_default "seniority_max"
|
||||
|> int_of_string
|
||||
|> Ezfio.set_cipsi_deb_seniority_max
|
||||
;
|
||||
Ezfio.get_cipsi_deb_seniority_max ()
|
||||
;;
|
||||
(* Write snippet for seniority_max *)
|
||||
let write_seniority_max =
|
||||
Ezfio.set_cipsi_deb_seniority_max
|
||||
;;
|
||||
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
(* Generate Global Function *)
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read all *)
|
||||
let read() =
|
||||
Some
|
||||
{
|
||||
pert_2rdm = read_pert_2rdm ();
|
||||
save_wf_after_selection = read_save_wf_after_selection ();
|
||||
seniority_max = read_seniority_max ();
|
||||
excitation_ref = read_excitation_ref ();
|
||||
excitation_max = read_excitation_max ();
|
||||
excitation_alpha_max = read_excitation_alpha_max ();
|
||||
excitation_beta_max = read_excitation_beta_max ();
|
||||
}
|
||||
;;
|
||||
(* Write all *)
|
||||
let write{
|
||||
pert_2rdm;
|
||||
save_wf_after_selection;
|
||||
seniority_max;
|
||||
excitation_ref;
|
||||
excitation_max;
|
||||
excitation_alpha_max;
|
||||
excitation_beta_max;
|
||||
} =
|
||||
write_pert_2rdm pert_2rdm;
|
||||
write_save_wf_after_selection save_wf_after_selection;
|
||||
write_seniority_max seniority_max;
|
||||
write_excitation_ref excitation_ref;
|
||||
write_excitation_max excitation_max;
|
||||
write_excitation_alpha_max excitation_alpha_max;
|
||||
write_excitation_beta_max excitation_beta_max;
|
||||
;;
|
||||
(* to_string*)
|
||||
let to_string b =
|
||||
Printf.sprintf "
|
||||
pert_2rdm = %s
|
||||
save_wf_after_selection = %s
|
||||
seniority_max = %s
|
||||
excitation_ref = %s
|
||||
excitation_max = %s
|
||||
excitation_alpha_max = %s
|
||||
excitation_beta_max = %s
|
||||
"
|
||||
(string_of_bool b.pert_2rdm)
|
||||
(string_of_bool b.save_wf_after_selection)
|
||||
(string_of_int b.seniority_max)
|
||||
(string_of_int b.excitation_ref)
|
||||
(string_of_int b.excitation_max)
|
||||
(string_of_int b.excitation_alpha_max)
|
||||
(string_of_int b.excitation_beta_max)
|
||||
;;
|
||||
(* to_rst*)
|
||||
let to_rst b =
|
||||
Printf.sprintf "
|
||||
If true, computes the one- and two-body rdms with perturbation theory ::
|
||||
|
||||
pert_2rdm = %s
|
||||
|
||||
If true, saves the wave function after the selection, before the diagonalization ::
|
||||
|
||||
save_wf_after_selection = %s
|
||||
|
||||
Maximum number of allowed open shells. Using -1 selects all determinants ::
|
||||
|
||||
seniority_max = %s
|
||||
|
||||
1: Hartree-Fock determinant, 2:All determinants of the dominant configuration ::
|
||||
|
||||
excitation_ref = %s
|
||||
|
||||
Maximum number of excitation with respect to the Hartree-Fock determinant. Using -1 selects all determinants ::
|
||||
|
||||
excitation_max = %s
|
||||
|
||||
Maximum number of excitation for alpha determinants with respect to the Hartree-Fock determinant. Using -1 selects all determinants ::
|
||||
|
||||
excitation_alpha_max = %s
|
||||
|
||||
Maximum number of excitation for beta determinants with respect to the Hartree-Fock determinant. Using -1 selects all determinants ::
|
||||
|
||||
excitation_beta_max = %s
|
||||
|
||||
"
|
||||
(string_of_bool b.pert_2rdm)
|
||||
(string_of_bool b.save_wf_after_selection)
|
||||
(string_of_int b.seniority_max)
|
||||
(string_of_int b.excitation_ref)
|
||||
(string_of_int b.excitation_max)
|
||||
(string_of_int b.excitation_alpha_max)
|
||||
(string_of_int b.excitation_beta_max)
|
||||
|> Rst_string.of_string
|
||||
;;
|
||||
include Generic_input_of_rst;;
|
||||
let of_rst = of_rst t_of_sexp;;
|
||||
|
||||
end
|
@ -1,351 +0,0 @@
|
||||
(* =~=~ *)
|
||||
(* Init *)
|
||||
(* =~=~ *)
|
||||
|
||||
open Qptypes;;
|
||||
open Qputils;;
|
||||
open Sexplib.Std;;
|
||||
|
||||
module Tc_h_clean : sig
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
read_rl_eigv : bool;
|
||||
comp_left_eigv : bool;
|
||||
three_body_h_tc : bool;
|
||||
pure_three_body_h_tc : bool;
|
||||
double_normal_ord : bool;
|
||||
core_tc_op : bool;
|
||||
full_tc_h_solver : bool;
|
||||
thresh_it_dav : Threshold.t;
|
||||
max_it_dav : int;
|
||||
thresh_psi_r : Threshold.t;
|
||||
thresh_psi_r_norm : bool;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
val read : unit -> t option
|
||||
val write : t-> unit
|
||||
val to_string : t -> string
|
||||
val to_rst : t -> Rst_string.t
|
||||
val of_rst : Rst_string.t -> t option
|
||||
end = struct
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
read_rl_eigv : bool;
|
||||
comp_left_eigv : bool;
|
||||
three_body_h_tc : bool;
|
||||
pure_three_body_h_tc : bool;
|
||||
double_normal_ord : bool;
|
||||
core_tc_op : bool;
|
||||
full_tc_h_solver : bool;
|
||||
thresh_it_dav : Threshold.t;
|
||||
max_it_dav : int;
|
||||
thresh_psi_r : Threshold.t;
|
||||
thresh_psi_r_norm : bool;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
|
||||
let get_default = Qpackage.get_ezfio_default "tc_h_clean";;
|
||||
|
||||
(* =~=~=~=~=~=~==~=~=~=~=~=~ *)
|
||||
(* Generate Special Function *)
|
||||
(* =~=~=~==~=~~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read snippet for comp_left_eigv *)
|
||||
let read_comp_left_eigv () =
|
||||
if not (Ezfio.has_tc_h_clean_comp_left_eigv ()) then
|
||||
get_default "comp_left_eigv"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_tc_h_clean_comp_left_eigv
|
||||
;
|
||||
Ezfio.get_tc_h_clean_comp_left_eigv ()
|
||||
;;
|
||||
(* Write snippet for comp_left_eigv *)
|
||||
let write_comp_left_eigv =
|
||||
Ezfio.set_tc_h_clean_comp_left_eigv
|
||||
;;
|
||||
|
||||
(* Read snippet for core_tc_op *)
|
||||
let read_core_tc_op () =
|
||||
if not (Ezfio.has_tc_h_clean_core_tc_op ()) then
|
||||
get_default "core_tc_op"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_tc_h_clean_core_tc_op
|
||||
;
|
||||
Ezfio.get_tc_h_clean_core_tc_op ()
|
||||
;;
|
||||
(* Write snippet for core_tc_op *)
|
||||
let write_core_tc_op =
|
||||
Ezfio.set_tc_h_clean_core_tc_op
|
||||
;;
|
||||
|
||||
(* Read snippet for double_normal_ord *)
|
||||
let read_double_normal_ord () =
|
||||
if not (Ezfio.has_tc_h_clean_double_normal_ord ()) then
|
||||
get_default "double_normal_ord"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_tc_h_clean_double_normal_ord
|
||||
;
|
||||
Ezfio.get_tc_h_clean_double_normal_ord ()
|
||||
;;
|
||||
(* Write snippet for double_normal_ord *)
|
||||
let write_double_normal_ord =
|
||||
Ezfio.set_tc_h_clean_double_normal_ord
|
||||
;;
|
||||
|
||||
(* Read snippet for full_tc_h_solver *)
|
||||
let read_full_tc_h_solver () =
|
||||
if not (Ezfio.has_tc_h_clean_full_tc_h_solver ()) then
|
||||
get_default "full_tc_h_solver"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_tc_h_clean_full_tc_h_solver
|
||||
;
|
||||
Ezfio.get_tc_h_clean_full_tc_h_solver ()
|
||||
;;
|
||||
(* Write snippet for full_tc_h_solver *)
|
||||
let write_full_tc_h_solver =
|
||||
Ezfio.set_tc_h_clean_full_tc_h_solver
|
||||
;;
|
||||
|
||||
(* Read snippet for max_it_dav *)
|
||||
let read_max_it_dav () =
|
||||
if not (Ezfio.has_tc_h_clean_max_it_dav ()) then
|
||||
get_default "max_it_dav"
|
||||
|> int_of_string
|
||||
|> Ezfio.set_tc_h_clean_max_it_dav
|
||||
;
|
||||
Ezfio.get_tc_h_clean_max_it_dav ()
|
||||
;;
|
||||
(* Write snippet for max_it_dav *)
|
||||
let write_max_it_dav =
|
||||
Ezfio.set_tc_h_clean_max_it_dav
|
||||
;;
|
||||
|
||||
(* Read snippet for pure_three_body_h_tc *)
|
||||
let read_pure_three_body_h_tc () =
|
||||
if not (Ezfio.has_tc_h_clean_pure_three_body_h_tc ()) then
|
||||
get_default "pure_three_body_h_tc"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_tc_h_clean_pure_three_body_h_tc
|
||||
;
|
||||
Ezfio.get_tc_h_clean_pure_three_body_h_tc ()
|
||||
;;
|
||||
(* Write snippet for pure_three_body_h_tc *)
|
||||
let write_pure_three_body_h_tc =
|
||||
Ezfio.set_tc_h_clean_pure_three_body_h_tc
|
||||
;;
|
||||
|
||||
(* Read snippet for read_rl_eigv *)
|
||||
let read_read_rl_eigv () =
|
||||
if not (Ezfio.has_tc_h_clean_read_rl_eigv ()) then
|
||||
get_default "read_rl_eigv"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_tc_h_clean_read_rl_eigv
|
||||
;
|
||||
Ezfio.get_tc_h_clean_read_rl_eigv ()
|
||||
;;
|
||||
(* Write snippet for read_rl_eigv *)
|
||||
let write_read_rl_eigv =
|
||||
Ezfio.set_tc_h_clean_read_rl_eigv
|
||||
;;
|
||||
|
||||
(* Read snippet for three_body_h_tc *)
|
||||
let read_three_body_h_tc () =
|
||||
if not (Ezfio.has_tc_h_clean_three_body_h_tc ()) then
|
||||
get_default "three_body_h_tc"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_tc_h_clean_three_body_h_tc
|
||||
;
|
||||
Ezfio.get_tc_h_clean_three_body_h_tc ()
|
||||
;;
|
||||
(* Write snippet for three_body_h_tc *)
|
||||
let write_three_body_h_tc =
|
||||
Ezfio.set_tc_h_clean_three_body_h_tc
|
||||
;;
|
||||
|
||||
(* Read snippet for thresh_it_dav *)
|
||||
let read_thresh_it_dav () =
|
||||
if not (Ezfio.has_tc_h_clean_thresh_it_dav ()) then
|
||||
get_default "thresh_it_dav"
|
||||
|> float_of_string
|
||||
|> Ezfio.set_tc_h_clean_thresh_it_dav
|
||||
;
|
||||
Ezfio.get_tc_h_clean_thresh_it_dav ()
|
||||
|> Threshold.of_float
|
||||
;;
|
||||
(* Write snippet for thresh_it_dav *)
|
||||
let write_thresh_it_dav var =
|
||||
Threshold.to_float var
|
||||
|> Ezfio.set_tc_h_clean_thresh_it_dav
|
||||
;;
|
||||
|
||||
(* Read snippet for thresh_psi_r *)
|
||||
let read_thresh_psi_r () =
|
||||
if not (Ezfio.has_tc_h_clean_thresh_psi_r ()) then
|
||||
get_default "thresh_psi_r"
|
||||
|> float_of_string
|
||||
|> Ezfio.set_tc_h_clean_thresh_psi_r
|
||||
;
|
||||
Ezfio.get_tc_h_clean_thresh_psi_r ()
|
||||
|> Threshold.of_float
|
||||
;;
|
||||
(* Write snippet for thresh_psi_r *)
|
||||
let write_thresh_psi_r var =
|
||||
Threshold.to_float var
|
||||
|> Ezfio.set_tc_h_clean_thresh_psi_r
|
||||
;;
|
||||
|
||||
(* Read snippet for thresh_psi_r_norm *)
|
||||
let read_thresh_psi_r_norm () =
|
||||
if not (Ezfio.has_tc_h_clean_thresh_psi_r_norm ()) then
|
||||
get_default "thresh_psi_r_norm"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_tc_h_clean_thresh_psi_r_norm
|
||||
;
|
||||
Ezfio.get_tc_h_clean_thresh_psi_r_norm ()
|
||||
;;
|
||||
(* Write snippet for thresh_psi_r_norm *)
|
||||
let write_thresh_psi_r_norm =
|
||||
Ezfio.set_tc_h_clean_thresh_psi_r_norm
|
||||
;;
|
||||
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
(* Generate Global Function *)
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read all *)
|
||||
let read() =
|
||||
Some
|
||||
{
|
||||
read_rl_eigv = read_read_rl_eigv ();
|
||||
comp_left_eigv = read_comp_left_eigv ();
|
||||
three_body_h_tc = read_three_body_h_tc ();
|
||||
pure_three_body_h_tc = read_pure_three_body_h_tc ();
|
||||
double_normal_ord = read_double_normal_ord ();
|
||||
core_tc_op = read_core_tc_op ();
|
||||
full_tc_h_solver = read_full_tc_h_solver ();
|
||||
thresh_it_dav = read_thresh_it_dav ();
|
||||
max_it_dav = read_max_it_dav ();
|
||||
thresh_psi_r = read_thresh_psi_r ();
|
||||
thresh_psi_r_norm = read_thresh_psi_r_norm ();
|
||||
}
|
||||
;;
|
||||
(* Write all *)
|
||||
let write{
|
||||
read_rl_eigv;
|
||||
comp_left_eigv;
|
||||
three_body_h_tc;
|
||||
pure_three_body_h_tc;
|
||||
double_normal_ord;
|
||||
core_tc_op;
|
||||
full_tc_h_solver;
|
||||
thresh_it_dav;
|
||||
max_it_dav;
|
||||
thresh_psi_r;
|
||||
thresh_psi_r_norm;
|
||||
} =
|
||||
write_read_rl_eigv read_rl_eigv;
|
||||
write_comp_left_eigv comp_left_eigv;
|
||||
write_three_body_h_tc three_body_h_tc;
|
||||
write_pure_three_body_h_tc pure_three_body_h_tc;
|
||||
write_double_normal_ord double_normal_ord;
|
||||
write_core_tc_op core_tc_op;
|
||||
write_full_tc_h_solver full_tc_h_solver;
|
||||
write_thresh_it_dav thresh_it_dav;
|
||||
write_max_it_dav max_it_dav;
|
||||
write_thresh_psi_r thresh_psi_r;
|
||||
write_thresh_psi_r_norm thresh_psi_r_norm;
|
||||
;;
|
||||
(* to_string*)
|
||||
let to_string b =
|
||||
Printf.sprintf "
|
||||
read_rl_eigv = %s
|
||||
comp_left_eigv = %s
|
||||
three_body_h_tc = %s
|
||||
pure_three_body_h_tc = %s
|
||||
double_normal_ord = %s
|
||||
core_tc_op = %s
|
||||
full_tc_h_solver = %s
|
||||
thresh_it_dav = %s
|
||||
max_it_dav = %s
|
||||
thresh_psi_r = %s
|
||||
thresh_psi_r_norm = %s
|
||||
"
|
||||
(string_of_bool b.read_rl_eigv)
|
||||
(string_of_bool b.comp_left_eigv)
|
||||
(string_of_bool b.three_body_h_tc)
|
||||
(string_of_bool b.pure_three_body_h_tc)
|
||||
(string_of_bool b.double_normal_ord)
|
||||
(string_of_bool b.core_tc_op)
|
||||
(string_of_bool b.full_tc_h_solver)
|
||||
(Threshold.to_string b.thresh_it_dav)
|
||||
(string_of_int b.max_it_dav)
|
||||
(Threshold.to_string b.thresh_psi_r)
|
||||
(string_of_bool b.thresh_psi_r_norm)
|
||||
;;
|
||||
(* to_rst*)
|
||||
let to_rst b =
|
||||
Printf.sprintf "
|
||||
If |true|, read the right/left eigenvectors from ezfio ::
|
||||
|
||||
read_rl_eigv = %s
|
||||
|
||||
If |true|, computes also the left-eigenvector ::
|
||||
|
||||
comp_left_eigv = %s
|
||||
|
||||
If |true|, three-body terms are included ::
|
||||
|
||||
three_body_h_tc = %s
|
||||
|
||||
If |true|, pure triple excitation three-body terms are included ::
|
||||
|
||||
pure_three_body_h_tc = %s
|
||||
|
||||
If |true|, contracted double excitation three-body terms are included ::
|
||||
|
||||
double_normal_ord = %s
|
||||
|
||||
If |true|, takes the usual Hamiltonian for core orbitals (assumed to be doubly occupied) ::
|
||||
|
||||
core_tc_op = %s
|
||||
|
||||
If |true|, you diagonalize the full TC H matrix ::
|
||||
|
||||
full_tc_h_solver = %s
|
||||
|
||||
Thresholds on the energy for iterative Davidson used in TC ::
|
||||
|
||||
thresh_it_dav = %s
|
||||
|
||||
nb max of iteration in Davidson used in TC ::
|
||||
|
||||
max_it_dav = %s
|
||||
|
||||
Thresholds on the coefficients of the right-eigenvector. Used for PT2 computation. ::
|
||||
|
||||
thresh_psi_r = %s
|
||||
|
||||
If |true|, you prune the WF to compute the PT1 coef based on the norm. If False, the pruning is done through the amplitude on the right-coefficient. ::
|
||||
|
||||
thresh_psi_r_norm = %s
|
||||
|
||||
"
|
||||
(string_of_bool b.read_rl_eigv)
|
||||
(string_of_bool b.comp_left_eigv)
|
||||
(string_of_bool b.three_body_h_tc)
|
||||
(string_of_bool b.pure_three_body_h_tc)
|
||||
(string_of_bool b.double_normal_ord)
|
||||
(string_of_bool b.core_tc_op)
|
||||
(string_of_bool b.full_tc_h_solver)
|
||||
(Threshold.to_string b.thresh_it_dav)
|
||||
(string_of_int b.max_it_dav)
|
||||
(Threshold.to_string b.thresh_psi_r)
|
||||
(string_of_bool b.thresh_psi_r_norm)
|
||||
|> Rst_string.of_string
|
||||
;;
|
||||
include Generic_input_of_rst;;
|
||||
let of_rst = of_rst t_of_sexp;;
|
||||
|
||||
end
|
@ -1,143 +0,0 @@
|
||||
(* =~=~ *)
|
||||
(* Init *)
|
||||
(* =~=~ *)
|
||||
|
||||
open Qptypes;;
|
||||
open Qputils;;
|
||||
open Sexplib.Std;;
|
||||
|
||||
module Tc_scf : sig
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
bi_ortho : bool;
|
||||
thresh_tcscf : Threshold.t;
|
||||
n_it_tcscf_max : Strictly_positive_int.t;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
val read : unit -> t option
|
||||
val write : t-> unit
|
||||
val to_string : t -> string
|
||||
val to_rst : t -> Rst_string.t
|
||||
val of_rst : Rst_string.t -> t option
|
||||
end = struct
|
||||
(* Generate type *)
|
||||
type t =
|
||||
{
|
||||
bi_ortho : bool;
|
||||
thresh_tcscf : Threshold.t;
|
||||
n_it_tcscf_max : Strictly_positive_int.t;
|
||||
} [@@deriving sexp]
|
||||
;;
|
||||
|
||||
let get_default = Qpackage.get_ezfio_default "tc_scf";;
|
||||
|
||||
(* =~=~=~=~=~=~==~=~=~=~=~=~ *)
|
||||
(* Generate Special Function *)
|
||||
(* =~=~=~==~=~~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read snippet for bi_ortho *)
|
||||
let read_bi_ortho () =
|
||||
if not (Ezfio.has_tc_scf_bi_ortho ()) then
|
||||
get_default "bi_ortho"
|
||||
|> bool_of_string
|
||||
|> Ezfio.set_tc_scf_bi_ortho
|
||||
;
|
||||
Ezfio.get_tc_scf_bi_ortho ()
|
||||
;;
|
||||
(* Write snippet for bi_ortho *)
|
||||
let write_bi_ortho =
|
||||
Ezfio.set_tc_scf_bi_ortho
|
||||
;;
|
||||
|
||||
(* Read snippet for n_it_tcscf_max *)
|
||||
let read_n_it_tcscf_max () =
|
||||
if not (Ezfio.has_tc_scf_n_it_tcscf_max ()) then
|
||||
get_default "n_it_tcscf_max"
|
||||
|> int_of_string
|
||||
|> Ezfio.set_tc_scf_n_it_tcscf_max
|
||||
;
|
||||
Ezfio.get_tc_scf_n_it_tcscf_max ()
|
||||
|> Strictly_positive_int.of_int
|
||||
;;
|
||||
(* Write snippet for n_it_tcscf_max *)
|
||||
let write_n_it_tcscf_max var =
|
||||
Strictly_positive_int.to_int var
|
||||
|> Ezfio.set_tc_scf_n_it_tcscf_max
|
||||
;;
|
||||
|
||||
(* Read snippet for thresh_tcscf *)
|
||||
let read_thresh_tcscf () =
|
||||
if not (Ezfio.has_tc_scf_thresh_tcscf ()) then
|
||||
get_default "thresh_tcscf"
|
||||
|> float_of_string
|
||||
|> Ezfio.set_tc_scf_thresh_tcscf
|
||||
;
|
||||
Ezfio.get_tc_scf_thresh_tcscf ()
|
||||
|> Threshold.of_float
|
||||
;;
|
||||
(* Write snippet for thresh_tcscf *)
|
||||
let write_thresh_tcscf var =
|
||||
Threshold.to_float var
|
||||
|> Ezfio.set_tc_scf_thresh_tcscf
|
||||
;;
|
||||
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
(* Generate Global Function *)
|
||||
(* =~=~=~=~=~=~=~=~=~=~=~=~ *)
|
||||
|
||||
(* Read all *)
|
||||
let read() =
|
||||
Some
|
||||
{
|
||||
bi_ortho = read_bi_ortho ();
|
||||
thresh_tcscf = read_thresh_tcscf ();
|
||||
n_it_tcscf_max = read_n_it_tcscf_max ();
|
||||
}
|
||||
;;
|
||||
(* Write all *)
|
||||
let write{
|
||||
bi_ortho;
|
||||
thresh_tcscf;
|
||||
n_it_tcscf_max;
|
||||
} =
|
||||
write_bi_ortho bi_ortho;
|
||||
write_thresh_tcscf thresh_tcscf;
|
||||
write_n_it_tcscf_max n_it_tcscf_max;
|
||||
;;
|
||||
(* to_string*)
|
||||
let to_string b =
|
||||
Printf.sprintf "
|
||||
bi_ortho = %s
|
||||
thresh_tcscf = %s
|
||||
n_it_tcscf_max = %s
|
||||
"
|
||||
(string_of_bool b.bi_ortho)
|
||||
(Threshold.to_string b.thresh_tcscf)
|
||||
(Strictly_positive_int.to_string b.n_it_tcscf_max)
|
||||
;;
|
||||
(* to_rst*)
|
||||
let to_rst b =
|
||||
Printf.sprintf "
|
||||
If |true|, the MO basis is assumed to be bi-orthonormal ::
|
||||
|
||||
bi_ortho = %s
|
||||
|
||||
Threshold on the convergence of the Hartree Fock energy. ::
|
||||
|
||||
thresh_tcscf = %s
|
||||
|
||||
Maximum number of SCF iterations ::
|
||||
|
||||
n_it_tcscf_max = %s
|
||||
|
||||
"
|
||||
(string_of_bool b.bi_ortho)
|
||||
(Threshold.to_string b.thresh_tcscf)
|
||||
(Strictly_positive_int.to_string b.n_it_tcscf_max)
|
||||
|> Rst_string.of_string
|
||||
;;
|
||||
include Generic_input_of_rst;;
|
||||
let of_rst = of_rst t_of_sexp;;
|
||||
|
||||
end
|
Loading…
Reference in New Issue
Block a user