1#ifndef RPG_W_FIELD_CONTAINER_TPP
2#define RPG_W_FIELD_CONTAINER_TPP
11#include "WFieldContainer.h"
12#include <prdc/field/WFieldsReal.tpp>
13#include <prdc/cuda/VecOp.h>
14#include <pscf/cuda/DeviceArray.h>
33 for (
int i = 0; i <
nMonomer(); i++) {
Dynamic array on the GPU device with aligned data.
Field of real double precision values on an FFT mesh.
void setRGrid(DArray< RField< D > > const &fields, bool isSymmetric=false)
bool isSymmetric() const
Are fields symmetric under all elements of the space group?
int meshSize() const
Get mesh size (number of grid points), set on r-grid allocation.
IntVec< D > const & meshDimensions() const
Get mesh dimensions in each direction, set on r-grid allocation.
int nMonomer() const
Get number of monomer types.
void setRGrid(DeviceArray< cudaReal > &fields)
Set new w fields, in unfolded real-space (r-grid) format.
int capacity() const
Return allocated size.
Dynamically allocatable contiguous array template.
void allocate(int capacity)
Allocate the underlying C array.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
void eqV(DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, const int beginIdA, const int beginIdB, const int n)
Vector assignment, a[i] = b[i], kernel wrapper (cudaReal).
Fields, FFTs, and utilities for periodic boundary conditions (CUDA)
Periodic fields and crystallography.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.