3.7.1. horton.localization.localization – Orbital localization procedures¶
- Currently supported localization flavours:
- Pipek-Mezey
This is work in progress.
-
class
horton.localization.localization.Localization(lf, occ_model, projector)¶ Bases:
objectLocalize canonical HF orbitals.
Arguments:
- lf
- A LinalgFactory instance.
- occ_model
- Occupation model.
- Projector
- Projectors for atomic basis function. A list of TwoIndex instances.
Optional arguments:
-
clear()¶ Clear all wavefunction information
-
compute_population_matrix(exp)¶ Determine population matrix
Arguments:
- exp
- The current AO/MO coefficients. An Expansion instance
-
compute_rotation_matrix(coeff)¶ Determine orbital rotation matrix
Arguments:
- coeff
- The non-reduntant orbital rotations, we need only values for p<q
-
update_locblock(new)¶ Update localization block
-
lf¶ The LinalgFactory
-
locblock¶ The orbital block to be localized
-
nbasis¶ The number of basis functions
-
nocc¶ The number of occupied orbitals
-
nvirt¶ The number of virtual orbitals
-
popmatrix¶ The population matrix. A list of TwoIndex instances
-
proj¶ The Projectors. A list of TwoIndex instances
-
class
horton.localization.localization.PipekMezey(lf, occ_model, projector)¶ Bases:
horton.localization.localization.LocalizationLocalize canonical HF orbitals.
Arguments:
- lf
- A LinalgFactory instance.
- occ_model
- Occupation model.
- Projector
- Projectors for atomic basis function. A list of TwoIndex instances.
Optional arguments:
-
assign_locblock()¶ Get localization block. A OneIndex instance
-
clear()¶ Clear all wavefunction information
-
compute_objective_function()¶ Objective function of PM localization to be maximized. The current implementation minimizes -(objective_function).
-
compute_population_matrix(exp)¶ Determine population matrix
Arguments:
- exp
- The current AO/MO coefficients. An Expansion instance
-
compute_rotation_matrix(coeff)¶ Determine orbital rotation matrix
Arguments:
- coeff
- The non-reduntant orbital rotations, we need only values for p<q
-
grad()¶ Gradient of objective function
Arguments:
- popmatrix
- The population matrix. A list of TwoIndex instances
-
hessian(lshift=1e-08)¶ Diagonal Hessian of objective function
Arguments:
- popmatrix
- The population matrix. A list of TwoIndex instances
Optinal arguments:
- lshift
- Shift elements of Hessian (float)
-
orbital_rotation_step(lshift)¶ Calculate gradient, hessian, and orbital rotation step
Arguments:
- lshift
- Shift elements of Hessian
-
solve_model(*args, **kwargs)¶ Update population matrix used to calculate objective function
-
update_locblock(new)¶ Update localization block
-
lf¶ The LinalgFactory
-
locblock¶ The orbital block to be localized
-
nbasis¶ The number of basis functions
-
nocc¶ The number of occupied orbitals
-
nvirt¶ The number of virtual orbitals
-
popmatrix¶ The population matrix. A list of TwoIndex instances
-
proj¶ The Projectors. A list of TwoIndex instances