# 3.9.10. horton.meanfield.occ – Occupation number models¶

class horton.meanfield.occ.FixedOccModel(*occ_arrays)

Bases: horton.meanfield.occ.OccModel

assign(*exps)

Assign occupation numbers to the expansion objects

Arguments:

exp_alpha, exp_beta, ...
Expansion objects
check_dms(overlap, *dms, **kwargs)

Test if the given density matrices contain the right number of electrons

Arguments:

overlap
The overlap operator.
dm1, dm2, ...
Density matrices to be tested.

Optional keyword arguments:

eps (default=1e-4)
The allowed deviation.
class horton.meanfield.occ.AufbauOccModel(*noccs)

Bases: horton.meanfield.occ.OccModel

Arguments:

nalpha, nbeta, ...
The number of electrons in each channel.
assign(*exps)

Assign occupation numbers to the expansion objects

Arguments:

exp_alpha, exp_beta, ...
Expansion objects
check_dms(overlap, *dms, **kwargs)

Test if the given density matrices contain the right number of electrons

Arguments:

overlap
The overlap operator.
dm1, dm2, ...
Density matrices to be tested.

Optional keyword arguments:

eps (default=1e-4)
The allowed deviation.
class horton.meanfield.occ.AufbauSpinOccModel(nel)

Bases: horton.meanfield.occ.OccModel

Arguments:

nel
The total number of electrons (alpha + beta)
assign(exp_alpha, exp_beta)

Assign occupation numbers to the expansion objects

Arguments:

exp_alpha, exp_beta, ...
Expansion objects
check_dms(overlap, *dms, **kwargs)

Test if the given density matrices contain the right number of electrons

Arguments:

overlap
The overlap operator.
dm1, dm2, ...
Density matrices to be tested.

Optional keyword arguments:

eps (default=1e-4)
The allowed deviation.
class horton.meanfield.occ.FermiOccModel(*noccs, **kwargs)

Arguments:

nalpha, nbeta, ...
The number of electrons in each channel.

Optional keyword arguments:

temperature
Controls the width of the distribution (derivative)
eps
The error on the sum of the occupation number when searching for the right Fermi level.

For each channel, the orbital occupations are assigned with the Fermi distribution:

$n_i = \frac{1}{1 + e^{(\epsilon_i - \mu)/k_B T}}$

where, for a given set of energy levels, $$\{\epsilon_i\}$$, the chemical potential, $$\mu$$, is optimized as to satisfy the following constraint:

$\sum_i n_i = n_\text{occ}$

where $$n_\text{occ}$$ can be set per (spin) channel. This is only a part of the methodology presented in [rabuck1999].

assign(*exps)

Assign occupation numbers to the expansion objects

Arguments:

exp_alpha, exp_beta, ...
Expansion objects
check_dms(overlap, *dms, **kwargs)

Test if the given density matrices contain the right number of electrons

Arguments:

overlap
The overlap operator.
dm1, dm2, ...
Density matrices to be tested.

Optional keyword arguments:

eps (default=1e-4)
The allowed deviation.