diff --git a/src/KSPACE/pppm.cpp b/src/KSPACE/pppm.cpp index 174b00f3b7..b8891bf4de 100644 --- a/src/KSPACE/pppm.cpp +++ b/src/KSPACE/pppm.cpp @@ -780,14 +780,13 @@ void PPPM::set_grid() // reduce it until accuracy target is met if (!gridflag) { - if (differentiation_flag == 1) { - h = h_x = h_y = h_z = 4.0/g_ewald; int count = 0; while (1) { // set grid dimension + nx_pppm = static_cast (xprd/h_x); ny_pppm = static_cast (yprd/h_y); nz_pppm = static_cast (zprd_slab/h_z); @@ -796,7 +795,8 @@ void PPPM::set_grid() if (ny_pppm <= 1) ny_pppm = 2; if (nz_pppm <= 1) nz_pppm = 2; - //set local grid dimension + // set local grid dimension + int npey_fft,npez_fft; if (nz_pppm >= nprocs) { npey_fft = 1; @@ -814,20 +814,18 @@ void PPPM::set_grid() nzhi_fft = (me_z+1)*nz_pppm/npez_fft - 1; double df_kspace = compute_df_kspace(); - count++; // break loop if the accuracy has been reached or - // too many loops have been performed + // if too many loops have been performed if (df_kspace <= accuracy) break; - if (count > 500) error->all(FLERR, "Could not compute grid size!"); + if (count > 500) error->all(FLERR,"Could not compute PPPM grid size"); h *= 0.95; h_x = h_y = h_z = h; } } else { - double err; h_x = h_y = h_z = 1.0/g_ewald; @@ -1000,6 +998,7 @@ double PPPM::compute_qopt() } } } + double qopt_all; MPI_Allreduce(&qopt,&qopt_all,1,MPI_DOUBLE,MPI_SUM,world); return qopt_all; @@ -1053,9 +1052,7 @@ double PPPM::newton_raphson_f() double df_rspace = 2.0*q2*exp(-g_ewald*g_ewald*cutoff*cutoff) / sqrt(natoms*cutoff*xprd*yprd*zprd); - double df_kspace = compute_df_kspace(); - return df_rspace - df_kspace; } diff --git a/src/KSPACE/pppm.h b/src/KSPACE/pppm.h index f5b07a03f3..36ac99a405 100644 --- a/src/KSPACE/pppm.h +++ b/src/KSPACE/pppm.h @@ -81,7 +81,8 @@ class PPPM : public KSpace { double *gf_b; FFT_SCALAR **rho1d,**rho_coeff,**drho1d,**drho_coeff; - double *sf_precoeff1, *sf_precoeff2, *sf_precoeff3, *sf_precoeff4, *sf_precoeff5, *sf_precoeff6; + double *sf_precoeff1, *sf_precoeff2, *sf_precoeff3; + double *sf_precoeff4, *sf_precoeff5, *sf_precoeff6; double sf_coeff[6]; // coefficients for calculating ad self-forces double **acons; diff --git a/src/kspace.h b/src/kspace.h index 2d6d8f6486..1110269a6f 100644 --- a/src/kspace.h +++ b/src/kspace.h @@ -45,8 +45,8 @@ class KSpace : protected Pointers { int proxyflag; // 1 if a proxy solver double g_ewald,g_ewald_6; - int nx_pppm,ny_pppm,nz_pppm; - int nx_pppm_6,ny_pppm_6,nz_pppm_6; + int nx_pppm,ny_pppm,nz_pppm; // global FFT grid for Coulombics + int nx_pppm_6,ny_pppm_6,nz_pppm_6; // global FFT grid for dispersion int nx_msm_max,ny_msm_max,nz_msm_max; int group_group_enable; // 1 if style supports group/group calculation @@ -69,14 +69,10 @@ class KSpace : protected Pointers { virtual void compute(int, int) = 0; virtual void compute_group_group(int, int, int) {}; - virtual int pack_forward(int, FFT_SCALAR *, - int, int, int, int, int, int) {return 0;}; - virtual void unpack_forward(int, FFT_SCALAR *, - int, int, int, int, int, int) {}; - virtual int pack_reverse(int, FFT_SCALAR *, - int, int, int, int, int, int) {return 0;}; - virtual void unpack_reverse(int, FFT_SCALAR *, - int, int, int, int, int, int) {}; + virtual int pack_forward(int, FFT_SCALAR *, int, int *) {return 0;}; + virtual void unpack_forward(int, FFT_SCALAR *, int, int *) {}; + virtual int pack_reverse(int, FFT_SCALAR *, int, int *) {return 0;}; + virtual void unpack_reverse(int, FFT_SCALAR *, int, int *) {}; virtual int timing(int, double &, double &) {return 0;} virtual int timing_1d(int, double &) {return 0;}