mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-11-15 18:43:40 +01:00
55 lines
1.4 KiB
OCaml
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. *)
|
|
|