## Treatment of noncollinear magnetism

In the case of noncollinear magnetism, the Kohn-Sham equation obtains the form

where is the unit-matrix. The kinetic energy part of the Hamiltonian is diagonal in the two-dimensional spin space. Only the off-diagonal part of the hermitian potential matrix

couples the two components of the Pauli spinor . It is obtained from the density matrix, , that is given by a very simple relation in terms of the solutions of the Kohn-Sham equation, :

It is related to the density and magnetization by

where is the unit-matrix in spin-space and is the vector of the Pauli matrices.

The parametrization of calculations with noncollinear magnetism requires several optional tags
in the Fleur input file. To generate templates for these tags the input generator should be
invoked with one of the command-line options `-noco`

or `-explicit`

. This will generate
a `nocoParams`

section within the `calculationSetup`

block and further `nocoParams`

tags in each `atomGroups/atomGroup`

. In the Fleur input file a noncollinear calculation is
activated by setting the `calculationSetup/magnetism/@l_noco`

switch to `T`

.

Note, that in a non-collinear calculation you can monitor the convergence of all
three parts of the density matrix, the two diagonal ones (spin 1 and 2) and one
of the off-diagonals (spin 3). In non-collinear calculations core-tail corrections
have to be switched off: `calculationSetup/coreElectrons/@ctail`

has to be set to `F`

.

When performing calculations with noncollinear magnetism in Fleur the magnetization in the interstitial region is treated as a continuous vector field while in the MT spheres the magnetization is approximated to be collinear and pointing in a fixed direction. Only the magnitude of the magnetization may change within a MT sphere. This is a reasonable approach for transition metals with small spin-orbit effects. The following figure illustrates this approach.

*Illustration of the treatment of noncollinear magnetism in Fleur. Image taken from: Philip Kurz, Non-Collinear Magnetism at Surfaces and in Ultrathin Films (PhD Thesis, RWTH Aachen).*

In the Fleur input file the direction of the magnetization in the muffin-tin spheres is specified w.r.t. the global frame for
the representative atom of each `atomGroup`

in the associated enclosed `nocoParams`

tag.
The spin-quantization axis (SQA) is provided by the angles (polar angle similar to in the context of SOC) and (azimuthal
angle similar to ). The example below demonstrates the `nocoParams`

for some atom group with
defined and .

```
<nocoParams l_relax="F" alpha="Pi/4.0" beta="3.0*Pi/4.0"
b_cons_x="0.0" b_cons_y="0.0"/>
```

Assume that there are two symmetry equivalent atoms in the same `atomGroup`

of a unit cell, then setting
and describes an antiferromagnetic structure.

In detail the angles and define the direction of the exchange field in the atoms at the start of a self-consistency step. After the diagonalization, the resulting charge density is not necessarily collinear in the muffin-tin spheres and even the average magnetization direction can point away from the defined SQA. It can happen (e.g. due to symmetry) that the magnetization stays in the direction of the SQA, but generally this will not be the case.

To consider the full non-collinear output magnetization density (also in the MT spheres) for a plot the
switch `calculationSetup/nocoParams/@l_mperp`

has to be set to `T`

. Afterwards one has to follow the normal
plotting procedure for a density.

Note that if spin-orbit coupling is considered together with noncollinear magnetism, i.e., `calculationSetup/soc/@l_soc`

is
set to `T`

, spin-orbit coupling is already treated in first variation. In this case `calculationSetup/cutoffs/@numbands`

is not a relevant cutoff parameter.

Due to an ongoing generalization of the treatment of noncollinear magnetism the following calculation modes are temporarily not functional in the Fleur MaX release 4.0. They will be reactivated in future releases.

Besides just keeping the angles and fixed there are two optional calculation modes that deal with output magnetization directions in the MT spheres that do not conicide with the input directions:

- Adjusting the SQA in the direction of the output magnetization
- Constraining the magnetization to the direction of the specified SQA

In both cases, it is necessary to know the component of the output magnetization that is perpendicular to the SQA.
This is obtained by setting `calculationSetup/nocoParams/@l_mperp`

to `T`

.

In the first case, the **relaxation of the magnetic moments**, it is then sufficient
to set for the respective atom groups `atomGroup/nocoParams/@l_relax`

to `T`

.
After each iteration and are adjusted to the output magnetization,
if the mixing parameter `calculationSetup/nocoParams/@mix_b`

is set to `1.0`

completely, for
smaller parameters an intermediate direction is taken (zero means no relaxation). Be aware that
such a relaxation can lead to slow convergence, sometimes it helps to remove the `mixing_history`

from time to time.

For the case of **constraining the magnetization** one has to set the switch `calculationSetup/nocoParams/@l_constr`

to `T`

. Then, a constraining field is calculated for each atom

which is then added to the effective field . The
ratio of perpendicular magnetization, and magnetization
along the SQA, , is proportional to the true constraining field
but the value has to be determined self consistently (with being the
mixing factor `mix_b`

).
For each atom group the values of the constraining field are written as `atomGroup/nocoParams/@b_cons_x`

and `atomGroup/nocoParams/@b_cons_y`

in the inp.xml file for the next iteration.

### Treatment of noncollinear magnetism inside the Muffin-tin sphere (Experimental)

Before discussing the setup and usage of this feature please be aware that this feature requires that FLEUR has access to a working hdf5 library.

Generating an input file using the `-noco`

option of the input generator will also genreate some additional `nocoParams`

in
the `calculationSetup`

section. The `nocoParams`

which are relevant for setting up
a calculation which includes noncolinearities inside the Muffin-tin sphere are `l_mtNocoPot`

and `l_mperp`

.
Both of these must be set to `T`

instead of the default `F`

.

Setting the `calculationSetup/nocoParams/@l_mtNocoPot`

switch to `T`

allows offdiagonal elements of the potential inside the Muffin-tin sphere.

As with all noncolinear calculations in FLEUR
`calculationSetup/coreElectrons/@ctail`

has to be set to `F`

.
Furthermore `calculationSetup/magnetism/@jspins`

should equal `2`

if the input file has been generated correctly.

Including noncolinearities inside the Muffin-tin sphere is known to be the reason of convergence issues.
We strongly recommend using LDA like funtcionals since GGA like functionals seem to compound the convergence issues.
If GGA like functionals have to be used we recommend first using the `Anderson`

mixing scheme and as soon as convergence problems appear switching to simple mixing.

After finishing an iteration the individual magnetization components (`mx`

, `my`

and `mz`

) of each atom are written in the out file.
Be aware that these values are calculated in the local frame of the atom which is either defined in the input file
by using the angles
`atomGroup/nocoParams/@alpha`

and
`atomGroup/nocoParams/@beta`

or is subject to change if the relaxation feature activated by
`calculationSetup/nocoParams/@l_RelaxMT`

which keeps the z-axis of the local atom frame aligned to the direction of magnetization. If `l_RelaxMT="T"`

the
values of `mx`

, `my`

and `mz`

should remain small at any time of the calculation.
If one wants to know the orientation of the local frame while this feature is activated
one has to take a look at the angles which are written in the out file after each iteration along with the magnetization components.
Those angles are called `nococonv%alpha`

and `nococonv%beta`

and are subject to change if `l_RelaxMT`

is set to `T`

.

Including noncolinear magnetism inside the Muffin-tin sphere into FLEUR calculations is known to work with spin-orbit coupling and local orbitals.
The combination of LDA + U calculations and noncolinearities in the Muffin-tin sphere is possible but to achieve resonable results it is **mandatory** to set `l_RelaxMT="T"`

.
The reason for that is that the LDA + U matrix which is used in FLEUR is **always** calculated in the local frame.
Therefore the charge density in the Muffin-tin needs to be kept in the same frame.
This is achieved by relaxing the SQA in a way that the local frame of the atom aligns with the magnetization direction.

You can define `atomGroup/nocoParams/@alpha`

and `atomGroup/nocoParams/@beta`

at the beginning of a
FLEUR calculation with `l_alignRelaxMT`

a FLEUR calculation where `l_RelaxMT="T"`

is set you should set **both angles in all atomgroups** to `0.0`

**before** restarting the calculation.
This also holds if you want to switch to `l_alignMT="F"`

while restarting a calculation. For mixing purposes the charge density is stored unrotated in the cdn/cdn.hdf files.

The usage of spin-orbit coupling in combination with the relaxation `l_RelaxMT="T"`

can cause severe convergence issues. In order to overcome those issues the parameters `calculationSetup/nocoParams/@mix_RelaxWeightOffD`

, `calculationSetup/nocoParams/@l_RelaxAlpha`

und `calculationSetup/nocoParams/@l_RelaxBeta`

have been introduced.
The parameter `mix_RelaxWeightOffD`

gives a weight to the magnetization components x and y. Default weight for those components is 1. However if e.g. spin-orbit coupling causes those components to appear suddenly this can cause large rotations of the spin-coordinate frames which is unfavoralbe for convergence.
The boolean switches `l_RelaxAlpha`

and `l_RelaxAlpha`

decide which angle(s) will be relaxed. You can relax the angles seperatley. If you specify `l_RelaxMT="T"`

but specify bot angles to not be relaxed you will end up with a warning. However, if you choose to ignore the warning the SQA will be set to the initial magnetization direction and kept there.
Therefore this particular setting can be helpful to keep a certain SQA in order to converge your density using this SQA.
For sensitive system with large spin-orbit effects we recommend to choose the `mix_RelaxWeightOffD`

parameter in the same magnitude as the usual mixing parameter used for your system.