mirror of
https://gitlab.com/scemama/QCaml.git
synced 2025-01-03 18:15:47 +01:00
56 lines
1018 B
OCaml
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
|