git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8953 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
1549
src/KSPACE/pppm.cpp
1549
src/KSPACE/pppm.cpp
File diff suppressed because it is too large
Load Diff
@ -41,6 +41,7 @@ class PPPM : public KSpace {
|
|||||||
virtual ~PPPM();
|
virtual ~PPPM();
|
||||||
virtual void init();
|
virtual void init();
|
||||||
virtual void setup();
|
virtual void setup();
|
||||||
|
void setup_grid();
|
||||||
virtual void compute(int, int);
|
virtual void compute(int, int);
|
||||||
virtual int timing_1d(int, double &);
|
virtual int timing_1d(int, double &);
|
||||||
virtual int timing_3d(int, double &);
|
virtual int timing_3d(int, double &);
|
||||||
@ -65,7 +66,6 @@ class PPPM : public KSpace {
|
|||||||
int nxlo_fft,nylo_fft,nzlo_fft,nxhi_fft,nyhi_fft,nzhi_fft;
|
int nxlo_fft,nylo_fft,nzlo_fft,nxhi_fft,nyhi_fft,nzhi_fft;
|
||||||
int nlower,nupper;
|
int nlower,nupper;
|
||||||
int ngrid,nfft,nfft_both;
|
int ngrid,nfft,nfft_both;
|
||||||
int nbuf,nbuf_peratom;
|
|
||||||
|
|
||||||
FFT_SCALAR ***density_brick;
|
FFT_SCALAR ***density_brick;
|
||||||
FFT_SCALAR ***vdx_brick,***vdy_brick,***vdz_brick;
|
FFT_SCALAR ***vdx_brick,***vdy_brick,***vdz_brick;
|
||||||
@ -77,7 +77,6 @@ class PPPM : public KSpace {
|
|||||||
double *fkx,*fky,*fkz;
|
double *fkx,*fky,*fkz;
|
||||||
FFT_SCALAR *density_fft;
|
FFT_SCALAR *density_fft;
|
||||||
FFT_SCALAR *work1,*work2;
|
FFT_SCALAR *work1,*work2;
|
||||||
FFT_SCALAR *buf1,*buf2,*buf3,*buf4;
|
|
||||||
|
|
||||||
double *gf_b;
|
double *gf_b;
|
||||||
FFT_SCALAR **rho1d,**rho_coeff,**drho1d,**drho_coeff;
|
FFT_SCALAR **rho1d,**rho_coeff,**drho1d,**drho_coeff;
|
||||||
@ -92,9 +91,10 @@ class PPPM : public KSpace {
|
|||||||
FFT_SCALAR ***density_A_brick,***density_B_brick;
|
FFT_SCALAR ***density_A_brick,***density_B_brick;
|
||||||
FFT_SCALAR *density_A_fft,*density_B_fft;
|
FFT_SCALAR *density_A_fft,*density_B_fft;
|
||||||
|
|
||||||
|
|
||||||
class FFT3d *fft1,*fft2;
|
class FFT3d *fft1,*fft2;
|
||||||
class Remap *remap;
|
class Remap *remap;
|
||||||
|
class CommGrid *cg;
|
||||||
|
class CommGrid *cg_peratom;
|
||||||
|
|
||||||
int **part2grid; // storage for particle -> grid mapping
|
int **part2grid; // storage for particle -> grid mapping
|
||||||
int nmax;
|
int nmax;
|
||||||
@ -106,7 +106,8 @@ class PPPM : public KSpace {
|
|||||||
double qdist; // distance from O site to negative charge
|
double qdist; // distance from O site to negative charge
|
||||||
double alpha; // geometric factor
|
double alpha; // geometric factor
|
||||||
|
|
||||||
void set_fft_parameters();
|
void set_grid_global();
|
||||||
|
void set_grid_local();
|
||||||
void adjust_gewald();
|
void adjust_gewald();
|
||||||
double newton_raphson_f();
|
double newton_raphson_f();
|
||||||
double derivf();
|
double derivf();
|
||||||
@ -129,16 +130,6 @@ class PPPM : public KSpace {
|
|||||||
virtual void make_rho();
|
virtual void make_rho();
|
||||||
virtual void brick2fft();
|
virtual void brick2fft();
|
||||||
|
|
||||||
void set_grid();
|
|
||||||
|
|
||||||
virtual void fillbrick();
|
|
||||||
void fillbrick_ik();
|
|
||||||
void fillbrick_ad();
|
|
||||||
|
|
||||||
virtual void fillbrick_peratom();
|
|
||||||
void fillbrick_peratom_ik();
|
|
||||||
void fillbrick_peratom_ad();
|
|
||||||
|
|
||||||
virtual void poisson();
|
virtual void poisson();
|
||||||
void poisson_ik();
|
void poisson_ik();
|
||||||
void poisson_ad();
|
void poisson_ad();
|
||||||
@ -157,6 +148,13 @@ class PPPM : public KSpace {
|
|||||||
void compute_rho_coeff();
|
void compute_rho_coeff();
|
||||||
void slabcorr();
|
void slabcorr();
|
||||||
|
|
||||||
|
// grid communication
|
||||||
|
|
||||||
|
void pack_forward(int, FFT_SCALAR *, int, int *);
|
||||||
|
void unpack_forward(int, FFT_SCALAR *, int, int *);
|
||||||
|
void pack_reverse(int, FFT_SCALAR *, int, int *);
|
||||||
|
void unpack_reverse(int, FFT_SCALAR *, int, int *);
|
||||||
|
|
||||||
// group-group interactions
|
// group-group interactions
|
||||||
|
|
||||||
virtual void allocate_groups();
|
virtual void allocate_groups();
|
||||||
|
|||||||
Reference in New Issue
Block a user