# How to perform LSDA calculation in Quantum Espresso?

I was simply asking where do I find the reference paper/tutorial for LSDA calculations on quantum ESPRESSO, since I'm struggling to find anywhere to information about the starting_magnetization and spin minorities/majorities concepts! Thank you in advance!

• Are you asking how to set up input files to perform LSDA calculations? or are you specifically asking about how to set the starting_magnetization value? For the former, see the input files in MaX school 2024-Day 1 Commented Jul 28 at 20:27
• How to perform LSDA calculations! Commented Jul 29 at 11:12
• One of the following might be a better choice for the title: "How to perform LSDA calculation in Quantum ESPRESSO?" or "How to set starting_magnetization value while performing LSDA calculation in Quantum ESPRESSO?" Commented Jul 29 at 17:12

In the strict sense, Local Spin Density Approximation (LSDA) means the spin-polarized calculation with LDA functionals. In Quantum ESPRESSO, you can perform spin-polarized calculation for any functionals, be it LDA or GGA (sometimes spin-polarized GGA calculations are denoted by $$\sigma$$-GGA). As an official source, see the example01 (more specifically, part 7) of PW examples. For noncollinear calculations, see example06. To avoid this answer as a link-only answer, let me reiterate some of the things here that you can find in those examples and in the PW input file description.

The main keyword to note is nspin. The default value of nspin=1 which is for non-polarized calculations. If you set nspin=2, it assumes a collinear spin-polarized calculation, i.e., magnetization is only along a single axis (the $$z$$-axis). For nspin=4, it assumes a noncollinear spin-polarized calculation, i.e., the direction of magnetization can be any direction.

Relevant other important keywords are starting_magnetization and tot_magnetization. Assign one of them but not both. tot_magnetization is self-explanatory. The unit is in $$\mathrm{\mu_B}$$ (Bohr magneton). So, if you expect 3 unpaired electron per simulation box, set tot_magnetization=3. starting_magnetization is a little bit trickier. If you assign tot_magnetization, the code will fix the magnetization, and will only self consistently calculate the total energy. On the other hand, if you assign starting_magnetization, the code will try to find the ground state magnetic moments as well as the total energy (it serves only as an initial guess). So, the value of starting_magnetization sometimes is not that important but correct or close value of starting_magnetization helps. You have to set this keyword for all the atomic species you want to impose spin-polarization on. So, if you have three atomic species in your input file like the following:

ATOMIC_SPECIES
S    32.06   S.pbe-n-kjpaw_psl.1.0.0.UPF
Co   63.54   Co.pbe-spn-kjpaw_psl.0.3.1.UPF
Zn   65.38   Zn.pbe-dnl-kjpaw_psl.1.0.0.UPF


and you expect to have 3$$\mathrm{\mu_B}$$ on the $$\ce{Co}$$ site, then you have to set starting_magnetization(2) = 3. Here the 2 in the parenthesis is the index of the atomic species (it is 2 here since $$\ce{Co}$$ is in the second row. Notice that for one atomic species, it only allows you to define one type of magnetization. So, if you have antiferromagnetic (AFM) ordering or something else, you have to distinguish them by labelling differently and using the same pseudopotentials like the following:

ATOMIC_SPECIES
S     32.06   S.pbe-n-kjpaw_psl.1.0.0.UPF
Co1   63.54   Co.pbe-spn-kjpaw_psl.0.3.1.UPF
Co2   63.54   Co.pbe-spn-kjpaw_psl.0.3.1.UPF
Zn    65.38   Zn.pbe-dnl-kjpaw_psl.1.0.0.UPF


This allows you to set starting_magnetization(2) = 1 and starting_magnetization(3) = -1, for example, for creating an AFM configuration. Now this is one way of assigning starting_magnetization(i) = x when the $$i$$-th atomic species has $$x$$ Bohr magneton per simulation box and $$|x| \ge 1$$. You can also define it as $$\zeta$$ where

$$\zeta = \frac{N_{\mathrm{up}}-N_{\mathrm{down}}}{N_{\mathrm{up}}+N_{\mathrm{down}}} \qquad \text{where} \;\; -1 < \zeta < 1.$$ Here, the total number of electrons is NOT the number of electrons in your atom. Instead, check the pseudopotential file and count the valence electrons. For example, if you are using Co.pbesol-spn-kjpaw_psl.0.3.1.UPF, open the file in a text editor and you will see something like:

    Valence configuration:
nl pn  l   occ       Rcut    Rcut US       E pseu
3S  1  0  2.00      1.100      1.400    -7.506922
4S  2  0  2.00      1.100      1.400    -0.403423
3P  2  1  6.00      0.900      1.300    -4.814883
3D  3  2  7.00      1.100      1.400    -0.604834


That means it has 17 valence electrons (sum the occupations). So, if I am expecting 2 $$\mathrm{\mu_B}$$ for the $$\ce{Co}$$ atom, i.e., 2 unpaired electrons, then $$\zeta = 2/17 = 0.117647059$$. So, starting_magnetization(2) = 0.117647059.

Lastly, I don't think the spin majority or minority channel has any specific significance, at least in the collinear calculation. It's just the same thing as spin up (or parallel to magnetization axis) and spin down (anti-parallel). The choice of the magnetization axis is arbitrary, and hence their distinction.