mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-12-22 20:33:36 +01:00
44 lines
951 B
OCaml
44 lines
951 B
OCaml
(** Data structure containing the number of alpha and beta electrons.
|
|
*)
|
|
|
|
type t
|
|
|
|
open Common
|
|
|
|
(** Creation *)
|
|
|
|
val make : int -> int -> t
|
|
(* make n_alfa n_beta *)
|
|
|
|
val of_atoms : ?multiplicity:int -> ?charge:int -> Nuclei.t -> t
|
|
(** Creates the data relative to electrons for a molecular system described by
|
|
Nuclei.t for a given total charge and spin multiplicity.
|
|
|
|
@param multiplicity default is 1
|
|
@param charge default is 0
|
|
@raise Invalid_argument if the spin multiplicity is not compatible with
|
|
the molecule and the total charge.
|
|
*)
|
|
|
|
(** Access *)
|
|
|
|
val charge : t -> Charge.t
|
|
(** Sum of the charges of the electrons *)
|
|
|
|
val n_elec : t -> int
|
|
(* Number of electrons *)
|
|
|
|
val n_alfa : t -> int
|
|
(* Number of alpha electrons *)
|
|
|
|
val n_beta : t -> int
|
|
(* Number of beta electrons *)
|
|
|
|
val multiplicity : t -> int
|
|
(* Spin multiplicity: 2S+1 *)
|
|
|
|
|
|
(** Printers *)
|
|
|
|
val pp : Format.formatter -> t -> unit
|