spinorbit_ham Subroutine

public subroutine spinorbit_ham(lmax, lmmaxd, vins, rnew, eryd, zat, cvlight, socscale, nspin, lmpotd, theta, phi, ipan_intervall, rpan_intervall, npan_tot, ncheb, irmdnew, nrmaxd, vnspll, vnspll1, mode)

Uses

Subroutine that constructs SOC potential for the new solverfrom radial derivative of vins and adds this to vnspll (output is vnspll1=vnspll+V_SOC)

Note

Chebychev mesh is used for the integration using a matrix-matrix multiplication (equation 5.53-5.54 of Bauer, Phd thesis)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: lmax

l_max cutoff

integer, intent(in) :: lmmaxd

(l_max+1)^2 maximal number in combined L=(l,m) index (L_max)

real(kind=dp), intent(in), dimension(irmdnew, lmpotd, nspin) :: vins

non-sperical input potential in (l,m) basis, separately spin-polarized

real(kind=dp), intent(in), dimension(nrmaxd) :: rnew

radial points of Chebychev mesh

complex(kind=dp), intent(in) :: eryd

complex energy

real(kind=dp), intent(in) :: zat

atom charge

real(kind=dp), intent(in) :: cvlight

speed of light

real(kind=dp), intent(in) :: socscale

scaling factor for SOC strength

integer, intent(in) :: nspin

number of spin channels

integer, intent(in) :: lmpotd

L_max cutoff of potential (from Gaunt coefficients <= 4 l_max)

real(kind=dp) :: theta
real(kind=dp) :: phi
integer, intent(in), dimension(0:npan_tot) :: ipan_intervall
real(kind=dp), intent(in), dimension(0:npan_tot) :: rpan_intervall
integer, intent(in) :: npan_tot

total number of Chebychev panels of radial mesh

integer, intent(in) :: ncheb

number of Chebychev polynomials (radial points per panel)

integer, intent(in) :: irmdnew
integer, intent(in) :: nrmaxd

maximal number of radial points (NPAN_TOT*NCHEB)

complex(kind=dp), intent(in), dimension(2*lmmaxd, 2*lmmaxd, irmdnew) :: vnspll

input potential in (l,m,s) basis

complex(kind=dp), intent(out), dimension(2*lmmaxd, 2*lmmaxd, irmdnew) :: vnspll1

output potential (sum of input + V_SOC) in (l,m,s) basis

character(len=*), intent(in) :: mode

either '1' or 'transpose', depending whether SOC potential is constructed for right or left solution