forked from lijiext/lammps
Making initial estimate for g_ewald more robust and better documented.
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8448 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
a8338a0263
commit
4323d1522a
|
@ -157,10 +157,11 @@ void Ewald::init()
|
||||||
// zprd used rather than zprd_slab
|
// zprd used rather than zprd_slab
|
||||||
|
|
||||||
if (!gewaldflag) {
|
if (!gewaldflag) {
|
||||||
|
if (accuracy <= 0.0)
|
||||||
|
error->all(FLERR,"KSpace accuracy must be > 0");
|
||||||
g_ewald = accuracy*sqrt(natoms*cutoff*xprd*yprd*zprd) / (2.0*q2);
|
g_ewald = accuracy*sqrt(natoms*cutoff*xprd*yprd*zprd) / (2.0*q2);
|
||||||
if (g_ewald >= 1.0)
|
if (g_ewald >= 1.0) g_ewald = (1.35 - 0.15*log(accuracy))/cutoff;
|
||||||
error->all(FLERR,"KSpace accuracy too large to estimate G vector");
|
else g_ewald = sqrt(-log(g_ewald)) / cutoff;
|
||||||
g_ewald = sqrt(-log(g_ewald)) / cutoff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// setup Ewald coefficients so can print stats
|
// setup Ewald coefficients so can print stats
|
||||||
|
|
|
@ -119,9 +119,9 @@ W: System is not charge neutral, net charge = %g
|
||||||
The total charge on all atoms on the system is not 0.0, which
|
The total charge on all atoms on the system is not 0.0, which
|
||||||
is not valid for Ewald or PPPM.
|
is not valid for Ewald or PPPM.
|
||||||
|
|
||||||
E: KSpace accuracy too large to estimate G vector
|
E: KSpace accuracy must be > 0
|
||||||
|
|
||||||
UNDOCUMENTED
|
The kspace accuracy designated in the input must be greater than zero.
|
||||||
|
|
||||||
E: Cannot (yet) use Kspace slab correction with compute group/group
|
E: Cannot (yet) use Kspace slab correction with compute group/group
|
||||||
|
|
||||||
|
|
|
@ -1003,10 +1003,11 @@ void PPPM::set_grid()
|
||||||
bigint natoms = atom->natoms;
|
bigint natoms = atom->natoms;
|
||||||
|
|
||||||
if (!gewaldflag) {
|
if (!gewaldflag) {
|
||||||
|
if (accuracy <= 0.0)
|
||||||
|
error->all(FLERR,"KSpace accuracy must be > 0");
|
||||||
g_ewald = accuracy*sqrt(natoms*cutoff*xprd*yprd*zprd) / (2.0*q2);
|
g_ewald = accuracy*sqrt(natoms*cutoff*xprd*yprd*zprd) / (2.0*q2);
|
||||||
if (g_ewald >= 1.0)
|
if (g_ewald >= 1.0) g_ewald = (1.35 - 0.15*log(accuracy))/cutoff;
|
||||||
error->all(FLERR,"KSpace accuracy too large to estimate G vector");
|
else g_ewald = sqrt(-log(g_ewald)) / cutoff;
|
||||||
g_ewald = sqrt(-log(g_ewald)) / cutoff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// set optimal nx_pppm,ny_pppm,nz_pppm based on order and accuracy
|
// set optimal nx_pppm,ny_pppm,nz_pppm based on order and accuracy
|
||||||
|
|
|
@ -245,9 +245,9 @@ to run, but can reduce the order no further. Try increasing the
|
||||||
accuracy of PPPM by reducing the tolerance size, thus inducing a
|
accuracy of PPPM by reducing the tolerance size, thus inducing a
|
||||||
larger PPPM grid.
|
larger PPPM grid.
|
||||||
|
|
||||||
E: KSpace accuracy too large to estimate G vector
|
E: KSpace accuracy must be > 0
|
||||||
|
|
||||||
UNDOCUMENTED
|
The kspace accuracy designated in the input must be greater than zero.
|
||||||
|
|
||||||
E: Cannot compute PPPM G
|
E: Cannot compute PPPM G
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue