git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@9566 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -16,7 +16,6 @@
|
|||||||
#include "math_extra.h"
|
#include "math_extra.h"
|
||||||
#include "atom_vec_body.h"
|
#include "atom_vec_body.h"
|
||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "memory.h"
|
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
@ -37,6 +36,19 @@ BodyNparticle::BodyNparticle(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
|
|
||||||
size_forward = 0;
|
size_forward = 0;
|
||||||
size_border = 1 + 3*nmax;
|
size_border = 1 + 3*nmax;
|
||||||
|
|
||||||
|
// NOTE: need to set appropriate nnbin param for dcp
|
||||||
|
|
||||||
|
icp = new MyPool<int>(1,1);
|
||||||
|
dcp = new MyPool<double>(3*nmin,3*nmax);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
BodyNparticle::~BodyNparticle()
|
||||||
|
{
|
||||||
|
delete icp;
|
||||||
|
delete dcp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -105,10 +117,10 @@ void BodyNparticle::data_body(int ibonus, int ninteger, int ndouble,
|
|||||||
"Bodies section of data file");
|
"Bodies section of data file");
|
||||||
|
|
||||||
bonus->ninteger = 1;
|
bonus->ninteger = 1;
|
||||||
memory->create(bonus->ivalue,bonus->ninteger,"body:ivalue");
|
bonus->ivalue = icp->get(bonus->iindex);
|
||||||
bonus->ivalue[0] = nsub;
|
bonus->ivalue[0] = nsub;
|
||||||
bonus->ndouble = 3*nsub;
|
bonus->ndouble = 3*nsub;
|
||||||
memory->create(bonus->dvalue,3*nsub,"body:dvalue");
|
bonus->dvalue = dcp->get(bonus->ndouble,bonus->dindex);
|
||||||
|
|
||||||
// diagonalize inertia tensor
|
// diagonalize inertia tensor
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@ namespace LAMMPS_NS {
|
|||||||
class BodyNparticle : public Body {
|
class BodyNparticle : public Body {
|
||||||
public:
|
public:
|
||||||
BodyNparticle(class LAMMPS *, int, char **);
|
BodyNparticle(class LAMMPS *, int, char **);
|
||||||
~BodyNparticle() {}
|
~BodyNparticle();
|
||||||
int nsub(class AtomVecBody::Bonus *);
|
int nsub(class AtomVecBody::Bonus *);
|
||||||
double *coords(class AtomVecBody::Bonus *);
|
double *coords(class AtomVecBody::Bonus *);
|
||||||
|
|
||||||
|
|||||||
@ -44,10 +44,10 @@ class FixNVEBody : public FixNVE {
|
|||||||
|
|
||||||
E: Fix nve/body requires atom style body
|
E: Fix nve/body requires atom style body
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix nve/body requires bodies
|
E: Fix nve/body requires bodies
|
||||||
|
|
||||||
UNDOCUMENTED
|
This fix can only be used for particles that are bodies.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -63,18 +63,20 @@ class PairBody : public Pair {
|
|||||||
|
|
||||||
E: Illegal ... command
|
E: Illegal ... command
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script syntax and compare to the
|
||||||
|
documentation for the command. You can use -echo screen as a
|
||||||
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
E: Incorrect args for pair coefficients
|
E: Incorrect args for pair coefficients
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script or data file.
|
||||||
|
|
||||||
E: Pair body requires atom style body
|
E: Pair body requires atom style body
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Pair body requires body style nparticle
|
E: Pair body requires body style nparticle
|
||||||
|
|
||||||
UNDOCUMENTED
|
This pair style is specific to the nparticle body style.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -74,11 +74,6 @@ The atom style defined does not have this attribute.
|
|||||||
|
|
||||||
E: Pair style requires a KSpace style
|
E: Pair style requires a KSpace style
|
||||||
|
|
||||||
UNDOCUMENTED
|
This pair style is designed for use with a KSpace style.
|
||||||
|
|
||||||
U: Pair style is incompatible with KSpace style
|
|
||||||
|
|
||||||
If a pair style with a long-range Coulombic component is selected,
|
|
||||||
then a kspace style must also be used.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -97,6 +97,6 @@ All particles must be the same finite size.
|
|||||||
|
|
||||||
E: Cannot use multiple fix wall commands with pair brownian
|
E: Cannot use multiple fix wall commands with pair brownian
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -54,6 +54,6 @@ One of the particles has radius 0.0.
|
|||||||
|
|
||||||
E: Cannot use multiple fix wall commands with pair brownian
|
E: Cannot use multiple fix wall commands with pair brownian
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -98,6 +98,6 @@ Must use remap v option with fix deform with this pair style.
|
|||||||
|
|
||||||
E: Cannot use multiple fix wall commands with pair lubricate
|
E: Cannot use multiple fix wall commands with pair lubricate
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -109,6 +109,6 @@ All particles must be the same finite size.
|
|||||||
|
|
||||||
E: Cannot use multiple fix wall commands with pair lubricateU
|
E: Cannot use multiple fix wall commands with pair lubricateU
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -78,6 +78,6 @@ One of the particles has radius 0.0.
|
|||||||
|
|
||||||
E: Cannot use multiple fix wall commands with pair lubricateU
|
E: Cannot use multiple fix wall commands with pair lubricateU
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -61,7 +61,7 @@ Must use remap v option with fix deform with this pair style.
|
|||||||
|
|
||||||
E: Cannot use multiple fix wall commands with pair lubricate/poly
|
E: Cannot use multiple fix wall commands with pair lubricate/poly
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Using pair lubricate/poly with inconsistent fix deform remap option
|
E: Using pair lubricate/poly with inconsistent fix deform remap option
|
||||||
|
|
||||||
|
|||||||
@ -129,7 +129,7 @@ void PairBornCoulLongGPU::compute(int eflag, int vflag)
|
|||||||
atom->nlocal, domain->boxlo, domain->prd);
|
atom->nlocal, domain->boxlo, domain->prd);
|
||||||
}
|
}
|
||||||
if (!success)
|
if (!success)
|
||||||
error->one(FLERR,"Out of memory on GPGPU");
|
error->one(FLERR,"Insufficient memory on accelerator");
|
||||||
|
|
||||||
if (host_start<inum) {
|
if (host_start<inum) {
|
||||||
cpu_time = MPI_Wtime();
|
cpu_time = MPI_Wtime();
|
||||||
|
|||||||
@ -47,9 +47,10 @@ class PairBornCoulLongGPU : public PairBornCoulLong {
|
|||||||
|
|
||||||
/* ERROR/WARNING messages:
|
/* ERROR/WARNING messages:
|
||||||
|
|
||||||
E: Out of memory on GPGPU
|
E: Insufficient memory on accelerator
|
||||||
|
|
||||||
UNDOCUMENTED
|
There is insufficient memory on one of the devices specified for the gpu
|
||||||
|
package
|
||||||
|
|
||||||
E: Pair style born/coul/long/gpu requires atom attribute q
|
E: Pair style born/coul/long/gpu requires atom attribute q
|
||||||
|
|
||||||
@ -57,10 +58,11 @@ The atom style defined does not have this attribute.
|
|||||||
|
|
||||||
E: Cannot use newton pair with born/coul/long/gpu pair style
|
E: Cannot use newton pair with born/coul/long/gpu pair style
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Pair style is incompatible with KSpace style
|
E: Pair style is incompatible with KSpace style
|
||||||
|
|
||||||
UNDOCUMENTED
|
If a pair style with a long-range Coulombic component is selected,
|
||||||
|
then a kspace style must also be used.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -120,7 +120,7 @@ void PairBornCoulWolfGPU::compute(int eflag, int vflag)
|
|||||||
atom->nlocal, domain->boxlo, domain->prd);
|
atom->nlocal, domain->boxlo, domain->prd);
|
||||||
}
|
}
|
||||||
if (!success)
|
if (!success)
|
||||||
error->one(FLERR,"Out of memory on GPGPU");
|
error->one(FLERR,"Insufficient memory on accelerator");
|
||||||
|
|
||||||
if (host_start<inum) {
|
if (host_start<inum) {
|
||||||
cpu_time = MPI_Wtime();
|
cpu_time = MPI_Wtime();
|
||||||
|
|||||||
@ -47,16 +47,13 @@ class PairBornCoulWolfGPU : public PairBornCoulWolf {
|
|||||||
|
|
||||||
/* ERROR/WARNING messages:
|
/* ERROR/WARNING messages:
|
||||||
|
|
||||||
E: Out of memory on GPGPU
|
E: Insufficient memory on accelerator
|
||||||
|
|
||||||
UNDOCUMENTED
|
There is insufficient memory on one of the devices specified for the gpu
|
||||||
|
package
|
||||||
|
|
||||||
E: Cannot use newton pair with born/coul/wolf/gpu pair style
|
E: Cannot use newton pair with born/coul/wolf/gpu pair style
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
U: Pair style born/coul/wolf/gpu requires atom attribute q
|
|
||||||
|
|
||||||
The atom style defined does not have this attribute.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -110,7 +110,7 @@ void PairBornGPU::compute(int eflag, int vflag)
|
|||||||
vflag_atom, host_start, cpu_time, success);
|
vflag_atom, host_start, cpu_time, success);
|
||||||
}
|
}
|
||||||
if (!success)
|
if (!success)
|
||||||
error->one(FLERR,"Out of memory on GPGPU");
|
error->one(FLERR,"Insufficient memory on accelerator");
|
||||||
|
|
||||||
if (host_start<inum) {
|
if (host_start<inum) {
|
||||||
cpu_time = MPI_Wtime();
|
cpu_time = MPI_Wtime();
|
||||||
|
|||||||
@ -47,12 +47,13 @@ class PairBornGPU : public PairBorn {
|
|||||||
|
|
||||||
/* ERROR/WARNING messages:
|
/* ERROR/WARNING messages:
|
||||||
|
|
||||||
E: Out of memory on GPGPU
|
E: Insufficient memory on accelerator
|
||||||
|
|
||||||
UNDOCUMENTED
|
There is insufficient memory on one of the devices specified for the gpu
|
||||||
|
package
|
||||||
|
|
||||||
E: Cannot use newton pair with born/gpu pair style
|
E: Cannot use newton pair with born/gpu pair style
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explantory.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -58,10 +58,10 @@ Self-explanatory.
|
|||||||
|
|
||||||
E: Overlapping small/large in pair colloid
|
E: Overlapping small/large in pair colloid
|
||||||
|
|
||||||
UNDOCUMENTED
|
This potential is infinite when there is an overlap.
|
||||||
|
|
||||||
E: Overlapping large/large in pair colloid
|
E: Overlapping large/large in pair colloid
|
||||||
|
|
||||||
UNDOCUMENTED
|
This potential is infinite when there is an overlap.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -54,14 +54,10 @@ package
|
|||||||
|
|
||||||
E: Pair dipole/cut/gpu requires atom attributes q, mu, torque
|
E: Pair dipole/cut/gpu requires atom attributes q, mu, torque
|
||||||
|
|
||||||
UNDOCUMENTED
|
The atom style defined does not have this attribute.
|
||||||
|
|
||||||
E: Cannot use newton pair with dipole/cut/gpu pair style
|
E: Cannot use newton pair with dipole/cut/gpu pair style
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
U: Pair style dipole/cut/gpu requires atom attribute q
|
|
||||||
|
|
||||||
The atom style defined does not have this attribute.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -123,7 +123,7 @@ void PairGaussGPU::compute(int eflag, int vflag)
|
|||||||
void PairGaussGPU::init_style()
|
void PairGaussGPU::init_style()
|
||||||
{
|
{
|
||||||
if (force->newton_pair)
|
if (force->newton_pair)
|
||||||
error->all(FLERR,"Cannot use newton pair with lj/cut/gpu pair style");
|
error->all(FLERR,"Cannot use newton pair with gauss/gpu pair style");
|
||||||
|
|
||||||
// Repeat cutsq calculation because done after call to init_style
|
// Repeat cutsq calculation because done after call to init_style
|
||||||
double maxcut = -1.0;
|
double maxcut = -1.0;
|
||||||
|
|||||||
@ -52,11 +52,7 @@ E: Insufficient memory on accelerator
|
|||||||
There is insufficient memory on one of the devices specified for the gpu
|
There is insufficient memory on one of the devices specified for the gpu
|
||||||
package
|
package
|
||||||
|
|
||||||
E: Cannot use newton pair with lj/cut/gpu pair style
|
E: Cannot use newton pair with gauss/gpu pair style
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
U: Cannot use newton pair with gauss/gpu pair style
|
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
|
|||||||
@ -54,7 +54,7 @@ package
|
|||||||
|
|
||||||
E: Pair yukawa/colloid/gpu requires atom style sphere
|
E: Pair yukawa/colloid/gpu requires atom style sphere
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Cannot use newton pair with yukawa/colloid/gpu pair style
|
E: Cannot use newton pair with yukawa/colloid/gpu pair style
|
||||||
|
|
||||||
|
|||||||
@ -137,7 +137,7 @@ void PPPMGPU::init()
|
|||||||
// unsupported option
|
// unsupported option
|
||||||
|
|
||||||
if (differentiation_flag == 1)
|
if (differentiation_flag == 1)
|
||||||
error->all(FLERR,"Cannot (yet) do analytic differentiation with pppm/gpu");
|
error->all(FLERR,"Cannot do analytic differentiation with pppm/gpu");
|
||||||
|
|
||||||
if (strcmp(update->integrate_style,"verlet/split") == 0) {
|
if (strcmp(update->integrate_style,"verlet/split") == 0) {
|
||||||
kspace_split=true;
|
kspace_split=true;
|
||||||
|
|||||||
@ -73,7 +73,7 @@ Self-explanatory.
|
|||||||
|
|
||||||
E: Cannot (yet) do analytic differentiation with pppm/gpu
|
E: Cannot (yet) do analytic differentiation with pppm/gpu
|
||||||
|
|
||||||
UNDOCUMENTED
|
This is a current restriction of this command.
|
||||||
|
|
||||||
E: Cannot use order greater than 8 with pppm/gpu.
|
E: Cannot use order greater than 8 with pppm/gpu.
|
||||||
|
|
||||||
@ -100,8 +100,4 @@ outside a processor's sub-domain or even the entire simulation box.
|
|||||||
This indicates bad physics, e.g. due to highly overlapping atoms, too
|
This indicates bad physics, e.g. due to highly overlapping atoms, too
|
||||||
large a timestep, etc.
|
large a timestep, etc.
|
||||||
|
|
||||||
U: Cannot (yet) do analytic differentiation with pppm/gpu.
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1001,7 +1001,7 @@ void PairKIM::write_descriptor(char** test_descriptor_string)
|
|||||||
{
|
{
|
||||||
// allocate memory
|
// allocate memory
|
||||||
if (*test_descriptor_string != 0)
|
if (*test_descriptor_string != 0)
|
||||||
error->all(FLERR, "test_descriptor_string already allocated.");
|
error->all(FLERR, "Test_descriptor_string already allocated");
|
||||||
// assuming 75 lines at 100 characters each (should be plenty)
|
// assuming 75 lines at 100 characters each (should be plenty)
|
||||||
*test_descriptor_string = new char[100*75];
|
*test_descriptor_string = new char[100*75];
|
||||||
// initialize
|
// initialize
|
||||||
|
|||||||
@ -31,10 +31,10 @@ PairStyle(kim,PairKIM)
|
|||||||
#define LMP_PAIR_KIM_H
|
#define LMP_PAIR_KIM_H
|
||||||
|
|
||||||
// includes from KIM & LAMMPS
|
// includes from KIM & LAMMPS
|
||||||
|
|
||||||
class KIM_API_model;
|
class KIM_API_model;
|
||||||
#include "pair.h"
|
#include "pair.h"
|
||||||
|
|
||||||
|
|
||||||
namespace LAMMPS_NS {
|
namespace LAMMPS_NS {
|
||||||
|
|
||||||
class PairKIM : public Pair {
|
class PairKIM : public Pair {
|
||||||
@ -166,7 +166,7 @@ E: Invalid args for non-hybrid pair coefficients
|
|||||||
|
|
||||||
E: PairKIM only works with 3D problems.
|
E: PairKIM only works with 3D problems.
|
||||||
|
|
||||||
UNDOCUMENTED
|
This is a current restriction of this pair style.
|
||||||
|
|
||||||
E: All pair coeffs are not set
|
E: All pair coeffs are not set
|
||||||
|
|
||||||
@ -203,19 +203,7 @@ W: KIM Model does not provide `particleVirial'; virial per atom will be zero
|
|||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: test_descriptor_string already allocated.
|
E: Test_descriptor_string already allocated
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
U: PairKIM only works with 3D problems
|
|
||||||
|
|
||||||
The KIM API does not explicitly support anything other than 3D problems
|
|
||||||
|
|
||||||
U: Internal KIM error
|
|
||||||
|
|
||||||
Self-explanatory. Check the output and kim.log file for more details.
|
|
||||||
|
|
||||||
U: test_descriptor_string already allocated
|
|
||||||
|
|
||||||
This should not happen. It likely indicates a bug in the pair_kim implementation.
|
This should not happen. It likely indicates a bug in the pair_kim implementation.
|
||||||
|
|
||||||
|
|||||||
@ -158,7 +158,7 @@ void EwaldDisp::init()
|
|||||||
error->warning(FLERR,str);
|
error->warning(FLERR,str);
|
||||||
}
|
}
|
||||||
|
|
||||||
//set accuracy (force units) from accuracy_relative or accuracy_absolute
|
// set accuracy (force units) from accuracy_relative or accuracy_absolute
|
||||||
|
|
||||||
if (accuracy_absolute >= 0.0) accuracy = accuracy_absolute;
|
if (accuracy_absolute >= 0.0) accuracy = accuracy_absolute;
|
||||||
else accuracy = accuracy_relative * two_charge_force;
|
else accuracy = accuracy_relative * two_charge_force;
|
||||||
@ -200,7 +200,6 @@ void EwaldDisp::init()
|
|||||||
peratom_allocate_flag = 0;
|
peratom_allocate_flag = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
adjust EwaldDisp coeffs, called initially and whenever volume has changed
|
adjust EwaldDisp coeffs, called initially and whenever volume has changed
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
@ -212,9 +211,9 @@ void EwaldDisp::setup()
|
|||||||
shape_scalar_mult(unit, 2.0*MY_PI);
|
shape_scalar_mult(unit, 2.0*MY_PI);
|
||||||
unit[2] /= slab_volfactor;
|
unit[2] /= slab_volfactor;
|
||||||
|
|
||||||
//int nbox_old = nbox, nkvec_old = nkvec;
|
// int nbox_old = nbox, nkvec_old = nkvec;
|
||||||
|
|
||||||
if (accuracy>=1) {
|
if (accuracy >= 1) {
|
||||||
nbox = 0;
|
nbox = 0;
|
||||||
error->all(FLERR,"KSpace accuracy too low");
|
error->all(FLERR,"KSpace accuracy too low");
|
||||||
}
|
}
|
||||||
@ -457,7 +456,7 @@ void EwaldDisp::init_coeffs()
|
|||||||
|
|
||||||
if (!(epsilon&&sigma))
|
if (!(epsilon&&sigma))
|
||||||
error->all(
|
error->all(
|
||||||
FLERR,"epsilon or sigma reference not set by pair style in ewald/n");
|
FLERR,"Epsilon or sigma reference not set by pair style in ewald/n");
|
||||||
for (int i=0; i<=n; ++i) {
|
for (int i=0; i<=n; ++i) {
|
||||||
eps_i = sqrt(epsilon[i][i]);
|
eps_i = sqrt(epsilon[i][i]);
|
||||||
sigma_i = sigma[i][i];
|
sigma_i = sigma[i][i];
|
||||||
|
|||||||
@ -108,27 +108,32 @@ This is a current restriction of this command.
|
|||||||
|
|
||||||
E: Cannot use nonperiodic boundaries with EwaldDisp
|
E: Cannot use nonperiodic boundaries with EwaldDisp
|
||||||
|
|
||||||
UNDOCUMENTED
|
For kspace style ewald/disp, all 3 dimensions must have periodic
|
||||||
|
boundaries unless you use the kspace_modify command to define a 2d
|
||||||
|
slab with a non-periodic z dimension.
|
||||||
|
|
||||||
E: Incorrect boundaries with slab EwaldDisp
|
E: Incorrect boundaries with slab EwaldDisp
|
||||||
|
|
||||||
UNDOCUMENTED
|
Must have periodic x,y dimensions and non-periodic z dimension to use
|
||||||
|
2d slab option with Ewald.
|
||||||
|
|
||||||
E: KSpace style is incompatible with Pair style
|
E: KSpace style is incompatible with Pair style
|
||||||
|
|
||||||
UNDOCUMENTED
|
Setting a kspace style requires that a pair style with a long-range
|
||||||
|
Coulombic and Dispersion component be selected.
|
||||||
|
|
||||||
E: Unsupported mixing rule in kspace_style ewald/disp
|
E: Unsupported mixing rule in kspace_style ewald/disp
|
||||||
|
|
||||||
UNDOCUMENTED
|
Only geometric mixing is supported.
|
||||||
|
|
||||||
E: Unsupported order in kspace_style ewald/disp
|
E: Unsupported order in kspace_style ewald/disp
|
||||||
|
|
||||||
UNDOCUMENTED
|
Only 1/r^6 dispersion terms are supported.
|
||||||
|
|
||||||
E: Cannot use Ewald/disp solver on system with no charge or LJ particles
|
E: Cannot use Ewald/disp solver on system with no charge or LJ particles
|
||||||
|
|
||||||
UNDOCUMENTED
|
No atoms in system have a non-zero charge or are LJ particles. Change
|
||||||
|
charges or change options of the kspace solver/pair style.
|
||||||
|
|
||||||
W: System is not charge neutral, net charge = %g
|
W: System is not charge neutral, net charge = %g
|
||||||
|
|
||||||
@ -137,18 +142,19 @@ is not valid for Ewald or PPPM.
|
|||||||
|
|
||||||
E: KSpace accuracy too large to estimate G vector
|
E: KSpace accuracy too large to estimate G vector
|
||||||
|
|
||||||
UNDOCUMENTED
|
Reduce the accuracy request or specify gwald explicitly
|
||||||
|
via the kspace_modify command.
|
||||||
|
|
||||||
W: Ewald/disp Newton solver failed, using old method to estimate g_ewald
|
W: Ewald/disp Newton solver failed, using old method to estimate g_ewald
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: KSpace accuracy too low
|
E: KSpace accuracy too low
|
||||||
|
|
||||||
UNDOCUMENTED
|
Requested accuracy must be less than 1.0.
|
||||||
|
|
||||||
E: epsilon or sigma reference not set by pair style in ewald/n
|
E: Epsilon or sigma reference not set by pair style in ewald/n
|
||||||
|
|
||||||
UNDOCUMENTED
|
The pair style is not providing the needed epsilon or sigma values.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -897,8 +897,7 @@ void MSM::set_grid_global()
|
|||||||
levels = MAX(xlevels,ylevels);
|
levels = MAX(xlevels,ylevels);
|
||||||
levels = MAX(levels,zlevels);
|
levels = MAX(levels,zlevels);
|
||||||
|
|
||||||
if (levels > MAX_LEVELS)
|
if (levels > MAX_LEVELS) error->all(FLERR,"Too many MSM grid levels");
|
||||||
error->all(FLERR,"Too many MSM grid levels");
|
|
||||||
|
|
||||||
// Need at least 2 MSM levels for periodic systems
|
// Need at least 2 MSM levels for periodic systems
|
||||||
|
|
||||||
@ -906,7 +905,8 @@ void MSM::set_grid_global()
|
|||||||
levels = xlevels = ylevels = zlevels = 2;
|
levels = xlevels = ylevels = zlevels = 2;
|
||||||
nx_max = ny_max = nz_max = 2;
|
nx_max = ny_max = nz_max = 2;
|
||||||
if (gridflag)
|
if (gridflag)
|
||||||
error->warning(FLERR,"MSM mesh too small, increasing to 2 points in each direction)");
|
error->warning(FLERR,
|
||||||
|
"MSM mesh too small, increasing to 2 points in each direction");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (adjust_cutoff_flag) {
|
if (adjust_cutoff_flag) {
|
||||||
|
|||||||
@ -193,11 +193,11 @@ adjusted to meet this requirement.
|
|||||||
|
|
||||||
E: Too many MSM grid levels
|
E: Too many MSM grid levels
|
||||||
|
|
||||||
UNDOCUMENTED
|
The max number of MSM grid levels is hardwired to 10.
|
||||||
|
|
||||||
W: MSM mesh too small, increasing to 2 points in each direction)
|
W: MSM mesh too small, increasing to 2 points in each direction)
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
W: Adjusting Coulombic cutoff for MSM, new cutoff = %g
|
W: Adjusting Coulombic cutoff for MSM, new cutoff = %g
|
||||||
|
|
||||||
@ -226,9 +226,4 @@ outside a processor's sub-domain or even the entire simulation box.
|
|||||||
This indicates bad physics, e.g. due to highly overlapping atoms, too
|
This indicates bad physics, e.g. due to highly overlapping atoms, too
|
||||||
large a timestep, etc.
|
large a timestep, etc.
|
||||||
|
|
||||||
U: MSM mesh too small, increasing to 2 points in each direction
|
|
||||||
|
|
||||||
The global MSM grid is too small, so the number of grid points has been
|
|
||||||
increased
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -72,70 +72,4 @@ outside a processor's sub-domain or even the entire simulation box.
|
|||||||
This indicates bad physics, e.g. due to highly overlapping atoms, too
|
This indicates bad physics, e.g. due to highly overlapping atoms, too
|
||||||
large a timestep, etc.
|
large a timestep, etc.
|
||||||
|
|
||||||
U: Cannot (yet) use MSM with triclinic box
|
|
||||||
|
|
||||||
This feature is not yet supported.
|
|
||||||
|
|
||||||
U: Cannot (yet) use MSM with 2d simulation
|
|
||||||
|
|
||||||
This feature is not yet supported.
|
|
||||||
|
|
||||||
U: Kspace style requires atom attribute q
|
|
||||||
|
|
||||||
The atom style defined does not have these attributes.
|
|
||||||
|
|
||||||
U: Cannot use slab correction with MSM
|
|
||||||
|
|
||||||
Slab correction can only be used with Ewald and PPPM, not MSM.
|
|
||||||
|
|
||||||
U: MSM order must be 4, 6, 8, or 10
|
|
||||||
|
|
||||||
This is a limitation of the MSM implementation in LAMMPS:
|
|
||||||
the MSM order can only be 4, 6, 8, or 10.
|
|
||||||
|
|
||||||
U: Cannot (yet) use single precision with MSM (remove -DFFT_SINGLE from Makefile and recompile)
|
|
||||||
|
|
||||||
Single precision cannot be used with MSM.
|
|
||||||
|
|
||||||
U: KSpace style is incompatible with Pair style
|
|
||||||
|
|
||||||
Setting a kspace style requires that a pair style with a long-range
|
|
||||||
Coulombic component be selected that is compatible with MSM. Note
|
|
||||||
that TIP4P is not (yet) supported by MSM.
|
|
||||||
|
|
||||||
U: Cannot use kspace solver on system with no charge
|
|
||||||
|
|
||||||
No atoms in system have a non-zero charge.
|
|
||||||
|
|
||||||
U: System is not charge neutral, net charge = %g
|
|
||||||
|
|
||||||
The total charge on all atoms on the system is not 0.0, which
|
|
||||||
is not valid for MSM.
|
|
||||||
|
|
||||||
U: MSM grid is too large
|
|
||||||
|
|
||||||
The global MSM grid is larger than OFFSET in one or more dimensions.
|
|
||||||
OFFSET is currently set to 16384. You likely need to decrease the
|
|
||||||
requested accuracy.
|
|
||||||
|
|
||||||
U: MSM mesh too small, increasing to 2 points in each direction
|
|
||||||
|
|
||||||
The global MSM grid is too small, so the number of grid points has been
|
|
||||||
increased
|
|
||||||
|
|
||||||
U: KSpace accuracy must be > 0
|
|
||||||
|
|
||||||
The kspace accuracy designated in the input must be greater than zero.
|
|
||||||
|
|
||||||
U: Number of MSM mesh points increased to be a multiple of 2
|
|
||||||
|
|
||||||
MSM requires that the number of grid points in each direction be a multiple
|
|
||||||
of two and the number of grid points in one or more directions have been
|
|
||||||
adjusted to meet this requirement.
|
|
||||||
|
|
||||||
U: Adjusting Coulombic cutoff for MSM, new cutoff = %g
|
|
||||||
|
|
||||||
The adjust/cutoff command is turned on and the Coulombic cutoff has been
|
|
||||||
adjusted to match the user-specified accuracy.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -80,11 +80,6 @@ An atom style that defines this attribute must be used.
|
|||||||
|
|
||||||
E: Pair style requires a KSpace style
|
E: Pair style requires a KSpace style
|
||||||
|
|
||||||
UNDOCUMENTED
|
This pair style is designed for use with a KSpace style.
|
||||||
|
|
||||||
U: Pair style is incompatible with KSpace style
|
|
||||||
|
|
||||||
If a pair style with a long-range Coulombic component is selected,
|
|
||||||
then a kspace style must also be used.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -81,11 +81,6 @@ The atom style defined does not have these attributes.
|
|||||||
|
|
||||||
E: Pair style requres a KSpace style
|
E: Pair style requres a KSpace style
|
||||||
|
|
||||||
UNDOCUMENTED
|
This pair style is designed for use with a KSpace style.
|
||||||
|
|
||||||
U: Pair style is incompatible with KSpace style
|
|
||||||
|
|
||||||
If a pair style with a long-range Coulombic component is selected,
|
|
||||||
then a kspace style must also be used.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -62,10 +62,10 @@ void PairBuckLongCoulLong::options(char **arg, int order)
|
|||||||
const char *option[] = {"long", "cut", "off", NULL};
|
const char *option[] = {"long", "cut", "off", NULL};
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!*arg) error->all(FLERR,"Illegal pair_style buck/coul command");
|
if (!*arg) error->all(FLERR,"Illegal pair_style buck/long/coul/long command");
|
||||||
for (i=0; option[i]&&strcmp(arg[0], option[i]); ++i);
|
for (i=0; option[i]&&strcmp(arg[0], option[i]); ++i);
|
||||||
switch (i) {
|
switch (i) {
|
||||||
default: error->all(FLERR,"Illegal pair_style buck/coul command");
|
default: error->all(FLERR,"Illegal pair_style buck/long/coul/long command");
|
||||||
case 0: ewald_order |= 1<<order; break;
|
case 0: ewald_order |= 1<<order; break;
|
||||||
case 2: ewald_off |= 1<<order;
|
case 2: ewald_off |= 1<<order;
|
||||||
case 1: break;
|
case 1: break;
|
||||||
@ -87,15 +87,15 @@ void PairBuckLongCoulLong::settings(int narg, char **arg)
|
|||||||
if (!comm->me && ewald_order & (1<<6))
|
if (!comm->me && ewald_order & (1<<6))
|
||||||
error->warning(FLERR,"Geometric mixing assumed for 1/r^6 coefficients");
|
error->warning(FLERR,"Geometric mixing assumed for 1/r^6 coefficients");
|
||||||
if (!comm->me && ewald_order == ((1<<1) | (1<<6)))
|
if (!comm->me && ewald_order == ((1<<1) | (1<<6)))
|
||||||
error->warning(FLERR,"Using largest cut-off for buck/coul long long");
|
error->warning(FLERR,"Using largest cutoff for buck/long/coul/long");
|
||||||
if (!*(++arg)) error->all(FLERR,"Cut-offs missing in pair_style buck/coul");
|
if (!*(++arg)) error->all(FLERR,"Cutoffs missing in pair_style buck/long/coul/long");
|
||||||
if (ewald_off & (1<<6))
|
if (ewald_off & (1<<6))
|
||||||
error->all(FLERR,"LJ6 off not supported in pair_style buck/coul");
|
error->all(FLERR,"LJ6 off not supported in pair_style buck/long/coul/long");
|
||||||
if (!((ewald_order^ewald_off) & (1<<1)))
|
if (!((ewald_order^ewald_off) & (1<<1)))
|
||||||
error->all(FLERR,"Coulombic cut not supported in pair_style buck/coul");
|
error->all(FLERR,"Coulomb cut not supported in pair_style buck/long/coul/coul");
|
||||||
cut_buck_global = force->numeric(*(arg++));
|
cut_buck_global = force->numeric(*(arg++));
|
||||||
if (*arg && ((ewald_order & 0x42) == 0x42))
|
if (*arg && ((ewald_order & 0x42) == 0x42))
|
||||||
error->all(FLERR,"Only one cut-off allowed when requesting all long");
|
error->all(FLERR,"Only one cutoff allowed when requesting all long");
|
||||||
if (narg == 4) cut_coul = force->numeric(*arg);
|
if (narg == 4) cut_coul = force->numeric(*arg);
|
||||||
else cut_coul = cut_buck_global;
|
else cut_coul = cut_buck_global;
|
||||||
|
|
||||||
@ -229,8 +229,7 @@ void PairBuckLongCoulLong::init_style()
|
|||||||
// require an atom style with charge defined
|
// require an atom style with charge defined
|
||||||
|
|
||||||
if (!atom->q_flag && (ewald_order&(1<<1)))
|
if (!atom->q_flag && (ewald_order&(1<<1)))
|
||||||
error->all(FLERR,
|
error->all(FLERR,"Pair style buck/long/coul/long requires atom attribute q");
|
||||||
"Invoking coulombic in pair style lj/coul requires atom attribute q");
|
|
||||||
|
|
||||||
// request regular or rRESPA neighbor lists
|
// request regular or rRESPA neighbor lists
|
||||||
|
|
||||||
|
|||||||
@ -73,50 +73,54 @@ class PairBuckLongCoulLong : public Pair {
|
|||||||
|
|
||||||
E: Illegal ... command
|
E: Illegal ... command
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script syntax and compare to the
|
||||||
|
documentation for the command. You can use -echo screen as a
|
||||||
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
W: Geometric mixing assumed for 1/r^6 coefficients
|
W: Geometric mixing assumed for 1/r^6 coefficients
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
W: Using largest cut-off for buck/coul long long
|
W: Using largest cutoff for buck/long/coul/long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-exlanatory.
|
||||||
|
|
||||||
E: Cut-offs missing in pair_style buck/coul
|
E: Cutoffs missing in pair_style buck/long/coul/long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-exlanatory.
|
||||||
|
|
||||||
E: LJ6 off not supported in pair_style buck/coul
|
E: LJ6 off not supported in pair_style buck/long/coul/long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-exlanatory.
|
||||||
|
|
||||||
E: Coulombic cut not supported in pair_style buck/coul
|
E: Coulomb cut not supported in pair_style buck/long/coul/long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Must use long-range Coulombic interactions.
|
||||||
|
|
||||||
E: Only one cut-off allowed when requesting all long
|
E: Only one cutoff allowed when requesting all long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Incorrect args for pair coefficients
|
E: Incorrect args for pair coefficients
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script or data file.
|
||||||
|
|
||||||
E: Invoking coulombic in pair style lj/coul requires atom attribute q
|
E: Pair style buck/long/coul/long requires atom attribute q
|
||||||
|
|
||||||
UNDOCUMENTED
|
The atom style defined does not have this attribute.
|
||||||
|
|
||||||
E: Pair style requires a KSpace style
|
E: Pair style requires a KSpace style
|
||||||
|
|
||||||
UNDOCUMENTED
|
This pair style is designed for use with a KSpace style.
|
||||||
|
|
||||||
E: All pair coeffs are not set
|
E: All pair coeffs are not set
|
||||||
|
|
||||||
UNDOCUMENTED
|
All pair coefficients must be set in the data file or by the
|
||||||
|
pair_coeff command before running a simulation.
|
||||||
|
|
||||||
E: Pair cutoff < Respa interior cutoff
|
E: Pair cutoff < Respa interior cutoff
|
||||||
|
|
||||||
UNDOCUMENTED
|
One or more pairwise cutoffs are too short to use with the specified
|
||||||
|
rRESPA cutoffs.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -72,16 +72,6 @@ The atom style defined does not have this attribute.
|
|||||||
|
|
||||||
E: Pair style requires a KSpace style
|
E: Pair style requires a KSpace style
|
||||||
|
|
||||||
UNDOCUMENTED
|
This pair style is designed for use with a KSpace style.
|
||||||
|
|
||||||
U: Pair cutoff < Respa interior cutoff
|
|
||||||
|
|
||||||
One or more pairwise cutoffs are too short to use with the specified
|
|
||||||
rRESPA cutoffs.
|
|
||||||
|
|
||||||
U: Pair style is incompatible with KSpace style
|
|
||||||
|
|
||||||
If a pair style with a long-range Coulombic component is selected,
|
|
||||||
then a kspace style must also be used.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -99,11 +99,6 @@ rRESPA cutoffs.
|
|||||||
|
|
||||||
E: Pair style requires a KSpace style
|
E: Pair style requires a KSpace style
|
||||||
|
|
||||||
UNDOCUMENTED
|
This pair style is designed for use with a KSpace style.
|
||||||
|
|
||||||
U: Pair style is incompatible with KSpace style
|
|
||||||
|
|
||||||
If a pair style with a long-range Coulombic component is selected,
|
|
||||||
then a kspace style must also be used.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -82,16 +82,11 @@ The atom style defined does not have this attribute.
|
|||||||
|
|
||||||
E: Pair style requires a KSpace style
|
E: Pair style requires a KSpace style
|
||||||
|
|
||||||
UNDOCUMENTED
|
This pair style is designed for use with a KSpace style.
|
||||||
|
|
||||||
E: Pair cutoff < Respa interior cutoff
|
E: Pair cutoff < Respa interior cutoff
|
||||||
|
|
||||||
One or more pairwise cutoffs are too short to use with the specified
|
One or more pairwise cutoffs are too short to use with the specified
|
||||||
rRESPA cutoffs.
|
rRESPA cutoffs.
|
||||||
|
|
||||||
U: Pair style is incompatible with KSpace style
|
|
||||||
|
|
||||||
If a pair style with a long-range Coulombic component is selected,
|
|
||||||
then a kspace style must also be used.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -93,7 +93,7 @@ TIP4P potentials assume bond lengths in water are constrained
|
|||||||
by a fix shake command.
|
by a fix shake command.
|
||||||
|
|
||||||
E: Must use an angle style with TIP4P potential
|
E: Must use an angle style with TIP4P potential
|
||||||
|
d
|
||||||
TIP4P potentials assume angles in water are constrained by a fix shake
|
TIP4P potentials assume angles in water are constrained by a fix shake
|
||||||
command.
|
command.
|
||||||
|
|
||||||
@ -102,9 +102,4 @@ E: Water H epsilon must be 0.0 for pair style lj/cut/coul/long/tip4p
|
|||||||
This is because LAMMPS does not compute the Lennard-Jones interactions
|
This is because LAMMPS does not compute the Lennard-Jones interactions
|
||||||
with these particles for efficiency reasons.
|
with these particles for efficiency reasons.
|
||||||
|
|
||||||
U: Pair style is incompatible with KSpace style
|
|
||||||
|
|
||||||
If a pair style with a long-range Coulombic component is selected,
|
|
||||||
then a kspace style must also be used.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -82,16 +82,16 @@ void PairLJLongCoulLong::settings(int narg, char **arg)
|
|||||||
options(arg, 6);
|
options(arg, 6);
|
||||||
options(++arg, 1);
|
options(++arg, 1);
|
||||||
if (!comm->me && ewald_order & (1<<6))
|
if (!comm->me && ewald_order & (1<<6))
|
||||||
error->warning(FLERR,"Mixing forced for lj coefficients");
|
error->warning(FLERR,"Mixing forced for LJ coefficients");
|
||||||
if (!comm->me && ewald_order == ((1<<1) | (1<<6)))
|
if (!comm->me && ewald_order == ((1<<1) | (1<<6)))
|
||||||
error->warning(FLERR,"Using largest cut-off for lj/coul long long");
|
error->warning(FLERR,"Using largest cutoff for pair_style lj/long/coullong");
|
||||||
if (!*(++arg))
|
if (!*(++arg))
|
||||||
error->all(FLERR,"Cut-offs missing in pair_style lj/coul");
|
error->all(FLERR,"Cutoffs missing in pair_style lj/long/coul/long");
|
||||||
if (!((ewald_order^ewald_off) & (1<<1)))
|
if (!((ewald_order^ewald_off) & (1<<1)))
|
||||||
error->all(FLERR,"Coulombic cut not supported in pair_style lj/coul");
|
error->all(FLERR,"Coulomb cut not supported in pair_style lj/long/coul/long");
|
||||||
cut_lj_global = force->numeric(*(arg++));
|
cut_lj_global = force->numeric(*(arg++));
|
||||||
if (*arg && ((ewald_order & 0x42) == 0x42))
|
if (*arg && ((ewald_order & 0x42) == 0x42))
|
||||||
error->all(FLERR,"Only one cut-off allowed when requesting all long");
|
error->all(FLERR,"Only one cutoff allowed when requesting all long");
|
||||||
if (narg == 4) cut_coul = force->numeric(*arg);
|
if (narg == 4) cut_coul = force->numeric(*arg);
|
||||||
else cut_coul = cut_lj_global;
|
else cut_coul = cut_lj_global;
|
||||||
|
|
||||||
@ -226,8 +226,7 @@ void PairLJLongCoulLong::init_style()
|
|||||||
// require an atom style with charge defined
|
// require an atom style with charge defined
|
||||||
|
|
||||||
if (!atom->q_flag && (ewald_order&(1<<1)))
|
if (!atom->q_flag && (ewald_order&(1<<1)))
|
||||||
error->all(FLERR,
|
error->all(FLERR,"Pair style lj/long/coul/long requires atom attribute q");
|
||||||
"Invoking coulombic in pair style lj/coul requires atom attribute q");
|
|
||||||
|
|
||||||
// request regular or rRESPA neighbor lists
|
// request regular or rRESPA neighbor lists
|
||||||
|
|
||||||
|
|||||||
@ -73,42 +73,45 @@ class PairLJLongCoulLong : public Pair {
|
|||||||
|
|
||||||
E: Illegal ... command
|
E: Illegal ... command
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script syntax and compare to the
|
||||||
|
documentation for the command. You can use -echo screen as a
|
||||||
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
W: Mixing forced for lj coefficients
|
W: Mixing forced for LJ coefficients
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
W: Using largest cut-off for lj/coul long long
|
W: Using largest cutoff for pair_style lj/long/coul/long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Cut-offs missing in pair_style lj/coul
|
E: Cutoffs missing in pair_style lj/long/coul/long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Coulombic cut not supported in pair_style lj/coul
|
E: Coulomb cut not supported in pair_style lj/long/coul/long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Must use long-range Coulombic interactions.
|
||||||
|
|
||||||
E: Only one cut-off allowed when requesting all long
|
E: Only one cutoff allowed when requesting all long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Incorrect args for pair coefficients
|
E: Incorrect args for pair coefficients
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script or data file.
|
||||||
|
|
||||||
E: Invoking coulombic in pair style lj/coul requires atom attribute q
|
E: Pair style lj/long/coul/long requires atom attribute q
|
||||||
|
|
||||||
UNDOCUMENTED
|
The atom style defined does not have this attribute.
|
||||||
|
|
||||||
E: Pair style requires a KSpace style
|
E: Pair style requires a KSpace style
|
||||||
|
|
||||||
UNDOCUMENTED
|
This pair style is designed for use with a KSpace style.
|
||||||
|
|
||||||
E: Pair cutoff < Respa interior cutoff
|
E: Pair cutoff < Respa interior cutoff
|
||||||
|
|
||||||
UNDOCUMENTED
|
One or more pairwise cutoffs are too short to use with the specified
|
||||||
|
rRESPA cutoffs.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -452,9 +452,9 @@ void PairLJLongTIP4PLong::settings(int narg, char **arg)
|
|||||||
if (!comm->me && ewald_order&(1<<6))
|
if (!comm->me && ewald_order&(1<<6))
|
||||||
error->warning(FLERR,"Mixing forced for lj coefficients");
|
error->warning(FLERR,"Mixing forced for lj coefficients");
|
||||||
if (!comm->me && ewald_order==((1<<1)|(1<<6)))
|
if (!comm->me && ewald_order==((1<<1)|(1<<6)))
|
||||||
error->warning(FLERR,"Using largest cut-off for lj/coul long long");
|
error->warning(FLERR,"Using largest cutoff for pair_style lj/long/tip4p/long");
|
||||||
if (!((ewald_order^ewald_off)&(1<<1)))
|
if (!((ewald_order^ewald_off)&(1<<1)))
|
||||||
error->all(FLERR,"Coulombic cut not supported in pair_style lj/coul");
|
error->all(FLERR,"Coulombic cut not supported in pair_style lj/long/tip4p/long");
|
||||||
typeO = force->inumeric(arg[1]);
|
typeO = force->inumeric(arg[1]);
|
||||||
typeH = force->inumeric(arg[2]);
|
typeH = force->inumeric(arg[2]);
|
||||||
typeB = force->inumeric(arg[3]);
|
typeB = force->inumeric(arg[3]);
|
||||||
@ -484,11 +484,11 @@ void PairLJLongTIP4PLong::settings(int narg, char **arg)
|
|||||||
void PairLJLongTIP4PLong::init_style()
|
void PairLJLongTIP4PLong::init_style()
|
||||||
{
|
{
|
||||||
if (atom->tag_enable == 0)
|
if (atom->tag_enable == 0)
|
||||||
error->all(FLERR,"Pair style lj/coul/tip4p requires atom IDs");
|
error->all(FLERR,"Pair style lj/long/tip4p/long requires atom IDs");
|
||||||
if (!force->newton_pair)
|
if (!force->newton_pair)
|
||||||
error->all(FLERR,"Pair style lj/coul/tip4p requires newton pair on");
|
error->all(FLERR,"Pair style lj/long/tip4p/long requires newton pair on");
|
||||||
if (!atom->q_flag)
|
if (!atom->q_flag)
|
||||||
error->all(FLERR,"Pair style lj/coul/tip4p requires atom attribute q");
|
error->all(FLERR,"Pair style lj/long/tip4p/long requires atom attribute q");
|
||||||
if (force->bond == NULL)
|
if (force->bond == NULL)
|
||||||
error->all(FLERR,"Must use a bond style with TIP4P potential");
|
error->all(FLERR,"Must use a bond style with TIP4P potential");
|
||||||
if (force->angle == NULL)
|
if (force->angle == NULL)
|
||||||
@ -517,7 +517,7 @@ double PairLJLongTIP4PLong::init_one(int i, int j)
|
|||||||
|
|
||||||
if ((i == typeH && epsilon[i][i] != 0.0))
|
if ((i == typeH && epsilon[i][i] != 0.0))
|
||||||
error->all(FLERR,"Water H epsilon must be 0.0 for "
|
error->all(FLERR,"Water H epsilon must be 0.0 for "
|
||||||
"pair style lj/coul/tip4p");
|
"pair style lj/long/tip4p/long");
|
||||||
|
|
||||||
if (i == typeH || j == typeH)
|
if (i == typeH || j == typeH)
|
||||||
cut_ljsq[j][i] = cut_ljsq[i][j] = 0.0;
|
cut_ljsq[j][i] = cut_ljsq[i][j] = 0.0;
|
||||||
|
|||||||
@ -76,27 +76,29 @@ command-line option when running LAMMPS to see the offending line.
|
|||||||
|
|
||||||
W: Mixing forced for lj coefficients
|
W: Mixing forced for lj coefficients
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
W: Using largest cut-off for lj/coul long long
|
W: Using largest cutoff for pair_style lj/long/tip4p/long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Coulombic cut not supported in pair_style lj/coul
|
E: Coulomb cut not supported in pair_style lj/long/tip4p/long
|
||||||
|
|
||||||
UNDOCUMENTED
|
Must use long-range Coulombic interactions.
|
||||||
|
|
||||||
E: Pair style lj/coul/tip4p requires atom IDs
|
E: Pair style lj/long/tip4p/long requires atom IDs
|
||||||
|
|
||||||
UNDOCUMENTED
|
There are no atom IDs defined in the system and the TIP4P potential
|
||||||
|
requires them to find O,H atoms with a water molecule.
|
||||||
|
|
||||||
E: Pair style lj/coul/tip4p requires newton pair on
|
E: Pair style lj/long/tip4p/long requires newton pair on
|
||||||
|
|
||||||
UNDOCUMENTED
|
This is because the computation of constraint forces within a water
|
||||||
|
molecule adds forces to atoms owned by other processors.
|
||||||
|
|
||||||
E: Pair style lj/coul/tip4p requires atom attribute q
|
E: Pair style lj/long/tip4p/long requires atom attribute q
|
||||||
|
|
||||||
UNDOCUMENTED
|
The atom style defined does not have these attributes.
|
||||||
|
|
||||||
E: Must use a bond style with TIP4P potential
|
E: Must use a bond style with TIP4P potential
|
||||||
|
|
||||||
@ -108,27 +110,9 @@ E: Must use an angle style with TIP4P potential
|
|||||||
TIP4P potentials assume angles in water are constrained by a fix shake
|
TIP4P potentials assume angles in water are constrained by a fix shake
|
||||||
command.
|
command.
|
||||||
|
|
||||||
E: Water H epsilon must be 0.0 for pair style lj/coul/tip4p
|
E: Water H epsilon must be 0.0 for pair style lj/long/tip4p/long
|
||||||
|
|
||||||
UNDOCUMENTED
|
This is because LAMMPS does not compute the Lennard-Jones interactions
|
||||||
|
with these particles for efficiency reasons.
|
||||||
U: Pair style lj/cut/coul/long/tip4p requires atom IDs
|
|
||||||
|
|
||||||
There are no atom IDs defined in the system and the TIP4P potential
|
|
||||||
requires them to find O,H atoms with a water molecule.
|
|
||||||
|
|
||||||
U: Pair style lj/cut/coul/long/tip4p requires newton pair on
|
|
||||||
|
|
||||||
This is because the computation of constraint forces within a water
|
|
||||||
molecule adds forces to atoms owned by other processors.
|
|
||||||
|
|
||||||
U: Pair style lj/cut/coul/long/tip4p requires atom attribute q
|
|
||||||
|
|
||||||
The atom style defined does not have these attributes.
|
|
||||||
|
|
||||||
U: Pair style is incompatible with KSpace style
|
|
||||||
|
|
||||||
If a pair style with a long-range Coulombic component is selected,
|
|
||||||
then a kspace style must also be used.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -909,7 +909,7 @@ void PPPM::set_grid_global()
|
|||||||
// too many loops have been performed
|
// too many loops have been performed
|
||||||
|
|
||||||
if (df_kspace <= accuracy) break;
|
if (df_kspace <= accuracy) break;
|
||||||
if (count > 500) error->all(FLERR, "Could not compute grid size!");
|
if (count > 500) error->all(FLERR, "Could not compute grid size");
|
||||||
h *= 0.95;
|
h *= 0.95;
|
||||||
h_x = h_y = h_z = h;
|
h_x = h_y = h_z = h;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -258,23 +258,27 @@ is not valid for Ewald or PPPM.
|
|||||||
|
|
||||||
W: Reducing PPPM order b/c stencil extends beyond nearest neighbor processor
|
W: Reducing PPPM order b/c stencil extends beyond nearest neighbor processor
|
||||||
|
|
||||||
UNDOCUMENTED
|
This may lead to a larger grid than desired. See the kspace_modify overlap
|
||||||
|
command to prevent changing of the PPPM order.
|
||||||
|
|
||||||
E: PPPM order < minimum allowed order
|
E: PPPM order < minimum allowed order
|
||||||
|
|
||||||
UNDOCUMENTED
|
The default minimum order is 2. This can be reset by the
|
||||||
|
kspace_modify minorder command.
|
||||||
|
|
||||||
E: PPPM grid stencil extends beyond nearest neighbor processor
|
E: PPPM grid stencil extends beyond nearest neighbor processor
|
||||||
|
|
||||||
UNDOCUMENTED
|
This is not allowed if the kspace_modify overlap setting is no.
|
||||||
|
|
||||||
E: KSpace accuracy must be > 0
|
E: KSpace accuracy must be > 0
|
||||||
|
|
||||||
The kspace accuracy designated in the input must be greater than zero.
|
The kspace accuracy designated in the input must be greater than zero.
|
||||||
|
|
||||||
E: Could not compute grid size!
|
E: Could not compute grid size
|
||||||
|
|
||||||
UNDOCUMENTED
|
The code is unable to compute a grid size consistent with the desired
|
||||||
|
accuracy. This error should not occur for typical problems. Please
|
||||||
|
send an email to the developers.
|
||||||
|
|
||||||
E: PPPM grid is too large
|
E: PPPM grid is too large
|
||||||
|
|
||||||
@ -284,7 +288,9 @@ requested accuracy.
|
|||||||
|
|
||||||
E: Could not compute g_ewald
|
E: Could not compute g_ewald
|
||||||
|
|
||||||
UNDOCUMENTED
|
The Newton-Raphson solver failed to converge to a good value for
|
||||||
|
g_ewald. This error should not occur for typical problems. Please
|
||||||
|
send an email to the developers.
|
||||||
|
|
||||||
E: Out of range atoms - cannot compute PPPM
|
E: Out of range atoms - cannot compute PPPM
|
||||||
|
|
||||||
@ -306,21 +312,4 @@ E: Cannot (yet) use K-space slab correction with compute group/group
|
|||||||
|
|
||||||
This option is not yet supported.
|
This option is not yet supported.
|
||||||
|
|
||||||
U: Reducing PPPM order b/c stencil extends beyond neighbor processor
|
|
||||||
|
|
||||||
LAMMPS is attempting this in order to allow the simulation
|
|
||||||
to run. It should not effect the PPPM accuracy.
|
|
||||||
|
|
||||||
U: PPPM order has been reduced to 0
|
|
||||||
|
|
||||||
LAMMPS has attempted to reduce the PPPM order to enable the simulation
|
|
||||||
to run, but can reduce the order no further. Try increasing the
|
|
||||||
accuracy of PPPM by reducing the tolerance size, thus inducing a
|
|
||||||
larger PPPM grid.
|
|
||||||
|
|
||||||
U: Cannot compute PPPM G
|
|
||||||
|
|
||||||
LAMMPS failed to compute a valid approximation for the PPPM g_ewald
|
|
||||||
factor that partitions the computation between real space and k-space.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -276,24 +276,28 @@ void PPPMDisp::init()
|
|||||||
case 6:
|
case 6:
|
||||||
if (ewald_mix==GEOMETRIC) { k = 1; break; }
|
if (ewald_mix==GEOMETRIC) { k = 1; break; }
|
||||||
else if (ewald_mix==ARITHMETIC) { k = 2; break; }
|
else if (ewald_mix==ARITHMETIC) { k = 2; break; }
|
||||||
sprintf(str, "Unsupported mixing rule in kspace_style pppm/disp for pair_style %s", force->pair_style);
|
sprintf(str,"Unsupported mixing rule in "
|
||||||
|
"kspace_style pppm/disp for pair_style %s", force->pair_style);
|
||||||
error->all(FLERR,str);
|
error->all(FLERR,str);
|
||||||
default:
|
default:
|
||||||
sprintf(str, "Unsupported order in kspace_style pppm/disp pair_style %s", force->pair_style);
|
sprintf(str, "Unsupported order in "
|
||||||
|
"kspace_style pppm/disp pair_style %s", force->pair_style);
|
||||||
error->all(FLERR,str);
|
error->all(FLERR,str);
|
||||||
}
|
}
|
||||||
function[k] = 1;
|
function[k] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// warn, if function[0] is not set but charge attribute is set!
|
// warn, if function[0] is not set but charge attribute is set
|
||||||
|
|
||||||
if (!function[0] && atom->q_flag && me == 0) {
|
if (!function[0] && atom->q_flag && me == 0) {
|
||||||
char str[128];
|
char str[128];
|
||||||
sprintf(str, "Charges are set, but coulombic solver is not used");
|
sprintf(str, "Charges are set, but coulombic solver is not used");
|
||||||
error->warning(FLERR, str);
|
error->warning(FLERR, str);
|
||||||
}
|
}
|
||||||
|
|
||||||
// compute qsum & qsqsum, if function[0] is set, print error if no charges are set or warn if not charge-neutral
|
// compute qsum & qsqsum, if function[0] is set
|
||||||
|
// print error if no charges are set or warn if not charge-neutral
|
||||||
|
|
||||||
if (function[0]) {
|
if (function[0]) {
|
||||||
if (!atom->q_flag) error->all(FLERR,"Kspace style with selected options requires atom attribute q");
|
if (!atom->q_flag) error->all(FLERR,"Kspace style with selected options requires atom attribute q");
|
||||||
@ -414,7 +418,7 @@ void PPPMDisp::init()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (order < minorder)
|
if (order < minorder)
|
||||||
error->all(FLERR,"Coulomb PPPMDisp order has been reduced below minorder");
|
error->all(FLERR,"Coulomb PPPMDisp order < minimum allowed order");
|
||||||
if (cgtmp) delete cgtmp;
|
if (cgtmp) delete cgtmp;
|
||||||
|
|
||||||
// adjust g_ewald
|
// adjust g_ewald
|
||||||
@ -1160,7 +1164,7 @@ void PPPMDisp::init_coeffs() // local pair coeffs
|
|||||||
//cannot use sigma, because this has not been set yet
|
//cannot use sigma, because this has not been set yet
|
||||||
double **sigma = (double **) force->pair->extract("sigma",tmp);
|
double **sigma = (double **) force->pair->extract("sigma",tmp);
|
||||||
if (!(epsilon&&sigma))
|
if (!(epsilon&&sigma))
|
||||||
error->all(FLERR,"epsilon or sigma reference not set by pair style in PPPMDisp");
|
error->all(FLERR,"Epsilon or sigma reference not set by pair style in PPPMDisp");
|
||||||
double eps_i, sigma_i, sigma_n, *bi = B = new double[7*n+7];
|
double eps_i, sigma_i, sigma_n, *bi = B = new double[7*n+7];
|
||||||
double c[7] = {
|
double c[7] = {
|
||||||
1.0, sqrt(6.0), sqrt(15.0), sqrt(20.0), sqrt(15.0), sqrt(6.0), 1.0};
|
1.0, sqrt(6.0), sqrt(15.0), sqrt(20.0), sqrt(15.0), sqrt(6.0), 1.0};
|
||||||
@ -2008,7 +2012,8 @@ void PPPMDisp::set_grid()
|
|||||||
|
|
||||||
// break loop if the accuracy has been reached or too many loops have been performed
|
// break loop if the accuracy has been reached or too many loops have been performed
|
||||||
if (dfkspace <= accuracy) break;
|
if (dfkspace <= accuracy) break;
|
||||||
if (count > 500) error->all(FLERR, "Could not compute grid size for Coulomb interaction!");
|
if (count > 500)
|
||||||
|
error->all(FLERR,"Could not compute grid size for Coulomb interaction");
|
||||||
h *= 0.95;
|
h *= 0.95;
|
||||||
h_x = h_y = h_z = h;
|
h_x = h_y = h_z = h;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,7 +35,6 @@ typedef double FFT_SCALAR;
|
|||||||
|
|
||||||
namespace LAMMPS_NS {
|
namespace LAMMPS_NS {
|
||||||
|
|
||||||
|
|
||||||
#define EWALD_MAXORDER 6
|
#define EWALD_MAXORDER 6
|
||||||
#define EWALD_FUNCS 3
|
#define EWALD_FUNCS 3
|
||||||
|
|
||||||
@ -100,7 +99,6 @@ Variables needed for calculating the 1/r and 1/r^6 potential
|
|||||||
int *com_each, *com_order;
|
int *com_each, *com_order;
|
||||||
FFT_SCALAR *split_1, *split_2;
|
FFT_SCALAR *split_1, *split_2;
|
||||||
|
|
||||||
|
|
||||||
//// the following variables are needed for every structure factor
|
//// the following variables are needed for every structure factor
|
||||||
FFT_SCALAR ***density_brick;
|
FFT_SCALAR ***density_brick;
|
||||||
FFT_SCALAR ***vdx_brick,***vdy_brick,***vdz_brick;
|
FFT_SCALAR ***vdx_brick,***vdy_brick,***vdz_brick;
|
||||||
@ -183,7 +181,6 @@ Variables needed for calculating the 1/r and 1/r^6 potential
|
|||||||
FFT_SCALAR *work1,*work2;
|
FFT_SCALAR *work1,*work2;
|
||||||
FFT_SCALAR *work1_6, *work2_6;
|
FFT_SCALAR *work1_6, *work2_6;
|
||||||
|
|
||||||
|
|
||||||
class FFT3d *fft1,*fft2 ;
|
class FFT3d *fft1,*fft2 ;
|
||||||
class FFT3d *fft1_6, *fft2_6;
|
class FFT3d *fft1_6, *fft2_6;
|
||||||
class Remap *remap;
|
class Remap *remap;
|
||||||
@ -361,23 +358,27 @@ command-line option when running LAMMPS to see the offending line.
|
|||||||
|
|
||||||
E: Cannot (yet) use PPPMDisp with triclinic box
|
E: Cannot (yet) use PPPMDisp with triclinic box
|
||||||
|
|
||||||
UNDOCUMENTED
|
This feature is not yet supported.
|
||||||
|
|
||||||
E: Cannot use PPPMDisp with 2d simulation
|
E: Cannot use PPPMDisp with 2d simulation
|
||||||
|
|
||||||
UNDOCUMENTED
|
The kspace style pppm/disp cannot be used in 2d simulations. You can
|
||||||
|
use 2d PPPM in a 3d simulation; see the kspace_modify command.
|
||||||
|
|
||||||
E: Cannot use nonperiodic boundaries with PPPMDisp
|
E: Cannot use nonperiodic boundaries with PPPMDisp
|
||||||
|
|
||||||
UNDOCUMENTED
|
For kspace style pppm/disp, all 3 dimensions must have periodic
|
||||||
|
boundaries unless you use the kspace_modify command to define a 2d
|
||||||
|
slab with a non-periodic z dimension.
|
||||||
|
|
||||||
E: Incorrect boundaries with slab PPPMDisp
|
E: Incorrect boundaries with slab PPPMDisp
|
||||||
|
|
||||||
UNDOCUMENTED
|
Must have periodic x,y dimensions and non-periodic z dimension to use
|
||||||
|
2d slab option with PPPM.
|
||||||
|
|
||||||
E: PPPMDisp coulomb order cannot be greater than %d
|
E: PPPMDisp coulomb order cannot be greater than %d
|
||||||
|
|
||||||
UNDOCUMENTED
|
This is a limitation of the PPPM implementation in LAMMPS.
|
||||||
|
|
||||||
E: KSpace style is incompatible with Pair style
|
E: KSpace style is incompatible with Pair style
|
||||||
|
|
||||||
@ -386,15 +387,16 @@ Coulombic and Dispersion component be selected.
|
|||||||
|
|
||||||
E: Unsupported mixing rule in kspace_style pppm/disp for pair_style %s
|
E: Unsupported mixing rule in kspace_style pppm/disp for pair_style %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
Only geometric mixing is supported.
|
||||||
|
|
||||||
E: Unsupported order in kspace_style pppm/disp pair_style %s
|
E: Unsupported order in kspace_style pppm/disp pair_style %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
Only 1/r^6 dispersion terms are supported.
|
||||||
|
|
||||||
W: Charges are set, but coulombic solver is not used
|
W: Charges are set, but coulombic solver is not used
|
||||||
|
|
||||||
UNDOCUMENTED
|
The atom style supports charge, but this KSpace style does not include
|
||||||
|
long-range Coulombics.
|
||||||
|
|
||||||
E: Kspace style with selected options requires atom attribute q
|
E: Kspace style with selected options requires atom attribute q
|
||||||
|
|
||||||
@ -418,59 +420,74 @@ are defined.
|
|||||||
|
|
||||||
E: Bad TIP4P angle type for PPPMDisp/TIP4P
|
E: Bad TIP4P angle type for PPPMDisp/TIP4P
|
||||||
|
|
||||||
UNDOCUMENTED
|
Specified angle type is not valid.
|
||||||
|
|
||||||
E: Bad TIP4P bond type for PPPMDisp/TIP4P
|
E: Bad TIP4P bond type for PPPMDisp/TIP4P
|
||||||
|
|
||||||
UNDOCUMENTED
|
Specified bond type is not valid.
|
||||||
|
|
||||||
W: Reducing PPPMDisp Coulomb order b/c stencil extends beyond neighbor processor.
|
W: Reducing PPPMDisp Coulomb order b/c stencil extends beyond neighbor processor.
|
||||||
|
|
||||||
UNDOCUMENTED
|
This may lead to a larger grid than desired. See the kspace_modify overlap
|
||||||
|
command to prevent changing of the PPPM order.
|
||||||
|
|
||||||
E: PPPMDisp Coulomb grid is too large
|
E: PPPMDisp Coulomb grid is too large
|
||||||
|
|
||||||
UNDOCUMENTED
|
The global PPPM grid is larger than OFFSET in one or more dimensions.
|
||||||
|
OFFSET is currently set to 4096. You likely need to decrease the
|
||||||
|
requested accuracy.
|
||||||
|
|
||||||
E: Coulomb PPPMDisp order has been reduced below minorder
|
E: Coulomb PPPMDisp order < minimum allowed order
|
||||||
|
|
||||||
UNDOCUMENTED
|
The default minimum order is 2. This can be reset by the
|
||||||
|
kspace_modify minorder command.
|
||||||
|
|
||||||
W: Reducing PPPMDisp Dispersion order b/c stencil extends beyond neighbor processor
|
W: Reducing PPPMDisp Dispersion order b/c stencil extends beyond neighbor processor
|
||||||
|
|
||||||
UNDOCUMENTED
|
This may lead to a larger grid than desired. See the kspace_modify overlap
|
||||||
|
command to prevent changing of the PPPM order.
|
||||||
|
|
||||||
E: PPPMDisp Dispersion grid is too large
|
E: PPPMDisp Dispersion grid is too large
|
||||||
|
|
||||||
UNDOCUMENTED
|
The global dispersion grid is larger than OFFSET in one or more
|
||||||
|
dimensions. OFFSET is currently set to 4096. You likely need to
|
||||||
|
decrease the requested accuracy.
|
||||||
|
|
||||||
E: Dispersion PPPMDisp order has been reduced below minorder
|
E: Dispersion PPPMDisp order has been reduced below minorder
|
||||||
|
|
||||||
UNDOCUMENTED
|
This may lead to a larger grid than desired. See the kspace_modify overlap
|
||||||
|
command to prevent changing of the dipsersion order.
|
||||||
|
|
||||||
E: PPPM grid stencil extends beyond nearest neighbor processor
|
E: PPPM grid stencil extends beyond nearest neighbor processor
|
||||||
|
|
||||||
UNDOCUMENTED
|
This is not allowed if the kspace_modify overlap setting is no.
|
||||||
|
|
||||||
E: epsilon or sigma reference not set by pair style in PPPMDisp
|
E: Epsilon or sigma reference not set by pair style in PPPMDisp
|
||||||
|
|
||||||
UNDOCUMENTED
|
The pair style is not providing the needed epsilon or sigma values.
|
||||||
|
|
||||||
E: KSpace accuracy too large to estimate G vector
|
E: KSpace accuracy too large to estimate G vector
|
||||||
|
|
||||||
UNDOCUMENTED
|
Reduce the accuracy request or specify gwald explicitly
|
||||||
|
via the kspace_modify command.
|
||||||
|
|
||||||
E: Could not compute grid size for Coulomb interaction!
|
E: Could not compute grid size for Coulomb interaction
|
||||||
|
|
||||||
UNDOCUMENTED
|
The code is unable to compute a grid size consistent with the desired
|
||||||
|
accuracy. This error should not occur for typical problems. Please
|
||||||
|
send an email to the developers.
|
||||||
|
|
||||||
E: Could not compute g_ewald
|
E: Could not compute g_ewald
|
||||||
|
|
||||||
UNDOCUMENTED
|
The Newton-Raphson solver failed to converge to a good value for
|
||||||
|
g_ewald. This error should not occur for typical problems. Please
|
||||||
|
send an email to the developers.
|
||||||
|
|
||||||
E: Could not adjust g_ewald_6
|
E: Could not adjust g_ewald_6
|
||||||
|
|
||||||
UNDOCUMENTED
|
The Newton-Raphson solver failed to converge to a good value for
|
||||||
|
g_ewald_6. This error should not occur for typical problems. Please
|
||||||
|
send an email to the developers.
|
||||||
|
|
||||||
E: Cannot compute initial g_ewald_disp
|
E: Cannot compute initial g_ewald_disp
|
||||||
|
|
||||||
@ -478,114 +495,15 @@ LAMMPS failed to compute an initial guess for the PPPM_disp g_ewald_6
|
|||||||
factor that partitions the computation between real space and k-space
|
factor that partitions the computation between real space and k-space
|
||||||
for Disptersion interactions.
|
for Disptersion interactions.
|
||||||
|
|
||||||
E: Could not compute grid size for Dispersion!
|
E: Could not compute grid size for dispersion
|
||||||
|
|
||||||
UNDOCUMENTED
|
The code is unable to compute a grid size consistent with the desired
|
||||||
|
accuracy. This error should not occur for typical problems. Please
|
||||||
|
send an email to the developers.
|
||||||
|
|
||||||
E: Out of range atoms - cannot compute PPPMDisp
|
E: Out of range atoms - cannot compute PPPMDisp
|
||||||
|
|
||||||
UNDOCUMENTED
|
One or more atoms are attempting to map their charge to a PPPM grid
|
||||||
|
|
||||||
U: Cannot (yet) use PPPM_disp with triclinic box
|
|
||||||
|
|
||||||
This feature is not yet supported.
|
|
||||||
|
|
||||||
U: Cannot use PPPM_disp with 2d simulation
|
|
||||||
|
|
||||||
The kspace style pppm_disp cannot be used in 2d simulations. You can use
|
|
||||||
2d PPPM_disp in a 3d simulation; see the kspace_modify command.
|
|
||||||
|
|
||||||
U: Cannot use nonperiodic boundaries with PPPM_disp
|
|
||||||
|
|
||||||
For kspace style pppm_disp, all 3 dimensions must have periodic boundaries
|
|
||||||
unless you use the kspace_modify command to define a 2d slab with a
|
|
||||||
non-periodic z dimension.
|
|
||||||
|
|
||||||
U: Incorrect boundaries with slab PPPM_disp
|
|
||||||
|
|
||||||
Must have periodic x,y dimensions and non-periodic z dimension to use
|
|
||||||
2d slab option with PPPM_disp.
|
|
||||||
|
|
||||||
U: PPPM_disp coulomb order cannot be greater than %d
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
U: PPPM_disp dispersion order cannot be greater than %d
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
U: Unsupported mixing rule in kspace_style pppm_disp for pair_style %s
|
|
||||||
|
|
||||||
PPPM_disp requires arithemtic or geometric mixing rules.
|
|
||||||
|
|
||||||
U: Unsupported order in kspace_style pppm_disp pair_style %s
|
|
||||||
|
|
||||||
PPPM_disp only works for 1/r and 1/r^6 potentials
|
|
||||||
|
|
||||||
U: Charges are set, but coulombic long-range solver is not used.
|
|
||||||
|
|
||||||
Charges have been specified, however, calculations are performed
|
|
||||||
as if they were zero.
|
|
||||||
|
|
||||||
U: Bad TIP4P angle type for PPPM_disp/TIP4P
|
|
||||||
|
|
||||||
Specified angle type is not valid.
|
|
||||||
|
|
||||||
U: Bad TIP4P bond type for PPPM_disp/TIP4P
|
|
||||||
|
|
||||||
Specified bond type is not valid.
|
|
||||||
|
|
||||||
U: Reducing PPPM_disp Coulomb order b/c stencil extends beyond neighbor processor
|
|
||||||
|
|
||||||
LAMMPS is attempting this in order to allow the simulation
|
|
||||||
to run. It should not effect the PPPM_disp accuracy.
|
|
||||||
|
|
||||||
U: Reducing PPPM_disp Dispersion order b/c stencil extends beyond neighbor processor
|
|
||||||
|
|
||||||
LAMMPS is attempting this in order to allow the simulation
|
|
||||||
to run. It should not effect the PPPM_disp accuracy.
|
|
||||||
|
|
||||||
U: PPPM_disp Coulomb grid is too large
|
|
||||||
|
|
||||||
The global PPPM_disp grid for Coulomb interactions is larger than OFFSET in one or more dimensions.
|
|
||||||
OFFSET is currently set to 16384. You likely need to decrease the
|
|
||||||
requested precision.
|
|
||||||
|
|
||||||
U: PPPM_grid Dispersion grid is too large
|
|
||||||
|
|
||||||
One of the PPPM_disp grids for Dispersion interactions is larger than OFFSET in one or more dimensions.
|
|
||||||
OFFSET is currently set to 16384. You likely need to decrease the
|
|
||||||
requested precision.
|
|
||||||
|
|
||||||
U: Coulomb PPPM_disp order has been reduced to 0
|
|
||||||
|
|
||||||
LAMMPS has attempted to reduce the PPPM_disp coulomb order to enable the simulation
|
|
||||||
to run, but can reduce the order no further. Try increasing the
|
|
||||||
accuracy of PPPM_disp coulomb by reducing the tolerance size, thus inducing a
|
|
||||||
larger PPPM_disp coulomb grid.
|
|
||||||
|
|
||||||
U: Dispersion PPPM_disp order has been reduced to 0
|
|
||||||
|
|
||||||
LAMMPS has attempted to reduce the PPPM_disp dispersion order to enable the simulation
|
|
||||||
to run, but can reduce the order no further. Try increasing the
|
|
||||||
accuracy of PPPM_disp dispersion by reducing the tolerance size, thus inducing a
|
|
||||||
larger PPPM_disp dispersion grid.
|
|
||||||
|
|
||||||
U: Cannot compute PPPM_disp g_ewald
|
|
||||||
|
|
||||||
LAMMPS failed to compute a valid approximation for the PPPM_disp g_ewald
|
|
||||||
factor that partitions the computation between real space and k-space
|
|
||||||
for Coulomb interactions.
|
|
||||||
|
|
||||||
U: Cannot compute final g_ewald_disp
|
|
||||||
|
|
||||||
LAMMPS failed to compute a final value for the PPPM_disp g_ewald_6
|
|
||||||
factor that partitions the computation between real space and k-space
|
|
||||||
for Disptersion interactions.
|
|
||||||
|
|
||||||
U: Out of range atoms - cannot compute PPPM_disp
|
|
||||||
|
|
||||||
One or more atoms are attempting to map their charge to a PPPM_disp grid
|
|
||||||
point that is not owned by a processor. This is likely for one of two
|
point that is not owned by a processor. This is likely for one of two
|
||||||
reasons, both of them bad. First, it may mean that an atom near the
|
reasons, both of them bad. First, it may mean that an atom near the
|
||||||
boundary of a processor's sub-domain has moved more than 1/2 the
|
boundary of a processor's sub-domain has moved more than 1/2 the
|
||||||
|
|||||||
@ -52,7 +52,7 @@ class PPPMDispTIP4P : public PPPMDisp {
|
|||||||
|
|
||||||
E: Kspace style pppm/disp/tip4p requires newton on
|
E: Kspace style pppm/disp/tip4p requires newton on
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Out of range atoms - cannot compute PPPM
|
E: Out of range atoms - cannot compute PPPM
|
||||||
|
|
||||||
@ -80,8 +80,4 @@ E: TIP4P hydrogen has incorrect atom type
|
|||||||
The TIP4P pairwise computation found an H atom whose type does not
|
The TIP4P pairwise computation found an H atom whose type does not
|
||||||
agree with the specified H type.
|
agree with the specified H type.
|
||||||
|
|
||||||
U: Kspace style pppm/tip4p requires newton on
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -47,7 +47,7 @@ using namespace MathConst;
|
|||||||
FixGCMC::FixGCMC(LAMMPS *lmp, int narg, char **arg) :
|
FixGCMC::FixGCMC(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Fix(lmp, narg, arg)
|
Fix(lmp, narg, arg)
|
||||||
{
|
{
|
||||||
if (narg < 11) error->all(FLERR,"Illegal fix GCMC command");
|
if (narg < 11) error->all(FLERR,"Illegal fix gcmc command");
|
||||||
|
|
||||||
vector_flag = 1;
|
vector_flag = 1;
|
||||||
size_vector = 8;
|
size_vector = 8;
|
||||||
@ -67,12 +67,12 @@ FixGCMC::FixGCMC(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
chemical_potential = atof(arg[9]);
|
chemical_potential = atof(arg[9]);
|
||||||
displace = atof(arg[10]);
|
displace = atof(arg[10]);
|
||||||
|
|
||||||
if (nexchanges < 0) error->all(FLERR,"Illegal fix GCMC command");
|
if (nexchanges < 0) error->all(FLERR,"Illegal fix gcmc command");
|
||||||
if (nmcmoves < 0) error->all(FLERR,"Illegal fix GCMC command");
|
if (nmcmoves < 0) error->all(FLERR,"Illegal fix gcmc command");
|
||||||
if (seed <= 0) error->all(FLERR,"Illegal fix GCMC command");
|
if (seed <= 0) error->all(FLERR,"Illegal fix gcmc command");
|
||||||
if (reservoir_temperature < 0.0)
|
if (reservoir_temperature < 0.0)
|
||||||
error->all(FLERR,"Illegal fix GCMC command");
|
error->all(FLERR,"Illegal fix gcmc command");
|
||||||
if (displace < 0.0) error->all(FLERR,"Illegal fix GCMC command");
|
if (displace < 0.0) error->all(FLERR,"Illegal fix gcmc command");
|
||||||
|
|
||||||
// set defaults
|
// set defaults
|
||||||
|
|
||||||
@ -103,9 +103,9 @@ FixGCMC::FixGCMC(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
region_xlo = region_xhi = region_ylo = region_yhi = region_zlo = region_zhi = 0.0;
|
region_xlo = region_xhi = region_ylo = region_yhi = region_zlo = region_zhi = 0.0;
|
||||||
if (regionflag) {
|
if (regionflag) {
|
||||||
if (domain->regions[iregion]->bboxflag == 0)
|
if (domain->regions[iregion]->bboxflag == 0)
|
||||||
error->all(FLERR,"Fix GCMC region does not support a bounding box");
|
error->all(FLERR,"Fix gcmc region does not support a bounding box");
|
||||||
if (domain->regions[iregion]->dynamic_check())
|
if (domain->regions[iregion]->dynamic_check())
|
||||||
error->all(FLERR,"Fix GCMC region cannot be dynamic");
|
error->all(FLERR,"Fix gcmc region cannot be dynamic");
|
||||||
|
|
||||||
region_xlo = domain->regions[iregion]->extent_xlo;
|
region_xlo = domain->regions[iregion]->extent_xlo;
|
||||||
region_xhi = domain->regions[iregion]->extent_xhi;
|
region_xhi = domain->regions[iregion]->extent_xhi;
|
||||||
@ -117,7 +117,7 @@ FixGCMC::FixGCMC(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
if (region_xlo < domain->boxlo[0] || region_xhi > domain->boxhi[0] ||
|
if (region_xlo < domain->boxlo[0] || region_xhi > domain->boxhi[0] ||
|
||||||
region_ylo < domain->boxlo[1] || region_yhi > domain->boxhi[1] ||
|
region_ylo < domain->boxlo[1] || region_yhi > domain->boxhi[1] ||
|
||||||
region_zlo < domain->boxlo[2] || region_zhi > domain->boxhi[2])
|
region_zlo < domain->boxlo[2] || region_zhi > domain->boxhi[2])
|
||||||
error->all(FLERR,"Fix GCMC region extends outside simulation box");
|
error->all(FLERR,"Fix gcmc region extends outside simulation box");
|
||||||
|
|
||||||
// estimate region volume using MC trials
|
// estimate region volume using MC trials
|
||||||
|
|
||||||
@ -170,32 +170,32 @@ FixGCMC::FixGCMC(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
|
|
||||||
void FixGCMC::options(int narg, char **arg)
|
void FixGCMC::options(int narg, char **arg)
|
||||||
{
|
{
|
||||||
if (narg < 0) error->all(FLERR,"Illegal fix GCMC command");
|
if (narg < 0) error->all(FLERR,"Illegal fix gcmc command");
|
||||||
|
|
||||||
int iarg = 0;
|
int iarg = 0;
|
||||||
while (iarg < narg) {
|
while (iarg < narg) {
|
||||||
if (strcmp(arg[iarg],"molecule") == 0) {
|
if (strcmp(arg[iarg],"molecule") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix GCMC command");
|
if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command");
|
||||||
if (strcmp(arg[iarg+1],"no") == 0) molflag = 0;
|
if (strcmp(arg[iarg+1],"no") == 0) molflag = 0;
|
||||||
else if (strcmp(arg[iarg+1],"yes") == 0) molflag = 1;
|
else if (strcmp(arg[iarg+1],"yes") == 0) molflag = 1;
|
||||||
else error->all(FLERR,"Illegal fix GCMC command");
|
else error->all(FLERR,"Illegal fix gcmc command");
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"region") == 0) {
|
} else if (strcmp(arg[iarg],"region") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix GCMC command");
|
if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command");
|
||||||
iregion = domain->find_region(arg[iarg+1]);
|
iregion = domain->find_region(arg[iarg+1]);
|
||||||
if (iregion == -1)
|
if (iregion == -1)
|
||||||
error->all(FLERR,"Region ID for fix GCMC does not exist");
|
error->all(FLERR,"Region ID for fix gcmc does not exist");
|
||||||
int n = strlen(arg[iarg+1]) + 1;
|
int n = strlen(arg[iarg+1]) + 1;
|
||||||
idregion = new char[n];
|
idregion = new char[n];
|
||||||
strcpy(idregion,arg[iarg+1]);
|
strcpy(idregion,arg[iarg+1]);
|
||||||
regionflag = 1;
|
regionflag = 1;
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"maxangle") == 0) {
|
} else if (strcmp(arg[iarg],"maxangle") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix GCMC command");
|
if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command");
|
||||||
max_rotation_angle = atof(arg[iarg+1]);
|
max_rotation_angle = atof(arg[iarg+1]);
|
||||||
max_rotation_angle *= MY_PI/180;
|
max_rotation_angle *= MY_PI/180;
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else error->all(FLERR,"Illegal fix GCMC command");
|
} else error->all(FLERR,"Illegal fix gcmc command");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,7 +228,7 @@ void FixGCMC::init()
|
|||||||
|
|
||||||
if (molflag == 0) {
|
if (molflag == 0) {
|
||||||
if (ngcmc_type <= 0 || ngcmc_type > atom->ntypes)
|
if (ngcmc_type <= 0 || ngcmc_type > atom->ntypes)
|
||||||
error->all(FLERR,"Invalid atom type in fix GCMC command");
|
error->all(FLERR,"Invalid atom type in fix gcmc command");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if molflag not set, warn if any deletable atom has a mol ID
|
// if molflag not set, warn if any deletable atom has a mol ID
|
||||||
@ -244,7 +244,7 @@ void FixGCMC::init()
|
|||||||
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
|
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
|
||||||
if (flagall && comm->me == 0)
|
if (flagall && comm->me == 0)
|
||||||
error->all(FLERR,
|
error->all(FLERR,
|
||||||
"Fix GCMC cannot exchange individual atoms belonging to a molecule");
|
"Fix gcmc cannot exchange individual atoms belonging to a molecule");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if molflag set, check for unset mol IDs
|
// if molflag set, check for unset mol IDs
|
||||||
@ -260,22 +260,22 @@ void FixGCMC::init()
|
|||||||
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
|
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
|
||||||
if (flagall && comm->me == 0)
|
if (flagall && comm->me == 0)
|
||||||
error->all(FLERR,
|
error->all(FLERR,
|
||||||
"All mol IDs should be set for fix GCMC group atoms");
|
"All mol IDs should be set for fix gcmc group atoms");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((molflag && (atom->molecule_flag == 0)) ||
|
if ((molflag && (atom->molecule_flag == 0)) ||
|
||||||
(molflag && ((!atom->tag_enable) || (!atom->map_style))))
|
(molflag && ((!atom->tag_enable) || (!atom->map_style))))
|
||||||
error->all(FLERR,
|
error->all(FLERR,
|
||||||
"Fix GCMC molecule command requires that atoms have molecule attributes");
|
"Fix gcmc molecule command requires that atoms have molecule attributes");
|
||||||
|
|
||||||
if (force->pair->single_enable == 0)
|
if (force->pair->single_enable == 0)
|
||||||
error->all(FLERR,"Fix GCMC incompatible with given pair_style");
|
error->all(FLERR,"Fix gcmc incompatible with given pair_style");
|
||||||
|
|
||||||
if (domain->dimension == 2)
|
if (domain->dimension == 2)
|
||||||
error->all(FLERR,"Cannot use fix GCMC in a 2d simulation");
|
error->all(FLERR,"Cannot use fix gcmc in a 2d simulation");
|
||||||
|
|
||||||
if (domain->triclinic == 1)
|
if (domain->triclinic == 1)
|
||||||
error->all(FLERR,"Cannot use fix GCMC with a triclinic box");
|
error->all(FLERR,"Cannot use fix gcmc with a triclinic box");
|
||||||
|
|
||||||
// create a new group for rotation molecules
|
// create a new group for rotation molecules
|
||||||
|
|
||||||
@ -288,7 +288,8 @@ void FixGCMC::init()
|
|||||||
group_arg[2] = digits;
|
group_arg[2] = digits;
|
||||||
group->assign(3,group_arg);
|
group->assign(3,group_arg);
|
||||||
rotation_group = group->find(group_arg[0]);
|
rotation_group = group->find(group_arg[0]);
|
||||||
if (rotation_group == -1) error->all(FLERR,"Could not find fix group ID");
|
if (rotation_group == -1)
|
||||||
|
error->all(FLERR,"Could not find fix gcmc rotation group ID");
|
||||||
rotation_groupbit = group->bitmask[rotation_group];
|
rotation_groupbit = group->bitmask[rotation_group];
|
||||||
rotation_inversegroupbit = rotation_groupbit ^ ~0;
|
rotation_inversegroupbit = rotation_groupbit ^ ~0;
|
||||||
delete [] group_arg;
|
delete [] group_arg;
|
||||||
@ -301,7 +302,7 @@ void FixGCMC::init()
|
|||||||
else gas_mass = atom->mass[ngcmc_type];
|
else gas_mass = atom->mass[ngcmc_type];
|
||||||
|
|
||||||
if (gas_mass <= 0.0)
|
if (gas_mass <= 0.0)
|
||||||
error->all(FLERR,"Illegal fix GCMC gas mass <= 0");
|
error->all(FLERR,"Illegal fix gcmc gas mass <= 0");
|
||||||
|
|
||||||
// check that no deletable atoms are in atom->firstgroup
|
// check that no deletable atoms are in atom->firstgroup
|
||||||
// deleting such an atom would not leave firstgroup atoms first
|
// deleting such an atom would not leave firstgroup atoms first
|
||||||
@ -769,7 +770,7 @@ void FixGCMC::attempt_molecule_insertion()
|
|||||||
if (random_equal->uniform() < zz*volume*exp(-beta*insertion_energy_sum)/(ngas+1)) {
|
if (random_equal->uniform() < zz*volume*exp(-beta*insertion_energy_sum)/(ngas+1)) {
|
||||||
maxmol++;
|
maxmol++;
|
||||||
if (maxmol >= MAXSMALLINT)
|
if (maxmol >= MAXSMALLINT)
|
||||||
error->all(FLERR,"Fix GCMC ran out of available molecule IDs");
|
error->all(FLERR,"Fix gcmc ran out of available molecule IDs");
|
||||||
|
|
||||||
int maxtag = 0;
|
int maxtag = 0;
|
||||||
for (int i = 0; i < atom->nlocal; i++) maxtag = MAX(maxtag,atom->tag[i]);
|
for (int i = 0; i < atom->nlocal; i++) maxtag = MAX(maxtag,atom->tag[i]);
|
||||||
@ -1042,7 +1043,7 @@ void FixGCMC::get_model_molecule()
|
|||||||
MPI_Allreduce(&natoms_per_molecule_local,&natoms_per_molecule,1,MPI_INT,MPI_MAX,world);
|
MPI_Allreduce(&natoms_per_molecule_local,&natoms_per_molecule,1,MPI_INT,MPI_MAX,world);
|
||||||
|
|
||||||
if (natoms_per_molecule == 0)
|
if (natoms_per_molecule == 0)
|
||||||
error->all(FLERR,"Fix GCMC could not find any atoms in the user-supplied template molecule");
|
error->all(FLERR,"Fix gcmc could not find any atoms in the user-supplied template molecule");
|
||||||
|
|
||||||
memory->create(atom_coord,natoms_per_molecule,3,"fixGCMC:atom_coord");
|
memory->create(atom_coord,natoms_per_molecule,3,"fixGCMC:atom_coord");
|
||||||
|
|
||||||
@ -1148,7 +1149,7 @@ void FixGCMC::get_model_molecule()
|
|||||||
|
|
||||||
int nlocal = atom->nlocal;
|
int nlocal = atom->nlocal;
|
||||||
if (nlocal != natoms_per_molecule)
|
if (nlocal != natoms_per_molecule)
|
||||||
error->all(FLERR,"Fix GCMC incorrect number of atoms per molecule");
|
error->all(FLERR,"Fix gcmc incorrect number of atoms per molecule");
|
||||||
|
|
||||||
// compute the model molecule's mass and center-of-mass
|
// compute the model molecule's mass and center-of-mass
|
||||||
// then recenter model molecule on the origin
|
// then recenter model molecule on the origin
|
||||||
|
|||||||
@ -119,65 +119,66 @@ Self-explanatory. Check the input script syntax and compare to the
|
|||||||
documentation for the command. You can use -echo screen as a
|
documentation for the command. You can use -echo screen as a
|
||||||
command-line option when running LAMMPS to see the offending line.
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
E: Fix GCMC region does not support a bounding box
|
E: Fix gcmc region does not support a bounding box
|
||||||
|
|
||||||
UNDOCUMENTED
|
Not all regions represent bounded volumes. You cannot use
|
||||||
|
such a region with the fix gcmc command.
|
||||||
|
|
||||||
E: Fix GCMC region cannot be dynamic
|
E: Fix gcmc region cannot be dynamic
|
||||||
|
|
||||||
UNDOCUMENTED
|
Only static regions can be used with fix gcmc.
|
||||||
|
|
||||||
E: Fix GCMC region extends outside simulation box
|
E: Fix gcmc region extends outside simulation box
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Region ID for fix GCMC does not exist
|
E: Region ID for fix gcmc does not exist
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Invalid atom type in fix GCMC command
|
E: Invalid atom type in fix gcmc command
|
||||||
|
|
||||||
The atom type specified in the GCMC command does not exist.
|
The atom type specified in the GCMC command does not exist.
|
||||||
|
|
||||||
E: Fix GCMC cannot exchange individual atoms belonging to a molecule
|
E: Fix gcmc cannot exchange individual atoms belonging to a molecule
|
||||||
|
|
||||||
This is an error since you should not delete only one atom of a molecule.
|
This is an error since you should not delete only one atom of a molecule.
|
||||||
The user has specified atomic (non-molecular) gas exchanges, but an atom
|
The user has specified atomic (non-molecular) gas exchanges, but an atom
|
||||||
belonging to a molecule could be deleted.
|
belonging to a molecule could be deleted.
|
||||||
|
|
||||||
E: All mol IDs should be set for fix GCMC group atoms
|
E: All mol IDs should be set for fix gcmc group atoms
|
||||||
|
|
||||||
The molecule flag is on, yet not all molecule ids in the fix group have
|
The molecule flag is on, yet not all molecule ids in the fix group have
|
||||||
been set to non-zero positive values by the user. This is an error since
|
been set to non-zero positive values by the user. This is an error since
|
||||||
all atoms in the fix GCMC group are eligible for deletion, rotation, and
|
all atoms in the fix gcmc group are eligible for deletion, rotation, and
|
||||||
translation and therefore must have valid molecule ids.
|
translation and therefore must have valid molecule ids.
|
||||||
|
|
||||||
E: Fix GCMC molecule command requires that atoms have molecule attributes
|
E: Fix gcmc molecule command requires that atoms have molecule attributes
|
||||||
|
|
||||||
Should not choose the GCMC molecule feature if no molecules are being
|
Should not choose the GCMC molecule feature if no molecules are being
|
||||||
simulated. The general molecule flag is off, but GCMC's molecule flag
|
simulated. The general molecule flag is off, but GCMC's molecule flag
|
||||||
is on.
|
is on.
|
||||||
|
|
||||||
E: Fix GCMC incompatible with given pair_style
|
E: Fix gcmc incompatible with given pair_style
|
||||||
|
|
||||||
Some pair_styles do not provide single-atom energies, which are needed
|
Some pair_styles do not provide single-atom energies, which are needed
|
||||||
by fix GCMC.
|
by fix gcmc.
|
||||||
|
|
||||||
E: Cannot use fix GCMC in a 2d simulation
|
E: Cannot use fix gcmc in a 2d simulation
|
||||||
|
|
||||||
Fix GCMC is set up to run in 3d only. No 2d simulations with fix GCMC
|
Fix gcmc is set up to run in 3d only. No 2d simulations with fix gcmc
|
||||||
are allowed.
|
are allowed.
|
||||||
|
|
||||||
E: Cannot use fix GCMC with a triclinic box
|
E: Cannot use fix gcmc with a triclinic box
|
||||||
|
|
||||||
Fix GCMC is set up to run with othogonal boxes only. Simulations with
|
Fix gcmc is set up to run with othogonal boxes only. Simulations with
|
||||||
triclinic boxes and fix GCMC are not allowed.
|
triclinic boxes and fix gcmc are not allowed.
|
||||||
|
|
||||||
E: Could not find fix group ID
|
E: Could not find fix gcmc rotation group ID
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Illegal fix GCMC gas mass <= 0
|
E: Illegal fix gcmc gas mass <= 0
|
||||||
|
|
||||||
The computed mass of the designated gas molecule or atom type was less
|
The computed mass of the designated gas molecule or atom type was less
|
||||||
than or equal to zero.
|
than or equal to zero.
|
||||||
@ -187,46 +188,33 @@ E: Cannot do GCMC on atoms in atom_modify first group
|
|||||||
This is a restriction due to the way atoms are organized in a list to
|
This is a restriction due to the way atoms are organized in a list to
|
||||||
enable the atom_modify first command.
|
enable the atom_modify first command.
|
||||||
|
|
||||||
E: Fix GCMC ran out of available molecule IDs
|
E: Fix gcmc ran out of available molecule IDs
|
||||||
|
|
||||||
This is a code limitation where more than MAXSMALLINT (usually around
|
This is a code limitation where more than MAXSMALLINT (usually around
|
||||||
two billion) molecules have been created. The code needs to be
|
two billion) molecules have been created. The code needs to be
|
||||||
modified to either allow molecule ID recycling or use bigger ints for
|
modified to either allow molecule ID recycling or use bigger ints for
|
||||||
molecule IDs. A work-around is to run shorter simulations.
|
molecule IDs. A work-around is to run shorter simulations.
|
||||||
|
|
||||||
E: Fix GCMC could not find any atoms in the user-supplied template molecule
|
E: Fix gcmc could not find any atoms in the user-supplied template molecule
|
||||||
|
|
||||||
When using the molecule option with fix GCMC, the user must supply a
|
When using the molecule option with fix gcmc, the user must supply a
|
||||||
template molecule in the usual LAMMPS data file with its molecule id
|
template molecule in the usual LAMMPS data file with its molecule id
|
||||||
specified in the fix GCMC command as the "type" of the exchanged gas.
|
specified in the fix gcmc command as the "type" of the exchanged gas.
|
||||||
|
|
||||||
E: Fix GCMC incorrect number of atoms per molecule
|
E: Fix gcmc incorrect number of atoms per molecule
|
||||||
|
|
||||||
The number of atoms in each gas molecule was not computed correctly.
|
The number of atoms in each gas molecule was not computed correctly.
|
||||||
|
|
||||||
U: Fix GCMC fix group should be all
|
E: Fix gcmc region cannot be dynamic
|
||||||
|
|
||||||
Fix GCMC will ignore the fix group specified by the user. User should
|
|
||||||
set the fix group to "all". Fix GCMC will overwrite the user-specified
|
|
||||||
fix group with a group consisting of all GCMC gas atoms.
|
|
||||||
|
|
||||||
U: Fix GCMC region does not support a bounding box
|
|
||||||
|
|
||||||
Not all regions represent bounded volumes. You cannot use
|
Only static regions can be used with fix gcmc.
|
||||||
such a region with the fix GCMC command.
|
|
||||||
|
|
||||||
E: Fix GCMC region cannot be dynamic
|
E: Fix gcmc region extends outside simulation box
|
||||||
|
|
||||||
Only static regions can be used with fix GCMC.
|
|
||||||
|
|
||||||
E: Fix GCMC region extends outside simulation box
|
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Region ID for fix GCMC does not exist
|
E: Region ID for fix gcmc does not exist
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -957,8 +957,8 @@ void AtomVecFull::data_atom(double *coord, tagint imagetmp, char **values)
|
|||||||
|
|
||||||
int AtomVecFull::data_atom_hybrid(int nlocal, char **values)
|
int AtomVecFull::data_atom_hybrid(int nlocal, char **values)
|
||||||
{
|
{
|
||||||
molecule[nlocal] = atoi(values[1]);
|
molecule[nlocal] = atoi(values[0]);
|
||||||
q[nlocal] = atof(values[3]);
|
q[nlocal] = atof(values[1]);
|
||||||
|
|
||||||
num_bond[nlocal] = 0;
|
num_bond[nlocal] = 0;
|
||||||
num_angle[nlocal] = 0;
|
num_angle[nlocal] = 0;
|
||||||
|
|||||||
@ -59,7 +59,9 @@ class ImproperHybrid : public Improper {
|
|||||||
|
|
||||||
E: Illegal ... command
|
E: Illegal ... command
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script syntax and compare to the
|
||||||
|
documentation for the command. You can use -echo screen as a
|
||||||
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
E: Improper style hybrid cannot use same improper style twice
|
E: Improper style hybrid cannot use same improper style twice
|
||||||
|
|
||||||
|
|||||||
@ -425,7 +425,7 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
int idilate = group->find(id_dilate);
|
int idilate = group->find(id_dilate);
|
||||||
if (idilate == -1)
|
if (idilate == -1)
|
||||||
error->all(FLERR,
|
error->all(FLERR,
|
||||||
"Fix rigid nvt/npt/nph dilate group ID does not exist");
|
"Fix rigid npt/nph dilate group ID does not exist");
|
||||||
}
|
}
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
|
|
||||||
|
|||||||
@ -176,9 +176,9 @@ E: Fix rigid langevin period must be > 0.0
|
|||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix rigid nvt/npt/nph dilate group ID does not exist
|
E: Fix rigid npt/nph dilate group ID does not exist
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: One or zero atoms in rigid body
|
E: One or zero atoms in rigid body
|
||||||
|
|
||||||
@ -204,7 +204,7 @@ not be accounted for.
|
|||||||
|
|
||||||
E: Fix rigid atom has non-zero image flag in a non-periodic dimension
|
E: Fix rigid atom has non-zero image flag in a non-periodic dimension
|
||||||
|
|
||||||
You cannot set image flags for non-periodic dimensions.
|
Image flags for non-periodic dimensions should not be set.
|
||||||
|
|
||||||
E: Insufficient Jacobi rotations for rigid body
|
E: Insufficient Jacobi rotations for rigid body
|
||||||
|
|
||||||
|
|||||||
@ -245,13 +245,13 @@ void FixRigidNH::init()
|
|||||||
if (tcomputeflag) {
|
if (tcomputeflag) {
|
||||||
icompute = modify->find_compute(id_temp);
|
icompute = modify->find_compute(id_temp);
|
||||||
if (icompute < 0)
|
if (icompute < 0)
|
||||||
error->all(FLERR,"Temp ID for fix rigid npt/nph does not exist");
|
error->all(FLERR,"Temperature ID for fix rigid nvt/npt/nph does not exist");
|
||||||
temperature = modify->compute[icompute];
|
temperature = modify->compute[icompute];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pstat_flag) {
|
if (pstat_flag) {
|
||||||
if (domain->triclinic)
|
if (domain->triclinic)
|
||||||
error->all(FLERR,"fix rigid npt/nph does not yet allow triclinic box");
|
error->all(FLERR,"Fix rigid npt/nph does not yet allow triclinic box");
|
||||||
|
|
||||||
// ensure no conflict with fix deform
|
// ensure no conflict with fix deform
|
||||||
|
|
||||||
@ -283,7 +283,7 @@ void FixRigidNH::init()
|
|||||||
|
|
||||||
icompute = modify->find_compute(id_press);
|
icompute = modify->find_compute(id_press);
|
||||||
if (icompute < 0)
|
if (icompute < 0)
|
||||||
error->all(FLERR,"Press ID for fix rigid npt/nph does not exist");
|
error->all(FLERR,"Pressure ID for fix rigid npt/nph does not exist");
|
||||||
pressure = modify->compute[icompute];
|
pressure = modify->compute[icompute];
|
||||||
|
|
||||||
// detect if any rigid fixes exist so rigid bodies move on remap
|
// detect if any rigid fixes exist so rigid bodies move on remap
|
||||||
|
|||||||
@ -38,7 +38,8 @@ class FixRigidNH : public FixRigid {
|
|||||||
double boltz,nktv2p,mvv2e; // boltzman constant, conversion factors
|
double boltz,nktv2p,mvv2e; // boltzman constant, conversion factors
|
||||||
|
|
||||||
int nf_t,nf_r; // trans/rot degrees of freedom
|
int nf_t,nf_r; // trans/rot degrees of freedom
|
||||||
double onednft,onednfr; // factors 1 + dimension/trans(rot) degrees of freedom
|
double onednft,onednfr; // factors 1 + dimension/trans(rot)
|
||||||
|
// degrees of freedom
|
||||||
double *w,*wdti1,*wdti2,*wdti4; // Yoshida-Suzuki coefficients
|
double *w,*wdti1,*wdti2,*wdti4; // Yoshida-Suzuki coefficients
|
||||||
double *q_t,*q_r; // trans/rot thermostat masses
|
double *q_t,*q_r; // trans/rot thermostat masses
|
||||||
double *eta_t,*eta_r; // trans/rot thermostat positions
|
double *eta_t,*eta_r; // trans/rot thermostat positions
|
||||||
@ -104,7 +105,7 @@ inline double FixRigidNH::maclaurin_series(double x)
|
|||||||
|
|
||||||
E: Fix rigid npt/nph period must be > 0.0
|
E: Fix rigid npt/nph period must be > 0.0
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Invalid fix rigid npt/nph command for a 2d simulation
|
E: Invalid fix rigid npt/nph command for a 2d simulation
|
||||||
|
|
||||||
@ -132,21 +133,21 @@ E: Fix rigid npt/nph dilate group ID does not exist
|
|||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Temp ID for fix rigid npt/nph does not exist
|
E: Temperature ID for fix rigid nvt/npt does not exist
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory
|
||||||
|
|
||||||
E: fix rigid npt/nph does not yet allow triclinic box
|
E: fix rigid npt/nph does not yet allow triclinic box
|
||||||
|
|
||||||
UNDOCUMENTED
|
This is a current restriction of the command.
|
||||||
|
|
||||||
E: Cannot use fix rigid npt/nph and fix deform on same component of stress tensor
|
E: Cannot use fix rigid npt/nph and fix deform on same component of stress tensor
|
||||||
|
|
||||||
This would be changing the same box dimension twice.
|
This would be changing the same box dimension twice.
|
||||||
|
|
||||||
E: Press ID for fix rigid npt/nph does not exist
|
E: Pressure ID for fix rigid npt/nph does not exist
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Illegal ... command
|
E: Illegal ... command
|
||||||
|
|
||||||
@ -179,16 +180,4 @@ E: Fix_modify pressure ID does not compute pressure
|
|||||||
|
|
||||||
The compute ID assigned to the fix must compute pressure.
|
The compute ID assigned to the fix must compute pressure.
|
||||||
|
|
||||||
U: Target temperature for fix rigid nvt/npt cannot be 0.0
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
U: Temperature ID for fix rigid npt/nph does not exist
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
U: Pressure ID for fix rigid npt/nph does not exist
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -40,14 +40,12 @@ FixRigidNPH::FixRigidNPH(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
// error checks
|
// error checks
|
||||||
|
|
||||||
if (pstat_flag == 0)
|
if (pstat_flag == 0)
|
||||||
error->all(FLERR,"Pressure control must be used with fix nph");
|
error->all(FLERR,"Did not set pressure for fix rigid/nph");
|
||||||
if (tstat_flag == 1)
|
if (tstat_flag == 1)
|
||||||
error->all(FLERR,"Temperature control must not be used with fix nph");
|
error->all(FLERR,"Cannot set temperature for fix rigid/nph");
|
||||||
if (p_start[0] < 0.0 || p_start[1] < 0.0 || p_start[2] < 0.0 ||
|
|
||||||
p_stop[0] < 0.0 || p_stop[1] < 0.0 || p_stop[2] < 0.0)
|
|
||||||
error->all(FLERR,"Target pressure for fix rigid/nph cannot be 0.0");
|
|
||||||
|
|
||||||
// convert input periods to frequency
|
// convert input periods to frequency
|
||||||
|
|
||||||
p_freq[0] = p_freq[1] = p_freq[2] = 0.0;
|
p_freq[0] = p_freq[1] = p_freq[2] = 0.0;
|
||||||
|
|
||||||
if (p_flag[0]) p_freq[0] = 1.0 / p_period[0];
|
if (p_flag[0]) p_freq[0] = 1.0 / p_period[0];
|
||||||
|
|||||||
@ -38,16 +38,12 @@ class FixRigidNPH : public FixRigidNH {
|
|||||||
|
|
||||||
/* ERROR/WARNING messages:
|
/* ERROR/WARNING messages:
|
||||||
|
|
||||||
E: Pressure control must be used with fix nph
|
E: Did not set pressure for fix rigid/nph
|
||||||
|
|
||||||
UNDOCUMENTED
|
The press keyword must be specified.
|
||||||
|
|
||||||
E: Temperature control must not be used with fix nph
|
E: Cannot set temperature for fix rigid/nph
|
||||||
|
|
||||||
UNDOCUMENTED
|
The temp keyword cannot be specified.
|
||||||
|
|
||||||
E: Target pressure for fix rigid/nph cannot be 0.0
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -40,21 +40,17 @@ FixRigidNPT::FixRigidNPT(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
// error checks
|
// error checks
|
||||||
|
|
||||||
if (tstat_flag == 0 || pstat_flag == 0)
|
if (tstat_flag == 0 || pstat_flag == 0)
|
||||||
error->all(FLERR,"Did not set temp or press for fix rigid/npt");
|
error->all(FLERR,"Did not set temperature or pressure for fix rigid/npt");
|
||||||
if (t_start <= 0.0 || t_stop <= 0.0)
|
if (t_start <= 0.0 || t_stop <= 0.0)
|
||||||
error->all(FLERR,"Target temperature for fix rigid/npt cannot be 0.0");
|
error->all(FLERR,"Target temperature for fix rigid/npt cannot be 0.0");
|
||||||
if (p_start[0] < 0.0 || p_start[1] < 0.0 || p_start[2] < 0.0 ||
|
|
||||||
p_stop[0] < 0.0 || p_stop[1] < 0.0 || p_stop[2] < 0.0)
|
|
||||||
error->all(FLERR,"Target pressure for fix rigid/npt cannot be 0.0");
|
|
||||||
|
|
||||||
if (t_period <= 0.0) error->all(FLERR,"Fix rigid/npt period must be > 0.0");
|
if (t_period <= 0.0) error->all(FLERR,"Fix rigid/npt period must be > 0.0");
|
||||||
|
|
||||||
// thermostat chain parameters
|
// thermostat chain parameters
|
||||||
|
|
||||||
if (t_chain < 1) error->all(FLERR,"Illegal fix_modify command");
|
if (t_chain < 1) error->all(FLERR,"Illegal fix rigid/npt command");
|
||||||
if (t_iter < 1) error->all(FLERR,"Illegal fix_modify command");
|
if (t_iter < 1) error->all(FLERR,"Illegal fix rigid/npt command");
|
||||||
if (t_order != 3 && t_order != 5)
|
if (t_order != 3 && t_order != 5)
|
||||||
error->all(FLERR,"Fix_modify order must be 3 or 5");
|
error->all(FLERR,"Fix rigid/npt temperature order must be 3 or 5");
|
||||||
|
|
||||||
// convert input periods to frequency
|
// convert input periods to frequency
|
||||||
|
|
||||||
|
|||||||
@ -38,28 +38,26 @@ class FixRigidNPT : public FixRigidNH {
|
|||||||
|
|
||||||
/* ERROR/WARNING messages:
|
/* ERROR/WARNING messages:
|
||||||
|
|
||||||
E: Did not set temp or press for fix rigid/npt
|
E: Did not set temperature or pressure for fix rigid/npt
|
||||||
|
|
||||||
UNDOCUMENTED
|
The temp and press keywords must be specified.
|
||||||
|
|
||||||
E: Target temperature for fix rigid/npt cannot be 0.0
|
E: Target temperature for fix rigid/npt cannot be 0.0
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Target pressure for fix rigid/npt cannot be 0.0
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: Fix rigid/npt period must be > 0.0
|
E: Fix rigid/npt period must be > 0.0
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Illegal ... command
|
E: Illegal ... command
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script syntax and compare to the
|
||||||
|
documentation for the command. You can use -echo screen as a
|
||||||
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
E: Fix_modify order must be 3 or 5
|
E: Fix rigid/npt temperature order must be 3 or 5
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -37,14 +37,14 @@ FixRigidNVT::FixRigidNVT(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
// convert input period to frequency
|
// convert input period to frequency
|
||||||
|
|
||||||
if (tstat_flag == 0)
|
if (tstat_flag == 0)
|
||||||
error->all(FLERR,"Did not set temp for fix rigid/nvt");
|
error->all(FLERR,"Did not set temperature for fix rigid/nvt");
|
||||||
if (t_start < 0.0 || t_stop <= 0.0)
|
if (t_start < 0.0 || t_stop <= 0.0)
|
||||||
error->all(FLERR,"Target temperature for fix rigid/nvt cannot be 0.0");
|
error->all(FLERR,"Target temperature for fix rigid/nvt cannot be 0.0");
|
||||||
if (t_period <= 0.0) error->all(FLERR,"Fix rigid/nvt period must be > 0.0");
|
if (t_period <= 0.0) error->all(FLERR,"Fix rigid/nvt period must be > 0.0");
|
||||||
t_freq = 1.0 / t_period;
|
t_freq = 1.0 / t_period;
|
||||||
|
|
||||||
if (t_chain < 1) error->all(FLERR,"Illegal fix_modify command");
|
if (t_chain < 1) error->all(FLERR,"Illegal fix rigid/nvt command");
|
||||||
if (t_iter < 1) error->all(FLERR,"Illegal fix_modify command");
|
if (t_iter < 1) error->all(FLERR,"Illegal fix rigid/nvt command");
|
||||||
if (t_order != 3 && t_order != 5)
|
if (t_order != 3 && t_order != 5)
|
||||||
error->all(FLERR,"Fix_modify order must be 3 or 5");
|
error->all(FLERR,"Fix rigid/nvt temperature order must be 3 or 5");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,24 +37,26 @@ class FixRigidNVT : public FixRigidNH {
|
|||||||
|
|
||||||
/* ERROR/WARNING messages:
|
/* ERROR/WARNING messages:
|
||||||
|
|
||||||
E: Did not set temp for fix rigid/nvt
|
E: Illegal ... command
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script syntax and compare to the
|
||||||
|
documentation for the command. You can use -echo screen as a
|
||||||
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
|
E: Did not set temperature for fix rigid/nvt
|
||||||
|
|
||||||
|
The temp keyword must be specified.
|
||||||
|
|
||||||
E: Target temperature for fix rigid/nvt cannot be 0.0
|
E: Target temperature for fix rigid/nvt cannot be 0.0
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix rigid/nvt period must be > 0.0
|
E: Fix rigid/nvt period must be > 0.0
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Illegal ... command
|
E: Fix rigid/nvt temperature order must be 3 or 5
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix_modify order must be 3 or 5
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -178,11 +178,11 @@ command-line option when running LAMMPS to see the offending line.
|
|||||||
|
|
||||||
E: Fix rigid/small langevin period must be > 0.0
|
E: Fix rigid/small langevin period must be > 0.0
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Fix rigid/small requires atom attribute molecule
|
E: Fix rigid/small requires atom attribute molecule
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: No rigid bodies defined
|
E: No rigid bodies defined
|
||||||
|
|
||||||
@ -207,7 +207,7 @@ not be accounted for.
|
|||||||
|
|
||||||
E: Fix rigid/small atom has non-zero image flag in a non-periodic dimension
|
E: Fix rigid/small atom has non-zero image flag in a non-periodic dimension
|
||||||
|
|
||||||
UNDOCUMENTED
|
Image flags for non-periodic dimensions should not be set.
|
||||||
|
|
||||||
E: Insufficient Jacobi rotations for rigid body
|
E: Insufficient Jacobi rotations for rigid body
|
||||||
|
|
||||||
@ -220,104 +220,10 @@ are not within the required tolerances.
|
|||||||
|
|
||||||
E: Rigid body atoms %d %d missing on proc %d at step %ld
|
E: Rigid body atoms %d %d missing on proc %d at step %ld
|
||||||
|
|
||||||
UNDOCUMENTED
|
This means that an atom cannot find the atom that owns the rigid body
|
||||||
|
it is part of, or vice versa. The solution is to use the communicate
|
||||||
E: BAD AAA
|
cutoff command to insure ghost atoms are acquired from far enough away
|
||||||
|
to encompass the max distance printed when the fix rigid/small command
|
||||||
UNDOCUMENTED
|
was invoked.
|
||||||
|
|
||||||
E: BAD BBB
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: BAD CCC
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: BAD DDD
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: BAD EEE
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: BAD FFF
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: BAD GGG
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: BAD HHH
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: BAD III
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: BAD JJJ
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: BAD KKK
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: BAD LLL
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
U: Fix rigid molecule requires atom attribute molecule
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
U: Could not find fix rigid group ID
|
|
||||||
|
|
||||||
A group ID used in the fix rigid command does not exist.
|
|
||||||
|
|
||||||
U: One or more atoms belong to multiple rigid bodies
|
|
||||||
|
|
||||||
Two or more rigid bodies defined by the fix rigid command cannot
|
|
||||||
contain the same atom.
|
|
||||||
|
|
||||||
U: Fix rigid z force cannot be on for 2d simulation
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
U: Fix rigid xy torque cannot be on for 2d simulation
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
U: Fix rigid langevin period must be > 0.0
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
U: One or zero atoms in rigid body
|
|
||||||
|
|
||||||
Any rigid body defined by the fix rigid command must contain 2 or more
|
|
||||||
atoms.
|
|
||||||
|
|
||||||
U: Fix rigid atom has non-zero image flag in a non-periodic dimension
|
|
||||||
|
|
||||||
You cannot set image flags for non-periodic dimensions.
|
|
||||||
|
|
||||||
U: Cannot open fix rigid infile %s
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
U: Unexpected end of fix rigid file
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
U: Incorrect rigid body format in fix rigid file
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
U: Invalid rigid body ID in fix rigid file
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -127,7 +127,7 @@ FixAppendAtoms::FixAppendAtoms(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
} else if (strcmp(arg[iarg],"basis") == 0) {
|
} else if (strcmp(arg[iarg],"basis") == 0) {
|
||||||
if (iarg+3 > narg) error->all(FLERR,"Illegal fix append/atoms command");
|
if (iarg+3 > narg) error->all(FLERR,"Illegal fix append/atoms command");
|
||||||
if (domain->lattice == NULL)
|
if (domain->lattice == NULL)
|
||||||
error->all(FLERR,"Must define lattice to append/atoms");
|
error->all(FLERR,"Fis append/atoms requires a lattice be defined");
|
||||||
int ibasis = atoi(arg[iarg+1]);
|
int ibasis = atoi(arg[iarg+1]);
|
||||||
int itype = atoi(arg[iarg+2]);
|
int itype = atoi(arg[iarg+2]);
|
||||||
if (ibasis <= 0 || ibasis > nbasis || itype <= 0 || itype > atom->ntypes)
|
if (ibasis <= 0 || ibasis > nbasis || itype <= 0 || itype > atom->ntypes)
|
||||||
|
|||||||
@ -66,7 +66,7 @@ command-line option when running LAMMPS to see the offending line.
|
|||||||
|
|
||||||
E: Fix append/atoms requires a lattice be defined
|
E: Fix append/atoms requires a lattice be defined
|
||||||
|
|
||||||
UNDOCUMENTED
|
Use the lattice command for this purpose.
|
||||||
|
|
||||||
E: Only zhi currently implemented for fix append/atoms
|
E: Only zhi currently implemented for fix append/atoms
|
||||||
|
|
||||||
@ -82,10 +82,6 @@ E: Bad fix ID in fix append/atoms command
|
|||||||
The value of the fix_id for keyword spatial must start with the suffix
|
The value of the fix_id for keyword spatial must start with the suffix
|
||||||
f_.
|
f_.
|
||||||
|
|
||||||
E: Must define lattice to append/atoms
|
|
||||||
|
|
||||||
A lattice must be defined before using this fix.
|
|
||||||
|
|
||||||
E: Cannot use append/atoms in periodic dimension
|
E: Cannot use append/atoms in periodic dimension
|
||||||
|
|
||||||
The boundary style of the face where atoms are added can not be of
|
The boundary style of the face where atoms are added can not be of
|
||||||
|
|||||||
@ -340,10 +340,6 @@ W: SRD particle %d started inside big particle %d on step %ld bounce %d
|
|||||||
See the inside keyword if you want this message to be an error vs
|
See the inside keyword if you want this message to be an error vs
|
||||||
warning.
|
warning.
|
||||||
|
|
||||||
W: SRD particle %d started inside big particle %d on step %ld bounce %d
|
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
E: Bad quadratic solve for particle/line collision
|
E: Bad quadratic solve for particle/line collision
|
||||||
|
|
||||||
This is an internal error. It should nornally not occur.
|
This is an internal error. It should nornally not occur.
|
||||||
|
|||||||
@ -72,8 +72,8 @@ AtomVecBody::~AtomVecBody()
|
|||||||
{
|
{
|
||||||
int nall = nlocal_bonus + nghost_bonus;
|
int nall = nlocal_bonus + nghost_bonus;
|
||||||
for (int i = 0; i < nall; i++) {
|
for (int i = 0; i < nall; i++) {
|
||||||
memory->destroy(bonus[i].ivalue);
|
icp->put(bonus[i].iindex);
|
||||||
memory->destroy(bonus[i].dvalue);
|
dcp->put(bonus[i].dindex);
|
||||||
}
|
}
|
||||||
memory->sfree(bonus);
|
memory->sfree(bonus);
|
||||||
|
|
||||||
@ -105,6 +105,8 @@ void AtomVecBody::settings(int narg, char **arg)
|
|||||||
else error->all(FLERR,"Invalid body style");
|
else error->all(FLERR,"Invalid body style");
|
||||||
|
|
||||||
bptr->avec = this;
|
bptr->avec = this;
|
||||||
|
icp = bptr->icp;
|
||||||
|
dcp = bptr->dcp;
|
||||||
|
|
||||||
// max size of forward/border comm
|
// max size of forward/border comm
|
||||||
// 7,16 are packed in pack_comm/pack_border
|
// 7,16 are packed in pack_comm/pack_border
|
||||||
@ -212,8 +214,8 @@ void AtomVecBody::copy(int i, int j, int delflag)
|
|||||||
// if deleting atom J via delflag and J has bonus data, then delete it
|
// if deleting atom J via delflag and J has bonus data, then delete it
|
||||||
|
|
||||||
if (delflag && body[j] >= 0) {
|
if (delflag && body[j] >= 0) {
|
||||||
memory->destroy(bonus[body[j]].ivalue);
|
icp->put(bonus[body[j]].iindex);
|
||||||
memory->destroy(bonus[body[j]].dvalue);
|
dcp->put(bonus[body[j]].dindex);
|
||||||
copy_bonus(nlocal_bonus-1,body[j]);
|
copy_bonus(nlocal_bonus-1,body[j]);
|
||||||
nlocal_bonus--;
|
nlocal_bonus--;
|
||||||
}
|
}
|
||||||
@ -249,8 +251,8 @@ void AtomVecBody::clear_bonus()
|
|||||||
{
|
{
|
||||||
int nall = nlocal_bonus + nghost_bonus;
|
int nall = nlocal_bonus + nghost_bonus;
|
||||||
for (int i = nlocal_bonus; i < nall; i++) {
|
for (int i = nlocal_bonus; i < nall; i++) {
|
||||||
memory->destroy(bonus[i].ivalue);
|
icp->put(bonus[i].iindex);
|
||||||
memory->destroy(bonus[i].dvalue);
|
dcp->put(bonus[i].dindex);
|
||||||
}
|
}
|
||||||
nghost_bonus = 0;
|
nghost_bonus = 0;
|
||||||
}
|
}
|
||||||
@ -841,8 +843,8 @@ void AtomVecBody::unpack_border(int n, int first, double *buf)
|
|||||||
inertia[2] = buf[m++];
|
inertia[2] = buf[m++];
|
||||||
bonus[j].ninteger = static_cast<int> (buf[m++]);
|
bonus[j].ninteger = static_cast<int> (buf[m++]);
|
||||||
bonus[j].ndouble = static_cast<int> (buf[m++]);
|
bonus[j].ndouble = static_cast<int> (buf[m++]);
|
||||||
memory->create(bonus[j].ivalue,bonus[j].ninteger,"body:ivalue");
|
bonus[j].ivalue = icp->get(bonus[j].ninteger,bonus[j].iindex);
|
||||||
memory->create(bonus[j].dvalue,bonus[j].ndouble,"body:dvalue");
|
bonus[j].dvalue = dcp->get(bonus[j].ndouble,bonus[j].dindex);
|
||||||
m += bptr->unpack_border_body(&bonus[j],&buf[m]);
|
m += bptr->unpack_border_body(&bonus[j],&buf[m]);
|
||||||
bonus[j].ilocal = i;
|
bonus[j].ilocal = i;
|
||||||
body[i] = j;
|
body[i] = j;
|
||||||
@ -884,8 +886,8 @@ void AtomVecBody::unpack_border_vel(int n, int first, double *buf)
|
|||||||
inertia[2] = buf[m++];
|
inertia[2] = buf[m++];
|
||||||
bonus[j].ninteger = static_cast<int> (buf[m++]);
|
bonus[j].ninteger = static_cast<int> (buf[m++]);
|
||||||
bonus[j].ndouble = static_cast<int> (buf[m++]);
|
bonus[j].ndouble = static_cast<int> (buf[m++]);
|
||||||
memory->create(bonus[j].ivalue,bonus[j].ninteger,"body:ivalue");
|
bonus[j].ivalue = icp->get(bonus[j].ninteger,bonus[j].iindex);
|
||||||
memory->create(bonus[j].dvalue,bonus[j].ndouble,"body:dvalue");
|
bonus[j].dvalue = dcp->get(bonus[j].ndouble,bonus[j].dindex);
|
||||||
m += bptr->unpack_border_body(&bonus[j],&buf[m]);
|
m += bptr->unpack_border_body(&bonus[j],&buf[m]);
|
||||||
bonus[j].ilocal = i;
|
bonus[j].ilocal = i;
|
||||||
body[i] = j;
|
body[i] = j;
|
||||||
@ -926,8 +928,8 @@ int AtomVecBody::unpack_border_hybrid(int n, int first, double *buf)
|
|||||||
inertia[2] = buf[m++];
|
inertia[2] = buf[m++];
|
||||||
bonus[j].ninteger = static_cast<int> (buf[m++]);
|
bonus[j].ninteger = static_cast<int> (buf[m++]);
|
||||||
bonus[j].ndouble = static_cast<int> (buf[m++]);
|
bonus[j].ndouble = static_cast<int> (buf[m++]);
|
||||||
memory->create(bonus[j].ivalue,bonus[j].ninteger,"body:ivalue");
|
bonus[j].ivalue = icp->get(bonus[j].ninteger,bonus[j].iindex);
|
||||||
memory->create(bonus[j].dvalue,bonus[j].ndouble,"body:dvalue");
|
bonus[j].dvalue = dcp->get(bonus[j].ndouble,bonus[j].dindex);
|
||||||
m += bptr->unpack_border_body(&bonus[j],&buf[m]);
|
m += bptr->unpack_border_body(&bonus[j],&buf[m]);
|
||||||
bonus[j].ilocal = i;
|
bonus[j].ilocal = i;
|
||||||
body[i] = j;
|
body[i] = j;
|
||||||
@ -1030,10 +1032,10 @@ int AtomVecBody::unpack_exchange(double *buf)
|
|||||||
inertia[2] = buf[m++];
|
inertia[2] = buf[m++];
|
||||||
bonus[nlocal_bonus].ninteger = static_cast<int> (buf[m++]);
|
bonus[nlocal_bonus].ninteger = static_cast<int> (buf[m++]);
|
||||||
bonus[nlocal_bonus].ndouble = static_cast<int> (buf[m++]);
|
bonus[nlocal_bonus].ndouble = static_cast<int> (buf[m++]);
|
||||||
memory->create(bonus[nlocal_bonus].ivalue,bonus[nlocal_bonus].ninteger,
|
bonus[nlocal_bonus].ivalue = icp->get(bonus[nlocal_bonus].ninteger,
|
||||||
"body:ivalue");
|
bonus[nlocal_bonus].iindex);
|
||||||
memory->create(bonus[nlocal_bonus].dvalue,bonus[nlocal_bonus].ndouble,
|
bonus[nlocal_bonus].dvalue = dcp->get(bonus[nlocal_bonus].ndouble,
|
||||||
"body:dvalue");
|
bonus[nlocal_bonus].dindex);
|
||||||
memcpy(bonus[nlocal_bonus].ivalue,&buf[m],
|
memcpy(bonus[nlocal_bonus].ivalue,&buf[m],
|
||||||
bonus[nlocal_bonus].ninteger*sizeof(int));
|
bonus[nlocal_bonus].ninteger*sizeof(int));
|
||||||
if (intdoubleratio == 1) m += bonus[nlocal_bonus].ninteger;
|
if (intdoubleratio == 1) m += bonus[nlocal_bonus].ninteger;
|
||||||
@ -1182,10 +1184,10 @@ int AtomVecBody::unpack_restart(double *buf)
|
|||||||
inertia[2] = buf[m++];
|
inertia[2] = buf[m++];
|
||||||
bonus[nlocal_bonus].ninteger = static_cast<int> (buf[m++]);
|
bonus[nlocal_bonus].ninteger = static_cast<int> (buf[m++]);
|
||||||
bonus[nlocal_bonus].ndouble = static_cast<int> (buf[m++]);
|
bonus[nlocal_bonus].ndouble = static_cast<int> (buf[m++]);
|
||||||
memory->create(bonus[nlocal_bonus].ivalue,bonus[nlocal_bonus].ninteger,
|
bonus[nlocal_bonus].ivalue = icp->get(bonus[nlocal_bonus].ninteger,
|
||||||
"body:ivalue");
|
bonus[nlocal_bonus].iindex);
|
||||||
memory->create(bonus[nlocal_bonus].dvalue,bonus[nlocal_bonus].ndouble,
|
bonus[nlocal_bonus].dvalue = dcp->get(bonus[nlocal_bonus].ndouble,
|
||||||
"body:dvalue");
|
bonus[nlocal_bonus].dindex);
|
||||||
memcpy(bonus[nlocal_bonus].ivalue,&buf[m],
|
memcpy(bonus[nlocal_bonus].ivalue,&buf[m],
|
||||||
bonus[nlocal_bonus].ninteger*sizeof(int));
|
bonus[nlocal_bonus].ninteger*sizeof(int));
|
||||||
if (intdoubleratio == 1) m += bonus[nlocal_bonus].ninteger;
|
if (intdoubleratio == 1) m += bonus[nlocal_bonus].ninteger;
|
||||||
@ -1399,6 +1401,7 @@ bigint AtomVecBody::memory_usage()
|
|||||||
if (atom->memcheck("body")) bytes += memory->usage(body,nmax);
|
if (atom->memcheck("body")) bytes += memory->usage(body,nmax);
|
||||||
|
|
||||||
bytes += nmax_bonus*sizeof(Bonus);
|
bytes += nmax_bonus*sizeof(Bonus);
|
||||||
|
bytes += icp->size + dcp->size;
|
||||||
|
|
||||||
int nall = nlocal_bonus + nghost_bonus;
|
int nall = nlocal_bonus + nghost_bonus;
|
||||||
for (int i = 0; i < nall; i++) {
|
for (int i = 0; i < nall; i++) {
|
||||||
|
|||||||
@ -21,16 +21,11 @@ AtomStyle(body,AtomVecBody)
|
|||||||
#define LMP_ATOM_VEC_BODY_H
|
#define LMP_ATOM_VEC_BODY_H
|
||||||
|
|
||||||
#include "atom_vec.h"
|
#include "atom_vec.h"
|
||||||
|
#include "my_pool.h"
|
||||||
|
|
||||||
namespace LAMMPS_NS {
|
namespace LAMMPS_NS {
|
||||||
|
|
||||||
class AtomVecBody : public AtomVec {
|
class AtomVecBody : public AtomVec {
|
||||||
friend class Comm;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
class Body *bptr;
|
class Body *bptr;
|
||||||
|
|
||||||
@ -38,6 +33,7 @@ class AtomVecBody : public AtomVec {
|
|||||||
double quat[4];
|
double quat[4];
|
||||||
double inertia[3];
|
double inertia[3];
|
||||||
int ninteger,ndouble;
|
int ninteger,ndouble;
|
||||||
|
int iindex,dindex;
|
||||||
int *ivalue;
|
int *ivalue;
|
||||||
double *dvalue;
|
double *dvalue;
|
||||||
int ilocal;
|
int ilocal;
|
||||||
@ -100,6 +96,9 @@ class AtomVecBody : public AtomVec {
|
|||||||
int copyflag;
|
int copyflag;
|
||||||
int intdoubleratio; // sizeof(double) / sizeof(int)
|
int intdoubleratio; // sizeof(double) / sizeof(int)
|
||||||
|
|
||||||
|
MyPool<int> *icp;
|
||||||
|
MyPool<double> *dcp;
|
||||||
|
|
||||||
void grow_bonus();
|
void grow_bonus();
|
||||||
void copy_bonus(int, int);
|
void copy_bonus(int, int);
|
||||||
//void check(int);
|
//void check(int);
|
||||||
|
|||||||
@ -16,11 +16,15 @@
|
|||||||
|
|
||||||
#include "pointers.h"
|
#include "pointers.h"
|
||||||
#include "atom_vec_body.h"
|
#include "atom_vec_body.h"
|
||||||
|
#include "my_pool.h"
|
||||||
|
|
||||||
namespace LAMMPS_NS {
|
namespace LAMMPS_NS {
|
||||||
|
|
||||||
class Body : protected Pointers {
|
class Body : protected Pointers {
|
||||||
public:
|
public:
|
||||||
|
MyPool<int> *icp;
|
||||||
|
MyPool<double> *dcp;
|
||||||
|
|
||||||
char *style;
|
char *style;
|
||||||
int size_forward; // max extra values packed for comm
|
int size_forward; // max extra values packed for comm
|
||||||
int size_border; // max extra values packed for border comm
|
int size_border; // max extra values packed for border comm
|
||||||
|
|||||||
@ -102,10 +102,6 @@ The atom style being used does not specify an atom diameter.
|
|||||||
|
|
||||||
E: Fix adapt requires atom attribute charge
|
E: Fix adapt requires atom attribute charge
|
||||||
|
|
||||||
UNDOCUMENTED
|
|
||||||
|
|
||||||
U: Fix adapt requires atom attribute charge
|
|
||||||
|
|
||||||
The atom style being used does not specify an atom charge.
|
The atom style being used does not specify an atom charge.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -84,8 +84,4 @@ E: Cannot open fix balance output file
|
|||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
U: Cannot yet use fix balance with PPPM
|
|
||||||
|
|
||||||
This is a current limitation of LAMMPS.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -127,7 +127,9 @@ then the y dimension must be periodic.
|
|||||||
|
|
||||||
E: Cannot use fix box/relax with tilt factor scaling on a 2nd non-periodic dimension
|
E: Cannot use fix box/relax with tilt factor scaling on a 2nd non-periodic dimension
|
||||||
|
|
||||||
UNDOCUMENTED
|
When specifying scaling on a tilt factor component, the 2nd of the two
|
||||||
|
dimensions must be periodic. E.g. if the xy component is specified,
|
||||||
|
then the y dimension must be periodic.
|
||||||
|
|
||||||
E: Cannot use fix box/relax with both relaxation and scaling on a tilt factor
|
E: Cannot use fix box/relax with both relaxation and scaling on a tilt factor
|
||||||
|
|
||||||
@ -191,10 +193,4 @@ E: Fix_modify pressure ID does not compute pressure
|
|||||||
|
|
||||||
The compute ID assigned to the fix must compute pressure.
|
The compute ID assigned to the fix must compute pressure.
|
||||||
|
|
||||||
U: Cannot use fix box/relax with tilt factor scaling on a 2nd non-periodic dimension"
|
|
||||||
|
|
||||||
When specifying scaling on a tilt factor component, the 2nd of the two
|
|
||||||
dimensions must be periodic. E.g. if the xy component is specified,
|
|
||||||
then the y dimension must be periodic.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -124,7 +124,7 @@ void FixHeat::init()
|
|||||||
if (hvar < 0)
|
if (hvar < 0)
|
||||||
error->all(FLERR,"Variable name for fix heat does not exist");
|
error->all(FLERR,"Variable name for fix heat does not exist");
|
||||||
if (input->variable->equalstyle(hvar)) hstyle = EQUAL;
|
if (input->variable->equalstyle(hvar)) hstyle = EQUAL;
|
||||||
else if (input->variable->equalstyle(hvar)) hstyle = ATOM;
|
else if (input->variable->atomstyle(hvar)) hstyle = ATOM;
|
||||||
else error->all(FLERR,"Variable for fix heat is invalid style");
|
else error->all(FLERR,"Variable for fix heat is invalid style");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -67,11 +67,11 @@ Self-explanatory.
|
|||||||
|
|
||||||
E: Variable name for fix heat does not exist
|
E: Variable name for fix heat does not exist
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Variable for fix heat is invalid style
|
E: Variable for fix heat is invalid style
|
||||||
|
|
||||||
UNDOCUMENTED
|
Only equal-style or atom-style variables can be used.
|
||||||
|
|
||||||
E: Fix heat group has no atoms
|
E: Fix heat group has no atoms
|
||||||
|
|
||||||
@ -84,6 +84,7 @@ heat to be invalid.
|
|||||||
|
|
||||||
E: Fix heat kinetic energy of an atom went negative
|
E: Fix heat kinetic energy of an atom went negative
|
||||||
|
|
||||||
UNDOCUMENTED
|
This will cause the velocity rescaling about to be performed by fix
|
||||||
|
heat to be invalid.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -114,7 +114,7 @@ set to lattice.
|
|||||||
|
|
||||||
E: Zero length rotation vector with fix move
|
E: Zero length rotation vector with fix move
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Variable name for fix move does not exist
|
E: Variable name for fix move does not exist
|
||||||
|
|
||||||
@ -132,8 +132,4 @@ E: Resetting timestep is not allowed with fix move
|
|||||||
|
|
||||||
This is because fix move is moving atoms based on elapsed time.
|
This is because fix move is moving atoms based on elapsed time.
|
||||||
|
|
||||||
U: Fix move cannot have 0 length rotation vector
|
|
||||||
|
|
||||||
Self-explanatory.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -602,7 +602,7 @@ void FixNH::init()
|
|||||||
|
|
||||||
int icompute = modify->find_compute(id_temp);
|
int icompute = modify->find_compute(id_temp);
|
||||||
if (icompute < 0)
|
if (icompute < 0)
|
||||||
error->all(FLERR,"Temperature ID for fix nvt/nph/npt does not exist");
|
error->all(FLERR,"Temperature ID for fix nvt/npt does not exist");
|
||||||
temperature = modify->compute[icompute];
|
temperature = modify->compute[icompute];
|
||||||
|
|
||||||
if (temperature->tempbias) which = BIAS;
|
if (temperature->tempbias) which = BIAS;
|
||||||
|
|||||||
@ -218,7 +218,7 @@ E: Cannot use fix npt and fix deform on same component of stress tensor
|
|||||||
|
|
||||||
This would be changing the same box dimension twice.
|
This would be changing the same box dimension twice.
|
||||||
|
|
||||||
E: Temperature ID for fix nvt/nph/npt does not exist
|
E: Temperature ID for fix nvt/npt does not exist
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
|
|||||||
@ -101,6 +101,6 @@ Only equal-style variables can be used.
|
|||||||
|
|
||||||
E: Variable evaluation in fix wall gave bad value
|
E: Variable evaluation in fix wall gave bad value
|
||||||
|
|
||||||
UNDOCUMENTED
|
The returned value for epsilon or sigma < 0.0.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -118,11 +118,11 @@ A region ID used in the group command does not exist.
|
|||||||
|
|
||||||
E: Variable name for group does not exist
|
E: Variable name for group does not exist
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Variable for group is invalid style
|
E: Variable for group is invalid style
|
||||||
|
|
||||||
UNDOCUMENTED
|
Only atom-style variables can be used.
|
||||||
|
|
||||||
E: Group ID does not exist
|
E: Group ID does not exist
|
||||||
|
|
||||||
|
|||||||
11
src/input.h
11
src/input.h
@ -220,7 +220,8 @@ or create_box command.
|
|||||||
|
|
||||||
E: Box command after simulation box is defined
|
E: Box command after simulation box is defined
|
||||||
|
|
||||||
UNDOCUMENTED
|
The box command cannot be used after a read_data, read_restart, or
|
||||||
|
create_box command.
|
||||||
|
|
||||||
E: Dihedral_coeff command before simulation box is defined
|
E: Dihedral_coeff command before simulation box is defined
|
||||||
|
|
||||||
@ -324,12 +325,4 @@ E: Units command after simulation box is defined
|
|||||||
The units command cannot be used after a read_data, read_restart, or
|
The units command cannot be used after a read_data, read_restart, or
|
||||||
create_box command.
|
create_box command.
|
||||||
|
|
||||||
U: Input line too long: %s
|
|
||||||
|
|
||||||
This is a hard (very large) limit defined in the input.cpp file.
|
|
||||||
|
|
||||||
U: Input line too long after variable substitution
|
|
||||||
|
|
||||||
This is a hard (very large) limit defined in the input.cpp file.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -158,11 +158,15 @@ class KSpace : protected Pointers {
|
|||||||
|
|
||||||
E: KSpace solver requires a pair style
|
E: KSpace solver requires a pair style
|
||||||
|
|
||||||
UNDOCUMENTED
|
No pair style is defined.
|
||||||
|
|
||||||
E: KSpace style is incompatible with Pair style
|
E: KSpace style is incompatible with Pair style
|
||||||
|
|
||||||
UNDOCUMENTED
|
The Ewald and PPPM solvers work with pair styles with a "coul/long" in
|
||||||
|
their name. The MSM solver with pair styles with a "coul/msm" in
|
||||||
|
their name, The dispersion solvers with pair styles with a "lj/long"
|
||||||
|
in the name. The TIP4P solvers with pair styles with a "tip4p" in the
|
||||||
|
name.
|
||||||
|
|
||||||
W: For better accuracy use 'pair_modify table 0'
|
W: For better accuracy use 'pair_modify table 0'
|
||||||
|
|
||||||
|
|||||||
@ -150,8 +150,4 @@ E: Cannot use -cuda on without USER-CUDA installed
|
|||||||
The USER-CUDA package must be installed via "make yes-user-cuda"
|
The USER-CUDA package must be installed via "make yes-user-cuda"
|
||||||
before LAMMPS is built.
|
before LAMMPS is built.
|
||||||
|
|
||||||
U: 64-bit atom IDs are not yet supported
|
|
||||||
|
|
||||||
See description of this data type in src/lmptype.h.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -49,10 +49,13 @@ void lammps_scatter_atoms(void *, char *, int, int, void *);
|
|||||||
|
|
||||||
W: Library error in lammps_gather_atoms
|
W: Library error in lammps_gather_atoms
|
||||||
|
|
||||||
UNDOCUMENTED
|
This library function cannot be used if atom IDs are not defined
|
||||||
|
or are not consecutively numbered.
|
||||||
|
|
||||||
W: Library error in lammps_scatter_atoms
|
W: Library error in lammps_scatter_atoms
|
||||||
|
|
||||||
UNDOCUMENTED
|
This library function cannot be used if atom IDs are not defined or
|
||||||
|
are not consecutively numbered, or if no atom map is defined. See the
|
||||||
|
atom_modify command for details about atom maps.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -21,7 +21,9 @@ short or the bond has blown apart and an atom is too far away.
|
|||||||
|
|
||||||
E: Bond extent > half of periodic box length
|
E: Bond extent > half of periodic box length
|
||||||
|
|
||||||
UNDOCUMENTED
|
This error was detected by the neigh_modify check yes setting. It is
|
||||||
|
an error because the bond atoms are so far apart it is ambiguous how
|
||||||
|
it should be defined.
|
||||||
|
|
||||||
E: Angle atoms %d %d %d missing on proc %d at step %ld
|
E: Angle atoms %d %d %d missing on proc %d at step %ld
|
||||||
|
|
||||||
@ -32,7 +34,9 @@ too far away.
|
|||||||
|
|
||||||
E: Angle extent > half of periodic box length
|
E: Angle extent > half of periodic box length
|
||||||
|
|
||||||
UNDOCUMENTED
|
This error was detected by the neigh_modify check yes setting. It is
|
||||||
|
an error because the angle atoms are so far apart it is ambiguous how
|
||||||
|
it should be defined.
|
||||||
|
|
||||||
E: Dihedral atoms %d %d %d %d missing on proc %d at step %ld
|
E: Dihedral atoms %d %d %d %d missing on proc %d at step %ld
|
||||||
|
|
||||||
@ -43,7 +47,9 @@ too far away.
|
|||||||
|
|
||||||
E: Dihedral/improper extent > half of periodic box length
|
E: Dihedral/improper extent > half of periodic box length
|
||||||
|
|
||||||
UNDOCUMENTED
|
This error was detected by the neigh_modify check yes setting. It is
|
||||||
|
an error because the dihedral atoms are so far apart it is ambiguous
|
||||||
|
how it should be defined.
|
||||||
|
|
||||||
E: Improper atoms %d %d %d %d missing on proc %d at step %ld
|
E: Improper atoms %d %d %d %d missing on proc %d at step %ld
|
||||||
|
|
||||||
|
|||||||
@ -331,7 +331,13 @@ Atom types must range from 1 to Ntypes inclusive.
|
|||||||
|
|
||||||
W: Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies
|
W: Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies
|
||||||
|
|
||||||
UNDOCUMENTED
|
This is because excluding specific pair interactions also excludes
|
||||||
|
them from long-range interactions which may not be the desired effect.
|
||||||
|
The special_bonds command handles this consistently by insuring
|
||||||
|
excluded (or weighted) 1-2, 1-3, 1-4 interactions are treated
|
||||||
|
consistently by both the short-range pair style and the long-range
|
||||||
|
solver. This is not done for exclusions of charged atom pairs via the
|
||||||
|
neigh_modify exclude command.
|
||||||
|
|
||||||
E: Neighbor include group not allowed with ghost neighbors
|
E: Neighbor include group not allowed with ghost neighbors
|
||||||
|
|
||||||
|
|||||||
@ -238,7 +238,7 @@ pair_coeff command before running a simulation.
|
|||||||
|
|
||||||
E: Pair style requres a KSpace style
|
E: Pair style requres a KSpace style
|
||||||
|
|
||||||
UNDOCUMENTED
|
No kspace style is defined.
|
||||||
|
|
||||||
E: Pair style does not support pair_write
|
E: Pair style does not support pair_write
|
||||||
|
|
||||||
|
|||||||
@ -57,11 +57,13 @@ class PairCoulDSF : public Pair {
|
|||||||
|
|
||||||
E: Illegal ... command
|
E: Illegal ... command
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script syntax and compare to the
|
||||||
|
documentation for the command. You can use -echo screen as a
|
||||||
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
E: Incorrect args for pair coefficients
|
E: Incorrect args for pair coefficients
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script or data file.
|
||||||
|
|
||||||
E: Pair style coul/dsf requires atom attribute q
|
E: Pair style coul/dsf requires atom attribute q
|
||||||
|
|
||||||
|
|||||||
@ -62,14 +62,16 @@ class PairLJCutCoulDSF : public Pair {
|
|||||||
|
|
||||||
E: Illegal ... command
|
E: Illegal ... command
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script syntax and compare to the
|
||||||
|
documentation for the command. You can use -echo screen as a
|
||||||
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
E: Incorrect args for pair coefficients
|
E: Incorrect args for pair coefficients
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check the input script or data file.
|
||||||
|
|
||||||
E: Pair style lj/cut/coul/dsf requires atom attribute q
|
E: Pair style lj/cut/coul/dsf requires atom attribute q
|
||||||
|
|
||||||
UNDOCUMENTED
|
The atom style defined does not have these attributes.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -139,11 +139,11 @@ The Atoms section of a data file must come before a Triangles section.
|
|||||||
|
|
||||||
E: Invalid data file section: Bodies
|
E: Invalid data file section: Bodies
|
||||||
|
|
||||||
UNDOCUMENTED
|
Atom style does not allow bodies.
|
||||||
|
|
||||||
E: Must read Atoms before Bodies
|
E: Must read Atoms before Bodies
|
||||||
|
|
||||||
UNDOCUMENTED
|
The Atoms section of a data file must come before a Bodies section.
|
||||||
|
|
||||||
E: Invalid data file section: Bonds
|
E: Invalid data file section: Bonds
|
||||||
|
|
||||||
@ -319,7 +319,7 @@ Self-explanatory. Check data file.
|
|||||||
|
|
||||||
E: No bodies allowed with this atom style
|
E: No bodies allowed with this atom style
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory. Check data file.
|
||||||
|
|
||||||
E: System in data file is too big
|
E: System in data file is too big
|
||||||
|
|
||||||
@ -369,7 +369,8 @@ Atom IDs must be positive integers.
|
|||||||
|
|
||||||
E: Too many lines in one body in data file - boost MAXBODY
|
E: Too many lines in one body in data file - boost MAXBODY
|
||||||
|
|
||||||
UNDOCUMENTED
|
MAXBODY is a setting at the top of the src/read_data.cpp file.
|
||||||
|
Set it larger and re-compile the code.
|
||||||
|
|
||||||
E: Bonds assigned incorrectly
|
E: Bonds assigned incorrectly
|
||||||
|
|
||||||
|
|||||||
@ -96,7 +96,8 @@ private:
|
|||||||
|
|
||||||
E: Read_dump command before simulation box is defined
|
E: Read_dump command before simulation box is defined
|
||||||
|
|
||||||
UNDOCUMENTED
|
The read_dump command cannot be used before a read_data, read_restart,
|
||||||
|
or create_box command.
|
||||||
|
|
||||||
E: Illegal ... command
|
E: Illegal ... command
|
||||||
|
|
||||||
|
|||||||
@ -68,14 +68,14 @@ create_box command has been used.
|
|||||||
|
|
||||||
E: Variable evaluation in region gave bad value
|
E: Variable evaluation in region gave bad value
|
||||||
|
|
||||||
UNDOCUMENTED
|
Variable returned a radius < 0.0.
|
||||||
|
|
||||||
E: Variable name for region cylinder does not exist
|
E: Variable name for region cylinder does not exist
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Variable for region cylinder is invalid style
|
E: Variable for region cylinder is invalid style
|
||||||
|
|
||||||
UNDOCUMENTED
|
Only equal-style varaibles are allowed.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -58,14 +58,14 @@ command-line option when running LAMMPS to see the offending line.
|
|||||||
|
|
||||||
E: Variable evaluation in region gave bad value
|
E: Variable evaluation in region gave bad value
|
||||||
|
|
||||||
UNDOCUMENTED
|
Variable returned a radius < 0.0.
|
||||||
|
|
||||||
E: Variable name for region sphere does not exist
|
E: Variable name for region sphere does not exist
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Variable for region sphere is invalid style
|
E: Variable for region sphere is invalid style
|
||||||
|
|
||||||
UNDOCUMENTED
|
Only equal-style varaibles are allowed.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -138,7 +138,7 @@ originally an equal-style variable.
|
|||||||
|
|
||||||
E: File variable could not read value
|
E: File variable could not read value
|
||||||
|
|
||||||
UNDOCUMENTED
|
Check the file assigned to the variable.
|
||||||
|
|
||||||
E: Variable name must be alphanumeric or underscore characters
|
E: Variable name must be alphanumeric or underscore characters
|
||||||
|
|
||||||
@ -226,7 +226,9 @@ Variable name is not recognized.
|
|||||||
|
|
||||||
E: Variable has circular dependency
|
E: Variable has circular dependency
|
||||||
|
|
||||||
UNDOCUMENTED
|
A circular dependency is when variable "a" in used by variable "b" and
|
||||||
|
variable "b" is also used by varaible "a". Circular dependencies with
|
||||||
|
longer chains of dependence are also not allowed.
|
||||||
|
|
||||||
E: Invalid variable evaluation in variable formula
|
E: Invalid variable evaluation in variable formula
|
||||||
|
|
||||||
@ -257,7 +259,7 @@ Self-explanatory.
|
|||||||
|
|
||||||
E: Modulo 0 in variable formula
|
E: Modulo 0 in variable formula
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Power by 0 in variable formula
|
E: Power by 0 in variable formula
|
||||||
|
|
||||||
@ -346,11 +348,11 @@ Grmask is per-atom operation.
|
|||||||
|
|
||||||
E: Variable ID in variable formula does not exist
|
E: Variable ID in variable formula does not exist
|
||||||
|
|
||||||
UNDOCUMENTED
|
Self-explanatory.
|
||||||
|
|
||||||
E: Invalid variable in special function next
|
E: Invalid variable in special function next
|
||||||
|
|
||||||
UNDOCUMENTED
|
Only file-style variables can be used with the next() function.
|
||||||
|
|
||||||
E: Indexed per-atom vector in variable formula without atom map
|
E: Indexed per-atom vector in variable formula without atom map
|
||||||
|
|
||||||
@ -382,6 +384,7 @@ Self-explanatory.
|
|||||||
|
|
||||||
E: Cannot open file variable file %s
|
E: Cannot open file variable file %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
The specified file cannot be opened. Check that the path and name are
|
||||||
|
correct.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
#define LAMMPS_VERSION "4 Mar 2013"
|
#define LAMMPS_VERSION "22 Feb 2013"
|
||||||
|
|||||||
Reference in New Issue
Block a user