NAMD
Public Member Functions | Protected Attributes | List of all members
PmeKSpaceCompute Class Referenceabstract

#include <PmeSolverUtil.h>

Inheritance diagram for PmeKSpaceCompute:
CudaPmeKSpaceCompute

Public Member Functions

 PmeKSpaceCompute (PmeGrid pmeGrid, const int permutation, const int jblock, const int kblock, double kappa, unsigned int multipleGridIndex=0)
 
virtual ~PmeKSpaceCompute ()
 
virtual void solve (Lattice &lattice, const bool doEnergy, const bool doVirial, float *data)=0
 
virtual double getEnergy ()=0
 
virtual void getVirial (double *virial)=0
 
virtual void setGrid (unsigned int iGrid)
 

Protected Attributes

PmeGrid pmeGrid
 
double * bm1
 
double * bm2
 
double * bm3
 
double kappa
 
const int permutation
 
const int jblock
 
const int kblock
 
int size1
 
int size2
 
int size3
 
int j0
 
int k0
 
unsigned int multipleGridIndex
 

Detailed Description

Definition at line 268 of file PmeSolverUtil.h.

Constructor & Destructor Documentation

◆ PmeKSpaceCompute()

PmeKSpaceCompute::PmeKSpaceCompute ( PmeGrid  pmeGrid,
const int  permutation,
const int  jblock,
const int  kblock,
double  kappa,
unsigned int  multipleGridIndex = 0 
)
inline

Definition at line 281 of file PmeSolverUtil.h.

References bm1, bm2, bm3, compute_b_moduli(), getPencilDim(), j0, jblock, k0, PmeGrid::K1, PmeGrid::K2, PmeGrid::K3, kblock, PmeGrid::order, order, permutation, pmeGrid, size1, size2, and size3.

282  :
285 
286  bm1 = new double[pmeGrid.K1];
287  bm2 = new double[pmeGrid.K2];
288  bm3 = new double[pmeGrid.K3];
289  // Use compute_b_moduli from PmeKSpace.C
290  extern void compute_b_moduli(double *bm, int K, int order);
294 
295  int i0, i1, j1, k1;
296  getPencilDim(pmeGrid, permutation, jblock, kblock, i0, i1, j0, j1, k0, k1);
297  size1 = i1-i0+1;
298  size2 = j1-j0+1;
299  size3 = k1-k0+1;
300  }
void compute_b_moduli(double *bm, int K, int order)
Definition: PmeKSpace.C:42
int K2
Definition: PmeBase.h:21
int K1
Definition: PmeBase.h:21
static void getPencilDim(const PmeGrid &pmeGrid, const int permutation, const int jblock, const int kblock, int &i0, int &i1, int &j0, int &j1, int &k0, int &k1)
Definition: PmeSolverUtil.h:32
#define order
Definition: PmeRealSpace.C:235
int order
Definition: PmeBase.h:23
int K3
Definition: PmeBase.h:21
const int permutation
unsigned int multipleGridIndex

◆ ~PmeKSpaceCompute()

virtual PmeKSpaceCompute::~PmeKSpaceCompute ( )
inlinevirtual

Definition at line 301 of file PmeSolverUtil.h.

References bm1, bm2, and bm3.

301  {
302  delete [] bm1;
303  delete [] bm2;
304  delete [] bm3;
305  }

Member Function Documentation

◆ getEnergy()

virtual double PmeKSpaceCompute::getEnergy ( )
pure virtual

Implemented in CudaPmeKSpaceCompute.

◆ getVirial()

virtual void PmeKSpaceCompute::getVirial ( double *  virial)
pure virtual

Implemented in CudaPmeKSpaceCompute.

◆ setGrid()

virtual void PmeKSpaceCompute::setGrid ( unsigned int  iGrid)
inlinevirtual

Definition at line 309 of file PmeSolverUtil.h.

References multipleGridIndex.

309  {
310  multipleGridIndex = iGrid;
311  }
unsigned int multipleGridIndex

◆ solve()

virtual void PmeKSpaceCompute::solve ( Lattice lattice,
const bool  doEnergy,
const bool  doVirial,
float *  data 
)
pure virtual

Implemented in CudaPmeKSpaceCompute.

Member Data Documentation

◆ bm1

double* PmeKSpaceCompute::bm1
protected

◆ bm2

double * PmeKSpaceCompute::bm2
protected

◆ bm3

double * PmeKSpaceCompute::bm3
protected

◆ j0

int PmeKSpaceCompute::j0
protected

Definition at line 277 of file PmeSolverUtil.h.

Referenced by PmeKSpaceCompute(), and CudaPmeKSpaceCompute::solve().

◆ jblock

const int PmeKSpaceCompute::jblock
protected

Definition at line 275 of file PmeSolverUtil.h.

Referenced by PmeKSpaceCompute().

◆ k0

int PmeKSpaceCompute::k0
protected

Definition at line 277 of file PmeSolverUtil.h.

Referenced by PmeKSpaceCompute(), and CudaPmeKSpaceCompute::solve().

◆ kappa

double PmeKSpaceCompute::kappa
protected

Definition at line 273 of file PmeSolverUtil.h.

Referenced by CudaPmeKSpaceCompute::solve().

◆ kblock

const int PmeKSpaceCompute::kblock
protected

Definition at line 275 of file PmeSolverUtil.h.

Referenced by PmeKSpaceCompute().

◆ multipleGridIndex

unsigned int PmeKSpaceCompute::multipleGridIndex
protected

Definition at line 279 of file PmeSolverUtil.h.

Referenced by setGrid().

◆ permutation

const int PmeKSpaceCompute::permutation
protected

◆ pmeGrid

PmeGrid PmeKSpaceCompute::pmeGrid
protected

◆ size1

int PmeKSpaceCompute::size1
protected

Definition at line 276 of file PmeSolverUtil.h.

Referenced by PmeKSpaceCompute(), and CudaPmeKSpaceCompute::solve().

◆ size2

int PmeKSpaceCompute::size2
protected

Definition at line 276 of file PmeSolverUtil.h.

Referenced by PmeKSpaceCompute(), and CudaPmeKSpaceCompute::solve().

◆ size3

int PmeKSpaceCompute::size3
protected

Definition at line 276 of file PmeSolverUtil.h.

Referenced by PmeKSpaceCompute(), and CudaPmeKSpaceCompute::solve().


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