(** Type *) (** Defines how the core electrons are frozen, for each atom. *) type kind = | All_electron | Small | Large type t (** Creation *) (** Example * * let f = Frozen_core.(make Small nuclei) ;; * val f : Frozen_core.t = [|0; 2; 2; 0|] * * let f = Frozen_core.(of_int_list [0; 2; 2; 0]) * val f : Frozen_core.t = [|0; 2; 2; 0|] * *) val make : kind -> Particles.Nuclei.t -> t (** Creates a ~Frozen_core.t~ with the same kind for all atoms *) val of_int_list : int list -> t (** Creates a ~Frozen_core.t~ giving the number of frozen electrons per atom *) val of_int_array : int array -> t (** Creates a ~Frozen_core.t~ giving the number of frozen electrons per atom *) (** Access *) (** Example * * Frozen_core.num_elec f ;; * - : int = 4 * * Frozen_core.num_mos f ;; * *) val num_elec : t -> int (** Number of frozen electrons *) val num_mos : t -> int (** Number of frozen molecular orbitals *) (** Printers *) val pp : Format.formatter -> t -> unit