mod_tmatimp_newsolver Module

Calculate and write down impurity t-matrix and delta matrix first calculate t-matrix for the host corresponding to imp. cluster

Note

  • Adapted to new routines (mainly changed interfaces) to work in KKRcode also added MPI parallelization. Philipp Rüssmann, Juelich, 09.2017

Subroutines

public subroutine tmatimp_newsolver(irm, ksra, lmax, iend, irid, lpot, natyp, ncleb, ipand, irnsd, nfund, ihost, ntotd, nspin, lmpot, ncheb, lmmax0d, korbit, nspotd, ielast, irmind, npan_eq, npan_log, natomimp, r_log, vins, vm2z, ipan, irmin, hostimp, ipanimp, irwsimp, atomimp, irminimp, icleb, ircut, ircutimp, zat, zimp, rmesh, cleb, rimp, rclsimp, eryd, vm2zimp, vinsimp, dtmtrx, lmmaxd)

Author
N. H. Long
License
Creative Commons License
Category
single-site, KKRhost

C a l c u l a t e

a n d

w r i t e

d o w n

i m p u r i t y

t

m a t r i x

a n d

d e l t a

m a t r i x

f i r s t

c a l c u l a t e

t

m a t r i x

f o r

t h e

h o s t

c o r r e s p o n d i n g

t o

i m p .

c l u s t e r

Read more…

Arguments

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

Maximum number of radial points

integer, intent(in) :: ksra
integer, intent(in) :: lmax

Maximum l component in wave function expansion

integer, intent(in) :: iend
integer, intent(in) :: irid
integer, intent(in) :: lpot

Maximum l component in potential expansion

integer, intent(in) :: natyp

Number of kinds of atoms in unit cell

integer, intent(in) :: ncleb

Number of Clebsch-Gordon coefficients

integer, intent(in) :: ipand

Number of panels in non-spherical part

integer, intent(in) :: irnsd
integer, intent(in) :: nfund

Shape functions parameters in non-spherical part

integer, intent(in) :: ihost
integer, intent(in) :: ntotd
integer, intent(in) :: nspin

Counter for spin directions

integer, intent(in) :: lmpot

(LPOT+1)**2

integer, intent(in) :: ncheb

Number of Chebychev pannels for the new solver

integer, intent(in) :: lmmax0d

(LMAX+1)^2

integer, intent(in) :: korbit

Spin-orbit/non-spin-orbit (1/0) added to the Schroedinger or SRA equations. Works with FP. KREL and KORBIT cannot be both non-zero.

integer, intent(in) :: nspotd

Number of potentials for storing non-sph. potentials

integer, intent(in) :: ielast
integer, intent(in) :: irmind

IRM-IRNSD

integer, intent(in) :: npan_eq

Number of intervals from [R_LOG] to muffin-tin radius Used in conjunction with runopt NEWSOSOL

integer, intent(in) :: npan_log

Number of intervals from nucleus to [R_LOG] Used in conjunction with runopt NEWSOSOL

integer, intent(in) :: natomimp

Size of the cluster for impurity-calculation output of GF should be 1, if you don't do such a calculation

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

Radius up to which log-rule is used for interval width. Used in conjunction with runopt NEWSOSOL

real(kind=dp), intent(inout), dimension (irmind:irm, lmpot, nspotd*natyp) :: vins
real(kind=dp), intent(inout), dimension (irm, nspin*natyp) :: vm2z
integer, intent(in), dimension (natyp) :: ipan

Number of panels in non-MT-region

integer, intent(in), dimension (natyp) :: irmin

Max R for spherical treatment

integer, intent(in), dimension (ihost) :: hostimp
integer, intent(in), dimension (natomimp) :: ipanimp
integer, intent(in), dimension (natomimp) :: irwsimp
integer, intent(in), dimension (natomimp) :: atomimp
integer, intent(in), dimension (natomimp) :: irminimp
integer, intent(in), dimension (ncleb, 4) :: icleb

Pointer array

integer, intent(in), dimension (0:ipand, natyp) :: ircut

R points of panel borders

integer, intent(in), dimension (0:ipand, natomimp) :: ircutimp
real(kind=dp), intent(in), dimension (natyp) :: zat

Nuclear charge

real(kind=dp), intent(in), dimension (natomimp) :: zimp
real(kind=dp), intent(in), dimension (irm, natyp) :: rmesh

Radial mesh ( in units a Bohr)

real(kind=dp), intent(in), dimension (ncleb, 2) :: cleb

GAUNT coefficients (GAUNT)

real(kind=dp), intent(in), dimension (irm, natomimp) :: rimp
real(kind=dp), intent(in), dimension (3, natomimp) :: rclsimp
complex(kind=dp), intent(in) :: eryd
real(kind=dp), intent(inout), dimension (irm, nspin*natomimp) :: vm2zimp
real(kind=dp), intent(inout), dimension (irmind:irm, lmpot, nspotd*natomimp) :: vinsimp
complex(kind=dp), intent(inout), dimension ((korbit+1)*lmmax0d*natomimp, (korbit+1)*lmmax0d*natomimp) :: dtmtrx
integer, intent(in) :: lmmaxd

(KREL+KORBIT+1)*(LMAX+1)^2