31 NAMD_bug(
"PmePencilXYZ cannot be migrated");
47 NAMD_bug(
"PmePencilXYZ::initFFT, fftCompute not initialized");
51 void PmePencilXYZ::forwardFFT() {
53 NAMD_bug(
"PmePencilXYZ::forwardFFT, fftCompute not initialized");
57 void PmePencilXYZ::backwardFFT() {
59 NAMD_bug(
"PmePencilXYZ::backwardFFT, fftCompute not initialized");
63 void PmePencilXYZ::forwardDone() {
65 NAMD_bug(
"PmePencilXYZ::forwardDone, pmeKSpaceCompute not initialized");
70 NAMD_bug(
"PmePencilXYZ::backwardDone(), base class method called");
75 NAMD_bug(
"PmePencilXYZ::submitReductions, pmeKSpaceCompute not initialized");
80 reduction->
item(REDUCTION_VIRIAL_SLOW_XX) += virial[0];
81 reduction->
item(REDUCTION_VIRIAL_SLOW_XY) += virial[1];
82 reduction->
item(REDUCTION_VIRIAL_SLOW_XZ) += virial[2];
83 reduction->
item(REDUCTION_VIRIAL_SLOW_YX) += virial[3];
84 reduction->
item(REDUCTION_VIRIAL_SLOW_YY) += virial[4];
85 reduction->
item(REDUCTION_VIRIAL_SLOW_YZ) += virial[5];
86 reduction->
item(REDUCTION_VIRIAL_SLOW_ZX) += virial[6];
87 reduction->
item(REDUCTION_VIRIAL_SLOW_ZY) += virial[7];
88 reduction->
item(REDUCTION_VIRIAL_SLOW_ZZ) += virial[8];
125 setMigratable(
false);
131 NAMD_bug(
"PmePencilXY cannot be migrated");
145 NAMD_bug(
"PmePencilXY::initFFT, fftCompute not initialized");
149 void PmePencilXY::forwardFFT() {
151 NAMD_bug(
"PmePencilXY::forwardFFT, fftCompute not initialized");
155 void PmePencilXY::backwardFFT() {
157 NAMD_bug(
"PmePencilXY::backwardFFT, fftCompute not initialized");
164 int i0, i1, j0, j1, k0, k1;
166 i0, i1, j0, j1, k0, k1);
167 int size = (i1-i0+1)*(j1-j0+1)*(k1-k0+1);
172 void PmePencilXY::forwardDone() {
173 NAMD_bug(
"PmePencilXY::forwardDone(), base class method called");
176 void PmePencilXY::backwardDone() {
177 NAMD_bug(
"PmePencilXY::backwardDone(), base class method called");
180 void PmePencilXY::recvDataFromZ(
PmeBlockMsg *msg) {
181 NAMD_bug(
"PmePencilXY::recvDataFromZ(), base class method called");
184 void PmePencilXY::start(
const CkCallback &) {
185 NAMD_bug(
"PmePencilXY::start(), base class method called");
226 setMigratable(
false);
233 NAMD_bug(
"PmePencilX cannot be migrated");
247 NAMD_bug(
"PmePencilX::initFFT, fftCompute not initialized");
251 void PmePencilX::forwardFFT() {
253 NAMD_bug(
"PmePencilX::forwardFFT, fftCompute not initialized");
257 void PmePencilX::backwardFFT() {
259 NAMD_bug(
"PmePencilX::backwardFFT, fftCompute not initialized");
266 int i0, i1, j0, j1, k0, k1;
268 i0, i1, j0, j1, k0, k1);
269 int size = (i1-i0+1)*(j1-j0+1)*(k1-k0+1);
274 void PmePencilX::forwardDone() {
275 NAMD_bug(
"PmePencilX::forwardDone(), base class method called");
278 void PmePencilX::backwardDone() {
279 NAMD_bug(
"PmePencilX::backwardDone(), base class method called");
283 NAMD_bug(
"PmePencilX::recvDataFromY(), base class method called");
286 void PmePencilX::start(
const CkCallback &) {
287 NAMD_bug(
"PmePencilX::start(), base class method called");
296 setMigratable(
false);
303 NAMD_bug(
"PmePencilY cannot be migrated");
317 NAMD_bug(
"PmePencilY::initFFT, fftCompute not initialized");
321 void PmePencilY::forwardFFT() {
323 NAMD_bug(
"PmePencilY::forwardFFT, fftCompute not initialized");
327 void PmePencilY::backwardFFT() {
329 NAMD_bug(
"PmePencilY::backwardFFT, fftCompute not initialized");
336 int i0, i1, j0, j1, k0, k1;
338 i0, i1, j0, j1, k0, k1);
339 int size = (i1-i0+1)*(j1-j0+1)*(k1-k0+1);
344 void PmePencilY::forwardDone() {
345 NAMD_bug(
"PmePencilY::forwardDone(), base class method called");
348 void PmePencilY::backwardDone() {
349 NAMD_bug(
"PmePencilY::backwardDone(), base class method called");
353 NAMD_bug(
"PmePencilY::recvDataFromX(), base class method called");
357 NAMD_bug(
"PmePencilY::recvDataFromZ(), base class method called");
360 void PmePencilY::start(
const CkCallback &) {
361 NAMD_bug(
"PmePencilY::start(), base class method called");
370 setMigratable(
false);
381 NAMD_bug(
"PmePencilZ cannot be migrated");
397 NAMD_bug(
"PmePencilZ::initFFT, fftCompute not initialized");
401 void PmePencilZ::forwardFFT() {
403 NAMD_bug(
"PmePencilZ::forwardFFT, fftCompute not initialized");
407 void PmePencilZ::backwardFFT() {
409 NAMD_bug(
"PmePencilZ::backwardFFT, fftCompute not initialized");
416 int i0, i1, j0, j1, k0, k1;
418 i0, i1, j0, j1, k0, k1);
419 int size = (i1-i0+1)*(j1-j0+1)*(k1-k0+1);
424 void PmePencilZ::forwardDone() {
426 NAMD_bug(
"PmePencilZ::forwardDone, pmeKSpaceCompute not initialized");
432 NAMD_bug(
"PmePencilZ::submitReductions, pmeKSpaceCompute not initialized");
438 reduction->
item(REDUCTION_VIRIAL_SLOW_XX) += virial[0];
439 reduction->
item(REDUCTION_VIRIAL_SLOW_XY) += virial[1];
440 reduction->
item(REDUCTION_VIRIAL_SLOW_XZ) += virial[2];
441 reduction->
item(REDUCTION_VIRIAL_SLOW_YX) += virial[3];
442 reduction->
item(REDUCTION_VIRIAL_SLOW_YY) += virial[4];
443 reduction->
item(REDUCTION_VIRIAL_SLOW_YZ) += virial[5];
444 reduction->
item(REDUCTION_VIRIAL_SLOW_ZX) += virial[6];
445 reduction->
item(REDUCTION_VIRIAL_SLOW_ZY) += virial[7];
446 reduction->
item(REDUCTION_VIRIAL_SLOW_ZZ) += virial[8];
452 void PmePencilZ::backwardDone() {
453 NAMD_bug(
"PmePencilZ::backwardDone(), base class method called");
457 NAMD_bug(
"PmePencilY::recvDataFromY(), base class method called");
460 void PmePencilZ::start(
const CkCallback &) {
461 NAMD_bug(
"PmePencilZ::start(), base class method called");
468 #include "PmeSolver.def.h"
std::vector< int > blockSizes
virtual void solve(Lattice &lattice, const bool doEnergy, const bool doVirial, float *data)=0
virtual void backwardDone()
PmeTranspose * pmeTranspose
virtual void backward()=0
PmeKSpaceCompute * pmeKSpaceCompute
SubmitReduction * willSubmit(int setID, int size=-1)
PmePencilX_SDAG_CODE PmePencilX()
static ReductionMgr * Object(void)
std::vector< int > blockSizes
PmeTranspose * pmeTranspose
std::vector< int > blockSizes
PmeTranspose * pmeTranspose
void NAMD_bug(const char *err_msg)
PmePencilXY_SDAG_CODE PmePencilXY()
PmeKSpaceCompute * pmeKSpaceCompute
std::vector< int > blockSizes
PmePencilXYZ_SDAG_CODE PmePencilXYZ()
virtual void getVirial(double *virial)=0
PmePencilZ_SDAG_CODE PmePencilZ()
static void getBlockDim(const PmeGrid &pmeGrid, const int permutation, const int iblock, const int jblock, const int kblock, int &i0, int &i1, int &j0, int &j1, int &k0, int &k1)
void init(float *dataSrc_in, int dataSrcSize_in, float *dataDst_in, int dataDstSize_in, int permutation, PmeGrid pmeGrid, int pmePencilType, int jblock, int kblock, int flags)
PmeTranspose * pmeTranspose
PmePencilY_SDAG_CODE PmePencilY()
virtual double getEnergy()=0