Adding support for non-arithmetic mixing to charmm and updating docs and

restart2data
This commit is contained in:
W. Michael Brown
2011-01-06 18:02:09 -05:00
parent 3f295e5eb5
commit 9d654ca91c
13 changed files with 95 additions and 44 deletions

View File

@ -15,13 +15,15 @@
</H3>
<H3>pair_style lj/charmm/coul/long command
</H3>
<H3>pair_style lj/charmm/coul/long/gpu command
</H3>
<H3>pair_style lj/charmm/coul/long/opt command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>pair_style style args
</PRE>
<UL><LI>style = <I>lj/charmm/coul/charmm</I> or <I>lj/charmm/coul/charmm/implicit</I> or <I>lj/charmm/coul/long</I> or <I>lj/charmm/coul/long/opt</I>
<UL><LI>style = <I>lj/charmm/coul/charmm</I> or <I>lj/charmm/coul/charmm/implicit</I> or <I>lj/charmm/coul/long</I> or <I>lj/charmm/coul/long/gpu</I> or <I>lj/charmm/coul/long/opt</I>
<LI>args = list of arguments for a particular style
</UL>
<PRE> <I>lj/charmm/coul/charmm</I> args = inner outer (inner2) (outer2)
@ -34,6 +36,10 @@
inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args)
cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args)
</PRE>
<PRE> <I>lj/charmm/coul/long/gpu</I> args = inner outer (cutoff)
inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args)
cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args)
</PRE>
<P><B>Examples:</B>
</P>
<PRE>pair_style lj/charmm/coul/charmm 8.0 10.0
@ -86,6 +92,9 @@ applied to the Coulombic term, as in the discussion for pair style
command, then the outer LJ cutoff is used as the single Coulombic
cutoff.
</P>
<P>Style <I>lj/charmm/coul/long/gpu</I> is a GPU-enabled version of style <I>lj/charmm/coul/long</I>.
See more details below.
</P>
<P>Style <I>lj/charmm/coul/long/opt</I> is an optimized version of style
<I>lj/charmm/coul/long</I> that should give identical answers. Depending
on system size and the processor you are running on, it may be 5-25%
@ -115,6 +124,26 @@ the pair_style command.
</P>
<HR>
<P>The <I>lj/charmm/coul/long/gpu</I> style is identical to the <I>lj/charmm/coul/long</I>
style, except that each processor off-loads its pairwise calculations to
a GPU chip. Depending on the hardware available on your system this can
provide a significant speed-up. See the <A HREF = "Section_start.html#2_8">Running on
GPUs</A> section of the manual for more details
about hardware and software requirements for using GPUs.
</P>
<P>More details about these settings and various possible hardware
configuration are in <A HREF = "Section_start.html#2_8">this section</A> of the
manual.
</P>
<P>Additional requirements in your input script to run with style
<I>lj/charmm/coul/long/gpu</I> are as follows:
</P>
<P>The <A HREF = "newton.html">newton pair</A> setting must be <I>off</I> and
<A HREF = "fix_gpu.html">fix gpu</A> must be used. The fix controls the
essential GPU selection and initialization steps.
</P>
<HR>
<P><B>Mixing, shift, table, tail correction, restart, rRESPA info</B>:
</P>
<P>For atom type pairs I,J and I != J, the epsilon, sigma, epsilon_14,
@ -154,7 +183,9 @@ support the <I>pair</I> keyword of run_style respa. See the
</P>
<P>The <I>lj/charmm/coul/charmm</I> and <I>lj/charmm/coul/charmm/implicit</I>
styles are part of the "molecule" package. The <I>lj/charmm/coul/long</I>
style is part of the "kspace" package. The <I>lj/charmm/coul/long/opt</I>
style is part of the "kspace" package. The <I>lj/charmm/coul/long/gpu</I>
style is part of the "gpu" package and also requires the "kspace"
package. The <I>lj/charmm/coul/long/opt</I>
style is part of the "opt" package and also requires the "kspace"
package. They are only enabled if LAMMPS was built with those
package(s) (molecule and kspace are by default). See the <A HREF = "Section_start.html#2_3">Making

View File

@ -9,13 +9,14 @@
pair_style lj/charmm/coul/charmm command :h3
pair_style lj/charmm/coul/charmm/implicit command :h3
pair_style lj/charmm/coul/long command :h3
pair_style lj/charmm/coul/long/gpu command :h3
pair_style lj/charmm/coul/long/opt command :h3
[Syntax:]
pair_style style args :pre
style = {lj/charmm/coul/charmm} or {lj/charmm/coul/charmm/implicit} or {lj/charmm/coul/long} or {lj/charmm/coul/long/opt}
style = {lj/charmm/coul/charmm} or {lj/charmm/coul/charmm/implicit} or {lj/charmm/coul/long} or {lj/charmm/coul/long/gpu} or {lj/charmm/coul/long/opt}
args = list of arguments for a particular style :ul
{lj/charmm/coul/charmm} args = inner outer (inner2) (outer2)
inner, outer = global switching cutoffs for Lennard Jones (and Coulombic if only 2 args)
@ -26,6 +27,9 @@ args = list of arguments for a particular style :ul
{lj/charmm/coul/long} args = inner outer (cutoff)
inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args)
cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) :pre
{lj/charmm/coul/long/gpu} args = inner outer (cutoff)
inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args)
cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) :pre
[Examples:]
@ -79,6 +83,9 @@ applied to the Coulombic term, as in the discussion for pair style
command, then the outer LJ cutoff is used as the single Coulombic
cutoff.
Style {lj/charmm/coul/long/gpu} is a GPU-enabled version of style {lj/charmm/coul/long}.
See more details below.
Style {lj/charmm/coul/long/opt} is an optimized version of style
{lj/charmm/coul/long} that should give identical answers. Depending
on system size and the processor you are running on, it may be 5-25%
@ -108,6 +115,26 @@ the pair_style command.
:line
The {lj/charmm/coul/long/gpu} style is identical to the {lj/charmm/coul/long}
style, except that each processor off-loads its pairwise calculations to
a GPU chip. Depending on the hardware available on your system this can
provide a significant speed-up. See the "Running on
GPUs"_Section_start.html#2_8 section of the manual for more details
about hardware and software requirements for using GPUs.
More details about these settings and various possible hardware
configuration are in "this section"_Section_start.html#2_8 of the
manual.
Additional requirements in your input script to run with style
{lj/charmm/coul/long/gpu} are as follows:
The "newton pair"_newton.html setting must be {off} and
"fix gpu"_fix_gpu.html must be used. The fix controls the
essential GPU selection and initialization steps.
:line
[Mixing, shift, table, tail correction, restart, rRESPA info]:
For atom type pairs I,J and I != J, the epsilon, sigma, epsilon_14,
@ -147,7 +174,9 @@ support the {pair} keyword of run_style respa. See the
The {lj/charmm/coul/charmm} and {lj/charmm/coul/charmm/implicit}
styles are part of the "molecule" package. The {lj/charmm/coul/long}
style is part of the "kspace" package. The {lj/charmm/coul/long/opt}
style is part of the "kspace" package. The {lj/charmm/coul/long/gpu}
style is part of the "gpu" package and also requires the "kspace"
package. The {lj/charmm/coul/long/opt}
style is part of the "opt" package and also requires the "kspace"
package. They are only enabled if LAMMPS was built with those
package(s) (molecule and kspace are by default). See the "Making

View File

@ -119,6 +119,7 @@ the pair_style command, and coefficients specified by the associated
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm</A> - CHARMM potential with cutoff Coulomb
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm/implicit</A> - CHARMM for implicit solvent
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/long</A> - CHARMM with long-range Coulomb
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/long/gpu</A> - GPU-enabled version of CHARMM with long-range Coulomb
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/long/opt</A> - optimized version of CHARMM with long-range Coulomb
<LI><A HREF = "pair_class2.html">pair_style lj/class2</A> - COMPASS (class 2) force field with no Coulomb
<LI><A HREF = "pair_class2.html">pair_style lj/class2/coul/cut</A> - COMPASS with cutoff Coulomb
@ -127,14 +128,17 @@ the pair_style command, and coefficients specified by the associated
<LI><A HREF = "pair_lj.html">pair_style lj/cut/gpu</A> - GPU-enabled version of cutoff LJ
<LI><A HREF = "pair_lj.html">pair_style lj/cut/opt</A> - optimized version of cutoff LJ
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/cut</A> - LJ with cutoff Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/cut/gpu</A> - GPU-enabled version of LJ with cutoff Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/debye</A> - LJ with Debye screening added to Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long</A> - LJ with long-range Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long/gpu</A> - GPU-enabled version of LJ with long-range Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long/tip4p</A> - LJ with long-range Coulomb for TIP4P water
<LI><A HREF = "pair_lj_expand.html">pair_style lj/expand</A> - Lennard-Jones for variable size particles
<LI><A HREF = "pair_gromacs.html">pair_style lj/gromacs</A> - GROMACS-style Lennard-Jones potential
<LI><A HREF = "pair_gromacs.html">pair_style lj/gromacs/coul/gromacs</A> - GROMACS-style LJ and Coulombic potential
<LI><A HREF = "pair_lj_smooth.html">pair_style lj/smooth</A> - smoothed Lennard-Jones potential
<LI><A HREF = "pair_lj96_cut.html">pair_style lj96/cut</A> - Lennard-Jones 9/6 potential
<LI><A HREF = "pair_lj96_cut.html">pair_style lj96/cut/gpu</A> - GPU-enabled version of Lennard-Jones 9/6
<LI><A HREF = "pair_lubricate.html">pair_style lubricate</A> - hydrodynamic lubrication forces
<LI><A HREF = "pair_meam.html">pair_style meam</A> - modified embedded atom method (MEAM)
<LI><A HREF = "pair_morse.html">pair_style morse</A> - Morse potential

View File

@ -116,6 +116,7 @@ the pair_style command, and coefficients specified by the associated
"pair_style lj/charmm/coul/charmm"_pair_charmm.html - CHARMM potential with cutoff Coulomb
"pair_style lj/charmm/coul/charmm/implicit"_pair_charmm.html - CHARMM for implicit solvent
"pair_style lj/charmm/coul/long"_pair_charmm.html - CHARMM with long-range Coulomb
"pair_style lj/charmm/coul/long/gpu"_pair_charmm.html - GPU-enabled version of CHARMM with long-range Coulomb
"pair_style lj/charmm/coul/long/opt"_pair_charmm.html - optimized version of CHARMM with long-range Coulomb
"pair_style lj/class2"_pair_class2.html - COMPASS (class 2) force field with no Coulomb
"pair_style lj/class2/coul/cut"_pair_class2.html - COMPASS with cutoff Coulomb
@ -124,14 +125,17 @@ the pair_style command, and coefficients specified by the associated
"pair_style lj/cut/gpu"_pair_lj.html - GPU-enabled version of cutoff LJ
"pair_style lj/cut/opt"_pair_lj.html - optimized version of cutoff LJ
"pair_style lj/cut/coul/cut"_pair_lj.html - LJ with cutoff Coulomb
"pair_style lj/cut/coul/cut/gpu"_pair_lj.html - GPU-enabled version of LJ with cutoff Coulomb
"pair_style lj/cut/coul/debye"_pair_lj.html - LJ with Debye screening added to Coulomb
"pair_style lj/cut/coul/long"_pair_lj.html - LJ with long-range Coulomb
"pair_style lj/cut/coul/long/gpu"_pair_lj.html - GPU-enabled version of LJ with long-range Coulomb
"pair_style lj/cut/coul/long/tip4p"_pair_lj.html - LJ with long-range Coulomb for TIP4P water
"pair_style lj/expand"_pair_lj_expand.html - Lennard-Jones for variable size particles
"pair_style lj/gromacs"_pair_gromacs.html - GROMACS-style Lennard-Jones potential
"pair_style lj/gromacs/coul/gromacs"_pair_gromacs.html - GROMACS-style LJ and Coulombic potential
"pair_style lj/smooth"_pair_lj_smooth.html - smoothed Lennard-Jones potential
"pair_style lj96/cut"_pair_lj96_cut.html - Lennard-Jones 9/6 potential
"pair_style lj96/cut/gpu"_pair_lj96_cut.html - GPU-enabled version of Lennard-Jones 9/6
"pair_style lubricate"_pair_lubricate.html - hydrodynamic lubrication forces
"pair_style meam"_pair_meam.html - modified embedded atom method (MEAM)
"pair_style morse"_pair_morse.html - Morse potential

View File

@ -199,22 +199,6 @@ speed-up. See the <A HREF = "Section_start.html#2_8">Running on GPUs</A> sectio
the manual for more details about hardware and software requirements
for using GPUs.
</P>
<P>The <I>gpumode</I> and <I>gpuID</I> settings in the pair_style command refer to
how the GPUs on your system are configured.
</P>
<P>Set <I>gpumode</I> to <I>one/node</I> if you have a single compute "node" on
your system, which may have multiple cores and/or GPUs. <I>GpuID</I>
should be set to the ID of the (first) GPU you wish to use with LAMMPS
(another GPU might be driving your display).
</P>
<P>Set <I>gpumode</I> to <I>one/gpu</I> if you have multiple compute "nodes" on
your system, with one GPU per node. <I>GpuID</I> should be set to the ID
of the GPU.
</P>
<P>Set <I>gpumode</I> to <I>multi/gpu</I> if you have multiple compute "nodes" on
your system, each with multiple GPUs. <I>GpuID</I> should be set to the
number of GPUs per node.
</P>
<P>More details about these settings and various possible hardware
configuration are in <A HREF = "Section_start.html#2_8">this section</A> of the
manual.

View File

@ -188,22 +188,6 @@ speed-up. See the "Running on GPUs"_Section_start.html#2_8 section of
the manual for more details about hardware and software requirements
for using GPUs.
The {gpumode} and {gpuID} settings in the pair_style command refer to
how the GPUs on your system are configured.
Set {gpumode} to {one/node} if you have a single compute "node" on
your system, which may have multiple cores and/or GPUs. {GpuID}
should be set to the ID of the (first) GPU you wish to use with LAMMPS
(another GPU might be driving your display).
Set {gpumode} to {one/gpu} if you have multiple compute "nodes" on
your system, with one GPU per node. {GpuID} should be set to the ID
of the GPU.
Set {gpumode} to {multi/gpu} if you have multiple compute "nodes" on
your system, each with multiple GPUs. {GpuID} should be set to the
number of GPUs per node.
More details about these settings and various possible hardware
configuration are in "this section"_Section_start.html#2_8 of the
manual.

View File

@ -121,6 +121,7 @@ the pair_style command, and coefficients specified by the associated
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm</A> - CHARMM potential with cutoff Coulomb
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/charmm/implicit</A> - CHARMM for implicit solvent
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/long</A> - CHARMM with long-range Coulomb
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/long/gpu</A> - GPU-enabled version of CHARMM with long-range Coulomb
<LI><A HREF = "pair_charmm.html">pair_style lj/charmm/coul/long/opt</A> - optimized version of CHARMM with long-range Coulomb
<LI><A HREF = "pair_class2.html">pair_style lj/class2</A> - COMPASS (class 2) force field with no Coulomb
<LI><A HREF = "pair_class2.html">pair_style lj/class2/coul/cut</A> - COMPASS with cutoff Coulomb
@ -129,14 +130,17 @@ the pair_style command, and coefficients specified by the associated
<LI><A HREF = "pair_lj.html">pair_style lj/cut/gpu</A> - GPU-enabled version of cutoff LJ
<LI><A HREF = "pair_lj.html">pair_style lj/cut/opt</A> - optimized version of cutoff LJ
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/cut</A> - LJ with cutoff Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/cut/gpu</A> - GPU-enabled version of LJ with cutoff Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/debye</A> - LJ with Debye screening added to Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long</A> - LJ with long-range Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long/gpu</A> - GPU-enabled version of LJ with long-range Coulomb
<LI><A HREF = "pair_lj.html">pair_style lj/cut/coul/long/tip4p</A> - LJ with long-range Coulomb for TIP4P water
<LI><A HREF = "pair_lj_expand.html">pair_style lj/expand</A> - Lennard-Jones for variable size particles
<LI><A HREF = "pair_gromacs.html">pair_style lj/gromacs</A> - GROMACS-style Lennard-Jones potential
<LI><A HREF = "pair_gromacs.html">pair_style lj/gromacs/coul/gromacs</A> - GROMACS-style LJ and Coulombic potential
<LI><A HREF = "pair_lj_smooth.html">pair_style lj/smooth</A> - smoothed Lennard-Jones potential
<LI><A HREF = "pair_lj96_cut.html">pair_style lj96/cut</A> - Lennard-Jones 9/6 potential
<LI><A HREF = "pair_lj96_cut.html">pair_style lj96/cut/gpu</A> - GPU-enabled version of Lennard-Jones 9/6
<LI><A HREF = "pair_lubricate.html">pair_style lubricate</A> - hydrodynamic lubrication forces
<LI><A HREF = "pair_meam.html">pair_style meam</A> - modified embedded atom method (MEAM)
<LI><A HREF = "pair_morse.html">pair_style morse</A> - Morse potential

View File

@ -118,6 +118,7 @@ the pair_style command, and coefficients specified by the associated
"pair_style lj/charmm/coul/charmm"_pair_charmm.html - CHARMM potential with cutoff Coulomb
"pair_style lj/charmm/coul/charmm/implicit"_pair_charmm.html - CHARMM for implicit solvent
"pair_style lj/charmm/coul/long"_pair_charmm.html - CHARMM with long-range Coulomb
"pair_style lj/charmm/coul/long/gpu"_pair_charmm.html - GPU-enabled version of CHARMM with long-range Coulomb
"pair_style lj/charmm/coul/long/opt"_pair_charmm.html - optimized version of CHARMM with long-range Coulomb
"pair_style lj/class2"_pair_class2.html - COMPASS (class 2) force field with no Coulomb
"pair_style lj/class2/coul/cut"_pair_class2.html - COMPASS with cutoff Coulomb
@ -126,14 +127,17 @@ the pair_style command, and coefficients specified by the associated
"pair_style lj/cut/gpu"_pair_lj.html - GPU-enabled version of cutoff LJ
"pair_style lj/cut/opt"_pair_lj.html - optimized version of cutoff LJ
"pair_style lj/cut/coul/cut"_pair_lj.html - LJ with cutoff Coulomb
"pair_style lj/cut/coul/cut/gpu"_pair_lj.html - GPU-enabled version of LJ with cutoff Coulomb
"pair_style lj/cut/coul/debye"_pair_lj.html - LJ with Debye screening added to Coulomb
"pair_style lj/cut/coul/long"_pair_lj.html - LJ with long-range Coulomb
"pair_style lj/cut/coul/long/gpu"_pair_lj.html - GPU-enabled version of LJ with long-range Coulomb
"pair_style lj/cut/coul/long/tip4p"_pair_lj.html - LJ with long-range Coulomb for TIP4P water
"pair_style lj/expand"_pair_lj_expand.html - Lennard-Jones for variable size particles
"pair_style lj/gromacs"_pair_gromacs.html - GROMACS-style Lennard-Jones potential
"pair_style lj/gromacs/coul/gromacs"_pair_gromacs.html - GROMACS-style LJ and Coulombic potential
"pair_style lj/smooth"_pair_lj_smooth.html - smoothed Lennard-Jones potential
"pair_style lj96/cut"_pair_lj96_cut.html - Lennard-Jones 9/6 potential
"pair_style lj96/cut/gpu"_pair_lj96_cut.html - GPU-enabled version of Lennard-Jones 9/6
"pair_style lubricate"_pair_lubricate.html - hydrodynamic lubrication forces
"pair_style meam"_pair_meam.html - modified embedded atom method (MEAM)
"pair_style morse"_pair_morse.html - Morse potential

View File

@ -37,7 +37,7 @@ bool crml_gpu_init(const int ntypes, double cut_bothsq, double **host_lj1,
double *host_special_coul, const double qqrd2e,
const double g_ewald, const double cut_lj_innersq,
const double denom_lj, double **epsilon,
double **sigma) {
double **sigma, const bool mix_arithmetic) {
CRMLMF.clear();
gpu_mode=CRMLMF.device->gpu_mode();
double gpu_split=CRMLMF.device->particle_split();
@ -64,7 +64,7 @@ bool crml_gpu_init(const int ntypes, double cut_bothsq, double **host_lj1,
maxspecial, cell_size, gpu_split, screen,
host_cut_ljsq, host_cut_coulsq, host_special_coul,
qqrd2e, g_ewald, cut_lj_innersq, denom_lj,
epsilon,sigma);
epsilon,sigma,mix_arithmetic);
if (!init_ok)
return false;
}
@ -88,7 +88,8 @@ bool crml_gpu_init(const int ntypes, double cut_bothsq, double **host_lj1,
maxspecial, cell_size, gpu_split,
screen, host_cut_ljsq, host_cut_coulsq,
host_special_coul, qqrd2e, g_ewald,
cut_lj_innersq, denom_lj, epsilon, sigma);
cut_lj_innersq, denom_lj, epsilon, sigma,
mix_arithmetic);
if (!init_ok)
return false;
}

View File

@ -55,14 +55,14 @@ bool CRML_GPU_MemoryT::init(const int ntypes,
double *host_special_coul, const double qqrd2e,
const double g_ewald, const double cut_lj_innersq,
const double denom_lj, double **epsilon,
double **sigma) {
double **sigma, const bool mix_arithmetic) {
this->init_atomic(nlocal,nall,max_nbors,maxspecial,cell_size,gpu_split,
_screen,crml_gpu_kernel);
// If atom type constants fit in shared memory use fast kernel
int lj_types=ntypes;
shared_types=false;
if (this->_block_size>=64)
if (this->_block_size>=64 && mix_arithmetic)
shared_types=true;
_lj_types=lj_types;

View File

@ -39,7 +39,7 @@ class CRML_GPU_Memory : public ChargeGPUMemory<numtyp, acctyp> {
const double host_cut_coulsq, double *host_special_coul,
const double qqrd2e, const double g_ewald,
const double cut_lj_innersq, const double denom_lj,
double **epsilon, double **sigma);
double **epsilon, double **sigma, const bool mix_arithmetic);
/// Clear all host and device data
/** \note This is called at the beginning of the init() routine **/

View File

@ -56,7 +56,8 @@ bool crml_gpu_init(const int ntypes, double cut_bothsq, double **host_lj1,
double host_cut_ljsq, double host_cut_coulsq,
double *host_special_coul, const double qqrd2e,
const double g_ewald, const double cut_lj_innersq,
const double denom_lj, double **epsilon, double **sigma);
const double denom_lj, double **epsilon, double **sigma,
const bool mix_arithmetic);
void crml_gpu_clear();
int * crml_gpu_compute_n(const int timestep, const int ago, const int inum,
const int nall, double **host_x, int *host_type,
@ -74,6 +75,8 @@ double crml_gpu_bytes();
using namespace LAMMPS_NS;
enum{GEOMETRIC,ARITHMETIC,SIXTHPOWER};
/* ---------------------------------------------------------------------- */
PairLJCharmmCoulLongGPU::PairLJCharmmCoulLongGPU(LAMMPS *lmp) : PairLJCharmmCoulLong(lmp), gpu_mode(GPU_PAIR)
@ -181,7 +184,8 @@ void PairLJCharmmCoulLongGPU::init_style()
atom->nlocal+atom->nghost, 300, maxspecial,
cell_size, gpu_mode, screen, cut_ljsq,
cut_coulsq, force->special_coul, force->qqrd2e,
g_ewald, cut_lj_innersq,denom_lj,epsilon,sigma);
g_ewald, cut_lj_innersq,denom_lj,epsilon,sigma,
mix_flag == ARITHMETIC);
if (!init_ok)
error->one("Insufficient memory on accelerator (or no fix gpu).\n");

View File

@ -1627,6 +1627,7 @@ void pair(FILE *fp, Data &data, char *style, int flag)
} else if ((strcmp(style,"lj/charmm/coul/charmm") == 0) ||
(strcmp(style,"lj/charmm/coul/charmm/implicit") == 0) ||
(strcmp(style,"lj/charmm/coul/long") == 0) ||
(strcmp(style,"lj/charmm/coul/long/gpu") == 0) ||
(strcmp(style,"lj/charmm/coul/long/opt") == 0)) {
if (strcmp(style,"lj/charmm/coul/charmm") == 0) {
@ -1644,6 +1645,7 @@ void pair(FILE *fp, Data &data, char *style, int flag)
int offset_flag = read_int(fp);
int mix_flag = read_int(fp);
} else if ((strcmp(style,"lj/charmm/coul/long") == 0) ||
(strcmp(style,"lj/charmm/coul/long/gpu") == 0) ||
(strcmp(style,"lj/charmm/coul/long/opt") == 0)) {
double cut_lj_inner = read_double(fp);
double cut_lj = read_double(fp);