Empirical tight-binding program TBE

Table of Contents

Simple unit cell

Producing the ctrl file

This information will be contained within the file ctrl.fe, where fe may be replaced by any string, and is used to name the file. The file describing the first, simplistic calculation would be as follows. This text may be copied directly into a ctrl file to run this simulation. Details of input categories may be found here.

Constants declared by % const are variables parsed by the preprocessor. Alternatively they may be defined in the CONST category, the only difference being that they are then referenced without {} brackets.

The categories STRUC and SITE define the structure of the cell. The STRUC section includes information regarding the lattice structure such as lattice constant (ALAT=) and its primitive lattice translation vectors (PLAT=). The SITE section of the init file includes the basis information, including the atom species, coordinates (defined here in fractions of the lattice constant) and the directions along which relaxation is permitted (RELAX=).

SPEC will define the details of the species involved, such as the l-cutoff (NL) and the orbitals that will be included in the calculation (IDXDN), where a value of 1 leaves the orbital in the basis and a value of 3 excludes it. These iron atoms will have only d-orbitals, for simple sp-carbon atoms it would be:

ATOM=C Z=6 AMASS=12.0107/{amass} IDXDN=1 1 3

TB includes the Tight Binding specific switches, such as FORCES, which will define whether or not the forces are calculated, and RMAXH which sets the range for finding neighbours in the lattice.

ME defines the matrix elements for the atomic interactions. The value of zero after ME defines the hopping integrals as fixed during the calculation, where their values are set in the string of numbers following each pair of atoms. Here all the interactions have been set to zero apart from the d-orbital sigma, pi and delta integrals which are set to their canonical values.

START is primarily specific to the ASA, however the Q values are used by the TBE, while the P are not but must be set for consistency with the rest of the code. The Q values are used to set the number of electrons, the onsite energy and the Hubbard U for the s, p and d orbitals respectively. Here it defines 6 electrons in the d-channel, with an onsite energy of 0.00 and a Hubbard U equal to 1.

The ITER category is essentially identical to the rest of the LMTO, and so is well described within the documentation, however there are some minor differences. When TBE is called the mixing type may be defined in the command line; the default scheme is to mix elements of the Hamiltonian, but it may be more effective to use tbe --mxq to mix charges or tbe --mxq2 to mix charges and magnetic moments separately. If --mxq2 is being used with Broyden mixing, w=w1,w2 will still set the weights used for charge and magnetic moment mixing respectively, however if wa=1 is set it will carry out an alternate method called “clock mixing”, whereby it will mix the charges to self consistency before each iteration of magnetic mixing. Now CONV will set the charge rms difference requirement for self consistency and CONVC will set that for magnetic moments. This method can generally produce better converged magnetic moments than the alternatives.

Running the simulation

The TBE executable may be invoked (while in the same folder as the ctrl file) with charge mixing specified, using the command:

tbe --mxq ctrl.fe

First the structure will be read, the interaction parameters determined and the k-point map built, reducing the number of required k-points using the symmetry of the lattice unless --nosym is specified in the command line. At each iteration the eigenvalues at selected k-points will be printed:

There are 2 elements, or the charge on each atom, and zero prior iterations to use in the next estimation of the charges as this is the first iteration. rms diff is the convergence criterion defined in MIX and so the defined limit is 1d-4.

The forces will be calculated once the charges have been mixed to self consistency, however they will obviously be zero here as this is a perfect lattice.

Finally it will print the results of the calculation, giving the trace of the density matrix Tr[rho] (or the total number of electrons), the trace of the density matrix with the Hamiltonian Tr[rho][H_0] (which will give the band structure energy), the second order correction to the energy, due to the charge transfer terms and so on, E_2, the internal Virial 3PV and the electrostatic energy emad. A description of the rest of these terms may be found in the source code file tbtote.f.

Note that due to the simplicity of this calculation most of these values are zero, but as the calculation becomes more complex with the inclusion of a pair potential, multiple spins, charge transfer, polarisation and so on, more values will be calculated.

Now TBE will use the Broyden mixing scheme, with a smaller beta and an increased number of prior iterations used in each estimate to improve stability. If --mxq2 is specified in the command line the weights for charge and spin mixing are set separately, with w=w1,w2, otherwise only wc will be used. Note that the weights are set to negative numbers, this causes a new weight to be calculated on each iteration using the previous RMS. As mentioned previously, setting wa=1 means that “clock mixing” will be used for the charges and spins. Obviously this mode may only be used with --mxq2.

The interaction between iron atoms has been set to an exponential form, where the first set of numbers (after “|”) define the values for the interactions at zero range, while DECAY sets the exponent of the exponential decay function for each interaction.

If the exponential interactions were left to decay normally an excessive number of neighbours would be included, and so the tail is replaced or scaled with some rapidly decaying function. The general form of this function is defined by POLY (the degree of the cut-off polynomial) and CUTMOD (whether the function is augmentative or multiplicative), while CUT defines the range at which the function starts and where it goes to zero for each interaction.

The values after “@” set the overlap, which has a similar form for its decay parameter as the interactions, however this is not relevant here as the d-orbitals are too localised for an overlap to be required and the s-orbitals have not been included. PPMODE defines the form of the pair potential, here set to a sum of power law multiplied by an exponential, the values of which are set after “!”.

Finally the value of RMAXH must be changed to reflect the new range of the interactions.

Running the simulation

This time, in order to mix the charges and spins separately, the simulation must be run with:

tbe --mxq2 ctrl.fe

First the charges will be mixed to a self-consistency of at least CONV:

This tutorial covers the very basics of running a TBE simulation, however a great many features have not been mentioned, such as the non-orthogonal TB, polarisable ion self-consistency and molecular dynamics. A description of these features may be found in the documentation and source code.

If this page has any errors, there is something you think is missing or unclear, or for any other issues, you can create a post here letting us know.