Calculation of the t-matrix for the new solver
H e l p e r
f u n c t i o n
w h i c h
t e l l s
i f
t h e
l e f t
w a v e
f u n c t i o n s
a r e
n e e d e d
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | i1 | |||
integer, | intent(in) | :: | ie |
C a l c u l a t i o n
o f
t h e
m a t r i x
f o r
t h e
n e w
s o l v e r
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ielast |
number of energy points in contour |
||
integer, | intent(in) | :: | nspin |
Number of spin directions |
||
integer, | intent(in) | :: | lmax |
Maximum l component in wave function expansion |
||
real(kind=dp), | intent(in) | :: | zat |
Nuclear charge for a given atom |
||
real(kind=dp), | intent(in) | :: | socscale |
Spin-orbit scaling for a given atom |
||
complex(kind=dp), | intent(in), | dimension (iemxd) | :: | ez |
list of complex energy points in contour |
|
integer, | intent(in) | :: | nsra |
use scalar-relativistic (nsra=2) or non-relativistic (nsra=1) wavefunctions |
||
real(kind=dp), | intent(in), | dimension (ncleb) | :: | cleb |
values of GAUNT coefficients |
|
integer, | intent(in), | dimension (ncleb, 4) | :: | icleb |
index array of nonzero Gaunt coefficients [mapping of (lm1, lm2) to lm3] |
|
integer, | intent(in) | :: | iend |
Number of nonzero gaunt coefficients |
||
integer, | intent(in) | :: | ncheb |
Number of Chebychev pannels for the new solver |
||
integer, | intent(in) | :: | npan_tot |
total number of panels for Chebychev radial mesh |
||
real(kind=dp), | intent(in), | dimension (0:ntotd) | :: | rpan_intervall |
radial meshpoints of panel boundaries |
|
integer, | intent(in), | dimension (0:ntotd) | :: | ipan_intervall |
indices where panels start in radial Chebychev mesh |
|
real(kind=dp), | intent(in), | dimension (nrmaxd) | :: | rnew |
radial mesh points in Chebychev mesh |
|
real(kind=dp), | intent(in), | dimension (nrmaxd, lmpot, nspotd) | :: | vinsnew |
potential interpolated to Chebychev radial mesh |
|
real(kind=dp), | intent(in) | :: | theta |
theta of local spin frame, relative to z-axis |
||
real(kind=dp), | intent(in) | :: | phi |
phi of local spin frame |
||
integer, | intent(in) | :: | i1 |
atom index |
||
integer, | intent(in) | :: | ipot |
potential index (ipot=(iatom-1)*nspin+ispin) |
||
integer, | intent(in) | :: | lmpot |
maximal LM-value of potential expansion: (LPOT+1)**2 |
||
integer, | intent(in) | :: | lly |
LLY /= 0: apply Lloyds formula |
||
complex(kind=dp), | intent(in) | :: | deltae |
Energy difference for numerical derivative |
||
integer, | intent(in) | :: | idoldau |
flag to perform LDA+U |
||
integer, | intent(in) | :: | lopt |
angular momentum QNUM for the atoms on which LDA+U should be applied (-1 to switch it OFF) |
||
real(kind=dp), | intent(in), | dimension (mmaxd, mmaxd, nspind) | :: | wldau |
potential matrix for LDA+U |
|
type(type_dtmatjijdij), | intent(inout) | :: | t_dtmatjij_at |
derived Data type to store -matrix for Jij calculation |
||
integer, | intent(in) | :: | ispin |
spin index, only used for 'NOSOC' test option where external spin loop is used in main1a |
W r a p p e r
r o u t i n e
f o r
t h e
a l l o c a t i o n / d e a l l o c a t i o n
o f
t h e
a r r a y s
f o r
t h e
m a t r i x
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | allocmode |
allocation mode (1: allocate and initialize, other: deallocate) |
||
integer, | intent(in) | :: | irmdnew |
number of radial points in Chebycheb mesh |
||
integer, | intent(in) | :: | lmpot |
lm-cutoff of potential expansion |
||
integer, | intent(in) | :: | nspin |
number of spin channels |
||
real(kind=dp), | intent(inout), | allocatable | :: | vins(:,:,:) | ||
complex(kind=dp), | intent(inout), | allocatable | :: | aux(:,:) | ||
integer, | intent(inout), | allocatable | :: | ipiv(:) | ||
complex(kind=dp), | intent(inout), | allocatable | :: | tmat0(:,:) | ||
complex(kind=dp), | intent(inout), | allocatable | :: | tmatll(:,:) | ||
complex(kind=dp), | intent(inout), | allocatable | :: | alpha0(:,:) | ||
complex(kind=dp), | intent(inout), | allocatable | :: | dtmatll(:,:) | ||
complex(kind=dp), | intent(inout), | allocatable | :: | alphall(:,:) | ||
complex(kind=dp), | intent(inout), | allocatable | :: | dalphall(:,:) | ||
integer, | intent(inout), | allocatable | :: | jlk_index(:) | ||
integer, | intent(in) | :: | nsra |
scalar-relativistic (nsra=2) or non-relativistic (nsra=1) |
||
integer, | intent(in) | :: | lmmaxd |
cutoff of combined (l,m,s) index |
||
integer, | intent(in) | :: | nth |
number of OpenMP threads |
||
integer, | intent(in) | :: | lmax |
lmax cutoff |
||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :, :) | :: | vnspll | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :) | :: | vnspll0 | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :, :) | :: | vnspll1 | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :) | :: | vnspll2 | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :) | :: | hlk | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :) | :: | jlk | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :) | :: | hlk2 | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :) | :: | jlk2 | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :) | :: | tmatsph | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :, :) | :: | ull | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :, :) | :: | rll | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :, :) | :: | sll | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :, :) | :: | rllleft | ||
complex(kind=dp), | intent(inout), | allocatable, dimension (:, :, :, :) | :: | sllleft |