1#ifndef PSPG_WAVE_LIST_H
2#define PSPG_WAVE_LIST_H
10#include <pscf/math/IntVec.h>
11#include <pspg/field/RDFieldDft.h>
12#include <pspg/field/RDField.h>
13#include <pscf/mesh/MeshIterator.h>
14#include <pscf/mesh/Mesh.h>
15#include <pscf/crystal/shiftToMinimum.h>
16#include <pscf/crystal/UnitCell.h>
17#include <util/containers/DArray.h>
18#include <util/containers/GArray.h>
19#include <util/containers/DMatrix.h>
96 cudaReal*
kSq()
const;
101 cudaReal*
dkSq()
const;
108 bool isAllocated()
const
109 {
return isAllocated_; }
111 bool hasMinimumImages()
const
112 {
return hasMinimumImages_; }
125 cudaReal* dkkBasis_d;
129 int* partnerIdTable_d;
146 bool hasMinimumImages_;
152 {
return minImage_[i]; }
166 #ifndef PSPG_WAVE_LIST_TPP
An IntVec<D, T> is a D-component vector of elements of integer type T.
Description of a regular grid of points in a periodic domain.
Container for wavevector data.
cudaReal * dkSq() const
Get a pointer to the dkSq array on device.
void computeMinimumImages(Mesh< D > const &mesh, UnitCell< D > const &unitCell)
Compute minimum images of wavevectors.
void computeKSq(UnitCell< D > const &unitCell)
Compute square norm |k|^2 for all wavevectors.
const IntVec< D > & minImage(int i) const
Get the minimum image vector for a specified wavevector.
void computedKSq(UnitCell< D > const &unitCell)
Compute derivatives of |k|^2 w/ respect to unit cell parameters.
cudaReal * kSq() const
Get a pointer to the kSq array on device.
void allocate(Mesh< D > const &mesh, UnitCell< D > const &unitCell)
Allocate memory for all arrays.
int kSize() const
Get size of k-grid (number of wavewavectors).
Base template for UnitCell<D> classes, D=1, 2 or 3.
Dynamically allocatable contiguous array template.
C++ namespace for polymer self-consistent field theory (PSCF).
Utility classes for scientific computation.