# Capabilities

### Table of Contents

- Drawing Energy Bands
- Drawing Fermi Surfaces
- Density Of States
- Spectral Functions
- Mulliken Analysis and Core Level Spectroscopy
- Obtaining quasiparticle Energy Bands From 1-shot GW
- Obtaining a Self-Energy in Dynamical Mean Field Theory
- Dielectric Response and Optics
- Spin Susceptibility and Magnetic Exchange Interactions
- Properties of Disordered Materials and the Coherent Potential Approximation
- Molecular Statics
- Molecular Dynamics
- Noncollinear Magnetism
- Spin Statistics: Relaxation of Spin Quantization Axis
- Spin Orbit Coupling
- Fully Relativistic Dirac Equation
- Application of External Scalar Potential
- Fixed spin-moment
- Application of External Zeeman B Field
- Using Functionals Other Than LDA
- LDA+U
- Adding a Homogenous Background Density
- Band Edge and Effective Mass Finder
- Building a Supercell
- Point Defects in Large Supercells
- Special Quasirandom Structures
- Spin Dynamics
- Phonons
- Other Notes

A detailed explanation of the capabilities of each package within the suite can be found on the package page.

Where tutorials which explain a feature in some detail exist, this page will point to them. However, tutorials do not yet exist for many features.

As a stopgap, this page refers to a script in the source directory that tests the feature. For definiteness, we assume that the source directory is called *~/lm*.

### Drawing Energy Bands

Energy bands can be drawn with the **lmf**, **lm**, **tbe**, **lmgf** and **lumpy** codes.

**lm** can generate energy bands as shown in this tutorial. The same instructions can be applied to all other packages listed above.

### Drawing Fermi Surfaces

Fermi surfaces can be drawn with the **lmf** and **lm** codes. An illustration can be found here:

```
$ ~/lm/fp/test/test.fp fe 1
```

Alternatively, perform the steps by hand:

```
$ cp ~/lm/fp/test/ctrl.fe ~/lm/fp/test/fs.fe .
$ lmfa fe
$ lmf fe
$ lmf fe --iactiv --band~con~fn=fs
$ mc -r:open bnds.fe -shft=0 -w b2 -r:open bnds.fe -shft=0 -w b3 -r:open bnds.fe -shft=0 -w b4 -r:open bnds.fe -shft=0 -w b5
$ fplot -f ~/lm/fp/test/plot.fs0
```

### Density Of States

All of the band codes have the ability to generate the total Density of States (DOS). Total DOS are automatically generated when you set **BZ_SAVDOS**. DOS are written to file *dos.ext* (one DOS in the nonmagnetic case and two in the spin-polarized case).

The **pldos** tool will render *dos.ext* into more user friendly formats, and perform other functions. *Note:* this switch will not be active if **BZ_METAL** is zero.

Codes can also resolve DOS in different ways.

**lmf** and **lm** can generate partial densities-of-states with the --pdos switch.

#### lmf

For partial DOS, see this tutorial.

**lmf** can also generate joint density-of-states, project DOS onto particular orbitals, and resolve DOS by wave number $\mathbf k$, as part of the optics package. This tutorial illustrates how the $d$ partial DOS in Fe can be resolved into $t_{2g}$ and $e_g$ components, and how those components can resolved at a special $k$ point.

#### lm

A detailed tutorial for **lm** partial DOS can be found here.

Features of the optics package also work with **lm**.

#### lmgf and lmpg

**lmgf** can make partial DOS. It can either do it by Pade extrapolation to the real axis of $Im(G)$ calculated on the contour in the complex plane, or you can choose a contour close to the real axis and generate DOS directly. The latter is more accurate, but more time consuming. For a demonstration, try

```
$ ~/lm/gf/test/test.gf nife
```

### Spectral Functions

DOS are equivalent to spectral functions, though generally spectral functions refer to DOS when there is some scattering to spread out the pole $\delta(E - E_0)$ in $Im(G)$ from a noninteracting eigenstate at energy $E_0$.

Codes calculate spectral functions for interacting electrons in several contexts:

- Calculated from
*GW*. See this tutorial. - Calculated in Dynamical Mean Field Theory. See the DMFT tutorial.
- The ASA Green’s function code
**lmgf**will calculate spectral functions in the context of the Coherent Potential Approximation, see this document. Electrons aren’t interacting in the many-body sense here; disorder causes scattering which has the same effect.

### Mulliken Analysis and Core Level Spectroscopy

Mulliken Analysis and Core Level Spectroscopy are closely related to densities of states.

The **lmf** package can also perform Mulliken analysis or Core-Level Spectroscopy (CLS) using switches **--mull** or **--cls**. **--mull** is very similar to **--pdos**: both resolve the total DOS into projections.

**--pdos**projects onto partial waves in augmentation spheres**--mull**projects onto basis functions.

Both switches have several options; for **--mull** see here; for **--cls** see here.

A usage guide for Mulliken analysis, including how the switch is actually used, can be found here. For core-level spectroscopy, see this tutorial.

For *k*-resolved DOS, and as well as joint projection of *k* resolved and Mulliken resolved DOS onto orbitals, see this tutorial.

### Obtaining quasiparticle Energy Bands From 1-shot GW

The test case

```
$ gwd/test/test.gwd fe 1
```

demonstrates the method to obtain results for a metallic system.

### Obtaining a Self-Energy in Dynamical Mean Field Theory

See this document and this tutorial.

### Dielectric Response and Optics

See this document and this tutorial.

### Spin Susceptibility and Magnetic Exchange Interactions

For spin susceptibility in the ASA-Green’s function scheme, see this tutorial.

For a demonstration of the transverse magnetic susceptibility in the *GW* frameowork, try

```
$ gwd/test/test.gwd zbmnas 6
```

### Properties of Disordered Materials and the Coherent Potential Approximation

The ASA Green’s function code **lmgf** can treat chemical and spin disorder, and both at the same time, with the Coherent Potential approximation. See this tutorial.

### Molecular Statics

For a demonstration, see this test

```
$ ~/lm/fp/test/test.fp te
```

### Molecular Dynamics

**lmf** can do molecular dynamics, but other DFT codes that use iterative diagonalization generally are more efficient.

The empirical tight-binding code has an efficient implementation.

### Noncollinear Magnetism

This is available only in the ASA at present. There are no tutorials as yet. However, the source code has a number of tests that illustrate noncollinear magnetism. Try

```
$ ~/lm/nc/test/test.nc --list
```

### Spin Statistics: Relaxation of Spin Quantization Axis

**lm** and **lmgf** can perform “spin statics” — the analog of molecular statics where the spin quantization axis is relaxed to where the off-diagonal parts of the spin density matrix vanish.

There are no tutorials as yet. But try:

```
$ ~/lm/gf/test/test.gf nife
```

### Spin Orbit Coupling

There are no tutorials as yet. This test demonstrates the addition of $\lambda L \cdot S\rangle$ into the band code **lm**:

```
$ ~/lm/nc/test/test.so
```

Thistest combines CPA and spin orbit coupling in **lmgf**:

```
$ ~/lm/gf/test/test.gf fe2b
```

A basic test using **lmf**, comparing $\lambda L_z S_z\rangle$ to $\lambda L \cdot S\rangle$:

```
$ ~/lm/fp/test/test.fp felz 4
```

The following provides an extensive test of SO coupling, resolving contribution by site, and scaling $\lambda L \cdot S\rangle$ to extract the dependence on $\lambda$

```
$ ~/lm/fp/test/test.fp coptso
```

### Fully Relativistic Dirac Equation

The Dirac equation is implemented in the ASA, in codes **lm** and **lmgf**.

There is no tutorial as yet. See this demonstration:

```
$ ~/lm/gf/test/test.frgf ni
```

**lmfa** will generate core levels from the Dirac equation. See this tutorial.

### Application of External Scalar Potential

For the **lmf** code, try the following demonstration:

```
$ ~/lm/fp/test/test.fp mgo
```

### Fixed spin-moment

One technique stabilize self-consistency in difficut magnetic calculations, or to extract quantities such as the magnetic susceptibility, you can imposed a fixed magnetic moment by imposing distinct Fermi levels for each spin. This is equivalent to imposing a static, $q >= 0$ Zeeman field.

The following tests demonstrate the fixed-spin moment technique

```
$ fp/test/test.fp felz
$ fp/test/test.fp ni
```

### Application of External Zeeman B Field

In the ASA, try the following demonstrations

```
$ ~/lm/nc/test/test.nc 5 6
```

In the FP code, try the following demonstration

```
$ ~/lm/fp/test/test.fp gdn
```

### Using Functionals Other Than LDA

**lmf** demonstrates the PBE functional with this test:

The ASA code demonstrates the PBE functional with this test:

```
$ ~/lm/fp/test/test.fp te
```

The ASA code **lm** demonstrates the PBE functional with this test:

```
$ ~/lm/testing/test.lm kfese
```

### LDA+U

The following tests illustrate LDA+U in the **lmf** code:

```
$ ~/lm/fp/test/test.fp cdte
$ ~/lm/fp/test/test.fp gdn
$ ~/lm/fp/test/test.fp eras
$ ~/lm/fp/test/test.fp er
```

In the ASA, try

```
$ ~/lm/testing/test.lm er
```

### Adding a Homogenous Background Density

Try the following demonstration:

```
$ ~/lm/fp/test/test.fp c
```

### Band Edge and Effective Mass Finder

Finding band edges in complex semiconductors and insulators can be a tedious exercise. This tutorial explains a tool that automates the process and also gives effective mass tensors around band extrema.

### Building a Supercell

For now, look at these tests:

```
$ ~/lm/testing/test.lmscell --list
```

### Point Defects in Large Supercells

Tutorials are in progress. If you are interested contact us.

### Special Quasirandom Structures

For now, do this test for an SQS structure of NiO

```
$ ~/lm/testing/test.lmscell 4
```

### Spin Dynamics

No tutorials yet, sorry.

### Phonons

No tutorials yet, sorry.

### Other Notes

#### Techniques for Brillouin Zone Integration

Techniques for Brillouin zone integration are described some detail here.

#### How to Make Integer Lists in Various Contexts

The syntax for integer lists is described here. In some contexts lists can consist of real numbers. The same rules apply.

#### How to Define Rotations in Various Contexts

Rotations are used for crystal axes, spin quantization axes, and in a few other contexts. They are constructed by a succession of angles around specified axes. This page explains how to specify rotations.

#### How Site Positions are Read by the Input File

Lattice data (lattice vectors and site positions) can be read in different ways. See this page.

#### Angular Momentum in the Questaal suite

Questaal codes use real harmonics $Y_{lm}$ by default, which are real linear combination of spherical harmonics $Y_{lm}$. The ASA codes will, however, use true spherical harmonics if you set **OPTIONS_SHARM** to true.

The $Y_{lm}$ are functions of solid angle, while $Y_{lm}r^l$ are polynomials in $x$, $y$, and $z$. This page documents Questaal’s conventions for real and spherical harmonics and shows the polynomial forms of hte $Y_{lm}$ for $l = 0...3$.

Edit This Page