exception MultiplicityError of string type t = { nuclei : Atom.t list; elec_alpha : Qptypes.Elec_alpha_number.t; elec_beta : Qptypes.Elec_beta_number.t; } [@@deriving 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 val to_xyz : 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 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 (** 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 (** Creates the distance matrix between all the atoms *) val distance_matrix : t -> (float array) array (** Computes the MD5 hash *) val to_md5 : t -> Qptypes.MD5.t