3.2. The Occupation Model in PyBEST¶
In PyBEST, the number of occupied orbitals (for the restricted and unrestricted case) is
specified using the OccModel
class. In the current
version, the charge of a molecule is defined by the difference between the
number of electrons in (singly or doubly occupied) orbitals and the sum of the
atomic numbers of all atoms in the molecule.
Specifically, there are three different occupation models implemented.
3.2.1. The Aufbau occupation model¶
In most electronic structure calculations, this occupation model will be first
and most decent choice. The orbitals are occupied according to the Aufbau
principle, that is, the energetically lowest-lying orbitals become occupied.
To initialize the occupation model, create an instance of the
AufbauOccModel
class.
The number of doubly- or singly-occupied orbitals is passed as an argument,
# restricted case (six alpha and six beta electrons)
occ_model = AufbauOccModel(6)
# unrestricted case (four alpha and three beta electrons)
occ_model = AufbauOccModel(4, 3)
3.2.2. The fixed occupation model¶
The FixedOccModel
freezes the occupation numbers
to some pre-defined value.
The occupations are passed as a one-dimensional numpy array,
# restricted case
occ_model = FixedOccModel(np.array([1.0, 1.0, 1.0, 0.5, 0.5, 0.0]))
# unrestricted case
occ_model = FixedOccModel(np.array([1.0, 1.0, 1.0, 0.5, 0.5, 0.0]), np.array([1.0, 0.7, 1.0, 0.0, 0.0, 0.3]))
3.2.3. The Fermi occupation model¶
In case of convergence difficulties in HF calculations, the Fermi-smearing method can be applied to fill up the orbitals [rabuck1999].
# restricted case (six alpha and six beta electrons, 300K)
occ_model = FermiOccModel(6, temperature=300)
# unrestricted case (four alpha and three beta electrons, 500K)
occ_model = FermiOccModel(4, 3, temperature=500)
Note that at the end of an SCF calculation that exploited Fermi smearing, a conventional calculation using the Aufbau occupation model should be performed.
Note
Currently, post-HF calculations only support the Aufbau occupation model. The fixed and Fermi occupation models are only supported in SCF calculations (UHF and RHF).