The verbosity level (the degree of output from ATK) is set by using the function setVerbosityLevel(). This determines the amount of information printed by ATK during various types of calculations. Since the verbosity setting is global, it applies to the entire program starting from the point in the script where it appears. The verbosity level is defined as an integer value. By increasing this value, the amount of printed information is also increased. See below, for specific details on the information printed for a given verbosity level.
Depending on the verbosity level (0-10) the following information will be printed to the terminal:
No information is printed (silent).
Basic convergence information for the self-consistent iteration.
Same as 1.
Same as 2.
Same as 3.
Same as 4 plus information about the number of iterations used to reach convergence.
Same as 5.
Same as 6.
Same as 7.
Same as 8 plus detailed Mulliken populations.
Same as 9 plus detailed information when calculating the total energy.
150. Same as 10 plus printing of the current time at the end of each iteration.
The basic convergence information printed on the standard output for each iteration
in the self-consistent loop depends on the choice of the
iteration
control criterion.
For example, if this criterion is set to IterationControl.Strict,
the following format is used for bulk and molecule systems, for the electrode parts of a
two-probe calculation, and for the initial bulk-like calculation performed for
two-probe systems:
# sc 5 : Fermi Energy = 0.00186 Ry Ebs = -7.51149 Ry dRho = 5.4136E-02 dEbs = 1.6343E-02 Ry dH = 1.3671E-02 Ry
Here, Ebs is the band structure energy, i.e. the sum of the energies
of all states weighted with their respective occupation, while dRho,
dEbs, and dH are the total absolute changes in the
density matrix, band structure energy, and Hamiltonian, respectively, compared to
the previous step. These are the quantities which, for this choice of the iteration
control criterion, are compared to the tolerance which must be met for convergence.
Note that the basic philosophy is that only the residuals of
the quantities which are used to determine convergence are printed on the standard
output.
For the Green's function part of a two-probe calculation, the output is slightly different:
# sc 11 : q = 8.03666 e Ebs = -7.51149 Ry dRho = 4.2429E-05 dEbs = 2.7440E-07 Ry dH = 1.1231E-04 Ry
Here, q is the total charge in the central region in units of the
electron charge. For molecular, bulk, and electrode systems, the total charge is
of course strictly conserved. This, however, is not the case in a two-probe system
(in particular under bias), where we have open boundary conditions.
The band structure energy Ebs is defined in a different way during
the initial bulk-like calculation and the subsequent Green's function-based
calculation. As a consequence, this quantity exhibits a jump as the calculation
switches between these parts. In the former case, the electrodes are included; in
the latter, they are not.
Since the Fermi energy is an equilibrium property, which is not well-defined for systems with open boundary conditions, its value will not be shown during calculations set up for such systems.
For the two highest verbosity levels (9 and 10), ATK also prints the total Mulliken population for each atom as well as the population for each orbital in the basis set. See the function calculateMullikenPopulation() for more detailed information; this function can also be used to calculate the Mulliken populations after the self-consistent iteration has converged.