mod_mtzero Module

Determine muffin tin zero and shift potential to muffin tin zero. For spin polarized calculations muffin tin zero is related to the average of the 2 spins.


Subroutines

public subroutine mtzero(lmpot, natyp, conc, nspin, v, vbc, z, r, drdi, imt, ircut, ipan, ntcell, lmsp, ifunm, thetas, irws, eshift, ishift, nshell, lsurf)

License
Creative Commons License
Category
potential, KKRhost

D e t e r m i n e

m u f f i n

t i n

z e r o

a n d

s h i f t

p o t e n t i a l

t o

m u f f i n

t i n

z e r o

Read more…

Arguments

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

(LPOT+1)**2

integer, intent(in) :: natyp

Number of kinds of atoms in unit cell

real(kind=dp), intent(in), dimension(natypd) :: conc

Concentration of a given atom

integer, intent(in) :: nspin

Counter for spin directions

real(kind=dp), intent(inout), dimension(irmd,lmpotd,*) :: v

output potential (nonspherical VONS)

real(kind=dp), intent(inout), dimension(*) :: vbc

Potential constants

real(kind=dp), intent(in), dimension(*) :: z

Nuclear charge

real(kind=dp), intent(in), dimension(irmd,*) :: r

Radial mesh ( in units a Bohr)

real(kind=dp), intent(in), dimension(irmd,*) :: drdi

Derivative dr/di

integer, intent(in), dimension(*) :: imt

R point at MT radius

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

R points of panel borders

integer, intent(in), dimension(*) :: ipan

Number of panels in non-MT-region

integer, intent(in), dimension(*) :: ntcell

Index for WS cell

integer, intent(in), dimension(natypd,*) :: lmsp

0,1 : non/-vanishing lm=(l,m) component of non-spherical potential

integer, intent(in), dimension(natypd,*) :: ifunm
real(kind=dp), intent(in), dimension(irid,nfund,*) :: thetas

shape function THETA=0 outer space THETA =1 inside WS cell in spherical harmonics expansion

integer, intent(in), dimension(*) :: irws

R point at WS radius

real(kind=dp), intent(in) :: eshift
integer, intent(in) :: ishift
integer, intent(in), dimension(0:nsheld) :: nshell

Index of atoms/pairs per shell (ij-pairs); nshell(0) = number of shells

logical, intent(in) :: lsurf

If True a matching with semi-inifinite surfaces must be performed