2014-10-26 17:29:11 +01:00
|
|
|
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
|
2016-03-22 13:28:03 +01:00
|
|
|
val to_xyz : t -> string
|
2014-10-26 17:29:11 +01:00
|
|
|
|
|
|
|
|
|
|
|
(** Creates a molecule from an xyz file *)
|
|
|
|
val of_xyz_file :
|
|
|
|
?charge:Charge.t ->
|
|
|
|
?multiplicity:Multiplicity.t ->
|
|
|
|
?units:Units.units -> string -> t
|
|
|
|
|
2016-09-08 22:37:05 +02:00
|
|
|
(** Creates a molecule from a zmt file *)
|
|
|
|
val of_zmt_file :
|
|
|
|
?charge:Charge.t ->
|
|
|
|
?multiplicity:Multiplicity.t ->
|
|
|
|
?units:Units.units -> string -> t
|
|
|
|
|
|
|
|
(** Creates a molecule from a file (xyz or zmt) *)
|
|
|
|
val of_file :
|
|
|
|
?charge:Charge.t ->
|
|
|
|
?multiplicity:Multiplicity.t ->
|
|
|
|
?units:Units.units -> string -> t
|
|
|
|
|
2014-10-26 17:29:11 +01:00
|
|
|
(** 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
|
|
|
|
|
2015-11-17 22:25:26 +01:00
|
|
|
(** Creates the distance matrix between all the atoms *)
|
|
|
|
val distance_matrix :
|
|
|
|
t -> (float array) array
|
|
|
|
|
2014-10-26 17:29:11 +01:00
|
|
|
(** Computes the MD5 hash *)
|
|
|
|
val to_md5 : t -> Qptypes.MD5.t
|