mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-08-30 00:03:42 +02:00
41 lines
1.0 KiB
OCaml
41 lines
1.0 KiB
OCaml
(** A Slater determinant is expressed as a Waller-Hartree double determinant:
|
|
{% $$
|
|
D(\mathbf{R}) = D_\alpha(\mathbf{R_\alpha}) \times D_\beta(\mathbf{R_\beta})
|
|
$$ %}
|
|
The {% $\alpha$ %} and {% $\beta$ %} determinants are of type [Spindeterminant.t].
|
|
*)
|
|
|
|
|
|
type t
|
|
|
|
(** {1 Accessors} *)
|
|
|
|
val alpha : t -> Spindeterminant.t
|
|
(** Get the {% $\alpha$ %} spin-determinant. *)
|
|
|
|
val beta : t -> Spindeterminant.t
|
|
(** Get the {% $\beta$ %} spin-determinant. *)
|
|
|
|
val phase : t -> Phase.t
|
|
(** Get the phase of the Slater determinant, the product of the phases of the
|
|
spin-determinants.
|
|
*)
|
|
|
|
(** {1 Creators} *)
|
|
|
|
val of_spindeterminants : Spindeterminant.t -> Spindeterminant.t -> t
|
|
(** Creates a Slater determinant from an {% $\alpha$ %} and a {% $\beta$ %}
|
|
[Spindeterminant.t].
|
|
*)
|
|
|
|
val of_lists : int list -> int list -> t
|
|
(** Creates a Slater determinant from a two lists of orbital indices. *)
|
|
|
|
(** {1 Printers} *)
|
|
|
|
val pp_det : Format.formatter -> t -> unit
|
|
|
|
(** {1 Unit tests} *)
|
|
|
|
val test_case : unit -> (string * [> `Quick ] * (unit -> unit)) list
|