NAMD
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PmePencilXY Class Reference

#include <PmeSolver.h>

Inheritance diagram for PmePencilXY:

Public Member Functions

PmePencilXY_SDAG_CODE PmePencilXY ()
 
 PmePencilXY (CkMigrateMessage *m)
 
virtual ~PmePencilXY ()
 

Protected Member Functions

void initBlockSizes ()
 

Protected Attributes

PmeGrid pmeGrid
 
bool doEnergy
 
bool doVirial
 
int simulationStep
 
std::array< FFTCompute *, NUM_GRID_MAXfftComputes
 
std::array< PmeTranspose *, NUM_GRID_MAXpmeTransposes
 
std::vector< int > blockSizes
 
Lattice lattice
 
int numStrayAtoms
 
int imsg
 

Detailed Description

Definition at line 172 of file PmeSolver.h.

Constructor & Destructor Documentation

◆ PmePencilXY() [1/2]

PmePencilXY::PmePencilXY ( )

Definition at line 303 of file PmeSolver.C.

References fftComputes, NUM_GRID_MAX, and pmeTransposes.

303  {
304  __sdag_init();
305  setMigratable(false);
306  for (unsigned int iGrid = 0; iGrid < NUM_GRID_MAX; ++iGrid) {
307  pmeTransposes[iGrid] = NULL;
308  fftComputes[iGrid] = NULL;
309  }
310 }
std::array< FFTCompute *, NUM_GRID_MAX > fftComputes
Definition: PmeSolver.h:182
std::array< PmeTranspose *, NUM_GRID_MAX > pmeTransposes
Definition: PmeSolver.h:183
const unsigned int NUM_GRID_MAX
Definition: PmeSolverUtil.h:9

◆ PmePencilXY() [2/2]

PmePencilXY::PmePencilXY ( CkMigrateMessage *  m)

Definition at line 312 of file PmeSolver.C.

References NAMD_bug().

312  {
313  NAMD_bug("PmePencilXY cannot be migrated");
314 //__sdag_init();
315  // setMigratable(false);
316  // fftCompute = NULL;
317  // pmeTranspose = NULL;
318 }
void NAMD_bug(const char *err_msg)
Definition: common.C:195

◆ ~PmePencilXY()

PmePencilXY::~PmePencilXY ( )
virtual

Definition at line 320 of file PmeSolver.C.

References fftComputes, NUM_GRID_MAX, and pmeTransposes.

320  {
321 // if (fftCompute != NULL) delete fftCompute;
322 // if (pmeTranspose != NULL) delete pmeTranspose;
323 // if (fftCompute2 != NULL) delete fftCompute2;
324 // if (pmeTranspose2 != NULL) delete pmeTranspose2;
325  for (unsigned int iGrid = 0; iGrid < NUM_GRID_MAX; ++iGrid) {
326  if (pmeTransposes[iGrid] != NULL) delete pmeTransposes[iGrid];
327  if (fftComputes[iGrid] != NULL) delete fftComputes[iGrid];
328  }
329 }
std::array< FFTCompute *, NUM_GRID_MAX > fftComputes
Definition: PmeSolver.h:182
std::array< PmeTranspose *, NUM_GRID_MAX > pmeTransposes
Definition: PmeSolver.h:183
const unsigned int NUM_GRID_MAX
Definition: PmeSolverUtil.h:9

Member Function Documentation

◆ initBlockSizes()

void PmePencilXY::initBlockSizes ( )
protected

Definition at line 359 of file PmeSolver.C.

References blockSizes, getBlockDim(), Perm_cX_Y_Z, pmeGrid, and PmeGrid::xBlocks.

359  {
360  blockSizes.resize(pmeGrid.xBlocks);
361  for (int x=0;x < pmeGrid.xBlocks;x++) {
362  int i0, i1, j0, j1, k0, k1;
363  getBlockDim(pmeGrid, Perm_cX_Y_Z, x, 0, thisIndex.z,
364  i0, i1, j0, j1, k0, k1);
365  int size = (i1-i0+1)*(j1-j0+1)*(k1-k0+1);
366  blockSizes[x] = size;
367  }
368 }
PmeGrid pmeGrid
Definition: PmeSolver.h:179
std::vector< int > blockSizes
Definition: PmeSolver.h:184
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)
Definition: PmeSolverUtil.h:89
int xBlocks
Definition: PmeBase.h:25

Member Data Documentation

◆ blockSizes

std::vector<int> PmePencilXY::blockSizes
protected

Definition at line 184 of file PmeSolver.h.

Referenced by initBlockSizes().

◆ doEnergy

bool PmePencilXY::doEnergy
protected

Definition at line 180 of file PmeSolver.h.

◆ doVirial

bool PmePencilXY::doVirial
protected

Definition at line 180 of file PmeSolver.h.

◆ fftComputes

std::array<FFTCompute*, NUM_GRID_MAX> PmePencilXY::fftComputes
protected

Definition at line 182 of file PmeSolver.h.

Referenced by PmePencilXY(), and ~PmePencilXY().

◆ imsg

int PmePencilXY::imsg
protected

Definition at line 188 of file PmeSolver.h.

◆ lattice

Lattice PmePencilXY::lattice
protected

Definition at line 185 of file PmeSolver.h.

◆ numStrayAtoms

int PmePencilXY::numStrayAtoms
protected

Definition at line 186 of file PmeSolver.h.

◆ pmeGrid

PmeGrid PmePencilXY::pmeGrid
protected

Definition at line 179 of file PmeSolver.h.

Referenced by initBlockSizes().

◆ pmeTransposes

std::array<PmeTranspose*, NUM_GRID_MAX> PmePencilXY::pmeTransposes
protected

Definition at line 183 of file PmeSolver.h.

Referenced by PmePencilXY(), and ~PmePencilXY().

◆ simulationStep

int PmePencilXY::simulationStep
protected

Definition at line 181 of file PmeSolver.h.


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