QCaml/mo/lib/localization.mli

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