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
2068
src/KSPACE/pppm.cpp
2068
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 me,nprocs;
|
||||||
int nfactors;
|
int nfactors;
|
||||||
int *factors;
|
int *factors;
|
||||||
double qsum,qsqsum;
|
double qsum,qsqsum,q2;
|
||||||
double cutoff;
|
double cutoff;
|
||||||
double volume;
|
double volume;
|
||||||
double delxinv,delyinv,delzinv,delvolinv;
|
double delxinv,delyinv,delzinv,delvolinv;
|
||||||
|
@ -79,7 +79,9 @@ class PPPM : public KSpace {
|
||||||
FFT_SCALAR *buf1,*buf2,*buf3,*buf4;
|
FFT_SCALAR *buf1,*buf2,*buf3,*buf4;
|
||||||
|
|
||||||
double *gf_b;
|
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
|
// group-group interactions
|
||||||
|
|
||||||
|
@ -100,29 +102,56 @@ class PPPM : public KSpace {
|
||||||
int typeH,typeO; // atom types of TIP4P water H and O atoms
|
int typeH,typeO; // atom types of TIP4P water H and O atoms
|
||||||
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 adjust_gewald();
|
||||||
|
double newton_raphson_f();
|
||||||
|
double derivf();
|
||||||
|
double final_accuracy();
|
||||||
|
|
||||||
void set_grid();
|
|
||||||
virtual void allocate();
|
virtual void allocate();
|
||||||
virtual void allocate_peratom();
|
virtual void allocate_peratom();
|
||||||
virtual void deallocate();
|
virtual void deallocate();
|
||||||
virtual void deallocate_peratom();
|
virtual void deallocate_peratom();
|
||||||
int factorable(int);
|
int factorable(int);
|
||||||
|
double compute_df_kspace();
|
||||||
double rms(double, double, bigint, double, double **);
|
double rms(double, double, bigint, double, double **);
|
||||||
double diffpr(double, double, double, double, double **);
|
double diffpr(double, double, double, double, double **);
|
||||||
|
double compute_qopt();
|
||||||
void compute_gf_denom();
|
void compute_gf_denom();
|
||||||
|
void compute_gf_ik();
|
||||||
|
void compute_gf_ad();
|
||||||
|
void compute_sf_coeff();
|
||||||
|
|
||||||
virtual void particle_map();
|
virtual void particle_map();
|
||||||
virtual void make_rho();
|
virtual void make_rho();
|
||||||
virtual void brick2fft();
|
virtual void brick2fft();
|
||||||
|
|
||||||
|
void set_grid();
|
||||||
|
|
||||||
virtual void fillbrick();
|
virtual void fillbrick();
|
||||||
|
void fillbrick_ik();
|
||||||
|
void fillbrick_ad();
|
||||||
|
|
||||||
virtual void fillbrick_peratom();
|
virtual void fillbrick_peratom();
|
||||||
|
void fillbrick_peratom_ik();
|
||||||
|
void fillbrick_peratom_ad();
|
||||||
|
|
||||||
virtual void poisson();
|
virtual void poisson();
|
||||||
virtual void poisson_peratom();
|
void poisson_ik();
|
||||||
|
void poisson_ad();
|
||||||
|
|
||||||
virtual void fieldforce();
|
virtual void fieldforce();
|
||||||
|
void fieldforce_ik();
|
||||||
|
void fieldforce_ad();
|
||||||
|
|
||||||
|
virtual void poisson_peratom();
|
||||||
virtual void fieldforce_peratom();
|
virtual void fieldforce_peratom();
|
||||||
void procs2grid2d(int,int,int,int *, int*);
|
void procs2grid2d(int,int,int,int *, int*);
|
||||||
void compute_rho1d(const FFT_SCALAR &, const FFT_SCALAR &,
|
void compute_rho1d(const FFT_SCALAR &, 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 compute_rho_coeff();
|
||||||
void slabcorr();
|
void slabcorr();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue