2018-03-21 19:43:49 +01:00
|
|
|
(** Data structure describing a couple of atomic shells pairs.
|
|
|
|
|
|
|
|
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 {e shell quartets} in the literature, but we prefer to use
|
|
|
|
{e pair} for two functions with the same electron, and {e couple} for two functions
|
|
|
|
acting on different electrons, since they will be coupled by a two-electron operator.
|
|
|
|
|
|
|
|
|
|
|
|
*)
|
|
|
|
|
|
|
|
type t
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
open Qcaml_common
|
2018-03-21 19:43:49 +01:00
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val make : ?cutoff:float -> Atomic_shell_pair.t -> Atomic_shell_pair.t -> t option
|
2018-03-21 19:43:49 +01:00
|
|
|
(** Creates an atomic shell pair couple using two atomic shell pairs.
|
|
|
|
*)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val ang_mom : t -> Angular_momentum.t
|
2018-03-21 19:43:49 +01:00
|
|
|
(** Total angular momentum of the shell pair couple: sum of the angular momenta of
|
|
|
|
all the shells. *)
|
|
|
|
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val atomic_shell_a : t -> Atomic_shell.t
|
2018-03-21 19:43:49 +01:00
|
|
|
(** Returns the first atomic shell of the first shell pair. *)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val atomic_shell_b : t -> Atomic_shell.t
|
2018-03-21 19:43:49 +01:00
|
|
|
(** Returns the second atomic shell of the first shell pair. *)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val atomic_shell_c : t -> Atomic_shell.t
|
2018-03-21 19:43:49 +01:00
|
|
|
(** Returns the first atomic shell of the second shell pair. *)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val atomic_shell_d : t -> Atomic_shell.t
|
2018-03-21 19:43:49 +01:00
|
|
|
(** Returns the second atomic shell of the second shell pair. *)
|
|
|
|
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val atomic_shell_pair_p : t -> Atomic_shell_pair.t
|
2018-03-21 19:43:49 +01:00
|
|
|
(** Returns the first atomic shell pair that was used to build the shell pair. *)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val atomic_shell_pair_q : t -> Atomic_shell_pair.t
|
2018-03-21 19:43:49 +01:00
|
|
|
(** Returns the second atomic shell pair that was used to build the shell pair. *)
|
|
|
|
|
|
|
|
val monocentric : t -> bool
|
|
|
|
(** True if all four atomic shells have the same center. *)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val contracted_shell_pair_couples : t -> Contracted_shell_pair_couple.t list
|
2018-03-21 19:43:49 +01:00
|
|
|
(** Returns the list of significant contracted shell pair couples. *)
|
|
|
|
|
|
|
|
val zkey_array : t -> Zkey.t array
|
|
|
|
(** Returns the array of {!Zkey.t} relative to the four shells of the
|
|
|
|
shell pair couple.
|
|
|
|
*)
|
|
|
|
|
|
|
|
val norm_scales : t -> float array
|
|
|
|
(** Scaling factors of normalization coefficients inside the shell. The
|
|
|
|
ordering is the same as {!zkey_array}.
|
|
|
|
*)
|
|
|
|
|
|
|
|
|