forked from lijiext/lammps
Analytic differentiation (AD) for PPPM.
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8525 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
d33a0604e2
commit
c4f8d2d110
2062
src/KSPACE/pppm.cpp
2062
src/KSPACE/pppm.cpp
File diff suppressed because it is too large
Load Diff
|
@ -51,7 +51,7 @@ class PPPM : public KSpace {
|
|||
int me,nprocs;
|
||||
int nfactors;
|
||||
int *factors;
|
||||
double qsum,qsqsum;
|
||||
double qsum,qsqsum,q2;
|
||||
double cutoff;
|
||||
double volume;
|
||||
double delxinv,delyinv,delzinv,delvolinv;
|
||||
|
@ -79,7 +79,9 @@ class PPPM : public KSpace {
|
|||
FFT_SCALAR *buf1,*buf2,*buf3,*buf4;
|
||||
|
||||
double *gf_b;
|
||||
FFT_SCALAR **rho1d,**rho_coeff;
|
||||
FFT_SCALAR **rho1d,**rho_coeff,**drho1d,**drho_coeff;
|
||||
double sf_coeff[6]; // coefficients for calculating ad self-forces
|
||||
double **acons;
|
||||
|
||||
// group-group interactions
|
||||
|
||||
|
@ -101,28 +103,55 @@ class PPPM : public KSpace {
|
|||
double qdist; // distance from O site to negative charge
|
||||
double alpha; // geometric factor
|
||||
|
||||
void set_grid();
|
||||
void set_fft_parameters();
|
||||
void adjust_gewald();
|
||||
double newton_raphson_f();
|
||||
double derivf();
|
||||
double final_accuracy();
|
||||
|
||||
virtual void allocate();
|
||||
virtual void allocate_peratom();
|
||||
virtual void deallocate();
|
||||
virtual void deallocate_peratom();
|
||||
int factorable(int);
|
||||
double compute_df_kspace();
|
||||
double rms(double, double, bigint, double, double **);
|
||||
double diffpr(double, double, double, double, double **);
|
||||
double compute_qopt();
|
||||
void compute_gf_denom();
|
||||
void compute_gf_ik();
|
||||
void compute_gf_ad();
|
||||
void compute_sf_coeff();
|
||||
|
||||
virtual void particle_map();
|
||||
virtual void make_rho();
|
||||
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_peratom();
|
||||
void poisson_ik();
|
||||
void poisson_ad();
|
||||
|
||||
virtual void fieldforce();
|
||||
void fieldforce_ik();
|
||||
void fieldforce_ad();
|
||||
|
||||
virtual void poisson_peratom();
|
||||
virtual void fieldforce_peratom();
|
||||
void procs2grid2d(int,int,int,int *, int*);
|
||||
void compute_rho1d(const FFT_SCALAR &, const FFT_SCALAR &,
|
||||
const FFT_SCALAR &);
|
||||
void compute_drho1d(const FFT_SCALAR &, const FFT_SCALAR &,
|
||||
const FFT_SCALAR &);
|
||||
void compute_rho_coeff();
|
||||
void slabcorr();
|
||||
|
||||
|
|
Loading…
Reference in New Issue