10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2025-01-03 18:15:47 +01:00
QCaml/mo/lib/frozen_core.mli

56 lines
1018 B
OCaml

(** 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