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: object

Localize 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.Localization

Localize 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