# Spin and Spin Orbit Coupling

*Note:* this page is under construction.

### Introduction

A full treatment of spin, along with its coupling to the orbital angular momentum, is given through the Dirac equation. The Schrodinger equation does not include spin. There is a compromise, however, namely to make a “scalar” approximation to the Dirac equation which removes coupling between orbital and spin parts. In this case the Dirac 4-vector becomes a pair of 2-vectors (large and small components). Most codes make a “scalar Dirac” approximation. The missing coupling can be added perturbatively. How good this approximation is can be checked against solutions of the full Dirac equation. Since the vast majority of this coupling originates from points very close to a nucleus where the electron velocity is large, it can be well approximated by considering the spherical part of the potential only. This results in a spin-orbit term of the form , where

While not exact, this expression is a very good approximation to the exact form of SOC because is is heavily dominated by a small region near the nucleus where diverges in proportion to . Note that each site contribution to the SOC independently

Additionally a magnetic field can be added to the potential. This can originate from a true external magnetic field, or from an “exchange-correlation” field which is in fact a coulomb field that acts in the same way as a magnetic field, as a consequence of the Pauli principle.^{1}. This is the primary origin of magnetization in materials. If the spins are collinear, this can be parameterized in density-functional theory as . and are functionals of some combination of the charge and spin densities, i.e. and .

DFT codes typically compute magnetic phenomena by allowing spin densities to form (when the magnetic energy gain is strong enough to surmount the kinetic energy cost), resulting in different spin-up and spin-down potentials. Most of the time this is sufficient, in which case it is possible to treat spin phenomena as two independent cases, with independent “spin up” and “spin down” potentials. While potentials are uncoupled the two solutions do couple through the self-consistency cycle, as the (separately calculated) and evolve and modify .

It is possible to allow the spin quantization axis to vary in space. Then “up” and “down” have a local meaning that depend on the local spin quantization axis. When the spin quantization axis varies in space, and rotate also, and the effective one-particle equations couple. In that case the (scalar) Dirac equation becomes a 2×2 matrix in spin space.

When spin-orbit coupling is taken into account, it has a contribution proportional to , which adds to the up- and down- parts of the effective single-particle potential. This term does not couple the two channels. There are additionally terms and which couple up- and down- parts. Thus, even when the spin-quantization axis is assumed to be collinear, coupling between the up and down potential subsists through these terems, and the scalar Dirac equation becomes a 2×2 matrix in spin space through . This coupling also can modify the spin quantization axis in an **r**-dependent way. Typically (but not always) the noncollinearity induced by modifies the energy only slightly, and it is sufficient to restrict the input potential to a collinear one.

### Magnetic Symmetry

### Magnetism in the full potential code lmf

*lmf* has a limited ability to handle noncollinearity, but it is not (as of this writing) a fully noncollinear implementation. The input potential can be magnetic and spin-orbit coupling can be included, but the noncollinear parts of the output density are discarded so that the input potential is always collinear. (Note that in the absence of magnetism, this is not an approximation).

#### Spin-Orbit coupling in lmf

Spin-orbit coupling can be treated at varying levels of approximation, through token **SO** in **HAM**.

**SO=1**adds the standard spin-orbit coupling, . to the one-body hamiltonian. For each site matrix elements are calculated and added to the augmented part of the hamiltonian. The various contributions to this is a one-body term are also added to the total energy. This tutorial employs SO coupling in*lmf*for a nonmagnetic system.Further, information about SO coupling can be resolved by site.

**SO=2**adds only the diagonal part, . This preserves the independence of the spin channels. It is, however, an approximation.**SO=3**initially adds only the to the hamiltonian, preserving the independence of the spin channels in the eigenvectors. The eigenvectors are the same as for**SO=2**. However, the off-diagonal parts and are included in perturbation theory, to modify the eigenvalues but not eigenvectors. This approximation is reasonable since the total energy is variational in the density, so it does not need to be as accurately described as the eigenvalues. The perturbation theory is a bit different from standard, as it avoids difficulties when two states are nearly degenerate. See the Appendix in Phys. Rev. B89, 155204.This is a much improved approximation to

**SO=1**, while staying within a collinear framework.

#### Magnetism in the GW code

The GW code can handle magnetic systems. Here the magnetism originates from the exact exchange; it is generally much superior to LDA-based magnetic calculations. Nevertheless, its rough treatment of magnetism is one of the greatest sources of error in QS*GW*, particularly when spin fluctuations are important. It is discussed in this paper If you need to do better, the best remedy is to add Dynamical Mean Field Theory to QS*GW*.

In some cases, e.g. CoO, time-reversal symmetry can be broken. In that case, you need to suppress time-reversal symmetry, which you control with tag **TimeReversal** in the *GWinput* file.

#### Spin orbit coupling used in conjunction with QSGW

SO coupling is a one-body term that originates from relativistic corrections to the kinetic energy. Its effect on the potential, and the potential, in particular the difference between QS*GW* and LDA self energy is only weakly affected. Unless you are dealing with a special case, it is sufficient to perform QS*GW* omitting SO coupling. When you have a self-consistent , run *lmf* once more with SO coupling turned on. (To do this you have to be mindful of the reduction in symmetry; see this tutorial.

You can make the density self-consistent keeping fixed. This may or may not be sensible depending on how correlated the system is. if the change in density generated by SO coupling is well approximated by the change and are similar.

It may happen, if you have very heavy elements or strong correlations where several low-energy scales are competing with one another, that the modification of by SO coupling is is not negligible. For example it was found that in CH_{3}NH_{3}PbI_{3}, the newly popular solar cell material that the effect of SO coupling on was enough to reduce the bandgap by 0.1 eV. It is described in Phys. Rev. B89, 155204.

Unfortunately, as yet the *GW* package does not include noncollinear magnetism. You can, however, include SO coupling using **SO=3** as described above . *lmf* is the only part of the cycle where SO coupling enters explicitly. To use **SO=3** you must make the system magnetic; the *GW* package can handle magnetism when the spins are treated independently, as they are with **SO=2** and **SO=3**.

We have found empirically that the QS*GW* cycle may not converge well with **SO=3** turned on. In most cases it is sufficient to adopt the following procedure:

- Perform a QS
*GW*without SO coupling - Carry out one additional iteration with SO=3. This incorporates most of the effect of SO into .
- With fixed by step 2, run
*lmf*with SO=1.

### Magnetism in the ASA code lm

### Magnetism in the ASA code Green’s function codes lmgf and lmpg

### Magnetism in the tight-binding code tbe

#### Scaling Spin-orbit coupling

You can scale Eq. (1) by a constant factor, and scale each site separately. To do this create a file *socscl.ext* like the one shown (this file is written for four atoms/cell)

```
% const soscl=1
% rows 4 cols 1
{soscl}
{soscl}
{soscl}
{soscl}
```

To test, run an executable like *lm* or *lmf* with this file present. It should yield the same results as before except with the insertion of these lines in the output

ioextf: reading site-dependent, lm-dependent file "SO scaling from socscl", 1 components, 4 sites SOC coefficients scaled by: Class scale Class scale Class scale Class scale 1 1.000 | 2 1.000 | 3 1.000 | 4 1.000 |

Run the command again, adding a switch `-vsoscl=1/2`

and the scale factor should drop to 1/2, and the strength of the SOC should be reduced. Using `-vsoscl=0`

should turn on SOC with zero weight, and yield the same result as if you didn’t include it.

### References

^{1} R. M. Martin, *Electronic Structure*, Cambridge University Press (2004).

^{2} Federico Brivio, Keith T. Butler, Aron Walsh, and Mark van Schilfgaarde, “Relativistic quasiparticle self-consistent electronic structure of hybrid halide perovskite photovoltaic absorbers,” Phys. Rev B89, 155204 (2014)