13 template <
typename T,
unsigned Dim>
18 template <
typename T,
unsigned Dim>
25 template <
typename T,
unsigned Dim>
32 for (
unsigned d = 0; d <
Dim; ++d) {
33 this->gridSizes_m[d] = ndi[d].
length();
34 volume_m *= meshSpacing_m[d];
37 this->setOrigin(origin);
40 template <
typename T,
unsigned Dim>
43 meshSpacing_m = meshSpacing;
44 this->updateCellVolume_m();
47 template <
typename T,
unsigned Dim>
50 return meshSpacing_m[dim];
53 template <
typename T,
unsigned Dim>
59 template <
typename T,
unsigned Dim>
64 template <
typename T,
unsigned Dim>
67 for (
unsigned int d = 0; d <
Dim; ++d) {
68 ret *= this->getGridsize(d) * this->getMeshSpacing(d);
73 template <
typename T,
unsigned Dim>
77 for (
unsigned i = 0; i <
Dim; ++i) {
78 volume_m *= meshSpacing_m[i];
Implementations for FFT constructor/destructor and transforms.
void initialize(int &argc, char *argv[], MPI_Comm comm)
KOKKOS_INLINE_FUNCTION Vector< size_t, Dim > length() const
KOKKOS_INLINE_FUNCTION UniformCartesian()
KOKKOS_INLINE_FUNCTION T getMeshVolume() const override
KOKKOS_INLINE_FUNCTION void setMeshSpacing(const vector_type &meshSpacing)
KOKKOS_INLINE_FUNCTION void updateCellVolume_m()
KOKKOS_INLINE_FUNCTION T getCellVolume() const override
KOKKOS_INLINE_FUNCTION const vector_type & getMeshSpacing() const override
KOKKOS_INLINE_FUNCTION void initialize(const NDIndex< Dim > &ndi, const vector_type &hx, const vector_type &origin)