mod_tbxccpljijdij Module

Calculation of the exchange interaction tensor via the method of infinitesimal rotations. In this subroutine it is possible to obtain both the Heisenberg exchange constants and the Dzyaloshinskii-Moriya vectors.


Uses

    • mod_datatypes

Subroutines

public subroutine tbxccpljijdij(naezd, natypd, lmmaxd, lmgf0d, natomimpd, iemxd, thetas, phis, natomimp, atomimp, nofgijd, iqat, rclsimp, ijtabcalc, ijtabcalc_i, ijtabsh, ijtabsym, ielast, ez, wez, npol, dsymll, noq, itoq, ncpa)

Author
Bernd Zimmermann
License
Creative Commons License
Category
physical-observables, KKRhost

C a l c u l a t i o n

o f

t h e

e x c h a n g e

i n t e r a c t i o n

t e n s o r .

Read more…

Arguments

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

Number of atoms in unit cell

integer, intent(in) :: natypd

Number of kinds of atoms in unit cell

integer, intent(in) :: lmmaxd

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

integer, intent(in) :: lmgf0d

(lmax+1)**2

integer, intent(in) :: natomimpd

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

integer, intent(in) :: iemxd

Dimension for energy-dependent arrays

real(kind=dp), intent(in), dimension (natypd) :: thetas
real(kind=dp), intent(in), dimension (natypd) :: phis
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

integer, intent(in), dimension (natomimpd) :: atomimp
integer, intent(in) :: nofgijd

NATOMIMPD*NATOMIMPD+1

integer, intent(in), dimension (natypd) :: iqat

The site on which an atom is located on a given site

real(kind=dp), intent(in), dimension (3, natomimpd) :: rclsimp
integer, intent(in), dimension (nofgijd) :: ijtabcalc

Linear pointer, specifying whether the block (i,j) has to be calculated needs set up for ICC=-1, not used for ICC=1

integer, intent(in), dimension (nofgijd) :: ijtabcalc_i
integer, intent(in), dimension (nofgijd) :: ijtabsh

Linear pointer, assigns pair (i,j) to a shell in the array GS(,,*,NSHELD)

integer, intent(in), dimension (nofgijd) :: ijtabsym

Linear pointer, assigns pair (i,j) to the rotation bringing GS into Gij

integer, intent(in) :: ielast
complex(kind=dp), intent(in), dimension (iemxd) :: ez
complex(kind=dp), intent(in), dimension (iemxd) :: wez
integer, intent(in) :: npol

Number of poles

complex(kind=dp), intent(in), dimension (lmmaxd, lmmaxd, nsymaxd) :: dsymll
integer, intent(in), dimension (naezd) :: noq

Number of diff. atom types located

integer, intent(in), dimension (natypd, naezd) :: itoq
integer, intent(in) :: ncpa

NCPA = 0/1 CPA flag

private subroutine bubblesort(n, xin, iout)

Author
Bernd Zimmermann
License
Creative Commons License
Category
numerical-tools, KKRhost

S o r t i n g

o f

a n

a r r a y

m a k i n g

u s e

o f

t h e

b u b b l e

s o r t

a p p r o a c h

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n
real(kind=dp), intent(in), dimension(n) :: xin
integer, intent(out), dimension(n) :: iout