WhenDoINeedSOC
When do I need SOC?
- (a) When calculating heavy atoms ( 6th or 7th period, sometimes also 5th) relativistic effects are important. Therefore, here it is often important to include SOC. Fine details of the bandstructure (e.g. heavy-hole / light-hole splitting in semiconductors) of course are also affected in lighter elements.
- (b) Calculating the magneto-crystalline anisotropy (MCA) for all magnetic materials requires the inclusion of SOC. Now, also the relative orientation of the axis of magnetization to the lattice has to be specified.
- (c) Whenever knowledge of the orbital moment is required.
- (d) When the magnetic structure is influenced by SOC effects (Dzyaloshinskii-Moriya interaction).
HowDoICalculateWithSOC
How do I calculate with SOC?
This section describes the "usual" treatment of spin-orbit coupling for collinear calculations, where we use the so-called 2nd variation, i.e. the SOC operator is introduced in the subspace of eigenstates obtained without SOC (cf. C. Li et al.,[![Symbol - externer Link][2]Phys. Rev. B 42 5433 (1990)][2]). For a treatment in 1st variation, non-collinear calculations can be performed.
(a) Recompile with -DCPP_SOC. Make 'rminv' to be sure, all relevant .o-files are removed prior to compilation.
(b) In the inp-file, set l_soc true in the line of the input file that is shown below.
| 0.00000 0.00000,l_soc=F,spav=F,off=F |
Click here for [input][2] file info.
In magnetic calculations, you have to specify two angles that give the relative orientation of the magnetisation axis to the lattice. The two numbers preceding 'l_soc' are the polar angle θ and the azimuthal angle φ specifying this orientation. E.g. if the magnetic moments should point in z-direction, θ=0.0 and φ=0.0.
The x-direction would be specified as:
| 1.57080 0.00000,l_soc=T| ( θ = π/2 )
and the y-direction:
| 1.57080 1.57080,l_soc=T| (θ and φ = \pi/2 )
At each angle, you can replace the last two digits with 'pi' or 'dg' to indicate that you enter the number in multiples of Ï€ or in degrees, thus for (θ and φ = π/2 )
you can also write
| 0.5 pi 90. dg,l_soc=T|
(c) Increase the number of states that are calculated per k-point. SOC is included in 2nd variation (see above) so enough unoccupied states have to be calculated in 'first variation' (i.e. the unperturbed problem = without SOC). In the parameter file ([fl7para][3]) increase neigd:
|Number of (occupied) bands |
|parameter (nobd=115,neigd=115)|
Then we have to adjust the size of the energy window:
|Window # 1 |
| -0.50000 0.80000 140.00000|
^^^^^^^
this should be set to, e.g. 1.8 htr.
Generally, it is recommended to check the convergence of the result with the number of additional states.
Special features:
You can use further switches in lines 24 and 31 of the inp file:
24|lpr=0,form66=F,l_f=F,eonly=F,eig66=T,soc66=T |
31| 0.00000 0.00000,l_soc=T,spav=T,off=T,1011|
- If you set
spav=T
, the spin-orbit operator is constructed from a spin-averaged potential. - If you set
off=T
, only the spin-orbit contribution of certain muffin tins is considered. These muffin tins are specified with a binary number at the end of line 31 (in the present example, spin-orbit coupling is considered for the 1st,3rd,4th atom type but ignored for the 2nd atom type). - If you set
eig66=T
, thensoc66
determines whether the 'eig' file [that is created and read in different runs of the program] contains the eigenvectors from the first variation (without spin-orbit coupling,soc66=T
) or from the second variation (soc66=F
).
SOC-RestrictionsAndProblems
Note, that using SOC is incompatible with the following features of the program:
- Eigenvalue-parallelization.
- Second-variation, Wu-diagonalization.
- Spin spiral calculations
- Constrained-moment calculations
- Relaxation of mag. moments
For (1) it is recommended to use SOC in 1st variation (as part of a non collinear calculation)
In second variation with k-point parallelization use a number of k-points that is a multiple of the number of processors you use.
For (3) you can add SOC in a [perturbative approach][1].
Furthermore, we note that for using LO's and SOC the COMPLEX version of the code is recommended, especially when forces are required.
Common problems:
-
Calculation of the magneto-crystalline anisotropy energy (MAE) requires good convergence with respect to the number of k-points, the number of additional states, the 'extra vacuum' d-tilde in film-calculation etc. Normally, MAE is a very tiny quantity so it is very sensitive to all kinds of cut-offs.
-
In calculating DOS or partial charges, don't be confused by the fact that SOC doubles the number of states in each spin-channel: this is a projection of the spins on the 'usual' spin - quantization axis. Note, that this also doubles the "sum of valence eigenvalues" sometimes used for MAE calculation with the force theorem.