2018-03-20 18:20:40 +01:00
|
|
|
(** A datastructure to represent pairs of atomic shells.
|
|
|
|
*)
|
|
|
|
|
|
|
|
type t
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
open Qcaml_common
|
2018-03-20 18:20:40 +01:00
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
|
|
|
|
val make : ?cutoff:float -> Atomic_shell.t -> Atomic_shell.t -> t option
|
2018-03-20 18:20:40 +01:00
|
|
|
(** 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].
|
|
|
|
*)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val of_atomic_shell_array : ?cutoff:float -> Atomic_shell.t array -> t option array array
|
2018-03-20 18:20:40 +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].
|
|
|
|
*)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val atomic_shell_a : t -> Atomic_shell.t
|
|
|
|
(** Returns the first {!Atomic_shell.t} which was used to build the atomic
|
2018-03-20 18:20:40 +01:00
|
|
|
shell pair.
|
|
|
|
*)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val atomic_shell_b : t -> Atomic_shell.t
|
|
|
|
(** Returns the second {!Atomic_shell.t} which was used to build the atomic
|
2018-03-20 18:20:40 +01:00
|
|
|
shell pair.
|
|
|
|
*)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val contracted_shell_pairs : t -> Contracted_shell_pair.t list
|
2018-03-20 18:20:40 +01:00
|
|
|
(** Returns an array of {!ContractedShellPair.t}, containing all the pairs of
|
|
|
|
contracted functions used to build the atomic shell pair.
|
|
|
|
*)
|
|
|
|
|
2018-03-21 18:54:56 +01:00
|
|
|
val a_minus_b : t -> Coordinate.t
|
2018-03-20 18:20:40 +01:00
|
|
|
(* A-B *)
|
|
|
|
|
2018-03-21 18:54:56 +01:00
|
|
|
val a_minus_b_sq : t -> float
|
2018-03-20 18:20:40 +01:00
|
|
|
(* |A-B|^2 *)
|
|
|
|
|
|
|
|
val norm_scales : t -> float array
|
|
|
|
(* norm_coef.(i) / norm_coef.(0) *)
|
|
|
|
|
2020-09-26 12:02:53 +02:00
|
|
|
val ang_mom : t -> Angular_momentum.t
|
2018-03-20 18:20:40 +01:00
|
|
|
(* Total angular Momentum *)
|
|
|
|
|
|
|
|
val monocentric : t -> bool
|
|
|
|
(** If true, the two atomic shells have the same center. *)
|
|
|
|
|