PSCF v1.3
Pscf::Prdc::Basis< D >::Wave Class Reference

Wavevector used to construct a basis function. More...

#include <Basis.h>

Public Member Functions

 Wave ()
 Constructor.

Public Attributes

std::complex< double > coeff
 Coefficient of wave within the associated star basis function.
IntVec< D > indicesDft
 Integer indices of wave, on a discrete Fourier transform mesh.
IntVec< D > indicesBz
 Integer indices of wave, in first Brillouin zone.
int starId
 Index of the star that contains this wavevector.
int inverseId
 Index of the wave that is the inverse of this wavevector.
bool implicit
 Is this wave represented implicitly in DFT of real field?

Detailed Description

template<int D>
class Pscf::Prdc::Basis< D >::Wave

Wavevector used to construct a basis function.

Definition at line 390 of file Basis.h.

Constructor & Destructor Documentation

◆ Wave()

template<int D>
Pscf::Prdc::Basis< D >::Wave::Wave ( )
inline

Constructor.

Definition at line 452 of file Basis.h.

References coeff, implicit, indicesBz, indicesDft, inverseId, and starId.

Member Data Documentation

◆ coeff

template<int D>
std::complex<double> Pscf::Prdc::Basis< D >::Wave::coeff

Coefficient of wave within the associated star basis function.

Definition at line 398 of file Basis.h.

Referenced by Pscf::Prdc::readBasisData(), and Wave().

◆ indicesDft

template<int D>
IntVec<D> Pscf::Prdc::Basis< D >::Wave::indicesDft

Integer indices of wave, on a discrete Fourier transform mesh.

Components of this vector are non-negative. Component i lies in the range [0, meshDimension(i) - 1], where meshDimension(i) is the number of grid points.

Definition at line 407 of file Basis.h.

Referenced by Wave().

◆ indicesBz

template<int D>
IntVec<D> Pscf::Prdc::Basis< D >::Wave::indicesBz

Integer indices of wave, in first Brillouin zone.

Components of this IntVec<D> may be negative or positive, and differ from corresponding components of indicesDft by integer multiples of a corresponding mesh dimension, so that indicesBz and indicesDft correspond to equivalent aliased wavevectors for functions evaluated on nodes of the discretization mesh. The shifts relative to indicesDft are chosen so as to minimize the norm of the Cartesian wavevector constructed by taking a linear combination of Bravais lattice basis vectors multiplied by components of indicesBz.

Definition at line 422 of file Basis.h.

Referenced by Wave().

◆ starId

template<int D>
int Pscf::Prdc::Basis< D >::Wave::starId

Index of the star that contains this wavevector.

Definition at line 427 of file Basis.h.

Referenced by Pscf::Prdc::readBasisData(), and Wave().

◆ inverseId

template<int D>
int Pscf::Prdc::Basis< D >::Wave::inverseId

Index of the wave that is the inverse of this wavevector.

Definition at line 432 of file Basis.h.

Referenced by Wave().

◆ implicit

template<int D>
bool Pscf::Prdc::Basis< D >::Wave::implicit

Is this wave represented implicitly in DFT of real field?

In the discrete Fourier transform (DFT) of a real function, the coefficients of nonzero wavevector G and -G must be complex conjugates. As a result, only one of these two coefficients is stored in the container RFieldDft used to store the DFT of a real function. For each such pair, the member variable Basis::Wave::implicit is set false for the the wavevector whose coefficient is represented explicitly, and is set true for the wavevector whose coefficient is left implicit.

Definition at line 447 of file Basis.h.

Referenced by Wave().


The documentation for this class was generated from the following file: