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!
1 Answer
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.
starting_magnetization
value? For the former, see the input files in MaX school 2024-Day 1 $\endgroup$