10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-11-15 18:43:40 +01:00
QCaml/Basis/PrimitiveShell.mli
2018-03-14 16:22:08 +01:00

55 lines
1.4 KiB
OCaml

(** Set of Gaussians with a given {!AngularMomentum.t}
{% \\[
g(r) = (x-X_A)^{n_x} (y-Y_A)^{n_y} (z-Z_A)^{n_z} \exp \left( -\alpha |r-R_A|^2 \right)
\\] %}
where:
- {% $n_x + n_y + n_z = l$ %}, the total angular momentum
- {% $\alpha$ %} is the exponent
*)
type t
val to_string : t -> string
(** Pretty-printing of the primitive shell in a string. *)
val make : AngularMomentum.t -> Coordinate.t -> float -> t
(** Creates a primitive shell from the total angular momentum, the coordinates of the
center and the exponent. *)
val expo : t -> float
(** Returns the exponent {% $\alpha$ %}. *)
val center : t -> Coordinate.t
(** Coordinate of the center {% $\mathbf{A} = (X_A,Y_A,Z_A)$ %}. *)
val totAngMom : t -> AngularMomentum.t
(** Total angular momentum : {% $l = n_x + n_y + n_z$ %}. *)
val norm_coef : t -> float
(** Normalization coefficient of the shell:
{% \\[
\mathcal{N} = \sqrt{\iiint \left[ (x-X_A)^{l}
\exp (-\alpha |r-R_A|^2) \right]^2 \, dx\, dy\, dz}
\\] %}
*)
val norm_coef_scale : t -> float array
(** Scaling factors adjusting the normalization coefficient for the.
particular powers of {% $x,y,z$ %}. They are given in the same order as
[AngularMomentum.zkey_array totAngMom]:
{% \\[
f = \frac{1}{\mathcal{N}} \sqrt{\iiint [g(r)]^2 \, d^3r}
\\] %}
*)
val size_of_shell : t -> int
(** Number of functions in the shell. *)