#include <PmeSolverUtil.h>
Public Member Functions | |
PmeKSpaceCompute (PmeGrid pmeGrid, const int permutation, const int jblock, const int kblock, double kappa) | |
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 |
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 |
Definition at line 265 of file PmeSolverUtil.h.
PmeKSpaceCompute::PmeKSpaceCompute | ( | PmeGrid | pmeGrid, | |
const int | permutation, | |||
const int | jblock, | |||
const int | kblock, | |||
double | kappa | |||
) | [inline] |
Definition at line 276 of file PmeSolverUtil.h.
References bm1, bm2, bm3, compute_b_moduli(), getPencilDim(), j0, k0, PmeGrid::K1, PmeGrid::K2, PmeGrid::K3, PmeGrid::order, order, size1, size2, and size3.
00277 : 00278 pmeGrid(pmeGrid), permutation(permutation), 00279 jblock(jblock), kblock(kblock), kappa(kappa) { 00280 00281 bm1 = new double[pmeGrid.K1]; 00282 bm2 = new double[pmeGrid.K2]; 00283 bm3 = new double[pmeGrid.K3]; 00284 // Use compute_b_moduli from PmeKSpace.C 00285 extern void compute_b_moduli(double *bm, int K, int order); 00286 compute_b_moduli(bm1, pmeGrid.K1, pmeGrid.order); 00287 compute_b_moduli(bm2, pmeGrid.K2, pmeGrid.order); 00288 compute_b_moduli(bm3, pmeGrid.K3, pmeGrid.order); 00289 00290 int i0, i1, j1, k1; 00291 getPencilDim(pmeGrid, permutation, jblock, kblock, i0, i1, j0, j1, k0, k1); 00292 size1 = i1-i0+1; 00293 size2 = j1-j0+1; 00294 size3 = k1-k0+1; 00295 }
virtual PmeKSpaceCompute::~PmeKSpaceCompute | ( | ) | [inline, virtual] |
virtual double PmeKSpaceCompute::getEnergy | ( | ) | [pure virtual] |
Implemented in CudaPmeKSpaceCompute.
Referenced by PmePencilZ::submitReductions(), and PmePencilXYZ::submitReductions().
virtual void PmeKSpaceCompute::getVirial | ( | double * | virial | ) | [pure virtual] |
Implemented in CudaPmeKSpaceCompute.
Referenced by PmePencilZ::submitReductions(), and PmePencilXYZ::submitReductions().
virtual void PmeKSpaceCompute::solve | ( | Lattice & | lattice, | |
const bool | doEnergy, | |||
const bool | doVirial, | |||
float * | data | |||
) | [pure virtual] |
Implemented in CudaPmeKSpaceCompute.
double* PmeKSpaceCompute::bm1 [protected] |
Definition at line 269 of file PmeSolverUtil.h.
Referenced by CudaPmeKSpaceCompute::CudaPmeKSpaceCompute(), PmeKSpaceCompute(), and ~PmeKSpaceCompute().
double * PmeKSpaceCompute::bm2 [protected] |
Definition at line 269 of file PmeSolverUtil.h.
Referenced by CudaPmeKSpaceCompute::CudaPmeKSpaceCompute(), PmeKSpaceCompute(), and ~PmeKSpaceCompute().
double * PmeKSpaceCompute::bm3 [protected] |
Definition at line 269 of file PmeSolverUtil.h.
Referenced by CudaPmeKSpaceCompute::CudaPmeKSpaceCompute(), PmeKSpaceCompute(), and ~PmeKSpaceCompute().
int PmeKSpaceCompute::j0 [protected] |
Definition at line 274 of file PmeSolverUtil.h.
Referenced by PmeKSpaceCompute(), and CudaPmeKSpaceCompute::solve().
const int PmeKSpaceCompute::jblock [protected] |
Definition at line 272 of file PmeSolverUtil.h.
int PmeKSpaceCompute::k0 [protected] |
Definition at line 274 of file PmeSolverUtil.h.
Referenced by PmeKSpaceCompute(), and CudaPmeKSpaceCompute::solve().
double PmeKSpaceCompute::kappa [protected] |
Definition at line 270 of file PmeSolverUtil.h.
Referenced by CudaPmeKSpaceCompute::solve().
const int PmeKSpaceCompute::kblock [protected] |
Definition at line 272 of file PmeSolverUtil.h.
const int PmeKSpaceCompute::permutation [protected] |
Definition at line 271 of file PmeSolverUtil.h.
Referenced by CudaPmeKSpaceCompute::getVirial(), and CudaPmeKSpaceCompute::solve().
PmeGrid PmeKSpaceCompute::pmeGrid [protected] |
Definition at line 267 of file PmeSolverUtil.h.
Referenced by CudaPmeKSpaceCompute::solve().
int PmeKSpaceCompute::size1 [protected] |
Definition at line 273 of file PmeSolverUtil.h.
Referenced by PmeKSpaceCompute(), and CudaPmeKSpaceCompute::solve().
int PmeKSpaceCompute::size2 [protected] |
Definition at line 273 of file PmeSolverUtil.h.
Referenced by PmeKSpaceCompute(), and CudaPmeKSpaceCompute::solve().
int PmeKSpaceCompute::size3 [protected] |
Definition at line 273 of file PmeSolverUtil.h.
Referenced by PmeKSpaceCompute(), and CudaPmeKSpaceCompute::solve().