mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-12-22 20:33:36 +01:00
53 lines
980 B
OCaml
53 lines
980 B
OCaml
(** Molecular orbital localization *)
|
|
|
|
open Linear_algebra
|
|
|
|
type localization_kind =
|
|
| Edmiston
|
|
| Boys
|
|
|
|
type mo = Mo_dim.t
|
|
type ao = Ao.Ao_dim.t
|
|
type loc
|
|
|
|
type localization_data
|
|
type t
|
|
|
|
|
|
(** Access *)
|
|
|
|
val kind : t -> localization_kind
|
|
(** Returns the kind of localized MOs *)
|
|
|
|
val simulation : t -> Simulation.t
|
|
(** Returns the simulation environment in which the MOs are localized *)
|
|
|
|
val selected_mos : t -> int list
|
|
(** List of indices of the orbitals involved in the localization *)
|
|
|
|
|
|
val kappa :
|
|
kind:localization_kind ->
|
|
Basis.t ->
|
|
( ao,loc) Matrix.t ->
|
|
(loc,loc) Matrix.t * float
|
|
(** Returns the $\kappa$ antisymmetric matrix used for the rotation matrix and
|
|
* the value of the localization function
|
|
*)
|
|
|
|
val make :
|
|
kind:localization_kind ->
|
|
?max_iter:int ->
|
|
?convergence:float ->
|
|
Basis.t ->
|
|
int list ->
|
|
t
|
|
(** Performs the orbital localization *)
|
|
|
|
val to_basis : t -> Basis.t
|
|
|
|
|
|
(** Printers *)
|
|
|
|
val pp : Format.formatter -> t -> unit
|