Adding a method for estimating coulomb table precision and factoring that into overall kspace precision estimate.

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8453 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
pscrozi
2012-06-29 22:49:51 +00:00
parent 0c9ab4551e
commit 71f4cdf3f1
5 changed files with 52 additions and 9 deletions

View File

@ -1091,6 +1091,8 @@ void PPPM::set_grid()
double lpr = sqrt(lprx*lprx + lpry*lpry + lprz*lprz) / sqrt(3.0);
double spr = 2.0*q2 * exp(-g_ewald*g_ewald*cutoff*cutoff) /
sqrt(natoms*cutoff*xprd*yprd*zprd_slab);
double tpr = estimate_table_accuracy(spr);
double accuracy = sqrt(lpr*lpr + spr*spr + tpr*tpr);
// free local memory
@ -1109,9 +1111,9 @@ void PPPM::set_grid()
fprintf(screen," grid = %d %d %d\n",nx_pppm,ny_pppm,nz_pppm);
fprintf(screen," stencil order = %d\n",order);
fprintf(screen," estimated absolute RMS force accuracy = %g\n",
MAX(lpr,spr));
accuracy);
fprintf(screen," estimated relative force accuracy = %g\n",
MAX(lpr,spr)/two_charge_force);
accuracy/two_charge_force);
fprintf(screen," using %s precision FFTs\n",fft_prec);
}
if (logfile) {
@ -1119,9 +1121,9 @@ void PPPM::set_grid()
fprintf(logfile," grid = %d %d %d\n",nx_pppm,ny_pppm,nz_pppm);
fprintf(logfile," stencil order = %d\n",order);
fprintf(logfile," estimated absolute RMS force accuracy = %g\n",
MAX(lpr,spr));
accuracy);
fprintf(logfile," estimated relative force accuracy = %g\n",
MAX(lpr,spr)/two_charge_force);
accuracy/two_charge_force);
fprintf(logfile," using %s precision FFTs\n",fft_prec);
}
}