mirror of
https://github.com/LCPQ/quantum_package
synced 2024-08-25 05:51:46 +02:00
Added lots of mli files for better error messages
This commit is contained in:
parent
6998c27b6e
commit
3fd80125e4
@ -23,7 +23,7 @@ let of_string u s =
|
|||||||
| [ name; x; y; z ] ->
|
| [ name; x; y; z ] ->
|
||||||
let e = Element.of_string name in
|
let e = Element.of_string name in
|
||||||
{ element = e ;
|
{ element = e ;
|
||||||
charge = Charge.of_int (Element.to_charge e);
|
charge = Element.to_charge e;
|
||||||
coord = Point3d.of_string u (String.concat [x; y; z] ~sep:" ")
|
coord = Point3d.of_string u (String.concat [x; y; z] ~sep:" ")
|
||||||
}
|
}
|
||||||
| _ -> raise (AtomError s)
|
| _ -> raise (AtomError s)
|
||||||
|
9
ocaml/Atom.mli
Normal file
9
ocaml/Atom.mli
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
exception AtomError of string
|
||||||
|
|
||||||
|
type t = { element : Element.t; charge : Charge.t; coord : Point3d.t; }
|
||||||
|
|
||||||
|
val t_of_sexp : Sexplib.Sexp.t -> t
|
||||||
|
val sexp_of_t : t -> Sexplib.Sexp.t
|
||||||
|
|
||||||
|
val of_string : Units.units -> string -> t
|
||||||
|
val to_string : Units.units -> t -> string
|
@ -56,10 +56,8 @@ let to_string b =
|
|||||||
do_work [new_nucleus 1] 1 b
|
do_work [new_nucleus 1] 1 b
|
||||||
|> String.concat ~sep:"\n"
|
|> String.concat ~sep:"\n"
|
||||||
;;
|
;;
|
||||||
(*
|
|
||||||
List.map ~f:(fun (g,n) ->
|
include To_md5;;
|
||||||
let n = Nucl_number.to_int n in
|
let to_md5 = to_md5 sexp_of_t
|
||||||
(Int.to_string n)^":"^(Gto.to_string g)) b
|
;;
|
||||||
;;
|
|
||||||
*)
|
|
||||||
|
|
||||||
|
@ -15,3 +15,6 @@ val read_element :
|
|||||||
|
|
||||||
(** Convert the basis to a string *)
|
(** Convert the basis to a string *)
|
||||||
val to_string : (Gto.t * Nucl_number.t) list -> string
|
val to_string : (Gto.t * Nucl_number.t) list -> string
|
||||||
|
|
||||||
|
(** Convert the basis to an MD5 hash *)
|
||||||
|
val to_md5 : (Gto.t * Nucl_number.t) list -> MD5.t
|
||||||
|
@ -8,7 +8,7 @@ Zero | One
|
|||||||
|
|
||||||
*)
|
*)
|
||||||
|
|
||||||
type bit =
|
type t =
|
||||||
| One
|
| One
|
||||||
| Zero
|
| Zero
|
||||||
with sexp
|
with sexp
|
||||||
|
10
ocaml/Bit.mli
Normal file
10
ocaml/Bit.mli
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
type t = One | Zero with sexp
|
||||||
|
|
||||||
|
(** String conversions for printing *)
|
||||||
|
val to_string : t -> string
|
||||||
|
|
||||||
|
(** Logical operations *)
|
||||||
|
val and_operator : t -> t -> t
|
||||||
|
val or_operator : t -> t -> t
|
||||||
|
val xor_operator : t -> t -> t
|
||||||
|
val not_operator : t -> t
|
@ -7,7 +7,7 @@ Type for bits strings
|
|||||||
list of Bits
|
list of Bits
|
||||||
*)
|
*)
|
||||||
|
|
||||||
type bit_list = Bit.bit list
|
type t = Bit.t list
|
||||||
|
|
||||||
(* String representation *)
|
(* String representation *)
|
||||||
let to_string b =
|
let to_string b =
|
||||||
|
32
ocaml/Bitlist.mli
Normal file
32
ocaml/Bitlist.mli
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
type t = Bit.t list
|
||||||
|
|
||||||
|
(** The zero bit list *)
|
||||||
|
val zero : Qptypes.N_int_number.t -> t
|
||||||
|
|
||||||
|
(** Convert to a string for printing *)
|
||||||
|
val to_string : t -> string
|
||||||
|
|
||||||
|
(** int64 conversion functions *)
|
||||||
|
|
||||||
|
val of_int64 : int64 -> t
|
||||||
|
val to_int64 : t -> int64
|
||||||
|
|
||||||
|
val of_int64_list : int64 list -> t
|
||||||
|
val to_int64_list : t -> int64 list
|
||||||
|
|
||||||
|
(** Get the number of needed int64 elements to encode the bit list *)
|
||||||
|
val n_int_of_mo_tot_num : int -> Qptypes.N_int_number.t
|
||||||
|
|
||||||
|
(** Conversion to MO numbers *)
|
||||||
|
val to_mo_number_list : t -> Qptypes.MO_number.t list
|
||||||
|
val of_mo_number_list :
|
||||||
|
Qptypes.N_int_number.t -> Qptypes.MO_number.t list -> t
|
||||||
|
|
||||||
|
(** Logical operators *)
|
||||||
|
val and_operator : t -> t -> t
|
||||||
|
val xor_operator : t -> t -> t
|
||||||
|
val or_operator : t -> t -> t
|
||||||
|
val not_operator : t -> t
|
||||||
|
|
||||||
|
(** Count the number of bits set to one *)
|
||||||
|
val popcnt : t -> int
|
@ -1,8 +1,13 @@
|
|||||||
type t = float with sexp
|
type t = float with sexp
|
||||||
|
|
||||||
|
(** Float conversion functions *)
|
||||||
val to_float : t -> float
|
val to_float : t -> float
|
||||||
val to_int : t -> int
|
|
||||||
val to_string: t -> string
|
|
||||||
val of_float : float -> t
|
val of_float : float -> t
|
||||||
|
|
||||||
|
(** Int conversion functions *)
|
||||||
|
val to_int : t -> int
|
||||||
val of_int : int -> t
|
val of_int : int -> t
|
||||||
|
|
||||||
|
(** String conversion functions *)
|
||||||
|
val to_string: t -> string
|
||||||
val of_string: string -> t
|
val of_string: string -> t
|
||||||
|
@ -132,7 +132,8 @@ let to_long_string = function
|
|||||||
| Kr -> "Krypton"
|
| Kr -> "Krypton"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
let to_charge = function
|
let to_charge c =
|
||||||
|
let result = match c with
|
||||||
| X -> 0
|
| X -> 0
|
||||||
| H -> 1
|
| H -> 1
|
||||||
| He -> 2
|
| He -> 2
|
||||||
@ -170,9 +171,10 @@ let to_charge = function
|
|||||||
| Se -> 34
|
| Se -> 34
|
||||||
| Br -> 35
|
| Br -> 35
|
||||||
| Kr -> 36
|
| Kr -> 36
|
||||||
|
in Charge.of_int result
|
||||||
;;
|
;;
|
||||||
|
|
||||||
let of_charge = function
|
let of_charge c = match (Charge.to_int c) with
|
||||||
| 0 -> X
|
| 0 -> X
|
||||||
| 1 -> H
|
| 1 -> H
|
||||||
| 2 -> He
|
| 2 -> He
|
||||||
|
18
ocaml/Element.mli
Normal file
18
ocaml/Element.mli
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
exception ElementError of string
|
||||||
|
|
||||||
|
type t =
|
||||||
|
|X
|
||||||
|
|H |He
|
||||||
|
|Li|Be |B |C |N |O |F |Ne
|
||||||
|
|Na|Mg |Al|Si|P |S |Cl|Ar
|
||||||
|
|K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr
|
||||||
|
with sexp
|
||||||
|
|
||||||
|
(** String conversion functions *)
|
||||||
|
val of_string : string -> t
|
||||||
|
val to_string : t -> string
|
||||||
|
val to_long_string : t -> string
|
||||||
|
|
||||||
|
(** get the positive charge *)
|
||||||
|
val to_charge : t -> Charge.t
|
||||||
|
val of_charge : Charge.t -> t
|
@ -1,21 +1,13 @@
|
|||||||
open Core.Std;;
|
open Core.Std;;
|
||||||
open Qptypes;;
|
open Qptypes;;
|
||||||
|
|
||||||
module Hole : sig
|
module Hole = struct
|
||||||
type t with sexp
|
|
||||||
val to_mo_class : t -> MO_class.t
|
|
||||||
val of_mo_class : MO_class.t -> t
|
|
||||||
end = struct
|
|
||||||
type t = MO_class.t with sexp
|
type t = MO_class.t with sexp
|
||||||
let of_mo_class x = x
|
let of_mo_class x = x
|
||||||
let to_mo_class x = x
|
let to_mo_class x = x
|
||||||
end
|
end
|
||||||
|
|
||||||
module Particle : sig
|
module Particle = struct
|
||||||
type t with sexp
|
|
||||||
val to_mo_class : t -> MO_class.t
|
|
||||||
val of_mo_class : MO_class.t -> t
|
|
||||||
end = struct
|
|
||||||
type t = MO_class.t with sexp
|
type t = MO_class.t with sexp
|
||||||
let of_mo_class x = x
|
let of_mo_class x = x
|
||||||
let to_mo_class x = x
|
let to_mo_class x = x
|
||||||
@ -26,9 +18,6 @@ type t =
|
|||||||
| Double of Hole.t*Particle.t*Hole.t*Particle.t
|
| Double of Hole.t*Particle.t*Hole.t*Particle.t
|
||||||
with sexp;;
|
with sexp;;
|
||||||
|
|
||||||
let failwith s = raise (Failure s)
|
|
||||||
;;
|
|
||||||
|
|
||||||
let create_single ~hole ~particle =
|
let create_single ~hole ~particle =
|
||||||
MO_class.(
|
MO_class.(
|
||||||
match (hole,particle) with
|
match (hole,particle) with
|
||||||
|
30
ocaml/Excitation.mli
Normal file
30
ocaml/Excitation.mli
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
module Hole :
|
||||||
|
sig
|
||||||
|
type t
|
||||||
|
val to_mo_class : t -> MO_class.t
|
||||||
|
val of_mo_class : MO_class.t -> t
|
||||||
|
val t_of_sexp : Sexplib.Sexp.t -> t
|
||||||
|
val sexp_of_t : t -> Sexplib.Sexp.t
|
||||||
|
end
|
||||||
|
module Particle :
|
||||||
|
sig
|
||||||
|
type t
|
||||||
|
val to_mo_class : t -> MO_class.t
|
||||||
|
val of_mo_class : MO_class.t -> t
|
||||||
|
val t_of_sexp : Sexplib.Sexp.t -> t
|
||||||
|
val sexp_of_t : t -> Sexplib.Sexp.t
|
||||||
|
end
|
||||||
|
|
||||||
|
type t =
|
||||||
|
| Single of Hole.t * Particle.t
|
||||||
|
| Double of Hole.t * Particle.t * Hole.t * Particle.t
|
||||||
|
with sexp
|
||||||
|
|
||||||
|
val create_single : hole:MO_class.t -> particle:MO_class.t -> t
|
||||||
|
|
||||||
|
val double_of_singles : t -> t -> t
|
||||||
|
|
||||||
|
val create_double : hole1:MO_class.t -> particle1:MO_class.t ->
|
||||||
|
hole2:MO_class.t -> particle2:MO_class.t -> t
|
||||||
|
|
||||||
|
val to_string : t -> string
|
16
ocaml/Gto.mli
Normal file
16
ocaml/Gto.mli
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
exception GTO_Read_Failure of string
|
||||||
|
exception End_Of_Basis
|
||||||
|
type t =
|
||||||
|
{ sym : Symmetry.t ;
|
||||||
|
lc : (Primitive.t * Qptypes.AO_coef.t) list;
|
||||||
|
} with sexp
|
||||||
|
|
||||||
|
(** Create from a list of Primitive.t * Qptypes.AO_coef.t *)
|
||||||
|
val of_prim_coef_list :
|
||||||
|
(Primitive.t * Qptypes.AO_coef.t) list -> t
|
||||||
|
|
||||||
|
(** Read from a file *)
|
||||||
|
val read_one : in_channel -> t
|
||||||
|
|
||||||
|
(** Convert to string for printing *)
|
||||||
|
val to_string : t -> string
|
@ -16,6 +16,7 @@ module Ao_basis : sig
|
|||||||
;;
|
;;
|
||||||
val read : unit -> t
|
val read : unit -> t
|
||||||
val to_string : t -> string
|
val to_string : t -> string
|
||||||
|
val to_md5 : t -> MD5.t
|
||||||
val debug : t -> string
|
val debug : t -> string
|
||||||
end = struct
|
end = struct
|
||||||
type t =
|
type t =
|
||||||
@ -104,7 +105,7 @@ end = struct
|
|||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
let to_string b =
|
let to_long_basis b =
|
||||||
let ao_num = AO_number.to_int b.ao_num in
|
let ao_num = AO_number.to_int b.ao_num in
|
||||||
let gto_array = Array.init (AO_number.to_int b.ao_num)
|
let gto_array = Array.init (AO_number.to_int b.ao_num)
|
||||||
~f:(fun i ->
|
~f:(fun i ->
|
||||||
@ -121,7 +122,6 @@ end = struct
|
|||||||
Gto.of_prim_coef_list prims
|
Gto.of_prim_coef_list prims
|
||||||
)
|
)
|
||||||
in
|
in
|
||||||
let long_basis =
|
|
||||||
let rec do_work accu sym gto nucl =
|
let rec do_work accu sym gto nucl =
|
||||||
match (sym, gto, nucl) with
|
match (sym, gto, nucl) with
|
||||||
| (s::srest, g::grest, n::nrest) ->
|
| (s::srest, g::grest, n::nrest) ->
|
||||||
@ -133,14 +133,23 @@ end = struct
|
|||||||
(Array.to_list b.ao_power)
|
(Array.to_list b.ao_power)
|
||||||
(Array.to_list gto_array)
|
(Array.to_list gto_array)
|
||||||
(Array.to_list b.ao_nucl)
|
(Array.to_list b.ao_nucl)
|
||||||
in
|
;;
|
||||||
let short_basis =
|
|
||||||
Long_basis.to_basis long_basis
|
let to_basis b =
|
||||||
in
|
to_long_basis b
|
||||||
|
|> Long_basis.to_basis
|
||||||
|
;;
|
||||||
|
|
||||||
|
let to_string b =
|
||||||
|
let short_basis = to_basis b in
|
||||||
Printf.sprintf "Basis name : %s\n\n%s" b.ao_basis
|
Printf.sprintf "Basis name : %s\n\n%s" b.ao_basis
|
||||||
(Basis.to_string short_basis)
|
(Basis.to_string short_basis)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
let to_md5 b =
|
||||||
|
let short_basis = to_basis b in
|
||||||
|
Basis.to_md5 short_basis
|
||||||
|
;;
|
||||||
|
|
||||||
let debug b =
|
let debug b =
|
||||||
Printf.sprintf "
|
Printf.sprintf "
|
||||||
@ -152,6 +161,7 @@ ao_nucl = %s
|
|||||||
ao_power = %s
|
ao_power = %s
|
||||||
ao_coef = %s
|
ao_coef = %s
|
||||||
ao_expo = %s
|
ao_expo = %s
|
||||||
|
md5 = %s
|
||||||
"
|
"
|
||||||
b.ao_basis
|
b.ao_basis
|
||||||
(AO_number.to_string b.ao_num)
|
(AO_number.to_string b.ao_num)
|
||||||
@ -166,6 +176,7 @@ ao_expo = %s
|
|||||||
|> String.concat ~sep:", ")
|
|> String.concat ~sep:", ")
|
||||||
(b.ao_expo |> Array.to_list |> List.map ~f:AO_expo.to_string
|
(b.ao_expo |> Array.to_list |> List.map ~f:AO_expo.to_string
|
||||||
|> String.concat ~sep:", ")
|
|> String.concat ~sep:", ")
|
||||||
|
(to_md5 b |> MD5.to_string )
|
||||||
|
|
||||||
;;
|
;;
|
||||||
end
|
end
|
||||||
|
@ -47,3 +47,8 @@ let to_string b =
|
|||||||
|> String.concat ~sep:",\n"
|
|> String.concat ~sep:",\n"
|
||||||
in "("^middle^")"
|
in "("^middle^")"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
include To_md5;;
|
||||||
|
let to_md5 = to_md5 sexp_of_t
|
||||||
|
;;
|
||||||
|
|
||||||
|
21
ocaml/MO_class.mli
Normal file
21
ocaml/MO_class.mli
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
type t =
|
||||||
|
| Core of Qptypes.MO_number.t list
|
||||||
|
| Inactive of Qptypes.MO_number.t list
|
||||||
|
| Active of Qptypes.MO_number.t list
|
||||||
|
| Virtual of Qptypes.MO_number.t list
|
||||||
|
| Deleted of Qptypes.MO_number.t list
|
||||||
|
with sexp
|
||||||
|
|
||||||
|
|
||||||
|
(** Create different excitation classes *)
|
||||||
|
val create_core : string -> t
|
||||||
|
val create_inactive : string -> t
|
||||||
|
val create_active : string -> t
|
||||||
|
val create_virtual : string -> t
|
||||||
|
val create_deleted : string -> t
|
||||||
|
|
||||||
|
(** Convert to a Bitlist.t *)
|
||||||
|
val to_bitlist : Qptypes.N_int_number.t -> t -> Bitlist.t
|
||||||
|
|
||||||
|
(** Convert to string for printing *)
|
||||||
|
val to_string : t -> string
|
@ -78,7 +78,7 @@ let to_string m =
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
let of_xyz_string
|
let of_xyz_string
|
||||||
?(charge=0) ?(multiplicity=(Multiplicity.of_int 1))
|
?(charge=(Charge.of_int 0)) ?(multiplicity=(Multiplicity.of_int 1))
|
||||||
?(units=Units.Angstrom)
|
?(units=Units.Angstrom)
|
||||||
s =
|
s =
|
||||||
let l = String.split s ~on:'\n'
|
let l = String.split s ~on:'\n'
|
||||||
@ -90,7 +90,7 @@ let of_xyz_string
|
|||||||
elec_alpha=(Elec_alpha_number.of_int 1) ;
|
elec_alpha=(Elec_alpha_number.of_int 1) ;
|
||||||
elec_beta=(Elec_beta_number.of_int 0) }
|
elec_beta=(Elec_beta_number.of_int 0) }
|
||||||
|> Charge.to_int
|
|> Charge.to_int
|
||||||
) + 1 - charge
|
) + 1 - (Charge.to_int charge)
|
||||||
|> Elec_number.of_int
|
|> Elec_number.of_int
|
||||||
in
|
in
|
||||||
let (na,nb) = Multiplicity.to_alpha_beta ne multiplicity in
|
let (na,nb) = Multiplicity.to_alpha_beta ne multiplicity in
|
||||||
@ -112,10 +112,16 @@ let of_xyz_string
|
|||||||
|
|
||||||
|
|
||||||
let of_xyz_file
|
let of_xyz_file
|
||||||
?(charge=0) ?(multiplicity=(Multiplicity.of_int 1))
|
?(charge=(Charge.of_int 0)) ?(multiplicity=(Multiplicity.of_int 1))
|
||||||
|
?(units=Units.Angstrom)
|
||||||
filename =
|
filename =
|
||||||
let (_,buffer) = In_channel.read_all filename
|
let (_,buffer) = In_channel.read_all filename
|
||||||
|> String.lsplit2_exn ~on:'\n' in
|
|> String.lsplit2_exn ~on:'\n' in
|
||||||
let (_,buffer) = String.lsplit2_exn buffer ~on:'\n' in
|
let (_,buffer) = String.lsplit2_exn buffer ~on:'\n' in
|
||||||
of_xyz_string ~charge:charge ~multiplicity:multiplicity buffer
|
of_xyz_string ~charge:charge ~multiplicity:multiplicity
|
||||||
|
~units:units buffer
|
||||||
|
;;
|
||||||
|
|
||||||
|
include To_md5;;
|
||||||
|
let to_md5 = to_md5 sexp_of_t
|
||||||
;;
|
;;
|
||||||
|
38
ocaml/Molecule.mli
Normal file
38
ocaml/Molecule.mli
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
exception MultiplicityError of string
|
||||||
|
|
||||||
|
type t = {
|
||||||
|
nuclei : Atom.t list;
|
||||||
|
elec_alpha : Qptypes.Elec_alpha_number.t;
|
||||||
|
elec_beta : Qptypes.Elec_beta_number.t;
|
||||||
|
} with sexp
|
||||||
|
|
||||||
|
(** Returns the charge of the molecule *)
|
||||||
|
val get_charge : t -> Charge.t
|
||||||
|
|
||||||
|
(** Returns the multiplicity of the molecule *)
|
||||||
|
val get_multiplicity : t -> Multiplicity.t
|
||||||
|
|
||||||
|
(** Returns the number of nuclei *)
|
||||||
|
val get_nucl_num : t -> Qptypes.Nucl_number.t
|
||||||
|
|
||||||
|
(** The name of the molecule *)
|
||||||
|
val name : t -> string
|
||||||
|
|
||||||
|
(** Conversion for printing *)
|
||||||
|
val to_string : t -> string
|
||||||
|
|
||||||
|
|
||||||
|
(** Creates a molecule from an xyz file *)
|
||||||
|
val of_xyz_file :
|
||||||
|
?charge:Charge.t ->
|
||||||
|
?multiplicity:Multiplicity.t ->
|
||||||
|
?units:Units.units -> string -> t
|
||||||
|
|
||||||
|
(** Creates a molecule from an xyz file in a string *)
|
||||||
|
val of_xyz_string :
|
||||||
|
?charge:Charge.t ->
|
||||||
|
?multiplicity:Multiplicity.t ->
|
||||||
|
?units:Units.units -> string -> t
|
||||||
|
|
||||||
|
(** Computes the MD5 hash *)
|
||||||
|
val to_md5 : t -> Qptypes.MD5.t
|
19
ocaml/Multiplicity.mli
Normal file
19
ocaml/Multiplicity.mli
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
type t = Qptypes.Strictly_positive_int.t with sexp
|
||||||
|
|
||||||
|
(** Conversion from int *)
|
||||||
|
val of_int : int -> t
|
||||||
|
val to_int : t -> int
|
||||||
|
|
||||||
|
(** Computation from the number of alpha and beta electrons *)
|
||||||
|
val of_alpha_beta :
|
||||||
|
Qptypes.Elec_alpha_number.t ->
|
||||||
|
Qptypes.Elec_beta_number.t -> t
|
||||||
|
|
||||||
|
(** Generation of the number of alpha and beta electrons *)
|
||||||
|
val to_alpha_beta :
|
||||||
|
Qptypes.Elec_number.t -> t ->
|
||||||
|
Qptypes.Elec_alpha_number.t * Qptypes.Elec_beta_number.t
|
||||||
|
|
||||||
|
(** Conversion to string for printing *)
|
||||||
|
val to_string : t-> string
|
||||||
|
|
17
ocaml/Point3d.mli
Normal file
17
ocaml/Point3d.mli
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
type t =
|
||||||
|
{ x : float;
|
||||||
|
y : float;
|
||||||
|
z : float;
|
||||||
|
} with sexp
|
||||||
|
|
||||||
|
(** Create from an xyz string *)
|
||||||
|
val of_string : Units.units -> string -> t
|
||||||
|
|
||||||
|
(** Convert to a string for printing *)
|
||||||
|
val to_string : Units.units -> t -> string
|
||||||
|
|
||||||
|
(** Computes the squared distance between 2 points *)
|
||||||
|
val distance2 : t -> t -> Qptypes.Positive_float.t
|
||||||
|
|
||||||
|
(** Computes the distance between 2 points *)
|
||||||
|
val distance : t -> t -> float
|
@ -1,3 +1,3 @@
|
|||||||
true: package(core,sexplib.syntax)
|
true: package(core,sexplib.syntax,cryptokit)
|
||||||
true: thread
|
true: thread
|
||||||
|
|
||||||
|
@ -26,8 +26,8 @@ let run ?o b c m xyz_file =
|
|||||||
|
|
||||||
(* Read molecule *)
|
(* Read molecule *)
|
||||||
let molecule =
|
let molecule =
|
||||||
Molecule.of_xyz_file xyz_file ~charge:c
|
(Molecule.of_xyz_file xyz_file ~charge:(Charge.of_int c)
|
||||||
~multiplicity:(Multiplicity.of_int m)
|
~multiplicity:(Multiplicity.of_int m) )
|
||||||
in
|
in
|
||||||
|
|
||||||
(* Build EZFIO File name *)
|
(* Build EZFIO File name *)
|
||||||
|
@ -59,6 +59,7 @@ let run_i ~action ezfio_filename =
|
|||||||
and n_beta = input.Input.Electrons.elec_beta_num
|
and n_beta = input.Input.Electrons.elec_beta_num
|
||||||
|> Elec_beta_number.to_int
|
|> Elec_beta_number.to_int
|
||||||
in Array.fold ~init:(-n_alpha-n_beta) ~f:(fun x y -> x+y) nucl_charge
|
in Array.fold ~init:(-n_alpha-n_beta) ~f:(fun x y -> x+y) nucl_charge
|
||||||
|
|> Charge.of_int
|
||||||
in
|
in
|
||||||
|
|
||||||
let compute_multiplicity () =
|
let compute_multiplicity () =
|
||||||
@ -80,7 +81,7 @@ let run_i ~action ezfio_filename =
|
|||||||
Ezfio.((get_nuclei_nucl_label ()).data) |> Ezfio.flattened_ezfio_data
|
Ezfio.((get_nuclei_nucl_label ()).data) |> Ezfio.flattened_ezfio_data
|
||||||
else
|
else
|
||||||
Array.map ~f:(fun x-> x
|
Array.map ~f:(fun x-> x
|
||||||
|> Float.to_int
|
|> Charge.of_float
|
||||||
|> Element.of_charge
|
|> Element.of_charge
|
||||||
|> Element.to_string ) nucl_charge
|
|> Element.to_string ) nucl_charge
|
||||||
in
|
in
|
||||||
|
@ -121,6 +121,8 @@ let input_data = "
|
|||||||
* Elec_number : int
|
* Elec_number : int
|
||||||
assert (x > 0) ;
|
assert (x > 0) ;
|
||||||
|
|
||||||
|
* MD5 : string
|
||||||
|
assert ((String.length x) = 32);
|
||||||
"
|
"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ let test_module () =
|
|||||||
;
|
;
|
||||||
print_string "Short basis\n===========\n";
|
print_string "Short basis\n===========\n";
|
||||||
print_endline (Basis.to_string basis);
|
print_endline (Basis.to_string basis);
|
||||||
|
print_endline ("MD5: "^(Basis.to_md5 basis |> MD5.to_string));
|
||||||
;;
|
;;
|
||||||
|
|
||||||
test_module ();
|
test_module ();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
let test_module () =
|
let test_module () =
|
||||||
let atom = Element.of_string "Cobalt" in
|
let atom = Element.of_string "Cobalt" in
|
||||||
Printf.printf "%s %d\n" (Element.to_string atom) (Element.to_charge atom)
|
Printf.printf "%s %d\n" (Element.to_string atom) (Charge.to_int (Element.to_charge atom))
|
||||||
;;
|
;;
|
||||||
|
|
||||||
test_module ();;
|
test_module ();;
|
||||||
|
@ -95,5 +95,5 @@ test_hf ();;
|
|||||||
test_mo ();;
|
test_mo ();;
|
||||||
test_nucl ();
|
test_nucl ();
|
||||||
*)
|
*)
|
||||||
test_bielec_intergals ();;
|
test_ao ();;
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ H 1.0 0.54386314 0.00000000 -0.92559535
|
|||||||
print_string "---\n";
|
print_string "---\n";
|
||||||
let m = Molecule.of_xyz_string xyz
|
let m = Molecule.of_xyz_string xyz
|
||||||
in print_endline (Molecule.name m) ;
|
in print_endline (Molecule.name m) ;
|
||||||
let m = Molecule.of_xyz_string xyz ~charge:1 ~multiplicity:(Multiplicity.of_int 2)
|
let m = Molecule.of_xyz_string xyz ~charge:(Charge.of_int 1) ~multiplicity:(Multiplicity.of_int 2)
|
||||||
in print_endline (Molecule.name m) ;
|
in print_endline (Molecule.name m) ;
|
||||||
|
|
||||||
let xyz =
|
let xyz =
|
||||||
@ -31,7 +31,7 @@ O 1.65102147 0.00000000 -2.35602344
|
|||||||
H 0.54386314 0.00000000 -0.92559535
|
H 0.54386314 0.00000000 -0.92559535
|
||||||
"
|
"
|
||||||
in
|
in
|
||||||
let m = Molecule.of_xyz_string xyz ~charge:(-2)
|
let m = Molecule.of_xyz_string xyz ~charge:(Charge.of_int (-2))
|
||||||
in print_endline (Molecule.name m) ;
|
in print_endline (Molecule.name m) ;
|
||||||
print_endline (Molecule.to_string m);
|
print_endline (Molecule.to_string m);
|
||||||
print_string "---------\n";
|
print_string "---------\n";
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
# Thu Oct 23 21:58:40 CEST 2014
|
# Thu Oct 23 21:58:40 CEST 2014
|
||||||
|
|
||||||
QPACKAGE_ROOT=${PWD}
|
QPACKAGE_ROOT=${PWD}
|
||||||
|
PACKAGES="core cryptokit"
|
||||||
|
|
||||||
make -C ocaml Qptypes.ml &> /dev/null
|
make -C ocaml Qptypes.ml &> /dev/null
|
||||||
if [[ $? -ne 0 ]]
|
if [[ $? -ne 0 ]]
|
||||||
@ -13,7 +14,7 @@ then
|
|||||||
cat < ocamlbrew-install.sh | env OCAMLBREW_FLAGS="-r" bash | tee ocamlbrew_install.log
|
cat < ocamlbrew-install.sh | env OCAMLBREW_FLAGS="-r" bash | tee ocamlbrew_install.log
|
||||||
grep "source " ocamlbrew_install.log | grep "etc/ocamlbrew.bashrc" >> quantum_package.rc
|
grep "source " ocamlbrew_install.log | grep "etc/ocamlbrew.bashrc" >> quantum_package.rc
|
||||||
source quantum_package.rc
|
source quantum_package.rc
|
||||||
echo Y | opam install core
|
echo Y | opam install ${PACKAGES}
|
||||||
fi
|
fi
|
||||||
make -C ocaml Qptypes.ml
|
make -C ocaml Qptypes.ml
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user