10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2025-01-08 20:33:03 +01:00
QCaml/mo/lib/localization.mli

48 lines
796 B
OCaml
Raw Normal View History

2024-01-26 11:24:56 +01:00
(** Orbital localization *)
(** Types *)
2021-01-30 19:07:59 +01:00
open Linear_algebra
2024-01-26 11:24:56 +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-01-26 11:24:56 +01:00
type localization_data
2021-01-30 19:07:59 +01:00
type t
2024-01-26 11:24:56 +01:00
(** Access *)
2021-01-30 19:07:59 +01:00
val kind : t -> localization_kind
val simulation : t -> Simulation.t
val selected_mos : t -> int list
val kappa :
kind:localization_kind ->
Basis.t ->
( ao,loc) Matrix.t ->
(loc,loc) Matrix.t * float
2024-01-26 11:24:56 +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-01-26 11:24:56 +01:00
?max_iter:int ->
?convergence:float ->
2021-01-30 19:07:59 +01:00
Basis.t ->
int list ->
t
2024-01-26 11:24:56 +01:00
(** Performs the orbital localization *)
2021-01-30 19:07:59 +01:00
val to_basis : t -> Basis.t
2024-01-26 11:24:56 +01:00
(** Printers *)
2021-01-30 19:07:59 +01:00
val pp : Format.formatter -> t -> unit