Requests for technical support from the VASP group should be posted in the VASP-forum.
LSORBIT = .TRUE. | .FALSE.
Default: LSORBIT = .FALSE.
Description: LSORBIT specifies whether spin-orbit coupling is taken into account.
Supported as of VASP.4.5.
LSORBIT = .TRUE. switches on spin-orbit coupling (automatically sets LNONCOLLINEAR = .TRUE.). This option works only for PAW potentials and is not supported by ultrasoft pseudopotentials. If spin-orbit coupling is not included, the energy does not depend on the direction of the magnetic moment, i.e. rotating all magnetic moments by the same angle results in principle exactly in the same energy. Hence there is no need to define the spin quantization axis, as long as spin-orbit coupling is not included. Spin-orbit coupling however couples the spin to the crystal structure. Spin-orbit coupling is switched on by selecting
LSORBIT = .TRUE.
The spin quantization axis may be specified by means of the SAXIS-tag,
SAXIS = sx sy sz ! global spin quantisation axis
where the default for SAXIS = (0+,0,1) (the notation 0+ implies an infinitesimal small positive number in x-direction). All magnetic moments are now given with respect to the axis (sx,sy,sz), where we have adopted the convention that all magnetic moments and spinor-like quantities written or read by VASP are given with respect to this axis. This includes the MAGMOM line in the INCAR file, the total and local magnetizations in the OUTCAR and PROCAR file, the spinor-like orbitals in the WAVECAR file, and the magnetization density in the CHGCAR file. With respect to the Cartesian lattice vectors the components of the magnetization are (internally) given by
Where maxis is the externally visible magnetic moment. Here, is the angle between the SAXIS vector (sx,sy,sz) and the Cartesian vector , and is the angle between the vector SAXIS and the Cartesian vector :
The inverse transformation is given by
It is easy to see that for the default (sx,sy,sz)=(0+,0,1), both angles are zero, i.e. and . In this case, the internal representation is simply equivalent to the external representation:
The second important case, is maxis=(0,0,m). In this case
Hence now the magnetic moment is parallel to the vector SAXIS. Thus there are two ways to rotate the spins in an arbitrary direction, either by changing the initial magnetic moments MAGMOM or by changing SAXIS.
To initialize calculations with the magnetic moment parallel to a chosen vector (x,y,z), it is therefore possible to either specify (assuming a single atom in the cell)
MAGMOM = 0 0 total_magnetic_moment ! local magnetic moment parallel to SAXIS SAXIS = x y z ! quantization axis parallel to vector (x,y,z)
Both setups should in principle yield exactly the same energy, but for implementation reasons the second method is usually more precise. The second method also allows to read a preexisting WAVECAR file (from a collinear or non collinear run), and to continue the calculation with a different spin orientation. When a non collinear WAVECAR file is read, the spin is assumed to be parallel to SAXIS (hence VASP will initially report a magnetic moment in the z-direction only).
The recommended procedure for the calculation of magnetic anisotropies is therefore (please check the section on LMAXMIX):
LSORBIT = .TRUE. ICHARG = 11 ! non selfconsistent run, read CHGCAR LMAXMIX = 4 ! for d-elements increase LMAXMIX to 4, f-elements: LMAXMIX = 6 ! you need to set LMAXMIX already in the collinear calculation SAXIS = x y z ! direction of the magnetic field NBANDS = 2 * number of bands of collinear run
VASP reads in the WAVECAR and CHGCAR files, aligns the spin quantization axis parallel to SAXIS, which implies that the magnetic field is now parallel to SAXIS, and performs a non selfconsistent calculation. By comparing the energies for different orientations the magnetic anisotropy can be determined. Please mind, that a completely selfconsistent calculation (ICHARG = 1) is in principle also possible with VASP, but this would allow the spinor wavefunctions to rotate from their initial orientation parallel to SAXIS until the correct groundstate is obtained, i.e. until the magnetic moment is parallel to the easy axis. In practice this rotation will be slow, however, since reorientation of the spin gains little energy. Therefore if the convergence criterion is not too tight, sensible results might be obtained even for fully selfconsistent calculations (in the few cases we have tried this worked beautifully).
- Be very careful with symmetry. We recommend to switch off symmetry altogether (ISYM=-1), when spin-orbit coupling is selected. Often the k-point set changes from one to the other spin orientation, worsening the transferability of the results (also the WAVECAR file can not be reread properly if the number of k-points changes). Additionally VASP.4.6 (and all older versions) had a bug in the symmetrization of magnetic fields (fixed only VASP.4.6.23).
- Generally be extremely careful, when using spin-orbit coupling: energy differences are tiny, k-point convergence is tedious and slow, and the computer time you require might be infinite.
- It is recommended to set GGA_COMPAT = .FALSE. for non collinear calculations in VASP.4.6, since this improves the numerical precision of GGA calculations.
Assumptions and output
Switching on spin-orbit coupling (SOC) in a conventional DFT calculation adds an additional term to the Hamiltonian that couples the Pauli-spin operator with the angular momentum operator . As an relativistic correction SOC acts predominantly in the immediate vicinity of the nuclei, such that it is assumed that contributions of outside the PAW spheres are negligible. VASP, therefore, calculates the matrix elements of only for the all-electron one-center contributions
where are the partial waves of an atom centered at , is the spinor-component α of the pseudo-orbital with band-index n and Bloch-vector k, and and are the Fermi- and k-point weights, respectively. After a successful calculation with inclusion of spin-orbit coupling, VASP writes following results to the OUTCAR:
Spin-Orbit-Coupling matrix elements Ion: 1 E_soc: -0.0984080 l= 1 0.0000000 -0.0134381 -0.0134381 -0.0134381 0.0000000 -0.0134381 -0.0134381 -0.0134381 0.0000000 l= 2 0.0000000 -0.0005072 0.0000000 -0.0005072 -0.0024560 -0.0005072 0.0000000 -0.0018420 -0.0005072 -0.0006140 0.0000000 -0.0018420 0.0000000 -0.0018420 0.0000000 -0.0005072 -0.0005072 -0.0018420 0.0000000 -0.0006140 -0.0024560 -0.0006140 0.0000000 -0.0006140 0.0000000 l= 3 0.0000000 -0.0000000 0.0000000 0.0000000 0.0000000 -0.0000000 -0.0000000 -0.0000000 0.0000000 -0.0000000 0.0000000 -0.0000000 -0.0000000 -0.0000000 0.0000000 -0.0000000 0.0000000 -0.0000000 -0.0000000 -0.0000000 0.0000000 0.0000000 0.0000000 -0.0000000 0.0000000 -0.0000000 0.0000000 0.0000000 0.0000000 -0.0000000 -0.0000000 -0.0000000 0.0000000 -0.0000000 0.0000000 -0.0000000 -0.0000000 -0.0000000 0.0000000 -0.0000000 0.0000000 -0.0000000 -0.0000000 -0.0000000 0.0000000 0.0000000 0.0000000 -0.0000000 0.0000000
Here "E_soc" represents the accumulated energy contribution inside the augmentation sphere that is centered at (position of ion 1), while the following entries correspond to the matrix elements for the angular momentum .