This function calculates and returns the Mulliken populations (i.e. orbital occupations) of each atom in the system.
List of arguments
The returned object from calculateMullikenPopulation() has the following query method:
Array toArray(): Returns
the Mulliken population per atom (and per spin if spin-polarized) in a NumPy
array. The dimension of the array is (natoms)
(spin-unpolarized) and (2,natoms) (spin-polarized),
where n is the number of atoms in the system.
from ATK.KohnSham import * molecule = MoleculeConfiguration(...) scf = executeSelfConsistentCalculation(molecule) mulliken = calculateMullikenPopulation(scf).toArray() elements = molecular.elements() for (e,m) in zip(elements,mulliken): print e.symbol(),m
When using verbosity level 10, ATK also prints the Mulliken population for each orbital in the basis set to the terminal when this function is called. An example of such an output, where a DZP basis set was used for both H and Au will typically look like this:
%block Results::MullikenPopulations 0 H q = 1.00000 [ s: 1.014, s: -0.014, y: 0.000, z: 0.000, x: 0.000 ] 1 Au q = 11.00000 [ s: -0.006, s: 2.006, d(-2): 1.840, d(-1): 1.840, d(0): 1.331, d(1): 1.840, d(2): 1.331, d(-2): 0.160, d(-1): 0.160, d(0): 0.169, d(1): 0.160, d(2): 0.169, y: 0.000, z: 0.000, x: 0.000 ] # ---------------------------------------------------------------- # Total charge = 12 # ---------------------------------------------------------------- %endblock Results::MullikenPopulations
In this example, there are two "s" orbitals for H, which is the "DZ" part of the basis set plus the "P" (polarization) "p" orbitals. For Au, we have two sets of "s" and "d" orbitals (again "DZ") plus a single set of polarization "p" orbitals.
ATK employs solid harmonics to expand the angular part of the basis orbitals. The labels for the orbitals are defined as follows:
Table 5: Mulliken population orbital labels (normalization factors omitted)
| l | m | Label | Solid harmonic |
|---|---|---|---|
| 0 | 0 | s | 1 |
| 1 | -1 | py | y |
| 1 | 0 | pz | z |
| 1 | +1 | px | x |
| 2 | -2 | d(-2) | xy |
| 2 | -1 | d(-1) | yz |
| 2 | 0 | d(0) | 2z2-(x2+y2) |
| 2 | +1 | d(1) | xz |
| 2 | +2 | d(2) | x2-y2 |
| 3 | -3 | f(-3) | y(3x2-y2) |
| 3 | -2 | f(-2) | xyz |
| 3 | -1 | f(-1) | y(4z2-x2-y2) |
| 3 | 0 | f(0) | z(2z2-3x2-3y2) |
| 3 | +1 | f(1) | x(4z2-x2-y2) |
| 3 | +2 | f(2) | z(x2-y2) |
| 3 | +3 | f(3) | x(x2-3y2) |