diff --git a/cmake/Modules/Packages/GPU.cmake b/cmake/Modules/Packages/GPU.cmake index cf321eee9a..8ac1decc86 100644 --- a/cmake/Modules/Packages/GPU.cmake +++ b/cmake/Modules/Packages/GPU.cmake @@ -60,9 +60,9 @@ if(GPU_API STREQUAL "CUDA") option(CUDA_MPS_SUPPORT "Enable tweaks to support CUDA Multi-process service (MPS)" OFF) if(CUDA_MPS_SUPPORT) if(CUDPP_OPT) - message(FATAL_ERROR "Must use -DCUDPP_OPT=OFF with -DGPU_CUDA_MPS_SUPPORT=ON") + message(FATAL_ERROR "Must use -DCUDPP_OPT=OFF with -DCUDA_MPS_SUPPORT=ON") endif() - set(GPU_CUDA_MPS_FLAGS "-DCUDA_PROXY") + set(GPU_CUDA_MPS_FLAGS "-DCUDA_MPS_SUPPORT") endif() set(GPU_ARCH "sm_50" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)") diff --git a/doc/Makefile b/doc/Makefile index a8e2ba5300..ad80017b7e 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -214,7 +214,7 @@ style_check : $(VENV) package_check : $(VENV) @(\ - . $(VENV)/bin/activate ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \\ + . $(VENV)/bin/activate ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \ python utils/check-packages.py -s ../src -d src ;\ deactivate ;\ ) diff --git a/doc/src/Commands_fix.rst b/doc/src/Commands_fix.rst index 5b331af1aa..89cf3e880a 100644 --- a/doc/src/Commands_fix.rst +++ b/doc/src/Commands_fix.rst @@ -264,6 +264,7 @@ OPT. * :doc:`wall/lj1043 ` * :doc:`wall/lj126 ` * :doc:`wall/lj93 (k) ` + * :doc:`wall/lepton ` * :doc:`wall/morse ` * :doc:`wall/piston ` * :doc:`wall/reflect (k) ` @@ -271,4 +272,5 @@ OPT. * :doc:`wall/region ` * :doc:`wall/region/ees ` * :doc:`wall/srd ` + * :doc:`wall/table ` * :doc:`widom ` diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index 20e3d2c094..2eae1aabc7 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -320,7 +320,8 @@ eam generate tool ----------------------------- The tools/eam_generate directory contains several one-file C programs -that convert an analytic formula into a tabulated :doc:`embedded atom method (EAM) ` setfl potential file. The potentials they +that convert an analytic formula into a tabulated :doc:`embedded atom +method (EAM) ` setfl potential file. The potentials they produce are in the potentials directory, and can be used with the :doc:`pair_style eam/alloy ` command. diff --git a/doc/src/fix.rst b/doc/src/fix.rst index 71f8bf9e16..7d505fec63 100644 --- a/doc/src/fix.rst +++ b/doc/src/fix.rst @@ -416,6 +416,7 @@ accelerated styles exist. * :doc:`wall/lj1043 ` - Lennard-Jones 10--4--3 wall * :doc:`wall/lj126 ` - Lennard-Jones 12--6 wall * :doc:`wall/lj93 ` - Lennard-Jones 9--3 wall +* :doc:`wall/lepton ` - Custom Lepton expression wall * :doc:`wall/morse ` - Morse potential wall * :doc:`wall/piston ` - moving reflective piston wall * :doc:`wall/reflect ` - reflecting wall(s) @@ -423,6 +424,7 @@ accelerated styles exist. * :doc:`wall/region ` - use region surface as wall * :doc:`wall/region/ees ` - use region surface as wall for ellipsoidal particles * :doc:`wall/srd ` - slip/no-slip wall for SRD particles +* :doc:`wall/table ` - Tabulated potential wall wall * :doc:`widom ` - Widom insertions of atoms or molecules Restrictions diff --git a/doc/src/fix_wall.rst b/doc/src/fix_wall.rst index 9f20470bbc..7b38b6035c 100644 --- a/doc/src/fix_wall.rst +++ b/doc/src/fix_wall.rst @@ -4,7 +4,9 @@ .. index:: fix wall/lj1043 .. index:: fix wall/colloid .. index:: fix wall/harmonic +.. index:: fix wall/lepton .. index:: fix wall/morse +.. index:: fix wall/table fix wall/lj93 command ===================== @@ -23,20 +25,31 @@ fix wall/colloid command fix wall/harmonic command ========================= +fix wall/lepton command +========================= + fix wall/morse command ====================== +fix wall/table command +========================= + Syntax """""" .. parsed-literal:: - fix ID group-ID style face args ... keyword value ... + fix ID group-ID style [tabstyle] [N] face args ... keyword value ... * ID, group-ID are documented in :doc:`fix ` command -* style = *wall/lj93* or *wall/lj126* or *wall/lj1043* or *wall/colloid* or *wall/harmonic* or *wall/morse* +* style = *wall/lj93* or *wall/lj126* or *wall/lj1043* or *wall/colloid* or *wall/harmonic* or *wall/lepton* or *wall/morse* or *wall/table* +* tabstyle = *linear* or *spline* = method of table interpolation (only applies to *wall/table*) +* N = use N values in *linear* or *spline* interpolation (only applies to *wall/table*) * one or more face/arg pairs may be appended * face = *xlo* or *xhi* or *ylo* or *yhi* or *zlo* or *zhi* + +.. spacer + * args for styles *lj93* or *lj126* or *lj1043* or *colloid* or *harmonic* .. parsed-literal:: @@ -50,7 +63,19 @@ Syntax epsilon can be a variable (see below) sigma = size factor for wall-particle interaction (distance units) sigma can be a variable (see below) - cutoff = distance from wall at which wall-particle interaction is cut off (distance units) + cutoff = distance from wall at which wall-particle interactions are cut off (distance units) + +* args for style *lepton* + + .. parsed-literal:: + + args = coord expression cutoff + coord = position of wall = EDGE or constant or variable + EDGE = current lo or hi edge of simulation box + constant = number like 0.0 or -30.0 (distance units) + variable = :doc:`equal-style variable ` like v_x or v_wiggle + expression = Lepton expression for the potential (energy units) + cutoff = distance from wall at which wall-particle interactions are cut off (distance units) * args for style *morse* @@ -67,7 +92,20 @@ Syntax alpha can be a variable (see below) r_0 = distance of the potential minimum from the face of region (distance units) r_0 can be a variable (see below) - cutoff = distance from wall at which wall-particle interaction is cut off (distance units) + cutoff = distance from wall at which wall-particle interactions are cut off (distance units) + +* args for style *table* + + .. parsed-literal:: + + args = coord filename keyword cutoff + coord = position of wall = EDGE or constant or variable + EDGE = current lo or hi edge of simulation box + constant = number like 0.0 or -30.0 (distance units) + variable = :doc:`equal-style variable ` like v_x or v_wiggle + filename = file containing tabulated energy and force values + keyword = section identifier to select a specific table in table file + cutoff = distance from wall at which wall-particle interactions are cut off (distance units) * zero or more keyword/value pairs may be appended * keyword = *units* or *fld* or *pbc* @@ -91,9 +129,13 @@ Examples fix wallhi all wall/lj93 xlo -1.0 1.0 1.0 2.5 units box fix wallhi all wall/lj93 xhi EDGE 1.0 1.0 2.5 + fix wallhi all wall/harmonic xhi EDGE 100.0 0.0 4.0 units box fix wallhi all wall/morse xhi EDGE 1.0 1.0 1.0 2.5 units box fix wallhi all wall/lj126 v_wiggle 23.2 1.0 1.0 2.5 fix zwalls all wall/colloid zlo 0.0 1.0 1.0 0.858 zhi 40.0 1.0 1.0 0.858 + fix xwall mobile wall/table spline 200 EDGE -5.0 walltab.dat HARMONIC 4.0 + fix xwalls mobile wall/lepton xlo -5.0 "k*(r-rc)^2;k=100.0" 4.0 xhi 5.0 "k*(r-rc)^2;k=100.0" 4.0 + Description """"""""""" @@ -103,7 +145,7 @@ wall that interacts with the atoms in the group by generating a force on the atom in a direction perpendicular to the wall. The energy of wall-particle interactions depends on the style. -For style *wall/lj93*, the energy E is given by the 9/3 potential: +For style *wall/lj93*, the energy E is given by the 9-3 Lennard-Jones potential: .. math:: @@ -111,7 +153,7 @@ For style *wall/lj93*, the energy E is given by the 9/3 potential: \left(\frac{\sigma}{r}\right)^3 \right] \qquad r < r_c -For style *wall/lj126*, the energy E is given by the 12/6 potential: +For style *wall/lj126*, the energy E is given by the 12-6 Lennard-Jones potential: .. math:: @@ -119,7 +161,7 @@ For style *wall/lj126*, the energy E is given by the 12/6 potential: \left(\frac{\sigma}{r}\right)^6 \right] \qquad r < r_c -For style *wall/lj1043*, the energy E is given by the 10/4/3 potential: +For style *wall/lj1043*, the energy E is given by the 10-4-3 Lennard-Jones potential: .. math:: @@ -138,8 +180,8 @@ of the :doc:`pair_style colloid ` potential: & \left. - \frac{1}{6} \left(\frac{2R(D+R) + D(D+2R) \left[ \ln D - \ln (D+2R) \right]}{D(D+2R)} \right) \right] \qquad r < r_c -For style *wall/harmonic*, the energy E is given by a harmonic spring -potential: +For style *wall/harmonic*, the energy E is given by a repulsive-only harmonic +spring potential: .. math:: @@ -152,6 +194,56 @@ For style *wall/morse*, the energy E is given by a Morse potential: E = D_0 \left[ e^{- 2 \alpha (r - r_0)} - 2 e^{- \alpha (r - r_0)} \right] \qquad r < r_c +For style *wall/lepton*, the energy E is provided as an Lepton +expression string using "r" as the distance variable. The `Lepton +library `_, that the *wall/lepton* +style interfaces with, evaluates this expression string at run time to +compute the wall-particle energy. It also creates an analytical +representation of the first derivative of this expression with respect +to "r" and then uses that to compute the force between the wall and +atoms in the fix group. The Lepton expression must be either enclosed +in quotes or must not contain any whitespace so that LAMMPS recognizes +it as a single keyword. + +Optionally, the expression may use "rc" to refer to the cutoff distance +for the given wall. Further constants in the expression can be defined +in the same string as additional expressions separated by semi-colons. +The expression "k*(r-rc)^2;k=100.0" represents a repulsive-only harmonic +spring as in fix *wall/harmonic* with a force constant *K* (same as +:math:`\epsilon` above) of 100 energy units. More details on the Lepton +expression strings are given below. + +For style *wall/table*, the energy E and forces are determined from +interpolation tables listed in one or more files as a function of +distance. The interpolation tables are used to evaluate energy and +forces between particles and the wall similar to how analytic formulas +are used for the other wall styles. + +The interpolation tables are created as a pre-computation by fitting +cubic splines to the file values and interpolating energy and force +values at each of *N* distances. During a simulation, the tables are +used to interpolate energy and force values as needed for each wall and +particle separated by a distance *R*\ . The interpolation is done in +one of two styles: *linear* or *spline*\ . + +For the *linear* style, the distance *R* is used to find the 2 +surrounding table values from which an energy or force is computed by +linear interpolation. + +For the *spline* style, cubic spline coefficients are computed and +stored for each of the *N* values in the table, one set of splines for +energy, another for force. Note that these splines are different than +the ones used to pre-compute the *N* values. Those splines were fit +to the *Nfile* values in the tabulated file, where often *Nfile* < +*N*\ . The distance *R* is used to find the appropriate set of spline +coefficients which are used to evaluate a cubic polynomial which +computes the energy or force. + +For each wall a filename and a keyword must be provided as in the +examples above. The filename specifies a file containing tabulated +energy and force values. The keyword specifies a section of the file. +The format of this file is described below. + In all cases, *r* is the distance from the particle to the wall at position *coord*, and :math:`r_c` is the *cutoff* distance at which the particle and wall no longer interact. The energy of the wall @@ -180,11 +272,12 @@ box parameters and timestep and elapsed time. Thus it is easy to specify a time-dependent wall position. See examples below. For the *wall/lj93* and *wall/lj126* and *wall/lj1043* styles, -:math:`\epsilon` and :math:`\sigma` are the usual Lennard-Jones parameters, which -determine the strength and size of the particle as it interacts with -the wall. Epsilon has energy units. Note that this :math:`\epsilon` and -:math:`\sigma` may be different than any :math:`\epsilon` or :math:`\sigma` values defined -for a pair style that computes particle-particle interactions. +:math:`\epsilon` and :math:`\sigma` are the usual Lennard-Jones +parameters, which determine the strength and size of the particle as it +interacts with the wall. Epsilon has energy units. Note that this +:math:`\epsilon` and :math:`\sigma` may be different than any +:math:`\epsilon` or :math:`\sigma` values defined for a pair style that +computes particle-particle interactions. The *wall/lj93* interaction is derived by integrating over a 3d half-lattice of Lennard-Jones 12/6 particles. The *wall/lj126* @@ -207,11 +300,11 @@ are the number density of the constituent particles, in the wall and colloid respectively, in units of 1/volume. The *wall/colloid* interaction is derived by integrating over -constituent LJ particles of size :math:`\sigma` within the colloid particle -and a 3d half-lattice of Lennard-Jones 12/6 particles of size :math:`\sigma` -in the wall. As mentioned in the preceding paragraph, the density of -particles in the wall and colloid can be different, as specified by -the :math:`\epsilon` prefactor. +constituent LJ particles of size :math:`\sigma` within the colloid +particle and a 3d half-lattice of Lennard-Jones 12/6 particles of size +:math:`\sigma` in the wall. As mentioned in the preceding paragraph, +the density of particles in the wall and colloid can be different, as +specified by the :math:`\epsilon` prefactor. For the *wall/harmonic* style, :math:`\epsilon` is effectively the spring constant K, and has units (energy/distance\^2). The input parameter @@ -220,20 +313,21 @@ spring is at the *cutoff*\ . This is a repulsive-only spring since the interaction is truncated at the *cutoff* For the *wall/morse* style, the three parameters are in this order: -:math:`D_0` the depth of the potential, :math:`\alpha` the width parameter, and -:math:`r_0` the location of the minimum. :math:`D_0` has energy units, :math:`\alpha` -inverse distance units, and :math:`r_0` distance units. +:math:`D_0` the depth of the potential, :math:`\alpha` the width +parameter, and :math:`r_0` the location of the minimum. :math:`D_0` has +energy units, :math:`\alpha` inverse distance units, and :math:`r_0` +distance units. -For any wall, the :math:`\epsilon` and/or :math:`\sigma` and/or :math:`\alpha` parameter can -be specified -as an :doc:`equal-style variable `, in which case it should be +For any wall that supports them, the :math:`\epsilon` and/or +:math:`\sigma` and/or :math:`\alpha` parameter can be specified as an +:doc:`equal-style variable `, in which case it should be specified as v_name, where name is the variable name. As with a -variable wall position, the variable is evaluated each timestep and -the result becomes the current epsilon or sigma of the wall. -Equal-style variables can specify formulas with various mathematical -functions, and include :doc:`thermo_style ` command -keywords for the simulation box parameters and timestep and elapsed -time. Thus it is easy to specify a time-dependent wall interaction. +variable wall position, the variable is evaluated each timestep and the +result becomes the current epsilon or sigma of the wall. Equal-style +variables can specify formulas with various mathematical functions, and +include :doc:`thermo_style ` command keywords for the +simulation box parameters and timestep and elapsed time. Thus it is +easy to specify a time-dependent wall interaction. .. note:: @@ -266,20 +360,19 @@ define the lattice spacings. The *fld* keyword can be used with a *yes* setting to invoke the wall constraint before pairwise interactions are computed. This allows an implicit FLD model using :doc:`pair_style lubricateU ` -to include the wall force in its calculations. If the setting is -*no*, wall forces are imposed after pairwise interactions, in the -usual manner. +to include the wall force in its calculations. If the setting is *no*, +wall forces are imposed after pairwise interactions, in the usual +manner. -The *pbc* keyword can be used with a *yes* setting to allow walls to -be specified in a periodic dimension. See the -:doc:`boundary ` command for options on simulation box -boundaries. The default for *pbc* is *no*, which means the system -must be non-periodic when using a wall. But you may wish to use a -periodic box. E.g. to allow some particles to interact with the wall -via the fix group-ID, and others to pass through it and wrap around a -periodic box. In this case you should ensure that the wall if -sufficiently far enough away from the box boundary. If you do not, -then particles may interact with both the wall and with periodic +The *pbc* keyword can be used with a *yes* setting to allow walls to be +specified in a periodic dimension. See the :doc:`boundary ` +command for options on simulation box boundaries. The default for *pbc* +is *no*, which means the system must be non-periodic when using a wall. +But you may wish to use a periodic box. E.g. to allow some particles to +interact with the wall via the fix group-ID, and others to pass through +it and wrap around a periodic box. In this case you should ensure that +the wall if sufficiently far enough away from the box boundary. If you +do not, then particles may interact with both the wall and with periodic images on the other side of the box, which is probably not what you want. @@ -328,6 +421,57 @@ perturbation on the particles: ---------- +.. include:: lepton_expression.rst + +---------- + +Table file format +""""""""""""""""" + +Suitable tables for use with fix *wall/table* can be created by the +Python code in the ``tools/tabulate`` folder of the LAMMPS source code +distribution. + +The format of a tabulated file is as follows (without the parenthesized +comments): + +.. parsed-literal:: + + # Tabulated wall potential UNITS: real + + HARMONIC (keyword is the first text on a line) + N 100 FP 200 200 + (blank line) + 1 0.04 1568.16 792.00 (index, distance to wall, energy, force) + 2 0.08 1536.64 784.00 + 3 0.12 1505.44 776.00 + ... + 99 3.96 0.16 8.00 + 100 4.00 0 0 + +A section begins with a non-blank line whose first character is not a +"#"; blank lines or lines starting with "#" can be used as comments +between sections. The first line begins with a keyword which identifies +the section. The line can contain additional text, but the initial text +must match the argument specified in the fix *wall/table* command. The +next line lists (in any order) one or more parameters for the table. +Each parameter is a keyword followed by one or more numeric values. + +The parameter "N" is required and its value is the number of table +entries that follow. Note that this may be different than the *N* +specified in the fix *wall/table* command. Let Ntable = *N* in the fix +command, and Nfile = "N" in the tabulated file. What LAMMPS does is a +preliminary interpolation by creating splines using the Nfile tabulated +values as nodal points. It uses these to interpolate as needed to +generate energy and force values at Ntable different points. The +resulting tables of length Ntable are then used as described above, when +computing energy and force for wall-particle interactions. This means that +if you want the interpolation tables of length Ntable to match exactly +what is in the tabulated file (with effectively no preliminary +interpolation), you should set Ntable = Nfile. + +---------- + Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -354,16 +498,15 @@ fix. This allows to set at which level of the :doc:`r-RESPA ` integrator the fix is adding its forces. Default is the outermost level. -This fix computes a global scalar energy and a global vector of -forces, which can be accessed by various :doc:`output commands -`. Note that the scalar energy is the sum of -interactions with all defined walls. If you want the energy on a -per-wall basis, you need to use multiple fix wall commands. The -length of the vector is equal to the number of walls defined by the -fix. Each vector value is the normal force on a specific wall. Note -that an outward force on a wall will be a negative value for *lo* -walls and a positive value for *hi* walls. The scalar and vector -values calculated by this fix are "extensive". +This fix computes a global scalar energy and a global vector of forces, +which can be accessed by various :doc:`output commands `. +Note that the scalar energy is the sum of interactions with all defined +walls. If you want the energy on a per-wall basis, you need to use +multiple fix wall commands. The length of the vector is equal to the +number of walls defined by the fix. Each vector value is the normal +force on a specific wall. Note that an outward force on a wall will be +a negative value for *lo* walls and a positive value for *hi* walls. +The scalar and vector values calculated by this fix are "extensive". No parameter of this fix can be used with the *start/stop* keywords of the :doc:`run ` command. @@ -386,7 +529,11 @@ invoked by the :doc:`minimize ` command. Restrictions """""""""""" - none + +Fix *wall/lepton* is part of the LEPTON package and only enabled if +LAMMPS was built with this package. See the :doc:`Build package +` page for more info. + Related commands """""""""""""""" diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index fdacbf9c4c..d03300439f 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -3487,6 +3487,7 @@ sz Sz Tabbernor tabinner +tabstyle Tadmor Tafipolsky tagID diff --git a/examples/PACKAGES/reaction/create_atoms_polystyrene/in.grow_styrene b/examples/PACKAGES/reaction/create_atoms_polystyrene/in.grow_styrene index b17b321fe5..7860db4e55 100644 --- a/examples/PACKAGES/reaction/create_atoms_polystyrene/in.grow_styrene +++ b/examples/PACKAGES/reaction/create_atoms_polystyrene/in.grow_styrene @@ -16,6 +16,9 @@ dihedral_style class2 improper_style class2 +special_bonds lj/coul 0 0 1 +pair_modify tail yes mix sixthpower + variable T equal 530 read_data trimer.data & diff --git a/examples/PACKAGES/reaction/nylon,6-6_melt/in.large_nylon_melt b/examples/PACKAGES/reaction/nylon,6-6_melt/in.large_nylon_melt index 6fbf46f844..9678a714d6 100644 --- a/examples/PACKAGES/reaction/nylon,6-6_melt/in.large_nylon_melt +++ b/examples/PACKAGES/reaction/nylon,6-6_melt/in.large_nylon_melt @@ -18,6 +18,9 @@ dihedral_style class2 improper_style class2 +special_bonds lj/coul 0 0 1 +pair_modify tail yes mix sixthpower + read_data large_nylon_melt.data.gz & extra/bond/per/atom 5 & extra/angle/per/atom 15 & diff --git a/examples/PACKAGES/reaction/tiny_epoxy/in.tiny_epoxy.stabilized b/examples/PACKAGES/reaction/tiny_epoxy/in.tiny_epoxy.stabilized index 1309eff3a3..57b03b630f 100644 --- a/examples/PACKAGES/reaction/tiny_epoxy/in.tiny_epoxy.stabilized +++ b/examples/PACKAGES/reaction/tiny_epoxy/in.tiny_epoxy.stabilized @@ -17,6 +17,9 @@ dihedral_style class2 improper_style class2 +special_bonds lj/coul 0 0 1 +pair_modify tail yes mix sixthpower + read_data tiny_epoxy.data velocity all create 300.0 4928459 dist gaussian diff --git a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized index 81a12b4ccb..95b39033db 100644 --- a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized +++ b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized @@ -19,6 +19,9 @@ dihedral_style class2 improper_style class2 +special_bonds lj/coul 0 0 1 +pair_modify tail yes mix sixthpower + read_data tiny_nylon.data & extra/bond/per/atom 5 & extra/angle/per/atom 15 & diff --git a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability index 515d4cb2f8..88b5a95a41 100644 --- a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability +++ b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability @@ -19,6 +19,9 @@ dihedral_style class2 improper_style class2 +special_bonds lj/coul 0 0 1 +pair_modify tail yes mix sixthpower + read_data tiny_nylon.data & extra/bond/per/atom 5 & extra/angle/per/atom 15 & diff --git a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized index 4891e9ebff..a569e28d43 100644 --- a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized +++ b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized @@ -19,6 +19,9 @@ dihedral_style class2 improper_style class2 +special_bonds lj/coul 0 0 1 +pair_modify tail yes mix sixthpower + read_data tiny_nylon.data & extra/bond/per/atom 5 & extra/angle/per/atom 15 & diff --git a/examples/PACKAGES/reaction/tiny_polystyrene/in.tiny_polystyrene.stabilized b/examples/PACKAGES/reaction/tiny_polystyrene/in.tiny_polystyrene.stabilized index ab9c012905..4ecc481719 100644 --- a/examples/PACKAGES/reaction/tiny_polystyrene/in.tiny_polystyrene.stabilized +++ b/examples/PACKAGES/reaction/tiny_polystyrene/in.tiny_polystyrene.stabilized @@ -19,6 +19,9 @@ dihedral_style class2 improper_style class2 +special_bonds lj/coul 0 0 1 +pair_modify tail yes mix sixthpower + variable T equal 530 read_data tiny_polystyrene.data & diff --git a/examples/wall/in.wall.lepton b/examples/wall/in.wall.lepton new file mode 100644 index 0000000000..76d8e71f01 --- /dev/null +++ b/examples/wall/in.wall.lepton @@ -0,0 +1,110 @@ +units real +atom_style bond +boundary f p p +region box block -5.000000000000001 5.000000000000001 -5 5 -5 5 +create_box 1 box bond/types 1 extra/bond/per/atom 1 extra/special/per/atom 1 + +pair_style zero 5.0 +pair_coeff * * +mass * 1.0 +bond_style zero +bond_coeff * 1.0 + +create_atoms 1 single -4.0 0.0 0.0 +create_atoms 1 single 4.0 0.0 0.0 +create_atoms 1 single -5.0 0.0 0.0 +create_atoms 1 single 5.0 0.0 0.0 +create_bonds single/bond 1 3 1 +create_bonds single/bond 1 4 2 + +group move id 1:2 +write_restart walltest.restart + +variable name string wall-harmonic +include wall.inc + +fix 1 move wall/harmonic xlo -5.0 100 0.0 4.0 xhi 5.0 100 1.0 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string lepton-harmonic +include wall.inc + +fix 1 move wall/lepton xlo -5.0 "k*(r-rc)^2;k=100.0" 4.0 xhi 5.0 "k*(r-rc)^2;k=100.0" 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string bond-harmonic +include wall.inc + +bond_style harmonic +bond_coeff 1 100 4.0 +run 5 post no + +variable name string pair-harmonic +include wall.inc + +pair_style harmonic/cut +pair_coeff 1 1 100 4.0 +run 5 post no + +variable eps index 0.02 +variable sig index 2.0 +variable name string wall-lj126 +include wall.inc + +fix 1 move wall/lj126 xlo -5.0 ${eps} ${sig} 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string lepton-lj126 +include wall.inc + +fix 1 move wall/lepton xlo -5.0 "4.0*epsilon*((sigma/r)^12 - (sigma/r)^6);epsilon=v_eps;sigma=v_sig" 4.0 & + xhi 5.0 "4.0*epsilon*((sigma/r)^12 - (sigma/r)^6);epsilon=v_eps;sigma=v_sig" 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string pair-lj126 +include wall.inc + +pair_style lj/cut 4.0 +pair_coeff 1 1 ${eps} ${sig} +pair_modify shift yes +run 5 post no + +variable d0 index 20.0 +variable al index 2.0 +variable r0 index 1.2 + +variable name string wall-morse +include wall.inc + +fix 1 move wall/morse xlo -5.0 ${d0} ${al} ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string lepton-morse +include wall.inc + +fix 1 move wall/lepton xlo -5.0 "d0*(-1.0 + (1.0 - ralpha) * (1.0 - ralpha));ralpha=exp(-alpha*(r-r0));d0=v_d0;alpha=v_al;r0=v_r0" 4.0 & + xhi 5.0 "d0*(-1.0 + (1.0 - ralpha) * (1.0 - ralpha));ralpha=exp(-alpha*(r-r0));d0=v_d0;alpha=v_al;r0=v_r0" 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string bond-morse +include wall.inc + +bond_style morse +bond_coeff 1 ${d0} ${al} ${r0} +run 5 post no + +variable name string pair-morse +include wall.inc + +pair_style morse 4.0 +pair_coeff 1 1 ${d0} ${al} ${r0} +pair_modify shift yes +run 5 post no + +shell rm -f walltest.restart diff --git a/examples/wall/in.wall.table b/examples/wall/in.wall.table new file mode 100644 index 0000000000..f5b8232ef8 --- /dev/null +++ b/examples/wall/in.wall.table @@ -0,0 +1,129 @@ +units real +atom_style bond +boundary f p p +region box block -5.000000000000001 5.000000000000001 -5 5 -5 5 +create_box 1 box bond/types 1 extra/bond/per/atom 1 extra/special/per/atom 1 + +pair_style zero 5.0 +pair_coeff * * +mass * 1.0 +bond_style zero +bond_coeff * 1.0 + +create_atoms 1 single -4.0 0.0 0.0 +create_atoms 1 single 4.0 0.0 0.0 +create_atoms 1 single -5.0 0.0 0.0 +create_atoms 1 single 5.0 0.0 0.0 +create_bonds single/bond 1 3 1 +create_bonds single/bond 1 4 2 + +group move id 1:2 +write_restart walltest.restart + +variable name string wall-harmonic +include wall.inc + +fix 1 move wall/harmonic xlo -5.0 100 0.0 4.0 xhi 5.0 100 1.0 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string table-harmonic +include wall.inc + +fix 1 move wall/table linear 1000 xlo -5.0 walltab.dat HARMONIC 4.0 xhi 5.0 walltab.dat HARMONIC 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string spline-harmonic +include wall.inc + +fix 1 move wall/table spline 200 xlo -5.0 walltab.dat HARMONIC 4.0 xhi 5.0 walltab.dat HARMONIC 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string bond-harmonic +include wall.inc + +bond_style harmonic +bond_coeff 1 100 4.0 +run 5 post no + +variable name string pair-harmonic +include wall.inc + +pair_style harmonic/cut +pair_coeff 1 1 100 4.0 +run 5 post no + +variable eps index 0.02 +variable sig index 2.0 +variable name string wall-lj126 +include wall.inc + +fix 1 move wall/lj126 xlo -5.0 ${eps} ${sig} 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string table-lj126 +include wall.inc + +fix 1 move wall/table linear 1000 xlo -5.0 walltab.dat LJ126 4.0 xhi 5.0 walltab.dat LJ126 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string spline-lj126 +include wall.inc + +fix 1 move wall/table spline 200 xlo -5.0 walltab.dat LJ126 4.0 xhi 5.0 walltab.dat LJ126 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string pair-lj126 +include wall.inc + +pair_style lj/cut 4.0 +pair_coeff 1 1 ${eps} ${sig} +pair_modify shift yes +run 5 post no + +variable d0 index 20.0 +variable al index 2.0 +variable r0 index 1.2 + +variable name string wall-morse +include wall.inc + +fix 1 move wall/morse xlo -5.0 ${d0} ${al} ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string table-morse +include wall.inc + +fix 1 move wall/table linear 1000 xlo -5.0 walltab.dat MORSE 4.0 xhi 5.0 walltab.dat MORSE 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string spline-morse +include wall.inc + +fix 1 move wall/table spline 1000 xlo -5.0 walltab.dat MORSE 4.0 xhi 5.0 walltab.dat MORSE 4.0 +fix_modify 1 energy yes +run 5 post no + +variable name string bond-morse +include wall.inc + +bond_style morse +bond_coeff 1 ${d0} ${al} ${r0} +run 5 post no + +variable name string pair-morse +include wall.inc + +pair_style morse 4.0 +pair_coeff 1 1 ${d0} ${al} ${r0} +pair_modify shift yes +run 5 post no + +shell rm -f walltest.restart diff --git a/examples/wall/log.23Feb23.wall.lepton.g++.1 b/examples/wall/log.23Feb23.wall.lepton.g++.1 new file mode 100644 index 0000000000..5d555b2717 --- /dev/null +++ b/examples/wall/log.23Feb23.wall.lepton.g++.1 @@ -0,0 +1,882 @@ +LAMMPS (8 Feb 2023) + using 1 OpenMP thread(s) per MPI task +units real +atom_style bond +boundary f p p +region box block -5.000000000000001 5.000000000000001 -5 5 -5 5 +create_box 1 box bond/types 1 extra/bond/per/atom 1 extra/special/per/atom 1 +Created orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + +pair_style zero 5.0 +pair_coeff * * +mass * 1.0 +bond_style zero +bond_coeff * 1.0 + +create_atoms 1 single -4.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single 4.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single -5.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single 5.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_bonds single/bond 1 3 1 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds +create_bonds single/bond 1 4 2 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +group move id 1:2 +2 atoms in group move +write_restart walltest.restart +System init for write_restart ... +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + +variable name string wall-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/harmonic xlo -5.0 100 0.0 4.0 xhi 5.0 100 1.0 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 1800 1800 0 + 1 16146.37291 6600.295604 144.3878119 1652.527054 1796.914866 0 + 2 59294.04011 24238.149 530.232812 1258.437705 1788.670517 0 + 3 115302.7492 47133.32419 1031.086781 746.8819904 1777.968771 0 + 4 165817.4572 67782.66799 1482.811029 285.5057515 1768.31678 0 + 5 194283.6024 79419.02582 1737.367544 25.51012833 1762.877672 0 +Loop time of 7.6828e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string lepton-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/lepton xlo -5.0 "k*(r-rc)^2;k=100.0" 4.0 xhi 5.0 "k*(r-rc)^2;k=100.0" 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 1800 1800 0 + 1 16146.37291 6600.295604 144.3878119 1652.527054 1796.914866 0 + 2 59294.04011 24238.149 530.232812 1258.437705 1788.670517 0 + 3 115302.7492 47133.32419 1031.086781 746.8819904 1777.968771 0 + 4 165817.4572 67782.66799 1482.811029 285.5057515 1768.31678 0 + 5 194283.6024 79419.02582 1737.367544 25.51012833 1762.877672 0 +Loop time of 0.00134915 on 1 procs for 5 steps with 4 atoms + + +variable name string bond-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +bond_style harmonic +bond_coeff 1 100 4.0 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Communication cutoff 7 is shorter than a bond length based estimate of 8. This may lead to errors. (src/comm.cpp:723) +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 27427.366 0 1800 1800 900 + 1 16146.37291 36178.74173 144.3878119 1652.527054 1796.914866 826.263527 + 2 59294.04011 58444.6962 530.232812 1258.437705 1788.670517 629.2188524 + 3 115302.7492 83661.44348 1031.086781 746.8819904 1777.968771 373.4409952 + 4 165817.4572 98424.89283 1482.811029 285.5057515 1768.31678 142.7528758 + 5 194283.6024 91313.53086 1737.367544 25.51012833 1762.877672 12.75506417 +Loop time of 4.6572e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string pair-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style harmonic/cut +pair_coeff 1 1 100 4.0 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair harmonic/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.43 | 4.43 | 4.43 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 27427.366 0 1800 1800 900 + 1 16146.37291 36178.74173 144.3878119 1652.527054 1796.914866 826.263527 + 2 59294.04011 58444.6962 530.232812 1258.437705 1788.670517 629.2188524 + 3 115302.7492 83661.44348 1031.086781 746.8819904 1777.968771 373.4409952 + 4 165817.4572 98424.89283 1482.811029 285.5057515 1768.31678 142.7528758 + 5 170540.4005 97560.47089 1525.045619 190.8165235 1715.862142 178.0614593 +Loop time of 8.4058e-05 on 1 procs for 5 steps with 4 atoms + + +variable eps index 0.02 +variable sig index 2.0 +variable name string wall-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/lj126 xlo -5.0 ${eps} ${sig} 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 ${sig} 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 0.02 ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 0.02 2.0 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 645.1224609 645.1224609 0 + 1 178153.8707 72825.53278 1593.128544 0.2259591031 1593.354503 0 + 2 178262.3593 72869.88065 1594.098696 -0.02237405364 1594.076322 0 + 3 178259.9436 72868.89314 1594.077094 -0.003385746252 1594.073708 0 + 4 178259.4975 72868.71081 1594.073105 0 1594.073105 0 + 5 178259.4975 72868.71081 1594.073105 0 1594.073105 0 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 4.3942e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string lepton-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/lepton xlo -5.0 "4.0*epsilon*((sigma/r)^12 - (sigma/r)^6);epsilon=v_eps;sigma=v_sig" 4.0 xhi 5.0 "4.0*epsilon*((sigma/r)^12 - (sigma/r)^6);epsilon=v_eps;sigma=v_sig" 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 645.1224609 645.1224609 0 + 1 178153.8707 72825.53278 1593.128544 0.2259591031 1593.354503 0 + 2 178262.3593 72869.88065 1594.098696 -0.02237405364 1594.076322 0 + 3 178259.9436 72868.89314 1594.077094 -0.003385746252 1594.073708 0 + 4 178259.4975 72868.71081 1594.073105 0 1594.073105 0 + 5 178259.4975 72868.71081 1594.073105 0 1594.073105 0 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 0.00298781 on 1 procs for 5 steps with 4 atoms + + +variable name string pair-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style lj/cut 4.0 +pair_coeff 1 1 ${eps} ${sig} +pair_coeff 1 1 0.02 ${sig} +pair_coeff 1 1 0.02 2.0 +pair_modify shift yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.43 | 4.43 | 4.43 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 178343.7047 0 645.1224609 645.1224609 322.5612305 + 1 178153.8707 72925.96146 1593.128544 0.2259591031 1593.354503 0.1129795516 + 2 178262.3593 72867.28485 1594.098696 -0.02237405364 1594.076322 -0.01118702682 + 3 178260.8147 72867.80305 1594.084884 -0.007499601847 1594.077384 -0.005806728722 + 4 176007.6835 72778.53677 1573.936415 2.772305717 1576.708721 2.772305717 + 5 1.132219912e+27 4.628275436e+26 1.012479748e+25 3.761972158e+12 1.012479748e+25 3.761972158e+12 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 4.4455e-05 on 1 procs for 5 steps with 4 atoms + + +variable d0 index 20.0 +variable al index 2.0 +variable r0 index 1.2 + +variable name string wall-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/morse xlo -5.0 ${d0} ${al} ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 ${al} ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 2.0 ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 2.0 1.2 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 -30.02905654 -30.02905654 0 + 1 146.0893547 59.71823711 1.30639385 -31.40065042 -30.09425657 0 + 2 485.8091411 198.5884977 4.34431431 -34.55987817 -30.21556386 0 + 3 822.0828974 336.0500941 7.351418888 -37.63613582 -30.28471693 0 + 4 1018.806679 416.4666136 9.110607565 -39.39265114 -30.28204357 0 + 5 1050.331347 429.3532307 9.392514704 -39.63687095 -30.24435625 0 +Loop time of 7.6505e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string lepton-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/lepton xlo -5.0 "d0*(-1.0 + (1.0 - ralpha) * (1.0 - ralpha));ralpha=exp(-alpha*(r-r0));d0=v_d0;alpha=v_al;r0=v_r0" 4.0 xhi 5.0 "d0*(-1.0 + (1.0 - ralpha) * (1.0 - ralpha));ralpha=exp(-alpha*(r-r0));d0=v_d0;alpha=v_al;r0=v_r0" 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 -30.02905654 -30.02905654 0 + 1 146.0893547 59.71823711 1.30639385 -31.40065042 -30.09425657 0 + 2 485.8091411 198.5884977 4.34431431 -34.55987817 -30.21556386 0 + 3 822.0828974 336.0500941 7.351418888 -37.63613582 -30.28471693 0 + 4 1018.806679 416.4666136 9.110607565 -39.39265114 -30.28204357 0 + 5 1050.331347 429.3532307 9.392514704 -39.63687095 -30.24435625 0 +Loop time of 0.00266357 on 1 procs for 5 steps with 4 atoms + + +variable name string bond-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +bond_style morse +bond_coeff 1 ${d0} ${al} ${r0} +bond_coeff 1 20.0 ${al} ${r0} +bond_coeff 1 20.0 2.0 ${r0} +bond_coeff 1 20.0 2.0 1.2 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 2683.187147 0 9.675661328 9.675661328 4.837830664 + 1 146.0893547 2514.939772 1.30639385 8.304067455 9.610461305 4.152033728 + 2 485.8091411 2063.804037 4.34431431 5.144839701 9.489154012 2.572419851 + 3 822.0828974 1456.368913 7.351418888 2.06858205 9.420000938 1.034291025 + 4 1018.806679 823.4383177 9.110607565 0.3120667313 9.422674297 0.1560333657 + 5 1050.331347 253.0262957 9.392514704 0.06784692056 9.460361624 0.03392346028 +Loop time of 0.000120428 on 1 procs for 5 steps with 4 atoms + + +variable name string pair-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style morse 4.0 +pair_coeff 1 1 ${d0} ${al} ${r0} +pair_coeff 1 1 20.0 ${al} ${r0} +pair_coeff 1 1 20.0 2.0 ${r0} +pair_coeff 1 1 20.0 2.0 1.2 +pair_modify shift yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair morse, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.43 | 4.43 | 4.43 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 2683.187147 0 -30.02905654 -30.02905654 -15.01452827 + 1 146.0893547 2514.939772 1.30639385 -31.40065042 -30.09425657 -15.70032521 + 2 485.8091411 2063.804037 4.34431431 -34.55987817 -30.21556386 -17.27993908 + 3 822.0828974 1456.368913 7.351418888 -37.63613582 -30.28471693 -18.81806791 + 4 1018.806679 823.4383177 9.110607565 -39.39265114 -30.28204357 -19.69632557 + 5 1050.331347 253.0262957 9.392514704 -39.63687095 -30.24435625 -19.81843547 +Loop time of 3.6356e-05 on 1 procs for 5 steps with 4 atoms + + +shell rm -f walltest.restart +Total wall time: 0:00:00 diff --git a/examples/wall/log.23Feb23.wall.lepton.g++.4 b/examples/wall/log.23Feb23.wall.lepton.g++.4 new file mode 100644 index 0000000000..7820f2a9ae --- /dev/null +++ b/examples/wall/log.23Feb23.wall.lepton.g++.4 @@ -0,0 +1,882 @@ +LAMMPS (8 Feb 2023) + using 1 OpenMP thread(s) per MPI task +units real +atom_style bond +boundary f p p +region box block -5.000000000000001 5.000000000000001 -5 5 -5 5 +create_box 1 box bond/types 1 extra/bond/per/atom 1 extra/special/per/atom 1 +Created orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + +pair_style zero 5.0 +pair_coeff * * +mass * 1.0 +bond_style zero +bond_coeff * 1.0 + +create_atoms 1 single -4.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single 4.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single -5.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single 5.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_bonds single/bond 1 3 1 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds +create_bonds single/bond 1 4 2 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.001 seconds + +group move id 1:2 +2 atoms in group move +write_restart walltest.restart +System init for write_restart ... +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + +variable name string wall-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/harmonic xlo -5.0 100 0.0 4.0 xhi 5.0 100 1.0 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 1800 1800 0 + 1 16146.37291 6600.295604 144.3878119 1652.527054 1796.914866 0 + 2 59294.04011 24238.149 530.232812 1258.437705 1788.670517 0 + 3 115302.7492 47133.32419 1031.086781 746.8819904 1777.968771 0 + 4 165817.4572 67782.66799 1482.811029 285.5057515 1768.31678 0 + 5 194283.6024 79419.02582 1737.367544 25.51012833 1762.877672 0 +Loop time of 0.000266179 on 4 procs for 5 steps with 4 atoms + + +variable name string lepton-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/lepton xlo -5.0 "k*(r-rc)^2;k=100.0" 4.0 xhi 5.0 "k*(r-rc)^2;k=100.0" 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 1800 1800 0 + 1 16146.37291 6600.295604 144.3878119 1652.527054 1796.914866 0 + 2 59294.04011 24238.149 530.232812 1258.437705 1788.670517 0 + 3 115302.7492 47133.32419 1031.086781 746.8819904 1777.968771 0 + 4 165817.4572 67782.66799 1482.811029 285.5057515 1768.31678 0 + 5 194283.6024 79419.02582 1737.367544 25.51012833 1762.877672 0 +Loop time of 0.00230794 on 4 procs for 5 steps with 4 atoms + + +variable name string bond-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +bond_style harmonic +bond_coeff 1 100 4.0 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Communication cutoff 7 is shorter than a bond length based estimate of 8. This may lead to errors. (src/comm.cpp:723) +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 27427.366 0 1800 1800 900 + 1 16146.37291 36178.74173 144.3878119 1652.527054 1796.914866 826.263527 + 2 59294.04011 58444.6962 530.232812 1258.437705 1788.670517 629.2188524 + 3 115302.7492 83661.44348 1031.086781 746.8819904 1777.968771 373.4409952 + 4 165817.4572 98424.89283 1482.811029 285.5057515 1768.31678 142.7528758 + 5 194283.6024 91313.53086 1737.367544 25.51012833 1762.877672 12.75506417 +Loop time of 0.000358068 on 4 procs for 5 steps with 4 atoms + + +variable name string pair-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style harmonic/cut +pair_coeff 1 1 100 4.0 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair harmonic/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.38 | 4.56 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 27427.366 0 1800 1800 900 + 1 16146.37291 36178.74173 144.3878119 1652.527054 1796.914866 826.263527 + 2 59294.04011 58444.6962 530.232812 1258.437705 1788.670517 629.2188524 + 3 115302.7492 83661.44348 1031.086781 746.8819904 1777.968771 373.4409952 + 4 165817.4572 98424.89283 1482.811029 285.5057515 1768.31678 142.7528758 + 5 170540.4005 97560.47089 1525.045619 190.8165235 1715.862142 178.0614593 +Loop time of 0.000341881 on 4 procs for 5 steps with 4 atoms + + +variable eps index 0.02 +variable sig index 2.0 +variable name string wall-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/lj126 xlo -5.0 ${eps} ${sig} 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 ${sig} 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 0.02 ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 0.02 2.0 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 645.1224609 645.1224609 0 + 1 178153.8707 72825.53278 1593.128544 0.2259591031 1593.354503 0 + 2 178262.3593 72869.88065 1594.098696 -0.02237405364 1594.076322 0 + 3 178259.9436 72868.89314 1594.077094 -0.003385746252 1594.073708 0 + 4 178259.4975 72868.71081 1594.073105 0 1594.073105 0 + 5 178259.4975 72868.71081 1594.073105 0 1594.073105 0 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 0.000345376 on 4 procs for 5 steps with 4 atoms + + +variable name string lepton-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/lepton xlo -5.0 "4.0*epsilon*((sigma/r)^12 - (sigma/r)^6);epsilon=v_eps;sigma=v_sig" 4.0 xhi 5.0 "4.0*epsilon*((sigma/r)^12 - (sigma/r)^6);epsilon=v_eps;sigma=v_sig" 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 645.1224609 645.1224609 0 + 1 178153.8707 72825.53278 1593.128544 0.2259591031 1593.354503 0 + 2 178262.3593 72869.88065 1594.098696 -0.02237405364 1594.076322 0 + 3 178259.9436 72868.89314 1594.077094 -0.003385746252 1594.073708 0 + 4 178259.4975 72868.71081 1594.073105 0 1594.073105 0 + 5 178259.4975 72868.71081 1594.073105 0 1594.073105 0 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 0.00332789 on 4 procs for 5 steps with 4 atoms + + +variable name string pair-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style lj/cut 4.0 +pair_coeff 1 1 ${eps} ${sig} +pair_coeff 1 1 0.02 ${sig} +pair_coeff 1 1 0.02 2.0 +pair_modify shift yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.38 | 4.56 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 178343.7047 0 645.1224609 645.1224609 322.5612305 + 1 178153.8707 72925.96146 1593.128544 0.2259591031 1593.354503 0.1129795516 + 2 178262.3593 72867.28485 1594.098696 -0.02237405364 1594.076322 -0.01118702682 + 3 178260.8147 72867.80305 1594.084884 -0.007499601847 1594.077384 -0.005806728722 + 4 176007.6835 72778.53677 1573.936415 2.772305717 1576.708721 2.772305717 + 5 1.132219912e+27 4.628275436e+26 1.012479748e+25 3.761972158e+12 1.012479748e+25 3.761972158e+12 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 0.000404238 on 4 procs for 5 steps with 4 atoms + + +variable d0 index 20.0 +variable al index 2.0 +variable r0 index 1.2 + +variable name string wall-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/morse xlo -5.0 ${d0} ${al} ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 ${al} ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 2.0 ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 2.0 1.2 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 -30.02905654 -30.02905654 0 + 1 146.0893547 59.71823711 1.30639385 -31.40065042 -30.09425657 0 + 2 485.8091411 198.5884977 4.34431431 -34.55987817 -30.21556386 0 + 3 822.0828974 336.0500941 7.351418888 -37.63613582 -30.28471693 0 + 4 1018.806679 416.4666136 9.110607565 -39.39265114 -30.28204357 0 + 5 1050.331347 429.3532307 9.392514704 -39.63687095 -30.24435625 0 +Loop time of 0.000748817 on 4 procs for 5 steps with 4 atoms + + +variable name string lepton-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/lepton xlo -5.0 "d0*(-1.0 + (1.0 - ralpha) * (1.0 - ralpha));ralpha=exp(-alpha*(r-r0));d0=v_d0;alpha=v_al;r0=v_r0" 4.0 xhi 5.0 "d0*(-1.0 + (1.0 - ralpha) * (1.0 - ralpha));ralpha=exp(-alpha*(r-r0));d0=v_d0;alpha=v_al;r0=v_r0" 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 -30.02905654 -30.02905654 0 + 1 146.0893547 59.71823711 1.30639385 -31.40065042 -30.09425657 0 + 2 485.8091411 198.5884977 4.34431431 -34.55987817 -30.21556386 0 + 3 822.0828974 336.0500941 7.351418888 -37.63613582 -30.28471693 0 + 4 1018.806679 416.4666136 9.110607565 -39.39265114 -30.28204357 0 + 5 1050.331347 429.3532307 9.392514704 -39.63687095 -30.24435625 0 +Loop time of 0.00347272 on 4 procs for 5 steps with 4 atoms + + +variable name string bond-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +bond_style morse +bond_coeff 1 ${d0} ${al} ${r0} +bond_coeff 1 20.0 ${al} ${r0} +bond_coeff 1 20.0 2.0 ${r0} +bond_coeff 1 20.0 2.0 1.2 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 2683.187147 0 9.675661328 9.675661328 4.837830664 + 1 146.0893547 2514.939772 1.30639385 8.304067455 9.610461305 4.152033728 + 2 485.8091411 2063.804037 4.34431431 5.144839701 9.489154012 2.572419851 + 3 822.0828974 1456.368913 7.351418888 2.06858205 9.420000938 1.034291025 + 4 1018.806679 823.4383177 9.110607565 0.3120667313 9.422674297 0.1560333657 + 5 1050.331347 253.0262957 9.392514704 0.06784692056 9.460361624 0.03392346028 +Loop time of 0.000859458 on 4 procs for 5 steps with 4 atoms + + +variable name string pair-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style morse 4.0 +pair_coeff 1 1 ${d0} ${al} ${r0} +pair_coeff 1 1 20.0 ${al} ${r0} +pair_coeff 1 1 20.0 2.0 ${r0} +pair_coeff 1 1 20.0 2.0 1.2 +pair_modify shift yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair morse, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.38 | 4.56 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 2683.187147 0 -30.02905654 -30.02905654 -15.01452827 + 1 146.0893547 2514.939772 1.30639385 -31.40065042 -30.09425657 -15.70032521 + 2 485.8091411 2063.804037 4.34431431 -34.55987817 -30.21556386 -17.27993908 + 3 822.0828974 1456.368913 7.351418888 -37.63613582 -30.28471693 -18.81806791 + 4 1018.806679 823.4383177 9.110607565 -39.39265114 -30.28204357 -19.69632557 + 5 1050.331347 253.0262957 9.392514704 -39.63687095 -30.24435625 -19.81843547 +Loop time of 0.00029769 on 4 procs for 5 steps with 4 atoms + + +shell rm -f walltest.restart +Total wall time: 0:00:00 diff --git a/examples/wall/log.23Feb23.wall.table.g++.1 b/examples/wall/log.23Feb23.wall.table.g++.1 new file mode 100644 index 0000000000..f734be7403 --- /dev/null +++ b/examples/wall/log.23Feb23.wall.table.g++.1 @@ -0,0 +1,1116 @@ +LAMMPS (8 Feb 2023) + using 1 OpenMP thread(s) per MPI task +units real +atom_style bond +boundary f p p +region box block -5.000000000000001 5.000000000000001 -5 5 -5 5 +create_box 1 box bond/types 1 extra/bond/per/atom 1 extra/special/per/atom 1 +Created orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + +pair_style zero 5.0 +pair_coeff * * +mass * 1.0 +bond_style zero +bond_coeff * 1.0 + +create_atoms 1 single -4.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single 4.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.001 seconds +create_atoms 1 single -5.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single 5.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_bonds single/bond 1 3 1 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds +create_bonds single/bond 1 4 2 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +group move id 1:2 +2 atoms in group move +write_restart walltest.restart +System init for write_restart ... +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + +variable name string wall-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/harmonic xlo -5.0 100 0.0 4.0 xhi 5.0 100 1.0 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 1800 1800 0 + 1 16146.37291 6600.295604 144.3878119 1652.527054 1796.914866 0 + 2 59294.04011 24238.149 530.232812 1258.437705 1788.670517 0 + 3 115302.7492 47133.32419 1031.086781 746.8819904 1777.968771 0 + 4 165817.4572 67782.66799 1482.811029 285.5057515 1768.31678 0 + 5 194283.6024 79419.02582 1737.367544 25.51012833 1762.877672 0 +Loop time of 4.6507e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string table-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table linear 1000 xlo -5.0 walltab.dat HARMONIC 4.0 xhi 5.0 walltab.dat HARMONIC 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 1800.000356 1800.000356 0 + 1 16146.37291 6600.295604 144.3878119 1652.527723 1796.915535 0 + 2 59294.04011 24238.149 530.232812 1258.437853 1788.670665 0 + 3 115302.7492 47133.32419 1031.086781 746.8824148 1777.969196 0 + 4 165817.4572 67782.66799 1482.811029 285.5061521 1768.317181 0 + 5 194283.6024 79419.02582 1737.367544 25.51090543 1762.878449 0 +Loop time of 5.7549e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string spline-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table spline 200 xlo -5.0 walltab.dat HARMONIC 4.0 xhi 5.0 walltab.dat HARMONIC 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 1800 1800 0 + 1 16146.37291 6600.295604 144.3878119 1652.527054 1796.914866 0 + 2 59294.04011 24238.149 530.232812 1258.437705 1788.670517 0 + 3 115302.7492 47133.32419 1031.086781 746.8819904 1777.968771 0 + 4 165817.4572 67782.66799 1482.811029 285.5057515 1768.31678 0 + 5 194283.6024 79419.02582 1737.367544 25.51012833 1762.877672 0 +Loop time of 7.285e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string bond-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +bond_style harmonic +bond_coeff 1 100 4.0 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Communication cutoff 7 is shorter than a bond length based estimate of 8. This may lead to errors. (src/comm.cpp:723) +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 27427.366 0 1800 1800 900 + 1 16146.37291 36178.74173 144.3878119 1652.527054 1796.914866 826.263527 + 2 59294.04011 58444.6962 530.232812 1258.437705 1788.670517 629.2188524 + 3 115302.7492 83661.44348 1031.086781 746.8819904 1777.968771 373.4409952 + 4 165817.4572 98424.89283 1482.811029 285.5057515 1768.31678 142.7528758 + 5 194283.6024 91313.53086 1737.367544 25.51012833 1762.877672 12.75506417 +Loop time of 4.5844e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string pair-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style harmonic/cut +pair_coeff 1 1 100 4.0 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair harmonic/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.43 | 4.43 | 4.43 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 27427.366 0 1800 1800 900 + 1 16146.37291 36178.74173 144.3878119 1652.527054 1796.914866 826.263527 + 2 59294.04011 58444.6962 530.232812 1258.437705 1788.670517 629.2188524 + 3 115302.7492 83661.44348 1031.086781 746.8819904 1777.968771 373.4409952 + 4 165817.4572 98424.89283 1482.811029 285.5057515 1768.31678 142.7528758 + 5 170540.4005 97560.47089 1525.045619 190.8165235 1715.862142 178.0614593 +Loop time of 4.6409e-05 on 1 procs for 5 steps with 4 atoms + + +variable eps index 0.02 +variable sig index 2.0 +variable name string wall-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/lj126 xlo -5.0 ${eps} ${sig} 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 ${sig} 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 0.02 ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 0.02 2.0 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 645.1224609 645.1224609 0 + 1 178153.8707 72825.53278 1593.128544 0.2259591031 1593.354503 0 + 2 178262.3593 72869.88065 1594.098696 -0.02237405364 1594.076322 0 + 3 178259.9436 72868.89314 1594.077094 -0.003385746252 1594.073708 0 + 4 178259.4975 72868.71081 1594.073105 0 1594.073105 0 + 5 178259.4975 72868.71081 1594.073105 0 1594.073105 0 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 4.3816e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string table-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table linear 1000 xlo -5.0 walltab.dat LJ126 4.0 xhi 5.0 walltab.dat LJ126 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +WARNING: 1 of 400 force values in table are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/fix_wall_table.cpp:244) +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +WARNING: 1 of 400 force values in table are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/fix_wall_table.cpp:244) +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 645.2141852 645.2141852 0 + 1 178212.5398 72849.51549 1593.653189 0.2256644171 1593.878854 0 + 2 178320.9331 72893.82438 1594.622489 -0.02236253394 1594.600126 0 + 3 178318.518 72892.83712 1594.600891 -0.0033818408 1594.597509 0 + 4 178318.0722 72892.6549 1594.596905 0 1594.596905 0 + 5 178318.0722 72892.6549 1594.596905 0 1594.596905 0 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 4.2027e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string spline-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table spline 200 xlo -5.0 walltab.dat LJ126 4.0 xhi 5.0 walltab.dat LJ126 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +WARNING: 1 of 400 force values in table are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/fix_wall_table.cpp:244) +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +WARNING: 1 of 400 force values in table are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/fix_wall_table.cpp:244) +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 645.3361317 645.3361317 0 + 1 161871.9611 66169.83266 1447.528705 0.3353251002 1447.86403 0 + 2 162015.342 66228.44376 1448.810879 -0.02581160308 1448.785068 0 + 3 162012.784 66227.39811 1448.788005 -0.004635008226 1448.78337 0 + 4 162012.2554 66227.18201 1448.783278 0 1448.783278 0 + 5 162012.2554 66227.18201 1448.783278 0 1448.783278 0 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 7.5223e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string pair-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style lj/cut 4.0 +pair_coeff 1 1 ${eps} ${sig} +pair_coeff 1 1 0.02 ${sig} +pair_coeff 1 1 0.02 2.0 +pair_modify shift yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.43 | 4.43 | 4.43 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 178343.7047 0 645.1224609 645.1224609 322.5612305 + 1 178153.8707 72925.96146 1593.128544 0.2259591031 1593.354503 0.1129795516 + 2 178262.3593 72867.28485 1594.098696 -0.02237405364 1594.076322 -0.01118702682 + 3 178260.8147 72867.80305 1594.084884 -0.007499601847 1594.077384 -0.005806728722 + 4 176007.6835 72778.53677 1573.936415 2.772305717 1576.708721 2.772305717 + 5 1.132219912e+27 4.628275436e+26 1.012479748e+25 3.761972158e+12 1.012479748e+25 3.761972158e+12 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 8.0904e-05 on 1 procs for 5 steps with 4 atoms + + +variable d0 index 20.0 +variable al index 2.0 +variable r0 index 1.2 + +variable name string wall-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/morse xlo -5.0 ${d0} ${al} ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 ${al} ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 2.0 ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 2.0 1.2 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 -30.02905654 -30.02905654 0 + 1 146.0893547 59.71823711 1.30639385 -31.40065042 -30.09425657 0 + 2 485.8091411 198.5884977 4.34431431 -34.55987817 -30.21556386 0 + 3 822.0828974 336.0500941 7.351418888 -37.63613582 -30.28471693 0 + 4 1018.806679 416.4666136 9.110607565 -39.39265114 -30.28204357 0 + 5 1050.331347 429.3532307 9.392514704 -39.63687095 -30.24435625 0 +Loop time of 7.721e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string table-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table linear 1000 xlo -5.0 walltab.dat MORSE 4.0 xhi 5.0 walltab.dat MORSE 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 -30.0282104 -30.0282104 0 + 1 146.0967469 59.72125889 1.306459954 -31.40033773 -30.09387777 0 + 2 485.8417772 198.6018386 4.344606156 -34.55851819 -30.21391203 0 + 3 822.1558136 336.0799007 7.352070936 -37.63533573 -30.28326479 0 + 4 1018.904947 416.5067832 9.111486314 -39.39200056 -30.28051425 0 + 5 1050.436268 429.3961205 9.393452958 -39.63643565 -30.24298269 0 +Loop time of 5.4273e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string spline-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table spline 1000 xlo -5.0 walltab.dat MORSE 4.0 xhi 5.0 walltab.dat MORSE 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 -30.02905657 -30.02905657 0 + 1 146.0893531 59.71823647 1.306393836 -31.40065068 -30.09425684 0 + 2 485.809133 198.5884944 4.344314238 -34.55987846 -30.21556422 0 + 3 822.0828818 336.0500877 7.351418748 -37.63613601 -30.28471726 0 + 4 1018.80666 416.4666056 9.110607389 -39.39265128 -30.28204389 0 + 5 1050.331328 429.353223 9.392514534 -39.63687099 -30.24435645 0 +Loop time of 3.4052e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string bond-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +bond_style morse +bond_coeff 1 ${d0} ${al} ${r0} +bond_coeff 1 20.0 ${al} ${r0} +bond_coeff 1 20.0 2.0 ${r0} +bond_coeff 1 20.0 2.0 1.2 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.429 | 4.429 | 4.429 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 2683.187147 0 9.675661328 9.675661328 4.837830664 + 1 146.0893547 2514.939772 1.30639385 8.304067455 9.610461305 4.152033728 + 2 485.8091411 2063.804037 4.34431431 5.144839701 9.489154012 2.572419851 + 3 822.0828974 1456.368913 7.351418888 2.06858205 9.420000938 1.034291025 + 4 1018.806679 823.4383177 9.110607565 0.3120667313 9.422674297 0.1560333657 + 5 1050.331347 253.0262957 9.392514704 0.06784692056 9.460361624 0.03392346028 +Loop time of 7.2553e-05 on 1 procs for 5 steps with 4 atoms + + +variable name string pair-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 1 by 1 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.000 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style morse 4.0 +pair_coeff 1 1 ${d0} ${al} ${r0} +pair_coeff 1 1 20.0 ${al} ${r0} +pair_coeff 1 1 20.0 2.0 ${r0} +pair_coeff 1 1 20.0 2.0 1.2 +pair_modify shift yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair morse, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.43 | 4.43 | 4.43 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 2683.187147 0 -30.02905654 -30.02905654 -15.01452827 + 1 146.0893547 2514.939772 1.30639385 -31.40065042 -30.09425657 -15.70032521 + 2 485.8091411 2063.804037 4.34431431 -34.55987817 -30.21556386 -17.27993908 + 3 822.0828974 1456.368913 7.351418888 -37.63613582 -30.28471693 -18.81806791 + 4 1018.806679 823.4383177 9.110607565 -39.39265114 -30.28204357 -19.69632557 + 5 1050.331347 253.0262957 9.392514704 -39.63687095 -30.24435625 -19.81843547 +Loop time of 4.2481e-05 on 1 procs for 5 steps with 4 atoms + + +shell rm -f walltest.restart +Total wall time: 0:00:00 diff --git a/examples/wall/log.23Feb23.wall.table.g++.4 b/examples/wall/log.23Feb23.wall.table.g++.4 new file mode 100644 index 0000000000..8b0e9e0902 --- /dev/null +++ b/examples/wall/log.23Feb23.wall.table.g++.4 @@ -0,0 +1,1116 @@ +LAMMPS (8 Feb 2023) + using 1 OpenMP thread(s) per MPI task +units real +atom_style bond +boundary f p p +region box block -5.000000000000001 5.000000000000001 -5 5 -5 5 +create_box 1 box bond/types 1 extra/bond/per/atom 1 extra/special/per/atom 1 +Created orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + +pair_style zero 5.0 +pair_coeff * * +mass * 1.0 +bond_style zero +bond_coeff * 1.0 + +create_atoms 1 single -4.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single 4.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single -5.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_atoms 1 single 5.0 0.0 0.0 +Created 1 atoms + using lattice units in orthogonal box = (-5 -5 -5) to (5 5 5) + create_atoms CPU = 0.000 seconds +create_bonds single/bond 1 3 1 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds +create_bonds single/bond 1 4 2 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.001 seconds + +group move id 1:2 +2 atoms in group move +write_restart walltest.restart +System init for write_restart ... +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + +variable name string wall-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.001 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/harmonic xlo -5.0 100 0.0 4.0 xhi 5.0 100 1.0 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 1800 1800 0 + 1 16146.37291 6600.295604 144.3878119 1652.527054 1796.914866 0 + 2 59294.04011 24238.149 530.232812 1258.437705 1788.670517 0 + 3 115302.7492 47133.32419 1031.086781 746.8819904 1777.968771 0 + 4 165817.4572 67782.66799 1482.811029 285.5057515 1768.31678 0 + 5 194283.6024 79419.02582 1737.367544 25.51012833 1762.877672 0 +Loop time of 0.000766029 on 4 procs for 5 steps with 4 atoms + + +variable name string table-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table linear 1000 xlo -5.0 walltab.dat HARMONIC 4.0 xhi 5.0 walltab.dat HARMONIC 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 1800.000356 1800.000356 0 + 1 16146.37291 6600.295604 144.3878119 1652.527723 1796.915535 0 + 2 59294.04011 24238.149 530.232812 1258.437853 1788.670665 0 + 3 115302.7492 47133.32419 1031.086781 746.8824148 1777.969196 0 + 4 165817.4572 67782.66799 1482.811029 285.5061521 1768.317181 0 + 5 194283.6024 79419.02582 1737.367544 25.51090543 1762.878449 0 +Loop time of 0.000395044 on 4 procs for 5 steps with 4 atoms + + +variable name string spline-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table spline 200 xlo -5.0 walltab.dat HARMONIC 4.0 xhi 5.0 walltab.dat HARMONIC 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 1800 1800 0 + 1 16146.37291 6600.295604 144.3878119 1652.527054 1796.914866 0 + 2 59294.04011 24238.149 530.232812 1258.437705 1788.670517 0 + 3 115302.7492 47133.32419 1031.086781 746.8819904 1777.968771 0 + 4 165817.4572 67782.66799 1482.811029 285.5057515 1768.31678 0 + 5 194283.6024 79419.02582 1737.367544 25.51012833 1762.877672 0 +Loop time of 0.00033613 on 4 procs for 5 steps with 4 atoms + + +variable name string bond-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +bond_style harmonic +bond_coeff 1 100 4.0 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +WARNING: Communication cutoff 7 is shorter than a bond length based estimate of 8. This may lead to errors. (src/comm.cpp:723) +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 27427.366 0 1800 1800 900 + 1 16146.37291 36178.74173 144.3878119 1652.527054 1796.914866 826.263527 + 2 59294.04011 58444.6962 530.232812 1258.437705 1788.670517 629.2188524 + 3 115302.7492 83661.44348 1031.086781 746.8819904 1777.968771 373.4409952 + 4 165817.4572 98424.89283 1482.811029 285.5057515 1768.31678 142.7528758 + 5 194283.6024 91313.53086 1737.367544 25.51012833 1762.877672 12.75506417 +Loop time of 0.000380067 on 4 procs for 5 steps with 4 atoms + + +variable name string pair-harmonic +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style harmonic/cut +pair_coeff 1 1 100 4.0 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair harmonic/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.38 | 4.56 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 27427.366 0 1800 1800 900 + 1 16146.37291 36178.74173 144.3878119 1652.527054 1796.914866 826.263527 + 2 59294.04011 58444.6962 530.232812 1258.437705 1788.670517 629.2188524 + 3 115302.7492 83661.44348 1031.086781 746.8819904 1777.968771 373.4409952 + 4 165817.4572 98424.89283 1482.811029 285.5057515 1768.31678 142.7528758 + 5 170540.4005 97560.47089 1525.045619 190.8165235 1715.862142 178.0614593 +Loop time of 0.000337009 on 4 procs for 5 steps with 4 atoms + + +variable eps index 0.02 +variable sig index 2.0 +variable name string wall-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/lj126 xlo -5.0 ${eps} ${sig} 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 ${sig} 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 ${eps} ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 0.02 ${sig} 4.0 +fix 1 move wall/lj126 xlo -5.0 0.02 2.0 4.0 xhi 5.0 0.02 2.0 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 645.1224609 645.1224609 0 + 1 178153.8707 72825.53278 1593.128544 0.2259591031 1593.354503 0 + 2 178262.3593 72869.88065 1594.098696 -0.02237405364 1594.076322 0 + 3 178259.9436 72868.89314 1594.077094 -0.003385746252 1594.073708 0 + 4 178259.4975 72868.71081 1594.073105 0 1594.073105 0 + 5 178259.4975 72868.71081 1594.073105 0 1594.073105 0 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 0.000404521 on 4 procs for 5 steps with 4 atoms + + +variable name string table-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table linear 1000 xlo -5.0 walltab.dat LJ126 4.0 xhi 5.0 walltab.dat LJ126 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +WARNING: 1 of 400 force values in table are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/fix_wall_table.cpp:244) +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +WARNING: 1 of 400 force values in table are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/fix_wall_table.cpp:244) +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 645.2141852 645.2141852 0 + 1 178212.5398 72849.51549 1593.653189 0.2256644171 1593.878854 0 + 2 178320.9331 72893.82438 1594.622489 -0.02236253394 1594.600126 0 + 3 178318.518 72892.83712 1594.600891 -0.0033818408 1594.597509 0 + 4 178318.0722 72892.6549 1594.596905 0 1594.596905 0 + 5 178318.0722 72892.6549 1594.596905 0 1594.596905 0 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 0.000334746 on 4 procs for 5 steps with 4 atoms + + +variable name string spline-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table spline 200 xlo -5.0 walltab.dat LJ126 4.0 xhi 5.0 walltab.dat LJ126 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +WARNING: 1 of 400 force values in table are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/fix_wall_table.cpp:244) +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +WARNING: 1 of 400 force values in table are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/fix_wall_table.cpp:244) +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 645.3361317 645.3361317 0 + 1 161871.9611 66169.83266 1447.528705 0.3353251002 1447.86403 0 + 2 162015.342 66228.44376 1448.810879 -0.02581160308 1448.785068 0 + 3 162012.784 66227.39811 1448.788005 -0.004635008226 1448.78337 0 + 4 162012.2554 66227.18201 1448.783278 0 1448.783278 0 + 5 162012.2554 66227.18201 1448.783278 0 1448.783278 0 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 0.000345529 on 4 procs for 5 steps with 4 atoms + + +variable name string pair-lj126 +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style lj/cut 4.0 +pair_coeff 1 1 ${eps} ${sig} +pair_coeff 1 1 0.02 ${sig} +pair_coeff 1 1 0.02 2.0 +pair_modify shift yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.38 | 4.56 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 178343.7047 0 645.1224609 645.1224609 322.5612305 + 1 178153.8707 72925.96146 1593.128544 0.2259591031 1593.354503 0.1129795516 + 2 178262.3593 72867.28485 1594.098696 -0.02237405364 1594.076322 -0.01118702682 + 3 178260.8147 72867.80305 1594.084884 -0.007499601847 1594.077384 -0.005806728722 + 4 176007.6835 72778.53677 1573.936415 2.772305717 1576.708721 2.772305717 + 5 1.132219912e+27 4.628275436e+26 1.012479748e+25 3.761972158e+12 1.012479748e+25 3.761972158e+12 +WARNING: Bond/angle/dihedral extent > half of periodic box length (src/domain.cpp:936) +Loop time of 0.000315196 on 4 procs for 5 steps with 4 atoms + + +variable d0 index 20.0 +variable al index 2.0 +variable r0 index 1.2 + +variable name string wall-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/morse xlo -5.0 ${d0} ${al} ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 ${al} ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 ${r0} 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 ${d0} ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 ${al} ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 2.0 ${r0} 4.0 +fix 1 move wall/morse xlo -5.0 20.0 2.0 1.2 4.0 xhi 5.0 20.0 2.0 1.2 4.0 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 -30.02905654 -30.02905654 0 + 1 146.0893547 59.71823711 1.30639385 -31.40065042 -30.09425657 0 + 2 485.8091411 198.5884977 4.34431431 -34.55987817 -30.21556386 0 + 3 822.0828974 336.0500941 7.351418888 -37.63613582 -30.28471693 0 + 4 1018.806679 416.4666136 9.110607565 -39.39265114 -30.28204357 0 + 5 1050.331347 429.3532307 9.392514704 -39.63687095 -30.24435625 0 +Loop time of 0.000711295 on 4 procs for 5 steps with 4 atoms + + +variable name string table-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table linear 1000 xlo -5.0 walltab.dat MORSE 4.0 xhi 5.0 walltab.dat MORSE 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 -30.0282104 -30.0282104 0 + 1 146.0967469 59.72125889 1.306459954 -31.40033773 -30.09387777 0 + 2 485.8417772 198.6018386 4.344606156 -34.55851819 -30.21391203 0 + 3 822.1558136 336.0799007 7.352070936 -37.63533573 -30.28326479 0 + 4 1018.904947 416.5067832 9.111486314 -39.39200056 -30.28051425 0 + 5 1050.436268 429.3961205 9.393452958 -39.63643565 -30.24298269 0 +Loop time of 0.000302153 on 4 procs for 5 steps with 4 atoms + + +variable name string spline-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +fix 1 move wall/table spline 1000 xlo -5.0 walltab.dat MORSE 4.0 xhi 5.0 walltab.dat MORSE 4.0 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +Reading fix wall/table table potential file walltab.dat with DATE: 2023-02-23 +fix_modify 1 energy yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 0 0 -30.02905657 -30.02905657 0 + 1 146.0893531 59.71823647 1.306393836 -31.40065068 -30.09425684 0 + 2 485.809133 198.5884944 4.344314238 -34.55987846 -30.21556422 0 + 3 822.0828818 336.0500877 7.351418748 -37.63613601 -30.28471726 0 + 4 1018.80666 416.4666056 9.110607389 -39.39265128 -30.28204389 0 + 5 1050.331328 429.353223 9.392514534 -39.63687099 -30.24435645 0 +Loop time of 0.000295181 on 4 procs for 5 steps with 4 atoms + + +variable name string bond-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +bond_style morse +bond_coeff 1 ${d0} ${al} ${r0} +bond_coeff 1 20.0 ${al} ${r0} +bond_coeff 1 20.0 2.0 ${r0} +bond_coeff 1 20.0 2.0 1.2 +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.379 | 4.559 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 2683.187147 0 9.675661328 9.675661328 4.837830664 + 1 146.0893547 2514.939772 1.30639385 8.304067455 9.610461305 4.152033728 + 2 485.8091411 2063.804037 4.34431431 5.144839701 9.489154012 2.572419851 + 3 822.0828974 1456.368913 7.351418888 2.06858205 9.420000938 1.034291025 + 4 1018.806679 823.4383177 9.110607565 0.3120667313 9.422674297 0.1560333657 + 5 1050.331347 253.0262957 9.392514704 0.06784692056 9.460361624 0.03392346028 +Loop time of 0.000710295 on 4 procs for 5 steps with 4 atoms + + +variable name string pair-morse +include wall.inc + +clear + using 1 OpenMP thread(s) per MPI task +read_restart walltest.restart +Reading restart file ... + restart file = 8 Feb 2023, LAMMPS = 8 Feb 2023 + restoring atom style bond from restart + orthogonal box = (-5 -5 -5) to (5 5 5) + 1 by 2 by 2 MPI processor grid + restoring pair style zero from restart + restoring bond style zero from restart + 4 atoms + 2 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 1 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_restart CPU = 0.001 seconds +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 1 1 1 + special bond factors coul: 1 1 1 + 1 = max # of 1-2 neighbors + 3 = max # of special neighbors + special bonds CPU = 0.000 seconds + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g + +pair_style morse 4.0 +pair_coeff 1 1 ${d0} ${al} ${r0} +pair_coeff 1 1 20.0 ${al} ${r0} +pair_coeff 1 1 20.0 2.0 ${r0} +pair_coeff 1 1 20.0 2.0 1.2 +pair_modify shift yes +run 5 post no +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6 + ghost atom cutoff = 6 + binsize = 3, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair morse, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.32 | 4.38 | 4.56 Mbytes + Step Temp Press KinEng PotEng TotEng c_pe + 0 0 2683.187147 0 -30.02905654 -30.02905654 -15.01452827 + 1 146.0893547 2514.939772 1.30639385 -31.40065042 -30.09425657 -15.70032521 + 2 485.8091411 2063.804037 4.34431431 -34.55987817 -30.21556386 -17.27993908 + 3 822.0828974 1456.368913 7.351418888 -37.63613582 -30.28471693 -18.81806791 + 4 1018.806679 823.4383177 9.110607565 -39.39265114 -30.28204357 -19.69632557 + 5 1050.331347 253.0262957 9.392514704 -39.63687095 -30.24435625 -19.81843547 +Loop time of 0.000297435 on 4 procs for 5 steps with 4 atoms + + +shell rm -f walltest.restart +Total wall time: 0:00:00 diff --git a/examples/wall/wall.inc b/examples/wall/wall.inc new file mode 100644 index 0000000000..1b36f2c38e --- /dev/null +++ b/examples/wall/wall.inc @@ -0,0 +1,16 @@ + +clear +read_restart walltest.restart +# log ${name}.log + +compute ea move pe/atom +compute pe move reduce sum c_ea +special_bonds lj/coul 1.0 1.0 1.0 + +thermo_style custom step temp press ke pe etotal c_pe +thermo 1 +thermo_modify format float %14.10g + +fix 0 move nve +# dump 1 all custom 1 ${name}.dump id x fx +# dump_modify 1 format float %20.15g diff --git a/examples/wall/walltab.dat b/examples/wall/walltab.dat new file mode 100644 index 0000000000..53b2b42700 --- /dev/null +++ b/examples/wall/walltab.dat @@ -0,0 +1,1212 @@ +# DATE: 2023-02-23 UNITS: real +HARMONIC +N 400 FP 199.99999998802 200.000000002102 + + 1 0.01 1592.01 798 + 2 0.02 1584.04 796 + 3 0.03 1576.09 794 + 4 0.04 1568.16 792 + 5 0.05 1560.25 790 + 6 0.06 1552.36 788 + 7 0.07 1544.49 786 + 8 0.08 1536.64 784 + 9 0.09 1528.81 782 + 10 0.1 1521 780 + 11 0.11 1513.21 778 + 12 0.12 1505.44 776 + 13 0.13 1497.69 774 + 14 0.14 1489.96 772 + 15 0.15 1482.25 770 + 16 0.16 1474.56 768 + 17 0.17 1466.89 766 + 18 0.18 1459.24 764 + 19 0.19 1451.61 762 + 20 0.2 1444 760 + 21 0.21 1436.41 758 + 22 0.22 1428.84 756 + 23 0.23 1421.29 754 + 24 0.24 1413.76 752 + 25 0.25 1406.25 750 + 26 0.26 1398.76 748 + 27 0.27 1391.29 746 + 28 0.28 1383.84 744 + 29 0.29 1376.41 742 + 30 0.3 1369 740 + 31 0.31 1361.61 738 + 32 0.32 1354.24 736 + 33 0.33 1346.89 734 + 34 0.34 1339.56 732 + 35 0.35 1332.25 730 + 36 0.36 1324.96 728 + 37 0.37 1317.69 726 + 38 0.38 1310.44 724 + 39 0.39 1303.21 722 + 40 0.4 1296 720 + 41 0.41 1288.81 718 + 42 0.42 1281.64 716 + 43 0.43 1274.49 714 + 44 0.44 1267.36 712 + 45 0.45 1260.25 710 + 46 0.46 1253.16 708 + 47 0.47 1246.09 706 + 48 0.48 1239.04 704 + 49 0.49 1232.01 702 + 50 0.5 1225 700 + 51 0.51 1218.01 698 + 52 0.52 1211.04 696 + 53 0.53 1204.09 694 + 54 0.54 1197.16 692 + 55 0.55 1190.25 690 + 56 0.56 1183.36 688 + 57 0.57 1176.49 686 + 58 0.58 1169.64 684 + 59 0.59 1162.81 682 + 60 0.6 1156 680 + 61 0.61 1149.21 678 + 62 0.62 1142.44 676 + 63 0.63 1135.69 674 + 64 0.64 1128.96 672 + 65 0.65 1122.25 670 + 66 0.66 1115.56 668 + 67 0.67 1108.89 666 + 68 0.68 1102.24 664 + 69 0.69 1095.61 662 + 70 0.7 1089 660 + 71 0.71 1082.41 658 + 72 0.72 1075.84 656 + 73 0.73 1069.29 654 + 74 0.74 1062.76 652 + 75 0.75 1056.25 650 + 76 0.76 1049.76 648 + 77 0.77 1043.29 646 + 78 0.78 1036.84 644 + 79 0.79 1030.41 642 + 80 0.8 1024 640 + 81 0.81 1017.61 638 + 82 0.82 1011.24 636 + 83 0.83 1004.89 634 + 84 0.84 998.56 632 + 85 0.85 992.25 630 + 86 0.86 985.96 628 + 87 0.87 979.69 626 + 88 0.88 973.44 624 + 89 0.89 967.21 622 + 90 0.9 961 620 + 91 0.91 954.81 618 + 92 0.92 948.64 616 + 93 0.93 942.49 614 + 94 0.94 936.36 612 + 95 0.95 930.25 610 + 96 0.96 924.16 608 + 97 0.97 918.09 606 + 98 0.98 912.04 604 + 99 0.99 906.01 602 + 100 1 900 600 + 101 1.01 894.01 598 + 102 1.02 888.04 596 + 103 1.03 882.09 594 + 104 1.04 876.16 592 + 105 1.05 870.25 590 + 106 1.06 864.36 588 + 107 1.07 858.49 586 + 108 1.08 852.64 584 + 109 1.09 846.81 582 + 110 1.1 841 580 + 111 1.11 835.21 578 + 112 1.12 829.44 576 + 113 1.13 823.69 574 + 114 1.14 817.96 572 + 115 1.15 812.25 570 + 116 1.16 806.56 568 + 117 1.17 800.89 566 + 118 1.18 795.24 564 + 119 1.19 789.61 562 + 120 1.2 784 560 + 121 1.21 778.41 558 + 122 1.22 772.84 556 + 123 1.23 767.29 554 + 124 1.24 761.76 552 + 125 1.25 756.25 550 + 126 1.26 750.76 548 + 127 1.27 745.29 546 + 128 1.28 739.84 544 + 129 1.29 734.41 542 + 130 1.3 729 540 + 131 1.31 723.61 538 + 132 1.32 718.24 536 + 133 1.33 712.89 534 + 134 1.34 707.56 532 + 135 1.35 702.25 530 + 136 1.36 696.96 528 + 137 1.37 691.69 526 + 138 1.38 686.44 524 + 139 1.39 681.21 522 + 140 1.4 676 520 + 141 1.41 670.81 518 + 142 1.42 665.64 516 + 143 1.43 660.49 514 + 144 1.44 655.36 512 + 145 1.45 650.25 510 + 146 1.46 645.16 508 + 147 1.47 640.09 506 + 148 1.48 635.04 504 + 149 1.49 630.01 502 + 150 1.5 625 500 + 151 1.51 620.01 498 + 152 1.52 615.04 496 + 153 1.53 610.09 494 + 154 1.54 605.16 492 + 155 1.55 600.25 490 + 156 1.56 595.36 488 + 157 1.57 590.49 486 + 158 1.58 585.64 484 + 159 1.59 580.81 482 + 160 1.6 576 480 + 161 1.61 571.21 478 + 162 1.62 566.44 476 + 163 1.63 561.69 474 + 164 1.64 556.96 472 + 165 1.65 552.25 470 + 166 1.66 547.56 468 + 167 1.67 542.89 466 + 168 1.68 538.24 464 + 169 1.69 533.61 462 + 170 1.7 529 460 + 171 1.71 524.41 458 + 172 1.72 519.84 456 + 173 1.73 515.29 454 + 174 1.74 510.76 452 + 175 1.75 506.25 450 + 176 1.76 501.76 448 + 177 1.77 497.29 446 + 178 1.78 492.84 444 + 179 1.79 488.41 442 + 180 1.8 484 440 + 181 1.81 479.61 438 + 182 1.82 475.24 436 + 183 1.83 470.89 434 + 184 1.84 466.56 432 + 185 1.85 462.25 430 + 186 1.86 457.96 428 + 187 1.87 453.69 426 + 188 1.88 449.44 424 + 189 1.89 445.21 422 + 190 1.9 441 420 + 191 1.91 436.81 418 + 192 1.92 432.64 416 + 193 1.93 428.49 414 + 194 1.94 424.36 412 + 195 1.95 420.25 410 + 196 1.96 416.16 408 + 197 1.97 412.09 406 + 198 1.98 408.04 404 + 199 1.99 404.01 402 + 200 2 400 400 + 201 2.01 396.01 398 + 202 2.02 392.04 396 + 203 2.03 388.09 394 + 204 2.04 384.16 392 + 205 2.05 380.25 390 + 206 2.06 376.36 388 + 207 2.07 372.49 386 + 208 2.08 368.64 384 + 209 2.09 364.81 382 + 210 2.1 361 380 + 211 2.11 357.21 378 + 212 2.12 353.44 376 + 213 2.13 349.69 374 + 214 2.14 345.96 372 + 215 2.15 342.25 370 + 216 2.16 338.56 368 + 217 2.17 334.89 366 + 218 2.18 331.24 364 + 219 2.19 327.61 362 + 220 2.2 324 360 + 221 2.21 320.41 358 + 222 2.22 316.84 356 + 223 2.23 313.29 354 + 224 2.24 309.76 352 + 225 2.25 306.25 350 + 226 2.26 302.76 348 + 227 2.27 299.29 346 + 228 2.28 295.84 344 + 229 2.29 292.41 342 + 230 2.3 289 340 + 231 2.31 285.61 338 + 232 2.32 282.24 336 + 233 2.33 278.89 334 + 234 2.34 275.56 332 + 235 2.35 272.25 330 + 236 2.36 268.96 328 + 237 2.37 265.69 326 + 238 2.38 262.44 324 + 239 2.39 259.21 322 + 240 2.4 256 320 + 241 2.41 252.81 318 + 242 2.42 249.64 316 + 243 2.43 246.49 314 + 244 2.44 243.36 312 + 245 2.45 240.25 310 + 246 2.46 237.16 308 + 247 2.47 234.09 306 + 248 2.48 231.04 304 + 249 2.49 228.01 302 + 250 2.5 225 300 + 251 2.51 222.01 298 + 252 2.52 219.04 296 + 253 2.53 216.09 294 + 254 2.54 213.16 292 + 255 2.55 210.25 290 + 256 2.56 207.36 288 + 257 2.57 204.49 286 + 258 2.58 201.64 284 + 259 2.59 198.81 282 + 260 2.6 196 280 + 261 2.61 193.21 278 + 262 2.62 190.44 276 + 263 2.63 187.69 274 + 264 2.64 184.96 272 + 265 2.65 182.25 270 + 266 2.66 179.56 268 + 267 2.67 176.89 266 + 268 2.68 174.24 264 + 269 2.69 171.61 262 + 270 2.7 169 260 + 271 2.71 166.41 258 + 272 2.72 163.84 256 + 273 2.73 161.29 254 + 274 2.74 158.76 252 + 275 2.75 156.25 250 + 276 2.76 153.76 248 + 277 2.77 151.29 246 + 278 2.78 148.84 244 + 279 2.79 146.41 242 + 280 2.8 144 240 + 281 2.81 141.61 238 + 282 2.82 139.24 236 + 283 2.83 136.89 234 + 284 2.84 134.56 232 + 285 2.85 132.25 230 + 286 2.86 129.96 228 + 287 2.87 127.69 226 + 288 2.88 125.44 224 + 289 2.89 123.21 222 + 290 2.9 121 220 + 291 2.91 118.81 218 + 292 2.92 116.64 216 + 293 2.93 114.49 214 + 294 2.94 112.36 212 + 295 2.95 110.25 210 + 296 2.96 108.16 208 + 297 2.97 106.09 206 + 298 2.98 104.04 204 + 299 2.99 102.01 202 + 300 3 100 200 + 301 3.01 98.01 198 + 302 3.02 96.04 196 + 303 3.03 94.09 194 + 304 3.04 92.16 192 + 305 3.05 90.25 190 + 306 3.06 88.36 188 + 307 3.07 86.49 186 + 308 3.08 84.64 184 + 309 3.09 82.81 182 + 310 3.1 81.0000000000001 180 + 311 3.11 79.21 178 + 312 3.12 77.4400000000001 176 + 313 3.13 75.69 174 + 314 3.14 73.9600000000001 172 + 315 3.15 72.25 170 + 316 3.16 70.56 168 + 317 3.17 68.89 166 + 318 3.18 67.2400000000001 164 + 319 3.19 65.61 162 + 320 3.2 64 160 + 321 3.21 62.41 158 + 322 3.22 60.84 156 + 323 3.23 59.29 154 + 324 3.24 57.76 152 + 325 3.25 56.25 150 + 326 3.26 54.76 148 + 327 3.27 53.29 146 + 328 3.28 51.84 144 + 329 3.29 50.41 142 + 330 3.3 49 140 + 331 3.31 47.61 138 + 332 3.32 46.24 136 + 333 3.33 44.89 134 + 334 3.34 43.56 132 + 335 3.35 42.25 130 + 336 3.36 40.96 128 + 337 3.37 39.69 126 + 338 3.38 38.44 124 + 339 3.39 37.21 122 + 340 3.4 36 120 + 341 3.41 34.81 118 + 342 3.42 33.64 116 + 343 3.43 32.49 114 + 344 3.44 31.36 112 + 345 3.45 30.25 110 + 346 3.46 29.16 108 + 347 3.47 28.09 106 + 348 3.48 27.04 104 + 349 3.49 26.01 102 + 350 3.5 25 100 + 351 3.51 24.01 98 + 352 3.52 23.04 96 + 353 3.53 22.09 94 + 354 3.54 21.16 92 + 355 3.55 20.25 90 + 356 3.56 19.36 88 + 357 3.57 18.49 86 + 358 3.58 17.64 84 + 359 3.59 16.81 82 + 360 3.6 16 80.0000000000001 + 361 3.61 15.21 78 + 362 3.62 14.44 76.0000000000001 + 363 3.63 13.69 74 + 364 3.64 12.96 72.0000000000001 + 365 3.65 12.25 70 + 366 3.66 11.56 68.0000000000001 + 367 3.67 10.89 66 + 368 3.68 10.24 64.0000000000001 + 369 3.69 9.61 62 + 370 3.7 9.00000000000002 60.0000000000001 + 371 3.71 8.41 58 + 372 3.72 7.84000000000001 56 + 373 3.73 7.29 54 + 374 3.74 6.76000000000001 52 + 375 3.75 6.25 50 + 376 3.76 5.76000000000001 48 + 377 3.77 5.29 46 + 378 3.78 4.84000000000001 44 + 379 3.79 4.41 42 + 380 3.8 4.00000000000001 40 + 381 3.81 3.61 38 + 382 3.82 3.24000000000001 36 + 383 3.83 2.89 34 + 384 3.84 2.56 32 + 385 3.85 2.25000000000001 30.0000000000001 + 386 3.86 1.96 28 + 387 3.87 1.69000000000001 26.0000000000001 + 388 3.88 1.44 24 + 389 3.89 1.21000000000001 22.0000000000001 + 390 3.9 1 20 + 391 3.91 0.810000000000005 18.0000000000001 + 392 3.92 0.640000000000001 16 + 393 3.93 0.490000000000004 14.0000000000001 + 394 3.94 0.360000000000001 12 + 395 3.95 0.250000000000003 10.0000000000001 + 396 3.96 0.16 8.00000000000001 + 397 3.97 0.0900000000000015 6.00000000000005 + 398 3.98 0.0400000000000001 4 + 399 3.99 0.0100000000000005 2.00000000000005 + 400 4 0 -0 + +LJ126 +N 400 FP 5.1118735962137e+32 -0.00309082031258548 + + 1 0.01 3.27679999999995e+26 3.93215999999997e+29 + 2 0.02 7.999999999992e+22 4.7999999999976e+25 + 3 0.03 6.16587730333692e+20 2.46635092134882e+23 + 4 0.04 1.953124999875e+19 5.8593749998125e+21 + 5 0.05 1.34217727967232e+18 3.22122547160678e+20 + 6 0.06 1.50534113742974e+17 3.01068227595687e+19 + 7 0.07 2.36740987047768e+16 4.0584169245491e+18 + 8 0.08 4.7683715625e+15 7.15255735839844e+17 + 9 0.09 1.16021858535701e+15 1.54695812023214e+17 + 10 0.1 327679994880000 3.93215996928e+16 + 11 0.11 104408943457223 1.1390066716612e+16 + 12 0.12 36751490925145.1 3.67514917824839e+15 + 13 0.13 14064674137985.3 1.29827766169443e+15 + 14 0.14 5779808584731.93 495412193547970 + 15 0.15 2525542893983.11 202043449498347 + 16 0.16 1164152913093.57 87311479926109.3 + 17 0.17 562422536382.565 39700421819385.7 + 18 0.18 283256342383.657 18883761176714.3 + 19 0.19 148049315667.806 9350486531543.45 + 20 0.2 79999920000 4799997600000 + 21 0.21 44546933756.973 2545540777462.22 + 22 0.22 25490420258.9142 1390387791156.62 + 23 0.23 14952537428.7256 780133289834.579 + 24 0.24 8972505590.93106 448625949342.506 + 25 0.25 5497537167.36 263882287349.76 + 26 0.26 3433742019.34244 158480783371.887 + 27 0.27 2183142760.29056 97028860804.3568 + 28 0.28 1411075621.44501 60474897165.3154 + 29 0.29 926125673.822696 38322619763.6554 + 30 0.3 616580707.0211 24663368747.2363 + 31 0.31 416009823.905961 16103717744.5564 + 32 0.32 284212325.932458 10658051629.4343 + 33 0.33 196459888.227809 7144068017.02626 + 34 0.34 137306926.997591 4846185323.48129 + 35 0.35 96966323.2389768 3324607400.77709 + 36 0.36 69152065.1207238 2305108038.94961 + 37 0.37 49775064.9237755 1614358790.00722 + 38 0.38 36143178.5600903 1141390382.96618 + 39 0.39 26463712.6560866 814290467.337231 + 40 0.4 19530000 585918750 + 41 0.41 14521498.0087087 425035227.636584 + 42 0.42 10874798.0545347 310721841.118787 + 43 0.43 8199466.01317535 228833608.99882 + 44 0.44 6222552.56599285 169715600.787249 + 45 0.45 4751638.77735359 126718588.565834 + 46 0.46 3649989.86758843 95224175.8000662 + 47 0.47 2819697.29321996 71998334.9953008 + 48 0.48 2190141.04129116 54758758.8131646 + 49 0.49 1710027.28319849 41882748.66355 + 50 0.5 1341849.6 32208322.56 + 51 0.51 1058006.65523823 24897697.4228116 + 52 0.52 838060.998837605 19342857.3223731 + 53 0.53 666789.987179218 15099746.8961697 + 54 0.54 532790.570446716 11842084.8319641 + 55 0.55 427474.077421262 9328724.96356281 + 56 0.56 344337.465207402 7380438.67822062 + 57 0.57 278431.824939693 5863294.06820348 + 58 0.58 225972.508581954 4676684.59533017 + 59 0.59 184051.546113289 3744655.68033901 + 60 0.6 150424.374483715 3009584.88336429 + 61 0.61 123350.855088644 2427551.68856224 + 62 0.62 101476.166388201 1964927.16046069 + 63 0.63 83741.1380986279 1595849.194324 + 64 0.64 69314.433233103 1300344.11505164 + 65 0.65 57541.0221131564 1062922.4467121 + 66 0.66 47902.8627772938 871524.277886254 + 67 0.67 39988.7686350844 716723.622846053 + 68 0.68 33471.2216469342 591125.556925389 + 69 0.69 28088.4588685097 488907.487779091 + 70 0.7 23630.5794663641 405468.670411373 + 71 0.71 19928.7293797829 337161.358693302 + 72 0.72 16846.6511480469 281083.781572781 + 73 0.73 14274.0582893633 234920.128588064 + 74 0.74 12121.4223978073 196816.419317638 + 75 0.75 10315.8580177291 165283.868420841 + 76 0.76 8797.86354892769 139123.396620918 + 77 0.77 7518.73194262011 117366.462742951 + 78 0.78 6438.48720142382 99228.5368424456 + 79 0.79 5524.23497941619 84072.3974988274 + 80 0.8 4748.84033203125 71379.0893554688 + 81 0.81 4089.86471239314 60724.8728913557 + 82 0.82 3528.70901623885 51762.8763522511 + 83 0.83 3049.92086898724 44208.4488137823 + 84 0.84 2640.63320118397 37827.4351559535 + 85 0.85 2290.10805995704 32426.7645022107 + 86 0.86 1989.36500087798 27846.8755825359 + 87 0.87 1730.87763742956 23955.6046859174 + 88 0.88 1508.32525488308 20643.2413037218 + 89 0.89 1316.38902199036 17818.5184898513 + 90 0.9 1150.58441170462 15405.3533779721 + 91 0.91 1007.12309029864 13340.1912562734 + 92 0.92 882.798845070896 11569.8364467355 + 93 0.93 774.893166074233 10049.6767670538 + 94 0.94 681.096932892021 8742.22695500175 + 95 0.95 599.44532713569 7615.93117817949 + 96 0.96 528.263629303608 6644.17646696409 + 97 0.97 466.121991846633 5804.47824031498 + 98 0.98 411.797629942172 5077.80654581059 + 99 0.99 364.243154342175 4448.0275999211 + 100 1 322.56 3901.44 + 101 1.01 285.976090530384 3426.38882771447 + 102 1.02 253.827030297804 3012.94396513177 + 103 1.03 225.540239747413 2652.63144983911 + 104 1.04 200.621550834657 2338.20872331377 + 105 1.05 178.643862357643 2063.4762716918 + 106 1.06 159.23752308986 1823.11949517041 + 107 1.07 142.082166618064 1612.5757313387 + 108 1.08 126.899767943477 1427.92224653664 + 109 1.09 113.448730008354 1265.78173613026 + 110 1.1 101.518839825454 1123.24247003337 + 111 1.11 90.9269600009698 997.790708555212 + 112 1.12 81.5133431159172 887.25341556569 + 113 1.13 73.1384744523848 789.749627072004 + 114 1.14 65.6803635603396 703.649106551692 + 115 1.15 59.0322176820994 627.537144288344 + 116 1.16 53.1004405144923 560.184545032147 + 117 1.17 47.8029085455291 500.522003491118 + 118 1.18 43.0674845428558 447.618196099855 + 119 1.19 38.8307339338883 400.661024822347 + 120 1.2 35.0368149992191 358.941538195209 + 121 1.21 31.6365181642494 321.84012949674 + 122 1.22 28.5864333536624 288.81467437058 + 123 1.23 25.8482274809145 259.390322524165 + 124 1.24 23.3880167730451 233.150701977299 + 125 1.25 21.1758208568525 209.730331169784 + 126 1.26 19.1850874200435 188.808065217971 + 127 1.27 17.3922778638774 170.101428704978 + 128 1.28 15.7765057268167 153.361709399544 + 129 1.29 14.3192208191916 138.369705888684 + 130 1.3 13.0039329982385 124.93203783215 + 131 1.31 11.8159703573738 112.877940862029 + 132 1.32 10.742267325336 102.056479441995 + 133 1.33 9.77117878844351 92.3341205878234 + 134 1.34 8.89231687835239 83.5926195011401 + 135 1.35 8.09640752156034 75.7271751060856 + 136 1.36 7.37516423666038 68.6448193911968 + 137 1.37 6.72117700043457 62.2630095039278 + 138 1.38 6.12781429229003 56.5083958552413 + 139 1.39 5.58913667505634 51.3157431780328 + 140 1.4 5.09982048453558 46.6269846396698 + 141 1.41 4.65509038531888 42.3903918148852 + 142 1.42 4.25065971041413 38.5598456475375 + 143 1.43 3.88267764071721 35.094195524972 + 144 1.44 3.54768240032668 31.9566953047941 + 145 1.45 3.2425597477324 29.1145066114402 + 146 1.46 2.96450613320954 26.5382609934959 + 147 1.47 2.71099597121152 24.201673631581 + 148 1.48 2.47975254479573 22.0812022357191 + 149 1.49 2.26872211852512 20.1557455917022 + 150 1.5 2.07605088805719 18.406376926131 + 151 1.51 1.90006443978594 16.8161078750468 + 152 1.52 1.73924943332248 15.3696793745607 + 153 1.53 1.59223725404604 14.0533762549498 + 154 1.54 1.45778941308428 12.8548627219953 + 155 1.55 1.3347844984538 11.7630362591856 + 156 1.56 1.22220650419816 10.7678977889214 + 157 1.57 1.11913438462253 9.8604361961486 + 158 1.58 1.0247326985066 9.03252554917343 + 159 1.59 0.938243223797885 8.27683355430592 + 160 1.6 0.858977437019348 7.58673995733261 + 161 1.61 0.786309763707168 6.95626375900101 + 162 1.62 0.719671516833175 6.37999824660786 + 163 1.63 0.658545449541767 5.85305296192972 + 164 1.64 0.602460856799685 5.37100182928644 + 165 1.65 0.550989167855032 4.92983675836218 + 166 1.66 0.50373997784832 4.52592611615155 + 167 1.67 0.460357472616855 4.15597753246054 + 168 1.68 0.420517205774839 3.81700456499657 + 169 1.69 0.383923191614426 3.5062968042922 + 170 1.7 0.350305281326764 3.22139304644752 + 171 1.71 0.319416793547456 2.96005720375087 + 172 1.72 0.291032373340814 2.72025666034601 + 173 1.73 0.264946056498474 2.50014281286752 + 174 1.74 0.240969518481067 2.29803356489672 + 175 1.75 0.218930489512642 2.11239756966217 + 176 1.76 0.198671319277887 1.94184003802907 + 177 1.77 0.180047676399622 1.78508994884384 + 178 1.78 0.162927369412905 1.64098851643657 + 179 1.79 0.147189277323862 1.50847878580419 + 180 1.8 0.132722379065058 1.38659623994277 + 181 1.81 0.119424872251388 1.27446031617392 + 182 1.82 0.107203372615978 1.17126673930439 + 183 1.83 0.0959721863774054 1.07628058922823 + 184 1.84 0.0856526485691159 0.988830029271115 + 185 1.85 0.0761725210595532 0.908300629309384 + 186 1.86 0.0674654446160545 0.834130224582963 + 187 1.87 0.0594704399251235 0.765804257257523 + 188 1.88 0.0521314529832651 0.702851553262425 + 189 1.89 0.0453969407224163 0.644840491811995 + 190 1.9 0.0392194931377522 0.591375529375228 + 191 1.91 0.0335554885481552 0.542094043751032 + 192 1.92 0.0283647789453533 0.49666346738496 + 193 1.93 0.0236104026805308 0.454778682174315 + 194 1.94 0.0192583220005616 0.416159650792266 + 195 1.95 0.0152771831830326 0.380549262054052 + 196 1.96 0.011638097232609 0.347711370081059 + 197 1.97 0.00831443929356093 0.317429009019945 + 198 1.98 0.00528166510655355 0.289502766868822 + 199 1.99 0.00251714299408876 0.263749303573146 + 200 2 0 0.24 + 201 2.01 -0.00228901906429909 0.218099725698431 + 202 2.02 -0.00436768079912425 0.197905714521054 + 203 2.03 -0.00625238164979804 0.179286538232021 + 204 2.04 -0.00795825652836287 0.162121169171087 + 205 2.05 -0.00949927847321568 0.14629812389388 + 206 2.06 -0.0108883501192544 0.131714680474321 + 207 2.07 -0.0121373876814899 0.118276162845335 + 208 2.08 -0.0132573980920064 0.105895286176151 + 209 2.09 -0.0142585498729917 0.0944915578457512 + 210 2.1 -0.0151502382767254 0.0839907290785127 + 211 2.11 -0.0159411451764045 0.0743242927653805 + 212 2.12 -0.016639294149014 0.0654290234070173 + 213 2.13 -0.0172521011527193 0.0572465554886841 + 214 2.14 -0.0177864211660622 0.0497229969341964 + 215 2.15 -0.0182485911242772 0.0428085745916192 + 216 2.16 -0.0186444694589691 0.0364573089797509 + 217 2.17 -0.0189794725209579 0.0306267157746301 + 218 2.18 -0.0192586081420424 0.0252775317419794 + 219 2.19 -0.019486506569534 0.020373463026883 + 220 2.2 -0.0196674489874736 0.0158809538982407 + 221 2.21 -0.0198053938202783 0.0117689742144395 + 222 2.22 -0.0199040009980056 0.0080088240299791 + 223 2.23 -0.0199666543473297 0.00457395390192573 + 224 2.24 -0.0199964822585545 0.00143979958145524 + 225 2.25 -0.019996376766422 -0.00141637010943526 + 226 2.26 -0.019969011171008 -0.00401559331158788 + 227 2.27 -0.0199168563145235 -0.00637734407335522 + 228 2.28 -0.0198421956202703 -0.00851965112057023 + 229 2.29 -0.0197471389912575 -0.0104592072875345 + 230 2.3 -0.0196336356579912 -0.0122114703731947 + 231 2.31 -0.0195034860576381 -0.0137907561215244 + 232 2.32 -0.0193583528200755 -0.0152103239657529 + 233 2.33 -0.0191997709302198 -0.0164824561219656 + 234 2.34 -0.0190291571304174 -0.0176185305682534 + 235 2.35 -0.0188478186215532 -0.0186290884005698 + 236 2.36 -0.0186569611168248 -0.0195238960153759 + 237 2.37 -0.0184576962978232 -0.0203120025316505 + 238 2.38 -0.0182510487186061 -0.0210017928305951 + 239 2.39 -0.0180379621998275 -0.0216010365600731 + 240 2.4 -0.0178193057516615 -0.0221169334222308 + 241 2.41 -0.0175958790612055 -0.0225561550366037 + 242 2.42 -0.0173684175772469 -0.0229248836471039 + 243 2.43 -0.0171375972227052 -0.023228847919412 + 244 2.44 -0.0169040387626965 -0.0234733560552774 + 245 2.45 -0.0166683118539951 -0.0236633264319042 + 246 2.46 -0.0164309387996731 -0.0238033159578182 + 247 2.47 -0.0161923980308578 -0.0238975463212279 + 248 2.48 -0.0159531273358642 -0.0239499282928091 + 249 2.49 -0.0157135268554007 -0.0239640842319152 + 250 2.5 -0.01547396186112 -0.023943368933376 + 251 2.51 -0.0152347653334678 -0.0238908889411751 + 252 2.52 -0.0149962403535728 -0.0238095204453263 + 253 2.53 -0.0147586623228006 -0.0237019258691133 + 254 2.54 -0.0145222810225697 -0.0235705692454532 + 255 2.55 -0.0142873225260751 -0.0234177304734231 + 256 2.56 -0.0140539909726934 -0.0232455185388944 + 257 2.57 -0.0138224702150363 -0.0230558837767028 + 258 2.58 -0.0135929253478739 -0.0228506292457848 + 259 2.59 -0.0133655041274656 -0.0226314212832035 + 260 2.6 -0.013140338289201 -0.0223997992979115 + 261 2.61 -0.012917544770867 -0.0221571848604376 + 262 2.62 -0.0126972268483229 -0.0219048901403872 + 263 2.63 -0.0124794751898578 -0.021644125739692 + 264 2.64 -0.0122643688350524 -0.0213760079659045 + 265 2.65 -0.0120519761035347 -0.0211015655864784 + 266 2.66 -0.0118423554386299 -0.0208217461018842 + 267 2.67 -0.0116355561905371 -0.020537421572559 + 268 2.68 -0.0114316193433321 -0.0202493940320658 + 269 2.69 -0.0112305781897813 -0.0199584005164126 + 270 2.7 -0.0110324589576661 -0.0196651177372457 + 271 2.71 -0.0108372813910468 -0.0193701664245735 + 272 2.72 -0.0106450592896536 -0.0190741153627698 + 273 2.73 -0.0104558010093575 -0.0187774851418501 + 274 2.74 -0.0102695099264674 -0.0184807516443931 + 275 2.75 -0.0100861848683998 -0.018184349286978 + 276 2.76 -0.00990582051308903 -0.0178886740336262 + 277 2.77 -0.00972840775933402 -0.0175940861974542 + 278 2.78 -0.00955393407012526 -0.0173009130455639 + 279 2.79 -0.00938238379084764 -0.0170094512211008 + 280 2.8 -0.0092137384441229 -0.0167199689953997 + 281 2.81 -0.00904797700292975 -0.0164327083622032 + 282 2.82 -0.00888507614352483 -0.0161478869850703 + 283 2.83 -0.00872501047958036 -0.0158657000082945 + 284 2.84 -0.00856775277885475 -0.0155863217409045 + 285 2.85 -0.00841327416362063 -0.0153099072226406 + 286 2.86 -0.00826154429598848 -0.0150365936801558 + 287 2.87 -0.008112531549185 -0.0147665018811108 + 288 2.88 -0.00796620316577118 -0.0144997373932774 + 289 2.89 -0.00782252540371654 -0.0142363917552666 + 290 2.9 -0.00768146367118216 -0.0139765435650238 + 291 2.91 -0.00754298265080599 -0.0137202594918023 + 292 2.92 -0.00740704641422874 -0.0134675952169205 + 293 2.93 -0.0072736185275476 -0.0132185963082382 + 294 2.94 -0.00714266214833727 -0.0129732990329359 + 295 2.95 -0.00701414011483394 -0.0127317311128642 + 296 2.96 -0.00688801502783611 -0.0124939124264287 + 297 2.97 -0.00676424932583852 -0.0122598556607 + 298 2.98 -0.00664280535387939 -0.0120295669171802 + 299 2.99 -0.00652364542654837 -0.0118030462744207 + 300 3 -0.00640673188557149 -0.0115802883104616 + 301 3.01 -0.00629202715236113 -0.0113612825878578 + 302 3.02 -0.00617949377589186 -0.0111460141038675 + 303 3.03 -0.00606909447623864 -0.0109344637081976 + 304 3.04 -0.00596079218409037 -0.010726608490537 + 305 3.05 -0.00585455007653046 -0.0105224221399565 + 306 3.06 -0.00575033160935592 -0.0103218752781076 + 307 3.07 -0.00564810054618798 -0.0101249357680231 + 308 3.08 -0.00554782098460957 -0.0099315690001964 + 309 3.09 -0.00544945737954914 -0.00974173815750352 + 310 3.1 -0.00535297456411485 -0.00955540446042336 + 311 3.11 -0.00525833776806946 -0.00937252739391286 + 312 3.12 -0.00516551263412281 -0.00919306491720141 + 313 3.13 -0.00507446523220689 -0.00901697365768222 + 314 3.14 -0.00498516207188684 -0.00884420908999869 + 315 3.15 -0.00489757011305085 -0.0086747257013485 + 316 3.16 -0.00481165677501198 -0.00850847714395953 + 317 3.17 -0.0047273899441455 -0.00834541637562582 + 318 3.18 -0.00464473798017724 -0.00818549578913289 + 319 3.19 -0.0045636697212299 -0.00802866733134403 + 320 3.2 -0.00448415448772721 -0.00787488261266845 + 321 3.21 -0.0044061620852487 -0.0077240930075819 + 322 3.22 -0.00432966280642131 -0.00757624974682629 + 323 3.23 -0.00425462743192826 -0.00743130400187142 + 324 3.24 -0.00418102723070959 -0.00728920696218331 + 325 3.25 -0.00410883395942396 -0.00714990990580627 + 326 3.26 -0.00403801986123603 -0.00701336426373192 + 327 3.27 -0.00396855766398934 -0.00687952167849605 + 328 3.28 -0.00390042057782043 -0.00674833405741498 + 329 3.29 -0.0038335822922657 -0.00661975362084443 + 330 3.3 -0.00376801697290912 -0.00649373294581906 + 331 3.31 -0.00370369925761526 -0.00637022500540547 + 332 3.32 -0.00364060425238888 -0.00624918320408006 + 333 3.33 -0.00357870752689941 -0.00613056140942109 + 334 3.34 -0.00351798510970581 -0.00601431398038557 + 335 3.35 -0.00345841348321468 -0.0059003957924224 + 336 3.36 -0.00339996957840208 -0.00578876225965695 + 337 3.37 -0.00334263076932723 -0.00567936935436567 + 338 3.38 -0.00328637486746409 -0.00557217362394473 + 339 3.39 -0.00323118011587515 -0.00546713220556294 + 340 3.4 -0.0031770251832493 -0.0053642028386758 + 341 3.41 -0.00312388915782479 -0.00526334387556606 + 342 3.42 -0.00307175154121582 -0.0051645142900641 + 343 3.43 -0.00302059224216055 -0.00506767368459182 + 344 3.44 -0.00297039157020643 -0.00497278229566303 + 345 3.45 -0.00292113022934775 -0.00487980099796471 + 346 3.46 -0.00287278931162898 -0.00478869130713483 + 347 3.47 -0.00282535029072639 -0.00469941538134419 + 348 3.48 -0.0027787950155194 -0.0046119360217826 + 349 3.49 -0.00273310570366224 -0.00452621667214249 + 350 3.5 -0.00268826493516526 -0.00444222141718669 + 351 3.51 -0.00264425564599499 -0.00435991498048109 + 352 3.52 -0.00260106112170057 -0.00427926272136684 + 353 3.53 -0.0025586649910741 -0.00420023063124215 + 354 3.54 -0.00251705121985127 -0.00412278532921804 + 355 3.55 -0.0024762041044583 -0.0040468940572084 + 356 3.56 -0.00243610826581068 -0.00397252467451004 + 357 3.57 -0.00239674864316831 -0.00389964565192452 + 358 3.58 -0.00235811048805159 -0.0038282260654699 + 359 3.59 -0.00232017935822227 -0.0037582355897268 + 360 3.6 -0.0022829411117324 -0.00368964449086024 + 361 3.61 -0.00224638190104462 -0.0036224236193553 + 362 3.62 -0.00221048816722635 -0.00355654440250213 + 363 3.63 -0.00217524663422022 -0.00349197883666304 + 364 3.64 -0.00214064430319279 -0.00342869947935186 + 365 3.65 -0.00210666844696334 -0.00336667944115366 + 366 3.66 -0.00207330660451415 -0.00330589237751054 + 367 3.67 -0.00204054657558338 -0.00324631248039738 + 368 3.68 -0.00200837641534185 -0.00318791446990948 + 369 3.69 -0.00197678442915411 -0.00313067358578226 + 370 3.7 -0.00194575916742469 -0.00307456557886165 + 371 3.71 -0.00191528942052976 -0.00301956670254226 + 372 3.72 -0.00188536421383456 -0.00296565370418886 + 373 3.73 -0.00185597280279656 -0.00291280381655574 + 374 3.74 -0.00182710466815449 -0.00286099474921692 + 375 3.75 -0.00179874951120284 -0.00281020468001918 + 376 3.76 -0.00177089724915176 -0.00276041224656904 + 377 3.77 -0.00174353801057185 -0.00271159653776342 + 378 3.78 -0.00171666213092339 -0.0026637370853732 + 379 3.79 -0.0016902601481694 -0.00261681385568771 + 380 3.8 -0.00166432279847199 -0.00257080724122772 + 381 3.81 -0.00163884101197116 -0.00252569805253342 + 382 3.82 -0.00161380590864532 -0.00248146751003353 + 383 3.83 -0.0015892087942527 -0.00243809723600076 + 384 3.84 -0.00156504115635276 -0.00239556924659847 + 385 3.85 -0.00154129466040667 -0.00235386594402276 + 386 3.86 -0.00151796114595583 -0.0023129701087436 + 387 3.87 -0.00149503262287753 -0.0022728648918484 + 388 3.88 -0.00147250126771658 -0.00223353380749066 + 389 3.89 -0.00145035942009203 -0.00219496072544632 + 390 3.9 -0.00142859957917763 -0.00215712986377968 + 391 3.91 -0.00140721440025518 -0.00212002578162075 + 392 3.92 -0.00138619669133956 -0.00208363337205523 + 393 3.93 -0.00136553940987418 -0.00204793785512849 + 394 3.94 -0.00134523565949593 -0.00201292477096412 + 395 3.95 -0.00132527868686831 -0.00197857997299782 + 396 3.96 -0.00130566187858167 -0.00194488962132692 + 397 3.97 -0.00128637875811934 -0.00191184017617574 + 398 3.98 -0.00126742298288858 -0.00187941839147665 + 399 3.99 -0.00124878834131509 -0.0018476113085668 + 400 4 -0.00123046875 -0.00181640625 + +MORSE +N 400 FP 35629.9118333254 -0.587282451914145 + + 1 0.01 1902.72240342255 8475.28184280469 + 2 0.02 1819.72699525883 8126.18409723003 + 3 0.03 1740.15198891874 7791.10688069349 + 4 0.04 1663.85997942269 7469.49386217661 + 5 0.05 1590.71901464609 7160.81065496952 + 6 0.06 1520.60238022017 6864.54395364299 + 7 0.07 1453.38839289256 6580.20070491139 + 8 0.08 1388.96020201532 6307.30731105669 + 9 0.09 1327.20559884127 6045.40886463566 + 10 0.1 1268.016833322 5794.06841324272 + 11 0.11 1211.29043811285 5552.86625314907 + 12 0.12 1156.92705950192 5321.39925068477 + 13 0.13 1104.83129499106 5099.28019027514 + 14 0.14 1054.9115372676 4886.1371480854 + 15 0.15 1007.0798243158 4681.6128902686 + 16 0.16 961.251695426879 4485.36429485122 + 17 0.17 917.346052875832 4297.06179632881 + 18 0.18 875.285029042485 4116.38885208026 + 19 0.19 834.993858762904 3943.04142974457 + 20 0.2 796.400756705659 3776.72751473709 + 21 0.21 759.436799575541 3617.16663711504 + 22 0.22 724.035812955044 3464.08941703271 + 23 0.23 690.134262601413 3317.23712805663 + 24 0.24 657.671150024154 3176.36127763988 + 25 0.25 626.587912174846 3041.22320408172 + 26 0.26 596.828325087614 2911.59368932575 + 27 0.27 568.33841131505 2787.25258697453 + 28 0.28 541.066351010385 2667.98846492367 + 29 0.29 514.962396512638 2553.59826204124 + 30 0.3 489.978790297042 2443.8869583412 + 31 0.31 466.069686158486 2338.66725812124 + 32 0.32 443.191073500887 2237.75928555576 + 33 0.33 421.300704610396 2140.99029225534 + 34 0.34 400.358024795147 2048.19437632267 + 35 0.35 380.324105278852 1959.21221245358 + 36 0.36 361.161578739974 1873.89079264966 + 37 0.37 342.834577392459 1792.08317712559 + 38 0.38 325.308673508092 1713.64825501114 + 39 0.39 308.550822284476 1638.45051446301 + 40 0.4 292.529306966382 1566.35982181714 + 41 0.41 277.213686131865 1497.25120942645 + 42 0.42 262.574743057994 1431.004671843 + 43 0.43 248.584437084416 1367.50497001672 + 44 0.44 235.215856896169 1306.64144319605 + 45 0.45 222.443175650231 1248.30782822797 + 46 0.46 210.241607873305 1192.40208596672 + 47 0.47 198.587368061129 1138.82623451213 + 48 0.48 187.457630912382 1087.48618900925 + 49 0.49 176.830493132862 1038.29160775156 + 50 0.5 166.684936748154 991.15574434019 + 51 0.51 157.000793865418 945.995305661252 + 52 0.52 147.758712827269 902.730315452694 + 53 0.53 138.940125702962 861.283983241156 + 54 0.54 130.527217064238 821.58257843782 + 55 0.55 122.502893995264 783.555309390595 + 56 0.56 114.85075728809 747.134207197903 + 57 0.57 107.555073776936 712.254014096973 + 58 0.58 100.600749766475 678.852076246914 + 59 0.59 93.9733055110433 646.86824073388 + 60 0.6 87.6588507033701 616.244756632404 + 61 0.61 81.6440609330888 586.926179963529 + 62 0.62 75.9161550768193 558.859282396572 + 63 0.63 70.4628735831318 531.99296354742 + 64 0.64 65.2724576171355 506.278166731982 + 65 0.65 60.3336290308251 481.667798039015 + 66 0.66 55.6355711266481 458.116648591834 + 67 0.67 51.1679101830355 435.581319873578 + 68 0.68 46.9206977118646 414.020151995583 + 69 0.69 42.884393419008 393.393154793176 + 70 0.7 39.0498488402512 373.661941637728 + 71 0.71 35.4082916259559 354.789665858177 + 72 0.72 31.9513104488903 336.740959669411 + 73 0.73 28.6708405106521 319.48187550895 + 74 0.74 25.5591496230812 302.979829687229 + 75 0.75 22.6088248419809 287.20354826048 + 76 0.76 19.8127596313634 272.12301503883 + 77 0.77 17.1641415372893 257.709421645621 + 78 0.78 14.6564403511958 243.935119547271 + 79 0.79 12.2833967433974 230.773573976182 + 80 0.8 10.0390113482036 218.199319672212 + 81 0.81 7.91753428282901 206.187918371172 + 82 0.82 5.91345508297041 194.715917971627 + 83 0.83 4.02149303860052 183.760813313951 + 84 0.84 2.23658791417552 173.301008508213 + 85 0.85 0.553891038074434 163.315780749936 + 86 0.86 -1.03124325331362 153.785245565181 + 87 0.87 -2.52326583086401 144.690323428706 + 88 0.88 -3.92644066081243 136.012707701146 + 89 0.89 -5.24485237860018 127.734833833307 + 90 0.9 -6.48241356088942 119.839849787683 + 91 0.91 -7.64287170767925 112.311587629289 + 92 0.92 -8.72981594598401 105.134536239752 + 93 0.93 -9.74668346608387 98.2938151104532 + 94 0.94 -10.6967657009243 91.7751491722138 + 95 0.95 -11.5832142588242 85.5648446207133 + 96 0.96 -12.4090466192534 79.6497656984179 + 97 0.97 -13.1771516010533 74.0173123953453 + 98 0.98 -13.8902946121092 68.6553990324699 + 99 0.99 -14.5511226891235 63.5524336929966 + 100 1 -15.1621693358015 58.6972984680958 + 101 1.01 -15.7258591674326 54.0793304850075 + 102 1.02 -16.2445123695359 49.6883036866838 + 103 1.03 -16.7203489779348 45.5144113333483 + 104 1.04 -17.1554929873393 41.5482491975195 + 105 1.05 -17.5519762952299 37.7807994251605 + 106 1.06 -17.9117424875755 34.2034150366931 + 107 1.07 -18.2366504726531 30.8078050426491 + 108 1.08 -18.5284779689983 27.5860201497191 + 109 1.09 -18.7889248532685 24.5304390339164 + 110 1.1 -19.0196163735814 21.633755158488 + 111 1.11 -19.2221062336656 18.8889641150824 + 112 1.12 -19.3978795529533 16.2893514675317 + 113 1.13 -19.5483557075404 13.8284810784167 + 114 1.14 -19.6748910567469 11.5001838993623 + 115 1.15 -19.7787815598225 9.29854720676174 + 116 1.16 -19.8612652871621 7.2179042653481 + 117 1.17 -19.9235248302269 5.25282440272129 + 118 1.18 -19.9666896141964 3.39810347860562 + 119 1.19 -19.9918381172225 1.64875473325059 + 120 1.2 -20 -0 + 121 1.21 -19.9921581492237 -1.55273873235457 + 122 1.22 -19.9692506383602 -3.013847421255 + 123 1.23 -19.9321726090268 -4.3875277493673 + 124 1.24 -19.8817780761412 -5.67780459363396 + 125 1.25 -19.8188816598787 -6.88853319663822 + 126 1.26 -19.7442602473552 -8.02340605204834 + 127 1.27 -19.6586545868377 -9.08595951544643 + 128 1.28 -19.5627708171746 -10.0795801514016 + 129 1.29 -19.4572819350303 -11.0075108272193 + 130 1.3 -19.3428292024065 -11.8728565633874 + 131 1.31 -19.2200234968363 -12.678590150347 + 132 1.32 -19.0894466065393 -13.427557540833 + 133 1.33 -18.9516524727388 -14.1224830266698 + 134 1.34 -18.8071683812527 -14.7659742085529 + 135 1.35 -18.6564961053882 -15.3605267670153 + 136 1.36 -18.5001130020867 -15.9085290424514 + 137 1.37 -18.3384730631926 -16.4122664317616 + 138 1.38 -18.1720079236418 -16.8739256088848 + 139 1.39 -18.001127828296 -17.2955985761957 + 140 1.4 -17.8262225590811 -17.6792865534734 + 141 1.41 -17.6476623240207 -18.0269037108782 + 142 1.42 -17.465798609694 -18.3402807521248 + 143 1.43 -17.2809649985868 -18.6211683537929 + 144 1.44 -17.0934779527434 -18.8712404664823 + 145 1.45 -16.9036375650765 -19.0920974832953 + 146 1.46 -16.7117282796322 -19.2852692809131 + 147 1.47 -16.5180195820608 -19.452218138324 + 148 1.48 -16.3227666614918 -19.594341538062 + 149 1.49 -16.126211044964 -19.7129748546237 + 150 1.5 -15.928581205517 -19.8093939345459 + 151 1.51 -15.730093145006 -19.8848175724499 + 152 1.52 -15.5309509526581 -19.9404098871884 + 153 1.53 -15.331347340351 -19.9772826020679 + 154 1.54 -15.1314641555525 -19.9964972329627 + 155 1.55 -14.9314728728242 -19.9990671879842 + 156 1.56 -14.7315350647564 -19.985959782228 + 157 1.57 -14.5318028531651 -19.9580981709777 + 158 1.58 -14.3324193413521 -19.9163632046156 + 159 1.59 -14.1335190281936 -19.8615952083567 + 160 1.6 -13.9352282047958 -19.7945956898053 + 161 1.61 -13.7376653344221 -19.7161289772086 + 162 1.62 -13.540941416375 -19.6269237911736 + 163 1.63 -13.3451603344801 -19.5276747525004 + 164 1.64 -13.1504191908022 -19.4190438286825 + 165 1.65 -12.9568086251922 -19.301661721521 + 166 1.66 -12.7644131212421 -19.1761291982075 + 167 1.67 -12.5733112992032 -19.043018368131 + 168 1.68 -12.3835761963975 -18.902873907581 + 169 1.69 -12.1952755356351 -18.7562142344284 + 170 1.7 -12.0084719821254 -18.6035326347864 + 171 1.71 -11.8232233893546 -18.4452983435722 + 172 1.72 -11.6395830343796 -18.2819575808158 + 173 1.73 -11.4575998429732 -18.1139345454881 + 174 1.74 -11.2773186050363 -17.9416323685501 + 175 1.75 -11.0987801806765 -17.7654340268597 + 176 1.76 -10.9220216973365 -17.5857032195029 + 177 1.77 -10.7470767383414 -17.4027852080613 + 178 1.78 -10.573975523217 -17.2170076222595 + 179 1.79 -10.4027450801192 -17.0286812323863 + 180 1.8 -10.2334094106998 -16.8381006898232 + 181 1.81 -10.0659896477209 -16.6455452369626 + 182 1.82 -9.9005042057181 -16.4512793877484 + 183 1.83 -9.73696892500016 -16.255553580019 + 184 1.84 -9.57539720926177 -16.0586048007915 + 185 1.85 -9.41580015707382 -15.8606571855743 + 186 1.86 -9.25818668750629 -15.6619225927571 + 187 1.87 -9.10256366012748 -15.4626011540838 + 188 1.88 -8.94893598961417 -15.2628818021722 + 189 1.89 -8.79730675519744 -15.0629427760093 + 190 1.9 -8.6476773051599 -14.8629521053111 + 191 1.91 -8.50004735659144 -14.6630680746028 + 192 1.92 -8.35441509060219 -14.463439667839 + 193 1.93 -8.21077724318323 -14.2642069943522 + 194 1.94 -8.06912919189799 -14.065501696887 + 195 1.95 -7.92946503857991 -13.8674473424453 + 196 1.96 -7.79177768820462 -13.6701597966413 + 197 1.97 -7.65605892409823 -13.4737475822347 + 198 1.98 -7.52229947963673 -13.2783122224857 + 199 1.99 -7.39048910658511 -13.0839485699498 + 200 2 -7.26061664021889 -12.8907451213031 + 201 2.01 -7.13267006136484 -12.6987843187702 + 202 2.02 -7.00663655549215 -12.5081428386973 + 203 2.03 -6.88250256897989 -12.3188918677979 + 204 2.04 -6.76025386268163 -12.1310973675737 + 205 2.05 -6.63987556290287 -11.9448203273927 + 206 2.06 -6.52135220990252 -11.7601170066906 + 207 2.07 -6.40466780402486 -11.5770391667397 + 208 2.08 -6.28980584956419 -11.3956342924127 + 209 2.09 -6.17674939646013 -11.2159458043529 + 210 2.1 -6.06548107991761 -11.0380132619435 + 211 2.11 -5.95598315804147 -10.8618725574554 + 212 2.12 -5.84823754757229 -10.6875561017355 + 213 2.13 -5.74222585780607 -10.5150930017845 + 214 2.14 -5.63792942277742 -10.344509230559 + 215 2.15 -5.53532933178209 -10.1758277893176 + 216 2.16 -5.43440645831221 -10.0090688628208 + 217 2.17 -5.33514148747387 -9.84424996767923 + 218 2.18 -5.2375149419544 -9.68138609413398 + 219 2.19 -5.14150720660348 -9.52048984154249 + 220 2.2 -5.04709855168983 -9.36157154783029 + 221 2.21 -4.9542691548924 -9.20463941315987 + 222 2.22 -4.86299912208293 -9.04969961805766 + 223 2.23 -4.77326850695383 -8.89675643622967 + 224 2.24 -4.68505732954364 -8.74581234228797 + 225 2.25 -4.59834559370972 -8.59686811460034 + 226 2.26 -4.51311330359602 -8.44992293346755 + 227 2.27 -4.42934047914158 -8.30497447482397 + 228 2.28 -4.34700717067363 -8.1620189996495 + 229 2.29 -4.26609347262728 -8.02105143927313 + 230 2.3 -4.18657953643199 -7.88206547674124 + 231 2.31 -4.10844558260329 -7.74505362441651 + 232 2.32 -4.03167191207677 -7.61000729796684 + 233 2.33 -3.95623891681951 -7.47691688689685 + 234 2.34 -3.88212708975296 -7.34577182176885 + 235 2.35 -3.80931703401948 -7.21656063825362 + 236 2.36 -3.7377894716237 -7.0892710381459 + 237 2.37 -3.66752525147843 -6.96388994747427 + 238 2.38 -3.5985053568833 -6.84040357182902 + 239 2.39 -3.53071091246377 -6.71879744902762 + 240 2.4 -3.4641231905961 -6.5990564992314 + 241 2.41 -3.39872361734359 -6.48116507262343 + 242 2.42 -3.3344937779277 -6.3651069947523 + 243 2.43 -3.27141542175708 -6.25086560964261 + 244 2.44 -3.20947046703613 -6.13842382076884 + 245 2.45 -3.14864100497424 -6.02776412998507 + 246 2.46 -3.08890930361551 -5.91886867449944 + 247 2.47 -3.03025781130815 -5.81171926197859 + 248 2.48 -2.97266915983187 -5.7062974038635 + 249 2.49 -2.91612616720074 -5.6025843469753 + 250 2.5 -2.86061184015814 -5.50056110348585 + 251 2.51 -2.80610937638002 -5.40020847932522 + 252 2.52 -2.75260216640146 -5.30150710109495 + 253 2.53 -2.70007379528143 -5.20443744155327 + 254 2.54 -2.64850804401945 -5.10897984373557 + 255 2.55 -2.59788889073774 -5.01511454377097 + 256 2.56 -2.54820051164134 -4.92282169245312 + 257 2.57 -2.49942728176866 -4.83208137562115 + 258 2.58 -2.45155377554382 -4.74287363340403 + 259 2.59 -2.40456476714212 -4.65517847837982 + 260 2.6 -2.35844523067906 -4.5689759126988 + 261 2.61 -2.31318034023315 -4.48424594421744 + 262 2.62 -2.26875546971212 -4.40096860168843 + 263 2.63 -2.22515619257182 -4.3191239490499 + 264 2.64 -2.18236828139646 -4.23869209885514 + 265 2.65 -2.14037770734877 -4.15965322488251 + 266 2.66 -2.09917063949799 -4.08198757396348 + 267 2.67 -2.05873344403328 -4.00567547706508 + 268 2.68 -2.01905268336996 -3.93069735966176 + 269 2.69 -1.9801151151554 -3.85703375142971 + 270 2.7 -1.94190769118123 -3.78466529529581 + 271 2.71 -1.90441755620818 -3.71357275587169 + 272 2.72 -1.86763204670949 -3.6437370273021 + 273 2.73 -1.83153868953869 -3.57513914055568 + 274 2.74 -1.79612520052711 -3.50776027018492 + 275 2.75 -1.7613794830164 -3.44158174058097 + 276 2.76 -1.72728962633081 -3.37658503174782 + 277 2.77 -1.69384390419419 -3.31275178461948 + 278 2.78 -1.66103077309585 -3.25006380594246 + 279 2.79 -1.62883887060978 -3.18850307274528 + 280 2.8 -1.59725701367117 -3.12805173641538 + 281 2.81 -1.56627419681391 -3.06869212640333 + 282 2.82 -1.53587959037299 -3.01040675357301 + 283 2.83 -1.506062538655 -2.95317831321585 + 284 2.84 -1.47681255808011 -2.89698968774635 + 285 2.85 -1.44811933529864 -2.84182394909537 + 286 2.86 -1.41997272528513 -2.7876643608168 + 287 2.87 -1.3923627494127 -2.7344943799229 + 288 2.88 -1.36527959351038 -2.68229765846244 + 289 2.89 -1.33871360590588 -2.63105804485558 + 290 2.9 -1.31265529545615 -2.5807595849985 + 291 2.91 -1.287095329568 -2.53138652315042 + 292 2.92 -1.26202453221094 -2.48292330261488 + 293 2.93 -1.23743388192408 -2.43535456622692 + 294 2.94 -1.21331450981923 -2.38866515665682 + 295 2.95 -1.18965769758165 -2.34284011654112 + 296 2.96 -1.16645487547052 -2.2978646884507 + 297 2.97 -1.14369762032031 -2.25372431470548 + 298 2.98 -1.1213776535449 -2.21040463704483 + 299 2.99 -1.09948683914553 -2.16789149616236 + 300 3 -1.07801718172417 -2.12617093111327 + 301 3.01 -1.05696082450334 -2.08522917860231 + 302 3.02 -1.03631004735366 -2.04505267215961 + 303 3.03 -1.01605726483015 -2.00562804121181 + 304 3.04 -0.996195024218316 -1.9669421100551 + 305 3.05 -0.976716003590983 -1.92898189673679 + 306 3.06 -0.957613009876723 -1.89173461185161 + 307 3.07 -0.938878976940747 -1.85518765725859 + 308 3.08 -0.920506963678969 -1.81932862472411 + 309 3.09 -0.902490152126019 -1.78414529449664 + 310 3.1 -0.884821845577815 -1.749625633818 + 311 3.11 -0.867495466729296 -1.71575779537626 + 312 3.12 -0.850504555827964 -1.68253011570466 + 313 3.13 -0.833842768843598 -1.64993111353108 + 314 3.14 -0.81750387565479 -1.61794948808215 + 315 3.15 -0.801481758252578 -1.58657411734597 + 316 3.16 -0.785770408961712 -1.55579405629722 + 317 3.17 -0.770363928679763 -1.52559853508822 + 318 3.18 -0.755256525134567 -1.49597695720933 + 319 3.19 -0.740442511160115 -1.46691889762184 + 320 3.2 -0.725916302991318 -1.43841410086653 + 321 3.21 -0.711672418577733 -1.41045247915071 + 322 3.22 -0.697705475916561 -1.38302411041638 + 323 3.23 -0.68401019140502 -1.35611923639237 + 324 3.24 -0.670581378212263 -1.32972826063263 + 325 3.25 -0.657413944671006 -1.30384174654313 + 326 3.26 -0.644502892688901 -1.27845041539961 + 327 3.27 -0.631843316179772 -1.25354514435816 + 328 3.28 -0.6194303995148 -1.22911696446058 + 329 3.29 -0.60725941599364 -1.20515705863651 + 330 3.3 -0.595325726335532 -1.18165675970391 + 331 3.31 -0.583624777190441 -1.15860754836962 + 332 3.32 -0.57215209967014 -1.13600105123157 + 333 3.33 -0.560903307899276 -1.11382903878399 + 334 3.34 -0.549874097586374 -1.09208342342712 + 335 3.35 -0.539060244614689 -1.07075625748267 + 336 3.36 -0.528457603652897 -1.0498397312161 + 337 3.37 -0.518062106785528 -1.0293261708671 + 338 3.38 -0.507869762162994 -1.00920803668912 + 339 3.39 -0.497876652671245 -0.98947792099903 + 340 3.4 -0.488078934620828 -0.970128546237837 + 341 3.41 -0.478472836455297 -0.951152763043287 + 342 3.42 -0.469054657478829 -0.932543548335185 + 343 3.43 -0.459820766602912 -0.914294003414172 + 344 3.44 -0.450767601112008 -0.89639735207464 + 345 3.45 -0.441891665447958 -0.87884693873245 + 346 3.46 -0.433189530013092 -0.861636226568009 + 347 3.47 -0.424657829991779 -0.844758795685292 + 348 3.48 -0.416293264190357 -0.828208341287285 + 349 3.49 -0.40809259389516 -0.811978671868322 + 350 3.5 -0.400052641748598 -0.796063707423719 + 351 3.51 -0.392170290643024 -0.780457477677113 + 352 3.52 -0.384442482632212 -0.765154120325826 + 353 3.53 -0.376866217860354 -0.750147879304586 + 354 3.54 -0.369438553508263 -0.735433103067872 + 355 3.55 -0.362156602756698 -0.721004242891135 + 356 3.56 -0.355017533766573 -0.706855851191119 + 357 3.57 -0.348018568675832 -0.692982579865472 + 358 3.58 -0.341156982612913 -0.679379178651804 + 359 3.59 -0.334430102726415 -0.666040493506349 + 360 3.6 -0.327835307230984 -0.652961465002335 + 361 3.61 -0.321370024469032 -0.640137126748166 + 362 3.62 -0.31503173198824 -0.62756260382549 + 363 3.63 -0.308817955634535 -0.615233111247194 + 364 3.64 -0.3027262686604 -0.603143952435389 + 365 3.65 -0.296754290848331 -0.591290517719373 + 366 3.66 -0.290899687649171 -0.579668282853603 + 367 3.67 -0.285160169335201 -0.568272807555637 + 368 3.68 -0.279533490167716 -0.55709973406403 + 369 3.69 -0.274017447578963 -0.54614478571615 + 370 3.7 -0.268609881368169 -0.535403765545839 + 371 3.71 -0.263308672911511 -0.524872554900861 + 372 3.72 -0.258111744385805 -0.514547112080069 + 373 3.73 -0.253017058005729 -0.504423470990179 + 374 3.74 -0.248022615274373 -0.494497739822078 + 375 3.75 -0.243126456246943 -0.484766099746521 + 376 3.76 -0.238326658807406 -0.475224803629145 + 377 3.77 -0.233621337957872 -0.465870174764632 + 378 3.78 -0.229008645120563 -0.456698605629917 + 379 3.79 -0.224486767452152 -0.447706556656279 + 380 3.8 -0.220053927170263 -0.43889055502019 + 381 3.81 -0.215708380892004 -0.430247193452744 + 382 3.82 -0.211448418984292 -0.421773129067537 + 383 3.83 -0.207272364925806 -0.413465082206802 + 384 3.84 -0.203178574680398 -0.405319835305661 + 385 3.85 -0.199165436081776 -0.397334231774297 + 386 3.86 -0.195231368229261 -0.38950517489789 + 387 3.87 -0.191374820894459 -0.381829626754123 + 388 3.88 -0.187594273938687 -0.374304607148077 + 389 3.89 -0.183888236740939 -0.366927192564339 + 390 3.9 -0.180255247636283 -0.359694515136119 + 391 3.91 -0.176693873364433 -0.352603761631208 + 392 3.92 -0.173202708528413 -0.34565217245455 + 393 3.93 -0.16978037506312 -0.33883704066727 + 394 3.94 -0.166425521713567 -0.332155711021943 + 395 3.95 -0.163136823522756 -0.325605579013906 + 396 3.96 -0.159912981328916 -0.319184089948422 + 397 3.97 -0.156752721271987 -0.312888738023495 + 398 3.98 -0.153654794309244 -0.306717065428139 + 399 3.99 -0.150617975739817 -0.30066666145589 + 400 4 -0.147641064738004 -0.29473516163338 diff --git a/lib/gpu/Makefile.cuda b/lib/gpu/Makefile.cuda index e02501d080..be8003e02e 100644 --- a/lib/gpu/Makefile.cuda +++ b/lib/gpu/Makefile.cuda @@ -54,7 +54,7 @@ BIN2C = $(CUDA_HOME)/bin/bin2c CUDR_CPP = mpicxx -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC CUDR_OPTS = -O2 $(LMP_INC) -CUDR = $(CUDR_CPP) $(CUDR_OPTS) $(CUDA_PROXY) $(CUDA_PRECISION) $(CUDA_INCLUDE) \ +CUDR = $(CUDR_CPP) $(CUDR_OPTS) $(CUDA_MPS) $(CUDA_PRECISION) $(CUDA_INCLUDE) \ $(CUDPP_OPT) # Headers for Geryon diff --git a/lib/gpu/Makefile.cuda_mps b/lib/gpu/Makefile.cuda_mps index d7820e4c34..06d2ef0339 100644 --- a/lib/gpu/Makefile.cuda_mps +++ b/lib/gpu/Makefile.cuda_mps @@ -30,7 +30,7 @@ AR = ar BSH = /bin/sh CUDPP_OPT = -CUDA_MPS = -DCUDA_PROXY +CUDA_MPS = -DCUDA_MPS_SUPPORT # device code compiler and settings @@ -53,7 +53,7 @@ BIN2C = $(CUDA_HOME)/bin/bin2c CUDR_CPP = mpicxx -fopenmp -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC CUDR_OPTS = -O2 $(LMP_INC) -CUDR = $(CUDR_CPP) $(CUDR_OPTS) $(CUDA_PROXY) $(CUDA_PRECISION) $(CUDA_INCLUDE) \ +CUDR = $(CUDR_CPP) $(CUDR_OPTS) $(CUDA_MPS) $(CUDA_PRECISION) $(CUDA_INCLUDE) \ $(CUDPP_OPT) # Headers for Geryon diff --git a/lib/gpu/Makefile.oneapi b/lib/gpu/Makefile.oneapi index d0ed78d0c4..9d11a0c4b0 100644 --- a/lib/gpu/Makefile.oneapi +++ b/lib/gpu/Makefile.oneapi @@ -18,7 +18,7 @@ OCL_CPP = mpiicpc -std=c++11 -diag-disable=10441 -DMPICH_IGNORE_CXX_SEEK \ $(LMP_INC) $(OCL_INC) $(CPP_OPT) OCL_LINK = -L$(ONEAPI_ROOT)/compiler/latest/linux/lib -lOpenCL OCL_PREC = -D_SINGLE_DOUBLE -OCL_TUNE = -DMPI_GERYON -DCUDA_PROXY -DGERYON_NUMA_FISSION -DUCL_NO_EXIT +OCL_TUNE = -DMPI_GERYON -DGERYON_NUMA_FISSION -DUCL_NO_EXIT BIN_DIR = ./ OBJ_DIR = ./ diff --git a/lib/gpu/README b/lib/gpu/README index ab7032b64d..51b21960ae 100644 --- a/lib/gpu/README +++ b/lib/gpu/README @@ -205,8 +205,7 @@ $(CUDA_HOME)/lib64/stubs), that can be used for linking. Best performance with the GPU library is typically with multiple MPI processes sharing the same GPU cards. For NVIDIA, this is most efficient with CUDA MPS enabled. To prevent runtime errors for GPUs configured in exclusive process -mode with MPS, the GPU library should be build with either of the equivalent --DCUDA_MPS_SUPPORT or -DCUDA_PROXY flags. +mode with MPS, the GPU library should be build with the -DCUDA_MPS_SUPPORT flag. ------------------------------------------------------------------------------ HIP BUILD NOTES @@ -244,7 +243,6 @@ _SINGLE_SINGLE Build library for single precision mode _SINGLE_DOUBLE Build library for mixed precision mode _DOUBLE_DOUBLE Build library for double precision mode CUDA_MPS_SUPPORT Do not generate errors for exclusive mode for CUDA -CUDA_PROXY Same as above MPI_GERYON Library should use MPI_Abort for unhandled errors GERYON_NUMA_FISSION Accelerators with main memory NUMA are split into multiple virtual accelerators for each NUMA node diff --git a/lib/gpu/lal_device.cpp b/lib/gpu/lal_device.cpp index dd3ce15827..891d67913e 100644 --- a/lib/gpu/lal_device.cpp +++ b/lib/gpu/lal_device.cpp @@ -277,7 +277,7 @@ int DeviceT::init_device(MPI_Comm /*world*/, MPI_Comm replica, const int ngpu, MPI_Comm_split(node_comm,my_gpu,0,&_comm_gpu); MPI_Comm_rank(_comm_gpu,&_gpu_rank); - #if !defined(CUDA_PROXY) && !defined(CUDA_MPS_SUPPORT) + #if !defined(CUDA_MPS_SUPPORT) if (_procs_per_gpu>1 && !gpu->sharing_supported(my_gpu)) return -7; #endif diff --git a/src/.gitignore b/src/.gitignore index 0d73a7911d..df02ab3397 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -62,6 +62,8 @@ /angle_lepton.h /dihedral_lepton.cpp /dihedral_lepton.h +/fix_wall_lepton.cpp +/fix_wall_lepton.h /lepton_utils.cpp /lepton_utils.h diff --git a/src/COLLOID/fix_wall_colloid.cpp b/src/COLLOID/fix_wall_colloid.cpp index d21856bc60..3160fadb53 100644 --- a/src/COLLOID/fix_wall_colloid.cpp +++ b/src/COLLOID/fix_wall_colloid.cpp @@ -24,7 +24,6 @@ #include using namespace LAMMPS_NS; -using namespace FixConst; /* ---------------------------------------------------------------------- */ diff --git a/src/EXTRA-FIX/fix_wall_ees.cpp b/src/EXTRA-FIX/fix_wall_ees.cpp index bbddd919af..d9bc2a8450 100644 --- a/src/EXTRA-FIX/fix_wall_ees.cpp +++ b/src/EXTRA-FIX/fix_wall_ees.cpp @@ -26,7 +26,6 @@ #include using namespace LAMMPS_NS; -using namespace FixConst; /* ---------------------------------------------------------------------- */ diff --git a/src/EXTRA-FIX/fix_wall_reflect_stochastic.cpp b/src/EXTRA-FIX/fix_wall_reflect_stochastic.cpp index 7899c88473..c0b44530e8 100644 --- a/src/EXTRA-FIX/fix_wall_reflect_stochastic.cpp +++ b/src/EXTRA-FIX/fix_wall_reflect_stochastic.cpp @@ -31,7 +31,6 @@ #include using namespace LAMMPS_NS; -using namespace FixConst; enum{NONE,DIFFUSIVE,MAXWELL,CCL}; diff --git a/src/GRANULAR/fix_wall_gran_region.cpp b/src/GRANULAR/fix_wall_gran_region.cpp index f1bd55a7bc..68afce2b0b 100644 --- a/src/GRANULAR/fix_wall_gran_region.cpp +++ b/src/GRANULAR/fix_wall_gran_region.cpp @@ -29,7 +29,6 @@ #include using namespace LAMMPS_NS; -using namespace FixConst; /* ---------------------------------------------------------------------- */ diff --git a/src/KOKKOS/fix_wall_lj93_kokkos.cpp b/src/KOKKOS/fix_wall_lj93_kokkos.cpp index 03bf6cf8ea..dff47f1c30 100644 --- a/src/KOKKOS/fix_wall_lj93_kokkos.cpp +++ b/src/KOKKOS/fix_wall_lj93_kokkos.cpp @@ -19,7 +19,6 @@ #include "atom_masks.h" using namespace LAMMPS_NS; -using namespace FixConst; /* ---------------------------------------------------------------------- */ diff --git a/src/KOKKOS/fix_wall_reflect_kokkos.cpp b/src/KOKKOS/fix_wall_reflect_kokkos.cpp index 32b9ee61b1..a8a01c1926 100644 --- a/src/KOKKOS/fix_wall_reflect_kokkos.cpp +++ b/src/KOKKOS/fix_wall_reflect_kokkos.cpp @@ -24,7 +24,6 @@ #include using namespace LAMMPS_NS; -using namespace FixConst; enum{XLO=0,XHI=1,YLO=2,YHI=3,ZLO=4,ZHI=5}; enum{NONE=0,EDGE,CONSTANT,VARIABLE}; diff --git a/src/KOKKOS/mliap_unified_couple_kokkos.pyx b/src/KOKKOS/mliap_unified_couple_kokkos.pyx index 37326263d3..5e274d7f36 100644 --- a/src/KOKKOS/mliap_unified_couple_kokkos.pyx +++ b/src/KOKKOS/mliap_unified_couple_kokkos.pyx @@ -115,7 +115,6 @@ cdef create_array(device, void *pointer, shape,is_int): size=1 for i in shape: size = size*i - if ( device == 1): mem = cupy.cuda.UnownedMemory(ptr=int( pointer), owner=None, size=size) memptr = cupy.cuda.MemoryPointer(mem, 0) @@ -146,10 +145,18 @@ cdef class MLIAPDataPy: self.data = NULL def update_pair_energy_cpu(self, eij): - cdef double[:] eij_arr = eij + cdef double[:] eij_arr + try: + eij_arr = eij + except: + eij_arr = eij.detach().numpy().astype(np.double) update_pair_energy(self.data, &eij_arr[0]) def update_pair_energy_gpu(self, eij): - cdef uintptr_t ptr = eij.data.ptr + cdef uintptr_t ptr; + try: + ptr = eij.data.ptr + except: + ptr = eij.data_ptr() update_pair_energy(self.data, ptr) def update_pair_energy(self, eij): if self.data.dev==0: @@ -158,10 +165,18 @@ cdef class MLIAPDataPy: self.update_pair_energy_gpu(eij) def update_pair_forces_cpu(self, fij): - cdef double[:, ::1] fij_arr = fij + cdef double[:, ::1] fij_arr + try: + fij_arr = fij + except: + fij_arr = fij.detach().numpy().astype(np.double) update_pair_forces(self.data, &fij_arr[0][0]) def update_pair_forces_gpu(self, fij): - cdef uintptr_t ptr = fij.data.ptr + cdef uintptr_t ptr + try: + ptr = fij.data.ptr + except: + ptr = fij.data_ptr() update_pair_forces(self.data, ptr) def update_pair_forces(self, fij): if self.data.dev==0: @@ -172,7 +187,8 @@ cdef class MLIAPDataPy: def f(self): if self.data.f is NULL: return None - return cupy.asarray( self.data.f) + return create_array(self.data.dev, self.data.f, [self.ntotal, 3],False) + @property def size_gradforce(self): @@ -205,14 +221,11 @@ cdef class MLIAPDataPy: descriptors_view[:] = value_view print("This code has not been tested or optimized for the GPU, if you are getting this warning optimize descriptors") - @write_only_property - def eatoms(self, value): + @property + def eatoms(self): if self.data.eatoms is NULL: raise ValueError("attempt to set NULL eatoms") - cdef double[:] eatoms_view = &self.data.eatoms[0] - cdef double[:] value_view = value - eatoms_view[:] = value_view - print("This code has not been tested or optimized for the GPU, if you are getting this warning optimize eatoms") + return create_array(self.data.dev, self.data.eatoms, [self.nlistatoms],False) @write_only_property @@ -351,7 +364,7 @@ cdef class MLIAPDataPy: # Interface between C and Python compute functions -cdef class MLIAPUnifiedInterface: +cdef class MLIAPUnifiedInterfaceKokkos: cdef MLIAPDummyModel * model cdef MLIAPDummyDescriptor * descriptor cdef unified_impl @@ -404,7 +417,7 @@ cdef public object mliap_unified_connect_kokkos(char *fname, MLIAPDummyModel * m with open(str_fname, 'rb') as pfile: unified = pickle.load(pfile) - unified_int = MLIAPUnifiedInterface(unified) + unified_int = MLIAPUnifiedInterfaceKokkos(unified) unified_int.model = model unified_int.descriptor = descriptor diff --git a/src/KOKKOS/mliap_unified_kokkos.cpp b/src/KOKKOS/mliap_unified_kokkos.cpp index bfb9193df6..1fdf039473 100644 --- a/src/KOKKOS/mliap_unified_kokkos.cpp +++ b/src/KOKKOS/mliap_unified_kokkos.cpp @@ -269,7 +269,6 @@ MLIAPBuildUnifiedKokkos_t LAMMPS_NS::build_unified(char *unified_fna void LAMMPS_NS::update_pair_energy(MLIAPDataKokkosDevice *data, double *eij) { - double e_total = 0.0; auto d_eatoms = data->eatoms; auto d_pair_i= data->pair_i; const auto nlistatoms = data->nlistatoms; @@ -301,8 +300,13 @@ void LAMMPS_NS::update_pair_forces(MLIAPDataKokkosDevice *data, double *fij) auto j_atoms = data->jatoms; auto vflag = data->vflag; auto rij = data->rij; - int vflag_either=data->pairmliap->vflag_either, vflag_global=data->pairmliap->vflag_global, vflag_atom=data->pairmliap->vflag_atom; + int vflag_global=data->pairmliap->vflag_global, vflag_atom=data->pairmliap->vflag_atom; + if (vflag_atom) { + data->pairmliap->k_vatom.template modify(); + data->pairmliap->k_vatom.template sync(); + } auto d_vatom = data->pairmliap->k_vatom.template view(); + Kokkos::View virial("virial"); Kokkos::parallel_for(data->npairs,KOKKOS_LAMBDA (int ii) { @@ -310,7 +314,6 @@ void LAMMPS_NS::update_pair_forces(MLIAPDataKokkosDevice *data, double *fij) int ii3 = ii * 3; int i = pair_i[ii]; int j = j_atoms[ii]; - // must not count any contribution where i is not a local atom if (i < nlistatoms) { Kokkos::atomic_add(&f[i*3+0], fij[ii3+0]); @@ -335,7 +338,7 @@ void LAMMPS_NS::update_pair_forces(MLIAPDataKokkosDevice *data, double *fij) Kokkos::atomic_add(&virial[4], v[4]); Kokkos::atomic_add(&virial[5], v[5]); } - if (vflag_atom) { + if (vflag_atom ) { Kokkos::atomic_add(&d_vatom(i,0), 0.5*v[0]); Kokkos::atomic_add(&d_vatom(i,1), 0.5*v[1]); Kokkos::atomic_add(&d_vatom(i,2), 0.5*v[2]); @@ -373,15 +376,11 @@ template class MLIAPDummyModelKokkos; template class MLIAPDummyDescriptorKokkos; template MLIAPBuildUnifiedKokkos_t LAMMPS_NS::build_unified(char *unified_fname, MLIAPDataKokkos *data, LAMMPS *lmp, char *coefffilename); -//template void LAMMPS_NS::update_pair_energy(MLIAPDataKokkos *data, double *eij); -//template void LAMMPS_NS::update_pair_forces(MLIAPDataKokkos *data, double *fij); #ifdef LMP_KOKKOS_GPU template class MLIAPDummyModelKokkos; template class MLIAPDummyDescriptorKokkos; template MLIAPBuildUnifiedKokkos_t LAMMPS_NS::build_unified(char *unified_fname, MLIAPDataKokkos *data, LAMMPS *lmp, char *coefffilename); -//template void LAMMPS_NS::update_pair_energy(MLIAPDataKokkos *data, double *eij); -//template void LAMMPS_NS::update_pair_forces(MLIAPDataKokkos *data, double *fij); #endif } #endif diff --git a/src/KOKKOS/pair_mliap_kokkos.cpp b/src/KOKKOS/pair_mliap_kokkos.cpp index 558901c6ff..d19d81e314 100644 --- a/src/KOKKOS/pair_mliap_kokkos.cpp +++ b/src/KOKKOS/pair_mliap_kokkos.cpp @@ -74,7 +74,6 @@ void PairMLIAPKokkos::compute(int eflag, int vflag) int is_kokkos_descriptor = (dynamic_cast*>(descriptor)) != nullptr; auto model_space = is_kokkos_model ? execution_space : Host; auto descriptor_space = is_kokkos_descriptor? execution_space : Host; - // consistency checks if (data->ndescriptors != model->ndescriptors) error->all(FLERR, "Incompatible model and descriptor descriptor count"); @@ -107,12 +106,14 @@ void PairMLIAPKokkos::compute(int eflag, int vflag) k_data->sync(model_space, IELEMS_MASK | DESCRIPTORS_MASK); model->compute_gradients(data); k_data->modified(model_space, BETAS_MASK); - if (eflag_atom) + if (eflag_atom) { k_data->modified(model_space, EATOMS_MASK); + } // calculate force contributions beta_i*dB_i/dR_j atomKK->sync(descriptor_space,F_MASK); k_data->sync(descriptor_space, NUMNEIGHS_MASK | IATOMS_MASK | IELEMS_MASK | ELEMS_MASK | BETAS_MASK | JATOMS_MASK | PAIR_I_MASK | JELEMS_MASK | RIJ_MASK ); + descriptor->compute_forces(data); e_tally(data); @@ -293,7 +294,7 @@ void PairMLIAPKokkos::e_tally(MLIAPData* data) if (eflag_global) eng_vdwl += data->energy; if (eflag_atom) { MLIAPDataKokkos *k_data = static_cast*>(data); - k_data->sync(execution_space, IATOMS_MASK | EATOMS_MASK); + k_data->sync(execution_space, IATOMS_MASK | EATOMS_MASK, true); auto d_iatoms = k_data->k_iatoms.template view(); auto d_eatoms = k_data->k_eatoms.template view(); auto d_eatom = k_eatom.template view(); diff --git a/src/LEPTON/fix_wall_lepton.cpp b/src/LEPTON/fix_wall_lepton.cpp new file mode 100644 index 0000000000..a81d3c4edb --- /dev/null +++ b/src/LEPTON/fix_wall_lepton.cpp @@ -0,0 +1,138 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + 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 "fix_wall_lepton.h" +#include "atom.h" +#include "error.h" + +#include "Lepton.h" +#include "lepton_utils.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +FixWallLepton::FixWallLepton(LAMMPS *lmp, int narg, char **arg) : FixWall(lmp, narg, arg) +{ + dynamic_group_allow = 1; +} + +/* ---------------------------------------------------------------------- */ + +void FixWallLepton::post_constructor() +{ + // check validity of lepton expression + + for (int m = 0; m < nwall; ++m) { + // remove whitespace and quotes from expression string and then + // check if the expression can be parsed and evaluated without error + std::string exp_one = LeptonUtils::condense(lstr[m]); + try { + auto parsed = Lepton::Parser::parse(LeptonUtils::substitute(exp_one, lmp)); + auto wallpot = parsed.createCompiledExpression(); + auto wallforce = parsed.differentiate("r").createCompiledExpression(); + wallpot.getVariableReference("r") = 0.0; + wallforce.getVariableReference("r") = 0.0; + wallpot.evaluate(); + wallforce.evaluate(); + } catch (std::exception &e) { + error->all(FLERR, e.what()); + } + } +} + +/* ---------------------------------------------------------------------- + compute the potential energy offset so it can be shifted to zero at the cutoff +------------------------------------------------------------------------- */ + +void FixWallLepton::precompute(int m) +{ + std::string exp_one = LeptonUtils::condense(lstr[m]); + auto parsed = Lepton::Parser::parse(LeptonUtils::substitute(exp_one, lmp)); + auto wallpot = parsed.createCompiledExpression(); + + try { + wallpot.getVariableReference("rc") = cutoff[m]; + } catch (std::exception &) { + ; // do nothing + } + + wallpot.getVariableReference("r") = cutoff[m]; + offset[m] = wallpot.evaluate(); +} + +/* ---------------------------------------------------------------------- + interaction of all particles in group with a wall + m = index of wall coeffs + which = xlo,xhi,ylo,yhi,zlo,zhi + error if any particle is on or behind wall +------------------------------------------------------------------------- */ + +void FixWallLepton::wall_particle(int m, int which, double coord) +{ + std::string exp_one = LeptonUtils::condense(lstr[m]); + auto parsed = Lepton::Parser::parse(LeptonUtils::substitute(exp_one, lmp)); + auto wallpot = parsed.createCompiledExpression(); + auto wallforce = parsed.differentiate("r").createCompiledExpression(); + + // set cutoff value, if used + try { + wallpot.getVariableReference("rc") = cutoff[m]; + wallforce.getVariableReference("rc") = cutoff[m]; + } catch (std::exception &) { + ; // do nothing + } + + double delta, fwall, vn; + + double **x = atom->x; + double **f = atom->f; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + int dim = which / 2; + int side = which % 2; + if (side == 0) side = -1; + + int onflag = 0; + + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (side < 0) + delta = x[i][dim] - coord; + else + delta = coord - x[i][dim]; + if (delta >= cutoff[m]) continue; + if (delta <= 0.0) { + onflag = 1; + continue; + } + wallpot.getVariableReference("r") = delta; + wallforce.getVariableReference("r") = delta; + + fwall = side * wallforce.evaluate(); + f[i][dim] += fwall; + ewall[0] += wallpot.evaluate() - offset[m]; + ewall[m + 1] += fwall; + + if (evflag) { + if (side < 0) + vn = -fwall * delta; + else + vn = fwall * delta; + v_tally(dim, i, vn); + } + } + } + if (onflag) error->one(FLERR, "Particle on or inside fix {} surface", style); +} diff --git a/src/LEPTON/fix_wall_lepton.h b/src/LEPTON/fix_wall_lepton.h new file mode 100644 index 0000000000..4c1df801c7 --- /dev/null +++ b/src/LEPTON/fix_wall_lepton.h @@ -0,0 +1,41 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + 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. +------------------------------------------------------------------------- */ + +#ifdef FIX_CLASS +// clang-format off +FixStyle(wall/lepton,FixWallLepton); +// clang-format on +#else + +#ifndef LMP_FIX_WALL_LEPTON_H +#define LMP_FIX_WALL_LEPTON_H + +#include "fix_wall.h" + +namespace LAMMPS_NS { + +class FixWallLepton : public FixWall { + public: + FixWallLepton(class LAMMPS *, int, char **); + void post_constructor() override; + void precompute(int) override; + void wall_particle(int, int, double) override; + + protected: + double offset[6]; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/PYTHON/python_impl.cpp b/src/PYTHON/python_impl.cpp index 9177381a35..57f8ea1cf0 100644 --- a/src/PYTHON/python_impl.cpp +++ b/src/PYTHON/python_impl.cpp @@ -35,6 +35,17 @@ // However, that exposes -too many- headers. #include "mliap_model_python_couple.h" #include "mliap_unified_couple.h" +#ifdef LMP_KOKKOS +#include "mliap_model_python_kokkos.h" +#include "mliap_unified_kokkos.h" +// The above should somehow really be included in the next file. +// We could get around this with cython --capi-reexport-cincludes +// However, that exposes -too many- headers. +#include "mliap_model_python_couple_kokkos.h" +#include "mliap_unified_couple_kokkos.h" + + +#endif #endif using namespace LAMMPS_NS; @@ -71,6 +82,16 @@ PythonImpl::PythonImpl(LAMMPS *lmp) : Pointers(lmp) err = PyImport_AppendInittab("mliap_unified_couple", PyInit_mliap_unified_couple); if (err) error->all(FLERR, "Could not register MLIAPPY unified embedded python module."); +#ifdef LMP_KOKKOS + // Inform python intialization scheme of the mliappy module. + // This -must- happen before python is initialized. + err = PyImport_AppendInittab("mliap_model_python_couple_kokkos", PyInit_mliap_model_python_couple_kokkos); + if (err) error->all(FLERR, "Could not register MLIAPPY embedded python module."); + + err = PyImport_AppendInittab("mliap_unified_couple_kokkos", PyInit_mliap_unified_couple_kokkos); + if (err) error->all(FLERR, "Could not register MLIAPPY unified embedded python module."); + +#endif #endif Py_Initialize(); diff --git a/src/REACTION/fix_bond_react.cpp b/src/REACTION/fix_bond_react.cpp index edddac1cb8..eaf4dfd0ec 100644 --- a/src/REACTION/fix_bond_react.cpp +++ b/src/REACTION/fix_bond_react.cpp @@ -216,7 +216,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : // this looks excessive // the price of vectorization (all reactions in one command)? - memory->create(rxn_name,nreacts,MAXLINE,"bond/react:rxn_name"); + memory->create(rxn_name,nreacts,MAXNAME,"bond/react:rxn_name"); memory->create(nevery,nreacts,"bond/react:nevery"); memory->create(cutsq,nreacts,2,"bond/react:cutsq"); memory->create(unreacted_mol,nreacts,"bond/react:unreacted_mol"); @@ -287,7 +287,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : iarg++; int n = strlen(arg[iarg]) + 1; - if (n > MAXLINE) error->all(FLERR,"Reaction name (react-ID) is too long (limit: 256 characters)"); + if (n > MAXNAME) error->all(FLERR,"Reaction name (react-ID) is too long (limit: 256 characters)"); strcpy(rxn_name[rxn],arg[iarg++]); int groupid = group->find(arg[iarg++]); @@ -545,6 +545,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : attempt = nullptr; nattempt = nullptr; allnattempt = 0; + my_num_mega = 0; local_num_mega = 0; ghostly_num_mega = 0; restore = nullptr; @@ -555,6 +556,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : glove_counter = 0; guess_branch = new int[MAXGUESS](); pioneer_count = new int[max_natoms]; + my_mega_glove = nullptr; local_mega_glove = nullptr; ghostly_mega_glove = nullptr; global_mega_glove = nullptr; @@ -654,6 +656,7 @@ FixBondReact::~FixBondReact() memory->destroy(restore); memory->destroy(glove); memory->destroy(pioneers); + memory->destroy(my_mega_glove); memory->destroy(local_mega_glove); memory->destroy(ghostly_mega_glove); } @@ -936,7 +939,7 @@ void FixBondReact::post_integrate() if (var_flag[NRATE][rxnID] == 1) { my_nrate = input->variable->compute_equal(var_id[NRATE][rxnID]); } else my_nrate = rate_limit[1][rxnID]; - if (nrxns_delta > my_nrate) rate_limit_flag = 0; + if (nrxns_delta >= my_nrate) rate_limit_flag = 0; } } if ((update->ntimestep % nevery[rxnID]) || @@ -1251,6 +1254,7 @@ void FixBondReact::close_partner() void FixBondReact::superimpose_algorithm() { const int nprocs = comm->nprocs; + my_num_mega = 0; local_num_mega = 0; ghostly_num_mega = 0; @@ -1269,6 +1273,7 @@ void FixBondReact::superimpose_algorithm() memory->destroy(restore); memory->destroy(glove); memory->destroy(pioneers); + memory->destroy(my_mega_glove); memory->destroy(local_mega_glove); memory->destroy(ghostly_mega_glove); } @@ -1277,18 +1282,14 @@ void FixBondReact::superimpose_algorithm() memory->create(restore_pt,MAXGUESS,4,"bond/react:restore_pt"); memory->create(pioneers,max_natoms,"bond/react:pioneers"); memory->create(restore,max_natoms,MAXGUESS*4,"bond/react:restore"); - memory->create(local_mega_glove,max_natoms+1,allnattempt,"bond/react:local_mega_glove"); - memory->create(ghostly_mega_glove,max_natoms+1,allnattempt,"bond/react:ghostly_mega_glove"); + memory->create(my_mega_glove,max_natoms+1,allnattempt,"bond/react:local_mega_glove"); + + for (int i = 0; i < max_natoms+1; i++) + for (int j = 0; j < allnattempt; j++) + my_mega_glove[i][j] = 0; attempted_rxn = 1; - for (int i = 0; i < max_natoms+1; i++) { - for (int j = 0; j < allnattempt; j++) { - local_mega_glove[i][j] = 0; - ghostly_mega_glove[i][j] = 0; - } - } - // let's finally begin the superimpose loop for (rxnID = 0; rxnID < nreacts; rxnID++) { for (lcl_inst = 0; lcl_inst < nattempt[rxnID]; lcl_inst++) { @@ -1335,7 +1336,11 @@ void FixBondReact::superimpose_algorithm() status = REJECT; } else { status = ACCEPT; - glove_ghostcheck(); + my_mega_glove[0][my_num_mega] = rxnID; + for (int i = 0; i < onemol->natoms; i++) { + my_mega_glove[i+1][my_num_mega] = glove[i][1]; + } + my_num_mega++; } } else status = REJECT; } @@ -1378,7 +1383,13 @@ void FixBondReact::superimpose_algorithm() if (status == ACCEPT) { if (fraction[rxnID] < 1.0 && random[rxnID]->uniform() >= fraction[rxnID]) status = REJECT; - else glove_ghostcheck(); + else { + my_mega_glove[0][my_num_mega] = rxnID; + for (int i = 0; i < onemol->natoms; i++) { + my_mega_glove[i+1][my_num_mega] = glove[i][1]; + } + my_num_mega++; + } } hang_catch++; // let's go ahead and catch the simplest of hangs @@ -1394,8 +1405,19 @@ void FixBondReact::superimpose_algorithm() global_megasize = 0; - ghost_glovecast(); // consolidate all mega_gloves to all processors + memory->create(local_mega_glove,max_natoms+1,my_num_mega,"bond/react:local_mega_glove"); + memory->create(ghostly_mega_glove,max_natoms+1,my_num_mega,"bond/react:ghostly_mega_glove"); + + for (int i = 0; i < max_natoms+1; i++) { + for (int j = 0; j < my_num_mega; j++) { + local_mega_glove[i][j] = 0; + ghostly_mega_glove[i][j] = 0; + } + } + dedup_mega_gloves(LOCAL); // make sure atoms aren't added to more than one reaction + glove_ghostcheck(); // split into 'local' and 'global' + ghost_glovecast(); // consolidate all mega_gloves to all processors MPI_Allreduce(&local_rxn_count[0],&reaction_count[0],nreacts,MPI_INT,MPI_SUM,world); @@ -2639,14 +2661,14 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode) { // dedup_mode == LOCAL for local_dedup // dedup_mode == GLOBAL for global_mega_glove - for (int i = 0; i < nreacts; i++) { - if (dedup_mode == LOCAL) local_rxn_count[i] = 0; - if (dedup_mode == GLOBAL) ghostly_rxn_count[i] = 0; - } + + if (dedup_mode == GLOBAL) + for (int i = 0; i < nreacts; i++) + ghostly_rxn_count[i] = 0; int dedup_size = 0; if (dedup_mode == LOCAL) { - dedup_size = local_num_mega; + dedup_size = my_num_mega; } else if (dedup_mode == GLOBAL) { dedup_size = global_megasize; } @@ -2657,7 +2679,7 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode) if (dedup_mode == LOCAL) { for (int i = 0; i < dedup_size; i++) { for (int j = 0; j < max_natoms+1; j++) { - dedup_glove[j][i] = local_mega_glove[j][i]; + dedup_glove[j][i] = my_mega_glove[j][i]; } } } else if (dedup_mode == GLOBAL) { @@ -2671,11 +2693,8 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode) // dedup_mask is size dedup_size and filters reactions that have been deleted // a value of 1 means this reaction instance has been deleted int *dedup_mask = new int[dedup_size]; - int *dup_list = new int[dedup_size]; - for (int i = 0; i < dedup_size; i++) { dedup_mask[i] = 0; - dup_list[i] = 0; } // let's randomly mix up our reaction instances first @@ -2699,60 +2718,40 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode) for (int i = 0; i < dedup_size; i++) { if (dedup_mask[i] == 0) { - int num_dups = 0; int myrxnid1 = dedup_glove[0][i]; onemol = atom->molecules[unreacted_mol[myrxnid1]]; for (int j = 0; j < onemol->natoms; j++) { int check1 = dedup_glove[j+1][i]; for (int ii = i + 1; ii < dedup_size; ii++) { - int already_listed = 0; - for (int jj = 0; jj < num_dups; jj++) { - if (dup_list[jj] == ii) { - already_listed = 1; - break; - } - } - if (dedup_mask[ii] == 0 && already_listed == 0) { + if (dedup_mask[ii] == 0) { int myrxnid2 = dedup_glove[0][ii]; twomol = atom->molecules[unreacted_mol[myrxnid2]]; for (int jj = 0; jj < twomol->natoms; jj++) { int check2 = dedup_glove[jj+1][ii]; if (check2 == check1) { - // add this rxn instance as well - if (num_dups == 0) dup_list[num_dups++] = i; - dup_list[num_dups++] = ii; + dedup_mask[ii] = 1; break; } } } } } - // here we choose random number and therefore reaction instance - int myrand = 1; - if (num_dups > 0) { - myrand = floor(random[0]->uniform()*num_dups); - for (int iii = 0; iii < num_dups; iii++) { - if (iii != myrand) dedup_mask[dup_list[iii]] = 1; - } - } } } // we must update local_mega_glove and local_megasize // we can simply overwrite local_mega_glove column by column if (dedup_mode == LOCAL) { - int new_local_megasize = 0; - for (int i = 0; i < local_num_mega; i++) { + int my_new_megasize = 0; + for (int i = 0; i < my_num_mega; i++) { if (dedup_mask[i] == 0) { - local_rxn_count[(int) dedup_glove[0][i]]++; for (int j = 0; j < max_natoms+1; j++) { - local_mega_glove[j][new_local_megasize] = dedup_glove[j][i]; + my_mega_glove[j][my_new_megasize] = dedup_glove[j][i]; } - new_local_megasize++; + my_new_megasize++; } } - - local_num_mega = new_local_megasize; + my_num_mega = my_new_megasize; } // we must update global_mega_glove and global_megasize @@ -2773,7 +2772,6 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode) memory->destroy(dedup_glove); delete [] dedup_mask; - delete [] dup_list; } /* ---------------------------------------------------------------------- @@ -2826,40 +2824,47 @@ void FixBondReact::glove_ghostcheck() // here we add glove to either local_mega_glove or ghostly_mega_glove // ghostly_mega_glove includes atoms that are ghosts, either of this proc or another // 'ghosts of another' indication taken from comm->sendlist + // also includes local gloves that overlap with ghostly gloves, to get dedup right - int ghostly = 0; -#if !defined(MPI_STUBS) - if (comm->style == Comm::BRICK) { - if (create_atoms_flag[rxnID] == 1) { - ghostly = 1; - } else { - for (int i = 0; i < onemol->natoms; i++) { - int ilocal = atom->map(glove[i][1]); - if (ilocal >= atom->nlocal || localsendlist[ilocal] == 1) { - ghostly = 1; - break; + for (int i = 0; i < nreacts; i++) + local_rxn_count[i] = 0; + + for (int i = 0; i < my_num_mega; i++) { + rxnID = my_mega_glove[0][i]; + onemol = atom->molecules[unreacted_mol[rxnID]]; + int ghostly = 0; + #if !defined(MPI_STUBS) + if (comm->style == Comm::BRICK) { + if (create_atoms_flag[rxnID] == 1) { + ghostly = 1; + } else { + for (int j = 0; j < onemol->natoms; j++) { + int ilocal = atom->map(my_mega_glove[j+1][i]); + if (ilocal >= atom->nlocal || localsendlist[ilocal] == 1) { + ghostly = 1; + break; + } } } + } else { + ghostly = 1; } - } else { - ghostly = 1; - } -#endif + #endif - if (ghostly == 1) { - ghostly_mega_glove[0][ghostly_num_mega] = rxnID; - ghostly_rxn_count[rxnID]++; //for debuginng - for (int i = 0; i < onemol->natoms; i++) { - ghostly_mega_glove[i+1][ghostly_num_mega] = glove[i][1]; + if (ghostly == 1) { + ghostly_mega_glove[0][ghostly_num_mega] = rxnID; + for (int j = 0; j < onemol->natoms+1; j++) { + ghostly_mega_glove[j][ghostly_num_mega] = my_mega_glove[j][i]; + } + ghostly_num_mega++; + } else { + local_mega_glove[0][local_num_mega] = rxnID; + local_rxn_count[rxnID]++; + for (int j = 0; j < onemol->natoms+1; j++) { + local_mega_glove[j][local_num_mega] = my_mega_glove[j][i]; + } + local_num_mega++; } - ghostly_num_mega++; - } else { - local_mega_glove[0][local_num_mega] = rxnID; - local_rxn_count[rxnID]++; //for debuginng - for (int i = 0; i < onemol->natoms; i++) { - local_mega_glove[i+1][local_num_mega] = glove[i][1]; - } - local_num_mega++; } } @@ -3903,6 +3908,7 @@ read map file void FixBondReact::read_map_file(int myrxn) { + int rv; char line[MAXLINE],keyword[MAXLINE]; char *eof,*ptr; @@ -3927,16 +3933,24 @@ void FixBondReact::read_map_file(int myrxn) if (strstr(line,"edgeIDs")) sscanf(line,"%d",&nedge); else if (strstr(line,"equivalences")) { - sscanf(line,"%d",&nequivalent); + rv = sscanf(line,"%d",&nequivalent); + if (rv != 1) error->one(FLERR, "Map file header is incorrectly formatted"); if (nequivalent != onemol->natoms) error->one(FLERR,"Fix bond/react: Number of equivalences in map file must " "equal number of atoms in reaction templates"); } - else if (strstr(line,"deleteIDs")) sscanf(line,"%d",&ndelete); - else if (strstr(line,"createIDs")) sscanf(line,"%d",&ncreate); - else if (strstr(line,"chiralIDs")) sscanf(line,"%d",&nchiral); - else if (strstr(line,"constraints")) { - sscanf(line,"%d",&nconstraints[myrxn]); + else if (strstr(line,"deleteIDs")) { + rv = sscanf(line,"%d",&ndelete); + if (rv != 1) error->one(FLERR, "Map file header is incorrectly formatted"); + } else if (strstr(line,"createIDs")) { + rv = sscanf(line,"%d",&ncreate); + if (rv != 1) error->one(FLERR, "Map file header is incorrectly formatted"); + } else if (strstr(line,"chiralIDs")) { + rv = sscanf(line,"%d",&nchiral); + if (rv != 1) error->one(FLERR, "Map file header is incorrectly formatted"); + } else if (strstr(line,"constraints")) { + rv = sscanf(line,"%d",&nconstraints[myrxn]); + if (rv != 1) error->one(FLERR, "Map file header is incorrectly formatted"); if (maxnconstraints < nconstraints[myrxn]) maxnconstraints = nconstraints[myrxn]; constraints.resize(maxnconstraints, std::vector(nreacts)); } else break; @@ -3956,11 +3970,13 @@ void FixBondReact::read_map_file(int myrxn) if (comm->me == 0) error->warning(FLERR,"Fix bond/react: The BondingIDs section title has been deprecated. Please use InitiatorIDs instead."); bondflag = 1; readline(line); - sscanf(line,"%d",&ibonding[myrxn]); + rv = sscanf(line,"%d",&ibonding[myrxn]); + if (rv != 1) error->one(FLERR, "InitiatorIDs section is incorrectly formatted"); if (ibonding[myrxn] > onemol->natoms) error->one(FLERR,"Fix bond/react: Invalid template atom ID in map file"); readline(line); - sscanf(line,"%d",&jbonding[myrxn]); + rv = sscanf(line,"%d",&jbonding[myrxn]); + if (rv != 1) error->one(FLERR, "InitiatorIDs section is incorrectly formatted"); if (jbonding[myrxn] > onemol->natoms) error->one(FLERR,"Fix bond/react: Invalid template atom ID in map file"); } else if (strcmp(keyword,"EdgeIDs") == 0) { @@ -3991,10 +4007,11 @@ void FixBondReact::EdgeIDs(char *line, int myrxn) { // puts a 1 at edge(edgeID) - int tmp; + int tmp,rv; for (int i = 0; i < nedge; i++) { readline(line); - sscanf(line,"%d",&tmp); + rv = sscanf(line,"%d",&tmp); + if (rv != 1) error->one(FLERR, "EdgeIDs section is incorrectly formatted"); if (tmp > onemol->natoms) error->one(FLERR,"Fix bond/react: Invalid template atom ID in map file"); edge[tmp-1][myrxn] = 1; @@ -4003,11 +4020,11 @@ void FixBondReact::EdgeIDs(char *line, int myrxn) void FixBondReact::Equivalences(char *line, int myrxn) { - int tmp1; - int tmp2; + int tmp1,tmp2,rv; for (int i = 0; i < nequivalent; i++) { readline(line); - sscanf(line,"%d %d",&tmp1,&tmp2); + rv = sscanf(line,"%d %d",&tmp1,&tmp2); + if (rv != 2) error->one(FLERR, "Equivalences section is incorrectly formatted"); if (tmp1 > onemol->natoms || tmp2 > twomol->natoms) error->one(FLERR,"Fix bond/react: Invalid template atom ID in map file"); //equivalences is-> clmn 1: post-reacted, clmn 2: pre-reacted @@ -4021,10 +4038,11 @@ void FixBondReact::Equivalences(char *line, int myrxn) void FixBondReact::DeleteAtoms(char *line, int myrxn) { - int tmp; + int tmp,rv; for (int i = 0; i < ndelete; i++) { readline(line); - sscanf(line,"%d",&tmp); + rv = sscanf(line,"%d",&tmp); + if (rv != 1) error->one(FLERR, "DeleteIDs section is incorrectly formatted"); if (tmp > onemol->natoms) error->one(FLERR,"Fix bond/react: Invalid template atom ID in map file"); delete_atoms[tmp-1][myrxn] = 1; @@ -4034,10 +4052,11 @@ void FixBondReact::DeleteAtoms(char *line, int myrxn) void FixBondReact::CreateAtoms(char *line, int myrxn) { create_atoms_flag[myrxn] = 1; - int tmp; + int tmp,rv; for (int i = 0; i < ncreate; i++) { readline(line); - sscanf(line,"%d",&tmp); + rv = sscanf(line,"%d",&tmp); + if (rv != 1) error->one(FLERR, "CreateIDs section is incorrectly formatted"); create_atoms[tmp-1][myrxn] = 1; } if (twomol->xflag == 0) @@ -4055,10 +4074,11 @@ void FixBondReact::CustomCharges(int ifragment, int myrxn) void FixBondReact::ChiralCenters(char *line, int myrxn) { - int tmp; + int tmp,rv; for (int i = 0; i < nchiral; i++) { readline(line); - sscanf(line,"%d",&tmp); + rv = sscanf(line,"%d",&tmp); + if (rv != 1) error->one(FLERR, "ChiralIDs section is incorrectly formatted"); if (tmp > onemol->natoms) error->one(FLERR,"Fix bond/react: Invalid template atom ID in map file"); chiral_atoms[tmp-1][0][myrxn] = 1; @@ -4088,6 +4108,7 @@ void FixBondReact::ChiralCenters(char *line, int myrxn) void FixBondReact::ReadConstraints(char *line, int myrxn) { + int rv; double tmp[MAXCONARGS]; char **strargs,*ptr,*lptr; memory->create(strargs,MAXCONARGS,MAXLINE,"bond/react:strargs"); @@ -4129,10 +4150,12 @@ void FixBondReact::ReadConstraints(char *line, int myrxn) } if ((ptr = strchr(lptr,')'))) *ptr = '\0'; - sscanf(line,"%s",constraint_type); + rv = sscanf(line,"%s",constraint_type); + if (rv != 1) error->one(FLERR, "Constraints section is incorrectly formatted"); if (strcmp(constraint_type,"distance") == 0) { constraints[i][myrxn].type = DISTANCE; - sscanf(line,"%*s %s %s %lg %lg",strargs[0],strargs[1],&tmp[0],&tmp[1]); + rv = sscanf(line,"%*s %s %s %lg %lg",strargs[0],strargs[1],&tmp[0],&tmp[1]); + if (rv != 4) error->one(FLERR, "Distance constraint is incorrectly formatted"); readID(strargs[0], i, myrxn, 0); readID(strargs[1], i, myrxn, 1); // cutoffs @@ -4140,7 +4163,8 @@ void FixBondReact::ReadConstraints(char *line, int myrxn) constraints[i][myrxn].par[1] = tmp[1]*tmp[1]; } else if (strcmp(constraint_type,"angle") == 0) { constraints[i][myrxn].type = ANGLE; - sscanf(line,"%*s %s %s %s %lg %lg",strargs[0],strargs[1],strargs[2],&tmp[0],&tmp[1]); + rv = sscanf(line,"%*s %s %s %s %lg %lg",strargs[0],strargs[1],strargs[2],&tmp[0],&tmp[1]); + if (rv != 5) error->one(FLERR, "Angle constraint is incorrectly formatted"); readID(strargs[0], i, myrxn, 0); readID(strargs[1], i, myrxn, 1); readID(strargs[2], i, myrxn, 2); @@ -4150,8 +4174,9 @@ void FixBondReact::ReadConstraints(char *line, int myrxn) constraints[i][myrxn].type = DIHEDRAL; 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], + rv = 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]); + if (!(rv == 6 || rv == 8)) error->one(FLERR, "Dihedral constraint is incorrectly formatted"); readID(strargs[0], i, myrxn, 0); readID(strargs[1], i, myrxn, 1); readID(strargs[2], i, myrxn, 2); @@ -4163,7 +4188,8 @@ void FixBondReact::ReadConstraints(char *line, int myrxn) } else if (strcmp(constraint_type,"arrhenius") == 0) { constraints[i][myrxn].type = ARRHENIUS; constraints[i][myrxn].par[0] = narrhenius++; - sscanf(line,"%*s %lg %lg %lg %lg",&tmp[0],&tmp[1],&tmp[2],&tmp[3]); + rv = sscanf(line,"%*s %lg %lg %lg %lg",&tmp[0],&tmp[1],&tmp[2],&tmp[3]); + if (rv != 4) error->one(FLERR, "Arrhenius constraint is incorrectly formatted"); constraints[i][myrxn].par[1] = tmp[0]; constraints[i][myrxn].par[2] = tmp[1]; constraints[i][myrxn].par[3] = tmp[2]; @@ -4171,7 +4197,8 @@ void FixBondReact::ReadConstraints(char *line, int myrxn) } else if (strcmp(constraint_type,"rmsd") == 0) { constraints[i][myrxn].type = RMSD; strcpy(strargs[0],"0"); - sscanf(line,"%*s %lg %s",&tmp[0],strargs[0]); + rv = sscanf(line,"%*s %lg %s",&tmp[0],strargs[0]); + if (!(rv == 1 || rv == 2)) error->one(FLERR, "RMSD constraint is incorrectly formatted"); constraints[i][myrxn].par[0] = tmp[0]; // RMSDmax constraints[i][myrxn].id[0] = -1; // optional molecule fragment if (isalpha(strargs[0][0])) { @@ -4411,8 +4438,8 @@ void FixBondReact::write_restart(FILE *fp) for (int i = 0; i < nreacts; i++) { set[i].reaction_count_total = reaction_count_total[i]; - strncpy(set[i].rxn_name,rxn_name[i],MAXLINE-1); - set[i].rxn_name[MAXLINE-1] = '\0'; + strncpy(set[i].rxn_name,rxn_name[i],MAXNAME-1); + set[i].rxn_name[MAXNAME-1] = '\0'; } int rbufcount = max_rate_limit_steps*nreacts; @@ -4449,13 +4476,16 @@ void FixBondReact::restart(char *buf) Set *set_restart = (Set *) &buf[n*sizeof(int)]; r_nreacts = set_restart[0].nreacts; + n2cpy = 0; if (revision > 0) { r_max_rate_limit_steps = set_restart[0].max_rate_limit_steps; - ibufcount = r_max_rate_limit_steps*r_nreacts; - memory->create(ibuf,r_max_rate_limit_steps,r_nreacts,"bond/react:ibuf"); - memcpy(&ibuf[0][0],&buf[sizeof(int)+r_nreacts*sizeof(Set)],sizeof(int)*ibufcount); - n2cpy = r_max_rate_limit_steps; - } else n2cpy = 0; + if (r_max_rate_limit_steps > 0) { + ibufcount = r_max_rate_limit_steps*r_nreacts; + memory->create(ibuf,r_max_rate_limit_steps,r_nreacts,"bond/react:ibuf"); + memcpy(&ibuf[0][0],&buf[sizeof(int)+r_nreacts*sizeof(Set)],sizeof(int)*ibufcount); + n2cpy = r_max_rate_limit_steps; + } + } if (max_rate_limit_steps < n2cpy) n2cpy = max_rate_limit_steps; for (int i = 0; i < r_nreacts; i++) { @@ -4468,7 +4498,7 @@ void FixBondReact::restart(char *buf) } } } - if (revision > 0) memory->destroy(ibuf); + if (revision > 0 && r_max_rate_limit_steps > 0) memory->destroy(ibuf); } /* ---------------------------------------------------------------------- diff --git a/src/REACTION/fix_bond_react.h b/src/REACTION/fix_bond_react.h index b434699ec7..66a5e4d6a0 100644 --- a/src/REACTION/fix_bond_react.h +++ b/src/REACTION/fix_bond_react.h @@ -33,7 +33,8 @@ namespace LAMMPS_NS { class FixBondReact : public Fix { public: - enum { MAXLINE = 256 }; // max length of line read from files + enum { MAXLINE = 1024 }; // max length of line read from files + enum { MAXNAME = 256 }; // max character length of react-ID enum { MAXCONIDS = 4 }; // max # of IDs used by any constraint enum { MAXCONPAR = 5 }; // max # of constraint parameters @@ -154,13 +155,15 @@ class FixBondReact : public Fix { int pion, neigh, trace; // important indices for various loops. required for restore points int lcl_inst; // reaction instance tagint **glove; // 1st colmn: pre-reacted template, 2nd colmn: global IDs - // for all mega_gloves and global_mega_glove: first row is the ID of bond/react - tagint **local_mega_glove; // consolidation local of reaction instances - tagint **ghostly_mega_glove; // consolidation nonlocal of reaction instances + // for all mega_gloves: first row is the ID of bond/react + tagint **my_mega_glove; // local + ghostly reaction instances + tagint **local_mega_glove; // consolidation of local reaction instances + tagint **ghostly_mega_glove; // consolidation of nonlocal reaction instances tagint **global_mega_glove; // consolidation (inter-processor) of gloves // containing nonlocal atoms int *localsendlist; // indicates ghosts of other procs + int my_num_mega; // local + ghostly reaction instances (on this proc) int local_num_mega; // num of local reaction instances int ghostly_num_mega; // num of ghostly reaction instances int global_megasize; // num of reaction instances in global_mega_glove @@ -216,7 +219,7 @@ class FixBondReact : public Fix { // store restart data struct Set { int nreacts; - char rxn_name[MAXLINE]; + char rxn_name[MAXNAME]; int reaction_count_total; int max_rate_limit_steps; }; diff --git a/src/SHOCK/fix_wall_piston.cpp b/src/SHOCK/fix_wall_piston.cpp index 82cec907f4..cb20e2d683 100644 --- a/src/SHOCK/fix_wall_piston.cpp +++ b/src/SHOCK/fix_wall_piston.cpp @@ -13,17 +13,19 @@ ------------------------------------------------------------------------- */ #include "fix_wall_piston.h" + +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "lattice.h" +#include "math_const.h" +#include "random_mars.h" +#include "update.h" + #include #include -#include "atom.h" -#include "domain.h" -#include "lattice.h" -#include "update.h" -#include "error.h" -#include "random_mars.h" -#include "force.h" -#include "comm.h" -#include "math_const.h" using namespace LAMMPS_NS; using namespace FixConst; diff --git a/src/SRD/fix_wall_srd.cpp b/src/SRD/fix_wall_srd.cpp index ccce252e5d..d9e55a49f2 100644 --- a/src/SRD/fix_wall_srd.cpp +++ b/src/SRD/fix_wall_srd.cpp @@ -27,7 +27,6 @@ #include using namespace LAMMPS_NS; -using namespace FixConst; enum { XLO, XHI, YLO, YHI, ZLO, ZHI }; enum { NONE, EDGE, CONSTANT, VARIABLE }; diff --git a/src/fix_wall.cpp b/src/fix_wall.cpp index d624ee9ff7..4c4406a34c 100644 --- a/src/fix_wall.cpp +++ b/src/fix_wall.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -28,14 +27,14 @@ using namespace LAMMPS_NS; using namespace FixConst; -enum{XLO=0,XHI=1,YLO=2,YHI=3,ZLO=4,ZHI=5}; -enum{NONE=0,EDGE,CONSTANT,VARIABLE}; +enum { XLO = 0, XHI = 1, YLO = 2, YHI = 3, ZLO = 4, ZHI = 5 }; +enum { NONE = 0, EDGE, CONSTANT, VARIABLE }; + +static const char *wallpos[] = {"xlo", "xhi", "ylo", "yhi", "zlo", "zhi"}; /* ---------------------------------------------------------------------- */ -FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg), - nwall(0) +FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), nwall(0) { scalar_flag = 1; vector_flag = 1; @@ -53,111 +52,145 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) : fldflag = 0; int pbcflag = 0; - for (int i = 0; i < 6; i++) xstr[i] = estr[i] = sstr[i] = nullptr; + for (int i = 0; i < 6; i++) xstr[i] = estr[i] = sstr[i] = lstr[i] = fstr[i] = kstr[i] = nullptr; int iarg = 3; + if (utils::strmatch(style, "^wall/table")) iarg = 5; + while (iarg < narg) { - if ((strcmp(arg[iarg],"xlo") == 0) || (strcmp(arg[iarg],"xhi") == 0) || - (strcmp(arg[iarg],"ylo") == 0) || (strcmp(arg[iarg],"yhi") == 0) || - (strcmp(arg[iarg],"zlo") == 0) || (strcmp(arg[iarg],"zhi") == 0)) { - if (iarg+5 > narg) error->all(FLERR,"Illegal fix wall command"); + int wantargs = 5; + if (utils::strmatch(style, "^wall/lepton")) wantargs = 4; + if (utils::strmatch(style, "^wall/morse")) wantargs = 6; + + if ((strcmp(arg[iarg], "xlo") == 0) || (strcmp(arg[iarg], "xhi") == 0) || + (strcmp(arg[iarg], "ylo") == 0) || (strcmp(arg[iarg], "yhi") == 0) || + (strcmp(arg[iarg], "zlo") == 0) || (strcmp(arg[iarg], "zhi") == 0)) { + if (iarg + wantargs > narg) error->all(FLERR, "Missing argument for fix {} command", style); int newwall; - if (strcmp(arg[iarg],"xlo") == 0) newwall = XLO; - else if (strcmp(arg[iarg],"xhi") == 0) newwall = XHI; - else if (strcmp(arg[iarg],"ylo") == 0) newwall = YLO; - else if (strcmp(arg[iarg],"yhi") == 0) newwall = YHI; - else if (strcmp(arg[iarg],"zlo") == 0) newwall = ZLO; - else if (strcmp(arg[iarg],"zhi") == 0) newwall = ZHI; - - for (int m = 0; (m < nwall) && (m < 6); m++) + if (strcmp(arg[iarg], "xlo") == 0) { + newwall = XLO; + } else if (strcmp(arg[iarg], "xhi") == 0) { + newwall = XHI; + } else if (strcmp(arg[iarg], "ylo") == 0) { + newwall = YLO; + } else if (strcmp(arg[iarg], "yhi") == 0) { + newwall = YHI; + } else if (strcmp(arg[iarg], "zlo") == 0) { + newwall = ZLO; + } else if (strcmp(arg[iarg], "zhi") == 0) { + newwall = ZHI; + } + for (int m = 0; (m < nwall) && (m < 6); m++) { if (newwall == wallwhich[m]) - error->all(FLERR,"Wall defined twice in fix wall command"); - + error->all(FLERR, "{} wall defined twice in fix {} command", wallpos[newwall], style); + } wallwhich[nwall] = newwall; - if (strcmp(arg[iarg+1],"EDGE") == 0) { + + if (strcmp(arg[iarg + 1], "EDGE") == 0) { xstyle[nwall] = EDGE; int dim = wallwhich[nwall] / 2; int side = wallwhich[nwall] % 2; - if (side == 0) coord0[nwall] = domain->boxlo[dim]; - else coord0[nwall] = domain->boxhi[dim]; - } else if (utils::strmatch(arg[iarg+1],"^v_")) { + if (side == 0) { + coord0[nwall] = domain->boxlo[dim]; + } else { + coord0[nwall] = domain->boxhi[dim]; + } + } else if (utils::strmatch(arg[iarg + 1], "^v_")) { xstyle[nwall] = VARIABLE; - xstr[nwall] = utils::strdup(arg[iarg+1]+2); + xstr[nwall] = utils::strdup(arg[iarg + 1] + 2); } else { xstyle[nwall] = CONSTANT; - coord0[nwall] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + coord0[nwall] = utils::numeric(FLERR, arg[iarg + 1], false, lmp); } - if (utils::strmatch(arg[iarg+2],"^v_")) { - estr[nwall] = utils::strdup(arg[iarg+2]+2); - estyle[nwall] = VARIABLE; + if (utils::strmatch(style, "^wall/lepton")) { + estyle[nwall] = sstyle[nwall] = CONSTANT; + lstr[nwall] = utils::strdup(arg[iarg + 2]); + cutoff[nwall] = utils::numeric(FLERR, arg[iarg + 3], false, lmp); + } else if (utils::strmatch(style, "^wall/table")) { + estyle[nwall] = sstyle[nwall] = CONSTANT; + fstr[nwall] = utils::strdup(arg[iarg + 2]); + kstr[nwall] = utils::strdup(arg[iarg + 3]); + cutoff[nwall] = utils::numeric(FLERR, arg[iarg + 4], false, lmp); } else { - epsilon[nwall] = utils::numeric(FLERR,arg[iarg+2],false,lmp); - estyle[nwall] = CONSTANT; - } + if (iarg + 5 > narg) error->all(FLERR, "Missing argument for fix {} command", style); - if (utils::strmatch(style,"^wall/morse")) { - if (utils::strmatch(arg[iarg+3],"^v_")) { - astr[nwall] = utils::strdup(arg[iarg+3]+2); - astyle[nwall] = VARIABLE; + if (utils::strmatch(arg[iarg + 2], "^v_")) { + estr[nwall] = utils::strdup(arg[iarg + 2] + 2); + estyle[nwall] = VARIABLE; } else { - alpha[nwall] = utils::numeric(FLERR,arg[iarg+3],false,lmp); - astyle[nwall] = CONSTANT; + epsilon[nwall] = utils::numeric(FLERR, arg[iarg + 2], false, lmp); + estyle[nwall] = CONSTANT; } - ++iarg; - } - if (utils::strmatch(arg[iarg+3],"^v_")) { - sstr[nwall] = utils::strdup(arg[iarg+3]+2); - sstyle[nwall] = VARIABLE; - } else { - sigma[nwall] = utils::numeric(FLERR,arg[iarg+3],false,lmp); - sstyle[nwall] = CONSTANT; - } + if (utils::strmatch(style, "^wall/morse")) { + if (utils::strmatch(arg[iarg + 3], "^v_")) { + astr[nwall] = utils::strdup(arg[iarg + 3] + 2); + astyle[nwall] = VARIABLE; + } else { + alpha[nwall] = utils::numeric(FLERR, arg[iarg + 3], false, lmp); + astyle[nwall] = CONSTANT; + } + // adjust so we can share the regular code path + ++iarg; + --wantargs; + } - cutoff[nwall] = utils::numeric(FLERR,arg[iarg+4],false,lmp); + if (utils::strmatch(arg[iarg + 3], "^v_")) { + sstr[nwall] = utils::strdup(arg[iarg + 3] + 2); + sstyle[nwall] = VARIABLE; + } else { + sigma[nwall] = utils::numeric(FLERR, arg[iarg + 3], false, lmp); + sstyle[nwall] = CONSTANT; + } + cutoff[nwall] = utils::numeric(FLERR, arg[iarg + 4], false, lmp); + } nwall++; - iarg += 5; - - } else if (strcmp(arg[iarg],"units") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix wall command"); - if (strcmp(arg[iarg+1],"box") == 0) scaleflag = 0; - else if (strcmp(arg[iarg+1],"lattice") == 0) scaleflag = 1; - else error->all(FLERR,"Illegal fix wall command"); + iarg += wantargs; + } else if (strcmp(arg[iarg], "units") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal fix {} command", style); + if (strcmp(arg[iarg + 1], "box") == 0) + scaleflag = 0; + else if (strcmp(arg[iarg + 1], "lattice") == 0) + scaleflag = 1; + else + error->all(FLERR, "Illegal fix {} command", style); iarg += 2; - } else if (strcmp(arg[iarg],"fld") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix wall command"); - fldflag = utils::logical(FLERR,arg[iarg+1],false,lmp); + } else if (strcmp(arg[iarg], "fld") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal fix {} command", style); + fldflag = utils::logical(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else if (strcmp(arg[iarg],"pbc") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix wall command"); - pbcflag = utils::logical(FLERR,arg[iarg+1],false,lmp); + } else if (strcmp(arg[iarg], "pbc") == 0) { + if (iarg + 2 > narg) error->all(FLERR, "Illegal fix {} command", style); + pbcflag = utils::logical(FLERR, arg[iarg + 1], false, lmp); iarg += 2; - } else error->all(FLERR,"Illegal fix wall command"); + } else + error->all(FLERR, "Illegal fix {} command", style); } size_vector = nwall; // error checks - if (nwall == 0) error->all(FLERR,"Illegal fix wall command"); - for (int m = 0; m < nwall; m++) + if (nwall == 0) error->all(FLERR, "Illegal fix {} command: no walls defined", style); + for (int m = 0; m < nwall; m++) { if (cutoff[m] <= 0.0) - error->all(FLERR,"Fix wall cutoff <= 0.0"); + error->all(FLERR, "Fix {} cutoff <= 0.0 for {} wall", style, wallpos[wallwhich[m]]); + } for (int m = 0; m < nwall; m++) if ((wallwhich[m] == ZLO || wallwhich[m] == ZHI) && domain->dimension == 2) - error->all(FLERR,"Cannot use fix wall zlo/zhi for a 2d simulation"); + error->all(FLERR, "Cannot use fix {} zlo/zhi for a 2d simulation", style); if (!pbcflag) { for (int m = 0; m < nwall; m++) { if ((wallwhich[m] == XLO || wallwhich[m] == XHI) && domain->xperiodic) - error->all(FLERR,"Cannot use fix wall in periodic dimension"); + error->all(FLERR, "Cannot use {} wall in periodic x dimension", wallpos[wallwhich[m]]); if ((wallwhich[m] == YLO || wallwhich[m] == YHI) && domain->yperiodic) - error->all(FLERR,"Cannot use fix wall in periodic dimension"); + error->all(FLERR, "Cannot use {} wall in periodic y dimension", wallpos[wallwhich[m]]); if ((wallwhich[m] == ZLO || wallwhich[m] == ZHI) && domain->zperiodic) - error->all(FLERR,"Cannot use fix wall in periodic dimension"); + error->all(FLERR, "Cannot use {} wall in periodic z dimension", wallpos[wallwhich[m]]); } } @@ -172,14 +205,17 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) : xscale = domain->lattice->xlattice; yscale = domain->lattice->ylattice; zscale = domain->lattice->zlattice; - } - else xscale = yscale = zscale = 1.0; + } else + xscale = yscale = zscale = 1.0; for (int m = 0; m < nwall; m++) { if (xstyle[m] != CONSTANT) continue; - if (wallwhich[m] < YLO) coord0[m] *= xscale; - else if (wallwhich[m] < ZLO) coord0[m] *= yscale; - else coord0[m] *= zscale; + if (wallwhich[m] < YLO) + coord0[m] *= xscale; + else if (wallwhich[m] < ZLO) + coord0[m] *= yscale; + else + coord0[m] *= zscale; } } @@ -191,8 +227,10 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) : for (int m = 0; m < nwall; m++) { if (xstyle[m] == VARIABLE) xflag = 1; if (xflag || estyle[m] == VARIABLE || sstyle[m] == VARIABLE) varflag = 1; - if (estyle[m] == VARIABLE || sstyle[m] == VARIABLE) wstyle[m] = VARIABLE; - else wstyle[m] = CONSTANT; + if (estyle[m] == VARIABLE || sstyle[m] == VARIABLE) + wstyle[m] = VARIABLE; + else + wstyle[m] = CONSTANT; } eflag = 0; @@ -206,9 +244,12 @@ FixWall::~FixWall() if (copymode) return; for (int m = 0; m < nwall; m++) { - delete [] xstr[m]; - delete [] estr[m]; - delete [] sstr[m]; + delete[] xstr[m]; + delete[] estr[m]; + delete[] sstr[m]; + delete[] lstr[m]; + delete[] fstr[m]; + delete[] kstr[m]; } } @@ -220,8 +261,10 @@ int FixWall::setmask() // FLD implicit needs to invoke wall forces before pair style - if (fldflag) mask |= PRE_FORCE; - else mask |= POST_FORCE; + if (fldflag) + mask |= PRE_FORCE; + else + mask |= POST_FORCE; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; @@ -235,24 +278,21 @@ void FixWall::init() for (int m = 0; m < nwall; m++) { if (xstyle[m] == VARIABLE) { xindex[m] = input->variable->find(xstr[m]); - if (xindex[m] < 0) - error->all(FLERR,"Variable name for fix wall does not exist"); + if (xindex[m] < 0) error->all(FLERR, "Variable name for fix wall does not exist"); if (!input->variable->equalstyle(xindex[m])) - error->all(FLERR,"Variable for fix wall is invalid style"); + error->all(FLERR, "Variable for fix wall is invalid style"); } if (estyle[m] == VARIABLE) { eindex[m] = input->variable->find(estr[m]); - if (eindex[m] < 0) - error->all(FLERR,"Variable name for fix wall does not exist"); + if (eindex[m] < 0) error->all(FLERR, "Variable name for fix wall does not exist"); if (!input->variable->equalstyle(eindex[m])) - error->all(FLERR,"Variable for fix wall is invalid style"); + error->all(FLERR, "Variable for fix wall is invalid style"); } if (sstyle[m] == VARIABLE) { sindex[m] = input->variable->find(sstr[m]); - if (sindex[m] < 0) - error->all(FLERR,"Variable name for fix wall does not exist"); + if (sindex[m] < 0) error->all(FLERR, "Variable name for fix wall does not exist"); if (!input->variable->equalstyle(sindex[m])) - error->all(FLERR,"Variable for fix wall is invalid style"); + error->all(FLERR, "Variable for fix wall is invalid style"); } } @@ -260,9 +300,9 @@ void FixWall::init() for (int m = 0; m < nwall; m++) precompute(m); - if (utils::strmatch(update->integrate_style,"^respa")) { - ilevel_respa = (dynamic_cast(update->integrate))->nlevels-1; - if (respa_level >= 0) ilevel_respa = MIN(respa_level,ilevel_respa); + if (utils::strmatch(update->integrate_style, "^respa")) { + ilevel_respa = (dynamic_cast(update->integrate))->nlevels - 1; + if (respa_level >= 0) ilevel_respa = MIN(respa_level, ilevel_respa); } } @@ -270,11 +310,11 @@ void FixWall::init() void FixWall::setup(int vflag) { - if (utils::strmatch(update->integrate_style,"^verlet")) { + if (utils::strmatch(update->integrate_style, "^verlet")) { if (!fldflag) post_force(vflag); } else { (dynamic_cast(update->integrate))->copy_flevel_f(ilevel_respa); - post_force_respa(vflag,ilevel_respa,0); + post_force_respa(vflag, ilevel_respa, 0); (dynamic_cast(update->integrate))->copy_f_flevel(ilevel_respa); } } @@ -319,25 +359,27 @@ void FixWall::post_force(int vflag) for (int m = 0; m < nwall; m++) { if (xstyle[m] == VARIABLE) { coord = input->variable->compute_equal(xindex[m]); - if (wallwhich[m] < YLO) coord *= xscale; - else if (wallwhich[m] < ZLO) coord *= yscale; - else coord *= zscale; - } else coord = coord0[m]; + if (wallwhich[m] < YLO) + coord *= xscale; + else if (wallwhich[m] < ZLO) + coord *= yscale; + else + coord *= zscale; + } else + coord = coord0[m]; if (wstyle[m] == VARIABLE) { if (estyle[m] == VARIABLE) { epsilon[m] = input->variable->compute_equal(eindex[m]); - if (epsilon[m] < 0.0) - error->all(FLERR,"Variable evaluation in fix wall gave bad value"); + if (epsilon[m] < 0.0) error->all(FLERR, "Variable evaluation in fix wall gave bad value"); } if (sstyle[m] == VARIABLE) { sigma[m] = input->variable->compute_equal(sindex[m]); - if (sigma[m] < 0.0) - error->all(FLERR,"Variable evaluation in fix wall gave bad value"); + if (sigma[m] < 0.0) error->all(FLERR, "Variable evaluation in fix wall gave bad value"); } precompute(m); } - wall_particle(m,wallwhich[m],coord); + wall_particle(m, wallwhich[m], coord); } if (varflag) modify->addstep_compute(update->ntimestep + 1); @@ -366,7 +408,7 @@ double FixWall::compute_scalar() // only sum across procs one time if (eflag == 0) { - MPI_Allreduce(ewall,ewall_all,nwall+1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(ewall, ewall_all, nwall + 1, MPI_DOUBLE, MPI_SUM, world); eflag = 1; } return ewall_all[0]; @@ -381,8 +423,8 @@ double FixWall::compute_vector(int n) // only sum across procs one time if (eflag == 0) { - MPI_Allreduce(ewall,ewall_all,nwall+1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(ewall, ewall_all, nwall + 1, MPI_DOUBLE, MPI_SUM, world); eflag = 1; } - return ewall_all[n+1]; + return ewall_all[n + 1]; } diff --git a/src/fix_wall.h b/src/fix_wall.h index 32fccea2b3..12ceb17b49 100644 --- a/src/fix_wall.h +++ b/src/fix_wall.h @@ -50,8 +50,8 @@ class FixWall : public Fix { double xscale, yscale, zscale; int estyle[6], sstyle[6], astyle[6], wstyle[6]; int eindex[6], sindex[6]; - char *estr[6], *sstr[6], *astr[6]; - int varflag; // 1 if any wall position,epsilon,sigma is a var + char *estr[6], *sstr[6], *astr[6], *lstr[6], *fstr[6], *kstr[6]; + int varflag; // 1 if any wall position,epsilon,sigma is a variable int eflag; // per-wall flag for energy summation int ilevel_respa; int fldflag; diff --git a/src/fix_wall_harmonic.cpp b/src/fix_wall_harmonic.cpp index a8e4127523..0e8fa22684 100644 --- a/src/fix_wall_harmonic.cpp +++ b/src/fix_wall_harmonic.cpp @@ -16,7 +16,6 @@ #include "error.h" using namespace LAMMPS_NS; -using namespace FixConst; /* ---------------------------------------------------------------------- */ diff --git a/src/fix_wall_lj126.cpp b/src/fix_wall_lj126.cpp index 78d9656e7f..f7458448be 100644 --- a/src/fix_wall_lj126.cpp +++ b/src/fix_wall_lj126.cpp @@ -18,7 +18,6 @@ #include "error.h" using namespace LAMMPS_NS; -using namespace FixConst; /* ---------------------------------------------------------------------- */ diff --git a/src/fix_wall_lj93.cpp b/src/fix_wall_lj93.cpp index 1e02b61fe1..7c4db056f9 100644 --- a/src/fix_wall_lj93.cpp +++ b/src/fix_wall_lj93.cpp @@ -18,7 +18,6 @@ #include "error.h" using namespace LAMMPS_NS; -using namespace FixConst; /* ---------------------------------------------------------------------- */ diff --git a/src/fix_wall_morse.cpp b/src/fix_wall_morse.cpp index a1427b380f..6c5eee885d 100644 --- a/src/fix_wall_morse.cpp +++ b/src/fix_wall_morse.cpp @@ -18,7 +18,6 @@ #include using namespace LAMMPS_NS; -using namespace FixConst; /* ---------------------------------------------------------------------- */ @@ -72,7 +71,7 @@ void FixWallMorse::wall_particle(int m, int which, double coord) } double dr = delta - sigma[m]; double dexp = exp(-alpha[m] * dr); - fwall = side * coeff1[m] * (dexp * dexp - dexp) / delta; + fwall = side * coeff1[m] * (dexp * dexp - dexp); ewall[0] += epsilon[m] * (dexp * dexp - 2.0 * dexp) - offset[m]; f[i][dim] -= fwall; ewall[m + 1] += fwall; diff --git a/src/fix_wall_table.cpp b/src/fix_wall_table.cpp new file mode 100644 index 0000000000..dc1dda4504 --- /dev/null +++ b/src/fix_wall_table.cpp @@ -0,0 +1,472 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + 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 "fix_wall_table.h" +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "memory.h" +#include "table_file_reader.h" +#include "tokenizer.h" + +#include + +using namespace LAMMPS_NS; + +enum { NONE, LINEAR, SPLINE }; + +static constexpr double BIGNUM = 1.0e300; + +/* ---------------------------------------------------------------------- */ + +FixWallTable::FixWallTable(LAMMPS *lmp, int narg, char **arg) : + FixWall(lmp, narg, arg), tables(nullptr) +{ + dynamic_group_allow = 1; + tabstyle = NONE; + if (strcmp(arg[3], "linear") == 0) + tabstyle = LINEAR; + else if (strcmp(arg[3], "spline") == 0) + tabstyle = SPLINE; + else + error->all(FLERR, "Unknown table style {} in fix {}", arg[3], style); + + tablength = utils::inumeric(FLERR, arg[4], false, lmp); + if (tablength < 2) error->all(FLERR, "Illegal number of fix {} table entries", style); +} + +/* ---------------------------------------------------------------------- */ + +void FixWallTable::post_constructor() +{ + memory->sfree(tables); + tables = (Table *) memory->smalloc(nwall * sizeof(Table), "wall:tables"); + + for (int m = 0; m < nwall; ++m) { + Table &tb = tables[m]; + null_table(tb); + + if (comm->me == 0) read_table(tb, fstr[m], kstr[m]); + bcast_table(tb); + + // error check on table parameters + if (tb.ninput <= 1) error->all(FLERR, "Invalid fix {} table length: {}", style, tb.ninput); + tb.lo = tb.rfile[0]; + tb.hi = tb.rfile[tb.ninput - 1]; + if (tb.lo >= tb.hi) error->all(FLERR, "Fix {} table distance values do not increase", style); + if (cutoff[m] > tb.hi) + error->all(FLERR, "Fix {} wall cutoff {} is larger than table outer cutoff {}", style, + cutoff[m], tb.hi); + + // spline read-in data and compute r,e,f arrays within table + spline_table(tb); + compute_table(tb); + } +} + +/* ---------------------------------------------------------------------- */ + +FixWallTable::~FixWallTable() +{ + for (int m = 0; m < nwall; m++) free_table(tables[m]); + memory->sfree(tables); +} + +/* ---------------------------------------------------------------------- + compute the potential energy offset so it can be shifted to zero at the cutoff +------------------------------------------------------------------------- */ + +void FixWallTable::precompute(int m) +{ + double u, mdu; + + // always use linear interpolation to determine the offset, since we may be at the + // outer table cutoff and spline interpolation would cause out-of-bounds array accesses + int savedtabstyle = tabstyle; + tabstyle = LINEAR; + uf_lookup(m, cutoff[m], u, mdu); + offset[m] = u; + tabstyle = savedtabstyle; +} + +/* ---------------------------------------------------------------------- + interaction of all particles in group with a wall + m = index of wall coeffs + which = xlo,xhi,ylo,yhi,zlo,zhi + error if any particle is on or behind wall +------------------------------------------------------------------------- */ + +void FixWallTable::wall_particle(int m, int which, double coord) +{ + double delta, fwall, vn, u, mdu; + + double **x = atom->x; + double **f = atom->f; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + int dim = which / 2; + int side = which % 2; + if (side == 0) side = -1; + + int onflag = 0; + + for (int i = 0; i < nlocal; i++) + if (mask[i] & groupbit) { + if (side < 0) + delta = x[i][dim] - coord; + else + delta = coord - x[i][dim]; + if (delta >= cutoff[m]) continue; + if (delta <= 0.0) { + onflag = 1; + continue; + } + + uf_lookup(m, delta, u, mdu); + fwall = side * mdu; + f[i][dim] -= fwall; + ewall[0] += u - offset[m]; + ewall[m + 1] += fwall; + + if (evflag) { + if (side < 0) + vn = -fwall * delta; + else + vn = fwall * delta; + v_tally(dim, i, vn); + } + } + + if (onflag) error->one(FLERR, "Particle on or inside fix {} surface", style); +} + +/* ---------------------------------------------------------------------- */ + +void FixWallTable::null_table(Table &tb) +{ + tb.rfile = tb.efile = tb.ffile = nullptr; + tb.e2file = tb.f2file = nullptr; + tb.r = tb.e = tb.de = nullptr; + tb.f = tb.df = tb.e2 = tb.f2 = nullptr; +} + +/* ---------------------------------------------------------------------- */ + +void FixWallTable::free_table(Table &tb) +{ + memory->destroy(tb.rfile); + memory->destroy(tb.efile); + memory->destroy(tb.ffile); + memory->destroy(tb.e2file); + memory->destroy(tb.f2file); + + memory->destroy(tb.r); + memory->destroy(tb.e); + memory->destroy(tb.de); + memory->destroy(tb.f); + memory->destroy(tb.df); + memory->destroy(tb.e2); + memory->destroy(tb.f2); +} + +/* ---------------------------------------------------------------------- */ + +void FixWallTable::read_table(Table &tb, const std::string &tabfile, const std::string &keyword) +{ + TableFileReader reader(lmp, tabfile, "fix wall/table"); + + char *line = reader.find_section_start(keyword); + if (!line) error->one(FLERR, "Did not find keyword {} in table file", keyword); + + // read args on 2nd line of section + // allocate table arrays for file values + + line = reader.next_line(); + param_extract(tb, line); + memory->create(tb.rfile, tb.ninput, "wall:rfile"); + memory->create(tb.efile, tb.ninput, "wall:efile"); + memory->create(tb.ffile, tb.ninput, "wall:ffile"); + + // read r,e,f table values from file + + reader.skip_line(); + for (int i = 0; i < tb.ninput; i++) { + line = reader.next_line(); + if (!line) + error->one(FLERR, "Data missing when parsing wall table '{}' line {} of {}.", keyword, i + 1, + tb.ninput); + try { + ValueTokenizer values(line); + values.next_int(); + tb.rfile[i] = values.next_double(); + tb.efile[i] = values.next_double(); + tb.ffile[i] = values.next_double(); + } catch (TokenizerException &e) { + error->one(FLERR, "Error parsing wall table '{}' line {} of {}. {}\nLine was: {}", keyword, + i + 1, tb.ninput, e.what(), line); + } + } + + // warn if force != dE/dr at any point that is not an inflection point + // check via secant approximation to dE/dr + // skip two end points since do not have surrounding secants + // inflection point is where curvature changes sign + + double r, e, f, rprev, rnext, eprev, enext, fleft, fright; + + int ferror = 0; + for (int i = 1; i < tb.ninput - 1; i++) { + r = tb.rfile[i]; + rprev = tb.rfile[i - 1]; + rnext = tb.rfile[i + 1]; + e = tb.efile[i]; + eprev = tb.efile[i - 1]; + enext = tb.efile[i + 1]; + f = tb.ffile[i]; + fleft = -(e - eprev) / (r - rprev); + fright = -(enext - e) / (rnext - r); + if (f < fleft && f < fright) ferror++; + if (f > fleft && f > fright) ferror++; + } + + if (ferror) + error->warning(FLERR, + "{} of {} force values in table are inconsistent with -dE/dr.\n" + "WARNING: Should only be flagged at inflection points", + ferror, tb.ninput); +} + +/* ---------------------------------------------------------------------- + build spline representation of e,f over entire range of read-in table + this function sets these values in e2file,f2file +------------------------------------------------------------------------- */ + +void FixWallTable::spline_table(Table &tb) +{ + memory->create(tb.e2file, tb.ninput, "wall:e2file"); + memory->create(tb.f2file, tb.ninput, "wall:f2file"); + + double ep0 = -tb.ffile[0]; + double epn = -tb.ffile[tb.ninput - 1]; + spline(tb.rfile, tb.efile, tb.ninput, ep0, epn, tb.e2file); + + if (tb.fpflag == 0) { + tb.fplo = (tb.ffile[1] - tb.ffile[0]) / (tb.rfile[1] - tb.rfile[0]); + tb.fphi = (tb.ffile[tb.ninput - 1] - tb.ffile[tb.ninput - 2]) / + (tb.rfile[tb.ninput - 1] - tb.rfile[tb.ninput - 2]); + } + + double fp0 = tb.fplo; + double fpn = tb.fphi; + spline(tb.rfile, tb.ffile, tb.ninput, fp0, fpn, tb.f2file); +} + +/* ---------------------------------------------------------------------- + compute r,e,f vectors from splined values +------------------------------------------------------------------------- */ + +void FixWallTable::compute_table(Table &tb) +{ + // delta = table spacing for N-1 bins + int tlm1 = tablength - 1; + + tb.delta = (tb.hi - tb.lo) / tlm1; + tb.invdelta = 1.0 / tb.delta; + tb.deltasq6 = tb.delta * tb.delta / 6.0; + + // N-1 evenly spaced bins in r from min to max + // r,e,f = value at lower edge of bin + // de,df values = delta values of e,f + // r,e,f are N in length so de,df arrays can compute difference + + memory->create(tb.r, tablength, "wall:r"); + memory->create(tb.e, tablength, "wall:e"); + memory->create(tb.de, tablength, "wall:de"); + memory->create(tb.f, tablength, "wall:f"); + memory->create(tb.df, tablength, "wall:df"); + memory->create(tb.e2, tablength, "wall:e2"); + memory->create(tb.f2, tablength, "wall:f2"); + + double a; + for (int i = 0; i < tablength; i++) { + a = tb.lo + i * tb.delta; + tb.r[i] = a; + tb.e[i] = splint(tb.rfile, tb.efile, tb.e2file, tb.ninput, a); + tb.f[i] = splint(tb.rfile, tb.ffile, tb.f2file, tb.ninput, a); + } + + for (int i = 0; i < tlm1; i++) { + tb.de[i] = tb.e[i + 1] - tb.e[i]; + tb.df[i] = tb.f[i + 1] - tb.f[i]; + } + // get final elements from linear extrapolation + tb.de[tlm1] = 2.0 * tb.de[tlm1 - 1] - tb.de[tlm1 - 2]; + tb.df[tlm1] = 2.0 * tb.df[tlm1 - 1] - tb.df[tlm1 - 2]; + + double ep0 = -tb.f[0]; + double epn = -tb.f[tlm1]; + spline(tb.r, tb.e, tablength, ep0, epn, tb.e2); + spline(tb.r, tb.f, tablength, tb.fplo, tb.fphi, tb.f2); +} + +/* ---------------------------------------------------------------------- + extract attributes from parameter line in table section + format of line: N value FP fplo fphi + N is required, other params are optional +------------------------------------------------------------------------- */ + +void FixWallTable::param_extract(Table &tb, char *line) +{ + tb.ninput = 0; + tb.fpflag = 0; + + try { + ValueTokenizer values(line); + + while (values.has_next()) { + std::string word = values.next_string(); + + if (word == "N") { + tb.ninput = values.next_int(); + } else if (word == "FP") { + tb.fpflag = 1; + tb.fplo = values.next_double(); + tb.fphi = values.next_double(); + } else { + error->one(FLERR, "Invalid keyword {} in fix {} table parameters", word, style); + } + } + } catch (TokenizerException &e) { + error->one(FLERR, e.what()); + } + + if (tb.ninput == 0) error->one(FLERR, "Fix {} parameters did not set N", style); +} + +/* ---------------------------------------------------------------------- + broadcast read-in table info from proc 0 to other procs + this function communicates these values in Table: + ninput,rfile,efile,ffile,fpflag,fplo,fphi +------------------------------------------------------------------------- */ + +void FixWallTable::bcast_table(Table &tb) +{ + MPI_Bcast(&tb.ninput, 1, MPI_INT, 0, world); + + if (comm->me > 0) { + memory->create(tb.rfile, tb.ninput, "wall:rfile"); + memory->create(tb.efile, tb.ninput, "wall:efile"); + memory->create(tb.ffile, tb.ninput, "wall:ffile"); + } + + MPI_Bcast(tb.rfile, tb.ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb.efile, tb.ninput, MPI_DOUBLE, 0, world); + MPI_Bcast(tb.ffile, tb.ninput, MPI_DOUBLE, 0, world); + + MPI_Bcast(&tb.fpflag, 1, MPI_INT, 0, world); + if (tb.fpflag) { + MPI_Bcast(&tb.fplo, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&tb.fphi, 1, MPI_DOUBLE, 0, world); + } +} + +/* ---------------------------------------------------------------------- + spline and splint routines modified from Numerical Recipes +------------------------------------------------------------------------- */ + +void FixWallTable::spline(double *x, double *y, int n, double yp1, double ypn, double *y2) +{ + int i, k; + double p, qn, sig, un; + auto u = new double[n]; + + if (yp1 > BIGNUM) + y2[0] = u[0] = 0.0; + else { + y2[0] = -0.5; + u[0] = (3.0 / (x[1] - x[0])) * ((y[1] - y[0]) / (x[1] - x[0]) - yp1); + } + for (i = 1; i < n - 1; i++) { + sig = (x[i] - x[i - 1]) / (x[i + 1] - x[i - 1]); + p = sig * y2[i - 1] + 2.0; + y2[i] = (sig - 1.0) / p; + u[i] = (y[i + 1] - y[i]) / (x[i + 1] - x[i]) - (y[i] - y[i - 1]) / (x[i] - x[i - 1]); + u[i] = (6.0 * u[i] / (x[i + 1] - x[i - 1]) - sig * u[i - 1]) / p; + } + if (ypn > BIGNUM) + qn = un = 0.0; + else { + qn = 0.5; + un = (3.0 / (x[n - 1] - x[n - 2])) * (ypn - (y[n - 1] - y[n - 2]) / (x[n - 1] - x[n - 2])); + } + y2[n - 1] = (un - qn * u[n - 2]) / (qn * y2[n - 2] + 1.0); + for (k = n - 2; k >= 0; k--) y2[k] = y2[k] * y2[k + 1] + u[k]; + + delete[] u; +} + +/* ---------------------------------------------------------------------- */ + +double FixWallTable::splint(double *xa, double *ya, double *y2a, int n, double x) +{ + int klo, khi, k; + double h, b, a, y; + + klo = 0; + khi = n - 1; + while (khi - klo > 1) { + k = (khi + klo) >> 1; + if (xa[k] > x) + khi = k; + else + klo = k; + } + h = xa[khi] - xa[klo]; + a = (xa[khi] - x) / h; + b = (x - xa[klo]) / h; + y = a * ya[klo] + b * ya[khi] + + ((a * a * a - a) * y2a[klo] + (b * b * b - b) * y2a[khi]) * (h * h) / 6.0; + return y; +} + +/* ---------------------------------------------------------------------- + calculate potential u and force f at distance x + ensure x is between wall min/max, exit with error if not +------------------------------------------------------------------------- */ + +void FixWallTable::uf_lookup(int m, double x, double &u, double &f) +{ + double fraction, a, b; + const Table &tb = tables[m]; + const int itable = static_cast((x - tb.lo) * tb.invdelta); + if (itable < 0) + error->one(FLERR, "Particle / wall distance < table inner cutoff: {:.8}", x); + else if (itable >= tablength) + error->one(FLERR, "Particle / wall distance > table outer cutoff: {:.8}", x); + + if (tabstyle == LINEAR) { + fraction = (x - tb.r[itable]) * tb.invdelta; + u = tb.e[itable] + fraction * tb.de[itable]; + f = tb.f[itable] + fraction * tb.df[itable]; + } else if (tabstyle == SPLINE) { + fraction = (x - tb.r[itable]) * tb.invdelta; + + b = (x - tb.r[itable]) * tb.invdelta; + a = 1.0 - b; + u = a * tb.e[itable] + b * tb.e[itable + 1] + + ((a * a * a - a) * tb.e2[itable] + (b * b * b - b) * tb.e2[itable + 1]) * tb.deltasq6; + f = a * tb.f[itable] + b * tb.f[itable + 1] + + ((a * a * a - a) * tb.f2[itable] + (b * b * b - b) * tb.f2[itable + 1]) * tb.deltasq6; + } +} diff --git a/src/fix_wall_table.h b/src/fix_wall_table.h new file mode 100644 index 0000000000..368c2e3cd1 --- /dev/null +++ b/src/fix_wall_table.h @@ -0,0 +1,67 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + 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. +------------------------------------------------------------------------- */ + +#ifdef FIX_CLASS +// clang-format off +FixStyle(wall/table,FixWallTable); +// clang-format on +#else + +#ifndef LMP_FIX_WALL_TABLE_H +#define LMP_FIX_WALL_TABLE_H + +#include "fix_wall.h" + +namespace LAMMPS_NS { + +class FixWallTable : public FixWall { + public: + FixWallTable(class LAMMPS *, int, char **); + ~FixWallTable() override; + + void post_constructor() override; + void precompute(int) override; + void wall_particle(int, int, double) override; + + protected: + double offset[6]; + + int tabstyle, tablength; + struct Table { + int ninput, fpflag; + double fplo, fphi; + double lo, hi; + double *rfile, *efile, *ffile; + double *e2file, *f2file; + double delta, invdelta, deltasq6; + double *r, *e, *de, *f, *df, *e2, *f2; + }; + Table *tables; + + void null_table(Table &); + void free_table(Table &); + void read_table(Table &, const std::string &, const std::string &); + void bcast_table(Table &); + void spline_table(Table &); + void compute_table(Table &); + + void param_extract(Table &, char *); + void spline(double *, double *, int, double, double, double *); + double splint(double *, double *, double *, int, double); + void uf_lookup(int, double, double &, double &); +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/tools/tabulate/README.md b/tools/tabulate/README.md index fb23e260a1..6f63d03a80 100644 --- a/tools/tabulate/README.md +++ b/tools/tabulate/README.md @@ -6,13 +6,14 @@ table, and angle style table To create tables, you need to define your energy and - optionally - force functions and then an instance of either the PairTabulate(), -BondTabulate(), AngleTabulate(), or DihedralTabulate() class from the -tabulate module and call its run() method to generate the table. Most -of the settings (number of points, minimum, maximum etc.) are provided -as command line flags. The run() method may be called multiple times to -generate multiple tables, for instance after changing parameters of the -energy/force functions. If the force function is not provided, the -force will be determined through numerical differentiation. +BondTabulate(), AngleTabulate(), DihedralTabulate(), or WallTabulate() +class from the tabulate module and call its run() method to generate the +table. Most of the settings (number of points, minimum, maximum etc.) +are provided as command line flags. The run() method may be called +multiple times to generate multiple tables, for instance after changing +parameters of the energy/force functions. If the force function is not +provided, the force will be determined from the energy function through +numerical differentiation. Please see the individual tabulation scripts in this folder for examples: @@ -24,7 +25,8 @@ Please see the individual tabulation scripts in this folder for examples: | angle_harmonic_tabulate.py | creates a table for a harmonic angle potential table | | dihedral_harmonic_tabulate.py | creates a table for a harmonic dihedral potential table | | pair_hybrid_tabulate.py | creates a Morse/Lennard-Jones hybrid potential table with smooth switching | -| pair_zbladd_tabulate.py | creates a table for hybrid/overlay to use ZBL repulsion with an EAM potential | +| wall_harmonic_tabulate.py | creates a table for fix wall/table with a simple repulsive harmonic potential | +| wall_multi_tabulate.py | creates a table for fix wall/table with multiple tables | | ------------------------------|-------------------------------------------------------------------------------| Common command line flags: diff --git a/tools/tabulate/tabulate.py b/tools/tabulate/tabulate.py index 3bba7c2ecf..c3cb3a256f 100755 --- a/tools/tabulate/tabulate.py +++ b/tools/tabulate/tabulate.py @@ -279,6 +279,53 @@ class DihedralTabulate(Tabulate): if self.args.filename != '-': self.fp.close() +################################################################################ +# create tabulation for fix wall/table +class WallTabulate(Tabulate): + def __init__(self, efunc, ffunc=None, units=None, comment=None): + super(WallTabulate, self).__init__('wall', efunc, ffunc, units, comment) + self.parser.add_argument('--eshift', '-e', dest='eshift', default=False, + action='store_true', + help="Shift potential energy to be zero at outer cutoff") + idx = [a.dest for a in self.parser._actions].index('xmin') + self.parser._actions[idx].required=False + self.parser._actions[idx].default=0.0 + try: + self.args = self.parser.parse_args() + except argparse.ArgumentError: + sys.exit() + + def run(self, label): + # sanity checks + if self.args.num < 2: + self.helpexit('Expect 2 or more points in table for tabulation') + if self.args.xmin < 0.0: + self.helpexit('Inner cutoff must not be negative') + + self.diff = self.args.diff + if not self.forcefunc: + self.diff = True + + table, xzero = mktable(self.tstyle, label, self.args.num, self.args.xmin, self.args.xmax, + self.energyfunc, self.args.diff, self.forcefunc) + print("# Minimum energy of tabulated potential is at %g" % xzero) + offset = 0.0 + if self.args.eshift: + offset=self.energyfunc(self.args.xmax) + + self.openfile(label) + + if self.forcefunc: + diffmin = -numdiff(self.args.xmin, self.forcefunc) + diffmax = -numdiff(self.args.xmax, self.forcefunc) + self.fp.write("N %d FP %- 22.15g %- 22.15g\n\n" % (self.args.num, diffmin, diffmax)) + else: + self.fp.write("N %d\n\n" % (self.args.num)) + + self.writetable(table, offset) + if self.args.filename != '-': + self.fp.close() + ################################################################################ if __name__ == "__main__": sys.exit("The tabulate module is not meant to be executed directly") diff --git a/tools/tabulate/wall_harmonic_tabulate.py b/tools/tabulate/wall_harmonic_tabulate.py new file mode 100755 index 0000000000..9424856dbf --- /dev/null +++ b/tools/tabulate/wall_harmonic_tabulate.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python + +from tabulate import WallTabulate + +################################################################################ +import math + +k = 100.0 +rzero = 4.0 + +def harmonic_force(r): + dr = r - rzero + f = -2.0 * k * dr + return f + +def harmonic_energy(r): + dr = r - rzero + f = k * dr * dr + return f + +################################################################################ + +if __name__ == "__main__": + wtable = WallTabulate(harmonic_energy, harmonic_force, units='real') + wtable.run('HARMONIC') diff --git a/tools/tabulate/wall_multi_tabulate.py b/tools/tabulate/wall_multi_tabulate.py new file mode 100755 index 0000000000..576889cf75 --- /dev/null +++ b/tools/tabulate/wall_multi_tabulate.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +from tabulate import WallTabulate +import os, sys +################################################################################ +import math + +k = 100.0 +rzero = 4.0 +epsilon = 0.02 +sigma = 2.0 +depth = 20.0 +width = 2.0 +r0 = 1.2 + +def harmonic_force(r): + dr = r - rzero + f = -2.0 * k * dr + return f + +def harmonic_energy(r): + dr = r - rzero + f = k * dr * dr + return f + +def lj126_force(r): + f = -4.0*epsilon*(-12.0*math.pow(sigma/r,12.0)/r + 6.0*math.pow(sigma/r,6.0)/r) + return f + +def lj126_energy(r): + f = 4.0*epsilon*(math.pow(sigma/r,12.0) - math.pow(sigma/r,6.0)) + return f + +def morse_energy(r): + ralpha = math.exp(-width*(r-r0)) + f = depth * (-1.0 + (1.0 - ralpha) * (1.0 - ralpha)) + return f + +def morse_force(r): + ralpha = math.exp(-width*(r-r0)) + f = -2.0 * depth * width * (1.0 -ralpha) * ralpha + return f + + +################################################################################ + +if __name__ == "__main__": + fname = 'walltab.dat' + if os.path.exists(fname): + os.remove(fname) + sys.argv.append('--filename') + sys.argv.append(fname) + sys.argv.append('--num-points') + sys.argv.append('400') + sys.argv.append('--inner') + sys.argv.append('0.01') + sys.argv.append('--outer') + sys.argv.append('4.0') + wtable = WallTabulate(harmonic_energy, harmonic_force, units='real') + wtable.run('HARMONIC') + wtable = WallTabulate(lj126_energy, lj126_force, units='real') + wtable.run('LJ126') + wtable = WallTabulate(morse_energy, morse_force, units='real') + wtable.run('MORSE') diff --git a/unittest/force-styles/tests/fix-timestep-wall_lepton_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_lepton_const.yaml new file mode 100644 index 0000000000..947bc6a95a --- /dev/null +++ b/unittest/force-styles/tests/fix-timestep-wall_lepton_const.yaml @@ -0,0 +1,82 @@ +--- +lammps_version: 8 Feb 2023 +date_generated: Thu Feb 23 00:40:51 2023 +epsilon: 4e-14 +skip_tests: +prerequisites: ! | + atom full + fix wall/lepton +pre_commands: ! | + boundary p f p +post_commands: ! | + fix move all nve + fix test solute wall/lepton ylo EDGE "k*(r-rc)^2;k=100.0" 5.0 yhi EDGE "k*(r-rc)^2;k=100.0" 5.0 + fix_modify test virial yes +input_file: in.fourmol +natoms: 29 +run_stress: ! |2- + 0.0000000000000000e+00 -7.2422093200265749e+02 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 +global_scalar: 42.69977443532441 +global_vector: ! |- + 2 0 -161.92409617466126 +run_pos: ! |2 + 1 -2.7051715090682593e-01 2.4891718422041942e+00 -1.6687343912524535e-01 + 2 3.1037661579862175e-01 2.9347166386691113e+00 -8.5496435221221156e-01 + 3 -7.0402515865264603e-01 1.2304739304383521e+00 -6.2777422080240730e-01 + 4 -1.5818156002522876e+00 1.4837443919066966e+00 -1.2538703954644463e+00 + 5 -9.0719963033698159e-01 9.2651871779341399e-01 3.9954137559444142e-01 + 6 2.4831695467823400e-01 2.8312974957866005e-01 -1.2314232372542311e+00 + 7 3.4143527599853957e-01 -2.2646552136496162e-02 -2.5292291409504188e+00 + 8 1.1743552256787158e+00 -4.8863229191571117e-01 -6.3783432834416876e-01 + 9 1.3800524227031346e+00 -2.5274721005121037e-01 2.8353985882456578e-01 + 10 2.0510765220197009e+00 -1.4604063740411815e+00 -9.8323745080488900e-01 + 11 1.7878031944407509e+00 -1.9921863272886073e+00 -1.8890602447598965e+00 + 12 3.0063007038317027e+00 -4.9013350489718083e-01 -1.6231898106978369e+00 + 13 4.0515402959160571e+00 -8.9202011606485665e-01 -1.6400005529914481e+00 + 14 2.6066963345462244e+00 -4.1789253964874307e-01 -2.6634003608727506e+00 + 15 2.9695287185264685e+00 5.5422613167055734e-01 -1.2342022021669503e+00 + 16 2.6747029695037297e+00 -2.4124119054292041e+00 -2.3435746152831470e-02 + 17 2.2153577785010934e+00 -2.0897985186506944e+00 1.1963150794337314e+00 + 18 2.1369701704267587e+00 3.0158507413153752e+00 -3.5179348337454122e+00 + 19 1.5355837136075348e+00 2.6255292355297897e+00 -4.2353987779858038e+00 + 20 2.7727573003201997e+00 3.6923910440705336e+00 -3.9330842459619779e+00 + 21 4.9040128073837339e+00 -4.0752348170758461e+00 -3.6210314709795299e+00 + 22 4.3582355554510048e+00 -4.2126119427061379e+00 -4.4612844196307497e+00 + 23 5.7439382849366911e+00 -3.5821957939240279e+00 -3.8766361295959513e+00 + 24 2.0689243582618388e+00 3.1513346906720905e+00 3.1550389755134005e+00 + 25 1.3045351331892774e+00 3.2665125705550957e+00 2.5111855258151388e+00 + 26 2.5809237402747862e+00 4.0117602605470681e+00 3.2212060529139430e+00 + 27 -1.9611343130344261e+00 -4.3563411931314180e+00 2.1098293115505782e+00 + 28 -2.7473562684511403e+00 -4.0200819932374339e+00 1.5830052163432258e+00 + 29 -1.3126000191357743e+00 -3.5962518039473323e+00 2.2746342468733483e+00 +run_vel: ! |2 + 1 8.0432349631399738e-03 1.4401841389211066e-02 4.9594370365888983e-03 + 2 6.1330361195047721e-03 -2.0880295268721639e-02 -2.0467529305087918e-03 + 3 -8.3074380171099371e-03 -1.3074180712034015e-02 -4.0925567431707903e-03 + 4 -3.7694367867060264e-03 -6.5650784618522711e-03 -1.1170951231990144e-03 + 5 -1.1026343955717478e-02 -9.8958287307442973e-03 -2.8423479505575396e-03 + 6 -3.9677127674597606e-02 4.6816039080495052e-02 3.7148638820894170e-02 + 7 9.1033730239907995e-04 -1.0128528243740664e-02 -5.1568250829251872e-02 + 8 7.9064772413549398e-03 -3.3507427942055241e-03 3.4557101116794005e-02 + 9 1.5644169779778431e-03 3.7365552198096001e-03 1.5047408727814703e-02 + 10 2.9201446825927662e-02 -2.9249578944835361e-02 -1.5018077412006624e-02 + 11 -4.7835961594766378e-03 -3.7481385002840358e-03 -2.3464104088049835e-03 + 12 2.2696449755579846e-03 -3.4774139663753189e-04 -3.0640769495163746e-03 + 13 2.7531740375147718e-03 5.8171061651960147e-03 -7.9467453772151639e-04 + 14 3.5246182201851889e-03 -5.7939995452846414e-03 -3.9478431035191398e-03 + 15 -1.8547944555517633e-03 -5.8554729566882438e-03 6.2938485388423842e-03 + 16 1.8681499934669346e-02 -1.3262466149576239e-02 -4.5638651461858082e-02 + 17 -1.2896270037715950e-02 9.7527666092669853e-03 3.7296535331498307e-02 + 18 -8.0065791408039360e-04 -8.6270482947906296e-04 -1.4483041230016354e-03 + 19 1.2452390812060241e-03 -2.5061097279531195e-03 7.2998631045687393e-03 + 20 3.5930057934746205e-03 3.6938851526077724e-03 3.2322732077980833e-03 + 21 -1.4689219756964980e-03 -2.7352107824530941e-04 7.0581625180909957e-04 + 22 -7.0694199165145339e-03 -4.2577148692717511e-03 2.8079117911325202e-04 + 23 6.0446963236685169e-03 -1.4000131545098867e-03 2.5819754799379759e-03 + 24 3.1926371811980193e-04 -9.9445676110986579e-04 1.5000003249577114e-04 + 25 1.3789762510431792e-04 -4.4335895501596235e-03 -8.1808122106664959e-04 + 26 2.0485904106950169e-03 2.7813358601316649e-03 4.3245727251785661e-03 + 27 4.5604120562021738e-04 -1.0305522931717997e-03 2.1188058006115548e-04 + 28 -6.2544520854975905e-03 1.4127711193315927e-03 -1.8429821890767147e-03 + 29 6.4110631581209827e-04 3.1273432740202478e-03 3.7253671096581838e-03 +... diff --git a/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml index 89290d9d7d..391070609f 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 17 Feb 2022 -date_generated: Fri Mar 18 22:18:01 2022 +lammps_version: 8 Feb 2023 +date_generated: Thu Feb 23 15:26:55 2023 epsilon: 4e-14 skip_tests: prerequisites: ! | @@ -15,68 +15,68 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |2- - 0.0000000000000000e+00 -1.6447328969000660e+03 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 -global_scalar: -715.4154062573953 + 0.0000000000000000e+00 -7.4088044731917480e+03 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 +global_scalar: -860.4604684981359 global_vector: ! |- - 2 0 -362.76807567062644 + 2 0 -1661.6917920590186 run_pos: ! |2 - 1 -2.7045893790409276e-01 2.5008322800634093e+00 -1.6714018607090519e-01 - 2 3.0963184116147618e-01 3.0014595399936281e+00 -8.5430140686816214e-01 - 3 -7.0384894984747937e-01 1.2309015375308219e+00 -6.2768436035697617e-01 - 4 -1.5818176791640250e+00 1.4837231080448017e+00 -1.2538740983093204e+00 - 5 -9.0718849446796412e-01 9.2653164987898939e-01 3.9954632131545287e-01 - 6 2.4831839235845354e-01 2.8313265654301789e-01 -1.2314236357880461e+00 - 7 3.4143526822589915e-01 -2.2646538152574006e-02 -2.5292291434660381e+00 - 8 1.1743552107695057e+00 -4.8863225989226533e-01 -6.3783434531274807e-01 - 9 1.3800524241606595e+00 -2.5274721157120961e-01 2.8353985893838241e-01 - 10 2.0510765222277745e+00 -1.4604063739388657e+00 -9.8323745091734549e-01 - 11 1.7878031944633563e+00 -1.9921863273237430e+00 -1.8890602447741953e+00 - 12 3.0063007043413612e+00 -4.9013350523119031e-01 -1.6231898109107055e+00 - 13 4.0515402959324174e+00 -8.9202011607291531e-01 -1.6400005529969197e+00 - 14 2.6066963345867493e+00 -4.1789253967796969e-01 -2.6634003609064330e+00 - 15 2.9695287187403183e+00 5.5422613159536682e-01 -1.2342022022307726e+00 - 16 2.6747029696074671e+00 -2.4124119055741526e+00 -2.3435746141560052e-02 - 17 2.2153577786599099e+00 -2.0897985188852957e+00 1.1963150795174466e+00 - 18 2.1369701703250228e+00 3.0158507415756075e+00 -3.5179348336071414e+00 - 19 1.5355837136078994e+00 2.6255292355588757e+00 -4.2353987779851296e+00 - 20 2.7727573003071933e+00 3.6923910440783931e+00 -3.9330842459453148e+00 - 21 4.9040128073837348e+00 -4.0752348170758461e+00 -3.6210314709795308e+00 - 22 4.3582355554510048e+00 -4.2126119427061379e+00 -4.4612844196307497e+00 + 1 -2.7052284503817647e-01 2.5377015779332015e+00 -1.6774875378942034e-01 + 2 3.0838020114212900e-01 3.1365125714942814e+00 -8.5319486865475569e-01 + 3 -7.0337031356085378e-01 1.2321701278769190e+00 -6.2734420450713768e-01 + 4 -1.5818244447736622e+00 1.4836560550089251e+00 -1.2538854411390039e+00 + 5 -9.0715422690957381e-01 9.2657174436972001e-01 3.9956243697054195e-01 + 6 2.4832286843402734e-01 2.8314189926636496e-01 -1.2314248449469583e+00 + 7 3.4143523635211903e-01 -2.2646489955513913e-02 -2.5292291519080385e+00 + 8 1.1743551641371968e+00 -4.8863216431954298e-01 -6.3783440815706915e-01 + 9 1.3800524287137592e+00 -2.5274721633920649e-01 2.8353985915157709e-01 + 10 2.0510765228876604e+00 -1.4604063735798947e+00 -9.8323745129680751e-01 + 11 1.7878031945360704e+00 -1.9921863274327181e+00 -1.8890602448178007e+00 + 12 3.0063007058665141e+00 -4.9013350620738022e-01 -1.6231898115581911e+00 + 13 4.0515402959817353e+00 -8.9202011609685838e-01 -1.6400005530136157e+00 + 14 2.6066963347079004e+00 -4.1789253976309604e-01 -2.6634003610076054e+00 + 15 2.9695287193709681e+00 5.5422613138408361e-01 -1.2342022024260366e+00 + 16 2.6747029699261105e+00 -2.4124119060177067e+00 -2.3435746107727345e-02 + 17 2.2153577791583658e+00 -2.0897985196245372e+00 1.1963150797810624e+00 + 18 2.1369701700141044e+00 3.0158507424085670e+00 -3.5179348331855556e+00 + 19 1.5355837136077577e+00 2.6255292356409377e+00 -4.2353987779789071e+00 + 20 2.7727573002707873e+00 3.6923910441005812e+00 -3.9330842458985629e+00 + 21 4.9040128073837366e+00 -4.0752348170758461e+00 -3.6210314709795313e+00 + 22 4.3582355554510057e+00 -4.2126119427061379e+00 -4.4612844196307497e+00 23 5.7439382849366911e+00 -3.5821957939240279e+00 -3.8766361295959513e+00 - 24 2.0689243581498653e+00 3.1513346909599651e+00 3.1550389753492256e+00 - 25 1.3045351329547377e+00 3.2665125707112610e+00 2.5111855254067215e+00 - 26 2.5809237402542604e+00 4.0117602605530056e+00 3.2212060528871826e+00 - 27 -1.9611343130419832e+00 -4.3563411931577498e+00 2.1098293115609912e+00 - 28 -2.7473562684536628e+00 -4.0200819932434282e+00 1.5830052163452875e+00 - 29 -1.3126000191369560e+00 -3.5962518039526832e+00 2.2746342468757565e+00 + 24 2.0689243578022922e+00 3.1513346918494771e+00 3.1550389748497025e+00 + 25 1.3045351322134413e+00 3.2665125712054777e+00 2.5111855241267289e+00 + 26 2.5809237401898266e+00 4.0117602605713625e+00 3.2212060528040980e+00 + 27 -1.9611343130657364e+00 -4.3563411932404206e+00 2.1098293115936815e+00 + 28 -2.7473562684585944e+00 -4.0200819932554426e+00 1.5830052163493729e+00 + 29 -1.3126000191406215e+00 -3.5962518039692939e+00 2.2746342468831999e+00 run_vel: ! |2 - 1 8.1789148947012790e-03 2.6011139448739451e-02 4.4419168461127482e-03 - 2 4.6260716342741079e-03 4.5085766258259774e-02 -7.0825186386967308e-04 - 3 -7.9721954985889319e-03 -1.2268783977531032e-02 -3.9361845956729386e-03 - 4 -3.7725559552080636e-03 -6.6074130975376346e-03 -1.1239964478779332e-03 - 5 -1.1002605235858455e-02 -9.8680015994752728e-03 -2.8327888280266942e-03 - 6 -3.9674547907414821e-02 4.6822592792817204e-02 3.7148318739351066e-02 - 7 9.1031746047128470e-04 -1.0128481892033168e-02 -5.1568253048218646e-02 - 8 7.9064457287878788e-03 -3.3506582863990068e-03 3.4557045247921400e-02 - 9 1.5644208034781776e-03 3.7365512668284797e-03 1.5047408581112285e-02 - 10 2.9201446942760539e-02 -2.9249577856792598e-02 -1.5018077696249433e-02 - 11 -4.7835960986765723e-03 -3.7481385797508478e-03 -2.3464104367979396e-03 - 12 2.2696460154049596e-03 -3.4774207770823769e-04 -3.0640773817331617e-03 - 13 2.7531740760828424e-03 5.8171061464595821e-03 -7.9467455065097717e-04 - 14 3.5246183046552903e-03 -5.7939996060507011e-03 -3.9478431727489067e-03 - 15 -1.8547940192371359e-03 -5.8554731130000919e-03 6.2938484079631211e-03 - 16 1.8681500141579217e-02 -1.3262466439236464e-02 -4.5638651434422119e-02 - 17 -1.2896269711984213e-02 9.7527661294105131e-03 3.7296535503389051e-02 - 18 -8.0065813058176056e-04 -8.6270429918499042e-04 -1.4483038312432231e-03 - 19 1.2452390823893668e-03 -2.5061096678311726e-03 7.2998631081901150e-03 - 20 3.5930057672106052e-03 3.6938851692874418e-03 3.2322732421069351e-03 - 21 -1.4689219756942099e-03 -2.7352107824552571e-04 7.0581625180796419e-04 - 22 -7.0694199165143787e-03 -4.2577148692717762e-03 2.8079117911313845e-04 - 23 6.0446963236686149e-03 -1.4000131545098178e-03 2.5819754799379282e-03 - 24 3.1926349353317952e-04 -9.9445617038915342e-04 1.4999970019575790e-04 - 25 1.3789715718110098e-04 -4.4335892217948255e-03 -8.1808204442383866e-04 - 26 2.0485903705729164e-03 2.7813358762743667e-03 4.3245726703719217e-03 - 27 4.5604119012943235e-04 -1.0305523473710114e-03 2.1188060159221209e-04 - 28 -6.2544520902254328e-03 1.4127711077263102e-03 -1.8429821850450522e-03 - 29 6.4110631319827462e-04 3.1273432626741622e-03 3.7253671146110553e-03 + 1 8.1150399525879938e-03 6.2469278935841172e-02 3.3151656604757515e-03 + 2 2.1567380411534119e-03 1.7915358216757693e-01 1.4693442192945936e-03 + 3 -7.1017845324814833e-03 -9.9511431531007291e-03 -3.3513817570289613e-03 + 4 -3.7830796561061893e-03 -6.7399523607674736e-03 -1.1446225458905915e-03 + 5 -1.0930964471138178e-02 -9.7830218971492900e-03 -2.8011654927760140e-03 + 6 -3.9666631417159662e-02 4.6843374202377414e-02 3.7147439358181544e-02 + 7 9.1023281310935661e-04 -1.0128325648562678e-02 -5.1568260731589974e-02 + 8 7.9063456532381289e-03 -3.3504119308433618e-03 3.4556841455369552e-02 + 9 1.5644327139035345e-03 3.7365387627339643e-03 1.5047407499366916e-02 + 10 2.9201447428873879e-02 -2.9249574477797566e-02 -1.5018078715987209e-02 + 11 -4.7835958975253005e-03 -3.7481388302490464e-03 -2.3464105205019963e-03 + 12 2.2696491096390347e-03 -3.4774406295422266e-04 -3.0640786872695716e-03 + 13 2.7531741917975823e-03 5.8171060908898987e-03 -7.9467458985718424e-04 + 14 3.5246185557631796e-03 -5.7939997826183271e-03 -3.9478433795418670e-03 + 15 -1.8547927399342281e-03 -5.8554735533316513e-03 6.2938480095073527e-03 + 16 1.8681500769926061e-02 -1.3262467318026393e-02 -4.5638651349980318e-02 + 17 -1.2896268698689695e-02 9.7527646273574461e-03 3.7296536040864851e-02 + 18 -8.0065877706055109e-04 -8.6270259764277839e-04 -1.4483029635571510e-03 + 19 1.2452390851199488e-03 -2.5061094984920639e-03 7.2998631241499162e-03 + 20 3.5930056948307956e-03 3.6938852174526323e-03 3.2322733371807980e-03 + 21 -1.4689219756868180e-03 -2.7352107824634250e-04 7.0581625180429135e-04 + 22 -7.0694199165138548e-03 -4.2577148692718603e-03 2.8079117911282870e-04 + 23 6.0446963236688717e-03 -1.4000131545096391e-03 2.5819754799378150e-03 + 24 3.1926280192234435e-04 -9.9445434351455022e-04 1.4999870519578711e-04 + 25 1.3789568252928821e-04 -4.4335881727435517e-03 -8.1808460956663540e-04 + 26 2.0485902447450752e-03 2.7813359267364313e-03 4.3245725007170490e-03 + 27 4.5604114182182037e-04 -1.0305525160278991e-03 2.1188066858079724e-04 + 28 -6.2544520979275183e-03 1.4127710874880792e-03 -1.8429821780491747e-03 + 29 6.4110630514945563e-04 3.1273432277213126e-03 3.7253671297833627e-03 ... diff --git a/unittest/force-styles/tests/fix-timestep-wall_table_linear.yaml b/unittest/force-styles/tests/fix-timestep-wall_table_linear.yaml new file mode 100644 index 0000000000..6291de136a --- /dev/null +++ b/unittest/force-styles/tests/fix-timestep-wall_table_linear.yaml @@ -0,0 +1,82 @@ +--- +lammps_version: 8 Feb 2023 +date_generated: Thu Feb 23 00:56:30 2023 +epsilon: 4e-14 +skip_tests: +prerequisites: ! | + atom full + fix wall/table +pre_commands: ! | + boundary p f p +post_commands: ! | + fix move all nve + fix test solute wall/table linear 2000 ylo EDGE ${input_dir}/wall.table HARMONIC 4.0 yhi EDGE ${input_dir}/wall.table HARMONIC 4.0 + fix_modify test virial yes +input_file: in.fourmol +natoms: 29 +run_stress: ! |2- + 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 +global_scalar: 0 +global_vector: ! |- + 2 0 0 +run_pos: ! |2 + 1 -2.7045559775384032e-01 2.4912159905679729e+00 -1.6695851791541888e-01 + 2 3.1004029573899528e-01 2.9612354631094391e+00 -8.5466363037021464e-01 + 3 -7.0398551400789477e-01 1.2305509955830618e+00 -6.2777526944456274e-01 + 4 -1.5818159336499285e+00 1.4837407818929933e+00 -1.2538710836062004e+00 + 5 -9.0719763672789266e-01 9.2652103885675297e-01 3.9954210488374786e-01 + 6 2.4831720524855985e-01 2.8313021497871271e-01 -1.2314233331711453e+00 + 7 3.4143527641386412e-01 -2.2646551041391422e-02 -2.5292291414903052e+00 + 8 1.1743552229100009e+00 -4.8863228565853950e-01 -6.3783432910825522e-01 + 9 1.3800524229500313e+00 -2.5274721030406683e-01 2.8353985887095157e-01 + 10 2.0510765220543883e+00 -1.4604063740302866e+00 -9.8323745081712954e-01 + 11 1.7878031944442556e+00 -1.9921863272948861e+00 -1.8890602447625777e+00 + 12 3.0063007039340053e+00 -4.9013350496963298e-01 -1.6231898107386231e+00 + 13 4.0515402959192999e+00 -8.9202011606653986e-01 -1.6400005529924957e+00 + 14 2.6066963345543819e+00 -4.1789253965514156e-01 -2.6634003608794394e+00 + 15 2.9695287185712913e+00 5.5422613165234025e-01 -1.2342022021790127e+00 + 16 2.6747029695228521e+00 -2.4124119054564295e+00 -2.3435746150616152e-02 + 17 2.2153577785283796e+00 -2.0897985186907717e+00 1.1963150794479436e+00 + 18 2.1369701704080528e+00 3.0158507413593689e+00 -3.5179348337197793e+00 + 19 1.5355837136080202e+00 2.6255292355367410e+00 -4.2353987779869007e+00 + 20 2.7727573003170809e+00 3.6923910440725227e+00 -3.9330842459580020e+00 + 21 4.9040128073837339e+00 -4.0752348170758461e+00 -3.6210314709795299e+00 + 22 4.3582355554510048e+00 -4.2126119427061379e+00 -4.4612844196307497e+00 + 23 5.7439382849366911e+00 -3.5821957939240279e+00 -3.8766361295959513e+00 + 24 2.0689243582422630e+00 3.1513346907271012e+00 3.1550389754828800e+00 + 25 1.3045351331492134e+00 3.2665125705842848e+00 2.5111855257433504e+00 + 26 2.5809237402711274e+00 4.0117602605482832e+00 3.2212060529089896e+00 + 27 -1.9611343130357228e+00 -4.3563411931359752e+00 2.1098293115523705e+00 + 28 -2.7473562684513411e+00 -4.0200819932379330e+00 1.5830052163433954e+00 + 29 -1.3126000191359855e+00 -3.5962518039482929e+00 2.2746342468737835e+00 +run_vel: ! |2 + 1 8.1705744183262381e-03 1.6516406176274288e-02 4.7902264318912917e-03 + 2 5.4501493445687802e-03 5.1791699408496412e-03 -1.4372931530376625e-03 + 3 -8.2298292722385660e-03 -1.2926551614621376e-02 -4.0984181178163838e-03 + 4 -3.7699042590093549e-03 -6.5722892098813894e-03 -1.1184640360133316e-03 + 5 -1.1021961004346581e-02 -9.8906780939336057e-03 -2.8410737829284403e-03 + 6 -3.9676663166400034e-02 4.6817061464710256e-02 3.7148491979476124e-02 + 7 9.1033953013898666e-04 -1.0128524411938794e-02 -5.1568251805019748e-02 + 8 7.9064712058855742e-03 -3.3507254552631780e-03 3.4557098492564629e-02 + 9 1.5644176117320923e-03 3.7365546102722164e-03 1.5047408822037646e-02 + 10 2.9201446820573192e-02 -2.9249578745486147e-02 -1.5018077424322544e-02 + 11 -4.7835961513517542e-03 -3.7481385134185211e-03 -2.3464104142290089e-03 + 12 2.2696451841920681e-03 -3.4774154398130373e-04 -3.0640770327796979e-03 + 13 2.7531740451953164e-03 5.8171061612840502e-03 -7.9467454022160680e-04 + 14 3.5246182371994213e-03 -5.7939995585585529e-03 -3.9478431172751361e-03 + 15 -1.8547943640122950e-03 -5.8554729942777795e-03 6.2938485140538675e-03 + 16 1.8681499973445252e-02 -1.3262466204585334e-02 -4.5638651457003250e-02 + 17 -1.2896269981100378e-02 9.7527665265956451e-03 3.7296535360836762e-02 + 18 -8.0065795562956103e-04 -8.6270473963802124e-04 -1.4483040662692239e-03 + 19 1.2452390821512348e-03 -2.5061097135903924e-03 7.2998631029991060e-03 + 20 3.5930057870507443e-03 3.6938851567332597e-03 3.2322732161078646e-03 + 21 -1.4689219756961610e-03 -2.7352107824530291e-04 7.0581625180892197e-04 + 22 -7.0694199165145105e-03 -4.2577148692717545e-03 2.8079117911323598e-04 + 23 6.0446963236685230e-03 -1.4000131545098772e-03 2.5819754799379716e-03 + 24 3.1926367902287880e-04 -9.9445664749276221e-04 1.4999996959365317e-04 + 25 1.3789754514814532e-04 -4.4335894884532673e-03 -8.1808136725080173e-04 + 26 2.0485904035217588e-03 2.7813358633835962e-03 4.3245727149206761e-03 + 27 4.5604120293369840e-04 -1.0305523026921111e-03 2.1188058381358413e-04 + 28 -6.2544520861855151e-03 1.4127711176146879e-03 -1.8429821884794260e-03 + 29 6.4110631534402174e-04 3.1273432719593824e-03 3.7253671105656736e-03 +... diff --git a/unittest/force-styles/tests/fix-timestep-wall_table_spline.yaml b/unittest/force-styles/tests/fix-timestep-wall_table_spline.yaml new file mode 100644 index 0000000000..6c6c674342 --- /dev/null +++ b/unittest/force-styles/tests/fix-timestep-wall_table_spline.yaml @@ -0,0 +1,82 @@ +--- +lammps_version: 8 Feb 2023 +date_generated: Thu Feb 23 00:56:30 2023 +epsilon: 4e-14 +skip_tests: +prerequisites: ! | + atom full + fix wall/table +pre_commands: ! | + boundary p f p +post_commands: ! | + fix move all nve + fix test solute wall/table spline 200 ylo EDGE ${input_dir}/wall.table HARMONIC 4.0 yhi EDGE ${input_dir}/wall.table HARMONIC 4.0 + fix_modify test virial yes +input_file: in.fourmol +natoms: 29 +run_stress: ! |2- + 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 +global_scalar: 0 +global_vector: ! |- + 2 0 0 +run_pos: ! |2 + 1 -2.7045559775384032e-01 2.4912159905679729e+00 -1.6695851791541888e-01 + 2 3.1004029573899528e-01 2.9612354631094391e+00 -8.5466363037021464e-01 + 3 -7.0398551400789477e-01 1.2305509955830618e+00 -6.2777526944456274e-01 + 4 -1.5818159336499285e+00 1.4837407818929933e+00 -1.2538710836062004e+00 + 5 -9.0719763672789266e-01 9.2652103885675297e-01 3.9954210488374786e-01 + 6 2.4831720524855985e-01 2.8313021497871271e-01 -1.2314233331711453e+00 + 7 3.4143527641386412e-01 -2.2646551041391422e-02 -2.5292291414903052e+00 + 8 1.1743552229100009e+00 -4.8863228565853950e-01 -6.3783432910825522e-01 + 9 1.3800524229500313e+00 -2.5274721030406683e-01 2.8353985887095157e-01 + 10 2.0510765220543883e+00 -1.4604063740302866e+00 -9.8323745081712954e-01 + 11 1.7878031944442556e+00 -1.9921863272948861e+00 -1.8890602447625777e+00 + 12 3.0063007039340053e+00 -4.9013350496963298e-01 -1.6231898107386231e+00 + 13 4.0515402959192999e+00 -8.9202011606653986e-01 -1.6400005529924957e+00 + 14 2.6066963345543819e+00 -4.1789253965514156e-01 -2.6634003608794394e+00 + 15 2.9695287185712913e+00 5.5422613165234025e-01 -1.2342022021790127e+00 + 16 2.6747029695228521e+00 -2.4124119054564295e+00 -2.3435746150616152e-02 + 17 2.2153577785283796e+00 -2.0897985186907717e+00 1.1963150794479436e+00 + 18 2.1369701704080528e+00 3.0158507413593689e+00 -3.5179348337197793e+00 + 19 1.5355837136080202e+00 2.6255292355367410e+00 -4.2353987779869007e+00 + 20 2.7727573003170809e+00 3.6923910440725227e+00 -3.9330842459580020e+00 + 21 4.9040128073837339e+00 -4.0752348170758461e+00 -3.6210314709795299e+00 + 22 4.3582355554510048e+00 -4.2126119427061379e+00 -4.4612844196307497e+00 + 23 5.7439382849366911e+00 -3.5821957939240279e+00 -3.8766361295959513e+00 + 24 2.0689243582422630e+00 3.1513346907271012e+00 3.1550389754828800e+00 + 25 1.3045351331492134e+00 3.2665125705842848e+00 2.5111855257433504e+00 + 26 2.5809237402711274e+00 4.0117602605482832e+00 3.2212060529089896e+00 + 27 -1.9611343130357228e+00 -4.3563411931359752e+00 2.1098293115523705e+00 + 28 -2.7473562684513411e+00 -4.0200819932379330e+00 1.5830052163433954e+00 + 29 -1.3126000191359855e+00 -3.5962518039482929e+00 2.2746342468737835e+00 +run_vel: ! |2 + 1 8.1705744183262381e-03 1.6516406176274288e-02 4.7902264318912917e-03 + 2 5.4501493445687802e-03 5.1791699408496412e-03 -1.4372931530376625e-03 + 3 -8.2298292722385660e-03 -1.2926551614621376e-02 -4.0984181178163838e-03 + 4 -3.7699042590093549e-03 -6.5722892098813894e-03 -1.1184640360133316e-03 + 5 -1.1021961004346581e-02 -9.8906780939336057e-03 -2.8410737829284403e-03 + 6 -3.9676663166400034e-02 4.6817061464710256e-02 3.7148491979476124e-02 + 7 9.1033953013898666e-04 -1.0128524411938794e-02 -5.1568251805019748e-02 + 8 7.9064712058855742e-03 -3.3507254552631780e-03 3.4557098492564629e-02 + 9 1.5644176117320923e-03 3.7365546102722164e-03 1.5047408822037646e-02 + 10 2.9201446820573192e-02 -2.9249578745486147e-02 -1.5018077424322544e-02 + 11 -4.7835961513517542e-03 -3.7481385134185211e-03 -2.3464104142290089e-03 + 12 2.2696451841920681e-03 -3.4774154398130373e-04 -3.0640770327796979e-03 + 13 2.7531740451953164e-03 5.8171061612840502e-03 -7.9467454022160680e-04 + 14 3.5246182371994213e-03 -5.7939995585585529e-03 -3.9478431172751361e-03 + 15 -1.8547943640122950e-03 -5.8554729942777795e-03 6.2938485140538675e-03 + 16 1.8681499973445252e-02 -1.3262466204585334e-02 -4.5638651457003250e-02 + 17 -1.2896269981100378e-02 9.7527665265956451e-03 3.7296535360836762e-02 + 18 -8.0065795562956103e-04 -8.6270473963802124e-04 -1.4483040662692239e-03 + 19 1.2452390821512348e-03 -2.5061097135903924e-03 7.2998631029991060e-03 + 20 3.5930057870507443e-03 3.6938851567332597e-03 3.2322732161078646e-03 + 21 -1.4689219756961610e-03 -2.7352107824530291e-04 7.0581625180892197e-04 + 22 -7.0694199165145105e-03 -4.2577148692717545e-03 2.8079117911323598e-04 + 23 6.0446963236685230e-03 -1.4000131545098772e-03 2.5819754799379716e-03 + 24 3.1926367902287880e-04 -9.9445664749276221e-04 1.4999996959365317e-04 + 25 1.3789754514814532e-04 -4.4335894884532673e-03 -8.1808136725080173e-04 + 26 2.0485904035217588e-03 2.7813358633835962e-03 4.3245727149206761e-03 + 27 4.5604120293369840e-04 -1.0305523026921111e-03 2.1188058381358413e-04 + 28 -6.2544520861855151e-03 1.4127711176146879e-03 -1.8429821884794260e-03 + 29 6.4110631534402174e-04 3.1273432719593824e-03 3.7253671105656736e-03 +... diff --git a/unittest/force-styles/tests/wall.table b/unittest/force-styles/tests/wall.table new file mode 100644 index 0000000000..5c2adedd39 --- /dev/null +++ b/unittest/force-styles/tests/wall.table @@ -0,0 +1,204 @@ +# DATE: 2023-02-23 UNITS: real +HARMONIC +N 200 FP 200.000000006796 200.000000002102 + + 1 0.02 1584.04 796 + 2 0.04 1568.16 792 + 3 0.06 1552.36 788 + 4 0.08 1536.64 784 + 5 0.1 1521 780 + 6 0.12 1505.44 776 + 7 0.14 1489.96 772 + 8 0.16 1474.56 768 + 9 0.18 1459.24 764 + 10 0.2 1444 760 + 11 0.22 1428.84 756 + 12 0.24 1413.76 752 + 13 0.26 1398.76 748 + 14 0.28 1383.84 744 + 15 0.3 1369 740 + 16 0.32 1354.24 736 + 17 0.34 1339.56 732 + 18 0.36 1324.96 728 + 19 0.38 1310.44 724 + 20 0.4 1296 720 + 21 0.42 1281.64 716 + 22 0.44 1267.36 712 + 23 0.46 1253.16 708 + 24 0.48 1239.04 704 + 25 0.5 1225 700 + 26 0.52 1211.04 696 + 27 0.54 1197.16 692 + 28 0.56 1183.36 688 + 29 0.58 1169.64 684 + 30 0.6 1156 680 + 31 0.62 1142.44 676 + 32 0.64 1128.96 672 + 33 0.66 1115.56 668 + 34 0.68 1102.24 664 + 35 0.7 1089 660 + 36 0.72 1075.84 656 + 37 0.74 1062.76 652 + 38 0.76 1049.76 648 + 39 0.78 1036.84 644 + 40 0.8 1024 640 + 41 0.82 1011.24 636 + 42 0.84 998.56 632 + 43 0.86 985.96 628 + 44 0.88 973.44 624 + 45 0.9 961 620 + 46 0.92 948.64 616 + 47 0.94 936.36 612 + 48 0.96 924.16 608 + 49 0.98 912.04 604 + 50 1 900 600 + 51 1.02 888.04 596 + 52 1.04 876.16 592 + 53 1.06 864.36 588 + 54 1.08 852.64 584 + 55 1.1 841 580 + 56 1.12 829.44 576 + 57 1.14 817.96 572 + 58 1.16 806.56 568 + 59 1.18 795.24 564 + 60 1.2 784 560 + 61 1.22 772.84 556 + 62 1.24 761.76 552 + 63 1.26 750.76 548 + 64 1.28 739.84 544 + 65 1.3 729 540 + 66 1.32 718.24 536 + 67 1.34 707.56 532 + 68 1.36 696.96 528 + 69 1.38 686.44 524 + 70 1.4 676 520 + 71 1.42 665.64 516 + 72 1.44 655.36 512 + 73 1.46 645.16 508 + 74 1.48 635.04 504 + 75 1.5 625 500 + 76 1.52 615.04 496 + 77 1.54 605.16 492 + 78 1.56 595.36 488 + 79 1.58 585.64 484 + 80 1.6 576 480 + 81 1.62 566.44 476 + 82 1.64 556.96 472 + 83 1.66 547.56 468 + 84 1.68 538.24 464 + 85 1.7 529 460 + 86 1.72 519.84 456 + 87 1.74 510.76 452 + 88 1.76 501.76 448 + 89 1.78 492.84 444 + 90 1.8 484 440 + 91 1.82 475.24 436 + 92 1.84 466.56 432 + 93 1.86 457.96 428 + 94 1.88 449.44 424 + 95 1.9 441 420 + 96 1.92 432.64 416 + 97 1.94 424.36 412 + 98 1.96 416.16 408 + 99 1.98 408.04 404 + 100 2 400 400 + 101 2.02 392.04 396 + 102 2.04 384.16 392 + 103 2.06 376.36 388 + 104 2.08 368.64 384 + 105 2.1 361 380 + 106 2.12 353.44 376 + 107 2.14 345.96 372 + 108 2.16 338.56 368 + 109 2.18 331.24 364 + 110 2.2 324 360 + 111 2.22 316.84 356 + 112 2.24 309.76 352 + 113 2.26 302.76 348 + 114 2.28 295.84 344 + 115 2.3 289 340 + 116 2.32 282.24 336 + 117 2.34 275.56 332 + 118 2.36 268.96 328 + 119 2.38 262.44 324 + 120 2.4 256 320 + 121 2.42 249.64 316 + 122 2.44 243.36 312 + 123 2.46 237.16 308 + 124 2.48 231.04 304 + 125 2.5 225 300 + 126 2.52 219.04 296 + 127 2.54 213.16 292 + 128 2.56 207.36 288 + 129 2.58 201.64 284 + 130 2.6 196 280 + 131 2.62 190.44 276 + 132 2.64 184.96 272 + 133 2.66 179.56 268 + 134 2.68 174.24 264 + 135 2.7 169 260 + 136 2.72 163.84 256 + 137 2.74 158.76 252 + 138 2.76 153.76 248 + 139 2.78 148.84 244 + 140 2.8 144 240 + 141 2.82 139.24 236 + 142 2.84 134.56 232 + 143 2.86 129.96 228 + 144 2.88 125.44 224 + 145 2.9 121 220 + 146 2.92 116.64 216 + 147 2.94 112.36 212 + 148 2.96 108.16 208 + 149 2.98 104.04 204 + 150 3 100 200 + 151 3.02 96.04 196 + 152 3.04 92.16 192 + 153 3.06 88.36 188 + 154 3.08 84.64 184 + 155 3.1 81 180 + 156 3.12 77.44 176 + 157 3.14 73.96 172 + 158 3.16 70.56 168 + 159 3.18 67.24 164 + 160 3.2 64 160 + 161 3.22 60.84 156 + 162 3.24 57.76 152 + 163 3.26 54.76 148 + 164 3.28 51.84 144 + 165 3.3 49 140 + 166 3.32 46.24 136 + 167 3.34 43.56 132 + 168 3.36 40.96 128 + 169 3.38 38.44 124 + 170 3.4 36 120 + 171 3.42 33.64 116 + 172 3.44 31.36 112 + 173 3.46 29.16 108 + 174 3.48 27.04 104 + 175 3.5 25 100 + 176 3.52 23.04 96 + 177 3.54 21.16 92 + 178 3.56 19.36 88 + 179 3.58 17.64 84 + 180 3.6 16 80 + 181 3.62 14.44 76 + 182 3.64 12.96 72 + 183 3.66 11.56 68 + 184 3.68 10.24 64 + 185 3.7 8.99999999999999 60 + 186 3.72 7.83999999999999 56 + 187 3.74 6.75999999999999 52 + 188 3.76 5.75999999999999 48 + 189 3.78 4.83999999999999 44 + 190 3.8 3.99999999999999 39.9999999999999 + 191 3.82 3.23999999999999 35.9999999999999 + 192 3.84 2.55999999999999 31.9999999999999 + 193 3.86 1.96 28 + 194 3.88 1.44 24 + 195 3.9 1 20 + 196 3.92 0.640000000000001 16 + 197 3.94 0.360000000000001 12 + 198 3.96 0.16 8.00000000000001 + 199 3.98 0.0400000000000001 4 + 200 4 0 -0