forked from lijiext/lammps
Merge remote-tracking branch 'akohlmey/unit-test-updates' into refactor-table-reading
This commit is contained in:
commit
18bb4bfdc2
|
@ -1,4 +1,4 @@
|
|||
.TH LAMMPS "5 May 2020" "2020-05-5"
|
||||
.TH LAMMPS "2 June 2020" "2020-06-02"
|
||||
.SH NAME
|
||||
.B LAMMPS
|
||||
\- Molecular Dynamics Simulator.
|
||||
|
|
|
@ -2064,7 +2064,7 @@ molecules, and chiral-sensitive reactions.
|
|||
* examples/USER/reaction
|
||||
* `2017 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug17/pdf/gissinger.pdf>`_
|
||||
* `2019 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug19/talk_gissinger.pdf>`_
|
||||
* disarmmd.org
|
||||
* reacter.org
|
||||
|
||||
----------
|
||||
|
||||
|
|
|
@ -300,7 +300,8 @@ either 'none' or 'charges.' Further details are provided in the
|
|||
discussion of the 'update_edges' keyword. The fifth optional section
|
||||
begins with the keyword 'Constraints' and lists additional criteria
|
||||
that must be satisfied in order for the reaction to occur. Currently,
|
||||
there are four types of constraints available, as discussed below.
|
||||
there are four types of constraints available, as discussed below:
|
||||
'distance', 'angle', 'dihedral', and 'arrhenius'.
|
||||
|
||||
A sample map file is given below:
|
||||
|
||||
|
@ -353,8 +354,9 @@ has syntax as follows:
|
|||
distance *ID1* *ID2* *rmin* *rmax*
|
||||
|
||||
where 'distance' is the required keyword, *ID1* and *ID2* are
|
||||
pre-reaction atom IDs, and these two atoms must be separated by a
|
||||
distance between *rmin* and *rmax* for the reaction to occur.
|
||||
pre-reaction atom IDs (or molecule-fragment IDs, see below), and these
|
||||
two atoms must be separated by a distance between *rmin* and *rmax*
|
||||
for the reaction to occur.
|
||||
|
||||
The constraint of type 'angle' has the following syntax:
|
||||
|
||||
|
@ -363,11 +365,11 @@ The constraint of type 'angle' has the following syntax:
|
|||
angle *ID1* *ID2* *ID3* *amin* *amax*
|
||||
|
||||
where 'angle' is the required keyword, *ID1*\ , *ID2* and *ID3* are
|
||||
pre-reaction atom IDs, and these three atoms must form an angle
|
||||
between *amin* and *amax* for the reaction to occur (where *ID2* is
|
||||
the central atom). Angles must be specified in degrees. This
|
||||
constraint can be used to enforce a certain orientation between
|
||||
reacting molecules.
|
||||
pre-reaction atom IDs (or molecule-fragment IDs, see below), and these
|
||||
three atoms must form an angle between *amin* and *amax* for the
|
||||
reaction to occur (where *ID2* is the central atom). Angles must be
|
||||
specified in degrees. This constraint can be used to enforce a certain
|
||||
orientation between reacting molecules.
|
||||
|
||||
The constraint of type 'dihedral' has the following syntax:
|
||||
|
||||
|
@ -376,15 +378,23 @@ The constraint of type 'dihedral' has the following syntax:
|
|||
dihedral *ID1* *ID2* *ID3* *ID4* *amin* *amax* *amin2* *amax2*
|
||||
|
||||
where 'dihedral' is the required keyword, and *ID1*\ , *ID2*\ , *ID3*
|
||||
and *ID4* are pre-reaction atom IDs. Dihedral angles are calculated in
|
||||
the interval (-180,180]. Refer to the :doc:`dihedral style <dihedral_style>`
|
||||
documentation for further details on convention. If *amin* is less
|
||||
than *amax*, these four atoms must form a dihedral angle greater than
|
||||
*amin* **and** less than *amax* for the reaction to occur. If *amin*
|
||||
is greater than *amax*, these four atoms must form a dihedral angle
|
||||
greater than *amin* **or** less than *amax* for the reaction to occur.
|
||||
Angles must be specified in degrees. Optionally, a second range of
|
||||
permissible angles *amin2*-*amax2* can be specified.
|
||||
and *ID4* are pre-reaction atom IDs (or molecule-fragment IDs, see
|
||||
below). Dihedral angles are calculated in the interval (-180,180].
|
||||
Refer to the :doc:`dihedral style <dihedral_style>` documentation for
|
||||
further details on convention. If *amin* is less than *amax*, these
|
||||
four atoms must form a dihedral angle greater than *amin* **and** less
|
||||
than *amax* for the reaction to occur. If *amin* is greater than
|
||||
*amax*, these four atoms must form a dihedral angle greater than
|
||||
*amin* **or** less than *amax* for the reaction to occur. Angles must
|
||||
be specified in degrees. Optionally, a second range of permissible
|
||||
angles *amin2*-*amax2* can be specified.
|
||||
|
||||
For the 'distance', 'angle', and 'dihedral' constraints (explained
|
||||
above), atom IDs can be replaced by pre-reaction molecule-fragment
|
||||
IDs. The molecule-fragment ID must begin with a letter. The location
|
||||
of the ID is the geometric center of all atom positions in the
|
||||
fragment. The molecule fragment must have been defined in the
|
||||
:doc:`molecule <molecule>` command for the pre-reaction template.
|
||||
|
||||
The constraint of type 'arrhenius' imposes an additional reaction
|
||||
probability according to the temperature-dependent Arrhenius equation:
|
||||
|
|
|
@ -629,7 +629,6 @@ dipolar
|
|||
dir
|
||||
Direc
|
||||
dirname
|
||||
disarmmd
|
||||
discoverable
|
||||
discretization
|
||||
discretized
|
||||
|
@ -2457,6 +2456,7 @@ rdc
|
|||
rdf
|
||||
RDideal
|
||||
rdx
|
||||
reacter
|
||||
README
|
||||
realtime
|
||||
reamin
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
This package implements the DisARMMD protocol (disarmmd.org) as
|
||||
This package implements the REACTER protocol (reacter.org) as
|
||||
"fix bond/react." This fix allows for complex topology changes
|
||||
during a running MD simulation, when using classical force fields.
|
||||
Topology changes are defined in pre- and post-reaction molecule
|
||||
|
@ -6,7 +6,7 @@ templates and can include creation and deletion of bonds, angles,
|
|||
dihedrals, impropers, atom types, bond types, angle types,
|
||||
dihedral types, improper types, and/or atomic charges.
|
||||
|
||||
The DisARMMD protocol is a method for modeling chemical reactions in
|
||||
The REACTER protocol is a method for modeling chemical reactions in
|
||||
classical molecular dynamics simulations. It was developed to build
|
||||
physically-realistic initial configurations for amorphous or
|
||||
crosslinked materials. Any number of competing or reversible reaction
|
||||
|
@ -15,9 +15,9 @@ advanced options currently available include reaction constraints
|
|||
(e.g. angle and Arrhenius constraints), deletion of reaction
|
||||
byproducts or other small molecules, and chiral-sensitive reactions.
|
||||
|
||||
The DisARMMD methodology is detailed in:
|
||||
The REACTER methodology is detailed in:
|
||||
Gissinger et al., Polymer 128, 211-217 (2017)
|
||||
https://doi.org/10.1016/j.polymer.2017.09.038
|
||||
|
||||
This package was created by Jacob Gissinger (info@disarmmd.org),
|
||||
This package was created by Jacob Gissinger (jrgiss05@gmail.com),
|
||||
while at the NASA Langley Research Center.
|
||||
|
|
|
@ -62,7 +62,7 @@ static const char cite_fix_bond_react[] =
|
|||
#define BIG 1.0e20
|
||||
#define DELTA 16
|
||||
#define MAXGUESS 20 // max # of guesses allowed by superimpose algorithm
|
||||
#define MAXCONARGS 10 // max # of arguments for any type of constraint + rxnID
|
||||
#define MAXCONARGS 14 // max # of arguments for any type of constraint + rxnID
|
||||
#define NUMVARVALS 4 // max # of keyword values that have variables as input
|
||||
|
||||
// various statuses of superimpose algorithm:
|
||||
|
@ -1756,7 +1756,7 @@ evaluate constraints: return 0 if any aren't satisfied
|
|||
|
||||
int FixBondReact::check_constraints()
|
||||
{
|
||||
tagint atom1,atom2,atom3,atom4;
|
||||
double x1[3],x2[3],x3[3],x4[3];
|
||||
double delx,dely,delz,rsq;
|
||||
double delx1,dely1,delz1,delx2,dely2,delz2;
|
||||
double rsq1,rsq2,r1,r2,c,t,prrhob;
|
||||
|
@ -1766,36 +1766,37 @@ int FixBondReact::check_constraints()
|
|||
double s,phi;
|
||||
int ANDgate;
|
||||
|
||||
tagint atom1,atom2;
|
||||
double **x = atom->x;
|
||||
|
||||
for (int i = 0; i < nconstraints; i++) {
|
||||
if (constraints[i][0] == rxnID) {
|
||||
if (constraints[i][1] == DISTANCE) {
|
||||
atom1 = atom->map(glove[(int) constraints[i][2]-1][1]);
|
||||
atom2 = atom->map(glove[(int) constraints[i][3]-1][1]);
|
||||
delx = x[atom1][0] - x[atom2][0];
|
||||
dely = x[atom1][1] - x[atom2][1];
|
||||
delz = x[atom1][2] - x[atom2][2];
|
||||
get_IDcoords((int) constraints[i][2], (int) constraints[i][3], x1);
|
||||
get_IDcoords((int) constraints[i][4], (int) constraints[i][5], x2);
|
||||
delx = x1[0] - x2[0];
|
||||
dely = x1[1] - x2[1];
|
||||
delz = x1[2] - x2[2];
|
||||
domain->minimum_image(delx,dely,delz); // ghost location fix
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq < constraints[i][4] || rsq > constraints[i][5]) return 0;
|
||||
if (rsq < constraints[i][6] || rsq > constraints[i][7]) return 0;
|
||||
} else if (constraints[i][1] == ANGLE) {
|
||||
atom1 = atom->map(glove[(int) constraints[i][2]-1][1]);
|
||||
atom2 = atom->map(glove[(int) constraints[i][3]-1][1]);
|
||||
atom3 = atom->map(glove[(int) constraints[i][4]-1][1]);
|
||||
get_IDcoords((int) constraints[i][2], (int) constraints[i][3], x1);
|
||||
get_IDcoords((int) constraints[i][4], (int) constraints[i][5], x2);
|
||||
get_IDcoords((int) constraints[i][6], (int) constraints[i][7], x3);
|
||||
|
||||
// 1st bond
|
||||
delx1 = x[atom1][0] - x[atom2][0];
|
||||
dely1 = x[atom1][1] - x[atom2][1];
|
||||
delz1 = x[atom1][2] - x[atom2][2];
|
||||
delx1 = x1[0] - x2[0];
|
||||
dely1 = x1[1] - x2[1];
|
||||
delz1 = x1[2] - x2[2];
|
||||
domain->minimum_image(delx1,dely1,delz1); // ghost location fix
|
||||
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
|
||||
r1 = sqrt(rsq1);
|
||||
|
||||
// 2nd bond
|
||||
delx2 = x[atom3][0] - x[atom2][0];
|
||||
dely2 = x[atom3][1] - x[atom2][1];
|
||||
delz2 = x[atom3][2] - x[atom2][2];
|
||||
delx2 = x3[0] - x2[0];
|
||||
dely2 = x3[1] - x2[1];
|
||||
delz2 = x3[2] - x2[2];
|
||||
domain->minimum_image(delx2,dely2,delz2); // ghost location fix
|
||||
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
|
||||
r2 = sqrt(rsq2);
|
||||
|
@ -1805,22 +1806,22 @@ int FixBondReact::check_constraints()
|
|||
c /= r1*r2;
|
||||
if (c > 1.0) c = 1.0;
|
||||
if (c < -1.0) c = -1.0;
|
||||
if (acos(c) < constraints[i][5] || acos(c) > constraints[i][6]) return 0;
|
||||
if (acos(c) < constraints[i][8] || acos(c) > constraints[i][9]) return 0;
|
||||
} else if (constraints[i][1] == DIHEDRAL) {
|
||||
// phi calculation from dihedral style harmonic
|
||||
atom1 = atom->map(glove[(int) constraints[i][2]-1][1]);
|
||||
atom2 = atom->map(glove[(int) constraints[i][3]-1][1]);
|
||||
atom3 = atom->map(glove[(int) constraints[i][4]-1][1]);
|
||||
atom4 = atom->map(glove[(int) constraints[i][5]-1][1]);
|
||||
get_IDcoords((int) constraints[i][2], (int) constraints[i][3], x1);
|
||||
get_IDcoords((int) constraints[i][4], (int) constraints[i][5], x2);
|
||||
get_IDcoords((int) constraints[i][6], (int) constraints[i][7], x3);
|
||||
get_IDcoords((int) constraints[i][8], (int) constraints[i][9], x4);
|
||||
|
||||
vb1x = x[atom1][0] - x[atom2][0];
|
||||
vb1y = x[atom1][1] - x[atom2][1];
|
||||
vb1z = x[atom1][2] - x[atom2][2];
|
||||
vb1x = x1[0] - x2[0];
|
||||
vb1y = x1[1] - x2[1];
|
||||
vb1z = x1[2] - x2[2];
|
||||
domain->minimum_image(vb1x,vb1y,vb1z);
|
||||
|
||||
vb2x = x[atom3][0] - x[atom2][0];
|
||||
vb2y = x[atom3][1] - x[atom2][1];
|
||||
vb2z = x[atom3][2] - x[atom2][2];
|
||||
vb2x = x3[0] - x2[0];
|
||||
vb2y = x3[1] - x2[1];
|
||||
vb2z = x3[2] - x2[2];
|
||||
domain->minimum_image(vb2x,vb2y,vb2z);
|
||||
|
||||
vb2xm = -vb2x;
|
||||
|
@ -1828,9 +1829,9 @@ int FixBondReact::check_constraints()
|
|||
vb2zm = -vb2z;
|
||||
domain->minimum_image(vb2xm,vb2ym,vb2zm);
|
||||
|
||||
vb3x = x[atom4][0] - x[atom3][0];
|
||||
vb3y = x[atom4][1] - x[atom3][1];
|
||||
vb3z = x[atom4][2] - x[atom3][2];
|
||||
vb3x = x4[0] - x3[0];
|
||||
vb3y = x4[1] - x3[1];
|
||||
vb3z = x4[2] - x3[2];
|
||||
domain->minimum_image(vb3x,vb3y,vb3z);
|
||||
|
||||
ax = vb1y*vb2zm - vb1z*vb2ym;
|
||||
|
@ -1858,15 +1859,15 @@ int FixBondReact::check_constraints()
|
|||
phi = atan2(s,c);
|
||||
|
||||
ANDgate = 0;
|
||||
if (constraints[i][6] < constraints[i][7]) {
|
||||
if (phi > constraints[i][6] && phi < constraints[i][7]) ANDgate = 1;
|
||||
if (constraints[i][10] < constraints[i][11]) {
|
||||
if (phi > constraints[i][10] && phi < constraints[i][11]) ANDgate = 1;
|
||||
} else {
|
||||
if (phi > constraints[i][6] || phi < constraints[i][7]) ANDgate = 1;
|
||||
if (phi > constraints[i][10] || phi < constraints[i][11]) ANDgate = 1;
|
||||
}
|
||||
if (constraints[i][8] < constraints[i][9]) {
|
||||
if (phi > constraints[i][8] && phi < constraints[i][9]) ANDgate = 1;
|
||||
if (constraints[i][12] < constraints[i][13]) {
|
||||
if (phi > constraints[i][12] && phi < constraints[i][13]) ANDgate = 1;
|
||||
} else {
|
||||
if (phi > constraints[i][8] || phi < constraints[i][9]) ANDgate = 1;
|
||||
if (phi > constraints[i][12] || phi < constraints[i][13]) ANDgate = 1;
|
||||
}
|
||||
if (ANDgate != 1) return 0;
|
||||
} else if (constraints[i][1] == ARRHENIUS) {
|
||||
|
@ -1904,6 +1905,42 @@ int FixBondReact::check_constraints()
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
return pre-reaction atom or fragment location
|
||||
fragment: given pre-reacted molID (onemol) and fragID,
|
||||
return geometric center (of mapped simulation atoms)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void FixBondReact::get_IDcoords(int mode, int myID, double *center)
|
||||
{
|
||||
double **x = atom->x;
|
||||
if (mode == 1) {
|
||||
int iatom = atom->map(glove[myID-1][1]);
|
||||
for (int i = 0; i < 3; i++)
|
||||
center[i] = x[iatom][i];
|
||||
} else {
|
||||
int iref = -1; // choose first atom as reference
|
||||
int iatom;
|
||||
int nfragatoms = 0;
|
||||
for (int i = 0; i < 3; i++)
|
||||
center[i] = 0;
|
||||
|
||||
for (int i = 0; i < onemol->natoms; i++) {
|
||||
if (onemol->fragmentmask[myID][i]) {
|
||||
if (iref == -1)
|
||||
iref = atom->map(glove[i][1]);
|
||||
iatom = atom->map(glove[i][1]);
|
||||
iatom = domain->closest_image(iref,iatom);
|
||||
for (int j = 0; j < 3; j++)
|
||||
center[j] += x[iatom][j];
|
||||
nfragatoms++;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < 3; i++)
|
||||
center[i] /= nfragatoms;
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
compute local temperature: average over all atoms in reaction template
|
||||
------------------------------------------------------------------------- */
|
||||
|
@ -3255,48 +3292,43 @@ void FixBondReact::ChiralCenters(char *line, int myrxn)
|
|||
void FixBondReact::Constraints(char *line, int myrxn)
|
||||
{
|
||||
double tmp[MAXCONARGS];
|
||||
int n = strlen("distance") + 1;
|
||||
char *constraint_type = new char[n];
|
||||
char **strargs;
|
||||
memory->create(strargs,MAXCONARGS,MAXLINE,"bond/react:strargs");
|
||||
char *constraint_type = new char[MAXLINE];
|
||||
for (int i = 0; i < nconstr; i++) {
|
||||
readline(line);
|
||||
sscanf(line,"%s",constraint_type);
|
||||
constraints[nconstraints][0] = myrxn;
|
||||
if (strcmp(constraint_type,"distance") == 0) {
|
||||
constraints[nconstraints][1] = DISTANCE;
|
||||
sscanf(line,"%*s %lg %lg %lg %lg",&tmp[0],&tmp[1],&tmp[2],&tmp[3]);
|
||||
if (tmp[0] > onemol->natoms || tmp[1] > onemol->natoms)
|
||||
error->one(FLERR,"Bond/react: Invalid template atom ID in map file");
|
||||
constraints[nconstraints][2] = tmp[0];
|
||||
constraints[nconstraints][3] = tmp[1];
|
||||
constraints[nconstraints][4] = tmp[2]*tmp[2]; // using square of distance
|
||||
constraints[nconstraints][5] = tmp[3]*tmp[3];
|
||||
sscanf(line,"%*s %s %s %lg %lg",strargs[0],strargs[1],&tmp[0],&tmp[1]);
|
||||
readID(strargs[0], nconstraints, 2, 3);
|
||||
readID(strargs[1], nconstraints, 4, 5);
|
||||
// cutoffs
|
||||
constraints[nconstraints][6] = tmp[0]*tmp[0]; // using square of distance
|
||||
constraints[nconstraints][7] = tmp[1]*tmp[1];
|
||||
} else if (strcmp(constraint_type,"angle") == 0) {
|
||||
constraints[nconstraints][1] = ANGLE;
|
||||
sscanf(line,"%*s %lg %lg %lg %lg %lg",&tmp[0],&tmp[1],&tmp[2],&tmp[3],&tmp[4]);
|
||||
if (tmp[0] > onemol->natoms || tmp[1] > onemol->natoms || tmp[2] > onemol->natoms)
|
||||
error->one(FLERR,"Bond/react: Invalid template atom ID in map file");
|
||||
constraints[nconstraints][2] = tmp[0];
|
||||
constraints[nconstraints][3] = tmp[1];
|
||||
constraints[nconstraints][4] = tmp[2];
|
||||
constraints[nconstraints][5] = tmp[3]/180.0 * MY_PI;
|
||||
constraints[nconstraints][6] = tmp[4]/180.0 * MY_PI;
|
||||
sscanf(line,"%*s %s %s %s %lg %lg",strargs[0],strargs[1],strargs[2],&tmp[0],&tmp[1]);
|
||||
readID(strargs[0], nconstraints, 2, 3);
|
||||
readID(strargs[1], nconstraints, 4, 5);
|
||||
readID(strargs[2], nconstraints, 6, 7);
|
||||
constraints[nconstraints][8] = tmp[0]/180.0 * MY_PI;
|
||||
constraints[nconstraints][9] = tmp[1]/180.0 * MY_PI;
|
||||
} else if (strcmp(constraint_type,"dihedral") == 0) {
|
||||
constraints[nconstraints][1] = DIHEDRAL;
|
||||
tmp[6] = 181.0; // impossible range
|
||||
tmp[7] = 182.0;
|
||||
sscanf(line,"%*s %lg %lg %lg %lg %lg %lg %lg %lg",&tmp[0],&tmp[1],
|
||||
&tmp[2],&tmp[3],&tmp[4],&tmp[5],&tmp[6],&tmp[7]);
|
||||
if (tmp[0] > onemol->natoms || tmp[1] > onemol->natoms ||
|
||||
tmp[2] > onemol->natoms || tmp[3] > onemol->natoms)
|
||||
error->one(FLERR,"Bond/react: Invalid template atom ID in map file");
|
||||
constraints[nconstraints][2] = tmp[0];
|
||||
constraints[nconstraints][3] = tmp[1];
|
||||
constraints[nconstraints][4] = tmp[2];
|
||||
constraints[nconstraints][5] = tmp[3];
|
||||
constraints[nconstraints][6] = tmp[4]/180.0 * MY_PI;
|
||||
constraints[nconstraints][7] = tmp[5]/180.0 * MY_PI;
|
||||
constraints[nconstraints][8] = tmp[6]/180.0 * MY_PI;
|
||||
constraints[nconstraints][9] = tmp[7]/180.0 * MY_PI;
|
||||
tmp[2] = 181.0; // impossible range
|
||||
tmp[3] = 182.0;
|
||||
sscanf(line,"%*s %s %s %s %s %lg %lg %lg %lg",strargs[0],strargs[1],
|
||||
strargs[2],strargs[3],&tmp[0],&tmp[1],&tmp[2],&tmp[3]);
|
||||
readID(strargs[0], nconstraints, 2, 3);
|
||||
readID(strargs[1], nconstraints, 4, 5);
|
||||
readID(strargs[2], nconstraints, 6, 7);
|
||||
readID(strargs[3], nconstraints, 8, 9);
|
||||
constraints[nconstraints][10] = tmp[0]/180.0 * MY_PI;
|
||||
constraints[nconstraints][11] = tmp[1]/180.0 * MY_PI;
|
||||
constraints[nconstraints][12] = tmp[2]/180.0 * MY_PI;
|
||||
constraints[nconstraints][13] = tmp[3]/180.0 * MY_PI;
|
||||
} else if (strcmp(constraint_type,"arrhenius") == 0) {
|
||||
constraints[nconstraints][1] = ARRHENIUS;
|
||||
constraints[nconstraints][2] = narrhenius++;
|
||||
|
@ -3310,6 +3342,27 @@ void FixBondReact::Constraints(char *line, int myrxn)
|
|||
nconstraints++;
|
||||
}
|
||||
delete [] constraint_type;
|
||||
memory->destroy(strargs);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
if ID starts with character, assume it is a pre-reaction molecule fragment ID
|
||||
otherwise, it is a pre-reaction atom ID
|
||||
---------------------------------------------------------------------- */
|
||||
|
||||
void FixBondReact::readID(char *strarg, int iconstr, int mode, int myID)
|
||||
{
|
||||
if (isalpha(strarg[0])) {
|
||||
constraints[iconstr][mode] = 0; // fragment vs. atom ID flag
|
||||
int ifragment = onemol->findfragment(strarg);
|
||||
if (ifragment < 0) error->one(FLERR,"Bond/react: Molecule fragment does not exist");
|
||||
constraints[iconstr][myID] = ifragment;
|
||||
} else {
|
||||
constraints[iconstr][mode] = 1; // fragment vs. atom ID flag
|
||||
int iatom = atoi(strarg);
|
||||
if (iatom > onemol->natoms) error->one(FLERR,"Bond/react: Invalid template atom ID in map file");
|
||||
constraints[iconstr][myID] = iatom;
|
||||
}
|
||||
}
|
||||
|
||||
void FixBondReact::open(char *file)
|
||||
|
|
|
@ -147,12 +147,13 @@ class FixBondReact : public Fix {
|
|||
int glove_counter; // used to determine when to terminate Superimpose Algorithm
|
||||
|
||||
void read(int);
|
||||
void EdgeIDs(char *,int);
|
||||
void Equivalences(char *,int);
|
||||
void CustomEdges(char *,int);
|
||||
void DeleteAtoms(char *,int);
|
||||
void ChiralCenters(char *,int);
|
||||
void Constraints(char *,int);
|
||||
void EdgeIDs(char *, int);
|
||||
void Equivalences(char *, int);
|
||||
void CustomEdges(char *, int);
|
||||
void DeleteAtoms(char *, int);
|
||||
void ChiralCenters(char *, int);
|
||||
void Constraints(char *, int);
|
||||
void readID(char *, int, int, int);
|
||||
|
||||
void make_a_guess ();
|
||||
void neighbor_loop();
|
||||
|
@ -161,6 +162,7 @@ class FixBondReact : public Fix {
|
|||
void inner_crosscheck_loop();
|
||||
void ring_check();
|
||||
int check_constraints();
|
||||
void get_IDcoords(int, int, double *);
|
||||
double get_temperature();
|
||||
int get_chirality(double[12]); // get handedness given an ordered set of coordinates
|
||||
|
||||
|
@ -288,4 +290,8 @@ E: Bond/react: Variable is not equal-style
|
|||
|
||||
Self-explanatory.
|
||||
|
||||
E: Bond/react: Molecule fragment does not exist
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
*/
|
||||
|
|
|
@ -1 +1 @@
|
|||
#define LAMMPS_VERSION "5 May 2020"
|
||||
#define LAMMPS_VERSION "2 Jun 2020"
|
||||
|
|
|
@ -288,7 +288,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
|
|||
// equilibrium angle
|
||||
std::stringstream eqstr;
|
||||
eqstr << lmp->atom->nangletypes;
|
||||
for (std::size_t i=0; i < lmp->atom->nangletypes; ++i) {
|
||||
for (int i=0; i < lmp->atom->nangletypes; ++i) {
|
||||
eqstr << " " << lmp->force->angle->equilibrium_angle(i+1);
|
||||
}
|
||||
writer.emit("equilibrium", eqstr.str());
|
||||
|
|
|
@ -288,7 +288,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
|
|||
// equilibrium distance
|
||||
std::stringstream eqstr;
|
||||
eqstr << lmp->atom->nbondtypes;
|
||||
for (std::size_t i=0; i < lmp->atom->nbondtypes; ++i) {
|
||||
for (int i=0; i < lmp->atom->nbondtypes; ++i) {
|
||||
eqstr << " " << lmp->force->bond->equilibrium_distance(i+1);
|
||||
}
|
||||
writer.emit("equilibrium", eqstr.str());
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
---
|
||||
lammps_version: 2 Jun 2020
|
||||
date_generated: Tue Jun 2 16:53:15 202
|
||||
epsilon: 5e-13
|
||||
prerequisites: ! |
|
||||
pair table
|
||||
pre_commands: ! ""
|
||||
post_commands: ! ""
|
||||
input_file: in.metal
|
||||
pair_style: table bitmap 10
|
||||
pair_coeff: ! |
|
||||
* * ${input_dir}/pair_table_bitmap.txt beck_1_1
|
||||
extract: ! ""
|
||||
natoms: 32
|
||||
init_vdwl: 1.66863069929167
|
||||
init_coul: 0
|
||||
init_stress: ! |2-
|
||||
6.1952827280949752e+00 6.0616458078803026e+00 5.8879068387604203e+00 2.0730193733654706e-01 -2.1217457971568116e-02 -8.9424946009241696e-02
|
||||
init_forces: ! |2
|
||||
1 1.3462021756359327e-02 6.5546484939056501e-02 1.4239378405106444e-02
|
||||
2 -2.2007228833976065e-02 -7.7589845112095546e-02 4.8902697347770523e-02
|
||||
3 -3.8360617077969741e-02 1.9000610721085417e-01 -4.8543675419659094e-02
|
||||
4 2.0909689528763566e-02 -9.9051714348463316e-03 -5.2627007649843807e-02
|
||||
5 5.6017317782444738e-02 1.4268372317778771e-01 3.5492113737546842e-02
|
||||
6 4.1557359610043018e-02 2.9641106441236388e-02 -6.9666505508374872e-03
|
||||
7 -6.4166646403998925e-02 8.9315602328966931e-02 -1.0227283854625933e-02
|
||||
8 -6.8596281778498247e-02 -6.0833941051629016e-02 4.4682109809175953e-02
|
||||
9 1.4368972530624599e-02 -5.5197060731424975e-02 -2.8201433919835286e-02
|
||||
10 -3.2703871825595171e-02 -1.4474456554468246e-01 -1.1516819202560430e-01
|
||||
11 -4.0405247666710227e-02 -5.0409352470214198e-02 4.2972316829875207e-02
|
||||
12 3.0916743299077298e-02 -8.8133140512779831e-02 -3.9753798941002949e-03
|
||||
13 -1.8590365196257386e-02 2.4575364499331190e-02 -4.7077193181172067e-02
|
||||
14 5.6675408248286062e-02 -1.8711344187186302e-02 7.0130262965183210e-02
|
||||
15 -3.1926591760213181e-02 3.1641397846490678e-02 -2.8162923341260547e-02
|
||||
16 1.1005724174097668e-01 -9.1797768313712017e-02 3.7455099430156756e-02
|
||||
17 4.3878459411519591e-02 1.3059623784047278e-01 -1.6097155896137277e-03
|
||||
18 -1.4777439020699670e-01 -3.5658427272011572e-02 -7.0718736029538459e-02
|
||||
19 -1.5580794194082498e-01 -8.1567700677555310e-02 3.7488943756308291e-02
|
||||
20 2.4266515940572463e-02 1.9762354212930246e-02 -3.4097639624214998e-02
|
||||
21 1.6277874455848959e-01 5.0800476849828920e-02 4.3314810824989737e-03
|
||||
22 2.9893704848344602e-03 -8.1978960608305021e-02 -1.1775536941431530e-02
|
||||
23 4.6993698780955703e-02 1.2309490227999968e-01 -8.0573799329662799e-02
|
||||
24 1.2797425247184574e-01 9.4738372709908938e-02 8.3761735780926952e-02
|
||||
25 6.9930077496344431e-02 4.2200999537168552e-03 -4.6754566887666743e-02
|
||||
26 -5.1872497435892714e-02 -1.5107287052733298e-01 1.2864569803094950e-01
|
||||
27 4.6175201131873622e-02 -4.7147053051923900e-03 -2.1152042044204553e-04
|
||||
28 1.1139415424523944e-02 5.7577179243740957e-02 7.3714500884676210e-02
|
||||
29 4.8901565126232033e-02 1.0736209516268529e-01 -3.2125425217601846e-03
|
||||
30 -4.2584465166652936e-02 -3.0054615946788474e-02 -8.4428957096643942e-02
|
||||
31 -2.0649926244740491e-02 -1.1590442114762316e-01 7.4794527710849712e-02
|
||||
32 -1.9354598378544019e-01 -6.3287613853627508e-02 -2.2278111493111191e-02
|
||||
run_vdwl: 1.66741314145205
|
||||
run_coul: 0
|
||||
run_stress: ! |2-
|
||||
6.1931374572792954e+00 6.0579168006450157e+00 5.8831944925174655e+00 2.0546568651742717e-01 -2.2310825568610582e-02 -9.0786598388712531e-02
|
||||
run_forces: ! |2
|
||||
1 1.0245582840443836e-02 6.5151854710940468e-02 1.3361955389177321e-02
|
||||
2 -2.2314027604621318e-02 -7.7535528641419729e-02 4.9002169116395371e-02
|
||||
3 -3.9051836443840873e-02 1.8729640241706769e-01 -5.0368800191922920e-02
|
||||
4 2.1556848319449432e-02 -9.6560257281038397e-03 -5.2226270227499996e-02
|
||||
5 5.5692513794487093e-02 1.4100131039803696e-01 3.6433829498680612e-02
|
||||
6 4.2104114940438239e-02 2.9061099461956740e-02 -8.0757486645345530e-03
|
||||
7 -6.4974396400004103e-02 9.0834827653364231e-02 -1.1497303228903639e-02
|
||||
8 -6.9891945210390563e-02 -6.1365585968288172e-02 4.5058971443054034e-02
|
||||
9 1.5494788785065767e-02 -5.6313873741252601e-02 -2.9239516346795842e-02
|
||||
10 -3.0025791257554668e-02 -1.4356984394446920e-01 -1.1248096343757182e-01
|
||||
11 -4.0162199915935268e-02 -5.1244062549941558e-02 4.2120428458812920e-02
|
||||
12 3.2219067015055440e-02 -8.8023947653775636e-02 -4.0000605662452050e-03
|
||||
13 -1.9322021317182518e-02 2.3705996957186400e-02 -4.6458078927757253e-02
|
||||
14 5.7515188139881337e-02 -1.5720861856457415e-02 6.8903466211661560e-02
|
||||
15 -3.1550376834563972e-02 3.2004964657920229e-02 -2.7509931415147928e-02
|
||||
16 1.0690614440695038e-01 -9.0850865144888507e-02 3.6425761956666795e-02
|
||||
17 4.4576246121271583e-02 1.3023640557355332e-01 -7.6587762084134013e-04
|
||||
18 -1.4790335009012934e-01 -3.4561193108141076e-02 -7.1476252590456105e-02
|
||||
19 -1.5517474793926253e-01 -8.1735148865468926e-02 3.6534263240961207e-02
|
||||
20 2.3564800733902859e-02 2.0130469558539449e-02 -3.4093822740206496e-02
|
||||
21 1.6267868459547039e-01 4.8910520011812009e-02 4.9415963505101621e-03
|
||||
22 3.9143651683370253e-03 -8.1172695145679000e-02 -1.0834230526190378e-02
|
||||
23 4.9870311913370033e-02 1.2420611623040828e-01 -7.7833840076172459e-02
|
||||
24 1.2773385871506515e-01 9.4431969129075782e-02 8.4509868356579518e-02
|
||||
25 7.0376169719190279e-02 4.4792786930559310e-03 -4.6803763947891978e-02
|
||||
26 -5.0364526911511179e-02 -1.4929711058338557e-01 1.2850817811267942e-01
|
||||
27 4.6472580366719141e-02 -4.1923069078539394e-03 -1.3401923595724521e-03
|
||||
28 1.1441857387906706e-02 5.8173904345736008e-02 7.3370361778840071e-02
|
||||
29 4.7811159682183739e-02 1.0733827504367408e-01 -1.9879309433676450e-03
|
||||
30 -4.2511930547412778e-02 -2.9916695214642831e-02 -8.4066745720912481e-02
|
||||
31 -2.1952102296720562e-02 -1.1662029578060293e-01 7.4721379144302519e-02
|
||||
32 -1.9497502987605872e-01 -6.5187354007956666e-02 -2.2832899526331281e-02
|
||||
...
|
|
@ -0,0 +1,91 @@
|
|||
---
|
||||
lammps_version: 2 Jun 2020
|
||||
date_generated: Tue Jun 2 16:46:19 202
|
||||
epsilon: 5e-13
|
||||
prerequisites: ! |
|
||||
pair table
|
||||
pre_commands: ! ""
|
||||
post_commands: ! ""
|
||||
input_file: in.metal
|
||||
pair_style: table linear 10000
|
||||
pair_coeff: ! |
|
||||
1 1 ${input_dir}/pair_table_beck.txt beck_1_1
|
||||
1 2 ${input_dir}/pair_table_beck.txt beck_1_1
|
||||
2 2 ${input_dir}/pair_table_beck.txt beck_2_2
|
||||
extract: ! ""
|
||||
natoms: 32
|
||||
init_vdwl: 1.66849758741132
|
||||
init_coul: 0
|
||||
init_stress: ! |2-
|
||||
6.1946715433684973e+00 6.0610621944595691e+00 5.8874237884568794e+00 2.0726669272562587e-01 -2.1210093847498168e-02 -8.9416411707758034e-02
|
||||
init_forces: ! |2
|
||||
1 1.3461768519573423e-02 6.5534109919214642e-02 1.4238046153935983e-02
|
||||
2 -2.2001532385230976e-02 -7.7578110900587721e-02 4.8895494306522291e-02
|
||||
3 -3.8355274675308998e-02 1.8998944460354011e-01 -4.8534579158997129e-02
|
||||
4 2.0908450525723498e-02 -9.9065259851936448e-03 -5.2618638347233404e-02
|
||||
5 5.6008845819212463e-02 1.4266708026293753e-01 3.5487913450023841e-02
|
||||
6 4.1552575164020243e-02 2.9642511828555394e-02 -6.9641129743398126e-03
|
||||
7 -6.4155910069342403e-02 8.9302215279040434e-02 -1.0225629221330955e-02
|
||||
8 -6.8587774765165088e-02 -6.0829429175094735e-02 4.4680410492059397e-02
|
||||
9 1.4366115666253289e-02 -5.5193010436797592e-02 -2.8199868469874739e-02
|
||||
10 -3.2696772118295803e-02 -1.4472907530040827e-01 -1.1516096653547711e-01
|
||||
11 -4.0401292979786972e-02 -5.0403260261100417e-02 4.2969363549390502e-02
|
||||
12 3.0908963526062479e-02 -8.8120722839359025e-02 -3.9792237714215200e-03
|
||||
13 -1.8590586442952396e-02 2.4570524680954029e-02 -4.7073976129125013e-02
|
||||
14 5.6668681846789561e-02 -1.8708035295572849e-02 7.0129732306455847e-02
|
||||
15 -3.1927433330968973e-02 3.1638369787962112e-02 -2.8162497777685959e-02
|
||||
16 1.1004266778296544e-01 -9.1785066871052839e-02 3.7455063670217288e-02
|
||||
17 4.3874209968260171e-02 1.3058176120978526e-01 -1.6077990215935685e-03
|
||||
18 -1.4775183032052960e-01 -3.5651338364660598e-02 -7.0714213256030112e-02
|
||||
19 -1.5579450123857666e-01 -8.1557435871161682e-02 3.7491976413329374e-02
|
||||
20 2.4262106793077946e-02 1.9762251986969553e-02 -3.4094105051678786e-02
|
||||
21 1.6276246770534447e-01 5.0791644250007900e-02 4.3248360141969555e-03
|
||||
22 2.9904687035853137e-03 -8.1967139210456882e-02 -1.1772377300447360e-02
|
||||
23 4.6987794141318706e-02 1.2308604930197996e-01 -8.0566882858205235e-02
|
||||
24 1.2795930744437653e-01 9.4726737159825200e-02 8.3749152147737538e-02
|
||||
25 6.9925482162420033e-02 4.2199513301063160e-03 -4.6743912320864334e-02
|
||||
26 -5.1856917641538880e-02 -1.5105261662137287e-01 1.2862943385759271e-01
|
||||
27 4.6163997109484788e-02 -4.7144533487617334e-03 -2.0769859565411553e-04
|
||||
28 1.1137606033726113e-02 5.7570749823347561e-02 7.3702486316706894e-02
|
||||
29 4.8892603764312044e-02 1.0734444862695605e-01 -3.2133899506260749e-03
|
||||
30 -4.2587368463202192e-02 -3.0047436022746527e-02 -8.4421201266270535e-02
|
||||
31 -2.0646231349659299e-02 -1.1590205379082782e-01 7.4785818423894770e-02
|
||||
32 -1.9352068689594826e-01 -6.3282139756026798e-02 -2.2278655095207611e-02
|
||||
run_vdwl: 1.66727802356891
|
||||
run_coul: 0
|
||||
run_stress: ! |2-
|
||||
6.1925738027578641e+00 6.0573149352705613e+00 5.8826519662480035e+00 2.0544288354756310e-01 -2.2314569036134008e-02 -9.0767397150969681e-02
|
||||
run_forces: ! |2
|
||||
1 1.0239417972012135e-02 6.5143936411888370e-02 1.3356763777998637e-02
|
||||
2 -2.2314835701632570e-02 -7.7524477122967728e-02 4.8999346575662309e-02
|
||||
3 -3.9043638693828556e-02 1.8727196361074283e-01 -5.0358906369839446e-02
|
||||
4 2.1555046910191538e-02 -9.6562479880345862e-03 -5.2220025740068080e-02
|
||||
5 5.5684458879600447e-02 1.4098102798381096e-01 3.6430504994586173e-02
|
||||
6 4.2104147709418713e-02 2.9055058600247489e-02 -8.0778112152718948e-03
|
||||
7 -6.4963866924303920e-02 9.0824824870264262e-02 -1.1492621439859574e-02
|
||||
8 -6.9888106386663568e-02 -6.1362238801327997e-02 4.5061669154972568e-02
|
||||
9 1.5493057273285156e-02 -5.6307006366398599e-02 -2.9234755420043165e-02
|
||||
10 -3.0006706586658188e-02 -1.4355133290296190e-01 -1.1246538976169368e-01
|
||||
11 -4.0156699765253455e-02 -5.1238883202820718e-02 4.2112202625462891e-02
|
||||
12 3.2215165580774301e-02 -8.8013396380619557e-02 -4.0047290710007333e-03
|
||||
13 -1.9322767417550984e-02 2.3711197649086194e-02 -4.6454058795633212e-02
|
||||
14 5.7508424194302507e-02 -1.5717730349026085e-02 6.8892268883266869e-02
|
||||
15 -3.1552192265302363e-02 3.2002449140037137e-02 -2.7508481800674743e-02
|
||||
16 1.0688955089657577e-01 -9.0842508916126788e-02 3.6418887829925486e-02
|
||||
17 4.4577236329712736e-02 1.3022532646095397e-01 -7.5825494000398793e-04
|
||||
18 -1.4789247023417521e-01 -3.4554869410601124e-02 -7.1472651306375229e-02
|
||||
19 -1.5516659799350990e-01 -8.1733259734237992e-02 3.6528023380248152e-02
|
||||
20 2.3565292501585497e-02 2.0131963706666492e-02 -3.4090460756558867e-02
|
||||
21 1.6266349958385409e-01 4.8905943278807026e-02 4.9357951969207243e-03
|
||||
22 3.9108463662172284e-03 -8.1159914942901146e-02 -1.0833213112554453e-02
|
||||
23 4.9862761614696910e-02 1.2418695431753196e-01 -7.7818580582703634e-02
|
||||
24 1.2773299190190621e-01 9.4426552636226180e-02 8.4500013220674824e-02
|
||||
25 7.0366190135544543e-02 4.4772942266913711e-03 -4.6793931216364631e-02
|
||||
26 -5.0367407305875939e-02 -1.4928033291926532e-01 1.2849353197675831e-01
|
||||
27 4.6468146723438429e-02 -4.1892634838488693e-03 -1.3380548635599163e-03
|
||||
28 1.1447706368862415e-02 5.8175438626723523e-02 7.3359635688296038e-02
|
||||
29 4.7807434863290775e-02 1.0732112842460283e-01 -1.9886348252873588e-03
|
||||
30 -4.2515720470887731e-02 -2.9914625470396135e-02 -8.4056579797267661e-02
|
||||
31 -2.1956047762899965e-02 -1.1661348485300055e-01 7.4709459326432123e-02
|
||||
32 -1.9494431829672756e-01 -6.5181487099745139e-02 -2.2830961616444944e-02
|
||||
...
|
|
@ -0,0 +1,91 @@
|
|||
---
|
||||
lammps_version: 2 Jun 2020
|
||||
date_generated: Tue Jun 2 16:45:40 202
|
||||
epsilon: 5e-13
|
||||
prerequisites: ! |
|
||||
pair table
|
||||
pre_commands: ! ""
|
||||
post_commands: ! ""
|
||||
input_file: in.metal
|
||||
pair_style: table lookup 10000
|
||||
pair_coeff: ! |
|
||||
1 1 ${input_dir}/pair_table_beck.txt beck_1_1
|
||||
1 2 ${input_dir}/pair_table_beck.txt beck_1_1
|
||||
2 2 ${input_dir}/pair_table_beck.txt beck_2_2
|
||||
extract: ! ""
|
||||
natoms: 32
|
||||
init_vdwl: 1.66822081098814
|
||||
init_coul: 0
|
||||
init_stress: ! |2-
|
||||
6.1925708391090373e+00 6.0607873158796632e+00 5.8866502515961283e+00 2.0635047994864009e-01 -2.2304749096038870e-02 -8.9977381381968910e-02
|
||||
init_forces: ! |2
|
||||
1 1.3652870615947011e-02 6.5292578314726832e-02 1.4401786849082793e-02
|
||||
2 -2.2075986500789631e-02 -7.7530344175629484e-02 4.8918295738716797e-02
|
||||
3 -3.8548065982306853e-02 1.9049129535293563e-01 -4.8497042796395010e-02
|
||||
4 2.0883993795891603e-02 -9.8004460881346168e-03 -5.2544284235507610e-02
|
||||
5 5.6473535558532267e-02 1.4259381967545881e-01 3.5283580728998398e-02
|
||||
6 4.1436803654676703e-02 2.9757415671595559e-02 -6.9441568265177812e-03
|
||||
7 -6.4342009716857218e-02 8.9407090045572943e-02 -1.0076354375758356e-02
|
||||
8 -6.8438588566627351e-02 -6.0719143235589357e-02 4.4375134570496459e-02
|
||||
9 1.4267631647248345e-02 -5.5225493516036783e-02 -2.8235579582748780e-02
|
||||
10 -3.2874735468490235e-02 -1.4496018410464423e-01 -1.1522122672190530e-01
|
||||
11 -4.0439244564162688e-02 -5.0797057909291822e-02 4.2990522799705479e-02
|
||||
12 3.1118238818285009e-02 -8.8117800460577142e-02 -4.0963549347812021e-03
|
||||
13 -1.8421701898180837e-02 2.4603479320682679e-02 -4.6953330610188748e-02
|
||||
14 5.6779946032995847e-02 -1.8997405137617097e-02 7.0084749782857475e-02
|
||||
15 -3.1872432338948091e-02 3.1520110382368773e-02 -2.8177989701802592e-02
|
||||
16 1.1013395678084995e-01 -9.1707318824236786e-02 3.7083770573599802e-02
|
||||
17 4.3975078896704253e-02 1.3054106752514974e-01 -1.5760211066586478e-03
|
||||
18 -1.4753246799540981e-01 -3.5398540009504140e-02 -7.0784984645480470e-02
|
||||
19 -1.5562703896771166e-01 -8.1533158870799177e-02 3.7998367628389429e-02
|
||||
20 2.4120555351187806e-02 1.9895957059386932e-02 -3.4031571261011077e-02
|
||||
21 1.6241181372756625e-01 5.0567395846590979e-02 4.0311135803611352e-03
|
||||
22 3.0847862699784918e-03 -8.2082703890837161e-02 -1.1813933267531539e-02
|
||||
23 4.6631319964723403e-02 1.2294704911631910e-01 -8.0759997950587623e-02
|
||||
24 1.2784615418643658e-01 9.4570579283427048e-02 8.4136049252381967e-02
|
||||
25 6.9854637188683621e-02 4.3796329364953045e-03 -4.6383679169275639e-02
|
||||
26 -5.1672371161515490e-02 -1.5093773642419464e-01 1.2890155107784523e-01
|
||||
27 4.6418514479134469e-02 -4.8647715941130543e-03 -3.3400893593061448e-04
|
||||
28 1.0837875140475392e-02 5.7768778789330170e-02 7.3335429938361563e-02
|
||||
29 4.8424486534314935e-02 1.0705191088477574e-01 -3.4221430692390835e-03
|
||||
30 -4.2678491461167409e-02 -3.0167096740169222e-02 -8.4323491798094938e-02
|
||||
31 -2.0446963122925290e-02 -1.1577119295225209e-01 7.4834425292344492e-02
|
||||
32 -1.9338210089853922e-01 -6.2777766271189708e-02 -2.2198626823726184e-02
|
||||
run_vdwl: 1.66790120138923
|
||||
run_coul: 0
|
||||
run_stress: ! |2-
|
||||
6.1954399052539300e+00 6.0597796933663810e+00 5.8839846490596770e+00 2.0464958122047128e-01 -2.2990948428733799e-02 -9.0561388880444543e-02
|
||||
run_forces: ! |2
|
||||
1 1.0357196419898495e-02 6.5372257333873959e-02 1.3514409758410917e-02
|
||||
2 -2.2518946587964585e-02 -7.7700478129363010e-02 4.8980708027650338e-02
|
||||
3 -3.9187350884245992e-02 1.8746598368586515e-01 -5.0095509280450985e-02
|
||||
4 2.1505122391926864e-02 -9.8121998835355474e-03 -5.2197325168546041e-02
|
||||
5 5.6368397082486393e-02 1.4115837375527868e-01 3.6749677569935905e-02
|
||||
6 4.2042380520510882e-02 2.9049092654418140e-02 -8.0059207630978693e-03
|
||||
7 -6.5262053410956963e-02 9.1189712395790753e-02 -1.1162106417995799e-02
|
||||
8 -6.9823982763573419e-02 -6.1642359327017858e-02 4.5148186601411129e-02
|
||||
9 1.5581717631005403e-02 -5.6464988109373171e-02 -2.9179373549110328e-02
|
||||
10 -2.9936010364121191e-02 -1.4403347574591194e-01 -1.1249323547874966e-01
|
||||
11 -4.0279718641423851e-02 -5.1267663186455890e-02 4.2308426648069226e-02
|
||||
12 3.2548290765190446e-02 -8.8360090934889973e-02 -4.1059424850670304e-03
|
||||
13 -1.9100876563736404e-02 2.3923943182546592e-02 -4.6654992572323889e-02
|
||||
14 5.7003886104469645e-02 -1.5977942426948746e-02 6.9080947733147463e-02
|
||||
15 -3.1419200863690128e-02 3.2134894708585104e-02 -2.7460582419399034e-02
|
||||
16 1.0678077169426231e-01 -9.0718758218836820e-02 3.6086450730476470e-02
|
||||
17 4.4432206292973897e-02 1.3053785119638170e-01 -8.8349832217821166e-04
|
||||
18 -1.4847693210486995e-01 -3.4770804844180284e-02 -7.1598050906370336e-02
|
||||
19 -1.5584406172770648e-01 -8.1902850262455335e-02 3.6401901739187829e-02
|
||||
20 2.3632828687886766e-02 2.0210640568054113e-02 -3.3962375402201296e-02
|
||||
21 1.6251200328353549e-01 4.8509762572667509e-02 4.6262805117567836e-03
|
||||
22 3.9297251786593766e-03 -8.1271664355599668e-02 -1.0814196256901271e-02
|
||||
23 4.9681279655079395e-02 1.2435597457773782e-01 -7.8146336899556537e-02
|
||||
24 1.2830345267622284e-01 9.4849763681645619e-02 8.4755594763442382e-02
|
||||
25 7.0574066259719931e-02 4.7738855789510749e-03 -4.6746928071330643e-02
|
||||
26 -5.0012323977413009e-02 -1.4919205052782003e-01 1.2835423785227032e-01
|
||||
27 4.6693855278230161e-02 -4.3926905018267671e-03 -1.5097765818073844e-03
|
||||
28 1.1103730609808571e-02 5.8020761280684265e-02 7.3177666578219974e-02
|
||||
29 4.8063412527103180e-02 1.0769074559895483e-01 -1.8637969627234715e-03
|
||||
30 -4.2307197338881525e-02 -2.9602719505751475e-02 -8.4192072289735478e-02
|
||||
31 -2.2008710097816863e-02 -1.1651727431063712e-01 7.4819836125210509e-02
|
||||
32 -1.9493695773256986e-01 -6.5615632500831411e-02 -2.2932304811643992e-02
|
||||
...
|
|
@ -0,0 +1,91 @@
|
|||
---
|
||||
lammps_version: 2 Jun 2020
|
||||
date_generated: Tue Jun 2 16:47:29 202
|
||||
epsilon: 5e-13
|
||||
prerequisites: ! |
|
||||
pair table
|
||||
pre_commands: ! ""
|
||||
post_commands: ! ""
|
||||
input_file: in.metal
|
||||
pair_style: table spline 10000
|
||||
pair_coeff: ! |
|
||||
1 1 ${input_dir}/pair_table_beck.txt beck_1_1
|
||||
1 2 ${input_dir}/pair_table_beck.txt beck_1_1
|
||||
2 2 ${input_dir}/pair_table_beck.txt beck_2_2
|
||||
extract: ! ""
|
||||
natoms: 32
|
||||
init_vdwl: 1.66849237317226
|
||||
init_coul: 0
|
||||
init_stress: ! |2-
|
||||
6.1946491697735437e+00 6.0610401365658024e+00 5.8874025724620429e+00 2.0726580316940962e-01 -2.1210361695457737e-02 -8.9415208770840096e-02
|
||||
init_forces: ! |2
|
||||
1 1.3461900166603218e-02 6.5533756921056424e-02 1.4237872357245411e-02
|
||||
2 -2.2001295274018444e-02 -7.7577892895343906e-02 4.8895379860549121e-02
|
||||
3 -3.8355321598214184e-02 1.8998901399717005e-01 -4.8534413942792565e-02
|
||||
4 2.0908396793481509e-02 -9.9066117521727070e-03 -5.2618403012712124e-02
|
||||
5 5.6008413316644114e-02 1.4266663667152152e-01 3.5487859843299545e-02
|
||||
6 4.1552391358114872e-02 2.9642295673519448e-02 -6.9640527234652461e-03
|
||||
7 -6.4155546133542837e-02 8.9301753561023003e-02 -1.0225594515349757e-02
|
||||
8 -6.8587453028246703e-02 -6.0829070542048190e-02 4.4680193619080481e-02
|
||||
9 1.4366068063822880e-02 -5.5192738935146854e-02 -2.8199665411938767e-02
|
||||
10 -3.2697019980711756e-02 -1.4472840813665638e-01 -1.1516072254520793e-01
|
||||
11 -4.0401272804121854e-02 -5.0402863668631913e-02 4.2969197904076183e-02
|
||||
12 3.0908680631425673e-02 -8.8120244487072494e-02 -3.9791730686956463e-03
|
||||
13 -1.8590573588915013e-02 2.4570208722629043e-02 -4.7073683697064536e-02
|
||||
14 5.6668374919472228e-02 -1.8707913260279440e-02 7.0129358194749039e-02
|
||||
15 -3.1927219149443416e-02 3.1638287874549260e-02 -2.8162304610562044e-02
|
||||
16 1.1004228625210850e-01 -9.1784876878925489e-02 3.7455203664712555e-02
|
||||
17 4.3874110434413707e-02 1.3058123184332987e-01 -1.6078470938548138e-03
|
||||
18 -1.4775126775856298e-01 -3.5651201719208082e-02 -7.0713629953624360e-02
|
||||
19 -1.5579381073821677e-01 -8.1556836647145553e-02 3.7492096227633373e-02
|
||||
20 2.4262149455103726e-02 1.9762082500828778e-02 -3.4093995317030654e-02
|
||||
21 1.6276229493138114e-01 5.0791551859706734e-02 4.3245301958938116e-03
|
||||
22 2.9902891288209246e-03 -8.1966958449035843e-02 -1.1772410092696793e-02
|
||||
23 4.6987757268038249e-02 1.2308546657800162e-01 -8.0566592682958557e-02
|
||||
24 1.2795842291296708e-01 9.4726040785926641e-02 8.3748524809472952e-02
|
||||
25 6.9925310941154381e-02 4.2197730528178625e-03 -4.6744097166442150e-02
|
||||
26 -5.1856965388326640e-02 -1.5105237092347160e-01 1.2862892445018109e-01
|
||||
27 4.6163842732722504e-02 -4.7145326827103505e-03 -2.0770802868259192e-04
|
||||
28 1.1137379858917107e-02 5.7570783215990615e-02 7.3702487792676769e-02
|
||||
29 4.8892657028303636e-02 1.0734409425986763e-01 -3.2134995127967849e-03
|
||||
30 -4.2587398133307960e-02 -3.0047443784418228e-02 -8.4420705386072381e-02
|
||||
31 -2.0646215207926085e-02 -1.1590108886476506e-01 7.4785520470549566e-02
|
||||
32 -1.9351936740994052e-01 -6.3281923890906297e-02 -2.2278650628172247e-02
|
||||
run_vdwl: 1.667273130413
|
||||
run_coul: 0
|
||||
run_stress: ! |2-
|
||||
6.1925535687585693e+00 6.0572952105271769e+00 5.8826298841000604e+00 2.0544338949977917e-01 -2.2313078114848450e-02 -9.0766976514897041e-02
|
||||
run_forces: ! |2
|
||||
1 1.0239633061502058e-02 6.5143827221595174e-02 1.3356826587515483e-02
|
||||
2 -2.2314719792140746e-02 -7.7524048417887792e-02 4.8999119168703323e-02
|
||||
3 -3.9043356307568236e-02 1.8727112901323323e-01 -5.0358319574288206e-02
|
||||
4 2.1555031522153656e-02 -9.6560578347078038e-03 -5.2219714561247452e-02
|
||||
5 5.5684799810960112e-02 1.4098076857747269e-01 3.6430385068854737e-02
|
||||
6 4.2103921190025241e-02 2.9054969033758940e-02 -8.0777612807259296e-03
|
||||
7 -6.4964007703587665e-02 9.0824767825338215e-02 -1.1492723720965943e-02
|
||||
8 -6.9887912879430303e-02 -6.1361831723537673e-02 4.5061147281770325e-02
|
||||
9 1.5493100733112084e-02 -5.6306897360260899e-02 -2.9234346339233039e-02
|
||||
10 -3.0007119234870205e-02 -1.4355108819988596e-01 -1.1246502096182201e-01
|
||||
11 -4.0156584042997157e-02 -5.1238608709860869e-02 4.2111943089822509e-02
|
||||
12 3.2215137999640264e-02 -8.8013573068877235e-02 -4.0049314316609446e-03
|
||||
13 -1.9322692643690253e-02 2.3710729865779583e-02 -4.6453771618837091e-02
|
||||
14 5.7508119522746703e-02 -1.5717550954823703e-02 6.8891636524075137e-02
|
||||
15 -3.1551853579254628e-02 3.2002270904692251e-02 -2.7508263221790400e-02
|
||||
16 1.0688913506500985e-01 -9.0842063672437995e-02 3.6419114766505958e-02
|
||||
17 4.4576981599750799e-02 1.3022472720372444e-01 -7.5802573483000615e-04
|
||||
18 -1.4789239369554841e-01 -3.4554795916705260e-02 -7.1472573328781749e-02
|
||||
19 -1.5516657008010420e-01 -8.1733453599869749e-02 3.6527707427395764e-02
|
||||
20 2.3565108550513952e-02 2.0131835710028016e-02 -3.4090223278000355e-02
|
||||
21 1.6266310434046480e-01 4.8905845083266029e-02 4.9357148091662226e-03
|
||||
22 3.9108125555495730e-03 -8.1159764595007206e-02 -1.0833146565530810e-02
|
||||
23 4.9862133358188218e-02 1.2418637371342198e-01 -7.7818397024808514e-02
|
||||
24 1.2773306535829987e-01 9.4426378198700950e-02 8.4499926668801975e-02
|
||||
25 7.0365780658878857e-02 4.4772437288752168e-03 -4.6793953502009267e-02
|
||||
26 -5.0367468278612715e-02 -1.4927976307827082e-01 1.2849283634143213e-01
|
||||
27 4.6468158385616867e-02 -4.1893770730035470e-03 -1.3381218640924168e-03
|
||||
28 1.1447647509745237e-02 5.8175457185785213e-02 7.3359279966104529e-02
|
||||
29 4.7807504512594315e-02 1.0732100993527130e-01 -1.9887010850049803e-03
|
||||
30 -4.2515398596597830e-02 -2.9914524234883048e-02 -8.4055979568242525e-02
|
||||
31 -2.1955840630845491e-02 -1.1661294434426502e-01 7.4709133379083956e-02
|
||||
32 -1.9494325826950429e-01 -6.5180990416658327e-02 -2.2830796417360581e-02
|
||||
...
|
|
@ -0,0 +1,98 @@
|
|||
---
|
||||
lammps_version: 2 Jun 2020
|
||||
date_generated: Tue Jun 2 17:07:52 202
|
||||
epsilon: 5e-14
|
||||
prerequisites: ! |
|
||||
atom full
|
||||
pair table
|
||||
pre_commands: ! ""
|
||||
post_commands: ! ""
|
||||
input_file: in.fourmol
|
||||
pair_style: table linear 1000
|
||||
pair_coeff: ! |
|
||||
1 1 ${input_dir}/pair_table_lj_cut.txt lj_1_1
|
||||
1 2 ${input_dir}/pair_table_lj_cut.txt lj_1_2
|
||||
1 3 ${input_dir}/pair_table_lj_cut.txt lj_1_3
|
||||
1 4 ${input_dir}/pair_table_lj_cut.txt lj_1_4
|
||||
1 5 ${input_dir}/pair_table_lj_cut.txt lj_1_5
|
||||
2 2 ${input_dir}/pair_table_lj_cut.txt lj_2_2
|
||||
2 3 ${input_dir}/pair_table_lj_cut.txt lj_2_3
|
||||
2 4 ${input_dir}/pair_table_lj_cut.txt lj_2_4
|
||||
2 5 ${input_dir}/pair_table_lj_cut.txt lj_2_5
|
||||
3 3 ${input_dir}/pair_table_lj_cut.txt lj_3_3
|
||||
3 4 ${input_dir}/pair_table_lj_cut.txt lj_3_4
|
||||
3 5 ${input_dir}/pair_table_lj_cut.txt lj_3_5
|
||||
4 4 ${input_dir}/pair_table_lj_cut.txt lj_4_4
|
||||
4 5 ${input_dir}/pair_table_lj_cut.txt lj_4_5
|
||||
5 5 ${input_dir}/pair_table_lj_cut.txt lj_5_5
|
||||
extract: ! ""
|
||||
natoms: 29
|
||||
init_vdwl: 756.641645798358
|
||||
init_coul: 0
|
||||
init_stress: ! |2-
|
||||
2.2090340377185967e+03 2.2244453255747117e+03 4.7288126624664974e+03 -7.6403326905269398e+02 2.8082113929050504e+01 6.7633740837364439e+02
|
||||
init_forces: ! |2
|
||||
21 -7.4152834115258486e+01 -8.4097799952580075e+01 2.3159619440133380e+02
|
||||
22 -1.1068613517882235e+02 -2.6823333923316500e+01 -1.7365467444566553e+02
|
||||
23 1.8482904133388223e+02 1.1093264541659750e+02 -5.7930741636712071e+01
|
||||
19 3.1933948922635905e-04 -2.3852967242197055e-04 1.7434557181616340e-03
|
||||
18 -1.8861300062111192e-02 -3.3400052294502179e-02 3.0998859026254152e-02
|
||||
20 -9.9899500683441750e-04 -1.0223083257768326e-03 3.6965867058990032e-04
|
||||
28 -1.8537423924296499e+02 7.9666126830459447e+01 -1.2542634211727822e+02
|
||||
4 -7.9160281367275722e+00 2.1475153087741110e+00 -5.6273386055724828e+00
|
||||
10 5.3659703631942352e+02 -6.1638821121220133e+02 -1.8524754345847680e+02
|
||||
11 -2.3998246191028687e+00 -6.0237447250432350e+00 -9.8493429965792298e+00
|
||||
12 1.7521141359856628e+01 1.0629841850210417e+01 -7.9312291032117042e+00
|
||||
14 -3.4254573458881881e+00 6.9454087271157916e-01 -8.8549490264531219e+00
|
||||
3 -1.3601366655597215e+02 -3.8933969547126463e+02 -1.4673165295081574e+02
|
||||
6 -8.3976623131970030e+02 9.7421656440040920e+02 1.1689035557011593e+03
|
||||
7 5.9087836043818115e+01 -3.4067040950997404e+02 -1.7408617984623156e+03
|
||||
15 -2.0812424842265748e-01 8.6236045287663003e+00 3.0626696691420956e+00
|
||||
8 1.4404606696350953e+02 -1.1101530899074169e+02 3.9802209126866262e+02
|
||||
9 8.1112222258717168e+01 8.7379022925008144e+01 3.5897466875849778e+02
|
||||
16 4.6872469487658930e+02 -3.3472142759962014e+02 -1.2036108146826032e+03
|
||||
17 -4.5876131348491481e+02 3.1932075524331395e+02 1.2202196485462191e+03
|
||||
5 -2.5605507618514016e+00 -4.1184521759347588e+00 1.2369824594500452e+01
|
||||
13 8.2458457495438626e+00 -3.2680411194697614e+00 -1.5173080370124606e-01
|
||||
2 1.5875070222736517e+02 1.3063288077538610e+02 -1.8684429323195315e+02
|
||||
1 -2.3000580006052314e+01 2.7192815329191200e+02 3.3414196848607327e+02
|
||||
27 5.3953257632741014e+01 -2.3246330657484364e+02 9.3521822143445291e+01
|
||||
29 1.3142887167232908e+02 1.5280375224826219e+02 3.1900088976429561e+01
|
||||
24 3.6069363323679390e+01 -2.1770366344996296e+02 1.1410578468006614e+02
|
||||
25 -1.5123846858732526e+02 2.4345575024648110e+01 -1.2714600914378309e+02
|
||||
26 1.1515691479712817e+02 1.9334707687878640e+02 1.3017031466176082e+01
|
||||
run_vdwl: 146.327829985032
|
||||
run_coul: 0
|
||||
run_stress: ! |2-
|
||||
6.2914745307898283e+02 6.7439990734333583e+02 4.8382994180885322e+02 -3.2311602844067630e+02 -2.9168790037089135e+01 1.2280146536160866e+02
|
||||
run_forces: ! |2
|
||||
21 -9.8223704263420135e+00 -1.1937831142654984e+01 3.8747486275879332e+01
|
||||
22 -1.8260879394786041e+01 -4.4231132834754163e+00 -2.9364817699370402e+01
|
||||
23 2.8071936064676528e+01 1.6373759184425133e+01 -9.3702350107338450e+00
|
||||
19 2.5604832046069535e-04 -2.4189898030892005e-04 1.6743691237745819e-03
|
||||
18 -1.8054106711718410e-02 -3.1568964918282955e-02 2.9599553823736552e-02
|
||||
20 -8.8390456832979493e-04 -9.1401459749508313e-04 3.6013486968785625e-04
|
||||
28 -2.5002749675394742e+01 1.1546639020795190e+01 -1.6860888288423549e+01
|
||||
4 -8.7521679338772564e+00 3.2350894298919783e+00 -6.3183019964749780e+00
|
||||
10 6.3968310015089294e+01 -7.5154164336910185e+01 -7.5921779563234097e+01
|
||||
11 -6.3974181801433527e+00 -8.2015044886741890e+00 -1.6623131445951760e+01
|
||||
12 1.4375970778558539e+01 1.2183815698169100e+01 -8.2849268567516905e+00
|
||||
14 -2.8220099744921270e+00 4.4312152330104282e-01 -7.1784838499077441e+00
|
||||
3 -2.5170415829369691e+02 1.0807957243252388e+02 8.7902068634117185e+01
|
||||
6 1.2021318256369948e+02 -1.0159989935597440e+02 -1.4455046866801038e+02
|
||||
7 3.7064970613492512e+00 -1.0481522858827926e+01 -4.1617502928655071e+01
|
||||
15 -4.0482676064288375e-01 8.2478176580999758e+00 3.1232194954592902e+00
|
||||
8 -1.9012552812922401e+01 1.9341369900133493e+01 5.6061660162509632e+01
|
||||
9 1.1002966844626583e+01 1.2955046425976752e+01 4.8964009756379951e+01
|
||||
16 5.3215666467083004e+01 -6.8452018298715132e+01 1.6067414590921679e+01
|
||||
17 -1.4543993736556850e+01 9.9518135650728148e+00 4.0557829246754260e+01
|
||||
5 -1.7372909950509312e+00 -2.5663073053399832e+00 1.0327280945285382e+01
|
||||
13 7.4327969687776196e+00 -2.8316539598264616e+00 -1.0441307986265116e-01
|
||||
2 1.8402173670762625e+01 1.3899059683375182e+01 -2.2581973215530972e+01
|
||||
1 1.3092386727121557e+01 8.0975258006863527e+01 6.0162717183582615e+01
|
||||
27 3.0641658609965634e+00 -3.8727506359895912e+01 1.1409481341404170e+01
|
||||
29 2.1946401102557179e+01 2.7187485766660277e+01 5.4471747925943950e+00
|
||||
24 1.2590957134158188e+01 -3.6189602254037929e+01 2.3845923499083668e+01
|
||||
25 -3.0061118850595161e+01 5.3993721695176697e+00 -2.5809444960387523e+01
|
||||
26 1.7456807738003775e+01 3.0778628058022715e+01 1.9384675815059120e+00
|
||||
...
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +1,16 @@
|
|||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "gmock/gmock.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "lammps.h"
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "gmock/gmock.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "potential_file_reader.h"
|
||||
|
|
|
@ -5,3 +5,7 @@ add_test(Tokenizer test_tokenizer)
|
|||
add_executable(test_utils test_utils.cpp)
|
||||
target_link_libraries(test_utils PRIVATE lammps GTest::GMockMain GTest::GMock GTest::GTest)
|
||||
add_test(Utils test_utils)
|
||||
|
||||
add_executable(test_fmtlib test_fmtlib.cpp)
|
||||
target_link_libraries(test_fmtlib PRIVATE lammps GTest::GMockMain GTest::GMock GTest::GTest)
|
||||
add_test(FmtLib test_fmtlib)
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "lmptype.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "gmock/gmock.h"
|
||||
#include "fmt/format.h"
|
||||
#include <string>
|
||||
#include <exception>
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using ::testing::Eq;
|
||||
|
||||
// this tests a subset of {fmt} that is most relevant to LAMMPS
|
||||
|
||||
TEST(FmtLib, insert_string) {
|
||||
const char val[] = "word";
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word word"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, insert_int) {
|
||||
const int val = 333;
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word 333"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, insert_neg_int) {
|
||||
const int val = -333;
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word -333"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, insert_bigint) {
|
||||
if (sizeof(bigint) == 4) GTEST_SKIP();
|
||||
const bigint val = 9945234592L;
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word 9945234592"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, insert_neg_bigint) {
|
||||
if (sizeof(bigint) == 4) GTEST_SKIP();
|
||||
const bigint val = -9945234592L;
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word -9945234592"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, insert_tagint) {
|
||||
if (sizeof(tagint) == 4) GTEST_SKIP();
|
||||
const tagint val = 9945234592L;
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word 9945234592"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, insert_neg_tagint) {
|
||||
if (sizeof(tagint) == 4) GTEST_SKIP();
|
||||
const tagint val = -9945234592L;
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word -9945234592"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, insert_imageint) {
|
||||
if (sizeof(imageint) == 4) GTEST_SKIP();
|
||||
const imageint val = 9945234592L;
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word 9945234592"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, insert_neg_imageint) {
|
||||
if (sizeof(imageint) == 4) GTEST_SKIP();
|
||||
const imageint val = -9945234592L;
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word -9945234592"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, insert_double) {
|
||||
const double val = 1.5;
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word 1.5"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, insert_neg_double) {
|
||||
const double val = -1.5;
|
||||
auto text = fmt::format("word {}",val);
|
||||
ASSERT_THAT(text, Eq("word -1.5"));
|
||||
}
|
||||
|
||||
TEST(FmtLib, int_for_double) {
|
||||
const double val = -1.5;
|
||||
ASSERT_THROW(fmt::format("word {:d}",val),std::exception);
|
||||
}
|
||||
|
||||
TEST(FmtLib, double_for_int) {
|
||||
const int val = 15;
|
||||
ASSERT_THROW(fmt::format("word {:g}",val),std::exception);
|
||||
}
|
|
@ -1,5 +1,18 @@
|
|||
#include <gtest/gtest.h>
|
||||
#include <gmock/gmock.h>
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "gmock/gmock.h"
|
||||
#include "tokenizer.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
|
|
@ -1,5 +1,18 @@
|
|||
#include <gtest/gtest.h>
|
||||
#include <gmock/gmock.h>
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "gmock/gmock.h"
|
||||
#include "utils.h"
|
||||
#include <string>
|
||||
|
||||
|
|
Loading…
Reference in New Issue