Inelastica.physics.mesh.kmesh
- class Inelastica.physics.mesh.kmesh(Nk1, Nk2, Nk3, meshtype=['LIN', 'LIN', 'LIN'], invsymmetry=True)[source]
Create a k-mesh samling where each of the three components sample the range [-0.5,0.5]). They are not in reciprocal space. Instead they correspond to the mathematical orthogonal space that is Fourier transformed.
Variables: k : Array of 3D k-points (shape = [NNk,3]) w : Array of integration weights (shape = [4,NNk]), where
w[0] are the full weights and w[i=1,2,3] are weights with a reduced number of GK points for the three axes. These are used for error estimates within the GK method.
NNk : Total number of k-points explicitly in the mesh Nk : Array with sampling for each axis type : List of sampling type for each axis
- __init__(Nk1, Nk2, Nk3, meshtype=['LIN', 'LIN', 'LIN'], invsymmetry=True)[source]
Returns an instance of a k-mesh with each of the k-vector axes sampled either linearly (LIN) or using a Gauss-Kronrod (GK) scheme.
An axis i sampled by (Nki,LIN) generates Nk points, while (Nki,GK) returns 2*Nk+1 points.
By applying inversion symmetry (k=-k) the number of points in the mesh can be reduced by a factor two (except when the Gamma point is included which have no partner).
Methods
Remove duplicates for symmetry INVERSION SYMMETRY: If the Bloch function psi(k) = exp(ikr)u(k), with crystal momentum k, is an eigenstate of the Schroedinger equation then also psi^dagger(k) = exp(-ikr)u^dagger(k) with crystal momentum -k, is an eigenstate with same eigenvalue. Hence E(k) = E(-k). TIME REVERSAL SYMMETRY: t,psi(r,t) --> -t,psi^dagger(r,-t). T(k) = T(-k). (Elastic) propagation from L to R is always identical to propagation from R to L.
__init__
(Nk1, Nk2, Nk3[, meshtype, invsymmetry])Returns an instance of a k-mesh with each of the k-vector axes sampled either linearly (LIN) or using a Gauss-Kronrod (GK) scheme.
genkmesh
()Generate mesh for a given sampling of the axes
mesh2file
(fn)Writes the k-mesh to file