calctmat_bauernew Subroutine

public subroutine calctmat_bauernew(cell, tmat, lmaxatom, eryd_in, zatom, cellnew, wavefunction, ispin, nspin, kspinorbit, use_fullgmat, theta, phi, ncoll, nsra, config, idotime, ie, ldau, iatom, cellorbit, calcleft)

spin-orbit coupling Author: David Bauer Category: KKRimp, single-site, spin-orbit-coupling, dirac, potential

set the energy in case of a non-rel or SRA calculation

set the size of the t-matrix and the wavefunctions in case of a spin-orbit calculation the tmatrix is twice as big!

set up the calculation of the VLL matrix according to formula 4.12 of Bauer,PhD Thesis

add the spin-orbit Hamiltonian to the VLL matrix

in case of spin-orbit coupling V_LL ist not any more symmetric in L-space. Thus, the left- and right solutions need to be calculated explicitly. We transpose the potential in L-space in order to calculate the the left solution.

Extend matrix for the SRA treatment according to formula 4.107 of Bauer, PhD thesis

V = ( 1/2M = 1/2M_0 l(l+1)/r**2 + V_LL; 0 ) ( 0 2M-2M_0 )

calculate the source terms in the Lippmann-Schwinger equation

these are in priciple spherical hankel and bessel functions which are extended with derivates of j and h's for a SR calculation for details, check chapter 4 of Bauer, PhD thesis

calculate the Bessel and Hankel functions

if the option 'nosph' is not set then the wave functions of the spherical part of the potential is used as a reference function. The solutions of a sperical potential are calculated by using Bessel and Hankel functions and are stored in the same array:

The Lippmann-Schwinger equation for the full-potential is solved using using the Chebyshev integration method see Chapter 5 of Bauer, PhD thesis

################################################!

calculate the right-hand side solution of the single-site wave functions

################################################!
################################################!

Full-relativistic: Transformation from kappa-mu to Lms basis

################################################!

In case the option 'nosph' is not set. The output t-matrix just contains the non-sph part of the t-matrix. Thus, the sperical needs to be added

If spin-orbit coupling is used the left solution of the Hamiltonian is non-trivial and needs to be calculated explicitly

calculation of Jij's by a Lichtenstein-like approach check section 6.3.3 Bauer, PhD

calculation of the Wronskian. Just for nummerical checks

Arguments

Type IntentOptional Attributes Name
type(cell_type), intent(in) :: cell
type(tmat_type), intent(inout) :: tmat
integer, intent(in) :: lmaxatom

lmax cutoff for the current atom

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

complex energy value in Ry

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

nuclear charge

type(CELL_TYPENEW), intent(in) :: cellnew
type(wavefunction_type), intent(inout) :: wavefunction
integer, intent(in) :: ispin

spin index and number of spin channels

integer, intent(in) :: nspin

spin index and number of spin channels

integer, intent(in) :: kspinorbit
integer, intent(in) :: use_fullgmat
real(kind=dp), intent(in) :: theta

theta and phi angles for noncollinear direction

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

theta and phi angles for noncollinear direction

integer, intent(in) :: ncoll

UNUSED, can be removed

integer, intent(in) :: nsra
type(config_type), intent(in) :: config
integer, intent(in) :: idotime

UNUSED, can be removed

integer, intent(in) :: ie

energy index

type(ldau_type), intent(in) :: ldau

lda+u variables

integer, intent(in) :: iatom

atom index

type(CELL_TYPEORBIT), intent(in) :: cellorbit
logical, intent(in) :: calcleft

triggers calculation of left solutions (can often be skipped to save time)