mod_dysonvirtatom Module

this is part of the 'u-transformation' (see PhD David Bauer) which can be used to shift positions of impurity atoms with respect to their original position. It is intended for relaxations of impurities


Subroutines

public subroutine dysonvirtatom(natom, ntotatom, lmsizehost, gmathost, tmat, killatom, isvatom, lmaxatom, gmatimp, nlmhostnew, lattice_relax, NSOC)

License
Creative Commons License
Category
KKRimp, geometry, structural-greensfunction

D y s o n

e q u a t i o n

f o r

t h e

v i r t u a l

a t o m

Read more…

Arguments

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

Number of atoms in impurity cluster, excl. "killed atoms"

integer, intent(in) :: ntotatom

Number of host sites where GF is read in, incl. "killed atoms"

integer, intent(in) :: lmsizehost

Host lm-max * NSOC (see below for NSOC)

double complex, intent(in) :: gmathost(ntotatom*lmsizehost,ntotatom*lmsizehost)
double complex, intent(in) :: tmat(lmsizehost,lmsizehost,ntotatom)
integer, intent(in) :: killatom(ntotatom)
integer, intent(in) :: isvatom(ntotatom)
integer, intent(in) :: lmaxatom(ntotatom)

lmax to be used for specific atom

double complex, intent(out), allocatable :: gmatimp(:,:)
integer :: nlmhostnew
integer, intent(in) :: lattice_relax
integer, intent(in) :: NSOC

=2 if host-GF is 2x2 in spin space; =1 otherwise

public subroutine matmat_dcdc(mat1, mat2, matout)

License
Creative Commons License
Category
KKRimp, numerical-tools

M a t r i x

m u l t i p l i c a t i o n

Read more…

Arguments

Type IntentOptional Attributes Name
double complex, intent(in) :: mat1(:,:)
double complex, intent(in) :: mat2(:,:)
double complex :: matout(size(mat1,1),size(mat2,2))