Magnetic materials can feature spin-spiral ground states. In such structures the magnetic moment at some atom is rotated by a fixed angle when going to the next atom of this kind in a certain direction defined by the wavevector of the spin spiral $\vec{q}$. The periodicity of this spin spiral might not coincide with the periodictity of the chemical unit cell or some supercell. Nevertheless we can describe such systems with arbitrary periodictity by employing the generalized Bloch theorem.
In its ground state Fe crystallizes in a bcc structure, but it is also possible to synthesizes Fe in an fcc structure, e.g., fcc Fe clusters may form by fast annealing of Fe in a Cu matrix.
It is known that the magnetic ground state of such an fcc Fe structure is a spin spiral. In this exercise we will determine this magnetic structure by minimizing the total energy with respect to the $\vec{q}$-vector (wavevector) of the spin spiral.
We first set up an fcc Fe input with the Cu lattice constant of $6.82~a_0$ and add the following line to the end of the inpgen input:
&qss 0.5 0.5 0.0 /
This input is already prepared in the Fe
subdirectory. Change into that folder and display it.
export MY_HOME=$PWD ; echo $MY_HOME ; cd Fe ; ls ; cat inpFeSpinSpiral.txt
With this inpgen will generate a Fleur input file with the correct symmetries for the provided $\vec{q}$-vector qss. Generate a Fleur input file with the inpgen option -noco
to also write out the parametrization for noncollinear calculations.
inpgen -noco -f inpFeSpinSpiral.txt
The provided $\vec{q}$-vector will rotate the magnetic moment in the MT sphere with respect to the atom position around the z axis. Since by default the magnetic moment points in the z direction this will not have any effect. To actually observe an effect we now tilt the magnetic moment into the xy-plane. This is done by changing the $\beta$ angle in the nocoParams
tag of the Fe atom to $\pi/2.0$. Modify the Fleur input in this way.
With such a setup we have defined a spin spiral in the xy-plane. The rotation of the magnetic moment for an atom at $\vec{\tau} = (\tau_x,\tau_y,\tau_z)$ (in internal coordinates) is $2\pi\langle \vec{q} \vert \vec{\tau} \rangle$. The chosen $\vec{q}$-vector thus rotates the magnetic moment from unit cell to unit cell by $\pi$. We therefore describe an antiferromagnetic fcc Fe crystal with this setup.
We observe that the $\vec{q}$-vector from the inpgen input is stored in calculationSetup/magnetism/qss
. We want to perform several calculations with different $\vec{q}$-vectors.
We also observe that by default the switches calculationSetup/magnetism/@l_noco
and calculationSetup/magnetism/@l_ss
are set to true. This is because of the specification of a $\vec{q}$-vector
in the inpgen input. This means that we already activated noncollinear calculations with a rotation of the orientation of the
magnetic moment in the Fe MT sphere from unit cell to unit cell.
For the following calculation series we will adapt a few parameters to reduce the runtime. Set calculationSetup/scfLoop/@itmax
to 90, calculationSetup/scfLoop@minDistance
to 0.0005, and construct and use a $7 \times 7 \times 7$ $\vec{k}$-point set.
inpgen -inp.xml -kpt grid=7,7,7
Please also execute
export OMP_NUM_THREADS=4
on your computer to enable the usage of 4 OpenMP threads.
Perform the calculations for x-, y-coordinates (qXYCoord) of the $\vec{q}$-vector ranging from $0.0~a_0^{-1}$ to $0.5~a_0^{-1}$ in steps of $0.10~a_0^{-1}$. For this create corresponding subdirectories, copy the Fleur input to them and then modify the input in each folder accordingly.
mkdir $MY_HOME/Fe/qXY-0-00 ; cp $MY_HOME/Fe/*.xml $MY_HOME/Fe/qXY-0-00/
mkdir $MY_HOME/Fe/qXY-0-10 ; cp $MY_HOME/Fe/*.xml $MY_HOME/Fe/qXY-0-10/
mkdir $MY_HOME/Fe/qXY-0-20 ; cp $MY_HOME/Fe/*.xml $MY_HOME/Fe/qXY-0-20/
mkdir $MY_HOME/Fe/qXY-0-30 ; cp $MY_HOME/Fe/*.xml $MY_HOME/Fe/qXY-0-30/
mkdir $MY_HOME/Fe/qXY-0-40 ; cp $MY_HOME/Fe/*.xml $MY_HOME/Fe/qXY-0-40/
mkdir $MY_HOME/Fe/qXY-0-50 ; cp $MY_HOME/Fe/*.xml $MY_HOME/Fe/qXY-0-50/
Perform the Fleur calculation in each of the folders to obtain the self-consistent densities.
cd $MY_HOME/Fe/qXY-0-00/ ; fleur_MPI ; cd $MY_HOME
cd $MY_HOME/Fe/qXY-0-10/ ; fleur_MPI ; cd $MY_HOME
cd $MY_HOME/Fe/qXY-0-20/ ; fleur_MPI ; cd $MY_HOME
cd $MY_HOME/Fe/qXY-0-30/ ; fleur_MPI ; cd $MY_HOME
cd $MY_HOME/Fe/qXY-0-40/ ; fleur_MPI ; cd $MY_HOME
cd $MY_HOME/Fe/qXY-0-50/ ; fleur_MPI ; cd $MY_HOME
Extract the total energies for the self-consistent densities from the calculations
for f in $(find . -name "out"); do grep -H "total energy" $f | tail -1; done
and create a data file with two columns: qXYCoord vs. total energy. Plot the file. Which $\vec{q}$-vector minimizes the total energy? Your results should be similar every 2nd point of the following plot.