Basis set

With the key BasisDefaults you can control the quality of the basis set, and the level of frozen core approximation. Given your preferences the basis and fit sets are retrieved from the database. The output starts with a copy of your input, but with the basis and fit sets inserted from the database: at this point you can exactly see which values are used. You can always override the defaults by specifying the AtomType keyword. There is no need for special basis sets for relativistic calculations.

Automatic mode: BasisDefaults

The simplest way of specifying a basis set is via the BasisDefaults block key. For example:

   BasisType TZP
   Core None

instructs BAND to use an all-electron (Core None) TZP basis set.

BasisDefaults (block-type)

This key allows you to generate automatically the required AtomType blocks from the database. The basis sets database is located in “$ADFHOME/atomicdata/band”. You can always see what has been generated at the beginning of the output file, where your input is echoed with the AtomType blocks expanded. It shows as a comment from which file each AtomType has been copied.

! --- basis from file /path/to/TZ2P/C.1s---

AtomType C

! --- basis from file /path/to/DZ/H---

AtomType H

The BasisDefaults block has the following subkeys.


The following basis sets are available.

  • DZ: Double zeta. Adapted from the ADF basis set of the same name. The smallest basis set. The results are most likely not so accurate compared to larger basis sets.
  • DZP: Double zeta plus polarization function. Is only available for main group elements up to Krypton. Note: For other elements a TZP basis set will be used automatically!
  • TZP: Triple zeta plus polarization. Adapted from the ADF basis set of the same name.
  • TZ2P: Triple zeta plus double polarization. Adapted from the ADF basis set of the same name. This is a good basis set.
  • QZ4P: Quadruple zeta plus quadrupole polarization. The biggest basis set. For benchmark purposes only.

If you have a large unit cell, you could start with the DZ basis, to see if it will be feasible at all. For more reliable results, use a triple zeta basis set.

You can override the defaults per type as presented in the following example (compare to BasisDefaults example):

   C              0.0   0.0   0.0
   O.large_basis  0.0   2.13  0.0
   H.large_basis  4.0   0.0   0.0
   H              4.0   1.43  0.0

   ! Cheap defaults
   BasisType DZ
   Core Large
   C              Core=None         ! This C has no frozen core
   O.large_basis  BasisType=TZ2P    ! This O with a larger basis
   H.large_basis  BasisType=V       ! This one also with a larger basis

Furthermore, you can override the defaults per Atoms block by specifying Atoms%Core and Atoms%BasisType, or Atoms%Path (sub)keys. Following is an example:

Atoms :: block one
   BasisType TZ2P
   Core      Small
   Si   0.0  0.0  0.0

Atoms :: block two
   BasisType DZP
   Core      None
   H    1.4  1.4  1.4

(Default: Large) This influences the size of the frozen core used. Possible values are None, Small, Medium, Large. You should be aware that a change of this parameter does not necessarily mean that a different frozen core is used. You can again check in the output what file was really used. You can see it from the extension in the comment line preceding the AtomType key

! --- basis from file /path/to/TZ2P/C.1s---

or from the Dirac block in the AtomType key.

Note: For all elements up to Au the Medium and Large frozen core are identical. And starting with Thallium there are three different frozen core definitions available.

The STO fit set is by default determined via the BasisType. With this key one can choose the fit set independently from the BasisType key. (See obsolete density fitting)

Available standard basis sets

The next table gives an idication which all electron (ae) and frozen core (fc) standard basis sets are available for the different elements in BAND.

Available standard basis sets for non-relativistic and ZORA calculations H-Uuo (Z=1-118)
Element ae fc SZ, DZ DZP TZP, TZ2P, QZ4P
H-He (Z=1-2) ae   Yes Yes Yes
Li-Ne (Z=3-10) ae .1s Yes Yes Yes
Na-Mg (Z=11-12) ae .1s .2p Yes Yes Yes
Al-Ar (Z=13-18) ae .2p Yes Yes Yes
K-Ca (Z=19-20) ae .2p .3p Yes Yes Yes
Sc-Zn (Z=21-30) ae .2p .3p Yes   Yes
Ga-Kr (Z=31-36) ae .3p .3d Yes Yes Yes
Rb-Sr (Z=37-38) ae .3p .3d .4p Yes   Yes
Y-Cd (Z=39-48) ae .3d .4p Yes   Yes
In-Ba (Z=49-56) ae .4p .4d Yes   Yes
La-Lu (Z=57-71) ae .4d .5p Yes   Yes
Hf-Hg (Z=72-80) ae .4d .4f Yes   Yes
Tl (Z=81) ae .4d .4f .5p Yes   Yes
Pb-Rn (Z=82-86) ae .4d .4f .5p .5d Yes   Yes
Fr-Ra (Z=87-88) ae .5p .5d Yes   Yes
Ac-Lr (Z=89-103) ae .5d .6p Yes   Yes
Rf-Uuo(Z=104-118) ae .5d .5f Yes   Yes
  • element name (without suffix): all electron (ae)
  • .1s frozen: 1s
  • .2p frozen: 1s 2s 2p
  • .3p frozen: 1s 2s 2p 3s 3p
  • .3d frozen: 1s 2s 2p 3s 3p 3d
  • .4p frozen: 1s 2s 2p 3s 3p 3d 4s 4p
  • .4d frozen: 1s 2s 2p 3s 3p 3d 4s 4p 4d
  • .4f frozen: 1s 2s 2p 3s 3p 3d 4s 4p 4d 4f
  • .5p frozen: 1s 2s 2p 3s 3p 3d 4s 4p 4d 5s 5p (La-Lu)
  • .5p frozen: 1s 2s 2p 3s 3p 3d 4s 4p 4d 4f 5s 5p (other)
  • .5d frozen: 1s 2s 2p 3s 3p 3d 4s 4p 4d 4f 5s 5p 5d
  • .6p frozen: 1s 2s 2p 3s 3p 3d 4s 4p 4d 4f 5s 5p 5d 6s 6p (Ac-Lr)
  • .5f frozen: 1s 2s 2p 3s 3p 3d 4s 4p 4d 4f 5s 5p 5d 5f 6s 6p

Manually specifying AtomTypes

AtomType (block-type)

(Expert Option) Description of the atom type. Contains the block keys Dirac, BasisFunctions and FitFunctions. The key corresponds to one atom type. The ordering of the AtomType keys (in case of more than one atom type) is NOT arbitrary. It is interpreted as corresponding to the ordering of the Atoms keys. The n-th AtomType key supplies information for the numerical atom of the nth type, which in turn has atoms at positions defined by the nth Atoms key.

AtomType ElementSymbol
   Dirac ChemSym
      shells cores
      shell_specification {occupation_number}
      shell_specification STO_exponent
      shell_specification STO_exponent

The argument ElementSymbol to AtomType is the symbol of the element that is referred to in the Atoms key block.

Dirac (block-type)

Specification of the numerical (‘Herman-Skillman’) free atom, which defines the initial guess for the SCF density, and which also (optionally) supplies Numerical Atomic Orbitals (NOs) as basis functions, and/or as STO fit functions for the crystal calculation. The argument ChemSym of this option is the symbol of the element of the atom type. The data records of the Dirac key are:

  1. the number of atomic shells (1s,2s,2p,etc.) and the nr. of core-shells (two integers on one line).
  2. specification of the shell and its electronic occupation.

This specification can be done via quantum numbers or using the standard designation (e.g. ‘1 0’ is equivalent to ‘1s’). Optionally one may insert anywhere in the Dirac block a record Valence, which signifies that all numerical valence orbitals will be used as basis functions (NOs) in the crystal calculation. You can also insert NumericalFit followed by a number (max. \(l\)-value) in the key block, which causes the program to use numerical STO fit functions. For example NumericalFit 2 means that the squares of all s,p, and d NOs will be used as STO fit functions with \(l=0\), since the NOs are spherically symmetric. If you insert Spinor, a spin-orbit relativistic calculation for the single-atom will be carried out.

The Herman-Skillman program generates all its functions (atomic potential, charge density, one-electron states) as tables of values in a logarithmic radial grid. The number of points in the grid, and the min. and max. r-value are defaulted at 3000, 0.000001, and 100.0 (a.u.) respectively. These defaults can be overwritten by specifying anywhere in the Dirac block the (sub)keys radial, rmin and rmax.

The program will do a spin-unrestricted calculation for the atoms in addition to the restricted one. The occupation of the spin-orbitals will be of maximum spin-multiplicity and cannot be controlled in the Dirac key-block.

BasisFunctions (block-type)
Slater-type orbitals, specified by quantum numbers \(n\),:math:l or by the letter designation (e.g. 2p) and one real (alpha) per STO. One STO per record. Use of this key is optional in the sense that Slater-type functions are not needed if other basis functions have been specified (i.e. the numerical atomic orbitals, see key Dirac).
FitFunctions (block-type)

Slater-type fit functions, described in the same way as in BasisFunctions. Each FitFunctions key corresponds to one atom type, the type being the one of the preceding Dirac key. The selection choice of a ‘good’ fit set is a matter of experience. Fair quality sets are included in the database of the molecular program ADF.


AtomType C :: Carbon atom
   Dirac C
      3 1
      2p 2.0
      1s 1.7
      1s 13.5
      2s 11.0
TestFunctions (block-type)
An optional subkey of the AtomType key block is TestFunctions which has the same format as the BasisFunctions and FitFunctions blocks. The TestFunctions block specifies STOs to be used as test functions in the numerical integration package. For the time being the \(l\) value is ignored. A possible application is to include a very tight function, to increase the accuracy near a nucleus.

Confinement of basis functions

It is possible to alter the radial part of the basis functions in order to make them more compact.


With soft confinement the radial part of the basis functions is multiplied with a Fermi-Dirac (FD) function. A FD function goes from one to zero, controlled by two parameters. It has a value 0.5 at Radius, and the decay width is Delta.

  Quality [Basic|Normal|Good|VeryGood|Excellent]
  Radius r
  Delta  d

This will set the confinement for all atoms. The most convenient way is to specify the Quality subkey. The resulting confinement parameters are

Quality Radius Delta
Basic 7.0 0.7
Normal 10.0 1.0
Good 20.0 2.0
VeryGood / /

Specifying the Radius or Delta subkey will override the defaults. A negative value means no confinement.

CONFINEMENT (block-type): subkey of atomtype

You can also control the soft confinement at the atom type level. In a slab calculation this allows one to use different settings for surface atoms than for those in inner layers. You can specify the range and the decay speed of the FD function like:

   Radius 7
   Delta 0.7

If the decay Delta is not specified, it defaults to 0.1*’Radius’. Relativistic effects are treated correctly. If the confinement option is used in combination with the TAILS option, the calculation may run significantly faster. The Confinement option can also be useful without the tails option in cases where near linear dependency reduces the numerical reliability of the results (cf. Dependency keyword). This typically occurs for highly coordinated systems with large basis sets containing diffuse functions. For such cases, the confinement option (possibly in combination with the Dependency keyword) reduces the numerical problems.

NB: does not work with the BasisDefaults key (because it is a subkey of AtomType).