## The different DOS and bandstructure modes of FLEUR

Fleur supports the calculation of several "DOS-like" quantities which can be understood to be obtained in a two-step procedure.

1. For each of the eigenstates a set of "weights" is obtained.
2. These weights are then used in a k-integration.

From this general structure one can already conclude that there are two different possible output quantities that could be of interest. On the one hand the weight as a function of k-vector, band-index and possibly spin and on the other hand the integrated weight as a function of energy and spin. The first of these can be used to further describe the eigenspectrum in a "bandstructure" view, while the second is a "DOS"-like quantity. If <output band="T"> in the inp.xml Fleur will output these weights for each state, while the <output dos="T"> switch will trigger the k-integration to write out the integrated weights. Hence, the modes as described below can be used with setting the band and/or dos switch in the output section.

The different weights supported by Fleur include the local, $l$-resolved density, the orbital decomposed charges, vacuum charges and the MCD matrix elements. Details are described below.

### Common input switches and resulting output

The most basic setings for generating a DOS-like quantity are then specified in the output/bandDOS tag. For example:

<output dos="T">
<banddos minEnergy="-0.5" maxEnergy="0.5" sigma="0.01" numberPoints="1321"  />
</output>


The banddos tag must be used to specify the most basic quantities controlling the DOS k-point integration. |attribute|description |----|---- |minEnergy| minimal energy of the DOS grid in Hartree (default=-0.5) |maxEnergy| maximal energy of the DOS grid in Hartree (default=0.5) |sigma| smearing energy to smoothen the DOS in Hartree (default=0.01) |numberPoints| point between minEnergy and maxEnergy (default=1321)

### Local and $l$-resolved charges

By default Fleur calculates weights by considering the local $l$-resolved charges in the muffin-tin spheres due to the states. Here we calculate for each atom the charge expanded in spherical harmonics, i.e. the contributions of the l=0, l=1, l=2, and l=3 or s,p,d,f-like charges. The corresponding weights will be labeled by a string like "MT:5d" for the d-like charge of the 5th atom type.

Weight labels

A label like MT:6s is to be understood as the s-like charge of the 6th atom type. Not as a charge of 6s-states.

In addition, the default mode also creates three additional weight "Total", "INT" and "Sym". While the "Total" weight is simply "1.0" for all states, the "INT" weight contains the local DOS in the Interstitial region. The "Sym" weight contains a integer value indicating which representation of the local symmetry corresponding to the k-point the state belongs to.

The data generated in this mode are written to the files "Local.1/2" and/or to the corresponding groups in the banddos.hdf file.

### Orbital decomposed charges

In addition to the simple projection onto s,p,d,f orbital, you can also generate more detailed information projecting onto the different (real) spherical harmonics. This mode is switched on by setting the attribute orbcomp="T" in the banddos tag. So a minimal input setting in the output section would be:

<output dos="T">
<banddos orbcomp="T"  />
</output>


This will give you weights like ORB:1ind:3. Here again the first number after the ORB: will indicate the atom considered.

Counting of atoms in ORB-mode

As the orbital decomposition is calculated for each atom not only once for each atom-type be sure you analyse the correct atom. Use the List of atoms in the output to verify which atom you are looking at.

The second number in the label of the weight, i.e. the number after the ind:, is an index counting though the orbitals as follows: 1:s-state, 2-4: p-states, 5-9: d-states, 10-16: f-states(cubic), 17-23: f-states(low symmetry).

1 2 3 4 5 6 7 8 9
s px py pz dxy dyz dxz dx^2-y^2 dz^2

The data generated in this mode are written to the "Orbcomp" group in the banddos.hdf file.

### Vacuum charges

For film-setups, i.e. if Fleur is using an input for a film, one can write out various projections of the states in the vacuum. The correspond section in the inp.xml file is:

<output dos="T">
<vacuumDOS vacdos="T" integ="F" star="F" nstars="1" locx1="0.0" locy1="0.0" locx2="1.0" locy2="1.0" nstm="0" tworkf="0.0>
<layer> 10 </layer>
</vacuumDOS>
</output>

attribute/tag description
vacdos switch on/off the evaluation of vacuum charges (required)
integ switch to activate a z-integration between the layers specified (default="F")
stars switch to activate a decomposition according to 2D stars (default="F")
nstars number of stars to use in decomposition (must be given if stars="T")
locx/y/1/2 definition of a 2D area in which to integrate the DOS (optional)
nstm switch for different simulation modes for an STM tip (expert usage)
tworkf work function of the tip in STM mode (expert usage)
layer layer at which the DOS should be evaluated. Several layers can be given.

The layers are specified on the internal z-grid Fleur is using in the vacuum. By default we use 100 points with a spacing of 0.1 a.u. So layer should be a number between 1 and 100.

The weights generated by this mode are specified by the following labels: |label|description |----|---- |VAC1| total weight in the first vacuum |VAC2| total weight in the second vacuum |Layer1-x| weight (2D) integrated on the layer x (first vacuum) |Layer2-x| weight (2D) integrated on the Layer x (second vacuum) |R(gVAC1)-x-y| Real part of weight for star y on layer x (first vacuum) |I(gVAC1)-x-y| Imaginary part of weight for star y on layer x (first vacuum) |R(gVAC2)-x-y| Real part of weight for star y on layer x (second vacuum) |I(gVAC2)-x-y| Imaginary part of weight for star y on layer x (second vacuum)

The data generated in this mode are written to the "Vacuum" group in the banddos.hdf file.

### MCD matrix elements

To evaluate MCD matrix elements the following tags can be set:

<output dos="T">
<magneticCircularDichroism mcd="T" energyLO="-2.0" energyUp="-1.0" />
</output>


Besides switching on the mode using the mcd attribute, you also have to specify the energy window for the selection of the core-states.

This mode generates weight labels by a string like "At1NC2pos", where again the first number after the "At" labels the atom type considered, the number after "NC" iterates through the core-states used and the description ends in "pos","neg","cir" for the positive, negative and circular contributions.

The data generated in this mode is written to the "MCD" group in the banddos.hdf file.

### Selection of atoms for the DOS/Bandstructure output

As some of the modes can lead to a large amount of data being generated, the application of the switches can be restricted to a subset of atoms only. For this two different switches are implemented:

1. In the bandDOS section a all_atoms attribute can be specified. It defaults to "T" but can be used to switch off the generation of weights for all atoms.
<output dos="T">
<bandDOS all_atoms="F" />
</output>

1. For each atomic position, a banddos attribute can be given to switch on/off the generation of weights:
<relpos label="something" banddos="F"> 0.0 0.0 0.0 </relpos>


In addition, one can use the alpha, beta, gamma attributes to rotate the coordinate frame of the atom and thus change the assignment of the orbital decomposed weights.

<relpos label="something" alpha="0.0" beta="0.0" gamma="Pi"> 0.0 0.0 0.0 </relpos>