Commit 4a90bca7 authored by Steve Plimpton's avatar Steve Plimpton
Browse files

patch 17Mar17

parent 9f35b764
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="10 Mar 2017 version">
<META NAME="docnumber" CONTENT="17 Mar 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
10 Mar 2017 version :c,h4
17 Mar 2017 version :c,h4

Version info: :h4

+1 −0
Original line number Diff line number Diff line
@@ -687,6 +687,7 @@ package"_Section_start.html#start_3.
"eos/cv"_fix_eos_cv.html,
"eos/table"_fix_eos_table.html,
"eos/table/rx"_fix_eos_table_rx.html,
"filter/corotate"_fix_filter_corotate.html,
"flow/gauss"_fix_flow_gauss.html,
"gle"_fix_gle.html,
"grem"_fix_grem.html,
+24 −21
Original line number Diff line number Diff line
@@ -31,26 +31,29 @@ fix cor all filter/corotate b 4 19 a 3 5 2 :pre

[Description:]

This fix implements a corotational filter for a mollified impulse method. In 
biomolecular simulations, it allows the usage of larger timesteps for  
long-range electrostatic interactions. For details, see "(Fath)"_#Fath2017.

When using "run_style respa"_run_style.html for a biomolecular simulation with high-frequency covalent 
bonds, the outer time-step is restricted to below ~ 4fs due to resonance 
problems. This fix filters the outer stage of the respa and thus a larger 
(outer) time-step can be used. Since in large biomolecular simulations the 
computation of the long-range electrostatic contributions poses a major 
bottleneck, this can significantly accelerate the simulation.

The filter computes a cluster decomposition of the molecular structure following 
the criteria indicated by the options a, b, t and m. This process is similar to 
the approach in "fix shake"_fix_shake.html, however, the clusters are not kept 
contrained. Instead, the position is slightly modified only for the computation 
of long-range forces. A good cluster decomposition constitutes in building 
clusters which contain the fastest covalent bonds inside clusters.

If the clusters are chosen suitably, the "run_style respa"_run_style.html is stable for outer 
time-steps of at least 8fs.
This fix implements a corotational filter for a mollified impulse
method. In biomolecular simulations, it allows the usage of larger
timesteps for long-range electrostatic interactions.  For details, see
"(Fath)"_#Fath2017.

When using "run_style respa"_run_style.html for a biomolecular
simulation with high-frequency covalent bonds, the outer time-step is
restricted to below ~ 4fs due to resonance problems. This fix filters
the outer stage of the respa and thus a larger (outer) time-step can
be used. Since in large biomolecular simulations the computation of
the long-range electrostatic contributions poses a major bottleneck,
this can significantly accelerate the simulation.

The filter computes a cluster decomposition of the molecular structure
following the criteria indicated by the options a, b, t and m. This
process is similar to the approach in "fix shake"_fix_shake.html,
however, the clusters are not kept contrained. Instead, the position
is slightly modified only for the computation of long-range forces. A
good cluster decomposition constitutes in building clusters which
contain the fastest covalent bonds inside clusters.

If the clusters are chosen suitably, the "run_style
respa"_run_style.html is stable for outer time-steps of at least 8fs.

:line

+1 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) :
  virial_flag = 1;
  create_attribute = 1;
  dof_flag = 1;

  // error check

  molecular = atom->molecular;
+6 −3
Original line number Diff line number Diff line
@@ -38,7 +38,8 @@ enum{KEYWORD,COMPUTE,FIX,VARIABLE,DNAME,INAME};

FixStoreState::FixStoreState(LAMMPS *lmp, int narg, char **arg) :
  Fix(lmp, narg, arg),
  nvalues(0), which(NULL), argindex(NULL), value2index(NULL), ids(NULL), values(NULL),
  nvalues(0), which(NULL), argindex(NULL), value2index(NULL), 
  ids(NULL), values(NULL),
  vbuf(NULL), pack_choice(NULL)
{
  if (narg < 5) error->all(FLERR,"Illegal fix store/state command");
@@ -1046,7 +1047,8 @@ void FixStoreState::pack_ysu(int n)

  for (int i = 0; i < nlocal; i++) {
    if (mask[i] & groupbit) 
      vbuf[n] = (x[i][1]-boxylo)*invyprd + (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
      vbuf[n] = (x[i][1]-boxylo)*invyprd + 
        (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
    else vbuf[n] = 0.0;
    n += nvalues;
  }
@@ -1158,7 +1160,8 @@ void FixStoreState::pack_iy(int n)
  int nlocal = atom->nlocal;

  for (int i = 0; i < nlocal; i++) {
    if (mask[i] & groupbit) vbuf[n] = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
    if (mask[i] & groupbit) 
      vbuf[n] = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
    else vbuf[n] = 0.0;
    n += nvalues;
  }
Loading