Merge branch 'master' into USER-DPD_kokkos as of patch 20 Jan 2017.

This commit is contained in:
Tim Mattox
2017-01-20 16:43:13 -05:00
6 changed files with 26 additions and 12 deletions

View File

@ -1,7 +1,7 @@
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="17 Jan 2017 version">
<META NAME="docnumber" CONTENT="20 Jan 2017 version">
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
</HEAD>
@ -21,7 +21,7 @@
<H1></H1>
LAMMPS Documentation :c,h3
17 Jan 2017 version :c,h4
20 Jan 2017 version :c,h4
Version info: :h4

View File

@ -229,11 +229,16 @@ dramatically in z. For example, for a triclinic system with all three
tilt factors set to the maximum limit, the PPPM grid should be
increased roughly by a factor of 1.5 in the y direction and 2.0 in the
z direction as compared to the same system using a cubic orthogonal
simulation cell. One way to ensure the accuracy requirement is being
met is to run a short simulation at the maximum expected tilt or
length, note the required grid size, and then use the
simulation cell. One way to handle this issue if you have a long
simulation where the box size changes dramatically, is to break it
into shorter simulations (multiple "run"_run.html commands). This
works because the grid size is re-computed at the beginning of each
run. Another way to ensure the descired accuracy requirement is met
is to run a short simulation at the maximum expected tilt or length,
note the required grid size, and then use the
"kspace_modify"_kspace_modify.html {mesh} command to manually set the
PPPM grid size to this value.
PPPM grid size to this value for the long run. The simulation then
will be "too accurate" for some portion of the run.
RMS force errors in real space for {ewald} and {pppm} are estimated
using equation 18 of "(Kolafa)"_#Kolafa, which is also referenced as
@ -285,6 +290,8 @@ LAMMPS"_Section_start.html#start_3 section for more info.
See "Section 5"_Section_accelerate.html of the manual for
more instructions on how to use the accelerated styles effectively.
:line
[Restrictions:]
Note that the long-range electrostatic solvers in LAMMPS assume conducting

View File

@ -43,6 +43,8 @@ using namespace LAMMPS_NS;
PairDPDfdt::PairDPDfdt(LAMMPS *lmp) : Pair(lmp)
{
random = NULL;
splitFDT_flag = false;
a0_is_zero = false;
}
/* ---------------------------------------------------------------------- */
@ -94,7 +96,7 @@ void PairDPDfdt::compute(int eflag, int vflag)
// loop over neighbors of my atoms
if (splitFDT_flag) {
for (ii = 0; ii < inum; ii++) {
if (!a0_is_zero) for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
@ -287,6 +289,8 @@ void PairDPDfdt::coeff(int narg, char **arg)
double sigma_one = force->numeric(FLERR,arg[3]);
double cut_one = cut_global;
a0_is_zero = (a0_one == 0.0); // Typical use with SSA is to set a0 to zero
if (narg == 5) cut_one = force->numeric(FLERR,arg[4]);
int count = 0;
@ -371,6 +375,7 @@ void PairDPDfdt::read_restart(FILE *fp)
allocate();
a0_is_zero = true; // start with assumption that a0 is zero
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
@ -386,6 +391,7 @@ void PairDPDfdt::read_restart(FILE *fp)
MPI_Bcast(&a0[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
a0_is_zero = a0_is_zero && (a0[i][j] == 0.0); // verify the zero assumption
}
}
}

View File

@ -50,6 +50,7 @@ class PairDPDfdt : public Pair {
double cut_global;
int seed;
bool splitFDT_flag;
bool a0_is_zero;
void allocate();

View File

@ -724,7 +724,7 @@ void Neighbor::init_pair()
// IJ newton = 1 for newton on, 2 for newton off
inewton = requests[i]->newton;
if (inewton == 0) inewton = force->newton_pair ? 1 : 2;
jnewton = requests[i]->newton;
jnewton = requests[j]->newton;
if (jnewton == 0) jnewton = force->newton_pair ? 1 : 2;
if (inewton != jnewton) continue;
@ -1100,7 +1100,7 @@ void Neighbor::init_topology()
void Neighbor::print_pairwise_info()
{
int i,j,m;
int i,m;
char str[128];
const char *kind;
FILE *out;
@ -1169,8 +1169,8 @@ void Neighbor::print_pairwise_info()
else if (requests[i]->respamiddle) kind = "respa/middle";
else if (requests[i]->respaouter) kind = "respa/outer";
else if (requests[i]->half_from_full) kind = "half/from/full";
if (requests[i]->occasional) fprintf(out,", occasional");
else fprintf(out,", perpetual");
if (requests[i]->occasional) fprintf(out,", %s, occasional",kind);
else fprintf(out,", %s, perpetual",kind);
if (requests[i]->ghost) fprintf(out,", ghost");
if (requests[i]->ssa) fprintf(out,", ssa");
if (requests[i]->omp) fprintf(out,", omp");

View File

@ -1 +1 @@
#define LAMMPS_VERSION "17 Jan 2017"
#define LAMMPS_VERSION "20 Jan 2017"