10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-06-02 03:15:19 +02:00
QCaml/gaussian/lib/atomic_shell_pair_couple.mli

79 lines
2.3 KiB
OCaml
Raw Normal View History

2024-01-17 14:24:28 +01:00
(** Atomic shell pair couple *)
2018-03-21 19:43:49 +01:00
2024-01-17 14:24:28 +01:00
(** 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 *)
2018-03-21 19:43:49 +01:00
2021-01-07 09:21:06 +01:00
type t
2018-03-21 19:43:49 +01:00
2020-10-09 09:47:57 +02:00
open Common
2018-03-21 19:43:49 +01:00
2024-01-17 14:24:28 +01:00
(** Access *)
2018-03-21 19:43:49 +01:00
2021-01-07 09:21:06 +01:00
val ang_mom : t -> Angular_momentum.t
2024-01-17 14:24:28 +01:00
(** Total angular momentum of the shell pair couple: sum of the angular
* momenta of all the shells.
*)
2021-01-07 09:21:06 +01:00
val atomic_shell_a : t -> Atomic_shell.t
2024-01-17 14:24:28 +01:00
(** Returns the first atomic shell of the first shell pair. *)
2021-01-07 09:21:06 +01:00
val atomic_shell_b : t -> Atomic_shell.t
2024-01-17 14:24:28 +01:00
(** Returns the second atomic shell of the first shell pair. *)
2021-01-07 09:21:06 +01:00
val atomic_shell_c : t -> Atomic_shell.t
2024-01-17 14:24:28 +01:00
(** Returns the first atomic shell of the second shell pair. *)
2021-01-07 09:21:06 +01:00
val atomic_shell_d : t -> Atomic_shell.t
2024-01-17 14:24:28 +01:00
(** Returns the second atomic shell of the second shell pair. *)
2021-01-07 09:21:06 +01:00
val atomic_shell_pair_p : t -> Atomic_shell_pair.t
2024-01-17 14:24:28 +01:00
(** Returns the first atomic shell pair that was used to build the shell
* pair.
*)
2021-01-07 09:21:06 +01:00
val atomic_shell_pair_q : t -> Atomic_shell_pair.t
2024-01-17 14:24:28 +01:00
(** Returns the second atomic shell pair that was used to build the shell
* pair.
*)
2021-01-07 09:21:06 +01:00
val contracted_shell_pair_couples : t -> Contracted_shell_pair_couple.t list
2024-01-17 14:24:28 +01:00
(** Returns the list of significant contracted shell pair couples. *)
2021-01-07 09:21:06 +01:00
val monocentric : t -> bool
2024-01-17 14:24:28 +01:00
(** True if all four atomic shells have the same center. *)
2021-01-07 09:21:06 +01:00
val norm_scales : t -> float array
2024-01-17 14:24:28 +01:00
(** Scaling factors of normalization coefficients inside the shell. The
* ordering is the same as ~zkey_array~.
*)
2021-01-07 09:21:06 +01:00
val zkey_array : t -> Zkey.t array
2024-01-17 14:24:28 +01:00
(** Returns the array of ~Zkey.t~ relative to the four shells of the shell
* pair couple.
*)
2018-03-21 19:43:49 +01:00
2024-01-17 14:24:28 +01:00
(** Creation *)
2018-03-21 19:43:49 +01:00
2021-01-07 09:21:06 +01:00
val make : ?cutoff:float -> Atomic_shell_pair.t -> Atomic_shell_pair.t -> t option
2024-01-17 14:24:28 +01:00
(** Creates an atomic shell pair couple using two atomic shell pairs.
* Default cutoff is $\epsilon$.
*)
2018-03-21 19:43:49 +01:00
2024-01-17 14:24:28 +01:00
(** Printers *)
2018-03-21 19:43:49 +01:00
2021-01-07 09:21:06 +01:00
val pp : Format.formatter -> t -> unit