10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-12-23 04:43:32 +01:00
QCaml/mo/lib/localization.mli

53 lines
980 B
OCaml
Raw Normal View History

2024-02-28 11:17:20 +01:00
(** Molecular orbital localization *)
2021-01-30 19:07:59 +01:00
open Linear_algebra
2024-02-28 11:17:20 +01:00
2021-01-30 19:07:59 +01:00
type localization_kind =
| Edmiston
| Boys
type mo = Mo_dim.t
type ao = Ao.Ao_dim.t
type loc
2024-02-28 11:17:20 +01:00
type localization_data
2021-01-30 19:07:59 +01:00
type t
2024-02-28 11:17:20 +01:00
(** Access *)
2021-01-30 19:07:59 +01:00
val kind : t -> localization_kind
2024-02-28 11:17:20 +01:00
(** Returns the kind of localized MOs *)
2021-01-30 19:07:59 +01:00
val simulation : t -> Simulation.t
2024-02-28 11:17:20 +01:00
(** Returns the simulation environment in which the MOs are localized *)
2021-01-30 19:07:59 +01:00
val selected_mos : t -> int list
2024-02-28 11:17:20 +01:00
(** List of indices of the orbitals involved in the localization *)
2021-01-30 19:07:59 +01:00
val kappa :
kind:localization_kind ->
Basis.t ->
( ao,loc) Matrix.t ->
(loc,loc) Matrix.t * float
2024-02-28 11:17:20 +01:00
(** Returns the $\kappa$ antisymmetric matrix used for the rotation matrix and
* the value of the localization function
*)
2021-01-30 19:07:59 +01:00
val make :
kind:localization_kind ->
2024-02-28 11:17:20 +01:00
?max_iter:int ->
?convergence:float ->
2021-01-30 19:07:59 +01:00
Basis.t ->
int list ->
t
2024-02-28 11:17:20 +01:00
(** Performs the orbital localization *)
2021-01-30 19:07:59 +01:00
val to_basis : t -> Basis.t
2024-02-28 11:17:20 +01:00
(** Printers *)
2021-01-30 19:07:59 +01:00
2024-02-28 11:17:20 +01:00
val pp : Format.formatter -> t -> unit