10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2025-01-08 04:14:09 +01:00
QCaml/mo/lib/frozen_core.mli

56 lines
1018 B
OCaml
Raw Normal View History

2024-01-26 11:24:56 +01:00
(** Type *)
(** Defines how the core electrons are frozen, for each atom. *)
2021-01-01 12:52:50 +01:00
type kind =
| All_electron
| Small
| Large
type t
2024-01-26 11:24:56 +01:00
(** 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|]
*
*)
2021-01-01 12:52:50 +01:00
val make : kind -> Particles.Nuclei.t -> t
2024-01-26 11:24:56 +01:00
(** Creates a ~Frozen_core.t~ with the same kind for all atoms *)
2021-01-01 12:52:50 +01:00
val of_int_list : int list -> t
2024-01-26 11:24:56 +01:00
(** Creates a ~Frozen_core.t~ giving the number of frozen electrons per atom *)
2021-01-01 12:52:50 +01:00
val of_int_array : int array -> t
2024-01-26 11:24:56 +01:00
(** Creates a ~Frozen_core.t~ giving the number of frozen electrons per atom *)
2021-01-01 12:52:50 +01:00
2024-01-26 11:24:56 +01:00
(** Access *)
2021-01-01 12:52:50 +01:00
2024-01-26 11:24:56 +01:00
(** Example
*
* Frozen_core.num_elec f ;;
* - : int = 4
*
* Frozen_core.num_mos f ;;
*
*)
2021-01-01 12:52:50 +01:00
val num_elec : t -> int
2024-01-26 11:24:56 +01:00
(** Number of frozen electrons *)
2021-01-01 12:52:50 +01:00
2024-01-26 11:24:56 +01:00
val num_mos : t -> int
(** Number of frozen molecular orbitals *)
2021-01-01 12:52:50 +01:00
2024-01-26 11:24:56 +01:00
(** Printers *)
2021-01-01 12:52:50 +01:00
val pp : Format.formatter -> t -> unit