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.mli

69 lines
1.8 KiB
OCaml
Raw Normal View History

2024-01-17 14:24:28 +01:00
(** Atomic shell pair *)
2018-03-20 18:20:40 +01:00
2024-01-17 14:24:28 +01:00
(** Data structure to represent pairs of atomic shells. The products of
* functions in the shell pair are one-electron functions.
*
* An atomic shell pair is an array of pairs of contracted shells.
*)
(** Type *)
2021-01-20 23:55:34 +01:00
2018-03-20 18:20:40 +01:00
type t
2020-10-09 09:47:57 +02:00
open Common
2018-03-20 18:20:40 +01:00
2024-01-17 14:24:28 +01:00
(** Access *)
2020-09-26 12:02:53 +02:00
2021-01-20 23:55:34 +01:00
val atomic_shell_a : t -> Atomic_shell.t
2024-01-17 14:24:28 +01:00
(** Returns the first ~Atomic_shell.t~ which was used to build the atomic
* shell pair. *)
2021-01-20 23:55:34 +01:00
val atomic_shell_b : t -> Atomic_shell.t
2024-01-17 14:24:28 +01:00
(** Returns the second ~Atomic_shell.t~ which was used to build the atomic
* shell pair. *)
2021-01-20 23:55:34 +01:00
val contracted_shell_pairs : t -> Contracted_shell_pair.t list
2024-01-17 14:24:28 +01:00
(** Returns an array of ~ContractedShellPair.t~, containing all the pairs of
* contracted functions used to build the atomic shell pair.
*)
2021-01-20 23:55:34 +01:00
val ang_mom : t -> Angular_momentum.t
2024-01-17 14:24:28 +01:00
(** Total angular Momentum *)
2021-01-20 23:55:34 +01:00
val monocentric : t -> bool
2024-01-17 14:24:28 +01:00
(** If true, the two atomic shells have the same center. *)
2021-01-20 23:55:34 +01:00
val norm_scales : t -> float array
2024-01-17 14:24:28 +01:00
(** norm_coef.(i) / norm_coef.(0) *)
2021-01-20 23:55:34 +01:00
val a_minus_b : t -> Coordinate.t
2024-01-17 14:24:28 +01:00
(** Returns $A-B$ *)
2021-01-20 23:55:34 +01:00
val a_minus_b_sq : t -> float
2024-01-17 14:24:28 +01:00
(** Returns $\vert A-B \vert^2$ *)
2018-03-20 18:20:40 +01:00
2024-01-17 14:24:28 +01:00
(** Creation *)
2018-03-20 18:20:40 +01:00
2021-01-20 23:55:34 +01:00
val make : ?cutoff:float -> Atomic_shell.t -> Atomic_shell.t -> t option
(* Creates an atomic shell pair from two atomic shells.
*
* The contracted shell pairs contains the only pairs of primitives for which
* the norm is greater than ~cutoff~.
*
* If all the contracted shell pairs are not significant, the function returns
* ~None~. *)
2018-03-20 18:20:40 +01:00
2021-01-20 23:55:34 +01:00
val of_atomic_shell_array : ?cutoff:float -> Atomic_shell.t array -> t option array array
2024-01-17 14:24:28 +01:00
(** Creates all possible atomic shell pairs from an array of atomic shells.
* If an atomic shell pair is not significant, sets the value to ~None~.
*)
2018-03-20 18:20:40 +01:00
2024-01-17 14:24:28 +01:00
(** Printers *)
2021-01-20 23:55:34 +01:00
val pp : Format.formatter -> t -> unit
2024-01-17 14:24:28 +01:00