mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-11-19 04:22:21 +01:00
79 lines
2.3 KiB
OCaml
79 lines
2.3 KiB
OCaml
(** Atomic shell pair couple *)
|
|
|
|
(** An atomic shell pair couple is the cartesian product between two sets of
|
|
* functions, one set over electron one and one set over electron two. Both
|
|
* sets are atomic shell pairs.
|
|
*)
|
|
|
|
(** These are usually called /shell quartets/ in the literature, but we
|
|
* prefer to use /pair/ for two functions with the same electron, and
|
|
* /couple/ for two functions acting on different electrons, since they will
|
|
* be coupled by a two-electron operator.
|
|
*)
|
|
|
|
|
|
(** Type *)
|
|
|
|
type t
|
|
|
|
open Common
|
|
|
|
|
|
(** Access *)
|
|
|
|
val ang_mom : t -> Angular_momentum.t
|
|
(** Total angular momentum of the shell pair couple: sum of the angular
|
|
* momenta of all the shells.
|
|
*)
|
|
|
|
val atomic_shell_a : t -> Atomic_shell.t
|
|
(** Returns the first atomic shell of the first shell pair. *)
|
|
|
|
val atomic_shell_b : t -> Atomic_shell.t
|
|
(** Returns the second atomic shell of the first shell pair. *)
|
|
|
|
val atomic_shell_c : t -> Atomic_shell.t
|
|
(** Returns the first atomic shell of the second shell pair. *)
|
|
|
|
val atomic_shell_d : t -> Atomic_shell.t
|
|
(** Returns the second atomic shell of the second shell pair. *)
|
|
|
|
val atomic_shell_pair_p : t -> Atomic_shell_pair.t
|
|
(** Returns the first atomic shell pair that was used to build the shell
|
|
* pair.
|
|
*)
|
|
|
|
val atomic_shell_pair_q : t -> Atomic_shell_pair.t
|
|
(** Returns the second atomic shell pair that was used to build the shell
|
|
* pair.
|
|
*)
|
|
|
|
val contracted_shell_pair_couples : t -> Contracted_shell_pair_couple.t list
|
|
(** Returns the list of significant contracted shell pair couples. *)
|
|
|
|
val monocentric : t -> bool
|
|
(** True if all four atomic shells have the same center. *)
|
|
|
|
val norm_scales : t -> float array
|
|
(** Scaling factors of normalization coefficients inside the shell. The
|
|
* ordering is the same as ~zkey_array~.
|
|
*)
|
|
|
|
val zkey_array : t -> Zkey.t array
|
|
(** Returns the array of ~Zkey.t~ relative to the four shells of the shell
|
|
* pair couple.
|
|
*)
|
|
|
|
|
|
(** Creation *)
|
|
|
|
val make : ?cutoff:float -> Atomic_shell_pair.t -> Atomic_shell_pair.t -> t option
|
|
(** Creates an atomic shell pair couple using two atomic shell pairs.
|
|
* Default cutoff is $\epsilon$.
|
|
*)
|
|
|
|
|
|
(** Printers *)
|
|
|
|
val pp : Format.formatter -> t -> unit
|