Understanding the logfile¶
In practice you will look often at the logfile to see whether the calculation is going fine. Here is a logfile for a single point calculation.
10:04:09 INIT 10:04:09 BAND development version RunTime: Sep30-2014 10:04:09 Nodes: 1 Procs: 8 10:04:09 Specify title in input 10:04:09 using 2014 defaults convention 10:04:09 All basis functions smoothly confined at radius: 7.0 10:04:10 RADIAL 10:04:10 POINTS 10:04:11 CELLS 10:04:11 NUMGRD 10:04:11 ELSTAT 10:04:11 ATMFNC 10:04:11 CalcAtomicProperties 10:04:11 PREPAREBAS 10:04:11 ------ K .. 6 10:04:12 PREPAREHAM 10:04:12 ------ K .. 6 10:04:12 PREPAREFIT 10:04:13 start of SCF loop 10:04:13 initial density from psi 10:04:14 cyc= 0 err=0.00E+00 cpu= 1s ela= 2s 10:04:16 cyc= 1 err=7.83E-01 meth=m nvec= 1 mix=0.0750 cpu= 1s ela= 2s fit=5.02E-02 10:04:17 cyc= 2 err=7.14E-01 meth=d nvec= 2 mix=0.2000 cpu= 1s ela= 1s fit=2.12E-02 10:04:19 cyc= 3 err=9.39E-02 meth=d nvec= 3 mix=0.2000 cpu= 1s ela= 2s fit=2.72E-02 10:04:20 cyc= 4 err=2.82E-02 meth=d nvec= 3 mix=0.2200 cpu= 1s ela= 1s fit=2.92E-02 10:04:22 cyc= 5 err=4.48E-03 meth=d nvec= 3 mix=0.2420 cpu= 1s ela= 2s fit=2.92E-02 10:04:23 HALFWAY 10:04:23 cyc= 6 err=3.07E-03 meth=d nvec= 4 mix=0.2420 cpu= 1s ela= 1s fit=2.93E-02 10:04:25 cyc= 7 err=6.90E-04 meth=d nvec= 4 mix=0.2662 cpu= 1s ela= 1s fit=2.93E-02 10:04:26 cyc= 8 err=2.68E-04 meth=d nvec= 4 mix=0.2928 cpu= 1s ela= 2s fit=2.93E-02 10:04:28 cyc= 9 err=1.28E-04 meth=d nvec= 4 mix=0.3221 cpu= 1s ela= 1s fit=2.93E-02 10:04:29 cyc= 10 err=6.90E-05 meth=d nvec= 4 mix=0.3543 cpu= 1s ela= 1s fit=2.93E-02 10:04:30 SCF CONVERGENCE 10:04:31 cyc= 11 err=3.43E-06 meth=d nvec= 5 mix=0.3543 cpu= 1s ela= 1s fit=2.93E-02 10:04:32 cyc= 12 err=3.43E-06 meth=d nvec= 1 mix=1.0000 cpu= 1s ela= 1s fit=2.93E-02 10:04:32 ------ K .. 6 10:04:34 10:04:34 Max. cycle time CP: 1.379 10:04:34 IO: 0.309 10:04:34 10:04:34 Mean cycle time CP: 1.459 10:04:34 IO: 0.151 10:04:34 EL: 1.636 10:04:34 10:04:34 final mix.par. 0.083 10:04:34 Approx. conv.rate: 0.000 10:04:34 10:04:34 FERMI ENERGY: -0.2198 A.U. 10:04:34 -5.9802 E.V 10:04:34 Band gap: 0.1394 A.U. 10:04:34 3.7943 E.V 10:04:34 ENERGY 10:04:34 ENERGY OF FORMATION: -1.3496 A.U. 10:04:34 -36.7236 E.V. 10:04:34 -846.8654 KCAL/MOL 10:04:34 CHARGE 10:04:34 HIRSH 10:04:34 CM5CHARGES 10:04:34 GRADIENTS 10:04:38 DOS 10:04:38 cannot use good scaling dos routines 10:04:38 storing all partial DOS 10:04:38 integrate over delta E 10:04:39 BZSTRUCT 10:04:39 PREPAREBAS 10:04:39 ------ K .. 6 10:04:39 PREPAREHAM 10:04:39 ------ K .. 6 10:04:41 copy T(V/VOC) 10:04:41 copy eigensystem 10:04:41 NORMAL TERMINATION 10:04:41 END
There are three different phases. The first phase is the preparation phase. The second phase is the SCF procedure. The third part is the properties phase. Particularly important are the SCF CONVERGENCE and NORMAL TERMINATION messages.
Let us take a closer look at a line during the SCF.
10:04:19 cyc= 3 err=9.39E-02 meth=d nvec= 3 mix=0.2000 cpu= 1s ela= 2s fit=2.72E-02
The meaning of cyc is the iteration number, so it is the third iteration. The self consistent error (err) is 9.4e-2. The method (meth) to guess the density for the next cycle is d, meaning DIIS, being a linear combination (nvec) of three vectors. The density is biased (mix) by 0.2 towards output densities. The SCF cycle took 1 second of cpu time (per core), and needed 2 seconds of real time. Finally the error of the density fitting was 2.7e-2.
Breaking the symmetry¶
In some cases you want to break the symmetry. An example of this is when you want to get the antiferromagnetic state of Fe. Another common example is when you want to apply geometry constraints on atoms.
The easiest way to do this is of course to disable all symmetry, see SYMMETRY%NOSYM, but this might make your calculation more expensive than is needed. A bit more elegant way is to define separate types for the equivalent atoms. Here follows an example input for antiferromagnetic iron
! The two iron atoms have different "types" to break the symmetry ATOMS Fe.a 0.0 0.0 0.0 Fe.b -1.435 -1.435 1.435 end Lattice -1.435 1.435 1.435 1.435 -1.435 1.435 2.87 2.87 -2.87 End CONVERGENCE CRITERION 1.0e-4 Degenerate default SpinFlip 2 ! Flip (startup) spin density at second atom END
Another solution is to use the expert SYMMETRY keyword.
Labels for the basis functions¶
You see the labels for the basis functions in for instance the DOS section of the output. The labels are also used in combination with options like
Print Eigens and
Print OrbPop. (See also Print).
What do the labels look like? A normal atomic basis function, i.e. a numerical orbital or a Slater type orbital, gets a label like <atom number>/<element>/<orbital type>/<quantum numbers description>/<exp in sto>
Example with a Li and a H atom:
1/LI/NO/1s 1/LI/NO/2s 1/LI/STO/2s/1.4 1/LI/STO/2p_y/1.3 1/LI/STO/2p_z/1.3 1/LI/STO/2p_x/1.3 2/H/NO/1s 2/H/STO/1s/1.9 ...
Core states will just get simple numbers as labels:
CORE STATE 1 CORE STATE 2
Fragment key you can give meaningful names to the fragment option, see
Reference and Startup Atoms¶
The formation energy of the crystal is calculated with respect to the reference atoms. BAND gives you the formation energy with respect to the spherically symmetric spin-restricted LDA atoms. If you want the program to do the spin-unrestricted calculation for the atoms you can give key Unrestricted the extra option Reference. We do not recommend this as it would give you the false (except in special cases) feeling that you’ve applied the right atomic correction energy so as to obtain the ‘true’ bonding energy with respect to isolated atoms. The true atomic correction energy is the difference in energy between the used artificial object, i.e. the spherically symmetric, spin-restricted atom with possibly fractional occupation numbers, and the appropriate multiplet state. The spin-unrestricted reference atom would still be spherically symmetric, with possibly fractional occupations: it would only have the probably correct (Hund’s rule) net spin polarization.
The startup density is normally the sum of the restricted atoms. In case you do an unrestricted calculation you may want to get the sum of the unrestricted atoms as startup density by giving key Unrestricted the extra option StartUp. This does not always provide a better startup density since all atoms will have their net-spins pointing up. If a frozen core is used this option can sometimes lead to a negative valence density, because the frozen core is derived from the restricted atom. The program will stop in such a case.
No matter what reference or startup atoms you use, core orbitals and NOs originate always from the restricted free-atom calculation, because we don’t want a spatial dependence of the basis functions on spin.
Numerical Atoms, Basis functions, and Fit functions¶
The program starts with a calculation of the free atoms, assuming spherical symmetry. The formation energy is calculated w.r.t such atoms. You have to specify the configuration (i.e. which orbitals are occupied) in the Dirac subkey of the block key AtomType, and you can for instance use the experimental configuration. Keep in mind, however, that this is not necessarily the optimal configuration for your density functional. For instance, Ni has experimentally two electrons in the 4s shell, but with LDA you will find that it is energetically more profitable to move one electron from the 4s to the 3d. The configuration of the reference atoms does not (i.e. should not) affect the final (SCF) density.
Besides the available basis sets in $ADFHOME/atomicdata/band, you could in principle use the basis functions from the database of the molecular ADF program (see the documentation of ADF for how this database is organized). The functions you will find there are STOs, which is not optimal since BAND offers you the option to use NOs from the numerical atom. The most efficient approach is to use the NOs and remove from the ADF basis set those STOs that are already well described by the NOs.
As an example we will construct a basis for the Ni atom with orbitals frozen up to the 2p shell, derived from a triple-zeta ADF basis. In the Dirac subkey of the block key AtomType you specify that the NOs up to 2p should be kept frozen and that the 3d and 4s NOs be included in the valence basis. Copy from the ADF database all 3d, 4s and the polarization functions into the BasisFunctions subkey of the block key AtomType and remove the middle STOs of the 3d and the 4s.
Usually it is already quite adequate for a good-quality basis to augment each NO with one STO. You could then take a double zeta ADF basis and remove one of the 3d and one of the 4s STOs. We often find that such a basis, with one STO added per NO, has a quality that is comparable to triple zeta STO sets. We strongly recommend that you use combined NO/STO bases. Of course, you may want to verify the quality of the basis set by calculations on a few simple systems.
You can copy the fit functions from the ADF database into the FitFunctions subkey of the block key AtomType. As a matter of experience (and justified by a somewhat different handling of fit functions between the two programs), BAND is in most cases (we have not yet seen an exception) less sensitive to the quality of the fit set than ADF is.