Hello all,
I am trying to modify ewald summation in lammps based on paper doi: 10.1063/1.2464084. Since gaussian-distributed atom charge of graphene is involved, I am thinking to change the atom_style.cpp/h, and kspace.cpp/h with pair_stylecpp/h, since the changes on summation term include the interactions between gaussian-dis atom charge and ion charge, and that between gaussian-dis atom charges.
I have been browsing ewald.cpp, but except for lines such as follows, I didn’t find much related to parallel computing. If I change the summation term, should I also write new parallel codes?
if (comm->me == 0) {
if (screen) fprintf(screen,“Ewald initialization …\n”);
if (logfile) fprintf(logfile,“Ewald initialization …\n”);
}
if (fabs(qsum) > SMALL && comm->me == 0) {
char str[128];
sprintf(str,“System is not charge neutral, net charge = %g”,qsum);
error->warning(FLERR,str);
}
if (comm->me == 0) {
if (screen) {
fprintf(screen," G vector (1/distance) = %g\n",g_ewald);
fprintf(screen," estimated absolute RMS force accuracy = %g\n",
estimated_accuracy);
fprintf(screen," estimated relative force accuracy = %g\n",
estimated_accuracy/two_charge_force);
fprintf(screen," KSpace vectors: actual max1d max3d = %d %d %d\n",
kcount,kmax,kmax3d);
fprintf(screen," kxmax kymax kzmax = %d %d %d\n",
kxmax,kymax,kzmax);
}
if (logfile) {
fprintf(logfile," G vector (1/distance) = %g\n",g_ewald);
fprintf(logfile," estimated absolute RMS force accuracy = %g\n",
estimated_accuracy);
fprintf(logfile," estimated relative force accuracy = %g\n",
estimated_accuracy/two_charge_force);
fprintf(logfile," KSpace vectors: actual max1d max3d = %d %d %d\n",
kcount,kmax,kmax3d);
fprintf(logfile," kxmax kymax kzmax = %d %d %d\n",
kxmax,kymax,kzmax);
}
}
Thank you for your insights.
Andrew