2024-02-28 11:17:20 +01:00
|
|
|
(** Contains the state of the simulation. *)
|
|
|
|
|
2020-10-09 10:02:18 +02:00
|
|
|
open Common
|
|
|
|
open Particles
|
|
|
|
open Operators
|
|
|
|
|
2021-01-01 11:46:11 +01:00
|
|
|
type t
|
2020-10-09 10:02:18 +02:00
|
|
|
|
|
|
|
|
2024-02-28 11:17:20 +01:00
|
|
|
(** Access *)
|
2020-10-09 10:02:18 +02:00
|
|
|
|
2021-01-01 11:46:11 +01:00
|
|
|
val nuclei : t -> Nuclei.t
|
2024-02-28 11:17:20 +01:00
|
|
|
(** Nuclear coordinates used in the smiulation *)
|
|
|
|
|
2021-01-01 11:46:11 +01:00
|
|
|
val charge : t -> Charge.t
|
2024-02-28 11:17:20 +01:00
|
|
|
(** Total charge (electrons + nuclei) *)
|
|
|
|
|
2021-01-01 11:46:11 +01:00
|
|
|
val electrons : t -> Electrons.t
|
2024-02-28 11:17:20 +01:00
|
|
|
(** Electrons used in the simulation *)
|
|
|
|
|
2021-01-01 11:46:11 +01:00
|
|
|
val ao_basis : t -> Ao.Basis.t
|
2024-02-28 11:17:20 +01:00
|
|
|
(** Atomic basis set *)
|
|
|
|
|
2020-10-09 10:02:18 +02:00
|
|
|
val nuclear_repulsion : t -> float
|
2024-02-28 11:17:20 +01:00
|
|
|
(** Nuclear repulsion energy *)
|
|
|
|
|
2021-01-01 11:46:11 +01:00
|
|
|
val operators : t -> Operator.t list
|
2024-02-28 11:17:20 +01:00
|
|
|
(** List of extra operators (range-separation, f12, etc) *)
|
2020-10-09 10:02:18 +02:00
|
|
|
|
|
|
|
|
2024-02-28 11:17:20 +01:00
|
|
|
(** Creation *)
|
2020-10-09 10:02:18 +02:00
|
|
|
|
2024-02-28 11:17:20 +01:00
|
|
|
val make : ?multiplicity:int -> ?charge:int ->
|
2020-10-09 10:02:18 +02:00
|
|
|
?operators:Operator.t list-> nuclei:Nuclei.t ->
|
|
|
|
Ao.Basis.t -> t
|
2024-02-28 11:17:20 +01:00
|
|
|
(** Defaults:
|
|
|
|
* - multiplicity : ~1~
|
|
|
|
* - charge : ~0~
|
|
|
|
* - operators : ~[]~
|
|
|
|
*)
|
2021-01-01 11:46:11 +01:00
|
|
|
|
|
|
|
|
2024-02-28 11:17:20 +01:00
|
|
|
(** Printers *)
|
2020-10-09 10:02:18 +02:00
|
|
|
|
2021-01-01 11:46:11 +01:00
|
|
|
val pp : Format.formatter -> t -> unit
|