lattix99 Subroutine

public subroutine lattix99(lsurf, alat, natyp, naez, conc, rws, bravais, recbv, volume0, rr, nrd, natypd)

Uses

generates the real space and reciprocal lattices. BRAVAIS(I,J) are basis vectors, with I=X,Y,Z and J=A,B,C reciprocal space vectors are in units of RR are the direct space vectors NR+1 is the number of direct space vectors created (structure dependent output)

Note

this lattice is not the one used for the Ewald summation

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: lsurf

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

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

Lattice constant in a.u.

integer, intent(in) :: natyp

Number of kinds of atoms in unit cell

integer, intent(in) :: naez

Number of atoms in unit cell

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

Concentration of a given atom

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

Wigner Seitz radius

real(kind=dp), intent(inout), dimension(3,3) :: bravais

Bravais lattice vectors, modified in idreals

real(kind=dp), intent(out), dimension(3,3) :: recbv

Reciprocal basis vectors

real(kind=dp), intent(out) :: volume0

Unit cell volume

real(kind=dp), intent(inout), dimension(3,0:nrd) :: rr

Set of real space vectors (in a.u.), modified in rrgen

integer, intent(inout) :: nrd

Number of real space vectors, modified in rrgen

integer, intent(in) :: natypd

Auxiliary number of kinds of atoms in the unit cell