Definition of the Bravais lattice

In the XML input file lattices for bulk or film unit cells can be defined in the cell section. The type of unit cell is selected by using either the BulkLattice or the FilmLattice XML elements. The definition of the details of the lattice is in both cases similar. The lattice vectors are given in atomic units (bohr radii). For the bulk lattice the following examples illustrate the different options to declare the shape of the unit cell:

<bulkLattice scale="1.00" latnam="any">
   <bravaisMatrix>
      <row-1>.0000000000 5.1673552752 5.1673552752</row-1>
      <row-2>5.1673552752 .0000000000 5.1673552752</row-2>
      <row-3>5.1673552752 5.1673552752 .0000000000</row-3>
   </bravaisMatrix>
</bulkLattice>

A simple way to define the lattice is to just provide the lattice vectors in the 3x3 Bravais matrix. The attribute scale of the bulkLattice element is a factor the matrix is multiplied with. It can be used to change the size of the unit cell, e.g., to find the optimized lattice constant from a sequence of DFT calculations. If the Bravais matrix is directly provided, the bulkLattice attribute latnam has to be set to "any".

Film calculations

For film lattices several additional attributes have to be set. The attribute dVac defines the length of the unit cell in z-direction. dTilda defines the length of an artificial, virtual, extended unit cell used to determine the set of LAPW basis functions. This is required as the LAPWs for a given unit cell are adapted to periodic problems. For the direction normal to the film plane this periodicity is not present.

The lattice itself can again be declared by providing the Bravais matrix as it is done in the example. However, in this case the entries of the matrix in the third row and in the third column are ignored.

The vacuum energy parameters are also defined in the filmLattice XML element. These are specified by up to two vacuumEnergyParameters elements: For both vacua energy parameters can be provided for two spins. In nonmagnetic systems only the spinUp entry is considered. The entries define the energy parameters relative to the vacuum potential zero, i.e., the potential infinitely far away from the film.

<filmLattice scale="1.00" latnam="any" dVac="47.66" dTilda="51.37">
   <bravaisMatrix>
      <row-1>6.0157233797 .0000000000 .0000000000</row-1>
      <row-2>.0000000000 6.0157233797 .0000000000</row-2>
      <row-3>.0000000000 .0000000000 48.1100636580</row-3>
   </bravaisMatrix>
   <vacuumEnergyParameters vacuum="1" spinUp="-.25" spinDown="-.25"/>
</filmLattice>

Alternative specification of the lattice

Alternative specification of the lattice

While we currently still support some of the options outlined here, these are deprecated. Please use them in the input of the input-generator 'inpgen' instead of 'inp.xml'

<bulkLattice scale="0.97" latnam="squ">
   <a1>4.815397</a1>
   <c>6.81</c>
</bulkLattice>

Another way to define the lattice is to set the latnam attribute to the name of the Bravais lattice. In this case instead of the Bravais matrix the corresponding lattice parameters have to be provided. They are set in the <a1>, <a2>, and <c> xml elements. Note that not all lattices require all three lattice constants. In such a case only the required parameters have to be set. The lattices definable by this approach are

latnam <a1> <a2> <c> description
squ x x
c-b x x
fcc x * face-centered cubic
hex x x
hx3 x x
bcc x * body-centered cubic
c-r x x x
p-r x x x
obl ** ** x
  • * an arbitrary value is required but ignored
  • ** the two rows of a 2D Bravais matrix without an enclosing bravaisMatrix element have to be provided

The declaration of film lattices in this way is illustrated with the following example:

<filmLattice scale="1.00" latnam="squ" dVac="5.79" dTilda="9.68">
   <a1>5.458864500000</a1>
   <vacuumEnergyParameters vacuum="1" spinUp="-.25" spinDown="-.25"/>
</filmLattice>

Of course, film lattices can also be defined by naming the type of 2D lattice and providing the lattice constants. In comparison to the bulk lattice the lattice constant does not have to be provided as it is given by dVac.