diff --git a/cmake/Modules/Packages/MBX.cmake b/cmake/Modules/Packages/MBX.cmake index 67332f056c6..ba586484d1b 100644 --- a/cmake/Modules/Packages/MBX.cmake +++ b/cmake/Modules/Packages/MBX.cmake @@ -6,8 +6,8 @@ if(POLICY CMP0135) cmake_policy(SET CMP0135 OLD) endif() -if(CMAKE_SYSTEM_NAME STREQUAL "Windows") - message(FATAL_ERROR "Compiling the MBX package for Windows is currently not supported") +if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND (NOT CMAKE_CROSSCOMPILING)) + message(FATAL_ERROR "Compiling the MBX package natively for Windows is currently not supported") endif() # for supporting multiple concurrent mbx installations for debugging and testing @@ -34,8 +34,8 @@ if(CONFIGURE_REQUEST_PIC) list(APPEND MBX_CONFIG_FLAGS ${CONFIGURE_REQUEST_PIC}) endif() -set(MBXLIB_URL "https://github.com/paesanilab/MBX/releases/download/v1.3.5/mbx-1.3.5.tar.gz" CACHE STRING "URL for MBX tarball") -set(MBXLIB_SHA256 "f66de645b28d73e52be69e6c857b7bd58b6dd0ee398030daecc5bf976bf28111" CACHE STRING "SHA256 checksum of MBX tarball") +set(MBXLIB_URL "https://github.com/paesanilab/MBX/releases/download/v1.3.12/mbx-1.3.12.tar.gz" CACHE STRING "URL for MBX tarball") +set(MBXLIB_SHA256 "0f3600d0841e1736abec3fe6a38c8ff673523fe4494169db2839ddaa9bb618bf" CACHE STRING "SHA256 checksum of MBX tarball") mark_as_advanced(MBXLIB_URL) mark_as_advanced(MBXLIB_SHA256) @@ -65,17 +65,38 @@ if(DOWNLOAD_MBX) message(STATUS "MBX_CONFIG_FLAGS: ${MBX_CONFIG_FLAGS}") include(ExternalProject) - ExternalProject_Add(mbx_build - URL ${MBXLIB_URL} - URL_HASH SHA256=${MBXLIB_SHA256} - CONFIGURE_COMMAND /configure - --prefix= - ${MBX_CONFIG_FLAGS} - CXX=${MBX_CONFIG_CXX} - CC=${MBX_CONFIG_CC} - CPPFLAGS=-I${FFTW3_INCLUDE_DIRS} - BUILD_BYPRODUCTS ${MBX_BUILD_BYPRODUCTS} - ) + + # hacks to make Linux-to-Windows cross-compilation work + if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND (CMAKE_CROSSCOMPILING)) + ExternalProject_Add(mbx_build + URL ${MBXLIB_URL} + URL_HASH SHA256=${MBXLIB_SHA256} + BUILD_IN_SOURCE TRUE + CONFIGURE_COMMAND mingw64-configure + --prefix= + --disable-i-pi-plugin + ${MBX_CONFIG_FLAGS} + INSTALL_COMMAND make install prefix=-build includedir=/include bindir=/bin + datadir=/share exec_prefix=/ infodir=/share/info + libdir=/lib libexecdir=/libexec localstatedir=/var + mandir=/share/man sbindir=/sbin sharedstatedir=/com + sysconfdir=/etc DESTDIR= + BUILD_BYPRODUCTS ${MBX_BUILD_BYPRODUCTS} + ) + else() + ExternalProject_Add(mbx_build + URL ${MBXLIB_URL} + URL_HASH SHA256=${MBXLIB_SHA256} + CONFIGURE_COMMAND /configure + --prefix= + --disable-i-pi-plugin + ${MBX_CONFIG_FLAGS} + CXX=${MBX_CONFIG_CXX} + CC=${MBX_CONFIG_CC} + CPPFLAGS=-I${FFTW3_INCLUDE_DIRS} + BUILD_BYPRODUCTS ${MBX_BUILD_BYPRODUCTS} + ) + endif() ExternalProject_get_property(mbx_build INSTALL_DIR) add_library(LAMMPS::MBX UNKNOWN IMPORTED) add_dependencies(LAMMPS::MBX mbx_build) diff --git a/doc/src/Howto_body.rst b/doc/src/Howto_body.rst index c4d72a5931a..5a8b67cd861 100644 --- a/doc/src/Howto_body.rst +++ b/doc/src/Howto_body.rst @@ -499,12 +499,21 @@ spheres, one for each sub-particle. The size of each sphere is determined by the *bflag1* parameter for the *body* keyword. The *bflag2* argument is ignored. -For the *rounded/polygon* body style, each body is drawn as a polygon -and for *rounded/polyhedron* as a polyhedron. The *bflag2* argument +For the *rounded/polygon* body style, each body is drawn as a polygon. +The *bflag2* argument selects how the bodies are represented: for a +value of 1, only the faces are drawn; for a value of 2 instead only a +wireframe outline is drawn; and for a value of 3 both the faces and the +wireframe outline are drawn. The diameter of the wireframe cylinders is +determined by the *bflag1* parameter for the *body* keyword. + +For the *rounded/polyhedron* body style, each body is drawn as a +polyhedron consisting of triangles and squares. The *bflag2* argument selects how the bodies are represented: for a value of 1, only the faces -are drawn; for a value of 2, only a wireframe mesh is drawn, and for a -value of 3 both. The diameter of each wireframe line is determined by -the *bflag1* parameter for the *body* keyword. +are drawn with some shading added; for a value of 2 instead only a +wireframe mesh is drawn; for a value of 3 both the faces and the +wireframe mesh are drawn; and for a value of 4 only the faces are drawn, +but without shading. The diameter of the wireframe cylinders is +determined by the *bflag1* parameter for the *body* keyword. Note that for both the *rounded/polygon* and *rounded/polyhedron* styles, line segments are drawn between the pairs of vertices. diff --git a/doc/src/Howto_viz.rst b/doc/src/Howto_viz.rst index 8172fdcaae6..6a64f535121 100644 --- a/doc/src/Howto_viz.rst +++ b/doc/src/Howto_viz.rst @@ -608,9 +608,11 @@ faces (*bflag1* value 1), or both (*bflag1* value 3). Visualizing ellipsoid particles ------------------------------- +.. versionadded:: 11Feb2026 + Ellipsoidal particles are a generalization of spheres that may have three different radii to define the shape. They can be modeled using -pair styles :doc:`gayberne ` or :doc:`resquared +pair styles like :doc:`gayberne ` or :doc:`resquared `. The regular :doc:`dump custom ` command can output the center of those bodies, the shape parameters and the orientation as quaternions. If one follows the required conventions and @@ -618,22 +620,26 @@ follows the documented steps, those trajectory dump files can be `imported and visualized in OVITO `_ +.. versionchanged:: TBD + + Now uses curved triangles instead of flat ones; "both" option is removed + As an alternative, the ellipsoid particles can be visualized directly with :doc:`dump image ` using the *ellipsoid* keyword. The -color and transparency settings can be changed by settings those +color and transparency settings can be changed by setting those properties for the corresponding atom types. It is also possible to represent the ellipsoids via generating a triangle mesh and visualizing -it as either wireframes (*eflag* value 2), planar faces (*eflag* value -1), or both (*eflag* value 3), same as demonstrated for body particles -above. The use of a triangle mesh is currently required since the +it as either wireframes (*eflag* value 2) or rounded faces (*eflag* +value 1). The use of a triangle mesh is currently required since the rasterizer built into LAMMPS does not offer a suitable graphics primitive for ellipsoids. The mesh is constructed by iteratively -refining a triangle mesh representing an octahedron where each triangle -is replaced by four triangles. For a smooth representation a refinement -level of 5 or 6 is required, which will cause a significant slowdown of -the rendering of the image. Also, some artifacts can happen due to -rounding which can be somewhat minimized using FSAA (which causes -further slowdown of the rendering). +refining a triangle mesh representing an icosahedron where each triangle +is replaced by four triangles in each iteration. For a sufficiently +smooth representation a refinement level of 4 to 6 is required (see +example images below). A high refinement level can cause a significant +slowdown of the rendering of the image due to the large number of +triangles that need to be drawn. This will be more pronounced when +enabling FSAA or SSAO or both. .. |ellipsoid1| image:: img/ellipsoid-level2.png :width: 33% diff --git a/doc/src/dump_image.rst b/doc/src/dump_image.rst index 8bb387be10a..5154e6f96aa 100644 --- a/doc/src/dump_image.rst +++ b/doc/src/dump_image.rst @@ -52,7 +52,7 @@ Syntax width = numeric value for triangle edge width (distance units) *ellipsoid* = color eflag level width color = *type* or *index* or *atom* - eflag = 1 for triangles, 2 for wireframe, 3 for both + eflag = 1 for triangles, 2 for wireframe level = mesh refinement level, value between 1 (low resolution) and 6 (ultra high resolution) width = diameter of wireframe edges (distance units) (ignored for triangles) *body* = color bflag1 bflag2 @@ -566,13 +566,18 @@ colors than atom types are desired, the *number of atom types* must be .. versionadded:: 11Feb2026 +.. versionchanged:: TBD + + Now uses rounded triangles + The *ellipsoid* keyword can be used when :doc:`atom_style ellipsoid ` is used to define particles as ellipsoids, and will draw -them as a mesh of triangles or edges or both, depending on the setting -for *eflag*\ . If edges are drawn, the *width* setting determines the -diameters of the line segments. If this keyword is not used, ellipsoid -particles will be drawn as spheres, the same as if they were regular -atoms. +them as a mesh of rounded triangles or edges, depending on the setting +for *eflag*\ (1 for rounded triangles, 2 for edges, other values are +accepted for backward compatibility but select rounded triangles). +If edges are drawn, the *width* setting determines the diameters of the +line segments. If this keyword is not used, ellipsoid particles will be +drawn as spheres, the same as if they were regular atoms. .. versionchanged:: TBD @@ -600,26 +605,27 @@ colors than atom types are desired, the *number of atom types* must be *increased* correspondingly when using either the :doc:`create_box ` or the :doc:`read_data ` command. +.. versionchanged:: TBD + + changed initial geometry to icosahedron and use rounded triangles + The *level* setting determines the number of triangles in the mesh of triangles and thus the resolution of the representation of the -ellipsoid. At level 1 the ellipsoid is represented by an octahedron +ellipsoid. At level 1 the ellipsoid is represented by an icosahedron that is stretched according to the ellipsoid's shape parameters. For -each higher level, any of the triangles is replaced by four triangles -and their edges are shifted to be on the surface of the ellipsoid. The -maximum allowed level is 6 (corresponding to 8192 triangles). +each higher level, a refinement iteration is performed where any of the +triangles are replaced by four triangles and their edges are shifted to +be on the surface of the ellipsoid. The maximum allowed refinement +level is 6 (corresponding to 12288 triangles per ellipsoid). .. admonition:: Image quality versus rendering speed :class: Hint Since the rendered ellipsoids are constructed from iteratively - refined triangle meshes, the image quality increases with each - refinement level, but so does the computational effort to render the - image. Rendering only triangles is much faster than rendering the - wireframe edges. However, at mesh refinement levels of 4 and up, - artifacts from the image rendering library are more common where - triangles meet. These artifacts can be somewhat hidden by using the - *fsaa yes* setting, but are also less visible when rendering both - edges and triangles. + refined triangle meshes as explained above, the image quality + increases with each refinement level, but so does the computational + effort to render the image. This becomes more pronounced when FSAA + or SSAO or both are enabled. ---------- diff --git a/doc/src/fix_colvars.rst b/doc/src/fix_colvars.rst index 21a9d067142..d16e367a91d 100644 --- a/doc/src/fix_colvars.rst +++ b/doc/src/fix_colvars.rst @@ -168,6 +168,16 @@ Aside from the state information in a ".colvars.state" file, other are produced by Colvars depending on the type of simulation. For this reason, the "output" keyword is required for fix colvars. +.. versionadded:: TBD + +This fix provides access to a global array of the current values of each +collective variable computed in the Colvars module. The number of rows +of the global array is equal to the number of collective variables and +the columns are: + +* `f_ID[I][1]` for a scalar-valued collective variable +* `f_ID[I][1], ..., f_ID[I][N]` for a vector-valued collective variable + Controlling Colvars via `fix_modify` """""""""""""""""""""""""""""""""""" diff --git a/doc/src/fix_graphics_isosurface.rst b/doc/src/fix_graphics_isosurface.rst index 42e5c23d0fa..26f02a9cc8a 100644 --- a/doc/src/fix_graphics_isosurface.rst +++ b/doc/src/fix_graphics_isosurface.rst @@ -69,7 +69,10 @@ the :doc:`dump image fix ` command. The color is that of the atom type's element color instead with the *element* coloring scheme, or just a globally set constant color for the whole isosurface with the *const* coloring scheme. That color can be set with the -*fcolor* keyword of the :doc:`dump modify ` command. +*fcolor* keyword of the :doc:`dump modify ` command. For +rounded triangles, the color is interpolated across the triangle if +there are different colors assigned to the different corners of the +triangle. The isosurface's transparency setting is fully opaque by default and can be changed with the *ftrans* keyword of the :doc:`dump modify @@ -140,11 +143,11 @@ the fix group and pass the graphics geometry information about it to *dump image* so that it is included in the rendered image. The *fflag1* setting of *dump image fix* determines whether the -isosurface will be rendered as a set of connected triangles (1) or as a -mesh of cylinders (2). +isosurface will be rendered as a set of connected rounded triangles (1) +or as a mesh of cylinders (2). If using a mesh of cylinders, the *fflag2* setting determines the -diameter of the cylinders. +diameter of the cylinders, otherwise it is ignored. The *quality* settings of "min" and "low" work best with the cylinder mesh setting while the other quality settings are more suitable for a diff --git a/doc/src/img/body-both.png b/doc/src/img/body-both.png index 7f538c4e805..11781e4c408 100644 Binary files a/doc/src/img/body-both.png and b/doc/src/img/body-both.png differ diff --git a/doc/src/img/body-faces.png b/doc/src/img/body-faces.png index a5d0123581d..15b19cf1d71 100644 Binary files a/doc/src/img/body-faces.png and b/doc/src/img/body-faces.png differ diff --git a/doc/src/img/body-frames.png b/doc/src/img/body-frames.png index f3358f80e47..4eb29ba8dd0 100644 Binary files a/doc/src/img/body-frames.png and b/doc/src/img/body-frames.png differ diff --git a/doc/src/img/ellipsoid-level2.png b/doc/src/img/ellipsoid-level2.png index b8f8821ea9f..ffddec7b489 100644 Binary files a/doc/src/img/ellipsoid-level2.png and b/doc/src/img/ellipsoid-level2.png differ diff --git a/doc/src/img/ellipsoid-level4.png b/doc/src/img/ellipsoid-level4.png index 5b0d7733f7a..860aedf2d08 100644 Binary files a/doc/src/img/ellipsoid-level4.png and b/doc/src/img/ellipsoid-level4.png differ diff --git a/doc/src/img/ellipsoid-level6.png b/doc/src/img/ellipsoid-level6.png index d87ac87fedd..6f0da143745 100644 Binary files a/doc/src/img/ellipsoid-level6.png and b/doc/src/img/ellipsoid-level6.png differ diff --git a/doc/src/molecule.rst b/doc/src/molecule.rst index a42f1c26987..fd1d478c18b 100644 --- a/doc/src/molecule.rst +++ b/doc/src/molecule.rst @@ -13,7 +13,7 @@ Syntax * ID = user-assigned name for the molecule template * file1,file2,... = names of files containing molecule descriptions * zero or more keyword/value pairs may be appended after each file -* keyword = *offset* or *toff* or *boff* or *aoff* or *doff* or *ioff* or *scale* or *check_labels* +* keyword = *offset* or *toff* or *boff* or *aoff* or *doff* or *ioff* or *scale* or *check_labels* or *auto* .. parsed-literal:: @@ -37,6 +37,10 @@ Syntax sfactor = scale factor to apply to the size, mass, and dipole of the molecule *check_labels* value = string string = string containing any of the following characters: 'b', 'a', 'd', or 'i' + *auto* value = string + string = string containing any of the following characters: + 'a', 'd', or 'i', which will autogenerate angles, dihedrals, and + impropers, respectively Examples """""""" @@ -49,6 +53,7 @@ Examples molecule CO2 co2.txt boff 3 aoff 2 molecule 1 mymol.txt offset 6 9 18 23 14 molecule objects file.1 scale 1.5 file.1 scale 2.0 file.2 scale 1.3 + molecule 1 mymol.txt auto ad Description """"""""""" @@ -163,6 +168,36 @@ complex and are described on the doc page for each improper style in the `, thus binary restart files need to be converted to data files first. +.. versionadded:: TBD + +The *auto* keyword allows the molecule command to generate new angles, +dihedrals, and/or impropers, and assign their angle types, dihedral +types, and/or improper types. New interactions are discovered by +traversing the bond graph defined in the *Bonds* section, and new types +are inferred using :doc:`type label`. Type labels +for angle, dihedral, and improper types must already be defined (e.g., +by the read_data command), to use the *auto* keyword, and each of the +labels must be defined as a list with its constituent atom type labels +separated by hyphens, as described for the *check_labels* keyword. The +*auto* value is a single string that should contain one or more of the +characters 'a', 'd', and 'i', which correspond to angles, dihedrals, and +impropers, respectively. For example, the keyword/value pair *auto adi* +will generate angle, dihedral, and improper information, while *auto di* +will only generate information for dihedrals and impropers but not for +angles. Angles are generated from all unique 1-2-3 paths through the +bond graph. Dihedrals are generated from all unique 1-2-3-4 paths +through the bond graph, as long as there are no duplicate atoms in the +dihedral. Impropers are generated from all atoms bonded to exactly +three neighbors. The type assigned to each generated 2-, 3- and 4-body +interaction is found by searching the list of type labels for a match, +e.g., 'c1-c2-c3' or 'c3-c2-c1' in the case of a 3-atom angle. If a +matching type cannot be found, LAMMPS will generate an error. + +.. note:: + + This command requires *Special Bonds* data to exist, which are + generated automatically by default. + ---------- Format of a native molecule file diff --git a/doc/src/pair_granular_superellipsoid.rst b/doc/src/pair_granular_superellipsoid.rst index 4ede2c07355..3bff828c0d1 100644 --- a/doc/src/pair_granular_superellipsoid.rst +++ b/doc/src/pair_granular_superellipsoid.rst @@ -1,7 +1,7 @@ .. index:: pair_style granular/superellipsoid pair_style granular/superellipsoid command -=========================== +========================================== Syntax """""" @@ -34,29 +34,29 @@ Description The *granular/superellipsoid* style calculates granular contact forces between superellipsoidal particles (see :doc:`atom style ellipsoid -`). Similar to the :doc:`granular pairstyle ` -which is designed for spherical particles, various normal, damping, and -tangential contact models are available (rolling and twisting may be -added later). The total computed forces and torques are the sum of various -models selected. - -All model choices and parameters are entered in the -:doc:`pair_coeff ` command, as described below. Coefficient -values are not global, but can be set to different values for different -combinations of particle types, as determined by the :doc:`pair_coeff -` command. If the contact model choice is the same for two -particle types, the mixing for the cross-coefficients can be carried out -automatically. This is shown in the last example, where model -choices are the same for type 1 - type 1 as for type 2 - type2 -interactions, but coefficients are different. In this case, the -mixed coefficients for type 1 - type 2 interactions can be determined from -mixing rules discussed below. For additional flexibility, -coefficients as well as model forms can vary between particle types. +`). Similar to the :doc:`granular pairstyle +` which is designed for spherical particles, various +normal, damping, and tangential contact models are available (rolling +and twisting may be added later). The total computed forces and torques +are the sum of various models selected. + +All model choices and parameters are entered in the :doc:`pair_coeff +` command, as described below. Coefficient values are not +global, but can be set to different values for different combinations of +particle types, as determined by the :doc:`pair_coeff ` +command. If the contact model choice is the same for two particle +types, the mixing for the cross-coefficients can be carried out +automatically. This is shown in the last example, where model choices +are the same for type 1 - type 1 as for type 2 - type2 interactions, but +coefficients are different. In this case, the mixed coefficients for +type 1 - type 2 interactions can be determined from mixing rules +discussed below. For additional flexibility, coefficients as well as +model forms can vary between particle types. ---------- -This pair_style allows granular contact between two superellipsoid particles -whose surface is implicitly defined as: +This pair_style allows granular contact between two superellipsoid +particles whose surface is implicitly defined as: .. math:: @@ -65,33 +65,37 @@ whose surface is implicitly defined as: \right)^{n_1 / n_2} + \left|\frac{z}{c}\right|^{n_1} - 1 = 0 -for a point :math:`\mathbf{x} = (x, y, z)` where the coordinates are given -in the reference of the principal directions of inertia of the particle. -The half-diameters :math:`a`, :math:`b`, and :math:`c` correspond to the *shape* -property, and the exponents :math:`n_1` and :math:`n_2` to the *block* property -of the ellipsoid atom. See the doc page for the :doc:`set ` command for -more details. +for a point :math:`\mathbf{x} = (x, y, z)` where the coordinates are +given in the reference of the principal directions of inertia of the +particle. The half-diameters :math:`a`, :math:`b`, and :math:`c` +correspond to the *shape* property, and the exponents :math:`n_1` and +:math:`n_2` to the *block* property of the ellipsoid atom. See the doc +page for the :doc:`set ` command for more details. .. note:: - The contact solver strictly requires convex particle shapes to ensure a mathematically - unique point of deepest penetration. Therefore, the blockiness parameters must be - :math:`n_1 \ge 2.0` and :math:`n_2 \ge 2.0`. Attempting to simulate concave or "pointy" + The contact solver strictly requires convex particle shapes to + ensure a mathematically unique point of deepest penetration. + Therefore, the blockiness parameters must be :math:`n_1 \ge 2.0` and + :math:`n_2 \ge 2.0`. Attempting to simulate concave or "pointy" particles (:math:`n < 2.0`) will result in an error. .. note:: - For particles with high blockiness exponents (:math:`n > 4.0`) involved in edge-to-edge - or corner-to-corner contacts, the surface normal vector varies rapidly over small - distances. The Newton solver may occasionally fail to converge to the strict gradient - alignment tolerance (typically :math:`10^{-10}`). You may see warning messages in the - log indicating that the solver returned a sub-optimal solution, but the simulation will - proceed using this best-effort contact point. - -Contact detection for these aspherical particles uses the so-called ''midway'' -minimization approach from :ref:`(Houlsby) `. Considering two -particles with shape functions, :math:`F_i` and :math:`F_j`, -the contact point :math:`\mathbf{X}_0` in the global frame is obtained as: + For particles with high blockiness exponents (:math:`n > 4.0`) + involved in edge-to-edge or corner-to-corner contacts, the surface + normal vector varies rapidly over small distances. The Newton + solver may occasionally fail to converge to the strict gradient + alignment tolerance (typically :math:`10^{-10}`). You may see + warning messages in the log indicating that the solver returned a + sub-optimal solution, but the simulation will proceed using this + best-effort contact point. + +Contact detection for these aspherical particles uses the so-called +"midway" minimization approach from :ref:`(Houlsby) `. +Considering two particles with shape functions, :math:`F_i` and +:math:`F_j`, the contact point :math:`\mathbf{X}_0` in the global frame +is obtained as: .. math:: @@ -99,83 +103,97 @@ the contact point :math:`\mathbf{X}_0` in the global frame is obtained as: \ F_i(\mathbf{X}) + F_j(\mathbf{X}) \text{, subject to } F_i(\mathbf{X}) = F_j(\mathbf{X}) -where the shape function is given by -:math:`F_i(\mathbf{X}) = f_i(\mathbf{R}_i^T (\mathbf{X} - \mathbf{X}_i))` -and where :math:`\mathbf{X}_i` and :math:`\mathbf{R}_i` are the center of mass -and rotation matrix of the particle, respectively. The constrained minimization -problem is solved using Lagrange multipliers and Newton's method with a line -search as described by :ref:`(Podlozhnyuk) `. +where the shape function is given by :math:`F_i(\mathbf{X}) = +f_i(\mathbf{R}_i^T (\mathbf{X} - \mathbf{X}_i))` and where +:math:`\mathbf{X}_i` and :math:`\mathbf{R}_i` are the center of mass and +rotation matrix of the particle, respectively. The constrained +minimization problem is solved using Lagrange multipliers and Newton's +method with a line search as described by :ref:`(Podlozhnyuk) +`. .. note:: The shape function :math:`F` is not a signed distance function and does not have unit gradient :math:`\|\nabla F \| \neq 1` so that the - so-called ''midway'' point is not actually located at an equal distance from - the surface of both particles. For contact between non-identical particles, - the contact point tends to be closer to the surface of the smaller and - blockier particle. + so-called "midway" point is not actually located at an equal + distance from the surface of both particles. For contact between + non-identical particles, the contact point tends to be closer to the + surface of the smaller and blockier particle. .. note:: - This formulation leads to a 4x4 system of non-linear equations. Tikhonov - regularization and step clumping is used to ensure robustness of the direct - solver and high convergence rate, even for blocky particles with near flat - faces. - -The particles overlap if both shape functions are negative at the contact point. -The contact normal is obtained as: :math:`\mathbf{n}_{ij} = \nabla F_i(\mathbf{X}_0) / \| \nabla F_i(\mathbf{X}_0)\| = - \nabla F_j(\mathbf{X}_0) / \| \nabla F_j(\mathbf{X}_0)\|` -and the overlap :math:`\delta = \|\mathbf{X}_j^{\mathrm{surf}} - \mathbf{X}_i^{\mathrm{surf}}\|` -is computed as the distance between the points on the -particles surfaces that are closest to the contact point in the -direction of the contact normal: :math:`F_i(\mathbf{X}_i^{\mathrm{surf}} = \mathbf{X}_0 + \lambda_i \mathbf{n}_{ij}) = 0` -and :math:`F_j(\mathbf{X}_j^{\mathrm{surf}} = \mathbf{X}_0 + \lambda_j \mathbf{n}_{ij}) = 0`. -Newton's method is used to solve this equation for the scalars -:math:`\lambda_i` and :math:`\lambda_j` and find the surface points -:math:`\mathbf{X}_i^{\mathrm{surf}}` and :math:`\mathbf{X}_j^{\mathrm{surf}}`. + This formulation leads to a 4x4 system of non-linear equations. + Tikhonov regularization and step clumping is used to ensure + robustness of the direct solver and high convergence rate, even for + blocky particles with near flat faces. + +The particles overlap if both shape functions are negative at the +contact point. The contact normal is obtained as: +:math:`\mathbf{n}_{ij} = \nabla F_i(\mathbf{X}_0) / \| \nabla +F_i(\mathbf{X}_0)\| = - \nabla F_j(\mathbf{X}_0) / \| \nabla +F_j(\mathbf{X}_0)\|` and the overlap :math:`\delta = +\|\mathbf{X}_j^{\mathrm{surf}} - \mathbf{X}_i^{\mathrm{surf}}\|` is +computed as the distance between the points on the particles surfaces +that are closest to the contact point in the direction of the contact +normal: :math:`F_i(\mathbf{X}_i^{\mathrm{surf}} = \mathbf{X}_0 + +\lambda_i \mathbf{n}_{ij}) = 0` and +:math:`F_j(\mathbf{X}_j^{\mathrm{surf}} = \mathbf{X}_0 + \lambda_j +\mathbf{n}_{ij}) = 0`. Newton's method is used to solve this equation +for the scalars :math:`\lambda_i` and :math:`\lambda_j` and find the +surface points :math:`\mathbf{X}_i^{\mathrm{surf}}` and +:math:`\mathbf{X}_j^{\mathrm{surf}}`. .. note:: - A modified representation of the particle surface is defined as - :math:`G(\mathbf{X}) = (F(\mathbf{X})+1)^{1/n_1}-1` which is a quasi-radial distance function formulation. - This formulation is used to compute the surface points once the midway contact point is found. - This formulation is also used when the *geometric* keyword is specified in the pair_style command and the following optimization problem is solved instead for the contact point: - :math:`\mathbf{X}_0 = \underset{\mathbf{X}}{\text{argmin}} \, \left( r_i G_i(\mathbf{X}) + r_j G_j(\mathbf{X}) \right) \text{, subject to } r_i G_i(\mathbf{X}) = r_j G_j(\mathbf{X})`, - where :math:`r_i` and :math:`r_j` are the average radii of the two particles. - The geometric formulation thus yields a better approximation of the contact point - for particles with different sizes, and it is slightly more robust for particles with high *block* exponents, - albeit more computationally expensive. + + A modified representation of the particle surface is defined as + :math:`G(\mathbf{X}) = (F(\mathbf{X})+1)^{1/n_1}-1` which is a + quasi-radial distance function formulation. This formulation is used + to compute the surface points once the "midway" contact point is + found. This formulation is also used when the *geometric* keyword is + specified in the pair_style command and the following optimization + problem is solved instead for the contact point: :math:`\mathbf{X}_0 + = \underset{\mathbf{X}}{\text{argmin}} \, \left( r_i + G_i(\mathbf{X}) + r_j G_j(\mathbf{X}) \right) \text{, subject to } + r_i G_i(\mathbf{X}) = r_j G_j(\mathbf{X})`, where :math:`r_i` and + :math:`r_j` are the average radii of the two particles. The + geometric formulation thus yields a better approximation of the + contact point for particles with different sizes, and it is slightly + more robust for particles with high *block* exponents, albeit more + computationally expensive. A hierarchical approach is used to limit the cost of contact detection. -First, intersection of the bounding spheres of the two particles of bounding -radii :math:`r_i` and :math:`r_j` is checked. If the distance +First, intersection of the bounding spheres of the two particles of +bounding radii :math:`r_i` and :math:`r_j` is checked. If the distance between the particles center is more than the sum of the radii -:math:`\|\mathbf{X}_j - \mathbf{X}_j\| > r_i + r_j`, the particles do not intersect. -Then, if the bounding spheres intersect, intersection of the oriented -bounding box is checked. This is done following the equations of -:ref:`(Eberly) `. -This check is always performed, unless the *no_bounding_box* keyword is used. -This is advantageous for all particle shapes except for superellipses with +:math:`\|\mathbf{X}_j - \mathbf{X}_j\| > r_i + r_j`, the particles do +not intersect. Then, if the bounding spheres intersect, intersection of +the oriented bounding box is checked. This is done following the +equations of :ref:`(Eberly) `. This check is always +performed, unless the *no_bounding_box* keyword is used. This is +advantageous for all particle shapes except for superellipses with aspect ratio close to one and both blockiness indexes close to 2. .. warning:: - The Newton-Raphson minimization used to find the midway contact point can - fail to converge if the initial starting guess is too far from the true - physical surface. This typically occurs if a user specifies a manual global - *cutoff* that is significantly larger than the particles **and** enables the - *no_bounding_box* keyword. Under these conditions, the solver attempts to - resolve contacts between widely separated particles, which might cause the - math to diverge and instantly crashing the simulation. It is strongly - recommended to keep bounding box checks enabled if a large cutoff is specified. + The Newton-Raphson minimization used to find the midway contact + point can fail to converge if the initial starting guess is too far + from the true physical surface. This typically occurs if a user + specifies a manual global *cutoff* that is significantly larger than + the particles **and** enables the *no_bounding_box* keyword. Under + these conditions, the solver attempts to resolve contacts between + widely separated particles, which might cause the math to diverge + and instantly crashing the simulation. It is strongly recommended + to keep bounding box checks enabled if a large cutoff is specified. ---------- -This section provides an overview of the various normal, tangential, -and damping contact models available. For additional context, see the +This section provides an overview of the various normal, tangential, and +damping contact models available. For additional context, see the discussion in the :doc:`granular pairstyle ` doc page which includes all of these options. The first required keyword for the *pair_coeff* command is the normal -contact model. Currently supported options for normal contact models +contact model. Currently supported options for normal contact models and their required arguments are: 1. *hooke* : :math:`k_n`, :math:`\eta_{n0}` (or :math:`e`) @@ -186,18 +204,18 @@ choice, see below); :math:`\eta_{n0}` is a damping prefactor (or, in its place a coefficient of restitution :math:`e`, depending on the choice of damping mode, see below). -For the *hooke* model, the normal, elastic component of force acting -on particle *i* due to contact with particle *j* is given by: +For the *hooke* model, the normal, elastic component of force acting on +particle *i* due to contact with particle *j* is given by: .. math:: \mathbf{F}_{ne, Hooke} = k_n \delta_{ij} \mathbf{n} -Where :math:`\delta_{ij}` is the particle overlap, (note the i-j ordering so -that :math:`\mathbf{F}_{ne}` is positive for repulsion), and :math:`\mathbf{n}` -is the contact normal vector at the contact point. Therefore, for *hooke*, the units -of the spring constant :math:`k_n` are *force*\ /\ *distance*, or equivalently -*mass*\ /*time\^2*. +Where :math:`\delta_{ij}` is the particle overlap, (note the i-j +ordering so that :math:`\mathbf{F}_{ne}` is positive for repulsion), and +:math:`\mathbf{n}` is the contact normal vector at the contact point. +Therefore, for *hooke*, the units of the spring constant :math:`k_n` are +*force*\ /\ *distance*, or equivalently *mass*\ /*time\^2*. For the *hertz* model, the normal component of force is given by: @@ -205,27 +223,30 @@ For the *hertz* model, the normal component of force is given by: \mathbf{F}_{ne, Hertz} = k_n R_{eff}^{1/2}\delta_{ij}^{3/2} \mathbf{n} -Here, :math:`R_{eff} = R = \frac{R_i R_j}{R_i + R_j}` is the effective radius, -and :math:`R_i` is the equivalent radius of the i-th particle at the surface -contact point with the j-th particle. This radius is either the inverse of the -mean curvature coefficient, :math:`R_i = 2 / (\kappa_1 + \kappa_2)`, or the -gaussian curvature coefficient :math:`R_i = 1 / \sqrt{\kappa_1 \kappa_2}`, where -:math:`\kappa_{1,2}` are the principal curvatures of the particle surface at the -contact point. For *hertz*, the units of the spring constant :math:`k_n` are -*force*\ /\ *length*\ \^2, or equivalently *pressure*\ . +Here, :math:`R_{eff} = R = \frac{R_i R_j}{R_i + R_j}` is the effective +radius, and :math:`R_i` is the equivalent radius of the i-th particle at +the surface contact point with the j-th particle. This radius is either +the inverse of the mean curvature coefficient, :math:`R_i = 2 / +(\kappa_1 + \kappa_2)`, or the gaussian curvature coefficient :math:`R_i += 1 / \sqrt{\kappa_1 \kappa_2}`, where :math:`\kappa_{1,2}` are the +principal curvatures of the particle surface at the contact point. For +*hertz*, the units of the spring constant :math:`k_n` are *force*\ /\ +*length*\ \^2, or equivalently *pressure*\ . .. note:: - To ensure numerical stability and preserve physical realism, the computed - contact radius is mathematically capped. For highly blocky particles - undergoing flat-on-flat contact, the theoretical curvature approaches zero, - which would yield an infinite contact radius and cause a force explosion. To - prevent this, the maximum contact radius is capped at the physical bounding - radius of the smallest interacting particle. Conversely, for sharp corner - contacts where curvature approaches infinity, the calculated radius would - drop to zero, eliminating the repulsive force entirely. The contact radius - is therefore lower-bounded by a minimum fraction of the physical radius - (:math:`10^{-4} \min(r_i, r_j)`) to prevent particles from unphysically interpenetrating. + To ensure numerical stability and preserve physical realism, the + computed contact radius is mathematically capped. For highly blocky + particles undergoing flat-on-flat contact, the theoretical curvature + approaches zero, which would yield an infinite contact radius and + cause a force explosion. To prevent this, the maximum contact + radius is capped at the physical bounding radius of the smallest + interacting particle. Conversely, for sharp corner contacts where + curvature approaches infinity, the calculated radius would drop to + zero, eliminating the repulsive force entirely. The contact radius + is therefore lower-bounded by a minimum fraction of the physical + radius (:math:`10^{-4} \min(r_i, r_j)`) to prevent particles from + unphysically interpenetrating. In addition, the normal force is augmented by a damping term of the following general form: @@ -238,13 +259,14 @@ Here, :math:`\mathbf{v}_{n,rel} = (\mathbf{v}_j - \mathbf{v}_i) \cdot \mathbf{n}\ \mathbf{n}` is the component of relative velocity along :math:`\mathbf{n}`. -The optional *damping* keyword to the *pair_coeff* command followed by a keyword -determines the model form of the damping factor :math:`\eta_n`, and the -interpretation of the :math:`\eta_{n0}` or :math:`e` coefficients specified as -part of the normal contact model settings. The *damping* keyword and -corresponding model form selection may be appended anywhere in the *pair coeff* -command. Note that the choice of damping model affects both the normal and -tangential damping. The options for the damping model currently supported are: +The optional *damping* keyword to the *pair_coeff* command followed by a +keyword determines the model form of the damping factor :math:`\eta_n`, +and the interpretation of the :math:`\eta_{n0}` or :math:`e` +coefficients specified as part of the normal contact model settings. +The *damping* keyword and corresponding model form selection may be +appended anywhere in the *pair coeff* command. Note that the choice of +damping model affects both the normal and tangential damping. The +options for the damping model currently supported are: 1. *mass_velocity* 2. *viscoelastic* @@ -258,26 +280,25 @@ For *damping mass_velocity*, the normal damping is given by: \eta_n = \eta_{n0} m_{eff} -Here, :math:`\eta_{n0}` is the damping coefficient specified for the normal -contact model, in units of 1/\ *time* and -:math:`m_{eff} = m_i m_j/(m_i + m_j)` is the effective mass. -Use *damping mass_velocity* to reproduce the damping behavior of -*pair gran/hooke/\**. +Here, :math:`\eta_{n0}` is the damping coefficient specified for the +normal contact model, in units of 1/\ *time* and :math:`m_{eff} = m_i +m_j/(m_i + m_j)` is the effective mass. Use *damping mass_velocity* to +reproduce the damping behavior of *pair gran/hooke/\**. -The *damping viscoelastic* model is based on the viscoelastic -treatment of :ref:`(Brilliantov et al) `, where the normal -damping is given by: +The *damping viscoelastic* model is based on the viscoelastic treatment +of :ref:`(Brilliantov et al) `, where the normal damping is +given by: .. math:: \eta_n = \eta_{n0}\ a m_{eff} -Here, *a* is the contact radius, given by :math:`a =\sqrt{R\delta}` -for all models. For *damping viscoelastic*, -:math:`\eta_{n0}` is in units of 1/(\ *time*\ \*\ *distance*\ ). +Here, *a* is the contact radius, given by :math:`a =\sqrt{R\delta}` for +all models. For *damping viscoelastic*, :math:`\eta_{n0}` is in units +of 1/(\ *time*\ \*\ *distance*\ ). -The total normal force is computed as the sum of the elastic and -damping components: +The total normal force is computed as the sum of the elastic and damping +components: .. math:: @@ -286,8 +307,8 @@ damping components: ---------- The *pair_coeff* command also requires specification of the tangential -contact model. The required keyword *tangential* is expected, followed -by the model choice and associated parameters. Currently there is only +contact model. The required keyword *tangential* is expected, followed +by the model choice and associated parameters. Currently there is only one supported tangential model with expected parameters as follows: 1. *linear_history* : :math:`k_t`, :math:`x_{\gamma,t}`, :math:`\mu_s` @@ -297,7 +318,8 @@ damping :math:`\eta_n` that determines the magnitude of the tangential damping, :math:`\mu_t` is the tangential (or sliding) friction coefficient, and :math:`k_t` is the tangential stiffness coefficient. -The tangential damping force :math:`\mathbf{F}_\mathrm{t,damp}` is given by: +The tangential damping force :math:`\mathbf{F}_\mathrm{t,damp}` is given +by: .. math:: @@ -313,27 +335,30 @@ the normal damping :math:`\eta_n` (see above): The normal damping prefactor :math:`\eta_n` is determined by the choice of the *damping* keyword, as discussed above. Thus, the *damping* keyword also affects the tangential damping. The parameter -:math:`x_{\gamma,t}` is a scaling coefficient. Several works in the +:math:`x_{\gamma,t}` is a scaling coefficient. Several works in the literature use :math:`x_{\gamma,t} = 1` (:ref:`Marshall `, -:ref:`Tsuji et al `, :ref:`Silbert et al `). The relative -tangential velocity at the point of contact is given by -:math:`\mathbf{v}_{t, rel} = \mathbf{v}_{t} - (R_i\boldsymbol{\Omega}_i + R_j\boldsymbol{\Omega}_j) \times \mathbf{n}`, where :math:`\mathbf{v}_{t} = \mathbf{v}_r - \mathbf{v}_r\cdot\mathbf{n}\ \mathbf{n}`, -:math:`\mathbf{v}_r = \mathbf{v}_j - \mathbf{v}_i` . -The direction of the applied force is :math:`\mathbf{t} = \mathbf{v_{t,rel}}/\|\mathbf{v_{t,rel}}\|` . +:ref:`Tsuji et al `, :ref:`Silbert et al `). +The relative tangential velocity at the point of contact is given by +:math:`\mathbf{v}_{t, rel} = \mathbf{v}_{t} - +(R_i\boldsymbol{\Omega}_i + R_j\boldsymbol{\Omega}_j) \times +\mathbf{n}`, where :math:`\mathbf{v}_{t} = \mathbf{v}_r - +\mathbf{v}_r\cdot\mathbf{n}\ \mathbf{n}`, :math:`\mathbf{v}_r = +\mathbf{v}_j - \mathbf{v}_i` . The direction of the applied force is +:math:`\mathbf{t} = \mathbf{v_{t,rel}}/\|\mathbf{v_{t,rel}}\|` . The normal force value :math:`F_{n0}` used to compute the critical force -depends on the form of the contact model. It is given by the magnitude of -the normal force: +depends on the form of the contact model. It is given by the magnitude +of the normal force: .. math:: F_{n0} = \|\mathbf{F}_n\| The remaining tangential options all use accumulated tangential -displacement (i.e. contact history). -The accumulated tangential displacement is discussed in details below -in the context of the *linear_history* option. The same treatment of -the accumulated displacement will apply to other (future) options as well. +displacement (i.e. contact history). The accumulated tangential +displacement is discussed in details below in the context of the +*linear_history* option. The same treatment of the accumulated +displacement will apply to other (future) options as well. For *tangential linear_history*, the tangential force is given by: @@ -348,22 +373,21 @@ during the entire duration of the contact: \mathbf{\xi} = \int_{t0}^t \mathbf{v}_{t,rel}(\tau) \mathrm{d}\tau -This accumulated tangential displacement must be adjusted to account -for changes in the frame of reference of the contacting pair of -particles during contact. This occurs due to the overall motion of the -contacting particles in a rigid-body-like fashion during the duration -of the contact. There are two modes of motion that are relevant: the +This accumulated tangential displacement must be adjusted to account for +changes in the frame of reference of the contacting pair of particles +during contact. This occurs due to the overall motion of the contacting +particles in a rigid-body-like fashion during the duration of the +contact. There are two modes of motion that are relevant: the 'tumbling' rotation of the contacting pair, which changes the orientation of the plane in which tangential displacement occurs; and 'spinning' rotation of the contacting pair about the vector connecting their centers of mass (:math:`\mathbf{n}`). Corrections due to the -former mode of motion are made by rotating the accumulated -displacement into the plane that is tangential to the contact vector -at each step, or equivalently removing any component of the tangential -displacement that lies along :math:`\mathbf{n}`, and rescaling to -preserve the magnitude. This follows the discussion in -:ref:`Luding `, see equation 17 and relevant discussion in that -work: +former mode of motion are made by rotating the accumulated displacement +into the plane that is tangential to the contact vector at each step, or +equivalently removing any component of the tangential displacement that +lies along :math:`\mathbf{n}`, and rescaling to preserve the magnitude. +This follows the discussion in :ref:`Luding `, see equation +17 and relevant discussion in that work: .. math:: @@ -371,14 +395,14 @@ work: Here, :math:`\mathbf{\xi'}` is the accumulated displacement prior to the current time step and :math:`\mathbf{\xi}` is the corrected -displacement. Corrections to the displacement due to the second mode -of motion described above (rotations about :math:`\mathbf{n}`) are not +displacement. Corrections to the displacement due to the second mode of +motion described above (rotations about :math:`\mathbf{n}`) are not currently implemented, but are expected to be minor for most simulations. Furthermore, when the tangential force exceeds the critical force, the -tangential displacement is re-scaled to match the value for the -critical force (see :ref:`Luding `, equation 20 and related +tangential displacement is re-scaled to match the value for the critical +force (see :ref:`Luding `, equation 20 and related discussion): .. math:: @@ -388,16 +412,16 @@ discussion): The tangential force is added to the total normal force (elastic plus damping) to produce the total force on the particle. -Unlike perfect spheres, the surface normal at the contact point of a superellipsoid -does not generally pass through the particle's center of mass. Therefore, both the -normal and tangential forces act at the contact point to induce a torque on each -particle. +Unlike perfect spheres, the surface normal at the contact point of a +superellipsoid does not generally pass through the particle's center of +mass. Therefore, both the normal and tangential forces act at the +contact point to induce a torque on each particle. -Using the exact contact point :math:`\mathbf{X}_0` determined by the geometric solver, -the branch vectors from the particle centers of mass to the contact point are -defined as :math:`\mathbf{r}_{ci} = \mathbf{X}_0 - \mathbf{x}_i` and -:math:`\mathbf{r}_{cj} = \mathbf{X}_0 - \mathbf{x}_j`. The resulting torques -are calculated as: +Using the exact contact point :math:`\mathbf{X}_0` determined by the +geometric solver, the branch vectors from the particle centers of mass +to the contact point are defined as :math:`\mathbf{r}_{ci} = +\mathbf{X}_0 - \mathbf{x}_i` and :math:`\mathbf{r}_{cj} = \mathbf{X}_0 - +\mathbf{x}_j`. The resulting torques are calculated as: .. math:: @@ -410,19 +434,20 @@ are calculated as: ---------- If two particles are moving away from each other while in contact, there -is a possibility that the particles could experience an effective attractive -force due to damping. If the optional *limit_damping* keyword is used, this option -will zero out the normal component of the force if there is an effective -attractive force. +is a possibility that the particles could experience an effective +attractive force due to damping. If the optional *limit_damping* +keyword is used, this option will zero out the normal component of the +force if there is an effective attractive force. ---------- LAMMPS automatically sets pairwise cutoff values for *pair_style -granular/superellipsoid* based on particle radii. In the vast majority of situations, -this is adequate. However, a cutoff value can optionally be appended -to the *pair_style granular/superellipsoid* command to specify a global cutoff (i.e. -a cutoff for all atom types). This option may be useful in some rare -cases where the automatic cutoff determination is not sufficient. +granular/superellipsoid* based on particle radii. In the vast majority +of situations, this is adequate. However, a cutoff value can optionally +be appended to the *pair_style granular/superellipsoid* command to +specify a global cutoff (i.e. a cutoff for all atom types). This +option may be useful in some rare cases where the automatic cutoff +determination is not sufficient. ---------- @@ -432,65 +457,65 @@ Mixing, shift, table, tail correction, restart, rRESPA info The :doc:`pair_modify ` mix, shift, table, and tail options are not relevant for granular pair styles. -Mixing of coefficients is carried out using geometric averaging for -most quantities, e.g. if friction coefficient for type 1-type 1 -interactions is set to :math:`\mu_1`, and friction coefficient for type -2-type 2 interactions is set to :math:`\mu_2`, the friction coefficient -for type1-type2 interactions is computed as :math:`\sqrt{\mu_1\mu_2}` +Mixing of coefficients is carried out using geometric averaging for most +quantities, e.g. if friction coefficient for type 1-type 1 interactions +is set to :math:`\mu_1`, and friction coefficient for type 2-type 2 +interactions is set to :math:`\mu_2`, the friction coefficient for +type1-type2 interactions is computed as :math:`\sqrt{\mu_1\mu_2}` (unless explicitly specified to a different value by a *pair_coeff 1 2 ...* command). -These pair styles write their information to :doc:`binary restart files `, -so a pair_style command does not need to be specified in an input script that reads -a restart file. +This pair style writes its information to :doc:`binary restart files +`, so a pair_style command does not need to be specified in an +input script that reads a restart file. -These pair styles can only be used via the *pair* keyword of the -:doc:`run_style respa ` command. They do not support the +This pair style can only be used via the *pair* keyword of the +:doc:`run_style respa ` command. It does not support the *inner*, *middle*, *outer* keywords. -The single() function of these pair styles returns 0.0 for the energy of a -pairwise interaction, since energy is not conserved in these dissipative -potentials. It also returns only the normal component of the pairwise -interaction force. +The ``single()`` function of these pair styles returns 0.0 for the +energy of a pairwise interaction, since energy is not conserved in these +dissipative potentials. It also returns only the normal component of +the pairwise interaction force. ---------- Restrictions """""""""""" -The *atom_style* must be set to *ellipsoid superellipsoid* to enable superellipsoid -particles' shape parameters (3 lengths and two blockiness parameters), see -:doc:`atom_style ` for more details. +The *atom_style* must be set to *ellipsoid superellipsoid* to enable +superellipsoid particles' shape parameters (3 lengths and two blockiness +parameters), see :doc:`atom_style ` for more details. -This pair style require Newton's third law be set to *off* for pair interactions.. +This pair style require Newton's third law be set to *off* for pair +interactions. -There are currently no versions of *fix wall/gran* or *fix wall/gran/region* that -are compatible with the superellipsoid particles. +There are currently no versions of *fix wall/gran* or *fix +wall/gran/region* that are compatible with superellipsoid particles. -This pair style is part of the ASPHERE package. It is -only enabled if LAMMPS was built with that package. -See the :doc:`Build package ` page for more info. +This pair style is part of the ASPHERE package. It is only enabled if +LAMMPS was built with that package. See the :doc:`Build package +` page for more info. -This pair style requires that atoms store per-particle bounding radius, shapes, blockiness, inertia, -torque, and angular momentum (omega) as defined by the -:doc:`atom_style ellipsoid superellipsoid `. +This pair style requires that atoms store per-particle bounding radius, +shapes, blockiness, inertia, torque, and angular momentum (omega) as +defined by the :doc:`atom_style ellipsoid superellipsoid `. -This pair style requires you to use the :doc:`comm_modify vel yes ` -command so that velocities are stored by ghost atoms. +This pair style requires you to use the :doc:`comm_modify vel yes +` command so that velocities are stored by ghost atoms. This pair style will not restart exactly when using the :doc:`read_restart ` command, though it should provide -statistically similar results. This is because the forces it -computes depend on atom velocities and the atom velocities have -been propagated half a timestep between the force computation and -when the restart is written, due to using Velocity Verlet time -integration. See the :doc:`read_restart ` command -for more details. - -Accumulated values for individual contacts are saved to restart -files but are not saved to data files. Therefore, forces may -differ significantly when a system is reloaded using the -:doc:`read_data ` command. +statistically similar results. This is because the forces it computes +depend on atom velocities and the atom velocities have been propagated +half a timestep between the force computation and when the restart is +written, due to using Velocity Verlet time integration. See the +:doc:`read_restart ` command for more details. + +Accumulated values for individual contacts are saved to restart files +but are not saved to data files. Therefore, forces may differ +significantly when a system is reloaded using the :doc:`read_data +` command. Related commands """""""""""""""" diff --git a/doc/src/read_data.rst b/doc/src/read_data.rst index 645d27a75f3..72fc88c55c2 100644 --- a/doc/src/read_data.rst +++ b/doc/src/read_data.rst @@ -1335,7 +1335,7 @@ and a general discussion of how type labels can be used. atom-ID = ID of atom which is an ellipsoid shapex,shapey,shapez = 3 diameters of ellipsoid (distance units) quatw,quati,quatj,quatk = quaternion components for orientation of atom - block1,block2 = 2 blockiness parameters for superellipsoids only + block1,block2 = 2 blockiness parameters (for superellipsoids only) * examples: diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 316cffb533a..86660fbc0ed 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -347,7 +347,10 @@ Blaise blanchedalmond blength blo +blockier +blockiness blocksize +blocky blueviolet bn bni @@ -992,6 +995,7 @@ Eb Eba Ebeling ebend +Eberly ebond ebook ebt @@ -1384,6 +1388,7 @@ Geocomputing georg Georg Geotechnica +Geotechnics germain Germann Germano @@ -1596,6 +1601,7 @@ Hookean hostname hotpink Houlle +Houlsby howto Howto Hoy @@ -1646,6 +1652,7 @@ icc iceblue ico icosahedral +icosahedron idealgas IDR idx @@ -3083,6 +3090,7 @@ pIp pipelining Pirani pirani +Pirker Pisarev Pishevar Pitera @@ -3113,6 +3121,7 @@ Pmoltrans pN png podd +Podlozhnyuk Podgornik Podhorszki Poiseuille @@ -3837,6 +3846,11 @@ SumN sumsq Sunderland supercell +superellipses +superellipsoid +superellipsoids +Superellipsoids +superellipsoidal superset supersphere Supinski @@ -3966,6 +3980,7 @@ THz Tieleman Tigran Tij +Tikhonov Tildesley Timan timeflag diff --git a/examples/PACKAGES/colvars/in.peptide-colvars b/examples/PACKAGES/colvars/in.peptide-colvars index 9ec708827c6..8594bf343c3 100644 --- a/examples/PACKAGES/colvars/in.peptide-colvars +++ b/examples/PACKAGES/colvars/in.peptide-colvars @@ -28,21 +28,35 @@ fix 1 all nvt temp 275.0 275.0 100.0 tchain 1 shell "rm -f out*.colvars.*" fix 2 all colvars peptide.colvars fix 2a ref setforce 0.0 0.0 0.0 - fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31 #dump 1 colvar custom 1 dump.colvar.lammpstrj id xu yu zu fx fy fz #dump_modify 1 sort id -thermo_style custom step temp etotal pe ke epair ebond f_2 -thermo 10 - - -run 100 - -run 100 - -fix 2 all colvars peptide.colvars input out.colvars.state output out2 - -run 100 - +fix_modify 2 config """ + colvar { + name three + distanceVec { + group1 { atomNumbers 80 82 83 84 } + group2 { atomNumbers $(atoms) } + } + } + colvar { + name four + cartesian { + atoms { atomNumbers 80 82 } + } + } +""" + +thermo_style custom step temp etotal pe ke epair ebond & + f_2 f_2[1][1] f_2[2][1] & + f_2[3][1] f_2[3][2] f_2[3][3] & + f_2[4][1] f_2[4][2] f_2[4][3] f_2[4][4] f_2[4][5] f_2[4][6] +thermo 10 +run 100 +run 100 + +fix 2 all colvars peptide.colvars input out.colvars.state output out2 +thermo_style custom step temp etotal pe ke epair ebond f_2 f_2[1][1] f_2[2][1] +run 100 diff --git a/examples/PACKAGES/colvars/log.14Jul25.peptide-colvars.g++.1 b/examples/PACKAGES/colvars/log.12Mar26.peptide-colvars.g++.1 similarity index 58% rename from examples/PACKAGES/colvars/log.14Jul25.peptide-colvars.g++.1 rename to examples/PACKAGES/colvars/log.12Mar26.peptide-colvars.g++.1 index 544683a0c88..b855d8a1ed3 100644 --- a/examples/PACKAGES/colvars/log.14Jul25.peptide-colvars.g++.1 +++ b/examples/PACKAGES/colvars/log.12Mar26.peptide-colvars.g++.1 @@ -1,18 +1,5 @@ -LAMMPS (12 Jun 2025 - Development - patch_12Jun2025-739-g2644e7f6fa-modified) +LAMMPS (11 Feb 2026 - Development - patch_11Feb2026-296-ga88fa287a2-modified) using 1 OpenMP thread(s) per MPI task -# Solvated 5-mer peptide - -units real -atom_style full - -pair_style lj/charmm/coul/long 8.0 10.0 10.0 -bond_style harmonic -angle_style charmm -dihedral_style charmm -improper_style harmonic -kspace_style pppm 0.0001 - -read_data data.peptide Reading data file ... orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462) 1 by 1 by 1 MPI processor grid @@ -46,83 +33,35 @@ Finding 1-2 1-3 1-4 neighbors ... 14 = max # of 1-4 neighbors 18 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.011 seconds - -neighbor 2.0 bin -neigh_modify delay 5 - -timestep 2.0 - -group peptide type <= 12 + read_data CPU = 0.009 seconds 84 atoms in group peptide -group one id 2 4 5 6 4 atoms in group one -group two id 80 82 83 84 4 atoms in group two -group ref id 37 1 atoms in group ref -group colvar union one two ref 9 atoms in group colvar - -fix 1 all nvt temp 275.0 275.0 100.0 tchain 1 - -shell "rm -f out*.colvars.*" -fix 2 all colvars peptide.colvars ---------------------------------------------------------------------- -Initializing the collective variables module, version 2025-04-30. +Initializing the collective variables module, version 2025-08-27. Please cite Fiorin et al, Mol Phys 2013: https://doi.org/10.1080/00268976.2013.813594 as well as all other papers listed below for individual features used. Summary of compile-time features available in this build: - C++ language version: 201703 - - Multiple replicas: not available + - Multiple replicas: available, but not (yet) enabled - Lepton custom functions: available - Tcl interpreter: not available -Using LAMMPS interface, version "2025-03-31". -fix 2a ref setforce 0.0 0.0 0.0 - -fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31 +Using LAMMPS interface, version "2025-05-12". Finding SHAKE clusters ... 19 = # of size 2 clusters 6 = # of size 3 clusters 3 = # of size 4 clusters 640 = # of frozen angles find clusters CPU = 0.000 seconds - -#dump 1 colvar custom 1 dump.colvar.lammpstrj id xu yu zu fx fy fz -#dump_modify 1 sort id - -thermo_style custom step temp etotal pe ke epair ebond f_2 -thermo 10 - - -run 100 -PPPM initialization ... - using 12-bit tables for long-range coulomb - G vector (1/distance) = 0.26872465 - grid = 15 15 15 - stencil order = 5 - estimated absolute RMS force accuracy = 0.022820853 - estimated relative force accuracy = 6.872432e-05 - using double precision FFTW3 - 3d grid and FFT values/proc = 10648 3375 -Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule -Neighbor list info ... - update: every = 1 steps, delay = 5 steps, check = yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/charmm/coul/long, perpetual - attributes: half, newton on - pair build: half/bin/newton - stencil: half/bin/3d - bin: standard ---------------------------------------------------------------------- Reading new configuration from file "peptide.colvars": # units = "" [default] # smp = "cvcs" [default] +SMP parallelism will be applied to Colvars components. + - SMP parallelism: enabled (num. threads = 1) # colvarsTrajFrequency = 1 # colvarsRestartFrequency = 1000 # scriptedColvarForces = off [default] @@ -244,9 +183,9 @@ Collective variables initialized, 2 in total. # name = "h_pot" # colvars = { one, two } # stepZeroData = off [default] + # timeStepFactor = 1 [default] # outputEnergy = off [default] # outputFreq = 1000 [default] - # timeStepFactor = 1 [default] # writeTISamples = off [default] # writeTIPMF = off [default] # centers = { 10, 10 } @@ -262,12 +201,146 @@ Collective variables biases initialized, 1 in total. ---------------------------------------------------------------------- Collective variables module (re)initialized. ---------------------------------------------------------------------- +---------------------------------------------------------------------- +Reading new configuration: +# units = "" [default] +# smp = "cvcs" [default] +SMP parallelism will be applied to Colvars components. + - SMP parallelism: enabled (num. threads = 1) +# colvarsTrajFrequency = 1 [default] +# colvarsRestartFrequency = 1000 [default] +# scriptedColvarForces = off [default] +# scriptingAfterBiases = off [default] +---------------------------------------------------------------------- + Initializing a new collective variable. + # name = "three" + Initializing a new "distanceVec" component. + # name = "" [default] + # componentCoeff = 1 [default] + # componentExp = 1 [default] + # period = 0 [default] + # wrapAround = 0 [default] + # forceNoPBC = off [default] + # scalable = on [default] + Initializing atom group "group1". + # name = "" [default] + # centerToOrigin = off [default] + # centerToReference = off [default] + # rotateToReference = off [default] + # atomsOfGroup = "" [default] + # indexGroup = "" [default] + # psfSegID = [default] + # atomsFile = "" [default] + # dummyAtom = ( 0 , 0 , 0 ) [default] + # enableFitGradients = on [default] + # printAtomIDs = off [default] + Atom group "group1" defined with 4 atoms requested. + Initializing atom group "group2". + # name = "" [default] + # centerToOrigin = off [default] + # centerToReference = off [default] + # rotateToReference = off [default] + # atomsOfGroup = "" [default] + # indexGroup = "" [default] + # psfSegID = [default] + # atomsFile = "" [default] + # dummyAtom = ( 0 , 0 , 0 ) [default] + # enableFitGradients = on [default] + # printAtomIDs = off [default] + Atom group "group2" defined with 1 atoms requested. + # oneSiteSystemForce = off [default] + # oneSiteTotalForce = off [default] + All components initialized. + # timeStepFactor = 1 [default] + # width = 1 [default] + # extendedLagrangian = off [default] + # outputValue = on [default] + # outputVelocity = off [default] + # outputTotalForce = off [default] + # outputAppliedForce = off [default] + # subtractAppliedForce = off [default] + # runAve = off [default] + # corrFunc = off [default] +---------------------------------------------------------------------- + Initializing a new collective variable. + # name = "four" + Initializing a new "cartesian" component. + # name = "" [default] + # componentCoeff = 1 [default] + # componentExp = 1 [default] + # period = 0 [default] + # wrapAround = 0 [default] + # forceNoPBC = off [default] + # scalable = on [default] + Initializing atom group "atoms". + # name = "" [default] + # centerToOrigin = off [default] + # centerToReference = off [default] + # rotateToReference = off [default] + # atomsOfGroup = "" [default] + # indexGroup = "" [default] + # psfSegID = [default] + # atomsFile = "" [default] + # dummyAtom = ( 0 , 0 , 0 ) [default] + # enableFitGradients = on [default] + # printAtomIDs = off [default] + Atom group "atoms" defined with 2 atoms requested. + # useX = on [default] + # useY = on [default] + # useZ = on [default] + All components initialized. + # timeStepFactor = 1 [default] + # width = 1 [default] + # extendedLagrangian = off [default] + # outputValue = on [default] + # outputVelocity = off [default] + # outputTotalForce = off [default] + # outputAppliedForce = off [default] + # subtractAppliedForce = off [default] + # runAve = off [default] + # corrFunc = off [default] +---------------------------------------------------------------------- +Collective variables initialized, 4 in total. +---------------------------------------------------------------------- +Collective variables biases initialized, 1 in total. +---------------------------------------------------------------------- +Collective variables module (re)initialized. +---------------------------------------------------------------------- +PPPM initialization ... + using 12-bit tables for long-range coulomb + G vector (1/distance) = 0.26872465 + grid = 15 15 15 + stencil order = 5 + estimated absolute RMS force accuracy = 0.022820853 + estimated relative force accuracy = 6.872432e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 10648 3375 +Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 5 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmm/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 2 Current simulation parameters: initial step = 0, integration timestep = 2 Updating atomic parameters (masses, charges, etc). Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17. Re-initialized atom group for variable "one":0/1. 1 atoms: total mass = 12.011, total charge = 0.51. Re-initialized atom group for variable "two":0/0. 4 atoms: total mass = 15.035, total charge = 0.16. Re-initialized atom group for variable "two":0/1. 1 atoms: total mass = 12.011, total charge = 0.51. +Re-initialized atom group for variable "three":0/0. 4 atoms: total mass = 15.035, total charge = 0.16. +Re-initialized atom group for variable "three":0/1. 1 atoms: total mass = 1.01, total charge = 0.417. +Re-initialized atom group for variable "four":0/0. 2 atoms: total mass = 13.019, total charge = -0.02. The final output state file will be "out.colvars.state". Synchronizing (emptying the buffer of) trajectory file "out.colvars.traj". SHAKE stats (type/ave/delta/count) on step 0 @@ -280,17 +353,17 @@ Bond: 14 0.96 0 1 Bond: 18 0.957206 4.37979e-05 1280 Angle: 31 104.519 0.00396029 640 Per MPI rank memory allocation (min/avg/max) = 19.03 | 19.03 | 19.03 Mbytes - Step Temp TotEng PotEng KinEng E_pair E_bond f_2 - 0 282.10052 -5237.458 -6372.3765 1134.9186 -6442.7679 16.557152 292.14604 - 10 305.06149 -5058.8971 -6286.1899 1227.2929 -6413.1019 58.8499 103.38345 - 20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695 - 30 314.22337 -4993.7011 -6257.8532 1264.152 -6421.9678 35.344144 10.563932 - 40 297.87492 -5020.8375 -6219.2181 1198.3806 -6389.8526 27.723134 3.8354514 - 50 304.0207 -5056.2575 -6279.3632 1223.1057 -6456.8213 55.459507 0.20678213 - 60 285.92576 -5104.046 -6254.354 1150.3079 -6435.5813 32.76723 0.69352954 - 70 277.83519 -5163.9756 -6281.7343 1117.7587 -6447.7031 39.627168 11.433604 - 80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6368 31.611883 6.355418 - 90 278.15579 -5245.3825 -6364.431 1119.0485 -6499.8063 28.849773 0.36941575 + Step Temp TotEng PotEng KinEng E_pair E_bond f_2:energy f_2:one[1][1] f_2:two[2][1] f_2:three[3][1] f_2:three[3][2] f_2:three[3][3] f_2:four[4][1] f_2:four[4][2] f_2:four[4][3] f_2:four[4][4] f_2:four[4][5] f_2:four[4][6] + 0 282.10052 -5237.458 -6372.3765 1134.9186 -6442.7679 16.557152 292.14604 9.9349081 7.5836631 7.1190202 -6.8079888 1.359678 49.37792 56.51754 47.29492 50.41495 56.13038 47.3898 + 10 305.06149 -5058.8971 -6286.1899 1227.2929 -6413.1019 58.8499 103.38345 10.156809 8.5706366 6.3222145 -7.4429686 0.3765284 49.983341 56.910572 47.85253 50.78918 56.215207 48.170976 + 20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695 10.231795 9.1752182 6.1302793 -7.738601 -0.26762408 50.182875 56.817586 48.821609 50.919249 56.133768 49.295377 + 30 314.22337 -4993.7011 -6257.8532 1264.152 -6421.9678 35.344144 10.563932 10.121845 9.556793 6.0591636 -7.0236976 -1.2093197 50.244384 56.568069 49.528336 50.542803 55.686883 50.135603 + 40 297.87492 -5020.8375 -6219.2181 1198.3806 -6389.8526 27.723134 3.8354514 9.985662 9.7234074 6.3157034 -6.6887145 -1.7291266 50.070488 56.345592 50.084324 50.174955 55.539447 50.841612 + 50 304.0207 -5056.2575 -6279.3632 1223.1057 -6456.8213 55.459507 0.20678213 9.9884305 9.9367403 5.9581386 -7.275102 -1.7580565 50.179375 56.585035 50.114785 50.307955 56.096989 51.104519 + 60 285.92576 -5104.046 -6254.354 1150.3079 -6435.5813 32.76723 0.69352954 10.072164 9.9069251 6.0257705 -7.1963739 -1.7205727 50.116848 56.778831 49.916265 50.467724 56.848841 50.968018 + 70 277.83519 -5163.9756 -6281.7344 1117.7587 -6447.7031 39.627168 11.433604 10.135229 9.5413223 6.1354229 -7.4278185 -1.3760011 49.837911 56.646606 49.595245 50.622639 56.945099 50.322854 + 80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6369 31.611883 6.355418 10.074621 9.6513741 6.4022232 -7.6619517 -1.0045098 49.991232 56.644179 49.573092 50.69014 57.059472 50.330286 + 90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941574 10.033333 9.9207709 5.8651395 -7.7191725 -1.2220489 50.226134 56.64655 49.598678 51.224632 56.626691 50.085406 SHAKE stats (type/ave/delta/count) on step 100 Bond: 4 1.11098 8.97155e-05 9 Bond: 6 0.996996 1.00568e-05 6 @@ -300,24 +373,24 @@ Bond: 12 1.08 7.2713e-06 9 Bond: 14 0.959996 0 1 Bond: 18 0.957198 3.36079e-05 1280 Angle: 31 104.52 0.0030599 640 - 100 260.10611 -5292.6885 -6339.1214 1046.4329 -6471.6733 25.362042 0.2198733 + 100 260.10611 -5292.6885 -6339.1214 1046.4329 -6471.6733 25.362042 0.2198733 10.013699 10.064883 5.3514858 -7.5801217 -1.0479466 50.567267 56.511236 49.474958 51.588471 56.078685 49.539477 Saving collective variables state to "out.colvars.state". -Loop time of 0.875226 on 1 procs for 100 steps with 2004 atoms +Loop time of 0.707444 on 1 procs for 100 steps with 2004 atoms -Performance: 19.743 ns/day, 1.216 hours/ns, 114.256 timesteps/s, 228.970 katom-step/s -99.5% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 24.426 ns/day, 0.983 hours/ns, 141.354 timesteps/s, 283.273 katom-step/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.69729 | 0.69729 | 0.69729 | 0.0 | 79.67 -Bond | 0.001366 | 0.001366 | 0.001366 | 0.0 | 0.16 -Kspace | 0.041098 | 0.041098 | 0.041098 | 0.0 | 4.70 -Neigh | 0.12128 | 0.12128 | 0.12128 | 0.0 | 13.86 -Comm | 0.0033425 | 0.0033425 | 0.0033425 | 0.0 | 0.38 -Output | 0.00013746 | 0.00013746 | 0.00013746 | 0.0 | 0.02 -Modify | 0.010211 | 0.010211 | 0.010211 | 0.0 | 1.17 -Other | | 0.0005003 | | | 0.06 +Pair | 0.51874 | 0.51874 | 0.51874 | 0.0 | 73.33 +Bond | 0.0007 | 0.0007 | 0.0007 | 0.0 | 0.10 +Kspace | 0.046265 | 0.046265 | 0.046265 | 0.0 | 6.54 +Neigh | 0.13015 | 0.13015 | 0.13015 | 0.0 | 18.40 +Comm | 0.002999 | 0.002999 | 0.002999 | 0.0 | 0.42 +Output | 0.000144 | 0.000144 | 0.000144 | 0.0 | 0.02 +Modify | 0.008171 | 0.008171 | 0.008171 | 0.0 | 1.16 +Other | | 0.000276 | | | 0.04 Nlocal: 2004 ave 2004 max 2004 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -332,47 +405,11 @@ Ave special neighs/atom = 2.3403194 Neighbor list builds = 12 Dangerous builds = 2 -run 100 - CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE Your simulation uses code contributions which should be cited: - - Colvars module (Fiorin2013, plus other works listed for specific features) - - -% Colvars module: -% Colvars-LAMMPS interface: -% Harmonic colvar bias implementation: -% Optimal rotation via flexible fitting: -% distance colvar component: - -@article{Fiorin2013, - author = {Fiorin, Giacomo and Klein, Michael L.{} and H\'enin, J\'er\^ome}, - title = {Using collective variables to drive molecular dynamics simulations}, - journal = {Mol. Phys.}, - year = {2013}, - volume = {111}, - number = {22-23}, - pages = {3345--3362}, - publisher = {Taylor & Francis}, - doi = {10.1080/00268976.2013.813594}, - url = {https://doi.org/10.1080/00268976.2013.813594} -} - - -% LAMMPS engine: - -@article{Thompson2022, - title = {{LAMMPS} - a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales}, - author = {Thompson, Aidan P. and Aktulga, H. Metin and Berger, Richard and Bolintineanu, Dan S. and Brown, W. Michael and Crozier, Paul S. and {in't Veld}, Pieter J. and Kohlmeyer, Axel and Moore, Stan G. and Nguyen, Trung Dac and Shan, Ray and Stevens, Mark J. and Tranchida, Julien and Trott, Christian and Plimpton, Steven J.}, - journal = {Comp. Phys. Comm.}, - volume = {271}, - pages = {108171}, - year = {2022}, - doi = {10.1016/j.cpc.2021.108171}, - url = {https://doi.org/10.1016/j.cpc.2021.108171} -} +The log file lists these citations in BibTeX format. CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE @@ -383,15 +420,22 @@ PPPM initialization ... stencil order = 5 estimated absolute RMS force accuracy = 0.022820853 estimated relative force accuracy = 6.872432e-05 - using double precision FFTW3 + using double precision KISS FFT 3d grid and FFT values/proc = 10648 3375 Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule +Setting up Verlet run ... + Unit style : real + Current step : 100 + Time step : 2 Current simulation parameters: initial step = 100, integration timestep = 2 Updating atomic parameters (masses, charges, etc). Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17. Re-initialized atom group for variable "one":0/1. 1 atoms: total mass = 12.011, total charge = 0.51. Re-initialized atom group for variable "two":0/0. 4 atoms: total mass = 15.035, total charge = 0.16. Re-initialized atom group for variable "two":0/1. 1 atoms: total mass = 12.011, total charge = 0.51. +Re-initialized atom group for variable "three":0/0. 4 atoms: total mass = 15.035, total charge = 0.16. +Re-initialized atom group for variable "three":0/1. 1 atoms: total mass = 1.01, total charge = 0.417. +Re-initialized atom group for variable "four":0/0. 2 atoms: total mass = 13.019, total charge = -0.02. SHAKE stats (type/ave/delta/count) on step 100 Bond: 4 1.11098 8.97155e-05 9 Bond: 6 0.996996 1.00568e-05 6 @@ -402,17 +446,17 @@ Bond: 14 0.959996 0 1 Bond: 18 0.957198 3.36079e-05 1280 Angle: 31 104.52 0.0030599 640 Per MPI rank memory allocation (min/avg/max) = 19.03 | 19.03 | 19.03 Mbytes - Step Temp TotEng PotEng KinEng E_pair E_bond f_2 - 100 260.10611 -5292.6885 -6339.1214 1046.4329 -6471.6733 25.362042 0.2198733 - 110 266.2644 -5341.199 -6412.4073 1071.2083 -6552.7551 33.573175 1.9229648 - 120 262.66604 -5386.2386 -6442.9704 1056.7317 -6587.5483 29.85959 2.7124806 - 130 252.83384 -5422.5401 -6439.7159 1017.1758 -6580.4705 25.979344 1.2031596 - 140 253.85112 -5452.1837 -6473.4522 1021.2684 -6609.4826 26.071655 0.3058554 - 150 261.31822 -5490.4725 -6541.7819 1051.3093 -6646.6077 16.258824 6.9051021 - 160 255.73534 -5521.5936 -6550.4424 1028.8488 -6658.1373 19.717409 12.339682 - 170 253.42529 -5540.0941 -6559.6494 1019.5553 -6656.6678 23.293801 10.290221 - 180 248.51158 -5550.3253 -6550.1122 999.78691 -6661.4233 26.200127 3.4336075 - 190 250.80868 -5555.2555 -6564.2839 1009.0284 -6666.1644 25.536352 3.3494322 + Step Temp TotEng PotEng KinEng E_pair E_bond f_2:energy f_2:one[1][1] f_2:two[2][1] f_2:three[3][1] f_2:three[3][2] f_2:three[3][3] f_2:four[4][1] f_2:four[4][2] f_2:four[4][3] f_2:four[4][4] f_2:four[4][5] f_2:four[4][6] + 100 260.10611 -5292.6885 -6339.1214 1046.4329 -6471.6733 25.362042 0.2198733 10.013699 10.064883 5.3514858 -7.5801217 -1.0479466 50.567267 56.511236 49.474958 51.588471 56.078685 49.539477 + 110 266.2644 -5341.199 -6412.4073 1071.2083 -6552.7551 33.573175 1.9229648 9.9802933 9.8048822 5.2411427 -7.0541765 -0.6414445 50.69293 56.029391 49.124934 51.713602 55.608173 49.247849 + 120 262.66604 -5386.2386 -6442.9703 1056.7317 -6587.5483 29.85959 2.7124806 10.044874 9.7714482 5.2901837 -6.9033068 -0.66394551 50.619972 56.097254 49.097325 51.00181 55.12382 49.472737 + 130 252.83384 -5422.54 -6439.7159 1017.1758 -6580.4705 25.979344 1.2031596 10.153531 9.9778325 5.3694197 -7.2857389 -0.75207416 50.554418 56.264786 49.284118 51.22059 55.735784 49.998744 + 140 253.85112 -5452.1836 -6473.4521 1021.2684 -6609.4826 26.071656 0.30585544 10.074586 9.9764612 5.6542784 -7.5832924 -0.71827367 50.281052 56.452554 49.337035 50.802988 56.263892 50.299452 + 150 261.31822 -5490.4725 -6541.7819 1051.3093 -6646.6077 16.258824 6.9051021 9.975999 9.629155 6.2130562 -7.4944183 -0.50237208 49.781972 56.491699 49.165521 49.991509 56.435952 50.255155 + 160 255.73533 -5521.5936 -6550.4424 1028.8488 -6658.1373 19.717409 12.339682 9.9591119 9.5049022 6.4531665 -7.9252463 -0.19069509 49.494624 56.556798 49.119664 49.676833 57.253786 49.965431 + 170 253.42528 -5540.0942 -6559.6494 1019.5552 -6656.6678 23.293801 10.290221 9.9789667 9.5468311 6.4376072 -7.8756038 -0.23499793 49.311339 56.77997 49.019156 49.035028 57.548601 49.772244 + 180 248.51158 -5550.3254 -6550.1123 999.78692 -6661.4234 26.200128 3.4336073 10.012725 9.7382554 6.586172 -7.6747836 -0.22562256 49.295602 57.056556 48.938019 49.059482 57.850613 49.678316 + 190 250.80868 -5555.2555 -6564.284 1009.0284 -6666.1644 25.536353 3.3494322 10.02722 9.7426137 6.7109746 -7.9839589 0.049867174 49.308913 57.060968 48.840976 49.207167 58.051165 49.334409 SHAKE stats (type/ave/delta/count) on step 200 Bond: 4 1.111 1.81263e-06 9 Bond: 6 0.997 7.7941e-07 6 @@ -422,24 +466,24 @@ Bond: 12 1.08 4.69031e-07 9 Bond: 14 0.960001 0 1 Bond: 18 0.957201 3.76468e-06 1280 Angle: 31 104.52 0.000411053 640 - 200 251.50491 -5557.4253 -6569.2547 1011.8294 -6674.0854 24.804919 7.1387625 + 200 251.50491 -5557.4253 -6569.2547 1011.8294 -6674.0854 24.804919 7.1387631 10.012773 9.6223598 6.6602049 -7.5178656 0.17196526 49.295987 56.936817 48.638254 49.227974 57.927877 49.135745 Saving collective variables state to "out.colvars.state". -Loop time of 0.837922 on 1 procs for 100 steps with 2004 atoms +Loop time of 0.665032 on 1 procs for 100 steps with 2004 atoms -Performance: 20.622 ns/day, 1.164 hours/ns, 119.343 timesteps/s, 239.163 katom-step/s -99.5% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 25.984 ns/day, 0.924 hours/ns, 150.369 timesteps/s, 301.339 katom-step/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.70731 | 0.70731 | 0.70731 | 0.0 | 84.41 -Bond | 0.0013939 | 0.0013939 | 0.0013939 | 0.0 | 0.17 -Kspace | 0.041896 | 0.041896 | 0.041896 | 0.0 | 5.00 -Neigh | 0.073708 | 0.073708 | 0.073708 | 0.0 | 8.80 -Comm | 0.002979 | 0.002979 | 0.002979 | 0.0 | 0.36 -Output | 0.00016374 | 0.00016374 | 0.00016374 | 0.0 | 0.02 -Modify | 0.009977 | 0.009977 | 0.009977 | 0.0 | 1.19 -Other | | 0.0004913 | | | 0.06 +Pair | 0.52936 | 0.52936 | 0.52936 | 0.0 | 79.60 +Bond | 0.000709 | 0.000709 | 0.000709 | 0.0 | 0.11 +Kspace | 0.04661 | 0.04661 | 0.04661 | 0.0 | 7.01 +Neigh | 0.077371 | 0.077371 | 0.077371 | 0.0 | 11.63 +Comm | 0.002546 | 0.002546 | 0.002546 | 0.0 | 0.38 +Output | 0.000118 | 0.000118 | 0.000118 | 0.0 | 0.02 +Modify | 0.00804 | 0.00804 | 0.00804 | 0.0 | 1.21 +Other | | 0.000275 | | | 0.04 Nlocal: 2004 ave 2004 max 2004 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -453,22 +497,19 @@ Ave neighs/atom = 353.33483 Ave special neighs/atom = 2.3403194 Neighbor list builds = 7 Dangerous builds = 0 - -fix 2 all colvars peptide.colvars input out.colvars.state output out2 ---------------------------------------------------------------------- -Initializing the collective variables module, version 2025-04-30. +Initializing the collective variables module, version 2025-08-27. Please cite Fiorin et al, Mol Phys 2013: https://doi.org/10.1080/00268976.2013.813594 as well as all other papers listed below for individual features used. Summary of compile-time features available in this build: - C++ language version: 201703 - - Multiple replicas: not available + - Multiple replicas: available, but not (yet) enabled - Lepton custom functions: available - Tcl interpreter: not available -Using LAMMPS interface, version "2025-03-31". +Using LAMMPS interface, version "2025-05-12". Setting initial step number from MD engine: 200 - -run 100 +WARNING: New thermo_style command, previous thermo_modify settings will be lost (src/output.cpp:1100) PPPM initialization ... using 12-bit tables for long-range coulomb G vector (1/distance) = 0.26872465 @@ -476,13 +517,19 @@ PPPM initialization ... stencil order = 5 estimated absolute RMS force accuracy = 0.022820853 estimated relative force accuracy = 6.872432e-05 - using double precision FFTW3 + using double precision KISS FFT 3d grid and FFT values/proc = 10648 3375 Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule +Setting up Verlet run ... + Unit style : real + Current step : 200 + Time step : 2 Will read input state from file "out.colvars.state"---------------------------------------------------------------------- Reading new configuration from file "peptide.colvars": # units = "" [default] # smp = "cvcs" [default] +SMP parallelism will be applied to Colvars components. + - SMP parallelism: enabled (num. threads = 1) # colvarsTrajFrequency = 1 # colvarsRestartFrequency = 1000 # scriptedColvarForces = off [default] @@ -604,9 +651,9 @@ Collective variables initialized, 2 in total. # name = "h_pot" # colvars = { one, two } # stepZeroData = off [default] + # timeStepFactor = 1 [default] # outputEnergy = off [default] # outputFreq = 1000 [default] - # timeStepFactor = 1 [default] # writeTISamples = off [default] # writeTIPMF = off [default] # centers = { 10, 10 } @@ -645,44 +692,44 @@ Bond: 14 0.960001 0 1 Bond: 18 0.957201 3.76468e-06 1280 Angle: 31 104.52 0.000411053 640 Per MPI rank memory allocation (min/avg/max) = 19.03 | 19.03 | 19.03 Mbytes - Step Temp TotEng PotEng KinEng E_pair E_bond f_2 - 200 251.50491 -5557.4253 -6569.2547 1011.8294 -6674.0854 24.804919 7.1387625 - 210 253.15308 -5538.5652 -6557.0253 1018.4601 -6672.0536 37.676597 0.61220051 - 220 245.19642 -5522.5163 -6508.966 986.44973 -6628.188 36.657689 0.048643226 - 230 258.69807 -5495.731 -6536.4992 1040.7682 -6658.289 34.857874 0.22091688 - 240 260.79678 -5469.8717 -6519.0832 1049.2115 -6624.1856 31.576948 3.7574906 - 250 269.07478 -5438.3946 -6520.9093 1082.5147 -6616.4361 25.44764 8.6600558 - 260 266.011 -5397.3478 -6467.5366 1070.1888 -6580.2908 26.871876 8.3323545 - 270 272.81289 -5350.8824 -6448.4359 1097.5535 -6563.8224 23.114152 10.973141 - 280 279.42318 -5307.9786 -6432.126 1124.1474 -6557.3377 33.643935 8.5490101 - 290 286.8495 -5260.8412 -6414.8654 1154.0242 -6515.6708 28.574747 5.9100395 + Step Temp TotEng PotEng KinEng E_pair E_bond f_2:energy f_2:one[1][1] f_2:two[2][1] + 200 251.50491 -5557.4253 -6569.2547 1011.8294 -6674.0854 24.804919 7.1387631 10.012773 9.6223598 + 210 253.15307 -5538.565 -6557.0252 1018.4601 -6672.0535 37.676595 0.6122009 10.00674 9.8895528 + 220 245.19643 -5522.5163 -6508.966 986.44977 -6628.188 36.657689 0.048643208 9.9845109 9.9729269 + 230 258.69811 -5495.731 -6536.4994 1040.7684 -6658.2891 34.857874 0.22091685 9.9807905 9.9363656 + 240 260.79684 -5469.8725 -6519.0842 1049.2117 -6624.1866 31.576948 3.7574906 10.046324 9.7298076 + 250 269.07481 -5438.3944 -6520.9093 1082.5148 -6616.4361 25.447642 8.6600565 10.081739 9.5919315 + 260 266.01085 -5397.3476 -6467.5358 1070.1882 -6580.2901 26.87188 8.3323539 10.035501 9.5933223 + 270 272.81292 -5350.8807 -6448.4343 1097.5536 -6563.8208 23.114146 10.973144 10.071613 9.5370373 + 280 279.42302 -5307.9795 -6432.1263 1124.1467 -6557.3379 33.643929 8.5490145 10.059855 9.5908574 + 290 286.84962 -5260.8412 -6414.8659 1154.0247 -6515.6714 28.574744 5.91004 10.039198 9.6584384 SHAKE stats (type/ave/delta/count) on step 300 Bond: 4 1.111 1.79797e-05 9 -Bond: 6 0.997005 1.02517e-05 6 +Bond: 6 0.997005 1.02516e-05 6 Bond: 8 1.08 1.85102e-05 7 -Bond: 10 1.111 9.98838e-06 8 -Bond: 12 1.08 8.8411e-06 9 +Bond: 10 1.111 9.98836e-06 8 +Bond: 12 1.08 8.84111e-06 9 Bond: 14 0.960008 0 1 -Bond: 18 0.957203 1.84466e-05 1280 -Angle: 31 104.52 0.00168371 640 - 300 291.527 -5216.2851 -6389.1273 1172.8423 -6503.1206 27.889003 2.2482527 +Bond: 18 0.957203 1.84467e-05 1280 +Angle: 31 104.52 0.00168372 640 + 300 291.52708 -5216.2854 -6389.128 1172.8426 -6503.1213 27.889007 2.2482528 9.9531638 9.7931875 Saving collective variables state to "out2.colvars.state". -Loop time of 0.852557 on 1 procs for 100 steps with 2004 atoms +Loop time of 0.683558 on 1 procs for 100 steps with 2004 atoms -Performance: 20.268 ns/day, 1.184 hours/ns, 117.294 timesteps/s, 235.058 katom-step/s -99.5% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 25.279 ns/day, 0.949 hours/ns, 146.293 timesteps/s, 293.172 katom-step/s +99.6% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.71436 | 0.71436 | 0.71436 | 0.0 | 83.79 -Bond | 0.0013938 | 0.0013938 | 0.0013938 | 0.0 | 0.16 -Kspace | 0.042703 | 0.042703 | 0.042703 | 0.0 | 5.01 -Neigh | 0.080418 | 0.080418 | 0.080418 | 0.0 | 9.43 -Comm | 0.0030098 | 0.0030098 | 0.0030098 | 0.0 | 0.35 -Output | 0.00011964 | 0.00011964 | 0.00011964 | 0.0 | 0.01 -Modify | 0.010058 | 0.010058 | 0.010058 | 0.0 | 1.18 -Other | | 0.0004936 | | | 0.06 +Pair | 0.53734 | 0.53734 | 0.53734 | 0.0 | 78.61 +Bond | 0.000702 | 0.000702 | 0.000702 | 0.0 | 0.10 +Kspace | 0.046629 | 0.046629 | 0.046629 | 0.0 | 6.82 +Neigh | 0.088304 | 0.088304 | 0.088304 | 0.0 | 12.92 +Comm | 0.002628 | 0.002628 | 0.002628 | 0.0 | 0.38 +Output | 7.6e-05 | 7.6e-05 | 7.6e-05 | 0.0 | 0.01 +Modify | 0.00759 | 0.00759 | 0.00759 | 0.0 | 1.11 +Other | | 0.000288 | | | 0.04 Nlocal: 2004 ave 2004 max 2004 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -697,4 +744,12 @@ Ave special neighs/atom = 2.3403194 Neighbor list builds = 8 Dangerous builds = 0 +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: +- Colvars module (Fiorin2013, plus other works listed for specific features) +The log file lists these citations in BibTeX format. + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + Total wall time: 0:00:02 diff --git a/examples/PACKAGES/colvars/log.14Jul25.peptide-colvars.g++.4 b/examples/PACKAGES/colvars/log.12Mar26.peptide-colvars.g++.4 similarity index 56% rename from examples/PACKAGES/colvars/log.14Jul25.peptide-colvars.g++.4 rename to examples/PACKAGES/colvars/log.12Mar26.peptide-colvars.g++.4 index 03dd1c1b415..270bd2ad6b1 100644 --- a/examples/PACKAGES/colvars/log.14Jul25.peptide-colvars.g++.4 +++ b/examples/PACKAGES/colvars/log.12Mar26.peptide-colvars.g++.4 @@ -1,18 +1,5 @@ -LAMMPS (12 Jun 2025 - Development - patch_12Jun2025-739-g2644e7f6fa-modified) +LAMMPS (11 Feb 2026 - Development - patch_11Feb2026-296-ga88fa287a2-modified) using 1 OpenMP thread(s) per MPI task -# Solvated 5-mer peptide - -units real -atom_style full - -pair_style lj/charmm/coul/long 8.0 10.0 10.0 -bond_style harmonic -angle_style charmm -dihedral_style charmm -improper_style harmonic -kspace_style pppm 0.0001 - -read_data data.peptide Reading data file ... orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462) 1 by 2 by 2 MPI processor grid @@ -46,83 +33,35 @@ Finding 1-2 1-3 1-4 neighbors ... 14 = max # of 1-4 neighbors 18 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.010 seconds - -neighbor 2.0 bin -neigh_modify delay 5 - -timestep 2.0 - -group peptide type <= 12 + read_data CPU = 0.008 seconds 84 atoms in group peptide -group one id 2 4 5 6 4 atoms in group one -group two id 80 82 83 84 4 atoms in group two -group ref id 37 1 atoms in group ref -group colvar union one two ref 9 atoms in group colvar - -fix 1 all nvt temp 275.0 275.0 100.0 tchain 1 - -shell "rm -f out*.colvars.*" -fix 2 all colvars peptide.colvars ---------------------------------------------------------------------- -Initializing the collective variables module, version 2025-04-30. +Initializing the collective variables module, version 2025-08-27. Please cite Fiorin et al, Mol Phys 2013: https://doi.org/10.1080/00268976.2013.813594 as well as all other papers listed below for individual features used. Summary of compile-time features available in this build: - C++ language version: 201703 - - Multiple replicas: not available + - Multiple replicas: available, but not (yet) enabled - Lepton custom functions: available - Tcl interpreter: not available -Using LAMMPS interface, version "2025-03-31". -fix 2a ref setforce 0.0 0.0 0.0 - -fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31 +Using LAMMPS interface, version "2025-05-12". Finding SHAKE clusters ... 19 = # of size 2 clusters 6 = # of size 3 clusters 3 = # of size 4 clusters 640 = # of frozen angles find clusters CPU = 0.000 seconds - -#dump 1 colvar custom 1 dump.colvar.lammpstrj id xu yu zu fx fy fz -#dump_modify 1 sort id - -thermo_style custom step temp etotal pe ke epair ebond f_2 -thermo 10 - - -run 100 -PPPM initialization ... - using 12-bit tables for long-range coulomb - G vector (1/distance) = 0.26872465 - grid = 15 15 15 - stencil order = 5 - estimated absolute RMS force accuracy = 0.022820853 - estimated relative force accuracy = 6.872432e-05 - using double precision FFTW3 - 3d grid and FFT values/proc = 4312 960 -Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule -Neighbor list info ... - update: every = 1 steps, delay = 5 steps, check = yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/charmm/coul/long, perpetual - attributes: half, newton on - pair build: half/bin/newton - stencil: half/bin/3d - bin: standard ---------------------------------------------------------------------- Reading new configuration from file "peptide.colvars": # units = "" [default] # smp = "cvcs" [default] +SMP parallelism will be applied to Colvars components. + - SMP parallelism: enabled (num. threads = 1) # colvarsTrajFrequency = 1 # colvarsRestartFrequency = 1000 # scriptedColvarForces = off [default] @@ -244,9 +183,9 @@ Collective variables initialized, 2 in total. # name = "h_pot" # colvars = { one, two } # stepZeroData = off [default] + # timeStepFactor = 1 [default] # outputEnergy = off [default] # outputFreq = 1000 [default] - # timeStepFactor = 1 [default] # writeTISamples = off [default] # writeTIPMF = off [default] # centers = { 10, 10 } @@ -262,12 +201,146 @@ Collective variables biases initialized, 1 in total. ---------------------------------------------------------------------- Collective variables module (re)initialized. ---------------------------------------------------------------------- +---------------------------------------------------------------------- +Reading new configuration: +# units = "" [default] +# smp = "cvcs" [default] +SMP parallelism will be applied to Colvars components. + - SMP parallelism: enabled (num. threads = 1) +# colvarsTrajFrequency = 1 [default] +# colvarsRestartFrequency = 1000 [default] +# scriptedColvarForces = off [default] +# scriptingAfterBiases = off [default] +---------------------------------------------------------------------- + Initializing a new collective variable. + # name = "three" + Initializing a new "distanceVec" component. + # name = "" [default] + # componentCoeff = 1 [default] + # componentExp = 1 [default] + # period = 0 [default] + # wrapAround = 0 [default] + # forceNoPBC = off [default] + # scalable = on [default] + Initializing atom group "group1". + # name = "" [default] + # centerToOrigin = off [default] + # centerToReference = off [default] + # rotateToReference = off [default] + # atomsOfGroup = "" [default] + # indexGroup = "" [default] + # psfSegID = [default] + # atomsFile = "" [default] + # dummyAtom = ( 0 , 0 , 0 ) [default] + # enableFitGradients = on [default] + # printAtomIDs = off [default] + Atom group "group1" defined with 4 atoms requested. + Initializing atom group "group2". + # name = "" [default] + # centerToOrigin = off [default] + # centerToReference = off [default] + # rotateToReference = off [default] + # atomsOfGroup = "" [default] + # indexGroup = "" [default] + # psfSegID = [default] + # atomsFile = "" [default] + # dummyAtom = ( 0 , 0 , 0 ) [default] + # enableFitGradients = on [default] + # printAtomIDs = off [default] + Atom group "group2" defined with 1 atoms requested. + # oneSiteSystemForce = off [default] + # oneSiteTotalForce = off [default] + All components initialized. + # timeStepFactor = 1 [default] + # width = 1 [default] + # extendedLagrangian = off [default] + # outputValue = on [default] + # outputVelocity = off [default] + # outputTotalForce = off [default] + # outputAppliedForce = off [default] + # subtractAppliedForce = off [default] + # runAve = off [default] + # corrFunc = off [default] +---------------------------------------------------------------------- + Initializing a new collective variable. + # name = "four" + Initializing a new "cartesian" component. + # name = "" [default] + # componentCoeff = 1 [default] + # componentExp = 1 [default] + # period = 0 [default] + # wrapAround = 0 [default] + # forceNoPBC = off [default] + # scalable = on [default] + Initializing atom group "atoms". + # name = "" [default] + # centerToOrigin = off [default] + # centerToReference = off [default] + # rotateToReference = off [default] + # atomsOfGroup = "" [default] + # indexGroup = "" [default] + # psfSegID = [default] + # atomsFile = "" [default] + # dummyAtom = ( 0 , 0 , 0 ) [default] + # enableFitGradients = on [default] + # printAtomIDs = off [default] + Atom group "atoms" defined with 2 atoms requested. + # useX = on [default] + # useY = on [default] + # useZ = on [default] + All components initialized. + # timeStepFactor = 1 [default] + # width = 1 [default] + # extendedLagrangian = off [default] + # outputValue = on [default] + # outputVelocity = off [default] + # outputTotalForce = off [default] + # outputAppliedForce = off [default] + # subtractAppliedForce = off [default] + # runAve = off [default] + # corrFunc = off [default] +---------------------------------------------------------------------- +Collective variables initialized, 4 in total. +---------------------------------------------------------------------- +Collective variables biases initialized, 1 in total. +---------------------------------------------------------------------- +Collective variables module (re)initialized. +---------------------------------------------------------------------- +PPPM initialization ... + using 12-bit tables for long-range coulomb + G vector (1/distance) = 0.26872465 + grid = 15 15 15 + stencil order = 5 + estimated absolute RMS force accuracy = 0.022820853 + estimated relative force accuracy = 6.872432e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 4312 960 +Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 5 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/charmm/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 2 Current simulation parameters: initial step = 0, integration timestep = 2 Updating atomic parameters (masses, charges, etc). Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17. Re-initialized atom group for variable "one":0/1. 1 atoms: total mass = 12.011, total charge = 0.51. Re-initialized atom group for variable "two":0/0. 4 atoms: total mass = 15.035, total charge = 0.16. Re-initialized atom group for variable "two":0/1. 1 atoms: total mass = 12.011, total charge = 0.51. +Re-initialized atom group for variable "three":0/0. 4 atoms: total mass = 15.035, total charge = 0.16. +Re-initialized atom group for variable "three":0/1. 1 atoms: total mass = 1.01, total charge = 0.417. +Re-initialized atom group for variable "four":0/0. 2 atoms: total mass = 13.019, total charge = -0.02. The final output state file will be "out.colvars.state". Synchronizing (emptying the buffer of) trajectory file "out.colvars.traj". SHAKE stats (type/ave/delta/count) on step 0 @@ -280,17 +353,17 @@ Bond: 14 0.96 0 1 Bond: 18 0.957206 4.37979e-05 1280 Angle: 31 104.519 0.00396029 640 Per MPI rank memory allocation (min/avg/max) = 16.02 | 16.22 | 16.41 Mbytes - Step Temp TotEng PotEng KinEng E_pair E_bond f_2 - 0 282.10052 -5237.458 -6372.3765 1134.9186 -6442.7679 16.557152 292.14604 - 10 305.06149 -5058.8971 -6286.1899 1227.2929 -6413.1019 58.8499 103.38345 - 20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695 - 30 314.22337 -4993.7011 -6257.8532 1264.152 -6421.9678 35.344144 10.563932 - 40 297.87492 -5020.8375 -6219.2181 1198.3806 -6389.8526 27.723134 3.8354514 - 50 304.0207 -5056.2575 -6279.3632 1223.1057 -6456.8213 55.459507 0.20678213 - 60 285.92576 -5104.0461 -6254.354 1150.3079 -6435.5813 32.76723 0.69352954 - 70 277.83519 -5163.9756 -6281.7343 1117.7587 -6447.7031 39.627168 11.433604 - 80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6368 31.611883 6.355418 - 90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941574 + Step Temp TotEng PotEng KinEng E_pair E_bond f_2:energy f_2:one[1][1] f_2:two[2][1] f_2:three[3][1] f_2:three[3][2] f_2:three[3][3] f_2:four[4][1] f_2:four[4][2] f_2:four[4][3] f_2:four[4][4] f_2:four[4][5] f_2:four[4][6] + 0 282.10052 -5237.458 -6372.3765 1134.9186 -6442.7679 16.557152 292.14604 9.9349081 7.5836631 7.1190202 -6.8079888 1.359678 49.37792 56.51754 47.29492 50.41495 56.13038 47.3898 + 10 305.06149 -5058.8971 -6286.1899 1227.2929 -6413.1019 58.8499 103.38345 10.156809 8.5706366 6.3222145 -7.4429686 0.3765284 49.983341 56.910572 47.85253 50.78918 56.215207 48.170976 + 20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695 10.231795 9.1752182 6.1302793 -7.738601 -0.26762408 50.182875 56.817586 48.821609 50.919249 56.133768 49.295377 + 30 314.22337 -4993.7011 -6257.8532 1264.152 -6421.9678 35.344144 10.563932 10.121845 9.556793 6.0591636 -7.0236976 -1.2093197 50.244384 56.568069 49.528336 50.542803 55.686883 50.135603 + 40 297.87492 -5020.8375 -6219.2181 1198.3806 -6389.8526 27.723134 3.8354514 9.985662 9.7234074 6.3157034 -6.6887145 -1.7291266 50.070488 56.345592 50.084324 50.174955 55.539447 50.841612 + 50 304.0207 -5056.2575 -6279.3632 1223.1057 -6456.8213 55.459507 0.20678213 9.9884305 9.9367403 5.9581386 -7.275102 -1.7580565 50.179375 56.585035 50.114785 50.307955 56.096989 51.104519 + 60 285.92576 -5104.046 -6254.354 1150.3079 -6435.5813 32.76723 0.69352954 10.072164 9.9069251 6.0257705 -7.1963739 -1.7205727 50.116848 56.778831 49.916265 50.467724 56.848841 50.968018 + 70 277.83519 -5163.9756 -6281.7344 1117.7587 -6447.7031 39.627168 11.433604 10.135229 9.5413223 6.1354229 -7.4278185 -1.3760011 49.837911 56.646606 49.595245 50.622639 56.945099 50.322854 + 80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6369 31.611883 6.355418 10.074621 9.6513741 6.4022232 -7.6619517 -1.0045098 49.991232 56.644179 49.573092 50.69014 57.059472 50.330286 + 90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941574 10.033333 9.9207709 5.8651395 -7.7191725 -1.2220489 50.226134 56.64655 49.598678 51.224632 56.626691 50.085406 SHAKE stats (type/ave/delta/count) on step 100 Bond: 4 1.11098 8.97155e-05 9 Bond: 6 0.996996 1.00568e-05 6 @@ -300,24 +373,24 @@ Bond: 12 1.08 7.2713e-06 9 Bond: 14 0.959996 0 1 Bond: 18 0.957198 3.36079e-05 1280 Angle: 31 104.52 0.0030599 640 - 100 260.10611 -5292.6885 -6339.1214 1046.4329 -6471.6733 25.362042 0.2198733 + 100 260.10612 -5292.6884 -6339.1213 1046.4329 -6471.6733 25.362042 0.2198733 10.013699 10.064883 5.3514858 -7.5801217 -1.0479466 50.567267 56.511236 49.474958 51.588471 56.078685 49.539477 Saving collective variables state to "out.colvars.state". -Loop time of 0.24563 on 4 procs for 100 steps with 2004 atoms +Loop time of 0.195328 on 4 procs for 100 steps with 2004 atoms -Performance: 70.350 ns/day, 0.341 hours/ns, 407.117 timesteps/s, 815.862 katom-step/s -98.8% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 88.467 ns/day, 0.271 hours/ns, 511.959 timesteps/s, 1.026 Matom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.17639 | 0.17936 | 0.18196 | 0.6 | 73.02 -Bond | 0.00026356 | 0.00053838 | 0.00085041 | 0.0 | 0.22 -Kspace | 0.017323 | 0.020224 | 0.022946 | 1.8 | 8.23 -Neigh | 0.03154 | 0.031549 | 0.031563 | 0.0 | 12.84 -Comm | 0.0062434 | 0.0063988 | 0.0065508 | 0.1 | 2.61 -Output | 0.00013807 | 0.00015287 | 0.00019238 | 0.0 | 0.06 -Modify | 0.0069932 | 0.0070082 | 0.007038 | 0.0 | 2.85 -Other | | 0.0004003 | | | 0.16 +Pair | 0.1294 | 0.13188 | 0.13428 | 0.6 | 67.51 +Bond | 7e-05 | 0.00019975 | 0.000353 | 0.0 | 0.10 +Kspace | 0.017645 | 0.019902 | 0.022224 | 1.4 | 10.19 +Neigh | 0.034096 | 0.03412 | 0.034139 | 0.0 | 17.47 +Comm | 0.00416 | 0.0042395 | 0.004302 | 0.1 | 2.17 +Output | 8.9e-05 | 0.00011 | 0.000165 | 0.0 | 0.06 +Modify | 0.00466 | 0.0046778 | 0.004703 | 0.0 | 2.39 +Other | | 0.000204 | | | 0.10 Nlocal: 501 ave 513 max 489 min Histogram: 1 0 0 0 1 1 0 0 0 1 @@ -332,47 +405,11 @@ Ave special neighs/atom = 2.3403194 Neighbor list builds = 12 Dangerous builds = 2 -run 100 - CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE Your simulation uses code contributions which should be cited: - - Colvars module (Fiorin2013, plus other works listed for specific features) - - -% Colvars module: -% Colvars-LAMMPS interface: -% Harmonic colvar bias implementation: -% Optimal rotation via flexible fitting: -% distance colvar component: - -@article{Fiorin2013, - author = {Fiorin, Giacomo and Klein, Michael L.{} and H\'enin, J\'er\^ome}, - title = {Using collective variables to drive molecular dynamics simulations}, - journal = {Mol. Phys.}, - year = {2013}, - volume = {111}, - number = {22-23}, - pages = {3345--3362}, - publisher = {Taylor & Francis}, - doi = {10.1080/00268976.2013.813594}, - url = {https://doi.org/10.1080/00268976.2013.813594} -} - - -% LAMMPS engine: - -@article{Thompson2022, - title = {{LAMMPS} - a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales}, - author = {Thompson, Aidan P. and Aktulga, H. Metin and Berger, Richard and Bolintineanu, Dan S. and Brown, W. Michael and Crozier, Paul S. and {in't Veld}, Pieter J. and Kohlmeyer, Axel and Moore, Stan G. and Nguyen, Trung Dac and Shan, Ray and Stevens, Mark J. and Tranchida, Julien and Trott, Christian and Plimpton, Steven J.}, - journal = {Comp. Phys. Comm.}, - volume = {271}, - pages = {108171}, - year = {2022}, - doi = {10.1016/j.cpc.2021.108171}, - url = {https://doi.org/10.1016/j.cpc.2021.108171} -} +The log file lists these citations in BibTeX format. CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE @@ -383,15 +420,22 @@ PPPM initialization ... stencil order = 5 estimated absolute RMS force accuracy = 0.022820853 estimated relative force accuracy = 6.872432e-05 - using double precision FFTW3 + using double precision KISS FFT 3d grid and FFT values/proc = 4312 960 Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule +Setting up Verlet run ... + Unit style : real + Current step : 100 + Time step : 2 Current simulation parameters: initial step = 100, integration timestep = 2 Updating atomic parameters (masses, charges, etc). Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17. Re-initialized atom group for variable "one":0/1. 1 atoms: total mass = 12.011, total charge = 0.51. Re-initialized atom group for variable "two":0/0. 4 atoms: total mass = 15.035, total charge = 0.16. Re-initialized atom group for variable "two":0/1. 1 atoms: total mass = 12.011, total charge = 0.51. +Re-initialized atom group for variable "three":0/0. 4 atoms: total mass = 15.035, total charge = 0.16. +Re-initialized atom group for variable "three":0/1. 1 atoms: total mass = 1.01, total charge = 0.417. +Re-initialized atom group for variable "four":0/0. 2 atoms: total mass = 13.019, total charge = -0.02. SHAKE stats (type/ave/delta/count) on step 100 Bond: 4 1.11098 8.97155e-05 9 Bond: 6 0.996996 1.00568e-05 6 @@ -402,44 +446,44 @@ Bond: 14 0.959996 0 1 Bond: 18 0.957198 3.36079e-05 1280 Angle: 31 104.52 0.0030599 640 Per MPI rank memory allocation (min/avg/max) = 16.02 | 16.22 | 16.41 Mbytes - Step Temp TotEng PotEng KinEng E_pair E_bond f_2 - 100 260.10611 -5292.6885 -6339.1214 1046.4329 -6471.6733 25.362042 0.2198733 - 110 266.2644 -5341.1991 -6412.4074 1071.2083 -6552.7551 33.573175 1.9229648 - 120 262.66604 -5386.2387 -6442.9704 1056.7317 -6587.5483 29.85959 2.7124806 - 130 252.83384 -5422.5401 -6439.7159 1017.1758 -6580.4705 25.979344 1.2031596 - 140 253.85112 -5452.1837 -6473.4521 1021.2684 -6609.4826 26.071656 0.30585541 - 150 261.31822 -5490.4727 -6541.782 1051.3093 -6646.6078 16.258824 6.9051021 - 160 255.73533 -5521.5936 -6550.4424 1028.8488 -6658.1373 19.717409 12.339682 - 170 253.42528 -5540.0942 -6559.6494 1019.5553 -6656.6678 23.293802 10.290221 - 180 248.51158 -5550.3254 -6550.1124 999.78692 -6661.4234 26.200127 3.4336074 - 190 250.80868 -5555.2555 -6564.2839 1009.0284 -6666.1643 25.536352 3.3494322 + Step Temp TotEng PotEng KinEng E_pair E_bond f_2:energy f_2:one[1][1] f_2:two[2][1] f_2:three[3][1] f_2:three[3][2] f_2:three[3][3] f_2:four[4][1] f_2:four[4][2] f_2:four[4][3] f_2:four[4][4] f_2:four[4][5] f_2:four[4][6] + 100 260.10612 -5292.6884 -6339.1213 1046.4329 -6471.6733 25.362042 0.2198733 10.013699 10.064883 5.3514858 -7.5801217 -1.0479466 50.567267 56.511236 49.474958 51.588471 56.078685 49.539477 + 110 266.2644 -5341.199 -6412.4073 1071.2083 -6552.7551 33.573175 1.9229648 9.9802933 9.8048822 5.2411427 -7.0541765 -0.64144451 50.69293 56.029391 49.124934 51.713602 55.608173 49.247849 + 120 262.66604 -5386.2385 -6442.9702 1056.7317 -6587.5482 29.85959 2.7124806 10.044874 9.7714482 5.2901838 -6.9033068 -0.66394549 50.619972 56.097254 49.097325 51.00181 55.12382 49.472737 + 130 252.83386 -5422.54 -6439.7159 1017.1759 -6580.4706 25.979344 1.2031596 10.153531 9.9778325 5.3694197 -7.2857389 -0.75207418 50.554418 56.264786 49.284118 51.22059 55.735784 49.998744 + 140 253.85113 -5452.1837 -6473.4522 1021.2685 -6609.4826 26.071656 0.30585544 10.074586 9.9764612 5.6542784 -7.5832923 -0.71827372 50.281052 56.452554 49.337035 50.802988 56.263892 50.299452 + 150 261.31823 -5490.4726 -6541.7819 1051.3094 -6646.6078 16.258824 6.905102 9.975999 9.629155 6.2130564 -7.4944182 -0.50237205 49.781972 56.491699 49.165521 49.991509 56.435952 50.255155 + 160 255.73532 -5521.5935 -6550.4423 1028.8487 -6658.1372 19.717409 12.339682 9.9591119 9.5049022 6.4531668 -7.9252464 -0.19069497 49.494624 56.556798 49.119664 49.676833 57.253786 49.965431 + 170 253.42527 -5540.0942 -6559.6494 1019.5552 -6656.6678 23.293801 10.290221 9.9789667 9.5468311 6.437607 -7.875604 -0.23499814 49.311339 56.77997 49.019156 49.035028 57.548601 49.772245 + 180 248.51156 -5550.3254 -6550.1123 999.78685 -6661.4233 26.200128 3.4336075 10.012725 9.7382554 6.5861718 -7.6747838 -0.22562249 49.295602 57.056556 48.938019 49.059482 57.850613 49.678316 + 190 250.80867 -5555.2556 -6564.2839 1009.0283 -6666.1644 25.536353 3.3494324 10.02722 9.7426137 6.7109743 -7.9839586 0.049867149 49.308913 57.060968 48.840976 49.207167 58.051165 49.33441 SHAKE stats (type/ave/delta/count) on step 200 -Bond: 4 1.111 1.81263e-06 9 -Bond: 6 0.997 7.7941e-07 6 +Bond: 4 1.111 1.81262e-06 9 +Bond: 6 0.997 7.79408e-07 6 Bond: 8 1.08 1.08902e-06 7 -Bond: 10 1.111 2.96499e-07 8 -Bond: 12 1.08 4.69032e-07 9 +Bond: 10 1.111 2.96498e-07 8 +Bond: 12 1.08 4.6903e-07 9 Bond: 14 0.960001 0 1 -Bond: 18 0.957201 3.76468e-06 1280 +Bond: 18 0.957201 3.76465e-06 1280 Angle: 31 104.52 0.000411053 640 - 200 251.50491 -5557.4253 -6569.2547 1011.8294 -6674.0854 24.804919 7.1387624 + 200 251.50492 -5557.4253 -6569.2548 1011.8294 -6674.0855 24.804919 7.1387635 10.012773 9.6223598 6.660204 -7.5178654 0.17196497 49.295987 56.936817 48.638254 49.227974 57.927877 49.135745 Saving collective variables state to "out.colvars.state". -Loop time of 0.236712 on 4 procs for 100 steps with 2004 atoms +Loop time of 0.181263 on 4 procs for 100 steps with 2004 atoms -Performance: 73.000 ns/day, 0.329 hours/ns, 422.454 timesteps/s, 846.598 katom-step/s -99.3% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 95.331 ns/day, 0.252 hours/ns, 551.684 timesteps/s, 1.106 Matom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.1782 | 0.18262 | 0.18719 | 0.9 | 77.15 -Bond | 0.00029235 | 0.00054578 | 0.00086069 | 0.0 | 0.23 -Kspace | 0.016298 | 0.020588 | 0.024955 | 2.7 | 8.70 -Neigh | 0.019372 | 0.019399 | 0.01941 | 0.0 | 8.20 -Comm | 0.0058543 | 0.005969 | 0.0061606 | 0.1 | 2.52 -Output | 0.00013473 | 0.00015423 | 0.00020882 | 0.0 | 0.07 -Modify | 0.0069343 | 0.0069622 | 0.0069861 | 0.0 | 2.94 -Other | | 0.0004723 | | | 0.20 +Pair | 0.1304 | 0.13351 | 0.13724 | 0.8 | 73.66 +Bond | 7.2e-05 | 0.000195 | 0.000347 | 0.0 | 0.11 +Kspace | 0.01588 | 0.019418 | 0.022451 | 2.0 | 10.71 +Neigh | 0.01998 | 0.019982 | 0.019984 | 0.0 | 11.02 +Comm | 0.003437 | 0.0035762 | 0.003745 | 0.2 | 1.97 +Output | 8.3e-05 | 9.4e-05 | 0.000126 | 0.0 | 0.05 +Modify | 0.004227 | 0.004254 | 0.004289 | 0.0 | 2.35 +Other | | 0.0002343 | | | 0.13 Nlocal: 501 ave 513 max 481 min Histogram: 1 0 0 0 0 0 1 0 1 1 @@ -453,22 +497,19 @@ Ave neighs/atom = 353.33483 Ave special neighs/atom = 2.3403194 Neighbor list builds = 7 Dangerous builds = 0 - -fix 2 all colvars peptide.colvars input out.colvars.state output out2 ---------------------------------------------------------------------- -Initializing the collective variables module, version 2025-04-30. +Initializing the collective variables module, version 2025-08-27. Please cite Fiorin et al, Mol Phys 2013: https://doi.org/10.1080/00268976.2013.813594 as well as all other papers listed below for individual features used. Summary of compile-time features available in this build: - C++ language version: 201703 - - Multiple replicas: not available + - Multiple replicas: available, but not (yet) enabled - Lepton custom functions: available - Tcl interpreter: not available -Using LAMMPS interface, version "2025-03-31". +Using LAMMPS interface, version "2025-05-12". Setting initial step number from MD engine: 200 - -run 100 +WARNING: New thermo_style command, previous thermo_modify settings will be lost (src/output.cpp:1100) PPPM initialization ... using 12-bit tables for long-range coulomb G vector (1/distance) = 0.26872465 @@ -476,13 +517,19 @@ PPPM initialization ... stencil order = 5 estimated absolute RMS force accuracy = 0.022820853 estimated relative force accuracy = 6.872432e-05 - using double precision FFTW3 + using double precision KISS FFT 3d grid and FFT values/proc = 4312 960 Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule +Setting up Verlet run ... + Unit style : real + Current step : 200 + Time step : 2 Will read input state from file "out.colvars.state"---------------------------------------------------------------------- Reading new configuration from file "peptide.colvars": # units = "" [default] # smp = "cvcs" [default] +SMP parallelism will be applied to Colvars components. + - SMP parallelism: enabled (num. threads = 1) # colvarsTrajFrequency = 1 # colvarsRestartFrequency = 1000 # scriptedColvarForces = off [default] @@ -604,9 +651,9 @@ Collective variables initialized, 2 in total. # name = "h_pot" # colvars = { one, two } # stepZeroData = off [default] + # timeStepFactor = 1 [default] # outputEnergy = off [default] # outputFreq = 1000 [default] - # timeStepFactor = 1 [default] # writeTISamples = off [default] # writeTIPMF = off [default] # centers = { 10, 10 } @@ -636,65 +683,73 @@ Loading state from text file "out.colvars.state". ---------------------------------------------------------------------- The final output state file will be "out2.colvars.state". SHAKE stats (type/ave/delta/count) on step 200 -Bond: 4 1.111 1.81263e-06 9 -Bond: 6 0.997 7.7941e-07 6 +Bond: 4 1.111 1.81262e-06 9 +Bond: 6 0.997 7.79408e-07 6 Bond: 8 1.08 1.08902e-06 7 -Bond: 10 1.111 2.96499e-07 8 -Bond: 12 1.08 4.69032e-07 9 +Bond: 10 1.111 2.96498e-07 8 +Bond: 12 1.08 4.6903e-07 9 Bond: 14 0.960001 0 1 -Bond: 18 0.957201 3.76468e-06 1280 +Bond: 18 0.957201 3.76465e-06 1280 Angle: 31 104.52 0.000411053 640 Per MPI rank memory allocation (min/avg/max) = 16.02 | 16.22 | 16.41 Mbytes - Step Temp TotEng PotEng KinEng E_pair E_bond f_2 - 200 251.50491 -5557.4253 -6569.2547 1011.8294 -6674.0854 24.804919 7.1387624 - 210 253.15307 -5538.5651 -6557.0252 1018.4601 -6672.0536 37.676596 0.61220059 - 220 245.19643 -5522.5163 -6508.966 986.44974 -6628.188 36.657689 0.04864322 - 230 258.69807 -5495.7311 -6536.4993 1040.7682 -6658.2891 34.857873 0.22091679 - 240 260.7968 -5469.8717 -6519.0833 1049.2116 -6624.1857 31.576948 3.7574901 - 250 269.07479 -5438.3944 -6520.9092 1082.5148 -6616.436 25.447641 8.6600555 - 260 266.01096 -5397.3476 -6467.5363 1070.1887 -6580.2906 26.871878 8.3323539 - 270 272.81291 -5350.8806 -6448.4342 1097.5536 -6563.8207 23.114152 10.973142 - 280 279.42319 -5307.9786 -6432.126 1124.1474 -6557.3376 33.643934 8.5490106 - 290 286.84955 -5260.841 -6414.8655 1154.0244 -6515.6709 28.574748 5.9100391 + Step Temp TotEng PotEng KinEng E_pair E_bond f_2:energy f_2:one[1][1] f_2:two[2][1] + 200 251.50492 -5557.4253 -6569.2548 1011.8294 -6674.0855 24.804919 7.1387635 10.012773 9.6223598 + 210 253.15304 -5538.5651 -6557.0251 1018.46 -6672.0534 37.676595 0.61220129 10.00674 9.8895527 + 220 245.1964 -5522.5164 -6508.966 986.44965 -6628.188 36.65769 0.048643263 9.9845109 9.9729269 + 230 258.69824 -5495.731 -6536.4999 1040.7689 -6658.2897 34.857876 0.22091694 9.9807905 9.9363656 + 240 260.79686 -5469.8726 -6519.0844 1049.2118 -6624.1868 31.576947 3.757491 10.046324 9.7298076 + 250 269.07488 -5438.3946 -6520.9098 1082.5152 -6616.4366 25.44764 8.6600575 10.081739 9.5919314 + 260 266.0109 -5397.3478 -6467.5363 1070.1885 -6580.2905 26.871886 8.3323546 10.035501 9.5933223 + 270 272.81282 -5350.8808 -6448.4341 1097.5533 -6563.8205 23.114142 10.973147 10.071613 9.5370372 + 280 279.42301 -5307.979 -6432.1257 1124.1467 -6557.3373 33.643921 8.5490183 10.059855 9.5908573 + 290 286.84979 -5260.8387 -6414.8641 1154.0254 -6515.6695 28.574741 5.91004 10.039198 9.6584384 SHAKE stats (type/ave/delta/count) on step 300 Bond: 4 1.111 1.79797e-05 9 -Bond: 6 0.997005 1.02517e-05 6 +Bond: 6 0.997005 1.02516e-05 6 Bond: 8 1.08 1.85102e-05 7 -Bond: 10 1.111 9.98838e-06 8 -Bond: 12 1.08 8.8411e-06 9 +Bond: 10 1.111 9.98835e-06 8 +Bond: 12 1.08 8.84109e-06 9 Bond: 14 0.960008 0 1 -Bond: 18 0.957203 1.84467e-05 1280 +Bond: 18 0.957203 1.84464e-05 1280 Angle: 31 104.52 0.00168371 640 - 300 291.52702 -5216.285 -6389.1274 1172.8423 -6503.1206 27.889001 2.2482531 + 300 291.52753 -5216.2863 -6389.1307 1172.8444 -6503.124 27.889021 2.2482534 9.9531638 9.7931874 Saving collective variables state to "out2.colvars.state". -Loop time of 0.239463 on 4 procs for 100 steps with 2004 atoms +Loop time of 0.188576 on 4 procs for 100 steps with 2004 atoms -Performance: 72.162 ns/day, 0.333 hours/ns, 417.601 timesteps/s, 836.873 katom-step/s -99.6% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 91.634 ns/day, 0.262 hours/ns, 530.290 timesteps/s, 1.063 Matom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.17662 | 0.18331 | 0.18871 | 1.1 | 76.55 -Bond | 0.00028142 | 0.00048863 | 0.0008147 | 0.0 | 0.20 -Kspace | 0.015807 | 0.02151 | 0.028075 | 3.3 | 8.98 -Neigh | 0.021628 | 0.021633 | 0.021638 | 0.0 | 9.03 -Comm | 0.0053721 | 0.0055529 | 0.0058832 | 0.3 | 2.32 -Output | 0.00012064 | 0.00013094 | 0.00016114 | 0.0 | 0.05 -Modify | 0.0063947 | 0.0064172 | 0.0064303 | 0.0 | 2.68 -Other | | 0.0004205 | | | 0.18 +Pair | 0.13192 | 0.13671 | 0.14006 | 0.9 | 72.50 +Bond | 6.8e-05 | 0.00019775 | 0.000349 | 0.0 | 0.10 +Kspace | 0.016791 | 0.019927 | 0.02458 | 2.3 | 10.57 +Neigh | 0.023608 | 0.02362 | 0.023628 | 0.0 | 12.53 +Comm | 0.003635 | 0.003797 | 0.004069 | 0.3 | 2.01 +Output | 7e-05 | 7.975e-05 | 0.000108 | 0.0 | 0.04 +Modify | 0.003982 | 0.0039965 | 0.004014 | 0.0 | 2.12 +Other | | 0.0002435 | | | 0.13 Nlocal: 501 ave 513 max 472 min Histogram: 1 0 0 0 0 0 0 0 0 3 Nghost: 6612.75 ave 6681 max 6561 min Histogram: 1 1 0 0 0 1 0 0 0 1 -Neighs: 177038 ave 180136 max 170219 min +Neighs: 177038 ave 180136 max 170218 min Histogram: 1 0 0 0 0 0 0 1 0 2 -Total # of neighbors = 708152 -Ave neighs/atom = 353.36926 +Total # of neighbors = 708151 +Ave neighs/atom = 353.36876 Ave special neighs/atom = 2.3403194 Neighbor list builds = 8 Dangerous builds = 0 +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: +- Colvars module (Fiorin2013, plus other works listed for specific features) +The log file lists these citations in BibTeX format. + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + Total wall time: 0:00:00 diff --git a/examples/PACKAGES/mbx/256h2o/log.11Dec25.256h2o.g++.1 b/examples/PACKAGES/mbx/256h2o/log.23Mar26.256h2o.g++.1 similarity index 65% rename from examples/PACKAGES/mbx/256h2o/log.11Dec25.256h2o.g++.1 rename to examples/PACKAGES/mbx/256h2o/log.23Mar26.256h2o.g++.1 index ffa9a6ecc48..fe5f7104851 100644 --- a/examples/PACKAGES/mbx/256h2o/log.11Dec25.256h2o.g++.1 +++ b/examples/PACKAGES/mbx/256h2o/log.23Mar26.256h2o.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (10 Sep 2025 - Development - patch_10Sep2025-714-g4ab4c2060a-modified) +LAMMPS (11 Feb 2026 - Development - patch_11Feb2026-274-gb4dcbc8748) using 1 OpenMP thread(s) per MPI task processors * * * map xyz @@ -32,7 +32,7 @@ Finding 1-2 1-3 1-4 neighbors ... 1 = max # of 1-4 neighbors 2 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.014 seconds + read_data CPU = 0.011 seconds pair_style mbx 9.0 @@ -96,7 +96,7 @@ Your simulation uses code contributions which should be cited: pages = {054802}, year = {2023}, doi = {10.1063/5.0156036}, - version = {1.3.3} + version = {1.3.12} } CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE @@ -116,122 +116,122 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 8.503 | 8.503 | 8.503 Mbytes Step Time Temp TotEng KinEng PotEng Enthalpy Density Lx Ly Lz Volume Pxx Pyy Pzz Press - 0 0 298 -1731.1398 681.31183 -2412.4517 -1661.3647 1.0085627 19.655164 19.655164 19.655164 7593.2911 2461.8369 -310.60207 -260.99812 630.07891 - 1 0.5 305.62775 -1731.7838 698.75101 -2430.5349 -1604.1604 1.0085626 19.655165 19.655165 19.655165 7593.2915 3142.8129 -49.500458 364.05579 1152.4561 - 2 1 307.93402 -1731.9033 704.02379 -2435.9271 -1540.1261 1.0085623 19.655167 19.655167 19.655167 7593.2936 3746.3787 260.48522 1188.4526 1731.7722 - 3 1.5 303.9937 -1731.5145 695.0151 -2426.5296 -1474.3196 1.0085617 19.65517 19.65517 19.65517 7593.298 4217.2951 581.20066 2169.0096 2322.5018 - 4 2 296.29825 -1730.8375 677.42115 -2408.2586 -1422.3017 1.0085607 19.655177 19.655177 19.655177 7593.3057 4420.3342 803.05536 3134.9506 2786.1134 - 5 2.5 289.28952 -1730.2117 661.39723 -2391.609 -1403.9703 1.0085592 19.655187 19.655187 19.655187 7593.3172 4202.1271 794.54315 3841.3086 2945.9929 - 6 3 287.0064 -1730.0104 656.17736 -2386.1878 -1433.8797 1.0085571 19.655201 19.655201 19.655201 7593.3328 3483.5568 475.4412 4063.2546 2674.0842 - 7 3.5 290.70362 -1730.3925 664.63025 -2395.0228 -1512.4048 1.0085545 19.655217 19.655217 19.655217 7593.3522 2334.38 -125.04179 3695.988 1968.4421 - 8 4 297.9483 -1731.1172 681.19364 -2412.3108 -1623.2223 1.0085516 19.655236 19.655236 19.655236 7593.3742 978.38436 -863.23287 2807.732 974.29449 - 9 4.5 304.1085 -1731.7248 695.27757 -2427.0024 -1739.5067 1.0085485 19.655256 19.655256 19.655256 7593.3976 -286.39472 -1537.5109 1613.0927 -70.270958 - 10 5 305.20311 -1731.8889 697.78017 -2429.669 -1835.2669 1.0085454 19.655277 19.655277 19.655277 7593.421 -1211.14 -1975.9958 386.63227 -933.5012 - 11 5.5 300.04419 -1731.5836 685.98543 -2417.569 -1894.9316 1.0085425 19.655296 19.655296 19.655296 7593.443 -1690.98 -2102.807 -631.28653 -1475.0245 - 12 6 290.5412 -1731.004 664.25892 -2395.2629 -1916.6676 1.0085398 19.655313 19.655313 19.655313 7593.463 -1779.9564 -1949.6549 -1299.9765 -1676.5293 - 13 6.5 280.54125 -1730.3851 641.39621 -2371.7813 -1909.4145 1.0085375 19.655328 19.655328 19.655328 7593.4807 -1629.9189 -1621.2443 -1598.6906 -1616.6179 - 14 7 274.23791 -1729.9209 626.985 -2356.9059 -1886.3696 1.0085354 19.655341 19.655341 19.655341 7593.4961 -1400.6947 -1243.4851 -1593.9631 -1412.7143 - 15 7.5 274.67265 -1729.8323 627.97895 -2357.8113 -1857.9233 1.0085336 19.655353 19.655353 19.655353 7593.5096 -1188.49 -912.5375 -1368.9065 -1156.6446 - 16 8 282.22973 -1730.2941 645.25656 -2375.5507 -1825.9123 1.0085321 19.655363 19.655363 19.655363 7593.5215 -989.39748 -649.27115 -951.58818 -863.41894 - 17 8.5 293.73139 -1731.1656 671.55259 -2402.7182 -1781.87 1.0085306 19.655373 19.655373 19.655373 7593.5323 -706.02695 -379.02781 -288.50178 -457.85218 - 18 9 303.51319 -1731.9521 693.91654 -2425.8686 -1712.3334 1.0085293 19.655381 19.655381 19.655381 7593.5423 -206.67568 29.325988 708.81014 177.15348 - 19 9.5 306.53881 -1732.1583 700.83394 -2432.9922 -1609.7256 1.0085279 19.65539 19.65539 19.65539 7593.5527 582.39119 667.35719 2066.887 1105.5451 - 20 10 301.44803 -1731.69 689.19499 -2420.885 -1481.8674 1.0085263 19.6554 19.6554 19.6554 7593.5646 1601.7277 1494.8714 3670.9486 2255.8492 - 21 10.5 291.21481 -1730.8605 665.79899 -2396.6595 -1353.0494 1.0085243 19.655413 19.655413 19.655413 7593.5796 2645.3952 2325.386 5263.8838 3411.555 - 22 11 281.28084 -1730.0673 643.08713 -2373.1545 -1255.755 1.0085217 19.65543 19.65543 19.65543 7593.5993 3422.6014 2901.1578 6525.0281 4282.9291 - 23 11.5 276.87457 -1729.6445 633.01315 -2362.6577 -1218.3897 1.0085183 19.655453 19.655453 19.655453 7593.625 3671.1482 3002.5139 7175.8231 4616.4951 - 24 12 280.63936 -1729.8338 641.62051 -2371.4544 -1254.012 1.0085141 19.65548 19.65548 19.65548 7593.657 3274.9468 2544.367 7070.2669 4296.5269 - 25 12.5 291.14418 -1730.5902 665.63751 -2396.2277 -1354.058 1.008509 19.655513 19.655513 19.655513 7593.6951 2329.0309 1627.308 6243.5232 3399.954 - 26 13 303.27158 -1731.5375 693.36414 -2424.9017 -1490.7322 1.0085033 19.65555 19.65555 19.65555 7593.7378 1113.5704 511.11773 4898.4402 2174.3761 - 27 13.5 310.61407 -1732.2229 710.15113 -2442.374 -1627.75 1.0084972 19.655589 19.655589 19.655589 7593.7836 -17.710741 -486.57444 3334.3122 943.34235 - 28 14 308.4633 -1732.3517 705.23388 -2437.5856 -1733.9652 1.008491 19.65563 19.65563 19.65563 7593.8307 -781.35597 -1116.4799 1854.1273 -14.569507 - 29 14.5 295.86322 -1731.8464 676.42655 -2408.273 -1793.6016 1.0084847 19.655671 19.655671 19.655671 7593.8777 -1070.2353 -1285.9528 683.34637 -557.61391 - 30 15 276.15727 -1730.8542 631.37321 -2362.2274 -1809.6882 1.0084786 19.655711 19.655711 19.655711 7593.924 -974.88816 -1075.3604 -85.217329 -711.82197 - 31 15.5 255.89625 -1729.7656 585.05082 -2314.8165 -1799.7168 1.0084726 19.65575 19.65575 19.65575 7593.9693 -713.21572 -684.15402 -497.46606 -631.61193 - 32 16 242.15062 -1729.0942 553.62444 -2282.7186 -1784.7657 1.0084667 19.655788 19.655788 19.655788 7594.0138 -500.79186 -331.17593 -676.05284 -502.67354 - 33 16.5 239.1893 -1729.1724 546.85403 -2276.0264 -1776.8224 1.0084609 19.655826 19.655826 19.655826 7594.0576 -425.29073 -147.18828 -718.24925 -430.24275 - 34 17 246.33128 -1729.9515 563.18261 -2293.1341 -1771.1575 1.0084551 19.655863 19.655863 19.655863 7594.1007 -394.00513 -106.26895 -615.89161 -372.05523 - 35 17.5 258.24144 -1731.0399 590.41258 -2321.4525 -1748.1657 1.0084495 19.6559 19.6559 19.6559 7594.1434 -181.26587 -32.371063 -250.25697 -154.6313 - 36 18 267.47656 -1731.9227 611.52666 -2343.4493 -1683.8741 1.0084438 19.655936 19.655936 19.655936 7594.1858 453.0454 313.93963 534.51734 433.83412 - 37 18.5 267.9357 -1732.1915 612.57638 -2344.7679 -1563.9514 1.0084381 19.655974 19.655974 19.655974 7594.2289 1633.1772 1102.8046 1821.1448 1519.0422 - 38 19 257.63044 -1731.6977 589.01565 -2320.7133 -1394.3671 1.0084321 19.656013 19.656013 19.656013 7594.274 3283.7378 2322.4014 3531.0972 3045.7455 - 39 19.5 239.69151 -1730.615 548.00223 -2278.6172 -1203.7766 1.0084256 19.656055 19.656055 19.656055 7594.3234 5124.6895 3745.0405 5400.5882 4756.7727 - 40 20 221.14295 -1729.4168 505.59499 -2235.0118 -1035.8607 1.0084181 19.656104 19.656104 19.656104 7594.3794 6752.0038 4996.8546 7037.1568 6262.0051 - 41 20.5 209.69589 -1728.6881 479.42379 -2208.1119 -933.73875 1.0084095 19.656159 19.656159 19.656159 7594.4441 7781.8785 5707.3758 8042.9665 7177.4069 - 42 21 209.91575 -1728.8029 479.92646 -2208.7294 -922.95774 1.0083996 19.656224 19.656224 19.656224 7594.5187 8000.2488 5668.6097 8158.2762 7275.7116 - 43 21.5 220.76906 -1729.7025 504.74017 -2234.4426 -1001.1378 1.0083884 19.656297 19.656297 19.656297 7594.6034 7443.4993 4926.589 7363.6054 6577.8979 - 44 22 236.03186 -1730.8731 539.63522 -2270.5084 -1139.4338 1.0083759 19.656378 19.656378 19.656378 7594.6972 6369.5818 3764.2426 5885.5327 5339.7857 - 45 22.5 247.51488 -1731.6979 565.88865 -2297.5865 -1295.4642 1.0083625 19.656465 19.656465 19.656465 7594.7984 5138.9597 2582.3337 4094.1024 3938.4653 - 46 23 249.04469 -1731.8373 569.38622 -2301.2235 -1430.6305 1.0083483 19.656557 19.656557 19.656557 7594.9051 4068.0086 1734.4276 2355.6414 2719.3592 - 47 23.5 238.94858 -1731.2335 546.30368 -2277.5372 -1523.0773 1.0083337 19.656652 19.656652 19.656652 7595.0156 3318.1889 1399.9777 919.58716 1879.2513 - 48 24 220.59727 -1730.0518 504.34741 -2234.3992 -1572.4579 1.0083186 19.65675 19.65675 19.65675 7595.1287 2859.9313 1541.2101 -132.89144 1422.75 - 49 24.5 201.1818 -1728.7353 459.9582 -2188.6935 -1595.6881 1.0083034 19.656849 19.656849 19.656849 7595.2437 2525.2504 1945.092 -866.96815 1201.1247 - 50 25 188.69771 -1727.8757 431.41605 -2159.2917 -1614.9132 1.0082879 19.65695 19.65695 19.65695 7595.3604 2129.3728 2331.9662 -1401.9762 1019.7876 - 51 25.5 188.08537 -1727.8755 430.01607 -2157.8916 -1642.8614 1.0082722 19.657052 19.657052 19.657052 7595.4786 1600.1347 2496.0662 -1793.7985 767.46745 - 52 26 198.66669 -1728.6609 454.20794 -2182.8688 -1673.7841 1.0082564 19.657155 19.657155 19.657155 7595.5978 1037.6972 2413.7371 -1965.2514 495.39431 - 53 26.5 214.57057 -1729.7351 490.56868 -2220.3038 -1685.5474 1.0082405 19.657258 19.657258 19.657258 7595.7177 670.41258 2256.7055 -1730.4377 398.89347 - 54 27 227.87941 -1730.4945 520.99643 -2251.4909 -1651.8538 1.0082245 19.657362 19.657362 19.657362 7595.8381 738.37004 2292.5831 -901.26123 709.8973 - 55 27.5 232.58657 -1730.5402 531.75833 -2262.2985 -1557.7061 1.0082083 19.657467 19.657467 19.657467 7595.9596 1368.0421 2725.6086 586.84699 1560.1659 - 56 28 227.36865 -1729.8039 519.82871 -2249.6326 -1410.1549 1.0081919 19.657573 19.657573 19.657573 7596.0832 2492.3241 3566.6081 2597.3028 2885.4117 - 57 28.5 216.09215 -1728.5822 494.04743 -2222.6296 -1239.2452 1.008175 19.657683 19.657683 19.657683 7596.2109 3847.5168 4601.4675 4802.2521 4417.0788 - 58 29 205.83675 -1727.4448 470.60071 -2198.0455 -1088.4483 1.0081572 19.657799 19.657799 19.657799 7596.3446 5053.1652 5472.7452 6777.7995 5767.9033 - 59 29.5 203.16592 -1726.931 464.49445 -2191.4254 -998.26028 1.0081384 19.657921 19.657921 19.657921 7596.4864 5749.2649 5835.2972 8147.1101 6577.2241 - 60 30 210.70938 -1727.1447 481.74092 -2208.8856 -990.90331 1.0081184 19.658051 19.658051 19.658051 7596.6373 5731.743 5502.7697 8701.7707 6645.4278 - 61 30.5 226.33789 -1727.741 517.47208 -2245.213 -1064.1106 1.0080972 19.658189 19.658189 19.658189 7596.7974 5022.101 4510.7532 8436.8566 5989.9036 - 62 31 245.01053 -1728.3521 560.163 -2288.5151 -1195.6827 1.0080748 19.658335 19.658335 19.658335 7596.9658 3842.0862 3086.2017 7494.9567 4807.7482 - 63 31.5 261.08032 -1728.8173 596.90306 -2325.7204 -1353.3389 1.0080516 19.658486 19.658486 19.658486 7597.1409 2512.9725 1564.9697 6088.7617 3388.9013 - 64 32 269.79711 -1728.9251 616.83208 -2345.7572 -1504.7683 1.0080277 19.658641 19.658641 19.658641 7597.3207 1328.3209 282.92991 4458.0227 2023.0912 - 65 32.5 268.92628 -1728.3938 614.84113 -2343.235 -1627.421 1.0080035 19.658798 19.658798 19.658798 7597.5033 452.22206 -546.30276 2827.9594 911.2929 - 66 33 260.3418 -1727.2649 595.21459 -2322.4795 -1715.3672 1.0079791 19.658957 19.658957 19.658957 7597.6872 -116.26676 -909.31142 1347.7075 107.37643 - 67 33.5 249.69892 -1725.9754 570.88198 -2296.8574 -1777.9974 1.0079547 19.659116 19.659116 19.659116 7597.8713 -500.20249 -971.59181 63.347336 -469.48232 - 68 34 243.70126 -1725.066 557.16963 -2282.2356 -1830.3139 1.0079303 19.659274 19.659274 19.659274 7598.0547 -845.49773 -967.44525 -1036.4777 -949.80688 - 69 34.5 246.61269 -1724.8653 563.82599 -2288.6913 -1880.7232 1.0079062 19.659431 19.659431 19.659431 7598.2368 -1216.8263 -1060.6291 -1942.0487 -1406.5014 - 70 35 258.03713 -1725.3332 589.94546 -2315.2786 -1923.3897 1.0078823 19.659586 19.659586 19.659586 7598.417 -1541.5641 -1248.7229 -2571.5217 -1787.2695 + 0 0 298 -1731.1398 681.31183 -2412.4517 -1661.3647 1.0085627 19.655164 19.655164 19.655164 7593.2911 2461.8369 -310.60204 -260.99809 630.07893 + 1 0.5 305.62775 -1731.7838 698.75101 -2430.5349 -1604.1604 1.0085626 19.655165 19.655165 19.655165 7593.2915 3142.813 -49.500427 364.05582 1152.4561 + 2 1 307.93402 -1731.9033 704.02379 -2435.9271 -1540.1261 1.0085623 19.655167 19.655167 19.655167 7593.2936 3746.3788 260.48526 1188.4526 1731.7722 + 3 1.5 303.9937 -1731.5145 695.0151 -2426.5296 -1474.3196 1.0085617 19.65517 19.65517 19.65517 7593.298 4217.2951 581.2007 2169.0096 2322.5018 + 4 2 296.29825 -1730.8375 677.42115 -2408.2586 -1422.3017 1.0085607 19.655177 19.655177 19.655177 7593.3057 4420.3343 803.05541 3134.9506 2786.1134 + 5 2.5 289.28952 -1730.2117 661.39723 -2391.609 -1403.9703 1.0085592 19.655187 19.655187 19.655187 7593.3172 4202.1271 794.5432 3841.3086 2945.993 + 6 3 287.0064 -1730.0104 656.17736 -2386.1878 -1433.8797 1.0085571 19.655201 19.655201 19.655201 7593.3328 3483.5569 475.44126 4063.2547 2674.0843 + 7 3.5 290.70362 -1730.3925 664.63025 -2395.0228 -1512.4048 1.0085545 19.655217 19.655217 19.655217 7593.3522 2334.3801 -125.04171 3695.988 1968.4421 + 8 4 297.9483 -1731.1172 681.19364 -2412.3108 -1623.2223 1.0085516 19.655236 19.655236 19.655236 7593.3742 978.38444 -863.23279 2807.7321 974.29457 + 9 4.5 304.1085 -1731.7248 695.27757 -2427.0024 -1739.5067 1.0085485 19.655256 19.655256 19.655256 7593.3976 -286.39464 -1537.5108 1613.0928 -70.270878 + 10 5 305.20311 -1731.8889 697.78017 -2429.669 -1835.2669 1.0085454 19.655277 19.655277 19.655277 7593.421 -1211.1399 -1975.9958 386.63235 -933.50112 + 11 5.5 300.04419 -1731.5836 685.98543 -2417.569 -1894.9316 1.0085425 19.655296 19.655296 19.655296 7593.443 -1690.9799 -2102.8069 -631.28645 -1475.0244 + 12 6 290.5412 -1731.004 664.25892 -2395.2629 -1916.6676 1.0085398 19.655313 19.655313 19.655313 7593.463 -1779.9564 -1949.6548 -1299.9764 -1676.5292 + 13 6.5 280.54125 -1730.3851 641.39621 -2371.7813 -1909.4144 1.0085375 19.655328 19.655328 19.655328 7593.4807 -1629.9188 -1621.2443 -1598.6905 -1616.6179 + 14 7 274.2379 -1729.9209 626.985 -2356.9059 -1886.3696 1.0085354 19.655341 19.655341 19.655341 7593.4961 -1400.6947 -1243.485 -1593.9631 -1412.7142 + 15 7.5 274.67265 -1729.8323 627.97895 -2357.8113 -1857.9233 1.0085336 19.655353 19.655353 19.655353 7593.5096 -1188.4899 -912.53744 -1368.9064 -1156.6446 + 16 8 282.22973 -1730.2941 645.25656 -2375.5507 -1825.9123 1.0085321 19.655363 19.655363 19.655363 7593.5215 -989.39743 -649.2711 -951.58813 -863.41889 + 17 8.5 293.73139 -1731.1656 671.55259 -2402.7182 -1781.87 1.0085306 19.655373 19.655373 19.655373 7593.5323 -706.02691 -379.02777 -288.50173 -457.85214 + 18 9 303.51319 -1731.9521 693.91654 -2425.8686 -1712.3334 1.0085293 19.655381 19.655381 19.655381 7593.5423 -206.67563 29.32603 708.81018 177.15353 + 19 9.5 306.53881 -1732.1582 700.83394 -2432.9922 -1609.7256 1.0085279 19.65539 19.65539 19.65539 7593.5527 582.39123 667.35723 2066.887 1105.5452 + 20 10 301.44803 -1731.69 689.19499 -2420.885 -1481.8674 1.0085263 19.6554 19.6554 19.6554 7593.5646 1601.7278 1494.8714 3670.9486 2255.8493 + 21 10.5 291.21481 -1730.8605 665.79899 -2396.6595 -1353.0494 1.0085243 19.655413 19.655413 19.655413 7593.5796 2645.3953 2325.3861 5263.8839 3411.5551 + 22 11 281.28084 -1730.0673 643.08713 -2373.1545 -1255.755 1.0085217 19.65543 19.65543 19.65543 7593.5993 3422.6015 2901.1579 6525.0282 4282.9292 + 23 11.5 276.87457 -1729.6445 633.01315 -2362.6577 -1218.3897 1.0085183 19.655453 19.655453 19.655453 7593.625 3671.1482 3002.5139 7175.8232 4616.4951 + 24 12 280.63936 -1729.8338 641.62051 -2371.4544 -1254.012 1.0085141 19.65548 19.65548 19.65548 7593.657 3274.9469 2544.3671 7070.2669 4296.527 + 25 12.5 291.14418 -1730.5902 665.63751 -2396.2277 -1354.058 1.008509 19.655513 19.655513 19.655513 7593.6951 2329.0309 1627.3081 6243.5233 3399.9541 + 26 13 303.27158 -1731.5375 693.36414 -2424.9017 -1490.7321 1.0085033 19.65555 19.65555 19.65555 7593.7378 1113.5704 511.1178 4898.4403 2174.3762 + 27 13.5 310.61407 -1732.2229 710.15113 -2442.374 -1627.75 1.0084972 19.655589 19.655589 19.655589 7593.7836 -17.710668 -486.57436 3334.3123 943.34242 + 28 14 308.4633 -1732.3517 705.23388 -2437.5856 -1733.9652 1.008491 19.65563 19.65563 19.65563 7593.8307 -781.35589 -1116.4798 1854.1274 -14.569431 + 29 14.5 295.86322 -1731.8464 676.42655 -2408.273 -1793.6016 1.0084847 19.655671 19.655671 19.655671 7593.8777 -1070.2352 -1285.9527 683.34644 -557.61384 + 30 15 276.15727 -1730.8542 631.37321 -2362.2274 -1809.6882 1.0084786 19.655711 19.655711 19.655711 7593.924 -974.88809 -1075.3603 -85.217258 -711.82189 + 31 15.5 255.89625 -1729.7656 585.05082 -2314.8164 -1799.7168 1.0084726 19.65575 19.65575 19.65575 7593.9693 -713.21566 -684.15394 -497.466 -631.61187 + 32 16 242.15062 -1729.0941 553.62444 -2282.7186 -1784.7657 1.0084667 19.655788 19.655788 19.655788 7594.0138 -500.7918 -331.17587 -676.05278 -502.67348 + 33 16.5 239.1893 -1729.1724 546.85403 -2276.0264 -1776.8224 1.0084609 19.655826 19.655826 19.655826 7594.0576 -425.29067 -147.18823 -718.2492 -430.2427 + 34 17 246.33128 -1729.9515 563.18261 -2293.1341 -1771.1574 1.0084551 19.655863 19.655863 19.655863 7594.1007 -394.00508 -106.2689 -615.89156 -372.05518 + 35 17.5 258.24144 -1731.0399 590.41258 -2321.4525 -1748.1657 1.0084495 19.6559 19.6559 19.6559 7594.1434 -181.26583 -32.371023 -250.25693 -154.63126 + 36 18 267.47656 -1731.9227 611.52667 -2343.4493 -1683.8741 1.0084438 19.655936 19.655936 19.655936 7594.1858 453.04544 313.93966 534.51737 433.83416 + 37 18.5 267.9357 -1732.1915 612.57638 -2344.7678 -1563.9514 1.0084381 19.655974 19.655974 19.655974 7594.2289 1633.1773 1102.8046 1821.1448 1519.0422 + 38 19 257.63044 -1731.6977 589.01565 -2320.7133 -1394.3671 1.0084321 19.656013 19.656013 19.656013 7594.274 3283.7379 2322.4014 3531.0973 3045.7455 + 39 19.5 239.69151 -1730.615 548.00223 -2278.6172 -1203.7766 1.0084256 19.656055 19.656055 19.656055 7594.3234 5124.6896 3745.0405 5400.5882 4756.7728 + 40 20 221.14295 -1729.4168 505.59499 -2235.0118 -1035.8607 1.0084181 19.656104 19.656104 19.656104 7594.3794 6752.0038 4996.8547 7037.1569 6262.0051 + 41 20.5 209.69589 -1728.6881 479.42379 -2208.1119 -933.73875 1.0084095 19.656159 19.656159 19.656159 7594.4441 7781.8785 5707.3759 8042.9665 7177.407 + 42 21 209.91575 -1728.8029 479.92646 -2208.7294 -922.95773 1.0083996 19.656224 19.656224 19.656224 7594.5187 8000.2489 5668.6097 8158.2762 7275.7116 + 43 21.5 220.76906 -1729.7025 504.74017 -2234.4426 -1001.1378 1.0083884 19.656297 19.656297 19.656297 7594.6034 7443.4993 4926.589 7363.6055 6577.8979 + 44 22 236.03186 -1730.8731 539.63522 -2270.5084 -1139.4338 1.0083759 19.656378 19.656378 19.656378 7594.6972 6369.5818 3764.2427 5885.5327 5339.7857 + 45 22.5 247.51488 -1731.6979 565.88865 -2297.5865 -1295.4642 1.0083625 19.656465 19.656465 19.656465 7594.7984 5138.9597 2582.3338 4094.1025 3938.4653 + 46 23 249.04469 -1731.8373 569.38622 -2301.2235 -1430.6304 1.0083483 19.656557 19.656557 19.656557 7594.9051 4068.0087 1734.4277 2355.6414 2719.3593 + 47 23.5 238.94858 -1731.2335 546.30368 -2277.5372 -1523.0772 1.0083337 19.656652 19.656652 19.656652 7595.0156 3318.189 1399.9778 919.58722 1879.2513 + 48 24 220.59727 -1730.0518 504.34741 -2234.3992 -1572.4578 1.0083186 19.65675 19.65675 19.65675 7595.1287 2859.9313 1541.2102 -132.89139 1422.75 + 49 24.5 201.1818 -1728.7353 459.9582 -2188.6935 -1595.6881 1.0083034 19.656849 19.656849 19.656849 7595.2437 2525.2504 1945.092 -866.9681 1201.1248 + 50 25 188.69771 -1727.8757 431.41605 -2159.2917 -1614.9132 1.0082879 19.65695 19.65695 19.65695 7595.3604 2129.3728 2331.9662 -1401.9761 1019.7876 + 51 25.5 188.08537 -1727.8755 430.01607 -2157.8916 -1642.8614 1.0082722 19.657052 19.657052 19.657052 7595.4786 1600.1348 2496.0662 -1793.7985 767.4675 + 52 26 198.66669 -1728.6609 454.20794 -2182.8688 -1673.7841 1.0082564 19.657155 19.657155 19.657155 7595.5978 1037.6972 2413.7372 -1965.2513 495.39436 + 53 26.5 214.57057 -1729.7351 490.56868 -2220.3038 -1685.5474 1.0082405 19.657258 19.657258 19.657258 7595.7177 670.41262 2256.7056 -1730.4377 398.89351 + 54 27 227.87941 -1730.4945 520.99643 -2251.4909 -1651.8538 1.0082245 19.657362 19.657362 19.657362 7595.8381 738.37008 2292.5831 -901.26119 709.89734 + 55 27.5 232.58657 -1730.5402 531.75833 -2262.2985 -1557.7061 1.0082083 19.657467 19.657467 19.657467 7595.9596 1368.0421 2725.6087 586.84703 1560.166 + 56 28 227.36865 -1729.8039 519.82871 -2249.6326 -1410.1549 1.0081919 19.657573 19.657573 19.657573 7596.0832 2492.3242 3566.6081 2597.3028 2885.4117 + 57 28.5 216.09214 -1728.5822 494.04743 -2222.6296 -1239.2452 1.008175 19.657683 19.657683 19.657683 7596.2109 3847.5169 4601.4676 4802.2521 4417.0789 + 58 29 205.83675 -1727.4448 470.60071 -2198.0455 -1088.4483 1.0081572 19.657799 19.657799 19.657799 7596.3446 5053.1652 5472.7453 6777.7995 5767.9033 + 59 29.5 203.16592 -1726.931 464.49445 -2191.4254 -998.26027 1.0081384 19.657921 19.657921 19.657921 7596.4864 5749.265 5835.2973 8147.1101 6577.2241 + 60 30 210.70938 -1727.1447 481.74092 -2208.8856 -990.9033 1.0081184 19.658051 19.658051 19.658051 7596.6373 5731.743 5502.7698 8701.7708 6645.4279 + 61 30.5 226.33789 -1727.741 517.47208 -2245.213 -1064.1106 1.0080972 19.658189 19.658189 19.658189 7596.7974 5022.1011 4510.7533 8436.8566 5989.9037 + 62 31 245.01053 -1728.3521 560.163 -2288.5151 -1195.6826 1.0080748 19.658335 19.658335 19.658335 7596.9658 3842.0862 3086.2018 7494.9568 4807.7483 + 63 31.5 261.08032 -1728.8173 596.90306 -2325.7204 -1353.3389 1.0080516 19.658486 19.658486 19.658486 7597.1409 2512.9726 1564.9697 6088.7617 3388.9013 + 64 32 269.79711 -1728.9251 616.83208 -2345.7571 -1504.7683 1.0080277 19.658641 19.658641 19.658641 7597.3207 1328.321 282.92997 4458.0228 2023.0912 + 65 32.5 268.92628 -1728.3938 614.84113 -2343.235 -1627.4209 1.0080035 19.658798 19.658798 19.658798 7597.5033 452.22211 -546.30269 2827.9595 911.29296 + 66 33 260.3418 -1727.2649 595.21458 -2322.4795 -1715.3671 1.0079791 19.658957 19.658957 19.658957 7597.6872 -116.26671 -909.31135 1347.7075 107.37649 + 67 33.5 249.69892 -1725.9754 570.88198 -2296.8574 -1777.9974 1.0079547 19.659116 19.659116 19.659116 7597.8713 -500.20244 -971.59174 63.347387 -469.48226 + 68 34 243.70126 -1725.066 557.16963 -2282.2356 -1830.3139 1.0079303 19.659274 19.659274 19.659274 7598.0547 -845.49768 -967.44518 -1036.4776 -949.80682 + 69 34.5 246.61269 -1724.8653 563.82599 -2288.6912 -1880.7232 1.0079062 19.659431 19.659431 19.659431 7598.2368 -1216.8263 -1060.629 -1942.0487 -1406.5013 + 70 35 258.03713 -1725.3332 589.94546 -2315.2786 -1923.3896 1.0078823 19.659586 19.659586 19.659586 7598.417 -1541.564 -1248.7229 -2571.5216 -1787.2695 71 35.5 273.16593 -1726.0585 624.53415 -2350.5927 -1939.729 1.0078587 19.65974 19.65974 19.65974 7598.5947 -1634.7071 -1365.3713 -2784.2986 -1928.1257 - 72 36 285.38157 -1726.507 652.46254 -2378.9695 -1908.5082 1.0078355 19.659891 19.659891 19.659891 7598.7698 -1292.7504 -1183.3051 -2450.8723 -1642.3093 - 73 36.5 289.74018 -1726.3141 662.42755 -2388.7417 -1819.0223 1.0078126 19.66004 19.66004 19.66004 7598.9426 -408.71466 -562.10052 -1538.8173 -836.54415 - 74 37 285.45884 -1725.4392 652.63921 -2378.0784 -1680.0975 1.0077898 19.660188 19.660188 19.660188 7599.1142 950.20913 442.59973 -165.42681 409.12735 - 75 37.5 276.25796 -1724.188 631.60341 -2355.7914 -1520.1539 1.007767 19.660336 19.660336 19.660336 7599.2864 2539.3039 1569.1695 1414.5299 1841.0011 - 76 38 268.36655 -1723.0985 613.56143 -2336.6599 -1377.8661 1.0077438 19.660487 19.660487 19.660487 7599.4612 4010.6984 2450.7556 2883.4322 3114.9621 - 77 38.5 267.07379 -1722.6216 610.60581 -2333.2274 -1287.3418 1.00772 19.660641 19.660641 19.660641 7599.6403 5035.307 2780.6312 3966.1107 3927.3496 - 78 39 273.86909 -1722.7877 626.14177 -2348.9295 -1265.4516 1.0076956 19.6608 19.6608 19.6608 7599.8249 5416.2271 2451.927 4510.6104 4126.2548 - 79 39.5 286.08161 -1723.2441 654.06303 -2377.3071 -1308.1183 1.0076703 19.660965 19.660965 19.660965 7600.0152 5141.2099 1593.738 4501.0225 3745.3234 - 80 40 298.88372 -1723.6095 683.33226 -2406.9417 -1396.1391 1.0076444 19.661133 19.661133 19.661133 7600.2107 4356.0507 497.08424 4010.0885 2954.4078 - 81 40.5 307.74794 -1723.6731 703.59837 -2427.2715 -1505.0302 1.0076179 19.661305 19.661305 19.661305 7600.4104 3285.183 -512.81885 3145.2106 1972.5249 - 82 41 310.07081 -1723.3186 708.9091 -2432.2277 -1613.7076 1.0075911 19.66148 19.66148 19.66148 7600.6128 2144.4135 -1195.4691 2017.6001 988.84817 - 83 41.5 305.97777 -1722.5854 699.55126 -2422.1367 -1710.2062 1.0075641 19.661656 19.661656 19.661656 7600.8165 1081.7243 -1466.6202 719.92101 111.67503 - 84 42 298.03815 -1721.7005 681.39904 -2403.0995 -1792.5864 1.0075371 19.661831 19.661831 19.661831 7601.0205 163.49401 -1403.4925 -678.37812 -639.45888 - 85 42.5 289.97873 -1720.8286 662.97296 -2383.8015 -1864.9065 1.0075101 19.662006 19.662006 19.662006 7601.2236 -602.96364 -1189.5588 -2106.5331 -1299.6852 - 86 43 285.42707 -1720.1321 652.56657 -2372.6987 -1931.8624 1.0074835 19.66218 19.66218 19.66218 7601.4248 -1232.8245 -1026.3028 -3470.5924 -1909.9066 - 87 43.5 286.65463 -1719.8429 655.37311 -2375.216 -1993.4772 1.0074571 19.662351 19.662351 19.662351 7601.6235 -1727.4307 -1036.8069 -4640.4971 -2468.2449 - 88 44 293.21423 -1720.0193 670.37022 -2390.3895 -2041.1683 1.0074313 19.66252 19.66252 19.66252 7601.8187 -2044.0451 -1199.1716 -5447.0768 -2896.7645 + 72 36 285.38157 -1726.507 652.46254 -2378.9695 -1908.5081 1.0078355 19.659891 19.659891 19.659891 7598.7698 -1292.7504 -1183.3051 -2450.8723 -1642.3092 + 73 36.5 289.74018 -1726.3141 662.42755 -2388.7417 -1819.0223 1.0078126 19.66004 19.66004 19.66004 7598.9426 -408.71462 -562.10049 -1538.8172 -836.54411 + 74 37 285.45884 -1725.4392 652.63921 -2378.0784 -1680.0975 1.0077898 19.660188 19.660188 19.660188 7599.1142 950.20917 442.59976 -165.42677 409.12739 + 75 37.5 276.25796 -1724.188 631.60341 -2355.7914 -1520.1539 1.007767 19.660336 19.660336 19.660336 7599.2864 2539.3039 1569.1696 1414.53 1841.0012 + 76 38 268.36655 -1723.0985 613.56143 -2336.6599 -1377.8661 1.0077438 19.660487 19.660487 19.660487 7599.4612 4010.6984 2450.7556 2883.4323 3114.9621 + 77 38.5 267.07379 -1722.6216 610.60581 -2333.2274 -1287.3418 1.00772 19.660641 19.660641 19.660641 7599.6403 5035.307 2780.6312 3966.1108 3927.3497 + 78 39 273.86909 -1722.7877 626.14177 -2348.9295 -1265.4516 1.0076956 19.6608 19.6608 19.6608 7599.8249 5416.2271 2451.927 4510.6105 4126.2549 + 79 39.5 286.08161 -1723.2441 654.06303 -2377.3071 -1308.1183 1.0076703 19.660965 19.660965 19.660965 7600.0152 5141.2099 1593.738 4501.0225 3745.3235 + 80 40 298.88372 -1723.6094 683.33226 -2406.9417 -1396.1391 1.0076444 19.661133 19.661133 19.661133 7600.2107 4356.0507 497.08428 4010.0886 2954.4079 + 81 40.5 307.74794 -1723.6731 703.59836 -2427.2715 -1505.0302 1.0076179 19.661305 19.661305 19.661305 7600.4104 3285.183 -512.8188 3145.2106 1972.5249 + 82 41 310.07081 -1723.3186 708.9091 -2432.2277 -1613.7076 1.0075911 19.66148 19.66148 19.66148 7600.6128 2144.4136 -1195.4691 2017.6001 988.84821 + 83 41.5 305.97777 -1722.5854 699.55126 -2422.1367 -1710.2062 1.0075641 19.661656 19.661656 19.661656 7600.8165 1081.7243 -1466.6201 719.92105 111.67507 + 84 42 298.03815 -1721.7005 681.39904 -2403.0995 -1792.5864 1.0075371 19.661831 19.661831 19.661831 7601.0205 163.49405 -1403.4925 -678.37808 -639.45883 + 85 42.5 289.97873 -1720.8286 662.97296 -2383.8015 -1864.9065 1.0075101 19.662006 19.662006 19.662006 7601.2236 -602.96359 -1189.5587 -2106.5331 -1299.6851 + 86 43 285.42707 -1720.1321 652.56657 -2372.6987 -1931.8624 1.0074835 19.66218 19.66218 19.66218 7601.4248 -1232.8245 -1026.3028 -3470.5923 -1909.9065 + 87 43.5 286.65463 -1719.8429 655.37311 -2375.216 -1993.4772 1.0074571 19.662351 19.662351 19.662351 7601.6235 -1727.4307 -1036.8069 -4640.497 -2468.2449 + 88 44 293.21423 -1720.0193 670.37022 -2390.3895 -2041.1683 1.0074313 19.66252 19.66252 19.66252 7601.8187 -2044.045 -1199.1716 -5447.0768 -2896.7645 89 44.5 301.68913 -1720.4077 689.74621 -2410.1539 -2058.8466 1.0074059 19.662685 19.662685 19.662685 7602.0099 -2090.5154 -1357.509 -5709.903 -3052.6425 90 45 307.31944 -1720.5984 702.61869 -2423.2171 -2030.1879 1.0073811 19.662846 19.662846 19.662846 7602.1969 -1764.4626 -1315.8041 -5296.8072 -2792.358 - 91 45.5 306.63737 -1720.284 701.05929 -2421.3433 -1948.3884 1.0073569 19.663004 19.663004 19.663004 7602.3801 -1027.7935 -956.38563 -4187.872 -2057.3504 - 92 46 299.48972 -1719.4374 684.71774 -2404.1552 -1822.8365 1.007333 19.663159 19.663159 19.663159 7602.5604 26.751851 -313.98567 -2510.4728 -932.56888 - 93 46.5 289.23303 -1718.3493 661.26808 -2379.6174 -1678.4934 1.0073093 19.663313 19.663313 19.663313 7602.7394 1167.8941 431.33019 -520.85477 359.4565 - 94 47 280.8783 -1717.4708 642.16681 -2359.6377 -1547.5998 1.0072855 19.663468 19.663468 19.663468 7602.9189 2094.2021 1037.1223 1464.7219 1532.0154 - 95 47.5 278.23295 -1717.1077 636.1188 -2353.2265 -1457.5732 1.0072614 19.663625 19.663625 19.663625 7603.1006 2548.2421 1314.5303 3159.0476 2340.6067 - 96 48 281.92564 -1717.2059 644.56133 -2361.7672 -1421.7715 1.0072369 19.663784 19.663784 19.663784 7603.2855 2413.1905 1214.185 4365.5387 2664.3047 - 97 48.5 289.58886 -1717.4536 662.08159 -2379.5352 -1437.6426 1.0072119 19.663947 19.663947 19.663947 7603.4742 1740.0276 838.91482 4991.0957 2523.346 - 98 49 297.63541 -1717.5994 680.47828 -2398.0777 -1491.6173 1.0071865 19.664113 19.664113 19.664113 7603.6664 701.28193 384.37336 5027.9366 2037.864 - 99 49.5 302.89083 -1717.5771 692.49365 -2410.0708 -1566.0823 1.0071606 19.664281 19.664281 19.664281 7603.8614 -486.15582 46.291916 4538.2141 1366.1167 - 100 50 303.33647 -1717.3173 693.51249 -2410.8298 -1645.0949 1.0071346 19.66445 19.66445 19.66445 7604.0583 -1621.9659 -60.918905 3636.648 651.25441 -Loop time of 78.2045 on 1 procs for 100 steps with 768 atoms - -Performance: 0.055 ns/day, 434.470 hours/ns, 1.279 timesteps/s, 982.040 atom-step/s -99.2% CPU use with 1 MPI tasks x 1 OpenMP threads + 91 45.5 306.63737 -1720.284 701.05929 -2421.3433 -1948.3884 1.0073569 19.663004 19.663004 19.663004 7602.3801 -1027.7935 -956.3856 -4187.8719 -2057.3503 + 92 46 299.48972 -1719.4374 684.71774 -2404.1552 -1822.8365 1.007333 19.663159 19.663159 19.663159 7602.5604 26.751879 -313.98564 -2510.4728 -932.56885 + 93 46.5 289.23303 -1718.3493 661.26808 -2379.6174 -1678.4934 1.0073093 19.663313 19.663313 19.663313 7602.7394 1167.8941 431.33022 -520.85474 359.45653 + 94 47 280.8783 -1717.4708 642.16681 -2359.6376 -1547.5998 1.0072855 19.663468 19.663468 19.663468 7602.9189 2094.2022 1037.1223 1464.722 1532.0155 + 95 47.5 278.23295 -1717.1077 636.1188 -2353.2264 -1457.5732 1.0072614 19.663625 19.663625 19.663625 7603.1006 2548.2421 1314.5303 3159.0476 2340.6067 + 96 48 281.92564 -1717.2059 644.56133 -2361.7672 -1421.7715 1.0072369 19.663784 19.663784 19.663784 7603.2855 2413.1905 1214.185 4365.5388 2664.3048 + 97 48.5 289.58886 -1717.4536 662.08159 -2379.5352 -1437.6426 1.0072119 19.663947 19.663947 19.663947 7603.4742 1740.0276 838.91486 4991.0957 2523.3461 + 98 49 297.63541 -1717.5994 680.47828 -2398.0777 -1491.6173 1.0071865 19.664113 19.664113 19.664113 7603.6664 701.28196 384.3734 5027.9366 2037.864 + 99 49.5 302.89083 -1717.5771 692.49365 -2410.0708 -1566.0823 1.0071606 19.664281 19.664281 19.664281 7603.8614 -486.15579 46.29196 4538.2141 1366.1168 + 100 50 303.33647 -1717.3173 693.51249 -2410.8298 -1645.0949 1.0071346 19.66445 19.66445 19.66445 7604.0583 -1621.9658 -60.918855 3636.6481 651.25445 +Loop time of 77.6656 on 1 procs for 100 steps with 768 atoms + +Performance: 0.056 ns/day, 431.476 hours/ns, 1.288 timesteps/s, 988.854 atom-step/s +99.4% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 77.772 | 77.772 | 77.772 | 0.0 | 99.45 -Bond | 0.00018066 | 0.00018066 | 0.00018066 | 0.0 | 0.00 -Neigh | 0.012733 | 0.012733 | 0.012733 | 0.0 | 0.02 -Comm | 0.0060702 | 0.0060702 | 0.0060702 | 0.0 | 0.01 -Output | 0.26325 | 0.26325 | 0.26325 | 0.0 | 0.34 -Modify | 0.14864 | 0.14864 | 0.14864 | 0.0 | 0.19 -Other | | 0.001345 | | | 0.00 +Pair | 77.483 | 77.483 | 77.483 | 0.0 | 99.77 +Bond | 0.00015614 | 0.00015614 | 0.00015614 | 0.0 | 0.00 +Neigh | 0.012615 | 0.012615 | 0.012615 | 0.0 | 0.02 +Comm | 0.0062873 | 0.0062873 | 0.0062873 | 0.0 | 0.01 +Output | 0.0064041 | 0.0064041 | 0.0064041 | 0.0 | 0.01 +Modify | 0.1554 | 0.1554 | 0.1554 | 0.0 | 0.20 +Other | | 0.001316 | | | 0.00 Nlocal: 768 ave 768 max 768 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -248,4 +248,4 @@ Dangerous builds = 0 # write_data final.data # write_restart restart.new -Total wall time: 0:01:19 +Total wall time: 0:01:18 diff --git a/examples/PACKAGES/mbx/256h2o_dipole/log.11Dec25.256h2o_dipole.g++.1 b/examples/PACKAGES/mbx/256h2o_dipole/log.23Mar26.256h2o_dipole.g++.1 similarity index 66% rename from examples/PACKAGES/mbx/256h2o_dipole/log.11Dec25.256h2o_dipole.g++.1 rename to examples/PACKAGES/mbx/256h2o_dipole/log.23Mar26.256h2o_dipole.g++.1 index 0988fe09f23..52de1b5110a 100644 --- a/examples/PACKAGES/mbx/256h2o_dipole/log.11Dec25.256h2o_dipole.g++.1 +++ b/examples/PACKAGES/mbx/256h2o_dipole/log.23Mar26.256h2o_dipole.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (10 Sep 2025 - Development - patch_10Sep2025-714-g4ab4c2060a-modified) +LAMMPS (11 Feb 2026 - Development - patch_11Feb2026-273-ge995714d19-modified) using 1 OpenMP thread(s) per MPI task processors * * * map xyz @@ -32,7 +32,7 @@ Finding 1-2 1-3 1-4 neighbors ... 1 = max # of 1-4 neighbors 2 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.030 seconds + read_data CPU = 0.034 seconds pair_style mbx 9.0 @@ -113,7 +113,7 @@ Your simulation uses code contributions which should be cited: pages = {054802}, year = {2023}, doi = {10.1063/5.0156036}, - version = {1.3.3} + version = {1.3.12} } CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE @@ -133,122 +133,122 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 8.503 | 8.503 | 8.503 Mbytes Step Time Temp TotEng KinEng PotEng Enthalpy Density Lx Ly Lz Volume Pxx Pyy Pzz Press - 0 0 298 -1731.1398 681.31183 -2412.4517 -1661.3647 1.0085627 19.655164 19.655164 19.655164 7593.2911 2461.8369 -310.60207 -260.99812 630.07891 - 1 0.5 305.62775 -1731.7838 698.75101 -2430.5349 -1604.1604 1.0085626 19.655165 19.655165 19.655165 7593.2915 3142.8129 -49.500458 364.05579 1152.4561 - 2 1 307.93402 -1731.9033 704.02379 -2435.9271 -1540.1261 1.0085623 19.655167 19.655167 19.655167 7593.2936 3746.3787 260.48522 1188.4526 1731.7722 - 3 1.5 303.9937 -1731.5145 695.0151 -2426.5296 -1474.3196 1.0085617 19.65517 19.65517 19.65517 7593.298 4217.2951 581.20066 2169.0096 2322.5018 - 4 2 296.29825 -1730.8375 677.42115 -2408.2586 -1422.3017 1.0085607 19.655177 19.655177 19.655177 7593.3057 4420.3342 803.05536 3134.9506 2786.1134 - 5 2.5 289.28952 -1730.2117 661.39723 -2391.609 -1403.9703 1.0085592 19.655187 19.655187 19.655187 7593.3172 4202.1271 794.54315 3841.3086 2945.9929 - 6 3 287.0064 -1730.0104 656.17736 -2386.1878 -1433.8797 1.0085571 19.655201 19.655201 19.655201 7593.3328 3483.5568 475.4412 4063.2546 2674.0842 - 7 3.5 290.70362 -1730.3925 664.63025 -2395.0228 -1512.4048 1.0085545 19.655217 19.655217 19.655217 7593.3522 2334.38 -125.04179 3695.988 1968.4421 - 8 4 297.9483 -1731.1172 681.19364 -2412.3108 -1623.2223 1.0085516 19.655236 19.655236 19.655236 7593.3742 978.38436 -863.23287 2807.732 974.29449 - 9 4.5 304.1085 -1731.7248 695.27757 -2427.0024 -1739.5067 1.0085485 19.655256 19.655256 19.655256 7593.3976 -286.39472 -1537.5109 1613.0927 -70.270958 - 10 5 305.20311 -1731.8889 697.78017 -2429.669 -1835.2669 1.0085454 19.655277 19.655277 19.655277 7593.421 -1211.14 -1975.9958 386.63227 -933.5012 - 11 5.5 300.04419 -1731.5836 685.98543 -2417.569 -1894.9316 1.0085425 19.655296 19.655296 19.655296 7593.443 -1690.98 -2102.807 -631.28653 -1475.0245 - 12 6 290.5412 -1731.004 664.25892 -2395.2629 -1916.6676 1.0085398 19.655313 19.655313 19.655313 7593.463 -1779.9564 -1949.6549 -1299.9765 -1676.5293 - 13 6.5 280.54125 -1730.3851 641.39621 -2371.7813 -1909.4145 1.0085375 19.655328 19.655328 19.655328 7593.4807 -1629.9189 -1621.2443 -1598.6906 -1616.6179 - 14 7 274.23791 -1729.9209 626.985 -2356.9059 -1886.3696 1.0085354 19.655341 19.655341 19.655341 7593.4961 -1400.6947 -1243.4851 -1593.9631 -1412.7143 - 15 7.5 274.67265 -1729.8323 627.97895 -2357.8113 -1857.9233 1.0085336 19.655353 19.655353 19.655353 7593.5096 -1188.49 -912.5375 -1368.9065 -1156.6446 - 16 8 282.22973 -1730.2941 645.25656 -2375.5507 -1825.9123 1.0085321 19.655363 19.655363 19.655363 7593.5215 -989.39748 -649.27115 -951.58818 -863.41894 - 17 8.5 293.73139 -1731.1656 671.55259 -2402.7182 -1781.87 1.0085306 19.655373 19.655373 19.655373 7593.5323 -706.02695 -379.02781 -288.50178 -457.85218 - 18 9 303.51319 -1731.9521 693.91654 -2425.8686 -1712.3334 1.0085293 19.655381 19.655381 19.655381 7593.5423 -206.67568 29.325988 708.81014 177.15348 - 19 9.5 306.53881 -1732.1583 700.83394 -2432.9922 -1609.7256 1.0085279 19.65539 19.65539 19.65539 7593.5527 582.39119 667.35719 2066.887 1105.5451 - 20 10 301.44803 -1731.69 689.19499 -2420.885 -1481.8674 1.0085263 19.6554 19.6554 19.6554 7593.5646 1601.7277 1494.8714 3670.9486 2255.8492 - 21 10.5 291.21481 -1730.8605 665.79899 -2396.6595 -1353.0494 1.0085243 19.655413 19.655413 19.655413 7593.5796 2645.3952 2325.386 5263.8838 3411.555 - 22 11 281.28084 -1730.0673 643.08713 -2373.1545 -1255.755 1.0085217 19.65543 19.65543 19.65543 7593.5993 3422.6014 2901.1578 6525.0281 4282.9291 - 23 11.5 276.87457 -1729.6445 633.01315 -2362.6577 -1218.3897 1.0085183 19.655453 19.655453 19.655453 7593.625 3671.1482 3002.5139 7175.8231 4616.4951 - 24 12 280.63936 -1729.8338 641.62051 -2371.4544 -1254.012 1.0085141 19.65548 19.65548 19.65548 7593.657 3274.9468 2544.367 7070.2669 4296.5269 - 25 12.5 291.14418 -1730.5902 665.63751 -2396.2277 -1354.058 1.008509 19.655513 19.655513 19.655513 7593.6951 2329.0309 1627.308 6243.5232 3399.954 - 26 13 303.27158 -1731.5375 693.36414 -2424.9017 -1490.7322 1.0085033 19.65555 19.65555 19.65555 7593.7378 1113.5704 511.11773 4898.4402 2174.3761 - 27 13.5 310.61407 -1732.2229 710.15113 -2442.374 -1627.75 1.0084972 19.655589 19.655589 19.655589 7593.7836 -17.710741 -486.57444 3334.3122 943.34235 - 28 14 308.4633 -1732.3517 705.23388 -2437.5856 -1733.9652 1.008491 19.65563 19.65563 19.65563 7593.8307 -781.35597 -1116.4799 1854.1273 -14.569507 - 29 14.5 295.86322 -1731.8464 676.42655 -2408.273 -1793.6016 1.0084847 19.655671 19.655671 19.655671 7593.8777 -1070.2353 -1285.9528 683.34637 -557.61391 - 30 15 276.15727 -1730.8542 631.37321 -2362.2274 -1809.6882 1.0084786 19.655711 19.655711 19.655711 7593.924 -974.88816 -1075.3604 -85.217329 -711.82197 - 31 15.5 255.89625 -1729.7656 585.05082 -2314.8165 -1799.7168 1.0084726 19.65575 19.65575 19.65575 7593.9693 -713.21572 -684.15402 -497.46606 -631.61193 - 32 16 242.15062 -1729.0942 553.62444 -2282.7186 -1784.7657 1.0084667 19.655788 19.655788 19.655788 7594.0138 -500.79186 -331.17593 -676.05284 -502.67354 - 33 16.5 239.1893 -1729.1724 546.85403 -2276.0264 -1776.8224 1.0084609 19.655826 19.655826 19.655826 7594.0576 -425.29073 -147.18828 -718.24925 -430.24275 - 34 17 246.33128 -1729.9515 563.18261 -2293.1341 -1771.1575 1.0084551 19.655863 19.655863 19.655863 7594.1007 -394.00513 -106.26895 -615.89161 -372.05523 - 35 17.5 258.24144 -1731.0399 590.41258 -2321.4525 -1748.1657 1.0084495 19.6559 19.6559 19.6559 7594.1434 -181.26587 -32.371063 -250.25697 -154.6313 - 36 18 267.47656 -1731.9227 611.52666 -2343.4493 -1683.8741 1.0084438 19.655936 19.655936 19.655936 7594.1858 453.0454 313.93963 534.51734 433.83412 - 37 18.5 267.9357 -1732.1915 612.57638 -2344.7679 -1563.9514 1.0084381 19.655974 19.655974 19.655974 7594.2289 1633.1772 1102.8046 1821.1448 1519.0422 - 38 19 257.63044 -1731.6977 589.01565 -2320.7133 -1394.3671 1.0084321 19.656013 19.656013 19.656013 7594.274 3283.7378 2322.4014 3531.0972 3045.7455 - 39 19.5 239.69151 -1730.615 548.00223 -2278.6172 -1203.7766 1.0084256 19.656055 19.656055 19.656055 7594.3234 5124.6895 3745.0405 5400.5882 4756.7727 - 40 20 221.14295 -1729.4168 505.59499 -2235.0118 -1035.8607 1.0084181 19.656104 19.656104 19.656104 7594.3794 6752.0038 4996.8546 7037.1568 6262.0051 - 41 20.5 209.69589 -1728.6881 479.42379 -2208.1119 -933.73875 1.0084095 19.656159 19.656159 19.656159 7594.4441 7781.8785 5707.3758 8042.9665 7177.4069 - 42 21 209.91575 -1728.8029 479.92646 -2208.7294 -922.95774 1.0083996 19.656224 19.656224 19.656224 7594.5187 8000.2488 5668.6097 8158.2762 7275.7116 - 43 21.5 220.76906 -1729.7025 504.74017 -2234.4426 -1001.1378 1.0083884 19.656297 19.656297 19.656297 7594.6034 7443.4993 4926.589 7363.6054 6577.8979 - 44 22 236.03186 -1730.8731 539.63522 -2270.5084 -1139.4338 1.0083759 19.656378 19.656378 19.656378 7594.6972 6369.5818 3764.2426 5885.5327 5339.7857 - 45 22.5 247.51488 -1731.6979 565.88865 -2297.5865 -1295.4642 1.0083625 19.656465 19.656465 19.656465 7594.7984 5138.9597 2582.3337 4094.1024 3938.4653 - 46 23 249.04469 -1731.8373 569.38622 -2301.2235 -1430.6305 1.0083483 19.656557 19.656557 19.656557 7594.9051 4068.0086 1734.4276 2355.6414 2719.3592 - 47 23.5 238.94858 -1731.2335 546.30368 -2277.5372 -1523.0773 1.0083337 19.656652 19.656652 19.656652 7595.0156 3318.1889 1399.9777 919.58716 1879.2513 - 48 24 220.59727 -1730.0518 504.34741 -2234.3992 -1572.4579 1.0083186 19.65675 19.65675 19.65675 7595.1287 2859.9313 1541.2101 -132.89144 1422.75 - 49 24.5 201.1818 -1728.7353 459.9582 -2188.6935 -1595.6881 1.0083034 19.656849 19.656849 19.656849 7595.2437 2525.2504 1945.092 -866.96815 1201.1247 - 50 25 188.69771 -1727.8757 431.41605 -2159.2917 -1614.9132 1.0082879 19.65695 19.65695 19.65695 7595.3604 2129.3728 2331.9662 -1401.9762 1019.7876 - 51 25.5 188.08537 -1727.8755 430.01607 -2157.8916 -1642.8614 1.0082722 19.657052 19.657052 19.657052 7595.4786 1600.1347 2496.0662 -1793.7985 767.46745 - 52 26 198.66669 -1728.6609 454.20794 -2182.8688 -1673.7841 1.0082564 19.657155 19.657155 19.657155 7595.5978 1037.6972 2413.7371 -1965.2514 495.39431 - 53 26.5 214.57057 -1729.7351 490.56868 -2220.3038 -1685.5474 1.0082405 19.657258 19.657258 19.657258 7595.7177 670.41258 2256.7055 -1730.4377 398.89347 - 54 27 227.87941 -1730.4945 520.99643 -2251.4909 -1651.8538 1.0082245 19.657362 19.657362 19.657362 7595.8381 738.37004 2292.5831 -901.26123 709.8973 - 55 27.5 232.58657 -1730.5402 531.75833 -2262.2985 -1557.7061 1.0082083 19.657467 19.657467 19.657467 7595.9596 1368.0421 2725.6086 586.84699 1560.1659 - 56 28 227.36865 -1729.8039 519.82871 -2249.6326 -1410.1549 1.0081919 19.657573 19.657573 19.657573 7596.0832 2492.3241 3566.6081 2597.3028 2885.4117 - 57 28.5 216.09215 -1728.5822 494.04743 -2222.6296 -1239.2452 1.008175 19.657683 19.657683 19.657683 7596.2109 3847.5168 4601.4675 4802.2521 4417.0788 - 58 29 205.83675 -1727.4448 470.60071 -2198.0455 -1088.4483 1.0081572 19.657799 19.657799 19.657799 7596.3446 5053.1652 5472.7452 6777.7995 5767.9033 - 59 29.5 203.16592 -1726.931 464.49445 -2191.4254 -998.26028 1.0081384 19.657921 19.657921 19.657921 7596.4864 5749.2649 5835.2972 8147.1101 6577.2241 - 60 30 210.70938 -1727.1447 481.74092 -2208.8856 -990.90331 1.0081184 19.658051 19.658051 19.658051 7596.6373 5731.743 5502.7697 8701.7707 6645.4278 - 61 30.5 226.33789 -1727.741 517.47208 -2245.213 -1064.1106 1.0080972 19.658189 19.658189 19.658189 7596.7974 5022.101 4510.7532 8436.8566 5989.9036 - 62 31 245.01053 -1728.3521 560.163 -2288.5151 -1195.6827 1.0080748 19.658335 19.658335 19.658335 7596.9658 3842.0862 3086.2017 7494.9567 4807.7482 - 63 31.5 261.08032 -1728.8173 596.90306 -2325.7204 -1353.3389 1.0080516 19.658486 19.658486 19.658486 7597.1409 2512.9725 1564.9697 6088.7617 3388.9013 - 64 32 269.79711 -1728.9251 616.83208 -2345.7572 -1504.7683 1.0080277 19.658641 19.658641 19.658641 7597.3207 1328.3209 282.92991 4458.0227 2023.0912 - 65 32.5 268.92628 -1728.3938 614.84113 -2343.235 -1627.421 1.0080035 19.658798 19.658798 19.658798 7597.5033 452.22206 -546.30276 2827.9594 911.2929 - 66 33 260.3418 -1727.2649 595.21459 -2322.4795 -1715.3672 1.0079791 19.658957 19.658957 19.658957 7597.6872 -116.26676 -909.31142 1347.7075 107.37643 - 67 33.5 249.69892 -1725.9754 570.88198 -2296.8574 -1777.9974 1.0079547 19.659116 19.659116 19.659116 7597.8713 -500.20249 -971.59181 63.347336 -469.48232 - 68 34 243.70126 -1725.066 557.16963 -2282.2356 -1830.3139 1.0079303 19.659274 19.659274 19.659274 7598.0547 -845.49773 -967.44525 -1036.4777 -949.80688 - 69 34.5 246.61269 -1724.8653 563.82599 -2288.6913 -1880.7232 1.0079062 19.659431 19.659431 19.659431 7598.2368 -1216.8263 -1060.6291 -1942.0487 -1406.5014 - 70 35 258.03713 -1725.3332 589.94546 -2315.2786 -1923.3897 1.0078823 19.659586 19.659586 19.659586 7598.417 -1541.5641 -1248.7229 -2571.5217 -1787.2695 + 0 0 298 -1731.1398 681.31183 -2412.4517 -1661.3647 1.0085627 19.655164 19.655164 19.655164 7593.2911 2461.8369 -310.60204 -260.99809 630.07893 + 1 0.5 305.62775 -1731.7838 698.75101 -2430.5349 -1604.1604 1.0085626 19.655165 19.655165 19.655165 7593.2915 3142.813 -49.500427 364.05582 1152.4561 + 2 1 307.93402 -1731.9033 704.02379 -2435.9271 -1540.1261 1.0085623 19.655167 19.655167 19.655167 7593.2936 3746.3788 260.48526 1188.4526 1731.7722 + 3 1.5 303.9937 -1731.5145 695.0151 -2426.5296 -1474.3196 1.0085617 19.65517 19.65517 19.65517 7593.298 4217.2951 581.2007 2169.0096 2322.5018 + 4 2 296.29825 -1730.8375 677.42115 -2408.2586 -1422.3017 1.0085607 19.655177 19.655177 19.655177 7593.3057 4420.3343 803.05541 3134.9506 2786.1134 + 5 2.5 289.28952 -1730.2117 661.39723 -2391.609 -1403.9703 1.0085592 19.655187 19.655187 19.655187 7593.3172 4202.1271 794.5432 3841.3086 2945.993 + 6 3 287.0064 -1730.0104 656.17736 -2386.1878 -1433.8797 1.0085571 19.655201 19.655201 19.655201 7593.3328 3483.5569 475.44126 4063.2547 2674.0843 + 7 3.5 290.70362 -1730.3925 664.63025 -2395.0228 -1512.4048 1.0085545 19.655217 19.655217 19.655217 7593.3522 2334.3801 -125.04171 3695.988 1968.4421 + 8 4 297.9483 -1731.1172 681.19364 -2412.3108 -1623.2223 1.0085516 19.655236 19.655236 19.655236 7593.3742 978.38444 -863.23279 2807.7321 974.29457 + 9 4.5 304.1085 -1731.7248 695.27757 -2427.0024 -1739.5067 1.0085485 19.655256 19.655256 19.655256 7593.3976 -286.39464 -1537.5108 1613.0928 -70.270878 + 10 5 305.20311 -1731.8889 697.78017 -2429.669 -1835.2669 1.0085454 19.655277 19.655277 19.655277 7593.421 -1211.1399 -1975.9958 386.63235 -933.50112 + 11 5.5 300.04419 -1731.5836 685.98543 -2417.569 -1894.9316 1.0085425 19.655296 19.655296 19.655296 7593.443 -1690.9799 -2102.8069 -631.28645 -1475.0244 + 12 6 290.5412 -1731.004 664.25892 -2395.2629 -1916.6676 1.0085398 19.655313 19.655313 19.655313 7593.463 -1779.9564 -1949.6548 -1299.9764 -1676.5292 + 13 6.5 280.54125 -1730.3851 641.39621 -2371.7813 -1909.4144 1.0085375 19.655328 19.655328 19.655328 7593.4807 -1629.9188 -1621.2443 -1598.6905 -1616.6179 + 14 7 274.2379 -1729.9209 626.985 -2356.9059 -1886.3696 1.0085354 19.655341 19.655341 19.655341 7593.4961 -1400.6947 -1243.485 -1593.9631 -1412.7142 + 15 7.5 274.67265 -1729.8323 627.97895 -2357.8113 -1857.9233 1.0085336 19.655353 19.655353 19.655353 7593.5096 -1188.4899 -912.53744 -1368.9064 -1156.6446 + 16 8 282.22973 -1730.2941 645.25656 -2375.5507 -1825.9123 1.0085321 19.655363 19.655363 19.655363 7593.5215 -989.39743 -649.2711 -951.58813 -863.41889 + 17 8.5 293.73139 -1731.1656 671.55259 -2402.7182 -1781.87 1.0085306 19.655373 19.655373 19.655373 7593.5323 -706.02691 -379.02777 -288.50173 -457.85214 + 18 9 303.51319 -1731.9521 693.91654 -2425.8686 -1712.3334 1.0085293 19.655381 19.655381 19.655381 7593.5423 -206.67563 29.32603 708.81018 177.15353 + 19 9.5 306.53881 -1732.1582 700.83394 -2432.9922 -1609.7256 1.0085279 19.65539 19.65539 19.65539 7593.5527 582.39123 667.35723 2066.887 1105.5452 + 20 10 301.44803 -1731.69 689.19499 -2420.885 -1481.8674 1.0085263 19.6554 19.6554 19.6554 7593.5646 1601.7278 1494.8714 3670.9486 2255.8493 + 21 10.5 291.21481 -1730.8605 665.79899 -2396.6595 -1353.0494 1.0085243 19.655413 19.655413 19.655413 7593.5796 2645.3953 2325.3861 5263.8839 3411.5551 + 22 11 281.28084 -1730.0673 643.08713 -2373.1545 -1255.755 1.0085217 19.65543 19.65543 19.65543 7593.5993 3422.6015 2901.1579 6525.0282 4282.9292 + 23 11.5 276.87457 -1729.6445 633.01315 -2362.6577 -1218.3897 1.0085183 19.655453 19.655453 19.655453 7593.625 3671.1482 3002.5139 7175.8232 4616.4951 + 24 12 280.63936 -1729.8338 641.62051 -2371.4544 -1254.012 1.0085141 19.65548 19.65548 19.65548 7593.657 3274.9469 2544.3671 7070.2669 4296.527 + 25 12.5 291.14418 -1730.5902 665.63751 -2396.2277 -1354.058 1.008509 19.655513 19.655513 19.655513 7593.6951 2329.0309 1627.3081 6243.5233 3399.9541 + 26 13 303.27158 -1731.5375 693.36414 -2424.9017 -1490.7321 1.0085033 19.65555 19.65555 19.65555 7593.7378 1113.5704 511.1178 4898.4403 2174.3762 + 27 13.5 310.61407 -1732.2229 710.15113 -2442.374 -1627.75 1.0084972 19.655589 19.655589 19.655589 7593.7836 -17.710668 -486.57436 3334.3123 943.34242 + 28 14 308.4633 -1732.3517 705.23388 -2437.5856 -1733.9652 1.008491 19.65563 19.65563 19.65563 7593.8307 -781.35589 -1116.4798 1854.1274 -14.569431 + 29 14.5 295.86322 -1731.8464 676.42655 -2408.273 -1793.6016 1.0084847 19.655671 19.655671 19.655671 7593.8777 -1070.2352 -1285.9527 683.34644 -557.61384 + 30 15 276.15727 -1730.8542 631.37321 -2362.2274 -1809.6882 1.0084786 19.655711 19.655711 19.655711 7593.924 -974.88809 -1075.3603 -85.217258 -711.82189 + 31 15.5 255.89625 -1729.7656 585.05082 -2314.8164 -1799.7168 1.0084726 19.65575 19.65575 19.65575 7593.9693 -713.21566 -684.15394 -497.466 -631.61187 + 32 16 242.15062 -1729.0941 553.62444 -2282.7186 -1784.7657 1.0084667 19.655788 19.655788 19.655788 7594.0138 -500.7918 -331.17587 -676.05278 -502.67348 + 33 16.5 239.1893 -1729.1724 546.85403 -2276.0264 -1776.8224 1.0084609 19.655826 19.655826 19.655826 7594.0576 -425.29067 -147.18823 -718.2492 -430.2427 + 34 17 246.33128 -1729.9515 563.18261 -2293.1341 -1771.1574 1.0084551 19.655863 19.655863 19.655863 7594.1007 -394.00508 -106.2689 -615.89156 -372.05518 + 35 17.5 258.24144 -1731.0399 590.41258 -2321.4525 -1748.1657 1.0084495 19.6559 19.6559 19.6559 7594.1434 -181.26583 -32.371023 -250.25693 -154.63126 + 36 18 267.47656 -1731.9227 611.52667 -2343.4493 -1683.8741 1.0084438 19.655936 19.655936 19.655936 7594.1858 453.04544 313.93966 534.51737 433.83416 + 37 18.5 267.9357 -1732.1915 612.57638 -2344.7678 -1563.9514 1.0084381 19.655974 19.655974 19.655974 7594.2289 1633.1773 1102.8046 1821.1448 1519.0422 + 38 19 257.63044 -1731.6977 589.01565 -2320.7133 -1394.3671 1.0084321 19.656013 19.656013 19.656013 7594.274 3283.7379 2322.4014 3531.0973 3045.7455 + 39 19.5 239.69151 -1730.615 548.00223 -2278.6172 -1203.7766 1.0084256 19.656055 19.656055 19.656055 7594.3234 5124.6896 3745.0405 5400.5882 4756.7728 + 40 20 221.14295 -1729.4168 505.59499 -2235.0118 -1035.8607 1.0084181 19.656104 19.656104 19.656104 7594.3794 6752.0038 4996.8547 7037.1569 6262.0051 + 41 20.5 209.69589 -1728.6881 479.42379 -2208.1119 -933.73875 1.0084095 19.656159 19.656159 19.656159 7594.4441 7781.8785 5707.3759 8042.9665 7177.407 + 42 21 209.91575 -1728.8029 479.92646 -2208.7294 -922.95773 1.0083996 19.656224 19.656224 19.656224 7594.5187 8000.2489 5668.6097 8158.2762 7275.7116 + 43 21.5 220.76906 -1729.7025 504.74017 -2234.4426 -1001.1378 1.0083884 19.656297 19.656297 19.656297 7594.6034 7443.4993 4926.589 7363.6055 6577.8979 + 44 22 236.03186 -1730.8731 539.63522 -2270.5084 -1139.4338 1.0083759 19.656378 19.656378 19.656378 7594.6972 6369.5818 3764.2427 5885.5327 5339.7857 + 45 22.5 247.51488 -1731.6979 565.88865 -2297.5865 -1295.4642 1.0083625 19.656465 19.656465 19.656465 7594.7984 5138.9597 2582.3338 4094.1025 3938.4653 + 46 23 249.04469 -1731.8373 569.38622 -2301.2235 -1430.6304 1.0083483 19.656557 19.656557 19.656557 7594.9051 4068.0087 1734.4277 2355.6414 2719.3593 + 47 23.5 238.94858 -1731.2335 546.30368 -2277.5372 -1523.0772 1.0083337 19.656652 19.656652 19.656652 7595.0156 3318.189 1399.9778 919.58722 1879.2513 + 48 24 220.59727 -1730.0518 504.34741 -2234.3992 -1572.4578 1.0083186 19.65675 19.65675 19.65675 7595.1287 2859.9313 1541.2102 -132.89139 1422.75 + 49 24.5 201.1818 -1728.7353 459.9582 -2188.6935 -1595.6881 1.0083034 19.656849 19.656849 19.656849 7595.2437 2525.2504 1945.092 -866.9681 1201.1248 + 50 25 188.69771 -1727.8757 431.41605 -2159.2917 -1614.9132 1.0082879 19.65695 19.65695 19.65695 7595.3604 2129.3728 2331.9662 -1401.9761 1019.7876 + 51 25.5 188.08537 -1727.8755 430.01607 -2157.8916 -1642.8614 1.0082722 19.657052 19.657052 19.657052 7595.4786 1600.1348 2496.0662 -1793.7985 767.4675 + 52 26 198.66669 -1728.6609 454.20794 -2182.8688 -1673.7841 1.0082564 19.657155 19.657155 19.657155 7595.5978 1037.6972 2413.7372 -1965.2513 495.39436 + 53 26.5 214.57057 -1729.7351 490.56868 -2220.3038 -1685.5474 1.0082405 19.657258 19.657258 19.657258 7595.7177 670.41262 2256.7056 -1730.4377 398.89351 + 54 27 227.87941 -1730.4945 520.99643 -2251.4909 -1651.8538 1.0082245 19.657362 19.657362 19.657362 7595.8381 738.37008 2292.5831 -901.26119 709.89734 + 55 27.5 232.58657 -1730.5402 531.75833 -2262.2985 -1557.7061 1.0082083 19.657467 19.657467 19.657467 7595.9596 1368.0421 2725.6087 586.84703 1560.166 + 56 28 227.36865 -1729.8039 519.82871 -2249.6326 -1410.1549 1.0081919 19.657573 19.657573 19.657573 7596.0832 2492.3242 3566.6081 2597.3028 2885.4117 + 57 28.5 216.09214 -1728.5822 494.04743 -2222.6296 -1239.2452 1.008175 19.657683 19.657683 19.657683 7596.2109 3847.5169 4601.4676 4802.2521 4417.0789 + 58 29 205.83675 -1727.4448 470.60071 -2198.0455 -1088.4483 1.0081572 19.657799 19.657799 19.657799 7596.3446 5053.1652 5472.7453 6777.7995 5767.9033 + 59 29.5 203.16592 -1726.931 464.49445 -2191.4254 -998.26027 1.0081384 19.657921 19.657921 19.657921 7596.4864 5749.265 5835.2973 8147.1101 6577.2241 + 60 30 210.70938 -1727.1447 481.74092 -2208.8856 -990.9033 1.0081184 19.658051 19.658051 19.658051 7596.6373 5731.743 5502.7698 8701.7708 6645.4279 + 61 30.5 226.33789 -1727.741 517.47208 -2245.213 -1064.1106 1.0080972 19.658189 19.658189 19.658189 7596.7974 5022.1011 4510.7533 8436.8566 5989.9037 + 62 31 245.01053 -1728.3521 560.163 -2288.5151 -1195.6826 1.0080748 19.658335 19.658335 19.658335 7596.9658 3842.0862 3086.2018 7494.9568 4807.7483 + 63 31.5 261.08032 -1728.8173 596.90306 -2325.7204 -1353.3389 1.0080516 19.658486 19.658486 19.658486 7597.1409 2512.9726 1564.9697 6088.7617 3388.9013 + 64 32 269.79711 -1728.9251 616.83208 -2345.7571 -1504.7683 1.0080277 19.658641 19.658641 19.658641 7597.3207 1328.321 282.92997 4458.0228 2023.0912 + 65 32.5 268.92628 -1728.3938 614.84113 -2343.235 -1627.4209 1.0080035 19.658798 19.658798 19.658798 7597.5033 452.22211 -546.30269 2827.9595 911.29296 + 66 33 260.3418 -1727.2649 595.21458 -2322.4795 -1715.3671 1.0079791 19.658957 19.658957 19.658957 7597.6872 -116.26671 -909.31135 1347.7075 107.37649 + 67 33.5 249.69892 -1725.9754 570.88198 -2296.8574 -1777.9974 1.0079547 19.659116 19.659116 19.659116 7597.8713 -500.20244 -971.59174 63.347387 -469.48226 + 68 34 243.70126 -1725.066 557.16963 -2282.2356 -1830.3139 1.0079303 19.659274 19.659274 19.659274 7598.0547 -845.49768 -967.44518 -1036.4776 -949.80682 + 69 34.5 246.61269 -1724.8653 563.82599 -2288.6912 -1880.7232 1.0079062 19.659431 19.659431 19.659431 7598.2368 -1216.8263 -1060.629 -1942.0487 -1406.5013 + 70 35 258.03713 -1725.3332 589.94546 -2315.2786 -1923.3896 1.0078823 19.659586 19.659586 19.659586 7598.417 -1541.564 -1248.7229 -2571.5216 -1787.2695 71 35.5 273.16593 -1726.0585 624.53415 -2350.5927 -1939.729 1.0078587 19.65974 19.65974 19.65974 7598.5947 -1634.7071 -1365.3713 -2784.2986 -1928.1257 - 72 36 285.38157 -1726.507 652.46254 -2378.9695 -1908.5082 1.0078355 19.659891 19.659891 19.659891 7598.7698 -1292.7504 -1183.3051 -2450.8723 -1642.3093 - 73 36.5 289.74018 -1726.3141 662.42755 -2388.7417 -1819.0223 1.0078126 19.66004 19.66004 19.66004 7598.9426 -408.71466 -562.10052 -1538.8173 -836.54415 - 74 37 285.45884 -1725.4392 652.63921 -2378.0784 -1680.0975 1.0077898 19.660188 19.660188 19.660188 7599.1142 950.20913 442.59973 -165.42681 409.12735 - 75 37.5 276.25796 -1724.188 631.60341 -2355.7914 -1520.1539 1.007767 19.660336 19.660336 19.660336 7599.2864 2539.3039 1569.1695 1414.5299 1841.0011 - 76 38 268.36655 -1723.0985 613.56143 -2336.6599 -1377.8661 1.0077438 19.660487 19.660487 19.660487 7599.4612 4010.6984 2450.7556 2883.4322 3114.9621 - 77 38.5 267.07379 -1722.6216 610.60581 -2333.2274 -1287.3418 1.00772 19.660641 19.660641 19.660641 7599.6403 5035.307 2780.6312 3966.1107 3927.3496 - 78 39 273.86909 -1722.7877 626.14177 -2348.9295 -1265.4516 1.0076956 19.6608 19.6608 19.6608 7599.8249 5416.2271 2451.927 4510.6104 4126.2548 - 79 39.5 286.08161 -1723.2441 654.06303 -2377.3071 -1308.1183 1.0076703 19.660965 19.660965 19.660965 7600.0152 5141.2099 1593.738 4501.0225 3745.3234 - 80 40 298.88372 -1723.6095 683.33226 -2406.9417 -1396.1391 1.0076444 19.661133 19.661133 19.661133 7600.2107 4356.0507 497.08424 4010.0885 2954.4078 - 81 40.5 307.74794 -1723.6731 703.59837 -2427.2715 -1505.0302 1.0076179 19.661305 19.661305 19.661305 7600.4104 3285.183 -512.81885 3145.2106 1972.5249 - 82 41 310.07081 -1723.3186 708.9091 -2432.2277 -1613.7076 1.0075911 19.66148 19.66148 19.66148 7600.6128 2144.4135 -1195.4691 2017.6001 988.84817 - 83 41.5 305.97777 -1722.5854 699.55126 -2422.1367 -1710.2062 1.0075641 19.661656 19.661656 19.661656 7600.8165 1081.7243 -1466.6202 719.92101 111.67503 - 84 42 298.03815 -1721.7005 681.39904 -2403.0995 -1792.5864 1.0075371 19.661831 19.661831 19.661831 7601.0205 163.49401 -1403.4925 -678.37812 -639.45888 - 85 42.5 289.97873 -1720.8286 662.97296 -2383.8015 -1864.9065 1.0075101 19.662006 19.662006 19.662006 7601.2236 -602.96364 -1189.5588 -2106.5331 -1299.6852 - 86 43 285.42707 -1720.1321 652.56657 -2372.6987 -1931.8624 1.0074835 19.66218 19.66218 19.66218 7601.4248 -1232.8245 -1026.3028 -3470.5924 -1909.9066 - 87 43.5 286.65463 -1719.8429 655.37311 -2375.216 -1993.4772 1.0074571 19.662351 19.662351 19.662351 7601.6235 -1727.4307 -1036.8069 -4640.4971 -2468.2449 - 88 44 293.21423 -1720.0193 670.37022 -2390.3895 -2041.1683 1.0074313 19.66252 19.66252 19.66252 7601.8187 -2044.0451 -1199.1716 -5447.0768 -2896.7645 + 72 36 285.38157 -1726.507 652.46254 -2378.9695 -1908.5081 1.0078355 19.659891 19.659891 19.659891 7598.7698 -1292.7504 -1183.3051 -2450.8723 -1642.3092 + 73 36.5 289.74018 -1726.3141 662.42755 -2388.7417 -1819.0223 1.0078126 19.66004 19.66004 19.66004 7598.9426 -408.71462 -562.10049 -1538.8172 -836.54411 + 74 37 285.45884 -1725.4392 652.63921 -2378.0784 -1680.0975 1.0077898 19.660188 19.660188 19.660188 7599.1142 950.20917 442.59976 -165.42677 409.12739 + 75 37.5 276.25796 -1724.188 631.60341 -2355.7914 -1520.1539 1.007767 19.660336 19.660336 19.660336 7599.2864 2539.3039 1569.1696 1414.53 1841.0012 + 76 38 268.36655 -1723.0985 613.56143 -2336.6599 -1377.8661 1.0077438 19.660487 19.660487 19.660487 7599.4612 4010.6984 2450.7556 2883.4323 3114.9621 + 77 38.5 267.07379 -1722.6216 610.60581 -2333.2274 -1287.3418 1.00772 19.660641 19.660641 19.660641 7599.6403 5035.307 2780.6312 3966.1108 3927.3497 + 78 39 273.86909 -1722.7877 626.14177 -2348.9295 -1265.4516 1.0076956 19.6608 19.6608 19.6608 7599.8249 5416.2271 2451.927 4510.6105 4126.2549 + 79 39.5 286.08161 -1723.2441 654.06303 -2377.3071 -1308.1183 1.0076703 19.660965 19.660965 19.660965 7600.0152 5141.2099 1593.738 4501.0225 3745.3235 + 80 40 298.88372 -1723.6094 683.33226 -2406.9417 -1396.1391 1.0076444 19.661133 19.661133 19.661133 7600.2107 4356.0507 497.08428 4010.0886 2954.4079 + 81 40.5 307.74794 -1723.6731 703.59836 -2427.2715 -1505.0302 1.0076179 19.661305 19.661305 19.661305 7600.4104 3285.183 -512.8188 3145.2106 1972.5249 + 82 41 310.07081 -1723.3186 708.9091 -2432.2277 -1613.7076 1.0075911 19.66148 19.66148 19.66148 7600.6128 2144.4136 -1195.4691 2017.6001 988.84821 + 83 41.5 305.97777 -1722.5854 699.55126 -2422.1367 -1710.2062 1.0075641 19.661656 19.661656 19.661656 7600.8165 1081.7243 -1466.6201 719.92105 111.67507 + 84 42 298.03815 -1721.7005 681.39904 -2403.0995 -1792.5864 1.0075371 19.661831 19.661831 19.661831 7601.0205 163.49405 -1403.4925 -678.37808 -639.45883 + 85 42.5 289.97873 -1720.8286 662.97296 -2383.8015 -1864.9065 1.0075101 19.662006 19.662006 19.662006 7601.2236 -602.96359 -1189.5587 -2106.5331 -1299.6851 + 86 43 285.42707 -1720.1321 652.56657 -2372.6987 -1931.8624 1.0074835 19.66218 19.66218 19.66218 7601.4248 -1232.8245 -1026.3028 -3470.5923 -1909.9065 + 87 43.5 286.65463 -1719.8429 655.37311 -2375.216 -1993.4772 1.0074571 19.662351 19.662351 19.662351 7601.6235 -1727.4307 -1036.8069 -4640.497 -2468.2449 + 88 44 293.21423 -1720.0193 670.37022 -2390.3895 -2041.1683 1.0074313 19.66252 19.66252 19.66252 7601.8187 -2044.045 -1199.1716 -5447.0768 -2896.7645 89 44.5 301.68913 -1720.4077 689.74621 -2410.1539 -2058.8466 1.0074059 19.662685 19.662685 19.662685 7602.0099 -2090.5154 -1357.509 -5709.903 -3052.6425 90 45 307.31944 -1720.5984 702.61869 -2423.2171 -2030.1879 1.0073811 19.662846 19.662846 19.662846 7602.1969 -1764.4626 -1315.8041 -5296.8072 -2792.358 - 91 45.5 306.63737 -1720.284 701.05929 -2421.3433 -1948.3884 1.0073569 19.663004 19.663004 19.663004 7602.3801 -1027.7935 -956.38563 -4187.872 -2057.3504 - 92 46 299.48972 -1719.4374 684.71774 -2404.1552 -1822.8365 1.007333 19.663159 19.663159 19.663159 7602.5604 26.751851 -313.98567 -2510.4728 -932.56888 - 93 46.5 289.23303 -1718.3493 661.26808 -2379.6174 -1678.4934 1.0073093 19.663313 19.663313 19.663313 7602.7394 1167.8941 431.33019 -520.85477 359.4565 - 94 47 280.8783 -1717.4708 642.16681 -2359.6377 -1547.5998 1.0072855 19.663468 19.663468 19.663468 7602.9189 2094.2021 1037.1223 1464.7219 1532.0154 - 95 47.5 278.23295 -1717.1077 636.1188 -2353.2265 -1457.5732 1.0072614 19.663625 19.663625 19.663625 7603.1006 2548.2421 1314.5303 3159.0476 2340.6067 - 96 48 281.92564 -1717.2059 644.56133 -2361.7672 -1421.7715 1.0072369 19.663784 19.663784 19.663784 7603.2855 2413.1905 1214.185 4365.5387 2664.3047 - 97 48.5 289.58886 -1717.4536 662.08159 -2379.5352 -1437.6426 1.0072119 19.663947 19.663947 19.663947 7603.4742 1740.0276 838.91482 4991.0957 2523.346 - 98 49 297.63541 -1717.5994 680.47828 -2398.0777 -1491.6173 1.0071865 19.664113 19.664113 19.664113 7603.6664 701.28193 384.37336 5027.9366 2037.864 - 99 49.5 302.89083 -1717.5771 692.49365 -2410.0708 -1566.0823 1.0071606 19.664281 19.664281 19.664281 7603.8614 -486.15582 46.291916 4538.2141 1366.1167 - 100 50 303.33647 -1717.3173 693.51249 -2410.8298 -1645.0949 1.0071346 19.66445 19.66445 19.66445 7604.0583 -1621.9659 -60.918905 3636.648 651.25441 -Loop time of 76.6262 on 1 procs for 100 steps with 768 atoms + 91 45.5 306.63737 -1720.284 701.05929 -2421.3433 -1948.3884 1.0073569 19.663004 19.663004 19.663004 7602.3801 -1027.7935 -956.3856 -4187.8719 -2057.3503 + 92 46 299.48972 -1719.4374 684.71774 -2404.1552 -1822.8365 1.007333 19.663159 19.663159 19.663159 7602.5604 26.751879 -313.98564 -2510.4728 -932.56885 + 93 46.5 289.23303 -1718.3493 661.26808 -2379.6174 -1678.4934 1.0073093 19.663313 19.663313 19.663313 7602.7394 1167.8941 431.33022 -520.85474 359.45653 + 94 47 280.8783 -1717.4708 642.16681 -2359.6376 -1547.5998 1.0072855 19.663468 19.663468 19.663468 7602.9189 2094.2022 1037.1223 1464.722 1532.0155 + 95 47.5 278.23295 -1717.1077 636.1188 -2353.2264 -1457.5732 1.0072614 19.663625 19.663625 19.663625 7603.1006 2548.2421 1314.5303 3159.0476 2340.6067 + 96 48 281.92564 -1717.2059 644.56133 -2361.7672 -1421.7715 1.0072369 19.663784 19.663784 19.663784 7603.2855 2413.1905 1214.185 4365.5388 2664.3048 + 97 48.5 289.58886 -1717.4536 662.08159 -2379.5352 -1437.6426 1.0072119 19.663947 19.663947 19.663947 7603.4742 1740.0276 838.91486 4991.0957 2523.3461 + 98 49 297.63541 -1717.5994 680.47828 -2398.0777 -1491.6173 1.0071865 19.664113 19.664113 19.664113 7603.6664 701.28196 384.3734 5027.9366 2037.864 + 99 49.5 302.89083 -1717.5771 692.49365 -2410.0708 -1566.0823 1.0071606 19.664281 19.664281 19.664281 7603.8614 -486.15579 46.29196 4538.2141 1366.1168 + 100 50 303.33647 -1717.3173 693.51249 -2410.8298 -1645.0949 1.0071346 19.66445 19.66445 19.66445 7604.0583 -1621.9658 -60.918855 3636.6481 651.25445 +Loop time of 78.3853 on 1 procs for 100 steps with 768 atoms -Performance: 0.056 ns/day, 425.701 hours/ns, 1.305 timesteps/s, 1.002 katom-step/s -99.2% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 0.055 ns/day, 435.474 hours/ns, 1.276 timesteps/s, 979.776 atom-step/s +99.5% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 76.148 | 76.148 | 76.148 | 0.0 | 99.38 -Bond | 0.00012364 | 0.00012364 | 0.00012364 | 0.0 | 0.00 -Neigh | 0.011958 | 0.011958 | 0.011958 | 0.0 | 0.02 -Comm | 0.0059952 | 0.0059952 | 0.0059952 | 0.0 | 0.01 -Output | 0.32622 | 0.32622 | 0.32622 | 0.0 | 0.43 -Modify | 0.13265 | 0.13265 | 0.13265 | 0.0 | 0.17 -Other | | 0.001514 | | | 0.00 +Pair | 78.18 | 78.18 | 78.18 | 0.0 | 99.74 +Bond | 0.00014684 | 0.00014684 | 0.00014684 | 0.0 | 0.00 +Neigh | 0.012459 | 0.012459 | 0.012459 | 0.0 | 0.02 +Comm | 0.0060721 | 0.0060721 | 0.0060721 | 0.0 | 0.01 +Output | 0.035904 | 0.035904 | 0.035904 | 0.0 | 0.05 +Modify | 0.14956 | 0.14956 | 0.14956 | 0.0 | 0.19 +Other | | 0.001389 | | | 0.00 Nlocal: 768 ave 768 max 768 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -265,4 +265,4 @@ Dangerous builds = 0 # write_data final.data # write_restart restart.new -Total wall time: 0:01:17 +Total wall time: 0:01:19 diff --git a/examples/PACKAGES/mbx/mof_ff_lammps+1_h2o_mbx/log.22Oct525.mof.g++.1 b/examples/PACKAGES/mbx/mof_ff_lammps+1_h2o_mbx/log.23Mar26.mof.g++.1 similarity index 91% rename from examples/PACKAGES/mbx/mof_ff_lammps+1_h2o_mbx/log.22Oct525.mof.g++.1 rename to examples/PACKAGES/mbx/mof_ff_lammps+1_h2o_mbx/log.23Mar26.mof.g++.1 index df632b3483b..ce681304bc1 100644 --- a/examples/PACKAGES/mbx/mof_ff_lammps+1_h2o_mbx/log.22Oct525.mof.g++.1 +++ b/examples/PACKAGES/mbx/mof_ff_lammps+1_h2o_mbx/log.23Mar26.mof.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (10 Sep 2025 - Development - patch_10Sep2025-148-gcf68ceb8e3-modified) +LAMMPS (11 Feb 2026 - Development - patch_11Feb2026-274-gb4dcbc8748) using 1 OpenMP thread(s) per MPI task # Depositing TIP3P water into MOF with QeQ charges obtained with Ongari scheme @@ -42,7 +42,7 @@ Finding 1-2 1-3 1-4 neighbors ... 25 = max # of 1-4 neighbors 24 = max # of special neighbors special bonds CPU = 0.001 seconds - read_data CPU = 0.025 seconds + read_data CPU = 0.081 seconds group mof type 1 2 3 4 5 6 7 8 9 10 11 888 atoms in group mof @@ -299,6 +299,7 @@ Your simulation uses code contributions which should be cited: pages = {054802}, year = {2023}, doi = {10.1063/5.0156036}, + version = {1.3.12} } CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE @@ -310,117 +311,112 @@ Neighbor list info ... master list distance cutoff = 11 ghost atom cutoff = 11 binsize = 5.5, bins = 11 7 5 - 5 neighbor lists, perpetual/occasional/extra = 5 0 0 - (1) pair mbx, perpetual, skip from (5) + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair mbx, perpetual attributes: half, newton on - pair build: skip - stencil: none - bin: none - (2) pair lj/cut, perpetual, skip from (5) + pair build: half/bin/newton/tri + stencil: half/bin/3d/tri + bin: standard + (2) pair lj/cut, perpetual, skip from (1) attributes: half, newton on pair build: skip stencil: none bin: none - (3) pair coul/exclude, perpetual, skip from (5) + (3) pair coul/exclude, perpetual, skip from (1) attributes: half, newton on pair build: skip stencil: none bin: none - (4) pair buck, perpetual, skip from (5) + (4) pair buck, perpetual, skip from (1) attributes: half, newton on pair build: skip stencil: none bin: none - (5) neighbor class addition, perpetual - attributes: half, newton on - pair build: half/bin/newton/tri - stencil: half/bin/3d/tri - bin: standard WARNING: Inconsistent image flags For more information see https://docs.lammps.org/err0027 (src/domain.cpp:1052) -Per MPI rank memory allocation (min/avg/max) = 21.89 | 21.89 | 21.89 Mbytes +Per MPI rank memory allocation (min/avg/max) = 21.26 | 21.26 | 21.26 Mbytes Step Time Temp E_vdwl E_coul E_pair E_bond E_angle E_dihed E_impro E_mol E_long E_tail v_e1bpip v_e2bpip v_e3bpip v_e4bpip v_edisp v_ebuck v_eele v_etot PotEng TotEng 0 0 298.15 -8176.5335 11692.335 3515.8017 333.85691 4108.0644 1369.7935 5.4245589 5817.1394 0 -23.891377 0.45689944 0 0 0 -2.3771962e-06 0 -7923.955 -1.1954777 9332.9411 10123.909 1 0.2 298.02821 -8176.4176 11692.427 3516.0089 333.6563 4108.171 1369.9997 5.4284001 5817.2554 0 -23.891377 0.47083048 0 0 0 -2.3321913e-06 0 -7923.993 -1.1939972 9333.2643 10123.91 2 0.4 297.6882 -8176.4177 11692.557 3516.1397 334.75222 4107.5951 1370.2305 5.4515857 5818.0294 0 -23.891377 0.47916766 0 0 0 -2.280486e-06 0 -7924.0977 -1.1919493 9334.1692 10123.912 3 0.6 297.15736 -8176.526 11692.725 3516.1993 337.07175 4106.3355 1370.4862 5.4941617 5819.3876 0 -23.891377 0.48297311 0 0 0 -2.2224302e-06 0 -7924.2667 -1.1893529 9335.5869 10123.922 4 0.8 296.48947 -8176.741 11692.927 3516.1858 340.47087 4104.3899 1370.7671 5.556231 5821.1842 0 -23.891377 0.48375375 0 0 0 -2.1583995e-06 0 -7924.4962 -1.1862088 9337.37 10123.933 - 5 1 295.76174 -8177.0515 11693.158 3516.1062 344.74255 4101.7548 1371.0745 5.6379497 5823.2098 0 -23.891377 0.48332938 0 0 0 -2.0887925e-06 0 -7924.7819 -1.1825651 9339.316 10123.948 + 5 1 295.76174 -8177.0515 11693.158 3516.1062 344.74255 4101.7548 1371.0745 5.6379497 5823.2098 0 -23.891377 0.48332938 0 0 0 -2.0887926e-06 0 -7924.7819 -1.1825651 9339.316 10123.948 6 1.2 295.07036 -8177.4469 11693.414 3515.9666 349.62842 4098.4257 1371.41 5.7395228 5825.2036 0 -23.891377 0.48367237 0 0 0 -2.0140265e-06 0 -7925.1189 -1.178426 9341.1702 10123.969 7 1.4 294.52509 -8177.9244 11693.689 3515.7647 354.83332 4094.3975 1371.7756 5.8611975 5826.8676 0 -23.891377 0.48672978 0 0 0 -1.9345316e-06 0 -7925.5013 -1.1738191 9342.6323 10123.984 8 1.6 294.24292 -8178.4583 11693.979 3515.5207 360.04204 4089.6649 1372.1738 6.0032559 5827.884 0 -23.891377 0.49423877 0 0 0 -1.8507431e-06 0 -7925.9232 -1.1687669 9343.4047 10124.008 9 1.8 294.34132 -8179.0432 11694.278 3515.2346 364.93727 4084.2226 1372.6075 6.1660071 5827.9334 0 -23.891377 0.5075514 0 0 0 -1.763093e-06 0 -7926.3783 -1.1632904 9343.168 10124.032 10 2 294.93126 -8179.6664 11694.58 3514.9136 369.21798 4078.0657 1373.0799 6.3497779 5826.7134 0 -23.891377 0.52748295 0 0 0 -1.6720022e-06 0 -7926.86 -1.1574094 9341.6269 10124.056 - 11 2.2 296.11047 -8180.3124 11694.88 3514.5679 372.61712 4071.1905 1373.5944 6.5549028 5823.9569 0 -23.891377 0.55419718 0 0 0 -1.5778741e-06 0 -7927.3622 -1.1511414 9338.5248 10124.083 + 11 2.2 296.11047 -8180.3124 11694.88 3514.5679 372.61712 4071.1905 1373.5944 6.5549028 5823.9569 0 -23.891377 0.55419718 0 0 0 -1.5778742e-06 0 -7927.3622 -1.1511414 9338.5248 10124.083 12 2.4 297.95735 -8180.9724 11695.174 3514.2013 374.91776 4063.5946 1374.1548 6.7817146 5819.4488 0 -23.891377 0.58714035 0 0 0 -1.4810919e-06 0 -7927.8785 -1.1445029 9333.6502 10124.107 13 2.6 300.52562 -8181.6399 11695.456 3513.8161 375.96689 4055.2775 1374.7647 7.0305342 5813.0397 0 -23.891377 0.62503248 0 0 0 -1.3820177e-06 0 -7928.4033 -1.1375093 9326.8558 10124.127 14 2.8 303.84026 -8182.3113 11695.723 3513.4119 375.68603 4046.2412 1375.4281 7.3016609 5804.6569 0 -23.891377 0.66592079 0 0 0 -1.2809982e-06 0 -7928.9312 -1.1301761 9318.0688 10124.133 15 3 307.89473 -8182.9673 11695.972 3513.0049 374.07811 4036.4902 1376.1487 7.5953628 5794.3123 0 -23.891377 0.70729539 0 0 0 -1.1783728e-06 0 -7929.4575 -1.1225196 9307.3172 10124.138 16 3.2 312.64965 -8183.6105 11696.201 3512.5901 371.23031 4026.0326 1376.9302 7.9118685 5782.105 0 -23.891377 0.74626222 0 0 0 -1.0744873e-06 0 -7929.9781 -1.1145582 9294.6951 10124.13 - 17 3.4 318.03324 -8184.2357 11696.407 3512.1711 367.31255 4014.8805 1377.7762 8.2513588 5768.2206 0 -23.891377 0.77976312 0 0 0 -9.6970949e-07 0 -7930.4895 -1.1063132 9280.3916 10124.109 + 17 3.4 318.03324 -8184.2357 11696.407 3512.1711 367.31255 4014.8805 1377.7762 8.2513588 5768.2206 0 -23.891377 0.77976312 0 0 0 -9.697095e-07 0 -7930.4895 -1.1063132 9280.3916 10124.109 18 3.6 323.94329 -8184.8411 11696.59 3511.7487 362.57176 4003.0498 1378.6899 8.6139595 5752.9254 0 -23.891377 0.80482756 0 0 0 -8.6444861e-07 0 -7930.9891 -1.0978097 9264.6741 10124.07 - 19 3.8 330.2507 -8185.4257 11696.75 3511.324 357.32209 3990.5608 1379.6744 8.9997351 5736.557 0 -23.891377 0.81883614 0 0 0 -7.5917321e-07 0 -7931.4746 -1.0890768 9247.8811 10124.01 - 20 4 336.80437 -8185.9827 11696.887 3510.9041 351.93157 3977.4386 1380.7322 9.408683 5719.511 0 -23.891377 0.81977242 0 0 0 -6.5442882e-07 0 -7931.9446 -1.0801479 9230.4151 10123.93 - 21 4.2 343.43736 -8186.5148 11697.002 3510.4875 346.80584 3963.7124 1381.8655 9.8407288 5702.2244 0 -23.891377 0.80643785 0 0 0 -5.5085198e-07 0 -7932.3982 -1.0710601 9212.712 10123.824 - 22 4.4 349.97375 -8187.0194 11697.098 3510.0782 342.3697 3949.4162 1383.076 10.295722 5685.1576 0 -23.891377 0.77860541 0 0 0 -4.4917897e-07 0 -7932.8347 -1.0618539 9195.2358 10123.689 - 23 4.6 356.23623 -8187.4955 11697.175 3509.6793 339.04735 3934.5884 1384.3648 10.773433 5668.7739 0 -23.891377 0.7370918 0 0 0 -3.5024791e-07 0 -7933.2539 -1.052572 9178.4532 10123.52 - 24 4.8 362.05375 -8187.9418 11697.236 3509.2937 337.24233 3919.2714 1385.7324 11.273549 5653.5197 0 -23.891377 0.68373471 0 0 0 -2.5499324e-07 0 -7933.6559 -1.0432572 9162.8134 10123.313 - 25 5 367.26909 -8188.357 11697.282 3508.9252 337.31812 3903.5116 1387.1787 11.795671 5639.8042 0 -23.891377 0.62127217 0 0 0 -1.6443172e-07 0 -7934.0405 -1.0339515 9148.7293 10123.065 - 26 5.2 371.7458 -8188.7425 11697.317 3508.5741 339.58033 3887.359 1388.703 12.339315 5627.9817 0 -23.891377 0.55313241 0 0 0 -7.9640078e-08 0 -7934.408 -1.0248856 9136.5558 10122.768 - 27 5.4 375.37433 -8189.0926 11697.341 3508.2481 344.26131 3870.8666 1390.3038 12.903906 5618.3356 0 -23.891377 0.48315355 0 0 0 -1.7248112e-09 0 -7934.7583 -1.0157376 9126.5837 10122.422 - 28 5.6 378.07689 -8189.3974 11697.356 3507.9587 351.50808 3854.0903 1391.9787 13.488779 5611.0659 0 -23.891377 0.41526311 0 0 0 6.8214564e-08 0 -7935.0911 -1.006696 9119.0246 10122.033 + 19 3.8 330.2507 -8185.4257 11696.75 3511.324 357.32209 3990.5608 1379.6744 8.9997351 5736.557 0 -23.891377 0.81883614 0 0 0 -7.591732e-07 0 -7931.4746 -1.0890768 9247.8811 10124.01 + 20 4 336.80437 -8185.9827 11696.887 3510.9041 351.93157 3977.4386 1380.7322 9.408683 5719.511 0 -23.891377 0.81977242 0 0 0 -6.544288e-07 0 -7931.9446 -1.0801479 9230.4151 10123.93 + 21 4.2 343.43736 -8186.5148 11697.002 3510.4875 346.80584 3963.7124 1381.8655 9.8407288 5702.2244 0 -23.891377 0.80643785 0 0 0 -5.5085196e-07 0 -7932.3982 -1.0710601 9212.712 10123.824 + 22 4.4 349.97375 -8187.0194 11697.098 3510.0782 342.3697 3949.4162 1383.076 10.295722 5685.1576 0 -23.891377 0.77860541 0 0 0 -4.4917896e-07 0 -7932.8347 -1.0618539 9195.2358 10123.689 + 23 4.6 356.23623 -8187.4955 11697.175 3509.6793 339.04735 3934.5884 1384.3648 10.773433 5668.7739 0 -23.891377 0.7370918 0 0 0 -3.502479e-07 0 -7933.2539 -1.052572 9178.4532 10123.52 + 24 4.8 362.05375 -8187.9418 11697.236 3509.2937 337.24233 3919.2714 1385.7324 11.273549 5653.5197 0 -23.891377 0.68373471 0 0 0 -2.5499326e-07 0 -7933.6559 -1.0432572 9162.8134 10123.313 + 25 5 367.26909 -8188.357 11697.282 3508.9252 337.31812 3903.5116 1387.1787 11.795671 5639.8042 0 -23.891377 0.62127217 0 0 0 -1.6443171e-07 0 -7934.0405 -1.0339515 9148.7293 10123.065 + 26 5.2 371.7458 -8188.7425 11697.317 3508.5741 339.58033 3887.359 1388.703 12.339315 5627.9817 0 -23.891377 0.55313241 0 0 0 -7.9640066e-08 0 -7934.408 -1.0248856 9136.5558 10122.768 + 27 5.4 375.37433 -8189.0926 11697.341 3508.2481 344.26131 3870.8666 1390.3038 12.903906 5618.3356 0 -23.891377 0.48315355 0 0 0 -1.724818e-09 0 -7934.7583 -1.0157376 9126.5837 10122.422 + 28 5.6 378.07689 -8189.3974 11697.356 3507.9587 351.50808 3854.0903 1391.9787 13.488779 5611.0659 0 -23.891377 0.41526311 0 0 0 6.821455e-08 0 -7935.0911 -1.006696 9119.0246 10122.033 29 5.8 379.81091 -8189.6617 11697.364 3507.7023 361.37399 3837.0882 1393.7247 14.093179 5606.2801 0 -23.891377 0.35314945 0 0 0 1.2912711e-07 0 -7935.406 -0.99778519 9113.9824 10121.591 - 30 6 380.57094 -8189.8844 11697.365 3507.4811 373.81466 3819.92 1395.5381 14.716258 5603.989 0 -23.891377 0.29996097 0 0 0 1.8005532e-07 0 -7935.7023 -0.98902387 9111.4701 10121.095 - 31 6.2 380.38872 -8190.0576 11697.361 3507.3033 388.68834 3802.6469 1397.4141 15.35708 5604.1064 0 -23.891377 0.25806262 0 0 0 2.2018001e-07 0 -7935.9789 -0.98042531 9111.4096 10120.551 - 32 6.4 379.33167 -8190.1907 11697.35 3507.1597 405.76068 3785.3305 1399.3472 16.014619 5606.453 0 -23.891377 0.22887169 0 0 0 2.4886395e-07 0 -7936.2347 -0.97199717 9113.6127 10119.95 + 30 6 380.57094 -8189.8844 11697.365 3507.4811 373.81466 3819.92 1395.5381 14.716258 5603.989 0 -23.891377 0.29996097 0 0 0 1.800553e-07 0 -7935.7023 -0.98902387 9111.4701 10121.095 + 31 6.2 380.38872 -8190.0576 11697.361 3507.3033 388.68834 3802.6469 1397.4141 15.35708 5604.1064 0 -23.891377 0.25806262 0 0 0 2.2017998e-07 0 -7935.9789 -0.98042531 9111.4096 10120.551 + 32 6.4 379.33167 -8190.1907 11697.35 3507.1597 405.76068 3785.3305 1399.3472 16.014619 5606.453 0 -23.891377 0.2288717 0 0 0 2.4886398e-07 0 -7936.2347 -0.97199717 9113.6127 10119.95 33 6.6 377.49968 -8190.2702 11697.334 3507.0639 424.71369 3768.0328 1401.3311 16.687764 5610.7654 0 -23.891377 0.21278456 0 0 0 2.6569109e-07 0 -7936.4682 -0.96374188 9117.8292 10119.306 34 6.8 375.02044 -8190.3095 11697.311 3507.0019 445.15846 3750.8152 1403.3587 17.375322 5616.7077 0 -23.891377 0.20919516 0 0 0 2.7049963e-07 0 -7936.6777 -0.95565706 9123.7096 10118.609 - 35 7 372.04358 -8190.2974 11697.282 3506.9843 466.65095 3733.7381 1405.4222 18.07602 5623.8873 0 -23.891377 0.21659694 0 0 0 2.6340726e-07 0 -7936.8618 -0.94773617 9130.8716 10117.874 - 36 7.2 368.73386 -8190.2435 11697.245 3507.001 488.71023 3716.8606 1407.5128 18.788515 5631.8721 0 -23.891377 0.23275235 0 0 0 2.448267e-07 0 -7937.0187 -0.93996916 9138.8731 10117.095 - 37 7.4 365.2638 -8190.1467 11697.199 3507.0526 510.83811 3700.2395 1409.6211 19.511398 5640.2102 0 -23.891377 0.25491017 0 0 0 2.1547087e-07 0 -7937.1469 -0.93214362 9147.2627 10116.279 + 35 7 372.04358 -8190.2974 11697.282 3506.9843 466.65095 3733.7381 1405.4222 18.07602 5623.8873 0 -23.891377 0.21659694 0 0 0 2.6340725e-07 0 -7936.8618 -0.94773617 9130.8716 10117.874 + 36 7.2 368.73386 -8190.2435 11697.245 3507.001 488.71023 3716.8606 1407.5128 18.788515 5631.8721 0 -23.891377 0.23275235 0 0 0 2.4482671e-07 0 -7937.0187 -0.93996916 9138.8731 10117.095 + 37 7.4 365.2638 -8190.1467 11697.199 3507.0526 510.83811 3700.2395 1409.6211 19.511398 5640.2102 0 -23.891377 0.25491017 0 0 0 2.1547088e-07 0 -7937.1469 -0.93214362 9147.2627 10116.279 38 7.6 361.80605 -8190.0169 11697.145 3507.1285 532.53932 3683.9293 1411.7373 20.243204 5648.4491 0 -23.891377 0.28004859 0 0 0 1.7634652e-07 0 -7937.2452 -0.92466185 9155.5776 10115.42 - 39 7.8 358.5259 -8189.8518 11697.083 3507.2311 553.3413 3667.9815 1413.8507 20.982415 5656.1559 0 -23.891377 0.30512406 0 0 0 1.2873628e-07 0 -7937.3127 -0.91729076 9163.3871 10114.528 - 40 8 355.57436 -8189.653 11697.012 3507.3589 572.8125 3652.4446 1415.9503 21.727479 5662.9349 0 -23.891377 0.32730616 0 0 0 7.4168122e-08 0 -7937.3489 -0.91001283 9170.2939 10113.605 - 41 8.2 353.08235 -8189.4293 11696.933 3507.5039 590.57856 3637.3628 1418.0247 22.47681 5668.4429 0 -23.891377 0.34418387 0 0 0 1.4372779e-08 0 -7937.3536 -0.90281031 9175.9467 10112.646 - 42 8.4 351.15585 -8189.178 11696.848 3507.6697 606.33539 3622.7752 1420.0622 23.228805 5672.4016 0 -23.891377 0.35393173 0 0 0 -4.8771241e-08 0 -7937.3274 -0.89566562 9180.0712 10111.66 - 43 8.6 349.87208 -8188.9101 11696.757 3507.8469 619.85876 3608.7168 1422.0507 23.981854 5674.6082 0 -23.891377 0.35542775 0 0 0 -1.1330542e-07 0 -7937.2714 -0.88856162 9182.4551 10110.638 + 39 7.8 358.5259 -8189.8518 11697.083 3507.2311 553.3413 3667.9815 1413.8507 20.982415 5656.1559 0 -23.891377 0.30512406 0 0 0 1.2873629e-07 0 -7937.3127 -0.91729076 9163.3871 10114.528 + 40 8 355.57436 -8189.653 11697.012 3507.3589 572.8125 3652.4446 1415.9503 21.727479 5662.9349 0 -23.891377 0.32730616 0 0 0 7.4168143e-08 0 -7937.3489 -0.91001283 9170.2939 10113.605 + 41 8.2 353.08235 -8189.4293 11696.933 3507.5039 590.57856 3637.3628 1418.0247 22.47681 5668.4429 0 -23.891377 0.34418387 0 0 0 1.4372793e-08 0 -7937.3536 -0.90281031 9175.9467 10112.646 + 42 8.4 351.15585 -8189.178 11696.848 3507.6697 606.33539 3622.7752 1420.0622 23.228805 5672.4016 0 -23.891377 0.35393173 0 0 0 -4.8771243e-08 0 -7937.3274 -0.89566562 9180.0712 10111.66 + 43 8.6 349.87208 -8188.9101 11696.757 3507.8469 619.85876 3608.7168 1422.0507 23.981854 5674.6082 0 -23.891377 0.35542775 0 0 0 -1.1330539e-07 0 -7937.2714 -0.88856162 9182.4551 10110.638 44 8.8 349.2774 -8188.625 11696.663 3508.0384 631.00986 3595.218 1423.9784 24.73435 5674.9405 0 -23.891377 0.34831885 0 0 0 -1.7727129e-07 0 -7937.1871 -0.88148178 9182.9789 10109.584 - 45 9 349.38692 -8188.3273 11696.569 3508.2421 639.73672 3582.304 1425.8332 25.484698 5673.3586 0 -23.891377 0.333032 0 0 0 -2.3880346e-07 0 -7937.0764 -0.87441033 9181.6006 10108.497 + 45 9 349.38692 -8188.3273 11696.569 3508.2421 639.73672 3582.304 1425.8332 25.484698 5673.3586 0 -23.891377 0.333032 0 0 0 -2.3880345e-07 0 -7937.0764 -0.87441033 9181.6006 10108.497 46 9.2 350.18557 -8188.018 11696.478 3508.4599 646.07145 3569.9951 1427.6034 26.231331 5669.9013 0 -23.891377 0.31073231 0 0 0 -2.9623541e-07 0 -7936.9421 -0.8673323 9178.3612 10107.376 - 47 9.4 351.63069 -8187.6974 11696.392 3508.695 650.12352 3558.3065 1429.2774 26.972718 5664.6801 0 -23.891377 0.28323126 0 0 0 -3.4821694e-07 0 -7936.7868 -0.86023359 9173.3751 10106.224 + 47 9.4 351.63069 -8187.6974 11696.392 3508.695 650.12352 3558.3065 1429.2774 26.972718 5664.6801 0 -23.891377 0.28323126 0 0 0 -3.4821696e-07 0 -7936.7868 -0.86023359 9173.3751 10106.224 48 9.6 353.65598 -8187.3713 11696.316 3508.9451 652.06953 3547.248 1430.8439 27.707372 5657.8689 0 -23.891377 0.25285057 0 0 0 -3.9380308e-07 0 -7936.6136 -0.85310102 9166.8139 10105.035 - 49 9.8 356.17647 -8187.0438 11696.253 3509.2096 652.13997 3536.8245 1432.2924 28.433864 5649.6907 0 -23.891377 0.22224908 0 0 0 -4.3246265e-07 0 -7936.4257 -0.84592242 9158.9003 10103.808 - 50 10 359.09434 -8186.7062 11696.207 3509.5006 650.60387 3527.0357 1433.6124 29.150829 5640.4028 0 -23.891377 0.19422214 0 0 0 -4.6405676e-07 0 -7936.2263 -0.83868686 9149.9035 10102.552 - 51 10.2 362.30525 -8186.3695 11696.18 3509.8106 647.75197 3517.8765 1434.7947 29.856976 5630.2801 0 -23.891377 0.17148479 0 0 0 -4.8881366e-07 0 -7936.0182 -0.83138484 9140.0908 10101.258 - 52 10.4 365.70483 -8186.0406 11696.176 3510.1357 643.87952 3509.3374 1435.8302 30.551095 5619.5982 0 -23.891377 0.15645202 0 0 0 -5.073017e-07 0 -7935.8043 -0.82400861 9129.7339 10099.92 + 49 9.8 356.17647 -8187.0438 11696.253 3509.2096 652.13997 3536.8245 1432.2924 28.433864 5649.6907 0 -23.891377 0.22224908 0 0 0 -4.3246266e-07 0 -7936.4257 -0.84592242 9158.9003 10103.808 + 50 10 359.09434 -8186.7062 11696.207 3509.5006 650.60387 3527.0357 1433.6124 29.150829 5640.4028 0 -23.891377 0.19422214 0 0 0 -4.6405677e-07 0 -7936.2263 -0.83868686 9149.9035 10102.552 + 51 10.2 362.30525 -8186.3695 11696.18 3509.8106 647.75197 3517.8765 1434.7947 29.856976 5630.2801 0 -23.891377 0.17148479 0 0 0 -4.8881367e-07 0 -7936.0182 -0.83138484 9140.0908 10101.258 + 52 10.4 365.70483 -8186.0406 11696.176 3510.1357 643.87952 3509.3374 1435.8302 30.551095 5619.5982 0 -23.891377 0.15645202 0 0 0 -5.0730168e-07 0 -7935.8043 -0.82400861 9129.7339 10099.92 53 10.6 369.19496 -8185.7141 11696.198 3510.4835 639.26938 3501.4044 1436.7111 31.232065 5608.6169 0 -23.891377 0.15103069 0 0 0 -5.2040078e-07 0 -7935.5866 -0.81655259 9119.1004 10098.545 54 10.8 372.68952 -8185.3924 11696.246 3510.8537 634.17657 3494.0595 1437.4302 31.898858 5597.5651 0 -23.891377 0.15643881 0 0 0 -5.2927203e-07 0 -7935.367 -0.80901371 9108.4188 10097.135 - 55 11 376.11934 -8185.084 11696.323 3511.2388 628.81485 3487.2811 1437.9814 32.550548 5586.6279 0 -23.891377 0.17306783 0 0 0 -5.3532561e-07 0 -7935.1463 -0.80139187 9097.8668 10095.682 + 55 11 376.11934 -8185.084 11696.323 3511.2388 628.81485 3487.2811 1437.9814 32.550548 5586.6279 0 -23.891377 0.17306783 0 0 0 -5.3532563e-07 0 -7935.1463 -0.80139187 9097.8668 10095.682 56 11.2 379.43597 -8184.7886 11696.428 3511.6397 623.34616 3481.0446 1438.3594 33.186313 5575.9365 0 -23.891377 0.20040251 0 0 0 -5.4018566e-07 0 -7934.9251 -0.79369024 9087.5762 10094.19 - 57 11.4 382.61425 -8184.5074 11696.562 3512.0547 617.87335 3475.3223 1438.5601 33.805441 5565.5612 0 -23.891377 0.23701037 0 0 0 -5.4565154e-07 0 -7934.7028 -0.78591559 9077.6158 10092.661 - 58 11.6 385.65338 -8184.2431 11696.723 3512.4798 612.43667 3470.0844 1438.5803 34.407332 5555.5087 0 -23.891377 0.28060831 0 0 0 -5.5365389e-07 0 -7934.4784 -0.77807833 9067.9885 10091.096 - 59 11.8 388.57649 -8184.0001 11696.909 3512.9087 607.01404 3465.2993 1438.418 34.991504 5545.7228 0 -23.891377 0.32820823 0 0 0 -5.6619188e-07 0 -7934.2499 -0.77019251 9058.6316 10089.494 - 60 12 391.42875 -8183.7778 11697.117 3513.3395 601.52521 3460.9339 1438.0723 35.557589 5536.089 0 -23.891377 0.37633588 0 0 0 -5.8525039e-07 0 -7934.0148 -0.76227558 9049.4285 10087.858 - 61 12.2 394.2741 -8183.5815 11697.345 3513.7632 595.83941 3456.9547 1437.5434 36.105341 5526.4429 0 -23.891377 0.42130923 0 0 0 -6.1271289e-07 0 -7933.77 -0.75434789 9040.2061 10086.184 - 62 12.4 397.19084 -8183.4127 11697.587 3514.1746 589.78615 3453.3278 1436.8326 36.634631 5516.5812 0 -23.891377 0.45955416 0 0 0 -6.5027535e-07 0 -7933.5116 -0.7464321 9030.7558 10084.472 - 63 12.6 400.2662 -8183.2667 11697.841 3514.5739 583.16862 3450.0198 1435.9422 37.145452 5506.2761 0 -23.891377 0.48792897 0 0 0 -6.9936485e-07 0 -7933.2357 -0.7385524 9020.85 10082.725 - 64 12.8 403.59025 -8183.1463 11698.1 3514.9539 575.77875 3446.9983 1434.8757 37.637913 5495.2906 0 -23.891377 0.50402457 0 0 0 -7.6106686e-07 0 -7932.938 -0.73073358 9010.2446 10080.938 - 65 13 407.24962 -8183.0436 11698.361 3515.3175 567.41338 3444.2323 1433.6376 38.112241 5483.3955 0 -23.891377 0.50640707 0 0 0 -8.3606489e-07 0 -7932.6139 -0.72300012 8998.713 10079.114 - 66 13.2 411.32101 -8182.9515 11698.619 3515.6672 557.89046 3441.6931 1432.2333 38.568777 5470.3856 0 -23.891377 0.49477364 0 0 0 -9.2459643e-07 0 -7932.2591 -0.71537524 8986.0529 10077.255 + 57 11.4 382.61425 -8184.5074 11696.562 3512.0547 617.87335 3475.3223 1438.5601 33.805441 5565.5612 0 -23.891377 0.23701037 0 0 0 -5.4565153e-07 0 -7934.7028 -0.78591559 9077.6158 10092.661 + 58 11.6 385.65338 -8184.2431 11696.723 3512.4798 612.43667 3470.0844 1438.5803 34.407332 5555.5087 0 -23.891377 0.28060831 0 0 0 -5.536539e-07 0 -7934.4784 -0.77807833 9067.9885 10091.096 + 59 11.8 388.57649 -8184.0001 11696.909 3512.9087 607.01404 3465.2993 1438.418 34.991504 5545.7228 0 -23.891377 0.32820823 0 0 0 -5.661919e-07 0 -7934.2499 -0.77019251 9058.6316 10089.494 + 60 12 391.42875 -8183.7778 11697.117 3513.3395 601.52521 3460.9339 1438.0723 35.557589 5536.089 0 -23.891377 0.37633589 0 0 0 -5.8525039e-07 0 -7934.0148 -0.76227558 9049.4285 10087.858 + 61 12.2 394.2741 -8183.5815 11697.345 3513.7632 595.83941 3456.9547 1437.5434 36.105341 5526.4429 0 -23.891377 0.42130923 0 0 0 -6.127129e-07 0 -7933.77 -0.75434789 9040.2061 10086.184 + 62 12.4 397.19084 -8183.4127 11697.587 3514.1746 589.78615 3453.3278 1436.8326 36.634631 5516.5812 0 -23.891377 0.45955416 0 0 0 -6.5027533e-07 0 -7933.5116 -0.7464321 9030.7558 10084.472 + 63 12.6 400.2662 -8183.2667 11697.841 3514.5739 583.16862 3450.0198 1435.9422 37.145452 5506.2761 0 -23.891377 0.48792897 0 0 0 -6.9936484e-07 0 -7933.2357 -0.7385524 9020.85 10082.725 + 64 12.8 403.59025 -8183.1463 11698.1 3514.9539 575.77875 3446.9983 1434.8757 37.637913 5495.2906 0 -23.891377 0.50402457 0 0 0 -7.6106687e-07 0 -7932.938 -0.73073358 9010.2446 10080.938 + 65 13 407.24962 -8183.0436 11698.361 3515.3175 567.41338 3444.2323 1433.6376 38.112241 5483.3955 0 -23.891377 0.50640707 0 0 0 -8.360649e-07 0 -7932.6139 -0.72300012 8998.713 10079.114 + 66 13.2 411.32101 -8182.9515 11698.619 3515.6672 557.89046 3441.6931 1432.2333 38.568777 5470.3856 0 -23.891377 0.49477364 0 0 0 -9.2459642e-07 0 -7932.2591 -0.71537524 8986.0529 10077.255 67 13.4 415.86532 -8182.8736 11698.869 3515.9949 547.06451 3439.3544 1430.6693 39.007973 5456.0962 0 -23.891377 0.47000084 0 0 0 -1.0264284e-06 0 -7931.8694 -0.7078801 8972.0911 10075.349 - 68 13.6 420.92226 -8182.7914 11699.106 3516.3149 534.84038 3437.193 1428.9528 39.430388 5440.4165 0 -23.891377 0.4340771 0 0 0 -1.1408546e-06 0 -7931.4408 -0.70053305 8956.7314 10073.405 + 68 13.6 420.92226 -8182.7914 11699.106 3516.3149 534.84038 3437.193 1428.9528 39.430388 5440.4165 0 -23.891377 0.4340771 0 0 0 -1.1408547e-06 0 -7931.4408 -0.70053305 8956.7314 10073.405 69 13.8 426.50612 -8182.7043 11699.328 3516.6238 521.18471 3435.189 1427.0919 39.836684 5423.3022 0 -23.891377 0.38992475 0 0 0 -1.2667166e-06 0 -7930.9701 -0.69334909 8939.9261 10071.413 70 14 432.60262 -8182.6079 11699.531 3516.923 506.13426 3433.3263 1425.0953 40.22762 5404.7835 0 -23.891377 0.34113083 0 0 0 -1.4024467e-06 0 -7930.4542 -0.68633948 8921.7065 10069.367 71 14.2 439.16729 -8182.483 11699.712 3517.2291 489.80077 3431.5927 1422.9725 40.604049 5384.97 0 -23.891377 0.29161678 0 0 0 -1.5461337e-06 0 -7929.8911 -0.67951165 8902.1991 10067.275 72 14.4 446.12527 -8182.3371 11699.87 3517.5325 472.37194 3429.9799 1420.7335 40.966907 5364.0522 0 -23.891377 0.24528387 0 0 0 -1.6956065e-06 0 -7929.2792 -0.67286914 8881.5847 10065.12 - 73 14.6 453.37268 -8182.1589 11700.002 3517.8435 454.10845 3428.4836 1418.3885 41.317211 5342.2977 0 -23.891377 0.20567237 0 0 0 -1.8485323e-06 0 -7928.6178 -0.66641186 8860.1412 10062.903 + 73 14.6 453.37268 -8182.1589 11700.002 3517.8435 454.10845 3428.4836 1418.3885 41.317211 5342.2977 0 -23.891377 0.20567237 0 0 0 -1.8485324e-06 0 -7928.6178 -0.66641185 8860.1412 10062.903 74 14.8 460.77952 -8181.9389 11700.11 3518.1709 435.33707 3427.1033 1415.9482 41.65605 5320.0447 0 -23.891377 0.17566873 0 0 0 -2.0025246e-06 0 -7927.9068 -0.66013636 8838.2156 10060.627 75 15 468.19391 -8181.6728 11700.192 3518.5193 416.44019 3425.8423 1413.4238 41.984579 5297.6908 0 -23.891377 0.15728722 0 0 0 -2.1552548e-06 0 -7927.147 -0.65403628 8816.2101 10058.292 76 15.2 475.44747 -8181.3639 11700.25 3518.8862 397.84212 3424.7069 1410.8262 42.30401 5275.6792 0 -23.891377 0.15154166 0 0 0 -2.3045641e-06 0 -7926.3399 -0.64810274 8794.5654 10055.89 77 15.4 482.36174 -8181.0148 11700.285 3519.2704 379.99298 3423.7065 1408.1666 42.615607 5254.4817 0 -23.891377 0.15841233 0 0 0 -2.4485687e-06 0 -7925.4873 -0.64232489 8773.7521 10053.42 78 15.6 488.75522 -8180.6098 11700.299 3519.6893 363.35063 3422.8528 1405.4564 42.920676 5234.5805 0 -23.891377 0.17690273 0 0 0 -2.5857516e-06 0 -7924.5919 -0.63669029 8754.2698 10050.899 79 15.8 494.4507 -8180.1683 11700.294 3520.1256 348.36184 3422.1596 1402.7065 43.220561 5216.4485 0 -23.891377 0.20517314 0 0 0 -2.7149917e-06 0 -7923.6566 -0.63118546 8736.5741 10048.313 - 80 16 499.28269 -8179.6865 11700.272 3520.5855 335.44333 3421.6415 1399.9281 43.516633 5200.5295 0 -23.891377 0.24073267 0 0 0 -2.8354995e-06 0 -7922.6847 -0.6257962 8721.1151 10045.673 + 80 16 499.28269 -8179.6865 11700.272 3520.5855 335.44333 3421.6415 1399.9281 43.516633 5200.5295 0 -23.891377 0.24073267 0 0 0 -2.8354994e-06 0 -7922.6847 -0.6257962 8721.1151 10045.673 81 16.2 503.10443 -8179.1715 11700.236 3521.0643 324.96367 3421.3139 1397.1318 43.810288 5187.2197 0 -23.891377 0.28066895 0 0 0 -2.9467318e-06 0 -7921.6796 -0.62050801 8708.284 10042.98 82 16.4 505.79421 -8178.6249 11700.188 3521.563 317.227 3421.1918 1394.3283 44.102931 5176.8501 0 -23.891377 0.32189482 0 0 0 -3.0483142e-06 0 -7920.645 -0.61530641 8698.4131 10040.245 83 16.6 507.26073 -8178.0565 11700.131 3522.0742 312.45924 3421.2895 1391.5279 44.395977 5169.6726 0 -23.891377 0.36139256 0 0 0 -3.1399728e-06 0 -7919.5845 -0.61017723 8691.7467 10037.469 @@ -428,7 +424,7 @@ Per MPI rank memory allocation (min/avg/max) = 21.89 | 21.89 | 21.89 Mbytes 85 17 506.33419 -8176.8586 11699.997 3523.1388 312.28328 3422.1922 1385.9752 44.988925 5165.4396 0 -23.891377 0.42480197 0 0 0 -3.292623e-06 0 -7917.4003 -0.60008221 8688.5784 10031.843 86 17.2 503.94038 -8176.2352 11699.925 3523.6903 316.85963 3423.0151 1383.2417 45.291618 5168.408 0 -23.891377 0.44488793 0 0 0 -3.3531719e-06 0 -7916.2834 -0.59509145 8692.0983 10029.012 87 17.4 500.3225 -8175.5894 11699.852 3524.2628 324.3726 3424.0923 1380.5485 45.600284 5174.6136 0 -23.891377 0.45585176 0 0 0 -3.4028862e-06 0 -7915.1544 -0.59012352 8698.8764 10026.192 - 88 17.6 495.57305 -8174.9302 11699.779 3524.8491 334.57681 3425.4239 1377.9037 45.91625 5183.8207 0 -23.891377 0.45764791 0 0 0 -3.4415204e-06 0 -7914.0165 -0.5851686 8708.6698 10023.386 + 88 17.6 495.57305 -8174.9302 11699.779 3524.8491 334.57681 3425.4239 1377.9037 45.91625 5183.8207 0 -23.891377 0.45764791 0 0 0 -3.4415203e-06 0 -7914.0165 -0.5851686 8708.6698 10023.386 89 17.8 489.81683 -8174.2532 11699.708 3525.4548 347.14484 3427.0061 1375.315 46.240806 5195.7067 0 -23.891377 0.45103193 0 0 0 -3.4688476e-06 0 -7912.8726 -0.58021812 8721.1615 10020.607 90 18 483.20611 -8173.5618 11699.64 3526.0779 361.68015 3428.8301 1372.7895 46.575189 5209.875 0 -23.891377 0.43751006 0 0 0 -3.4846938e-06 0 -7911.7257 -0.57526492 8735.9529 10017.86 91 18.2 475.9147 -8172.8592 11699.576 3526.7165 377.73271 3430.8828 1370.3337 46.920575 5225.8698 0 -23.891377 0.41924021 0 0 0 -3.4889784e-06 0 -7910.579 -0.57030329 8752.5863 10015.15 @@ -440,36 +436,36 @@ Per MPI rank memory allocation (min/avg/max) = 21.89 | 21.89 | 21.89 Mbytes 97 19.4 428.57591 -8168.238 11699.375 3531.1375 478.6041 3446.6766 1357.345 49.280335 5331.9061 0 -23.891377 0.37021497 0 0 0 -3.2900969e-06 0 -7903.8917 -0.54035885 8863.0436 10000.022 98 19.6 421.74162 -8167.4074 11699.395 3531.9875 492.04515 3449.5823 1355.5035 49.729018 5346.86 0 -23.891377 0.39659715 0 0 0 -3.227711e-06 0 -7902.8475 -0.53532385 8878.8475 9997.6947 99 19.8 415.57236 -8166.5618 11699.438 3532.8765 503.65243 3452.4595 1353.7593 50.195047 5360.0662 0 -23.891377 0.43664364 0 0 0 -3.1607943e-06 0 -7901.8367 -0.53029933 8892.9427 9995.4233 - 100 20 410.14444 -8165.7119 11699.51 3533.7979 513.26482 3455.2638 1352.1124 50.678742 5371.3198 0 -23.891377 0.48982774 0 0 0 -3.0911162e-06 0 -7900.8651 -0.52529645 8905.1177 9993.1984 -Loop time of 32.2998 on 1 procs for 100 steps with 891 atoms + 100 20 410.14444 -8165.7119 11699.51 3533.7979 513.26482 3455.2638 1352.1124 50.678742 5371.3198 0 -23.891377 0.48982774 0 0 0 -3.0911163e-06 0 -7900.8651 -0.52529645 8905.1177 9993.1984 +Loop time of 32.7372 on 1 procs for 100 steps with 891 atoms -Performance: 0.053 ns/day, 448.608 hours/ns, 3.096 timesteps/s, 2.759 katom-step/s -99.6% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 0.053 ns/day, 454.683 hours/ns, 3.055 timesteps/s, 2.722 katom-step/s +98.0% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 32.195 | 32.195 | 32.195 | 0.0 | 99.68 -Bond | 0.037627 | 0.037627 | 0.037627 | 0.0 | 0.12 +Pair | 32.64 | 32.64 | 32.64 | 0.0 | 99.70 +Bond | 0.036319 | 0.036319 | 0.036319 | 0.0 | 0.11 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0025439 | 0.0025439 | 0.0025439 | 0.0 | 0.01 -Output | 0.0077194 | 0.0077194 | 0.0077194 | 0.0 | 0.02 -Modify | 0.055351 | 0.055351 | 0.055351 | 0.0 | 0.17 -Other | | 0.001116 | | | 0.00 +Comm | 0.0023362 | 0.0023362 | 0.0023362 | 0.0 | 0.01 +Output | 0.0076394 | 0.0076394 | 0.0076394 | 0.0 | 0.02 +Modify | 0.050201 | 0.050201 | 0.050201 | 0.0 | 0.15 +Other | | 0.001155 | | | 0.00 Nlocal: 891 ave 891 max 891 min Histogram: 1 0 0 0 0 0 0 0 0 0 Nghost: 4157 ave 4157 max 4157 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 0 ave 0 max 0 min +Neighs: 79371 ave 79371 max 79371 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Total # of neighbors = 0 -Ave neighs/atom = 0 +Total # of neighbors = 79371 +Ave neighs/atom = 89.080808 Ave special neighs/atom = 12.989899 Neighbor list builds = 0 Dangerous builds = 0 # write_data final.data nocoeff # write_restart restart.inter -Total wall time: 0:00:32 +Total wall time: 0:00:33 diff --git a/examples/PACKAGES/mbx/na+_slab/log.11Dec25.na+_slab.g++.1 b/examples/PACKAGES/mbx/na+_slab/log.23Mar26.na+_slab.g++.1 similarity index 56% rename from examples/PACKAGES/mbx/na+_slab/log.11Dec25.na+_slab.g++.1 rename to examples/PACKAGES/mbx/na+_slab/log.23Mar26.na+_slab.g++.1 index 8c40bf748ac..8c6b2bbae4c 100644 --- a/examples/PACKAGES/mbx/na+_slab/log.11Dec25.na+_slab.g++.1 +++ b/examples/PACKAGES/mbx/na+_slab/log.23Mar26.na+_slab.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (10 Sep 2025 - Development - patch_10Sep2025-714-g4ab4c2060a-modified) +LAMMPS (11 Feb 2026 - Development - patch_11Feb2026-274-gb4dcbc8748) using 1 OpenMP thread(s) per MPI task processors * * * map xyz @@ -32,7 +32,7 @@ Finding 1-2 1-3 1-4 neighbors ... 1 = max # of 1-4 neighbors 2 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.058 seconds + read_data CPU = 0.057 seconds pair_style mbx 9.0 @@ -96,7 +96,7 @@ Your simulation uses code contributions which should be cited: pages = {054802}, year = {2023}, doi = {10.1063/5.0156036}, - version = {1.3.3} + version = {1.3.12} } CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE @@ -116,122 +116,122 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 8.784 | 8.784 | 8.784 Mbytes Step Time Temp TotEng KinEng PotEng Enthalpy Density Lx Ly Lz Volume Pxx Pyy Pzz Press - 0 0 298 -3243.6847 1361.7354 -4605.4201 -3659.9061 0.38301942 20 20 100 40000 -636.3765 -547.97789 -956.11845 -713.49095 - 1 0.5 295.83833 -3243.6773 1351.8575 -4595.5348 -3647.0291 0.38301942 20 20 100 40000 -636.17689 -651.22249 -786.8903 -691.42989 - 2 1 293.01096 -3243.4325 1338.9375 -4582.37 -3600.7388 0.38301942 20 20 100 40000 -582.97141 -680.57764 -573.94515 -612.49807 - 3 1.5 290.34508 -3243.0911 1326.7556 -4569.8467 -3531.4507 0.38301942 20 20 100 40000 -477.64538 -648.98743 -356.29409 -494.30897 - 4 2 288.99207 -3242.8766 1320.5729 -4563.4495 -3454.124 0.38301942 20 20 100 40000 -335.60433 -579.06073 -171.70206 -362.12237 - 5 2.5 289.72559 -3242.9295 1323.9248 -4566.8543 -3382.5152 0.38301942 20 20 100 40000 -184.27029 -493.64682 -39.920699 -239.27927 - 6 3 292.47495 -3243.2438 1336.4882 -4579.732 -3324.7561 0.38301942 20 20 100 40000 -56.330924 -407.71865 44.862284 -139.7291 - 7 3.5 296.32159 -3243.7035 1354.0657 -4597.7692 -3282.3554 0.38301942 20 20 100 40000 20.109359 -324.91415 106.03253 -66.257423 - 8 4 299.89577 -3244.1127 1370.3982 -4614.5109 -3252.511 0.38301942 20 20 100 40000 30.580085 -240.42778 166.6581 -14.396531 - 9 4.5 302.03876 -3244.2583 1380.1908 -4624.4492 -3232.4757 0.38301942 20 20 100 40000 -23.019089 -150.10918 233.72185 20.197857 - 10 5 302.45453 -3244.0856 1382.0907 -4626.1763 -3223.5687 0.38301942 20 20 100 40000 -127.88754 -60.618459 294.01661 35.170204 - 11 5.5 301.84381 -3243.7944 1379.3 -4623.0944 -3231.7048 0.38301942 20 20 100 40000 -268.93839 7.4852999 323.62551 20.724139 - 12 6 301.29879 -3243.6595 1376.8095 -4620.469 -3263.4505 0.38301942 20 20 100 40000 -433.95086 27.665093 304.50769 -33.926023 - 13 6.5 301.48528 -3243.7583 1377.6616 -4621.4199 -3320.7606 0.38301942 20 20 100 40000 -613.59743 -19.43832 237.04157 -131.99806 - 14 7 302.36773 -3243.9536 1381.6941 -4625.6477 -3398.7312 0.38301942 20 20 100 40000 -798.99902 -137.17367 140.20858 -265.32137 - 15 7.5 303.54942 -3244.1237 1387.0939 -4631.2176 -3487.1202 0.38301942 20 20 100 40000 -979.02613 -311.82102 41.205976 -416.54706 - 16 8 304.62289 -3244.3046 1391.9992 -4636.3038 -3573.1908 0.38301942 20 20 100 40000 -1138.5438 -516.95494 -35.841548 -563.78011 - 17 8.5 305.14213 -3244.5552 1394.3719 -4638.9271 -3643.7625 0.38301942 20 20 100 40000 -1258.4309 -719.73718 -74.807959 -684.32534 - 18 9 304.54758 -3244.7744 1391.6551 -4636.4295 -3687.2583 0.38301942 20 20 100 40000 -1318.598 -888.49176 -68.441757 -758.51051 - 19 9.5 302.48772 -3244.7825 1382.2424 -4627.0249 -3697.0718 0.38301942 20 20 100 40000 -1304.3225 -1001.5352 -20.099169 -775.31895 - 20 10 299.32633 -3244.5339 1367.7961 -4612.3301 -3674.7448 0.38301942 20 20 100 40000 -1213.03 -1054.4387 55.053061 -737.47187 - 21 10.5 296.24957 -3244.1881 1353.7366 -4597.9248 -3629.7746 0.38301942 20 20 100 40000 -1056.5039 -1060.9414 134.51646 -660.97631 - 22 11 294.7475 -3244.0074 1346.8728 -4590.8802 -3575.4225 0.38301942 20 20 100 40000 -857.95589 -1045.0803 198.69048 -568.11524 - 23 11.5 295.77738 -3244.186 1351.5789 -4595.7649 -3522.6134 0.38301942 20 20 100 40000 -646.36792 -1027.1378 241.65581 -477.28331 - 24 12 299.14762 -3244.7269 1366.9795 -4611.7064 -3475.482 0.38301942 20 20 100 40000 -451.07144 -1010.6797 275.06254 -395.56286 - 25 12.5 303.52565 -3245.4215 1386.9853 -4632.4068 -3431.2694 0.38301942 20 20 100 40000 -297.10174 -978.86884 320.22349 -318.58237 - 26 13 307.12503 -3245.9553 1403.433 -4649.3882 -3384.7882 0.38301942 20 20 100 40000 -201.51911 -904.04737 391.59991 -237.98886 - 27 13.5 308.70197 -3246.1207 1410.6389 -4656.7596 -3334.7438 0.38301942 20 20 100 40000 -171.41648 -766.92712 482.58765 -151.91865 - 28 14 308.21467 -3245.9516 1408.4121 -4654.3637 -3287.6749 0.38301942 20 20 100 40000 -204.83394 -574.16572 564.43202 -71.522546 - 29 14.5 306.73308 -3245.6683 1401.6419 -4647.3102 -3256.5983 0.38301942 20 20 100 40000 -293.19185 -362.18204 599.16492 -18.736323 - 30 15 305.72838 -3245.5372 1397.0509 -4642.588 -3255.2868 0.38301942 20 20 100 40000 -422.9765 -183.8987 556.73664 -16.712851 - 31 15.5 306.20138 -3245.7167 1399.2122 -4644.9289 -3291.3854 0.38301942 20 20 100 40000 -576.00073 -85.603428 426.7464 -78.285919 - 32 16 308.16426 -3246.1566 1408.1818 -4654.3384 -3362.0975 0.38301942 20 20 100 40000 -730.20802 -87.117064 221.0837 -198.74713 - 33 16.5 310.76012 -3246.683 1420.0438 -4666.7268 -3454.7482 0.38301942 20 20 100 40000 -862.69757 -175.93973 -31.365376 -356.66756 - 34 17 312.78507 -3247.1668 1429.297 -4676.4638 -3551.1955 0.38301942 20 20 100 40000 -952.95214 -316.27718 -294.278 -521.16911 - 35 17.5 313.16963 -3247.5198 1431.0542 -4678.574 -3633.3561 0.38301942 20 20 100 40000 -984.95238 -465.95352 -533.30803 -661.40464 - 36 18 311.34933 -3247.6401 1422.7362 -4670.3763 -3688.177 0.38301942 20 20 100 40000 -949.60196 -591.64261 -724.27432 -755.17296 - 37 18.5 307.57876 -3247.5152 1405.5063 -4653.0215 -3711.2216 0.38301942 20 20 100 40000 -848.14404 -676.91513 -859.61201 -794.89039 - 38 19 302.93768 -3247.2865 1384.2985 -4631.585 -3707.0704 0.38301942 20 20 100 40000 -693.84624 -721.94164 -948.71133 -788.1664 - 39 19.5 298.88947 -3247.1315 1365.7999 -4612.9314 -3685.9339 0.38301942 20 20 100 40000 -509.27981 -738.27036 -1009.0488 -752.19967 - 40 20 296.69537 -3247.1629 1355.7738 -4602.9367 -3658.4496 0.38301942 20 20 100 40000 -320.23178 -742.2 -1052.6638 -705.03187 - 41 20.5 296.97993 -3247.4644 1357.0741 -4604.5385 -3631.2494 0.38301942 20 20 100 40000 -150.26892 -746.72146 -1076.6741 -657.88817 - 42 21 299.44029 -3248.0812 1368.3169 -4616.3981 -3604.3279 0.38301942 20 20 100 40000 -17.226517 -751.48842 -1063.3304 -610.68177 - 43 21.5 302.78429 -3248.8809 1383.5976 -4632.4785 -3571.3113 0.38301942 20 20 100 40000 68.80801 -737.1093 -989.83952 -552.7136 - 44 22 305.22231 -3249.5448 1394.7383 -4644.2831 -3523.7818 0.38301942 20 20 100 40000 105.65525 -673.12964 -842.82538 -470.09992 - 45 22.5 305.45976 -3249.811 1395.8234 -4645.6343 -3458.3564 0.38301942 20 20 100 40000 96.442306 -539.09527 -629.81938 -357.49078 - 46 23 303.5021 -3249.6779 1386.8777 -4636.5556 -3381.8222 0.38301942 20 20 100 40000 46.039553 -344.23281 -381.37586 -226.52304 - 47 23.5 300.66981 -3249.3708 1373.9353 -4623.3061 -3310.5554 0.38301942 20 20 100 40000 -40.773882 -130.5271 -143.34886 -104.88328 - 48 24 298.86479 -3249.2025 1365.6871 -4614.8896 -3264.3846 0.38301942 20 20 100 40000 -158.18246 44.240399 35.866054 -26.025337 - 49 24.5 299.53082 -3249.4208 1368.7306 -4618.1514 -3258.0424 0.38301942 20 20 100 40000 -296.48094 133.18402 118.95907 -14.779282 - 50 25 302.85165 -3250.0559 1383.9054 -4633.9613 -3294.4919 0.38301942 20 20 100 40000 -440.60205 120.5001 91.583965 -76.172663 - 51 25.5 307.64154 -3250.9176 1405.7932 -4656.7107 -3363.663 0.38301942 20 20 100 40000 -571.70995 24.280263 -32.378793 -193.26949 - 52 26 311.94952 -3251.7285 1425.4788 -4677.2073 -3447.0201 0.38301942 20 20 100 40000 -671.12526 -116.53521 -216.65238 -334.77095 - 53 26.5 313.9949 -3252.2409 1434.8254 -4687.0663 -3525.314 0.38301942 20 20 100 40000 -725.44335 -261.10112 -417.76956 -468.10467 - 54 27 313.00016 -3252.3518 1430.2798 -4682.6317 -3585.8725 0.38301942 20 20 100 40000 -731.85902 -381.36922 -601.94583 -571.72469 - 55 27.5 309.52031 -3252.1883 1414.3784 -4666.5666 -3626.0636 0.38301942 20 20 100 40000 -701.01472 -467.21104 -754.47722 -640.90099 - 56 28 305.04816 -3252.0182 1393.9425 -4645.9607 -3651.4173 0.38301942 20 20 100 40000 -654.34705 -522.78391 -876.83125 -684.65407 - 57 28.5 301.19236 -3252.0209 1376.3231 -4628.344 -3670.0773 0.38301942 20 20 100 40000 -615.67687 -559.11239 -975.12084 -716.6367 - 58 29 299.0738 -3252.202 1366.6422 -4618.8442 -3687.5325 0.38301942 20 20 100 40000 -602.05489 -587.21098 -1049.4783 -746.24805 - 59 29.5 299.18478 -3252.5632 1367.1493 -4619.7125 -3704.0518 0.38301942 20 20 100 40000 -619.21786 -612.02125 -1090.6 -773.94638 - 60 30 301.32456 -3253.1917 1376.9272 -4630.1189 -3714.0645 0.38301942 20 20 100 40000 -661.99455 -626.59035 -1081.514 -790.03296 - 61 30.5 304.43137 -3254.051 1391.124 -4645.175 -3706.9948 0.38301942 20 20 100 40000 -717.04425 -610.11352 -1002.1651 -776.44097 - 62 31 306.81304 -3254.851 1402.0073 -4656.8583 -3671.2497 0.38301942 20 20 100 40000 -767.09581 -536.6565 -837.63251 -713.79494 - 63 31.5 307.05148 -3255.2784 1403.0968 -4658.3753 -3601.3143 0.38301942 20 20 100 40000 -797.53839 -393.66999 -588.32651 -593.17829 - 64 32 304.95296 -3255.2664 1393.5075 -4648.7739 -3503.7235 0.38301942 20 20 100 40000 -802.93515 -198.17464 -276.61337 -425.90772 - 65 32.5 301.75901 -3255.0189 1378.9125 -4633.9314 -3397.2531 0.38301942 20 20 100 40000 -788.84663 2.9860532 54.402299 -243.81942 - 66 33 299.48345 -3254.8745 1368.5141 -4623.3886 -3306.6736 0.38301942 20 20 100 40000 -767.16695 151.29273 349.49063 -88.794527 - 67 33.5 299.79778 -3255.1262 1369.9505 -4625.0767 -3253.1514 0.38301942 20 20 100 40000 -747.7814 203.15766 554.77932 3.3851969 - 68 34 303.08003 -3255.8558 1384.949 -4640.8048 -3246.0059 0.38301942 20 20 100 40000 -731.99872 149.09565 633.55779 16.884908 - 69 34.5 308.153 -3256.8924 1408.1303 -4665.0227 -3280.0499 0.38301942 20 20 100 40000 -712.1301 14.754001 578.28562 -39.696827 - 70 35 312.85149 -3257.9026 1429.6005 -4687.5031 -3339.438 0.38301942 20 20 100 40000 -677.03654 -153.73599 411.46631 -139.76874 - 71 35.5 315.12738 -3258.5506 1440.0004 -4698.5509 -3405.9713 0.38301942 20 20 100 40000 -621.13225 -309.64504 172.64684 -252.71015 - 72 36 314.12537 -3258.7105 1435.4216 -4694.1321 -3467.4601 0.38301942 20 20 100 40000 -552.41617 -420.28091 -100.82515 -357.84074 - 73 36.5 310.56304 -3258.5808 1419.1432 -4677.724 -3521.5195 0.38301942 20 20 100 40000 -493.31043 -472.11723 -386.76884 -450.73217 - 74 37 306.1249 -3258.5117 1398.8628 -4657.3745 -3572.8352 0.38301942 20 20 100 40000 -471.19413 -468.17934 -677.07624 -538.81657 - 75 37.5 302.40481 -3258.6785 1381.8635 -4640.542 -3626.7734 0.38301942 20 20 100 40000 -503.87638 -422.55304 -966.5466 -630.99201 - 76 38 300.30617 -3259.0149 1372.2736 -4631.2885 -3684.5363 0.38301942 20 20 100 40000 -590.64061 -355.11815 -1242.5408 -729.43317 - 77 38.5 300.11062 -3259.4621 1371.38 -4630.8422 -3742.0878 0.38301942 20 20 100 40000 -713.91677 -286.29001 -1481.7588 -827.32185 - 78 39 301.61136 -3260.0948 1378.2378 -4638.3326 -3790.7062 0.38301942 20 20 100 40000 -846.29513 -230.13984 -1652.3038 -909.5796 - 79 39.5 303.97709 -3260.9443 1389.0482 -4649.9925 -3817.879 0.38301942 20 20 100 40000 -956.24583 -188.25816 -1719.6059 -954.7033 - 80 40 305.77519 -3261.8265 1397.2647 -4659.0913 -3810.0954 0.38301942 20 20 100 40000 -1013.1411 -150.12235 -1656.281 -939.84815 - 81 40.5 305.59059 -3262.4336 1396.4212 -4658.8548 -3758.4979 0.38301942 20 20 100 40000 -994.75887 -103.0475 -1453.2696 -850.35865 - 82 41 302.95714 -3262.601 1384.3875 -4646.9884 -3665.0695 0.38301942 20 20 100 40000 -895.87013 -46.206982 -1127.6703 -689.91579 - 83 41.5 298.83206 -3262.4575 1365.5376 -4627.995 -3544.8514 0.38301942 20 20 100 40000 -732.15114 3.3012181 -723.39801 -484.08264 - 84 42 295.17529 -3262.3188 1348.8276 -4611.1464 -3421.7757 0.38301942 20 20 100 40000 -535.49233 19.383459 -303.91909 -273.34266 - 85 42.5 293.92062 -3262.4932 1343.0943 -4605.5875 -3320.1178 0.38301942 20 20 100 40000 -342.4337 -15.234769 61.32647 -98.780667 - 86 43 295.94094 -3263.1591 1352.3263 -4615.4854 -3255.9847 0.38301942 20 20 100 40000 -181.49447 -96.185393 314.57504 12.298392 - 87 43.5 300.48887 -3264.2502 1373.1085 -4637.3586 -3232.4407 0.38301942 20 20 100 40000 -65.267851 -198.24202 427.09445 54.528193 - 88 44 305.47796 -3265.4101 1395.9065 -4661.3166 -3240.9851 0.38301942 20 20 100 40000 8.1028942 -287.71353 405.21898 41.869449 - 89 44.5 308.63872 -3266.2061 1410.3499 -4676.556 -3268.9122 0.38301942 20 20 100 40000 45.206117 -337.62394 278.50106 -4.6389225 - 90 45 308.84969 -3266.4883 1411.3139 -4677.8022 -3307.85 0.38301942 20 20 100 40000 46.131965 -337.82427 78.984183 -70.902707 - 91 45.5 306.61216 -3266.493 1401.0894 -4667.5824 -3357.4003 0.38301942 20 20 100 40000 0.30231204 -296.55221 -171.25257 -155.83416 - 92 46 303.37744 -3266.5672 1386.308 -4652.8752 -3421.8699 0.38301942 20 20 100 40000 -107.12612 -234.48016 -457.0586 -266.22163 - 93 46.5 300.49691 -3266.8542 1373.1452 -4639.9994 -3503.9795 0.38301942 20 20 100 40000 -283.63303 -175.62517 -760.18966 -406.48262 - 94 47 298.70215 -3267.2854 1364.9439 -4632.2293 -3600.8128 0.38301942 20 20 100 40000 -521.80723 -139.49009 -1053.9112 -571.73619 - 95 47.5 298.20603 -3267.7901 1362.6769 -4630.4669 -3703.39 0.38301942 20 20 100 40000 -798.91371 -135.84368 -1305.3722 -746.70987 - 96 48 298.88637 -3268.3997 1365.7857 -4634.1855 -3798.1538 0.38301942 20 20 100 40000 -1080.2622 -162.77719 -1481.2905 -908.10994 - 97 48.5 300.24037 -3269.1578 1371.9729 -4641.1307 -3868.89 0.38301942 20 20 100 40000 -1323.6197 -207.19566 -1553.3862 -1028.0672 - 98 49 301.32967 -3269.9895 1376.9506 -4646.9401 -3899.5651 0.38301942 20 20 100 40000 -1485.9786 -248.10399 -1503.5924 -1079.225 - 99 49.5 301.08075 -3270.6747 1375.8131 -4646.4878 -3878.8166 0.38301942 20 20 100 40000 -1534.157 -263.76306 -1329.5294 -1042.4832 - 100 50 298.97024 -3271.0136 1366.169 -4637.1826 -3805.2012 0.38301942 20 20 100 40000 -1456.1215 -241.98522 -1049.0228 -915.70985 -Loop time of 309.509 on 1 procs for 100 steps with 1534 atoms - -Performance: 0.014 ns/day, 1719.494 hours/ns, 0.323 timesteps/s, 495.624 atom-step/s -99.1% CPU use with 1 MPI tasks x 1 OpenMP threads + 0 0 298 -3243.6847 1361.7354 -4605.4201 -3659.9061 0.38301942 20 20 100 40000 -636.37649 -547.97788 -956.11844 -713.49094 + 1 0.5 295.83833 -3243.6773 1351.8575 -4595.5348 -3647.0291 0.38301942 20 20 100 40000 -636.17688 -651.22248 -786.89029 -691.42988 + 2 1 293.01096 -3243.4325 1338.9375 -4582.37 -3600.7387 0.38301942 20 20 100 40000 -582.9714 -680.57763 -573.94514 -612.49805 + 3 1.5 290.34508 -3243.0911 1326.7556 -4569.8467 -3531.4507 0.38301942 20 20 100 40000 -477.64537 -648.98742 -356.29407 -494.30895 + 4 2 288.99207 -3242.8766 1320.5729 -4563.4495 -3454.1239 0.38301942 20 20 100 40000 -335.60431 -579.06071 -171.70205 -362.12236 + 5 2.5 289.72559 -3242.9295 1323.9248 -4566.8543 -3382.5152 0.38301942 20 20 100 40000 -184.27027 -493.6468 -39.920679 -239.27925 + 6 3 292.47495 -3243.2438 1336.4882 -4579.732 -3324.756 0.38301942 20 20 100 40000 -56.330901 -407.71863 44.862307 -139.72907 + 7 3.5 296.32159 -3243.7035 1354.0657 -4597.7692 -3282.3554 0.38301942 20 20 100 40000 20.109385 -324.91413 106.03255 -66.257397 + 8 4 299.89577 -3244.1127 1370.3982 -4614.5109 -3252.511 0.38301942 20 20 100 40000 30.580113 -240.42775 166.65813 -14.396503 + 9 4.5 302.03876 -3244.2583 1380.1908 -4624.4491 -3232.4757 0.38301942 20 20 100 40000 -23.019061 -150.10916 233.72187 20.197886 + 10 5 302.45453 -3244.0856 1382.0907 -4626.1763 -3223.5687 0.38301942 20 20 100 40000 -127.88752 -60.61843 294.01664 35.170232 + 11 5.5 301.84381 -3243.7944 1379.3 -4623.0944 -3231.7047 0.38301942 20 20 100 40000 -268.93836 7.4853271 323.62553 20.724167 + 12 6 301.29879 -3243.6595 1376.8095 -4620.469 -3263.4505 0.38301942 20 20 100 40000 -433.95083 27.665118 304.50772 -33.925998 + 13 6.5 301.48528 -3243.7583 1377.6616 -4621.4199 -3320.7605 0.38301942 20 20 100 40000 -613.5974 -19.438297 237.04159 -131.99804 + 14 7 302.36773 -3243.9536 1381.6941 -4625.6477 -3398.7312 0.38301942 20 20 100 40000 -798.999 -137.17365 140.2086 -265.32135 + 15 7.5 303.54942 -3244.1237 1387.0939 -4631.2176 -3487.1201 0.38301942 20 20 100 40000 -979.02612 -311.821 41.205993 -416.54704 + 16 8 304.62289 -3244.3046 1391.9992 -4636.3038 -3573.1908 0.38301942 20 20 100 40000 -1138.5438 -516.95493 -35.841533 -563.78009 + 17 8.5 305.14213 -3244.5552 1394.3719 -4638.9271 -3643.7625 0.38301942 20 20 100 40000 -1258.4309 -719.73717 -74.807945 -684.32532 + 18 9 304.54758 -3244.7744 1391.6551 -4636.4295 -3687.2583 0.38301942 20 20 100 40000 -1318.598 -888.49175 -68.441745 -758.5105 + 19 9.5 302.48772 -3244.7825 1382.2424 -4627.0249 -3697.0718 0.38301942 20 20 100 40000 -1304.3225 -1001.5352 -20.099156 -775.31894 + 20 10 299.32633 -3244.5339 1367.7961 -4612.3301 -3674.7447 0.38301942 20 20 100 40000 -1213.03 -1054.4386 55.053074 -737.47186 + 21 10.5 296.24957 -3244.1881 1353.7366 -4597.9248 -3629.7746 0.38301942 20 20 100 40000 -1056.5039 -1060.9414 134.51647 -660.97629 + 22 11 294.7475 -3244.0074 1346.8728 -4590.8802 -3575.4225 0.38301942 20 20 100 40000 -857.95587 -1045.0803 198.69049 -568.11522 + 23 11.5 295.77738 -3244.1859 1351.5789 -4595.7649 -3522.6134 0.38301942 20 20 100 40000 -646.3679 -1027.1378 241.65583 -477.28329 + 24 12 299.14762 -3244.7269 1366.9795 -4611.7064 -3475.482 0.38301942 20 20 100 40000 -451.07141 -1010.6797 275.06256 -395.56284 + 25 12.5 303.52565 -3245.4215 1386.9853 -4632.4068 -3431.2694 0.38301942 20 20 100 40000 -297.10172 -978.86882 320.22351 -318.58234 + 26 13 307.12503 -3245.9553 1403.433 -4649.3882 -3384.7882 0.38301942 20 20 100 40000 -201.51908 -904.04735 391.59994 -237.98883 + 27 13.5 308.70197 -3246.1207 1410.6389 -4656.7596 -3334.7438 0.38301942 20 20 100 40000 -171.41646 -766.92709 482.58768 -151.91862 + 28 14 308.21467 -3245.9516 1408.4121 -4654.3637 -3287.6749 0.38301942 20 20 100 40000 -204.83391 -574.16569 564.43205 -71.522518 + 29 14.5 306.73308 -3245.6683 1401.6419 -4647.3102 -3256.5982 0.38301942 20 20 100 40000 -293.19182 -362.18201 599.16495 -18.736295 + 30 15 305.72838 -3245.5372 1397.0509 -4642.588 -3255.2868 0.38301942 20 20 100 40000 -422.97647 -183.89867 556.73667 -16.712824 + 31 15.5 306.20138 -3245.7166 1399.2122 -4644.9289 -3291.3854 0.38301942 20 20 100 40000 -576.0007 -85.603403 426.74642 -78.285894 + 32 16 308.16426 -3246.1566 1408.1818 -4654.3384 -3362.0975 0.38301942 20 20 100 40000 -730.20799 -87.117042 221.08372 -198.74711 + 33 16.5 310.76012 -3246.683 1420.0438 -4666.7268 -3454.7482 0.38301942 20 20 100 40000 -862.69755 -175.93971 -31.365358 -356.66754 + 34 17 312.78507 -3247.1668 1429.297 -4676.4638 -3551.1955 0.38301942 20 20 100 40000 -952.95212 -316.27717 -294.27798 -521.16909 + 35 17.5 313.16963 -3247.5198 1431.0542 -4678.574 -3633.3561 0.38301942 20 20 100 40000 -984.95237 -465.9535 -533.30802 -661.40463 + 36 18 311.34933 -3247.6401 1422.7362 -4670.3763 -3688.177 0.38301942 20 20 100 40000 -949.60195 -591.6426 -724.27431 -755.17295 + 37 18.5 307.57876 -3247.5152 1405.5063 -4653.0215 -3711.2216 0.38301942 20 20 100 40000 -848.14403 -676.91512 -859.612 -794.89038 + 38 19 302.93768 -3247.2865 1384.2985 -4631.585 -3707.0704 0.38301942 20 20 100 40000 -693.84623 -721.94163 -948.71131 -788.16639 + 39 19.5 298.88947 -3247.1315 1365.7999 -4612.9314 -3685.9339 0.38301942 20 20 100 40000 -509.2798 -738.27035 -1009.0488 -752.19966 + 40 20 296.69537 -3247.1629 1355.7738 -4602.9367 -3658.4496 0.38301942 20 20 100 40000 -320.23177 -742.19999 -1052.6638 -705.03186 + 41 20.5 296.97993 -3247.4644 1357.0741 -4604.5385 -3631.2494 0.38301942 20 20 100 40000 -150.26891 -746.72144 -1076.6741 -657.88815 + 42 21 299.44029 -3248.0812 1368.3169 -4616.3981 -3604.3279 0.38301942 20 20 100 40000 -17.226499 -751.4884 -1063.3303 -610.68175 + 43 21.5 302.78429 -3248.8808 1383.5976 -4632.4785 -3571.3113 0.38301942 20 20 100 40000 68.808031 -737.10929 -989.8395 -552.71358 + 44 22 305.22231 -3249.5448 1394.7383 -4644.2831 -3523.7818 0.38301942 20 20 100 40000 105.65527 -673.12961 -842.82535 -470.0999 + 45 22.5 305.45976 -3249.811 1395.8234 -4645.6343 -3458.3564 0.38301942 20 20 100 40000 96.442331 -539.09525 -629.81935 -357.49076 + 46 23 303.5021 -3249.6779 1386.8777 -4636.5556 -3381.8221 0.38301942 20 20 100 40000 46.039579 -344.23278 -381.37583 -226.52301 + 47 23.5 300.66981 -3249.3708 1373.9353 -4623.3061 -3310.5553 0.38301942 20 20 100 40000 -40.773856 -130.52708 -143.34883 -104.88325 + 48 24 298.86479 -3249.2025 1365.6871 -4614.8896 -3264.3846 0.38301942 20 20 100 40000 -158.18244 44.240425 35.866081 -26.025311 + 49 24.5 299.53082 -3249.4208 1368.7306 -4618.1514 -3258.0424 0.38301942 20 20 100 40000 -296.48091 133.18405 118.95909 -14.779258 + 50 25 302.85165 -3250.0559 1383.9054 -4633.9613 -3294.4919 0.38301942 20 20 100 40000 -440.60203 120.50012 91.583986 -76.172641 + 51 25.5 307.64154 -3250.9175 1405.7932 -4656.7107 -3363.663 0.38301942 20 20 100 40000 -571.70993 24.280283 -32.378775 -193.26947 + 52 26 311.94952 -3251.7285 1425.4788 -4677.2073 -3447.0201 0.38301942 20 20 100 40000 -671.12525 -116.53519 -216.65237 -334.77094 + 53 26.5 313.9949 -3252.2409 1434.8254 -4687.0663 -3525.314 0.38301942 20 20 100 40000 -725.44333 -261.1011 -417.76955 -468.10466 + 54 27 313.00016 -3252.3518 1430.2798 -4682.6316 -3585.8725 0.38301942 20 20 100 40000 -731.859 -381.36921 -601.94582 -571.72468 + 55 27.5 309.52031 -3252.1883 1414.3784 -4666.5666 -3626.0636 0.38301942 20 20 100 40000 -701.01471 -467.21103 -754.47721 -640.90098 + 56 28 305.04816 -3252.0182 1393.9425 -4645.9607 -3651.4173 0.38301942 20 20 100 40000 -654.34704 -522.7839 -876.83124 -684.65406 + 57 28.5 301.19236 -3252.0209 1376.3231 -4628.344 -3670.0773 0.38301942 20 20 100 40000 -615.67686 -559.11238 -975.12084 -716.63669 + 58 29 299.0738 -3252.202 1366.6422 -4618.8442 -3687.5325 0.38301942 20 20 100 40000 -602.05488 -587.21097 -1049.4783 -746.24804 + 59 29.5 299.18478 -3252.5632 1367.1493 -4619.7125 -3704.0518 0.38301942 20 20 100 40000 -619.21785 -612.02124 -1090.6 -773.94636 + 60 30 301.32456 -3253.1917 1376.9272 -4630.1189 -3714.0645 0.38301942 20 20 100 40000 -661.99454 -626.59034 -1081.514 -790.03294 + 61 30.5 304.43137 -3254.051 1391.124 -4645.175 -3706.9948 0.38301942 20 20 100 40000 -717.04423 -610.11351 -1002.1651 -776.44095 + 62 31 306.81304 -3254.851 1402.0073 -4656.8583 -3671.2497 0.38301942 20 20 100 40000 -767.09579 -536.65649 -837.63248 -713.79492 + 63 31.5 307.05148 -3255.2784 1403.0968 -4658.3753 -3601.3143 0.38301942 20 20 100 40000 -797.53836 -393.66996 -588.32648 -593.17827 + 64 32 304.95296 -3255.2664 1393.5075 -4648.7739 -3503.7235 0.38301942 20 20 100 40000 -802.93512 -198.17462 -276.61335 -425.9077 + 65 32.5 301.75901 -3255.0189 1378.9125 -4633.9314 -3397.2531 0.38301942 20 20 100 40000 -788.8466 2.9860773 54.402326 -243.8194 + 66 33 299.48345 -3254.8745 1368.5141 -4623.3886 -3306.6735 0.38301942 20 20 100 40000 -767.16692 151.29276 349.49066 -88.794502 + 67 33.5 299.79778 -3255.1262 1369.9505 -4625.0767 -3253.1514 0.38301942 20 20 100 40000 -747.78137 203.15769 554.77935 3.3852209 + 68 34 303.08003 -3255.8558 1384.949 -4640.8048 -3246.0059 0.38301942 20 20 100 40000 -731.9987 149.09567 633.55781 16.884929 + 69 34.5 308.153 -3256.8924 1408.1303 -4665.0227 -3280.0499 0.38301942 20 20 100 40000 -712.13008 14.75402 578.28564 -39.696808 + 70 35 312.85149 -3257.9026 1429.6005 -4687.5031 -3339.4379 0.38301942 20 20 100 40000 -677.03653 -153.73598 411.46633 -139.76873 + 71 35.5 315.12738 -3258.5506 1440.0004 -4698.5509 -3405.9713 0.38301942 20 20 100 40000 -621.13223 -309.64502 172.64685 -252.71013 + 72 36 314.12537 -3258.7105 1435.4216 -4694.132 -3467.4601 0.38301942 20 20 100 40000 -552.41616 -420.2809 -100.82514 -357.84073 + 73 36.5 310.56304 -3258.5808 1419.1432 -4677.724 -3521.5195 0.38301942 20 20 100 40000 -493.31042 -472.11722 -386.76884 -450.73216 + 74 37 306.1249 -3258.5117 1398.8628 -4657.3745 -3572.8352 0.38301942 20 20 100 40000 -471.19412 -468.17933 -677.07624 -538.81656 + 75 37.5 302.40481 -3258.6785 1381.8635 -4640.542 -3626.7734 0.38301942 20 20 100 40000 -503.87637 -422.55303 -966.54659 -630.992 + 76 38 300.30616 -3259.0149 1372.2736 -4631.2885 -3684.5363 0.38301942 20 20 100 40000 -590.64061 -355.11815 -1242.5407 -729.43317 + 77 38.5 300.11062 -3259.4621 1371.38 -4630.8422 -3742.0877 0.38301942 20 20 100 40000 -713.91676 -286.29 -1481.7588 -827.32185 + 78 39 301.61136 -3260.0948 1378.2378 -4638.3326 -3790.7062 0.38301942 20 20 100 40000 -846.29512 -230.13983 -1652.3038 -909.57959 + 79 39.5 303.97709 -3260.9443 1389.0482 -4649.9925 -3817.879 0.38301942 20 20 100 40000 -956.24581 -188.25815 -1719.6059 -954.70328 + 80 40 305.77519 -3261.8265 1397.2647 -4659.0912 -3810.0954 0.38301942 20 20 100 40000 -1013.1411 -150.12234 -1656.281 -939.84814 + 81 40.5 305.59059 -3262.4336 1396.4212 -4658.8548 -3758.4979 0.38301942 20 20 100 40000 -994.75885 -103.04748 -1453.2696 -850.35863 + 82 41 302.95714 -3262.601 1384.3875 -4646.9884 -3665.0695 0.38301942 20 20 100 40000 -895.87011 -46.206963 -1127.6702 -689.91577 + 83 41.5 298.83206 -3262.4575 1365.5376 -4627.995 -3544.8514 0.38301942 20 20 100 40000 -732.15111 3.3012389 -723.39799 -484.08262 + 84 42 295.17529 -3262.3188 1348.8276 -4611.1464 -3421.7756 0.38301942 20 20 100 40000 -535.49231 19.38348 -303.91907 -273.34263 + 85 42.5 293.92062 -3262.4932 1343.0943 -4605.5875 -3320.1178 0.38301942 20 20 100 40000 -342.43368 -15.234748 61.326496 -98.780643 + 86 43 295.94094 -3263.1591 1352.3263 -4615.4854 -3255.9847 0.38301942 20 20 100 40000 -181.49445 -96.185373 314.57507 12.298415 + 87 43.5 300.48887 -3264.2502 1373.1085 -4637.3586 -3232.4406 0.38301942 20 20 100 40000 -65.267831 -198.24201 427.09448 54.528213 + 88 44 305.47796 -3265.41 1395.9065 -4661.3166 -3240.9851 0.38301942 20 20 100 40000 8.1029115 -287.71351 405.219 41.869466 + 89 44.5 308.63872 -3266.2061 1410.3499 -4676.556 -3268.9122 0.38301942 20 20 100 40000 45.206131 -337.62393 278.50108 -4.6389084 + 90 45 308.84969 -3266.4883 1411.3139 -4677.8022 -3307.85 0.38301942 20 20 100 40000 46.131976 -337.82426 78.984194 -70.902696 + 91 45.5 306.61216 -3266.493 1401.0894 -4667.5824 -3357.4003 0.38301942 20 20 100 40000 0.30232086 -296.5522 -171.25257 -155.83415 + 92 46 303.37744 -3266.5672 1386.308 -4652.8752 -3421.8699 0.38301942 20 20 100 40000 -107.12612 -234.48015 -457.05859 -266.22162 + 93 46.5 300.49691 -3266.8542 1373.1452 -4639.9994 -3503.9795 0.38301942 20 20 100 40000 -283.63303 -175.62516 -760.18966 -406.48262 + 94 47 298.70215 -3267.2854 1364.9439 -4632.2293 -3600.8128 0.38301942 20 20 100 40000 -521.80723 -139.49008 -1053.9112 -571.73618 + 95 47.5 298.20603 -3267.79 1362.6769 -4630.4669 -3703.3899 0.38301942 20 20 100 40000 -798.91371 -135.84367 -1305.3722 -746.70986 + 96 48 298.88637 -3268.3997 1365.7857 -4634.1854 -3798.1538 0.38301942 20 20 100 40000 -1080.2622 -162.77718 -1481.2904 -908.10994 + 97 48.5 300.24037 -3269.1578 1371.9729 -4641.1307 -3868.89 0.38301942 20 20 100 40000 -1323.6196 -207.19564 -1553.3862 -1028.0672 + 98 49 301.32967 -3269.9895 1376.9506 -4646.9401 -3899.5651 0.38301942 20 20 100 40000 -1485.9786 -248.10397 -1503.5924 -1079.225 + 99 49.5 301.08075 -3270.6746 1375.8131 -4646.4878 -3878.8165 0.38301942 20 20 100 40000 -1534.157 -263.76305 -1329.5294 -1042.4831 + 100 50 298.97024 -3271.0136 1366.169 -4637.1826 -3805.2011 0.38301942 20 20 100 40000 -1456.1214 -241.9852 -1049.0228 -915.70982 +Loop time of 305.598 on 1 procs for 100 steps with 1534 atoms + +Performance: 0.014 ns/day, 1697.768 hours/ns, 0.327 timesteps/s, 501.966 atom-step/s +99.3% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 309.36 | 309.36 | 309.36 | 0.0 | 99.95 -Bond | 0.00010995 | 0.00010995 | 0.00010995 | 0.0 | 0.00 -Neigh | 0.018557 | 0.018557 | 0.018557 | 0.0 | 0.01 -Comm | 0.0042462 | 0.0042462 | 0.0042462 | 0.0 | 0.00 -Output | 0.0066816 | 0.0066816 | 0.0066816 | 0.0 | 0.00 -Modify | 0.1198 | 0.1198 | 0.1198 | 0.0 | 0.04 -Other | | 0.001284 | | | 0.00 +Pair | 305.45 | 305.45 | 305.45 | 0.0 | 99.95 +Bond | 0.00015109 | 0.00015109 | 0.00015109 | 0.0 | 0.00 +Neigh | 0.018338 | 0.018338 | 0.018338 | 0.0 | 0.01 +Comm | 0.0042832 | 0.0042832 | 0.0042832 | 0.0 | 0.00 +Output | 0.0075068 | 0.0075068 | 0.0075068 | 0.0 | 0.00 +Modify | 0.118 | 0.118 | 0.118 | 0.0 | 0.04 +Other | | 0.001342 | | | 0.00 Nlocal: 1534 ave 1534 max 1534 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -248,4 +248,4 @@ Dangerous builds = 0 # write_data final.data # write_restart restart.new -Total wall time: 0:05:12 +Total wall time: 0:05:08 diff --git a/examples/PACKAGES/mbx/plugin/CMakeLists.txt b/examples/PACKAGES/mbx/plugin/CMakeLists.txt index ebc4bdd1249..658cc89775d 100644 --- a/examples/PACKAGES/mbx/plugin/CMakeLists.txt +++ b/examples/PACKAGES/mbx/plugin/CMakeLists.txt @@ -42,17 +42,17 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") if(BUILD_MPI) if(USE_MSMPI) add_custom_target(package ${MAKENSIS_PATH} -V1 -DVERSION=${LAMMPS_VERSION}-MSMPI mbxplugin.nsis - DEPENDS mbxplugin mbx_copy lammps.ico lammps-text-logo-wide.bmp mbxplugin.nsis + DEPENDS mbxplugin lammps.ico lammps-text-logo-wide.bmp mbxplugin.nsis BYPRODUCTS LAMMPS-MBX-plugin-${LAMMPS_VERSION}-MSMPI.exe) else() add_custom_target(package ${MAKENSIS_PATH} -V1 -DVERSION=${LAMMPS_VERSION}-MPI mbxplugin.nsis - DEPENDS mbxplugin mbx_copy lammps.ico lammps-text-logo-wide.bmp mbxplugin.nsis + DEPENDS mbxplugin lammps.ico lammps-text-logo-wide.bmp mbxplugin.nsis BYPRODUCTS LAMMPS-MBX-plugin-${LAMMPS_VERSION}-MPI.exe) endif() else() add_custom_target(package ${MAKENSIS_PATH} -V1 -DVERSION=${LAMMPS_VERSION} mbxplugin.nsis COMMAND ${CMAKE_COMMAND} -E echo ${PWD} - DEPENDS mbxplugin mbx_copy lammps.ico lammps-text-logo-wide.bmp mbxplugin.nsis + DEPENDS mbxplugin lammps.ico lammps-text-logo-wide.bmp mbxplugin.nsis BYPRODUCTS LAMMPS-MBX-plugin-${LAMMPS_VERSION}.exe) endif() endif() diff --git a/examples/PACKAGES/reaction/tiny_nylon_wildcards/in.tiny_nylon.stabilized b/examples/PACKAGES/reaction/tiny_nylon_wildcards/in.tiny_nylon.stabilized index 082f0085eaa..6dec275a6de 100644 --- a/examples/PACKAGES/reaction/tiny_nylon_wildcards/in.tiny_nylon.stabilized +++ b/examples/PACKAGES/reaction/tiny_nylon_wildcards/in.tiny_nylon.stabilized @@ -31,10 +31,10 @@ read_data tiny_nylon.data & velocity all create 300.0 4928459 dist gaussian -molecule mol1 rxn1_stp1_unreacted.json -molecule mol2 rxn1_stp1_reacted.json -molecule mol3 rxn1_stp2_unreacted.json -molecule mol4 rxn1_stp2_reacted.json +molecule mol1 rxn1_stp1_unreacted.json auto adi +molecule mol2 rxn1_stp1_reacted.json auto adi +molecule mol3 rxn1_stp2_unreacted.json auto adi +molecule mol4 rxn1_stp2_reacted.json auto adi thermo 50 diff --git a/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.10Dec2025.tiny_nylon.stabilized.g++.1 b/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.10Dec2025.tiny_nylon.stabilized.g++.1 deleted file mode 100644 index d308bcd694c..00000000000 --- a/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.10Dec2025.tiny_nylon.stabilized.g++.1 +++ /dev/null @@ -1,449 +0,0 @@ -LAMMPS (10 Dec 2025 - Development - patch_10Dec2025-120-ga51f9ba0e7-modified) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. - using 1 OpenMP thread(s) per MPI task -# two monomer nylon example -# reaction produces a condensed water molecule - -units real - -boundary p p p - -atom_style full - -kspace_style pppm 1.0e-4 - -pair_style lj/class2/coul/long 8.5 - -angle_style class2 - -bond_style class2 - -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 extra/dihedral/per/atom 15 extra/improper/per/atom 25 extra/special/per/atom 25 -Reading data file ... - orthogonal box = (-25 -25 -25) to (25 25 25) - 1 by 1 by 1 MPI processor grid - reading atom labelmap ... - reading bond labelmap ... - reading angle labelmap ... - reading dihedral labelmap ... - reading improper labelmap ... - reading atoms ... - 44 atoms - reading velocities ... - 44 velocities - scanning bonds ... - 9 = max bonds/atom - scanning angles ... - 21 = max angles/atom - scanning dihedrals ... - 29 = max dihedrals/atom - scanning impropers ... - 29 = max impropers/atom - orthogonal box = (-25 -25 -25) to (25 25 25) - 1 by 1 by 1 MPI processor grid - reading bonds ... - 42 bonds - reading angles ... - 74 angles - reading dihedrals ... - 100 dihedrals - reading impropers ... - 16 impropers -Finding 1-2 1-3 1-4 neighbors ... - special bond factors lj: 0 0 1 - special bond factors coul: 0 0 1 - 4 = max # of 1-2 neighbors - 6 = max # of 1-3 neighbors - 35 = max # of special neighbors - special bonds CPU = 0.001 seconds - read_data CPU = 0.011 seconds - -velocity all create 300.0 4928459 dist gaussian - -molecule mol1 rxn1_stp1_unreacted.json -Read molecule template mol1: -(no title) - 1 molecules - 0 fragments - 0 bodies - 18 atoms with max type 8 - 16 bonds with max type 8 - 25 angles with max type 25 - 23 dihedrals with max type 33 - 2 impropers with max type 3 -molecule mol2 rxn1_stp1_reacted.json -Read molecule template mol2: -(no title) - 1 molecules - 0 fragments - 0 bodies - 18 atoms with max type 9 - 17 bonds with max type 11 - 31 angles with max type 24 - 39 dihedrals with max type 30 - 0 impropers with max type 0 -molecule mol3 rxn1_stp2_unreacted.json -Read molecule template mol3: -(no title) - 1 molecules - 0 fragments - 0 bodies - 15 atoms with max type 9 - 14 bonds with max type 11 - 25 angles with max type 24 - 30 dihedrals with max type 30 - 0 impropers with max type 0 -molecule mol4 rxn1_stp2_reacted.json -Read molecule template mol4: -(no title) - 1 molecules - 0 fragments - 0 bodies - 15 atoms with max type 11 - 13 bonds with max type 13 - 19 angles with max type 26 - 16 dihedrals with max type 29 - 2 impropers with max type 5 - -thermo 50 - -# dump 1 all xyz 1 test_vis.xyz -# dump_modify 1 types labels - -fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map rescale_charges yes -WARNING: Fix bond/react: Atom affected by reaction rxn1 is too close to template edge (src/REACTION/fix_bond_react.cpp:2630) -WARNING: Fix bond/react: Atom affected by reaction rxn2 is too close to template edge (src/REACTION/fix_bond_react.cpp:2630) -dynamic group bond_react_MASTER_group defined -dynamic group statted_grp_REACT defined - -fix 1 statted_grp_REACT nvt temp 300 300 100 - -# optionally, you can customize behavior of reacting atoms, -# by using the internally-created 'bond_react_MASTER_group', like so: -fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1 - -thermo_style custom step temp press density f_myrxns[*] -thermo_modify colname auto - -# restart 100 restart1 restart2 - -run 10000 - -CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE - -Your simulation uses code contributions which should be cited: - -- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419 - -@Article{Gissinger24, - author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor}, - title = {Type Label Framework for Bonded Force Fields in LAMMPS}, - journal = {J. Phys. Chem. B}, - year = 2024, - volume = 128, - number = 13, - pages = {3282--3297} -} - -- fix bond/react: https://reacter.org, https://doi.org/10.1016/j.polymer.2017.09.038, https://doi.org/10.1021/acs.macromol.0c02012, https://doi.org/10.1016/j.cpc.2024.109287 - -@Article{Gissinger17, - author = {J. R. Gissinger and B. D. Jensen and K. E. Wise}, - title = {Modeling Chemical Reactions in Classical Molecular Dynamics Simulations}, - journal = {Polymer}, - year = 2017, - volume = 128, - pages = {211--217} -} - -@Article{Gissinger20, - author = {J. R. Gissinger, B. D. Jensen, K. E. Wise}, - title = {{REACTER}: A Heuristic Method for Reactive Molecular Dynamics}, - journal = {Macromolecules}, - year = 2020, - volume = 53, - number = 22, - pages = {9953--9961} -} - -@Article{Gissinger24, - author = {J. R. Gissinger, B. D. Jensen, K. E. Wise}, - title = {Molecular Modeling of Reactive Systems with REACTER}, - journal = {Computer Physics Communications}, - year = 2024, - volume = 304, - number = 109287 -} - -CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE - -PPPM initialization ... - using 12-bit tables for long-range coulomb - G vector (1/distance) = 0.23408048 - grid = 15 15 15 - stencil order = 5 - estimated absolute RMS force accuracy = 0.018627396 - estimated relative force accuracy = 5.6095851e-05 - using double precision KISS FFT - 3d grid and FFT values/proc = 8000 3375 -Generated 55 of 55 mixed pair_coeff terms from sixthpower/sixthpower 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 = 10.5 - ghost atom cutoff = 10.5 - binsize = 5.25, bins = 10 10 10 - 2 neighbor lists, perpetual/occasional/extra = 1 1 0 - (1) pair lj/class2/coul/long, perpetual - attributes: half, newton on - pair build: half/bin/newton - stencil: half/bin/3d - bin: standard - (2) fix bond/react, occasional, copy from (1) - attributes: half, newton on - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 34 | 34 | 34 Mbytes - Step Temp Press Density f_myrxns:rxn1 f_myrxns:rxn2 - 0 300 357.25587 0.0034851739 0 0 - 50 323.13357 -36.901145 0.0034851739 1 0 - 100 303.51 11.102115 0.0034851739 1 1 - 150 332.31667 -25.20854 0.0034851739 1 1 - 200 278.87792 25.724788 0.0034851739 1 1 - 250 306.00815 -9.2221074 0.0034851739 1 1 - 300 254.72154 -5.7953243 0.0034851739 1 1 - 350 267.62849 23.758906 0.0034851739 1 1 - 400 320.81812 3.3741667 0.0034851739 1 1 - 450 376.12912 -10.240072 0.0034851739 1 1 - 500 409.47719 17.579329 0.0034851739 1 1 - 550 251.53858 -1.8557267 0.0034851739 1 1 - 600 237.09927 19.34288 0.0034851739 1 1 - 650 325.85267 12.350177 0.0034851739 1 1 - 700 281.35713 2.4348132 0.0034851739 1 1 - 750 348.96295 10.699428 0.0034851739 1 1 - 800 285.14402 -34.310532 0.0034851739 1 1 - 850 272.05347 -29.232748 0.0034851739 1 1 - 900 233.75445 25.081058 0.0034851739 1 1 - 950 270.83374 36.530225 0.0034851739 1 1 - 1000 226.39852 -25.096611 0.0034851739 1 1 - 1050 252.97685 -38.37156 0.0034851739 1 1 - 1100 298.67428 53.002074 0.0034851739 1 1 - 1150 291.35413 -0.58731897 0.0034851739 1 1 - 1200 338.55035 -12.606111 0.0034851739 1 1 - 1250 273.47404 2.607543 0.0034851739 1 1 - 1300 238.32578 103.89008 0.0034851739 1 1 - 1350 289.72019 35.589762 0.0034851739 1 1 - 1400 308.55022 -14.264782 0.0034851739 1 1 - 1450 335.61808 -4.3227051 0.0034851739 1 1 - 1500 322.5053 17.455704 0.0034851739 1 1 - 1550 394.29493 9.2107081 0.0034851739 1 1 - 1600 381.1899 17.682818 0.0034851739 1 1 - 1650 335.99677 -48.364172 0.0034851739 1 1 - 1700 303.84175 -45.864487 0.0034851739 1 1 - 1750 320.31942 -11.504271 0.0034851739 1 1 - 1800 294.21365 -26.343709 0.0034851739 1 1 - 1850 279.81064 6.0658344 0.0034851739 1 1 - 1900 303.71918 -49.271788 0.0034851739 1 1 - 1950 291.23621 5.1869409 0.0034851739 1 1 - 2000 233.32832 2.109592 0.0034851739 1 1 - 2050 341.6919 48.003744 0.0034851739 1 1 - 2100 349.44789 -42.906017 0.0034851739 1 1 - 2150 329.88667 -4.1766291 0.0034851739 1 1 - 2200 337.70336 56.336888 0.0034851739 1 1 - 2250 318.31319 -12.164076 0.0034851739 1 1 - 2300 298.29507 -6.4401592 0.0034851739 1 1 - 2350 304.95999 16.417381 0.0034851739 1 1 - 2400 290.62449 3.8105734 0.0034851739 1 1 - 2450 346.62602 51.604346 0.0034851739 1 1 - 2500 259.10879 14.228307 0.0034851739 1 1 - 2550 335.33894 -16.037611 0.0034851739 1 1 - 2600 299.89407 -9.8662594 0.0034851739 1 1 - 2650 348.15539 -8.1996299 0.0034851739 1 1 - 2700 343.85656 -72.012595 0.0034851739 1 1 - 2750 378.24423 -7.2314213 0.0034851739 1 1 - 2800 329.78551 72.122685 0.0034851739 1 1 - 2850 336.43123 -26.141529 0.0034851739 1 1 - 2900 290.77205 21.589584 0.0034851739 1 1 - 2950 286.07747 31.455029 0.0034851739 1 1 - 3000 274.54408 18.865778 0.0034851739 1 1 - 3050 237.71503 21.195126 0.0034851739 1 1 - 3100 300.19233 46.381452 0.0034851739 1 1 - 3150 310.662 -48.41422 0.0034851739 1 1 - 3200 356.68406 3.4820791 0.0034851739 1 1 - 3250 345.18655 -14.929512 0.0034851739 1 1 - 3300 303.81384 -106.62742 0.0034851739 1 1 - 3350 363.1079 53.537967 0.0034851739 1 1 - 3400 344.77548 -0.32949356 0.0034851739 1 1 - 3450 285.60132 16.994506 0.0034851739 1 1 - 3500 292.34164 27.878366 0.0034851739 1 1 - 3550 313.51585 -65.418373 0.0034851739 1 1 - 3600 299.37996 7.1201351 0.0034851739 1 1 - 3650 293.80815 25.383956 0.0034851739 1 1 - 3700 318.55512 -31.086255 0.0034851739 1 1 - 3750 338.01158 4.3233345 0.0034851739 1 1 - 3800 335.62457 -21.672062 0.0034851739 1 1 - 3850 373.55792 -18.344518 0.0034851739 1 1 - 3900 299.00966 -52.411817 0.0034851739 1 1 - 3950 348.18017 16.762978 0.0034851739 1 1 - 4000 302.36814 20.412765 0.0034851739 1 1 - 4050 304.31703 -18.932636 0.0034851739 1 1 - 4100 322.3382 -12.205649 0.0034851739 1 1 - 4150 262.29776 -46.258119 0.0034851739 1 1 - 4200 265.29241 -15.879948 0.0034851739 1 1 - 4250 337.64589 -29.097853 0.0034851739 1 1 - 4300 394.67042 5.3180839 0.0034851739 1 1 - 4350 288.70522 -2.7038433 0.0034851739 1 1 - 4400 349.62275 55.384045 0.0034851739 1 1 - 4450 350.05246 -20.531148 0.0034851739 1 1 - 4500 263.12901 39.99287 0.0034851739 1 1 - 4550 245.82317 -11.107772 0.0034851739 1 1 - 4600 215.28781 -13.078366 0.0034851739 1 1 - 4650 213.62697 18.061273 0.0034851739 1 1 - 4700 283.00551 9.1457527 0.0034851739 1 1 - 4750 322.2234 -5.6773995 0.0034851739 1 1 - 4800 321.01027 24.636298 0.0034851739 1 1 - 4850 308.37924 8.0190603 0.0034851739 1 1 - 4900 313.29993 -21.926107 0.0034851739 1 1 - 4950 318.79709 -38.641178 0.0034851739 1 1 - 5000 332.5323 -10.994049 0.0034851739 1 1 - 5050 263.77853 -19.155804 0.0034851739 1 1 - 5100 249.43481 14.049613 0.0034851739 1 1 - 5150 272.43126 2.1161776 0.0034851739 1 1 - 5200 287.20643 14.651374 0.0034851739 1 1 - 5250 227.2215 14.436162 0.0034851739 1 1 - 5300 220.70331 -12.059096 0.0034851739 1 1 - 5350 294.48483 -13.056616 0.0034851739 1 1 - 5400 301.111 -13.25331 0.0034851739 1 1 - 5450 286.4577 7.6904099 0.0034851739 1 1 - 5500 307.72688 -32.456764 0.0034851739 1 1 - 5550 284.13917 -27.497649 0.0034851739 1 1 - 5600 270.02975 -16.954712 0.0034851739 1 1 - 5650 313.97465 -1.1028839 0.0034851739 1 1 - 5700 286.18167 14.125288 0.0034851739 1 1 - 5750 269.14352 27.19375 0.0034851739 1 1 - 5800 235.50295 12.547718 0.0034851739 1 1 - 5850 218.68087 48.894385 0.0034851739 1 1 - 5900 299.41286 6.9150462 0.0034851739 1 1 - 5950 283.91534 -41.435248 0.0034851739 1 1 - 6000 351.51818 -11.971798 0.0034851739 1 1 - 6050 370.17973 8.1936067 0.0034851739 1 1 - 6100 287.87457 23.844459 0.0034851739 1 1 - 6150 282.12003 14.196677 0.0034851739 1 1 - 6200 239.67426 31.389011 0.0034851739 1 1 - 6250 265.84426 -22.797645 0.0034851739 1 1 - 6300 320.48833 13.611918 0.0034851739 1 1 - 6350 354.54726 -8.6164904 0.0034851739 1 1 - 6400 351.91168 -45.632257 0.0034851739 1 1 - 6450 404.6967 8.7160731 0.0034851739 1 1 - 6500 273.77467 19.710654 0.0034851739 1 1 - 6550 283.46688 2.8728029 0.0034851739 1 1 - 6600 241.76828 -49.04184 0.0034851739 1 1 - 6650 289.50471 12.670232 0.0034851739 1 1 - 6700 261.57213 -13.663425 0.0034851739 1 1 - 6750 292.31184 18.675826 0.0034851739 1 1 - 6800 290.61615 17.153393 0.0034851739 1 1 - 6850 345.29773 -6.8794198 0.0034851739 1 1 - 6900 382.8504 0.086203475 0.0034851739 1 1 - 6950 330.68716 22.3792 0.0034851739 1 1 - 7000 351.2043 33.53224 0.0034851739 1 1 - 7050 260.75316 -3.0830773 0.0034851739 1 1 - 7100 238.61023 -25.377481 0.0034851739 1 1 - 7150 278.02381 29.708903 0.0034851739 1 1 - 7200 281.78581 -11.613886 0.0034851739 1 1 - 7250 299.19023 -40.148778 0.0034851739 1 1 - 7300 347.16566 1.6164218 0.0034851739 1 1 - 7350 334.98219 30.334651 0.0034851739 1 1 - 7400 280.26928 -31.933329 0.0034851739 1 1 - 7450 277.48917 -5.1849913 0.0034851739 1 1 - 7500 247.47699 7.6810611 0.0034851739 1 1 - 7550 223.03144 -29.416983 0.0034851739 1 1 - 7600 272.28929 8.5690923 0.0034851739 1 1 - 7650 278.73246 106.03104 0.0034851739 1 1 - 7700 262.96706 -31.491702 0.0034851739 1 1 - 7750 330.23917 21.757497 0.0034851739 1 1 - 7800 343.96783 36.898555 0.0034851739 1 1 - 7850 341.22049 -43.387928 0.0034851739 1 1 - 7900 277.06257 -71.348468 0.0034851739 1 1 - 7950 330.90733 17.613434 0.0034851739 1 1 - 8000 310.39669 -8.2136094 0.0034851739 1 1 - 8050 310.47524 -30.623829 0.0034851739 1 1 - 8100 290.2114 -24.485156 0.0034851739 1 1 - 8150 255.01637 60.297045 0.0034851739 1 1 - 8200 266.73273 2.3178283 0.0034851739 1 1 - 8250 325.75807 -36.58488 0.0034851739 1 1 - 8300 289.72733 30.040033 0.0034851739 1 1 - 8350 326.57575 -20.981666 0.0034851739 1 1 - 8400 379.29835 44.435283 0.0034851739 1 1 - 8450 333.38125 -0.05363945 0.0034851739 1 1 - 8500 305.08411 -26.538845 0.0034851739 1 1 - 8550 349.58907 66.193068 0.0034851739 1 1 - 8600 270.32146 5.1332354 0.0034851739 1 1 - 8650 248.67123 26.592957 0.0034851739 1 1 - 8700 288.11042 34.114624 0.0034851739 1 1 - 8750 252.34031 -32.966873 0.0034851739 1 1 - 8800 304.24822 6.8056503 0.0034851739 1 1 - 8850 306.08573 27.793193 0.0034851739 1 1 - 8900 341.1829 18.131124 0.0034851739 1 1 - 8950 360.96467 -49.295482 0.0034851739 1 1 - 9000 334.98737 10.524633 0.0034851739 1 1 - 9050 283.8927 -36.034176 0.0034851739 1 1 - 9100 342.99378 25.401513 0.0034851739 1 1 - 9150 275.94637 -8.2056556 0.0034851739 1 1 - 9200 329.51306 35.725721 0.0034851739 1 1 - 9250 260.20864 -1.0676031 0.0034851739 1 1 - 9300 266.63017 -35.836913 0.0034851739 1 1 - 9350 206.63311 1.9506084 0.0034851739 1 1 - 9400 275.17708 34.35797 0.0034851739 1 1 - 9450 231.6401 4.1075349 0.0034851739 1 1 - 9500 256.90247 2.0767575 0.0034851739 1 1 - 9550 234.64698 -16.583201 0.0034851739 1 1 - 9600 299.47817 24.526294 0.0034851739 1 1 - 9650 313.68135 -56.626926 0.0034851739 1 1 - 9700 315.35263 37.357037 0.0034851739 1 1 - 9750 329.98511 -37.326607 0.0034851739 1 1 - 9800 307.94446 -4.1409988 0.0034851739 1 1 - 9850 283.99269 20.593547 0.0034851739 1 1 - 9900 323.4633 42.61777 0.0034851739 1 1 - 9950 299.79118 -42.790286 0.0034851739 1 1 - 10000 290.40265 9.5959582 0.0034851739 1 1 -Loop time of 3.80414 on 1 procs for 10000 steps with 44 atoms - -Performance: 227.121 ns/day, 0.106 hours/ns, 2628.713 timesteps/s, 115.663 katom-step/s -99.4% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.11975 | 0.11975 | 0.11975 | 0.0 | 3.15 -Bond | 0.44934 | 0.44934 | 0.44934 | 0.0 | 11.81 -Kspace | 3.1574 | 3.1574 | 3.1574 | 0.0 | 83.00 -Neigh | 0.005484 | 0.005484 | 0.005484 | 0.0 | 0.14 -Comm | 0.0015713 | 0.0015713 | 0.0015713 | 0.0 | 0.04 -Output | 0.0014781 | 0.0014781 | 0.0014781 | 0.0 | 0.04 -Modify | 0.066315 | 0.066315 | 0.066315 | 0.0 | 1.74 -Other | | 0.002799 | | | 0.07 - -Nlocal: 44 ave 44 max 44 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 6 ave 6 max 6 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 876 ave 876 max 876 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 876 -Ave neighs/atom = 19.909091 -Ave special neighs/atom = 6.4090909 -Neighbor list builds = 242 -Dangerous builds = 0 - -# write_restart restart_longrun -# write_data restart_longrun.data -Total wall time: 0:00:03 diff --git a/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.10Dec2025.tiny_nylon.stabilized.g++.4 b/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.10Dec2025.tiny_nylon.stabilized.g++.4 deleted file mode 100644 index 22afa27dd7a..00000000000 --- a/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.10Dec2025.tiny_nylon.stabilized.g++.4 +++ /dev/null @@ -1,449 +0,0 @@ -LAMMPS (10 Dec 2025 - Development - patch_10Dec2025-120-ga51f9ba0e7-modified) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. - using 1 OpenMP thread(s) per MPI task -# two monomer nylon example -# reaction produces a condensed water molecule - -units real - -boundary p p p - -atom_style full - -kspace_style pppm 1.0e-4 - -pair_style lj/class2/coul/long 8.5 - -angle_style class2 - -bond_style class2 - -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 extra/dihedral/per/atom 15 extra/improper/per/atom 25 extra/special/per/atom 25 -Reading data file ... - orthogonal box = (-25 -25 -25) to (25 25 25) - 1 by 2 by 2 MPI processor grid - reading atom labelmap ... - reading bond labelmap ... - reading angle labelmap ... - reading dihedral labelmap ... - reading improper labelmap ... - reading atoms ... - 44 atoms - reading velocities ... - 44 velocities - scanning bonds ... - 9 = max bonds/atom - scanning angles ... - 21 = max angles/atom - scanning dihedrals ... - 29 = max dihedrals/atom - scanning impropers ... - 29 = max impropers/atom - orthogonal box = (-25 -25 -25) to (25 25 25) - 1 by 2 by 2 MPI processor grid - reading bonds ... - 42 bonds - reading angles ... - 74 angles - reading dihedrals ... - 100 dihedrals - reading impropers ... - 16 impropers -Finding 1-2 1-3 1-4 neighbors ... - special bond factors lj: 0 0 1 - special bond factors coul: 0 0 1 - 4 = max # of 1-2 neighbors - 6 = max # of 1-3 neighbors - 35 = max # of special neighbors - special bonds CPU = 0.000 seconds - read_data CPU = 0.007 seconds - -velocity all create 300.0 4928459 dist gaussian - -molecule mol1 rxn1_stp1_unreacted.json -Read molecule template mol1: -(no title) - 1 molecules - 0 fragments - 0 bodies - 18 atoms with max type 8 - 16 bonds with max type 8 - 25 angles with max type 25 - 23 dihedrals with max type 33 - 2 impropers with max type 3 -molecule mol2 rxn1_stp1_reacted.json -Read molecule template mol2: -(no title) - 1 molecules - 0 fragments - 0 bodies - 18 atoms with max type 9 - 17 bonds with max type 11 - 31 angles with max type 24 - 39 dihedrals with max type 30 - 0 impropers with max type 0 -molecule mol3 rxn1_stp2_unreacted.json -Read molecule template mol3: -(no title) - 1 molecules - 0 fragments - 0 bodies - 15 atoms with max type 9 - 14 bonds with max type 11 - 25 angles with max type 24 - 30 dihedrals with max type 30 - 0 impropers with max type 0 -molecule mol4 rxn1_stp2_reacted.json -Read molecule template mol4: -(no title) - 1 molecules - 0 fragments - 0 bodies - 15 atoms with max type 11 - 13 bonds with max type 13 - 19 angles with max type 26 - 16 dihedrals with max type 29 - 2 impropers with max type 5 - -thermo 50 - -# dump 1 all xyz 1 test_vis.xyz -# dump_modify 1 types labels - -fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map rescale_charges yes -WARNING: Fix bond/react: Atom affected by reaction rxn1 is too close to template edge (src/REACTION/fix_bond_react.cpp:2630) -WARNING: Fix bond/react: Atom affected by reaction rxn2 is too close to template edge (src/REACTION/fix_bond_react.cpp:2630) -dynamic group bond_react_MASTER_group defined -dynamic group statted_grp_REACT defined - -fix 1 statted_grp_REACT nvt temp 300 300 100 - -# optionally, you can customize behavior of reacting atoms, -# by using the internally-created 'bond_react_MASTER_group', like so: -fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1 - -thermo_style custom step temp press density f_myrxns[*] -thermo_modify colname auto - -# restart 100 restart1 restart2 - -run 10000 - -CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE - -Your simulation uses code contributions which should be cited: - -- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419 - -@Article{Gissinger24, - author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor}, - title = {Type Label Framework for Bonded Force Fields in LAMMPS}, - journal = {J. Phys. Chem. B}, - year = 2024, - volume = 128, - number = 13, - pages = {3282--3297} -} - -- fix bond/react: https://reacter.org, https://doi.org/10.1016/j.polymer.2017.09.038, https://doi.org/10.1021/acs.macromol.0c02012, https://doi.org/10.1016/j.cpc.2024.109287 - -@Article{Gissinger17, - author = {J. R. Gissinger and B. D. Jensen and K. E. Wise}, - title = {Modeling Chemical Reactions in Classical Molecular Dynamics Simulations}, - journal = {Polymer}, - year = 2017, - volume = 128, - pages = {211--217} -} - -@Article{Gissinger20, - author = {J. R. Gissinger, B. D. Jensen, K. E. Wise}, - title = {{REACTER}: A Heuristic Method for Reactive Molecular Dynamics}, - journal = {Macromolecules}, - year = 2020, - volume = 53, - number = 22, - pages = {9953--9961} -} - -@Article{Gissinger24, - author = {J. R. Gissinger, B. D. Jensen, K. E. Wise}, - title = {Molecular Modeling of Reactive Systems with REACTER}, - journal = {Computer Physics Communications}, - year = 2024, - volume = 304, - number = 109287 -} - -CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE - -PPPM initialization ... - using 12-bit tables for long-range coulomb - G vector (1/distance) = 0.23408048 - grid = 15 15 15 - stencil order = 5 - estimated absolute RMS force accuracy = 0.018627396 - estimated relative force accuracy = 5.6095851e-05 - using double precision KISS FFT - 3d grid and FFT values/proc = 3380 960 -Generated 55 of 55 mixed pair_coeff terms from sixthpower/sixthpower 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 = 10.5 - ghost atom cutoff = 10.5 - binsize = 5.25, bins = 10 10 10 - 2 neighbor lists, perpetual/occasional/extra = 1 1 0 - (1) pair lj/class2/coul/long, perpetual - attributes: half, newton on - pair build: half/bin/newton - stencil: half/bin/3d - bin: standard - (2) fix bond/react, occasional, copy from (1) - attributes: half, newton on - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 33.49 | 33.72 | 34.28 Mbytes - Step Temp Press Density f_myrxns:rxn1 f_myrxns:rxn2 - 0 300 357.25587 0.0034851739 0 0 - 50 323.13357 -36.901145 0.0034851739 1 0 - 100 303.51 11.102115 0.0034851739 1 1 - 150 332.31667 -25.20854 0.0034851739 1 1 - 200 278.87792 25.724788 0.0034851739 1 1 - 250 306.00815 -9.2221074 0.0034851739 1 1 - 300 254.72154 -5.7953243 0.0034851739 1 1 - 350 267.62849 23.758906 0.0034851739 1 1 - 400 320.81812 3.3741667 0.0034851739 1 1 - 450 376.12912 -10.240072 0.0034851739 1 1 - 500 409.47719 17.579329 0.0034851739 1 1 - 550 251.53858 -1.8557263 0.0034851739 1 1 - 600 237.09927 19.34288 0.0034851739 1 1 - 650 325.85267 12.350178 0.0034851739 1 1 - 700 281.35713 2.4348122 0.0034851739 1 1 - 750 348.96295 10.69943 0.0034851739 1 1 - 800 285.14402 -34.310534 0.0034851739 1 1 - 850 272.05347 -29.232749 0.0034851739 1 1 - 900 233.75445 25.081061 0.0034851739 1 1 - 950 270.83373 36.530225 0.0034851739 1 1 - 1000 226.39852 -25.096609 0.0034851739 1 1 - 1050 252.97684 -38.371559 0.0034851739 1 1 - 1100 298.6743 53.00207 0.0034851739 1 1 - 1150 291.35416 -0.58732762 0.0034851739 1 1 - 1200 338.55036 -12.606167 0.0034851739 1 1 - 1250 273.47409 2.6075067 0.0034851739 1 1 - 1300 238.32577 103.89005 0.0034851739 1 1 - 1350 289.72027 35.589704 0.0034851739 1 1 - 1400 308.55006 -14.264754 0.0034851739 1 1 - 1450 335.61777 -4.3227467 0.0034851739 1 1 - 1500 322.50612 17.455534 0.0034851739 1 1 - 1550 394.29818 9.2095587 0.0034851739 1 1 - 1600 381.18229 17.684515 0.0034851739 1 1 - 1650 335.99735 -48.364365 0.0034851739 1 1 - 1700 303.84569 -45.868295 0.0034851739 1 1 - 1750 320.31574 -11.511158 0.0034851739 1 1 - 1800 294.29633 -26.351136 0.0034851739 1 1 - 1850 279.75055 6.0763871 0.0034851739 1 1 - 1900 303.74279 -49.281254 0.0034851739 1 1 - 1950 290.97419 5.2283921 0.0034851739 1 1 - 2000 233.30717 2.14398 0.0034851739 1 1 - 2050 342.01536 48.425845 0.0034851739 1 1 - 2100 348.72835 -42.383834 0.0034851739 1 1 - 2150 336.02332 -6.2496255 0.0034851739 1 1 - 2200 334.42763 50.81371 0.0034851739 1 1 - 2250 317.27217 -8.1794166 0.0034851739 1 1 - 2300 316.88329 -6.5684312 0.0034851739 1 1 - 2350 314.09517 17.266892 0.0034851739 1 1 - 2400 302.40844 0.53558662 0.0034851739 1 1 - 2450 336.96229 35.681141 0.0034851739 1 1 - 2500 259.43054 8.8787634 0.0034851739 1 1 - 2550 348.89956 -9.2313871 0.0034851739 1 1 - 2600 327.77487 -5.8117921 0.0034851739 1 1 - 2650 341.94271 4.3187206 0.0034851739 1 1 - 2700 319.36614 -53.559459 0.0034851739 1 1 - 2750 300.45201 15.794909 0.0034851739 1 1 - 2800 310.18412 61.968091 0.0034851739 1 1 - 2850 356.66083 5.8473695 0.0034851739 1 1 - 2900 298.87875 17.062576 0.0034851739 1 1 - 2950 234.83827 0.011478315 0.0034851739 1 1 - 3000 255.72021 -24.955859 0.0034851739 1 1 - 3050 261.05671 6.732158 0.0034851739 1 1 - 3100 301.20955 24.53772 0.0034851739 1 1 - 3150 347.86946 -6.4628487 0.0034851739 1 1 - 3200 360.92312 -10.270019 0.0034851739 1 1 - 3250 314.90454 -67.580652 0.0034851739 1 1 - 3300 364.99912 32.617637 0.0034851739 1 1 - 3350 343.26776 -7.6851103 0.0034851739 1 1 - 3400 321.33638 -58.879645 0.0034851739 1 1 - 3450 279.51567 -9.7718499 0.0034851739 1 1 - 3500 227.74826 -31.715622 0.0034851739 1 1 - 3550 263.33395 40.827777 0.0034851739 1 1 - 3600 269.59956 -38.697214 0.0034851739 1 1 - 3650 291.96922 -29.580877 0.0034851739 1 1 - 3700 303.13102 -0.018201864 0.0034851739 1 1 - 3750 352.31481 -63.482684 0.0034851739 1 1 - 3800 295.03656 0.89582187 0.0034851739 1 1 - 3850 302.79362 8.7511608 0.0034851739 1 1 - 3900 272.75681 0.49698704 0.0034851739 1 1 - 3950 276.27495 7.6663447 0.0034851739 1 1 - 4000 233.8973 23.040335 0.0034851739 1 1 - 4050 281.12439 -42.01751 0.0034851739 1 1 - 4100 265.13059 16.155662 0.0034851739 1 1 - 4150 298.00657 29.721948 0.0034851739 1 1 - 4200 329.08689 -24.747356 0.0034851739 1 1 - 4250 321.90673 -5.221281 0.0034851739 1 1 - 4300 337.98416 8.5210055 0.0034851739 1 1 - 4350 300.85278 -27.200192 0.0034851739 1 1 - 4400 230.3635 -20.700954 0.0034851739 1 1 - 4450 275.54429 13.023287 0.0034851739 1 1 - 4500 306.13381 -21.191264 0.0034851739 1 1 - 4550 306.1504 -2.657042 0.0034851739 1 1 - 4600 341.25401 35.059044 0.0034851739 1 1 - 4650 359.22107 -27.61101 0.0034851739 1 1 - 4700 313.55036 -5.2086023 0.0034851739 1 1 - 4750 288.2812 49.909094 0.0034851739 1 1 - 4800 298.17232 5.7234038 0.0034851739 1 1 - 4850 256.1951 -79.42617 0.0034851739 1 1 - 4900 234.48084 69.62547 0.0034851739 1 1 - 4950 269.90503 -6.4165828 0.0034851739 1 1 - 5000 350.99397 40.598777 0.0034851739 1 1 - 5050 319.33612 -1.1883368 0.0034851739 1 1 - 5100 354.42383 0.73360221 0.0034851739 1 1 - 5150 326.20748 28.873951 0.0034851739 1 1 - 5200 338.81105 8.9061462 0.0034851739 1 1 - 5250 334.86171 3.4358714 0.0034851739 1 1 - 5300 298.76104 41.006518 0.0034851739 1 1 - 5350 251.28354 32.804747 0.0034851739 1 1 - 5400 297.96019 16.420226 0.0034851739 1 1 - 5450 257.69136 27.643858 0.0034851739 1 1 - 5500 281.53877 -19.802987 0.0034851739 1 1 - 5550 316.86241 29.360565 0.0034851739 1 1 - 5600 333.00265 8.3184564 0.0034851739 1 1 - 5650 331.66339 -9.2204992 0.0034851739 1 1 - 5700 344.72494 8.3825773 0.0034851739 1 1 - 5750 336.95916 -62.14119 0.0034851739 1 1 - 5800 349.2364 -6.2073021 0.0034851739 1 1 - 5850 286.19116 -24.769794 0.0034851739 1 1 - 5900 293.18267 -16.577457 0.0034851739 1 1 - 5950 303.66858 27.73992 0.0034851739 1 1 - 6000 306.18599 -45.264957 0.0034851739 1 1 - 6050 350.36539 -34.300224 0.0034851739 1 1 - 6100 293.08904 43.428974 0.0034851739 1 1 - 6150 338.78789 -1.6127526 0.0034851739 1 1 - 6200 266.81285 -6.9547907 0.0034851739 1 1 - 6250 302.09334 -2.7802802 0.0034851739 1 1 - 6300 295.03054 -12.331247 0.0034851739 1 1 - 6350 253.47153 14.246817 0.0034851739 1 1 - 6400 231.28789 0.32901119 0.0034851739 1 1 - 6450 271.27272 -54.235953 0.0034851739 1 1 - 6500 315.04645 -42.196648 0.0034851739 1 1 - 6550 330.60481 30.307025 0.0034851739 1 1 - 6600 320.98992 -28.743816 0.0034851739 1 1 - 6650 311.66421 -16.648914 0.0034851739 1 1 - 6700 300.60892 -22.572672 0.0034851739 1 1 - 6750 324.32174 -19.310172 0.0034851739 1 1 - 6800 297.68989 -16.093886 0.0034851739 1 1 - 6850 225.0828 29.29338 0.0034851739 1 1 - 6900 267.90034 -12.372584 0.0034851739 1 1 - 6950 245.79261 -42.881342 0.0034851739 1 1 - 7000 267.62549 58.922777 0.0034851739 1 1 - 7050 323.577 -18.38004 0.0034851739 1 1 - 7100 309.68104 -95.377822 0.0034851739 1 1 - 7150 332.28546 48.537101 0.0034851739 1 1 - 7200 349.83139 15.219649 0.0034851739 1 1 - 7250 325.55181 -41.249495 0.0034851739 1 1 - 7300 335.59076 17.706127 0.0034851739 1 1 - 7350 250.05804 32.22358 0.0034851739 1 1 - 7400 243.53926 24.755601 0.0034851739 1 1 - 7450 257.25541 -8.4391308 0.0034851739 1 1 - 7500 286.82596 -23.013062 0.0034851739 1 1 - 7550 264.88657 26.041569 0.0034851739 1 1 - 7600 285.33992 56.915984 0.0034851739 1 1 - 7650 317.10869 -53.762929 0.0034851739 1 1 - 7700 274.03399 -19.368253 0.0034851739 1 1 - 7750 278.77732 9.0740867 0.0034851739 1 1 - 7800 251.09437 23.963052 0.0034851739 1 1 - 7850 312.96586 0.68606531 0.0034851739 1 1 - 7900 272.57586 -16.82951 0.0034851739 1 1 - 7950 284.09348 2.0393754 0.0034851739 1 1 - 8000 297.93713 2.9073607 0.0034851739 1 1 - 8050 232.14368 -5.8999336 0.0034851739 1 1 - 8100 239.17712 -48.143457 0.0034851739 1 1 - 8150 281.52221 18.509439 0.0034851739 1 1 - 8200 293.08621 17.448713 0.0034851739 1 1 - 8250 294.74715 -34.751866 0.0034851739 1 1 - 8300 375.10348 -12.616628 0.0034851739 1 1 - 8350 296.77171 -28.951003 0.0034851739 1 1 - 8400 328.74999 -15.981702 0.0034851739 1 1 - 8450 347.02027 5.1750774 0.0034851739 1 1 - 8500 236.88904 59.341387 0.0034851739 1 1 - 8550 296.86734 -7.9510325 0.0034851739 1 1 - 8600 286.27144 54.121588 0.0034851739 1 1 - 8650 261.56411 27.022605 0.0034851739 1 1 - 8700 225.62856 -73.329643 0.0034851739 1 1 - 8750 268.25581 -30.45963 0.0034851739 1 1 - 8800 210.13484 49.847057 0.0034851739 1 1 - 8850 293.60544 47.320396 0.0034851739 1 1 - 8900 324.86781 -53.367836 0.0034851739 1 1 - 8950 386.26415 10.666845 0.0034851739 1 1 - 9000 320.21521 -40.989701 0.0034851739 1 1 - 9050 327.04554 -4.727706 0.0034851739 1 1 - 9100 279.63775 75.132034 0.0034851739 1 1 - 9150 299.20962 30.916634 0.0034851739 1 1 - 9200 249.44089 -4.8675917 0.0034851739 1 1 - 9250 325.92179 -8.7644595 0.0034851739 1 1 - 9300 228.532 -18.595612 0.0034851739 1 1 - 9350 296.48345 23.397966 0.0034851739 1 1 - 9400 246.75044 -39.651194 0.0034851739 1 1 - 9450 261.86878 5.8508137 0.0034851739 1 1 - 9500 341.58406 19.801719 0.0034851739 1 1 - 9550 350.96696 -16.243021 0.0034851739 1 1 - 9600 366.30949 3.3855035 0.0034851739 1 1 - 9650 321.26751 30.515937 0.0034851739 1 1 - 9700 351.86405 -21.004306 0.0034851739 1 1 - 9750 286.96073 -46.078369 0.0034851739 1 1 - 9800 247.41785 9.7089291 0.0034851739 1 1 - 9850 248.92427 -19.059663 0.0034851739 1 1 - 9900 240.6546 19.699102 0.0034851739 1 1 - 9950 251.56896 -59.269143 0.0034851739 1 1 - 10000 315.94702 -34.596575 0.0034851739 1 1 -Loop time of 1.93577 on 4 procs for 10000 steps with 44 atoms - -Performance: 446.333 ns/day, 0.054 hours/ns, 5165.891 timesteps/s, 227.299 katom-step/s -99.6% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00076683 | 0.036537 | 0.11533 | 24.6 | 1.89 -Bond | 0.0015764 | 0.11501 | 0.40108 | 49.1 | 5.94 -Kspace | 1.199 | 1.5232 | 1.655 | 15.3 | 78.69 -Neigh | 0.0050085 | 0.0050238 | 0.0050385 | 0.0 | 0.26 -Comm | 0.012915 | 0.021003 | 0.039155 | 7.4 | 1.08 -Output | 0.0011574 | 0.0014466 | 0.002267 | 1.2 | 0.07 -Modify | 0.18935 | 0.22754 | 0.25398 | 5.7 | 11.75 -Other | | 0.005981 | | | 0.31 - -Nlocal: 11 ave 44 max 0 min -Histogram: 3 0 0 0 0 0 0 0 0 1 -Nghost: 18 ave 44 max 0 min -Histogram: 1 0 0 2 0 0 0 0 0 1 -Neighs: 226.75 ave 907 max 0 min -Histogram: 3 0 0 0 0 0 0 0 0 1 - -Total # of neighbors = 907 -Ave neighs/atom = 20.613636 -Ave special neighs/atom = 6.4090909 -Neighbor list builds = 249 -Dangerous builds = 0 - -# write_restart restart_longrun -# write_data restart_longrun.data -Total wall time: 0:00:01 diff --git a/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.11Feb2026.tiny_nylon_stabilized.g++.1 b/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.11Feb2026.tiny_nylon_stabilized.g++.1 new file mode 100644 index 00000000000..210ed392562 --- /dev/null +++ b/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.11Feb2026.tiny_nylon_stabilized.g++.1 @@ -0,0 +1,447 @@ +LAMMPS (11 Feb 2026 - Development - patch_11Feb2026-158-g7257cc5f7e-modified) +# two monomer nylon example +# reaction produces a condensed water molecule + +units real + +boundary p p p + +atom_style full + +kspace_style pppm 1.0e-4 + +pair_style lj/class2/coul/long 8.5 + +angle_style class2 + +bond_style class2 + +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 extra/dihedral/per/atom 15 extra/improper/per/atom 25 extra/special/per/atom 25 +Reading data file ... + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + reading atom labelmap ... + reading bond labelmap ... + reading angle labelmap ... + reading dihedral labelmap ... + reading improper labelmap ... + reading atoms ... + 44 atoms + reading velocities ... + 44 velocities + scanning bonds ... + 9 = max bonds/atom + scanning angles ... + 21 = max angles/atom + scanning dihedrals ... + 29 = max dihedrals/atom + scanning impropers ... + 29 = max impropers/atom + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 42 bonds + reading angles ... + 74 angles + reading dihedrals ... + 100 dihedrals + reading impropers ... + 16 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 1 + special bond factors coul: 0 0 1 + 4 = max # of 1-2 neighbors + 6 = max # of 1-3 neighbors + 35 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds + +velocity all create 300.0 4928459 dist gaussian + +molecule mol1 rxn1_stp1_unreacted.json auto adi +Read molecule template mol1: +(no title) + 1 molecules + 0 fragments + 0 bodies + 18 atoms with max type 8 + 16 bonds with max type 8 + 25 angles with max type 25 + 23 dihedrals with max type 33 + 2 impropers with max type 3 +molecule mol2 rxn1_stp1_reacted.json auto adi +Read molecule template mol2: +(no title) + 1 molecules + 0 fragments + 0 bodies + 18 atoms with max type 9 + 17 bonds with max type 11 + 31 angles with max type 24 + 39 dihedrals with max type 30 + 0 impropers with max type 0 +molecule mol3 rxn1_stp2_unreacted.json auto adi +Read molecule template mol3: +(no title) + 1 molecules + 0 fragments + 0 bodies + 15 atoms with max type 9 + 14 bonds with max type 11 + 25 angles with max type 24 + 30 dihedrals with max type 30 + 0 impropers with max type 0 +molecule mol4 rxn1_stp2_reacted.json auto adi +Read molecule template mol4: +(no title) + 1 molecules + 0 fragments + 0 bodies + 15 atoms with max type 11 + 13 bonds with max type 13 + 19 angles with max type 26 + 16 dihedrals with max type 29 + 2 impropers with max type 5 + +thermo 50 + +# dump 1 all xyz 1 test_vis.xyz +# dump_modify 1 types labels + +fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map rescale_charges yes +WARNING: Fix bond/react: Atom affected by reaction rxn1 is too close to template edge (src/REACTION/fix_bond_react.cpp:2653) +WARNING: Fix bond/react: Atom affected by reaction rxn2 is too close to template edge (src/REACTION/fix_bond_react.cpp:2653) +dynamic group bond_react_MASTER_group defined +dynamic group statted_grp_REACT defined + +fix 1 statted_grp_REACT nvt temp 300 300 100 + +# optionally, you can customize behavior of reacting atoms, +# by using the internally-created 'bond_react_MASTER_group', like so: +fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1 + +thermo_style custom step temp press density f_myrxns[*] +thermo_modify colname auto + +# restart 100 restart1 restart2 + +run 10000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419 + +@Article{Gissinger24, + author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor}, + title = {Type Label Framework for Bonded Force Fields in LAMMPS}, + journal = {J. Phys. Chem. B}, + year = 2024, + volume = 128, + number = 13, + pages = {3282--3297} +} + +- fix bond/react: https://reacter.org, https://doi.org/10.1016/j.polymer.2017.09.038, https://doi.org/10.1021/acs.macromol.0c02012, https://doi.org/10.1016/j.cpc.2024.109287 + +@Article{Gissinger17, + author = {J. R. Gissinger and B. D. Jensen and K. E. Wise}, + title = {Modeling Chemical Reactions in Classical Molecular Dynamics Simulations}, + journal = {Polymer}, + year = 2017, + volume = 128, + pages = {211--217} +} + +@Article{Gissinger20, + author = {J. R. Gissinger, B. D. Jensen, K. E. Wise}, + title = {{REACTER}: A Heuristic Method for Reactive Molecular Dynamics}, + journal = {Macromolecules}, + year = 2020, + volume = 53, + number = 22, + pages = {9953--9961} +} + +@Article{Gissinger24, + author = {J. R. Gissinger, B. D. Jensen, K. E. Wise}, + title = {Molecular Modeling of Reactive Systems with REACTER}, + journal = {Computer Physics Communications}, + year = 2024, + volume = 304, + number = 109287 +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +PPPM initialization ... + using 12-bit tables for long-range coulomb + G vector (1/distance) = 0.23408048 + grid = 15 15 15 + stencil order = 5 + estimated absolute RMS force accuracy = 0.018627396 + estimated relative force accuracy = 5.6095851e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 8000 3375 +Generated 55 of 55 mixed pair_coeff terms from sixthpower/sixthpower 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 = 10.5 + ghost atom cutoff = 10.5 + binsize = 5.25, bins = 10 10 10 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) pair lj/class2/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) fix bond/react, occasional, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 34 | 34 | 34 Mbytes + Step Temp Press Density f_myrxns:rxn1 f_myrxns:rxn2 + 0 300 357.25587 0.0034851739 0 0 + 50 323.13357 -36.901145 0.0034851739 1 0 + 100 303.51 11.102115 0.0034851739 1 1 + 150 332.31667 -25.20854 0.0034851739 1 1 + 200 278.87792 25.724788 0.0034851739 1 1 + 250 306.00815 -9.2221074 0.0034851739 1 1 + 300 254.72154 -5.7953243 0.0034851739 1 1 + 350 267.62849 23.758906 0.0034851739 1 1 + 400 320.81812 3.3741667 0.0034851739 1 1 + 450 376.12912 -10.240072 0.0034851739 1 1 + 500 409.47719 17.579329 0.0034851739 1 1 + 550 251.53859 -1.8557261 0.0034851739 1 1 + 600 237.09927 19.34288 0.0034851739 1 1 + 650 325.85267 12.350178 0.0034851739 1 1 + 700 281.35713 2.4348126 0.0034851739 1 1 + 750 348.96295 10.69943 0.0034851739 1 1 + 800 285.14402 -34.310534 0.0034851739 1 1 + 850 272.05347 -29.232748 0.0034851739 1 1 + 900 233.75445 25.08106 0.0034851739 1 1 + 950 270.83374 36.530225 0.0034851739 1 1 + 1000 226.39852 -25.096607 0.0034851739 1 1 + 1050 252.97684 -38.371559 0.0034851739 1 1 + 1100 298.6743 53.002071 0.0034851739 1 1 + 1150 291.35416 -0.58732802 0.0034851739 1 1 + 1200 338.55036 -12.60617 0.0034851739 1 1 + 1250 273.4741 2.6075076 0.0034851739 1 1 + 1300 238.32577 103.89004 0.0034851739 1 1 + 1350 289.72029 35.589696 0.0034851739 1 1 + 1400 308.55006 -14.264753 0.0034851739 1 1 + 1450 335.61769 -4.3227304 0.0034851739 1 1 + 1500 322.5063 17.455482 0.0034851739 1 1 + 1550 394.29867 9.2093439 0.0034851739 1 1 + 1600 381.18108 17.684885 0.0034851739 1 1 + 1650 335.99723 -48.364373 0.0034851739 1 1 + 1700 303.84599 -45.868787 0.0034851739 1 1 + 1750 320.31565 -11.511884 0.0034851739 1 1 + 1800 294.3059 -26.351998 0.0034851739 1 1 + 1850 279.74346 6.0778869 0.0034851739 1 1 + 1900 303.74593 -49.282679 0.0034851739 1 1 + 1950 290.94202 5.2310289 0.0034851739 1 1 + 2000 233.31211 2.1469835 0.0034851739 1 1 + 2050 342.02878 48.491708 0.0034851739 1 1 + 2100 350.17229 -42.456602 0.0034851739 1 1 + 2150 334.46429 -6.6984408 0.0034851739 1 1 + 2200 332.25579 50.253706 0.0034851739 1 1 + 2250 315.76833 -7.07307 0.0034851739 1 1 + 2300 308.91294 -4.9012434 0.0034851739 1 1 + 2350 311.58456 19.503499 0.0034851739 1 1 + 2400 313.85122 5.7640356 0.0034851739 1 1 + 2450 327.21301 37.657137 0.0034851739 1 1 + 2500 290.94909 15.739937 0.0034851739 1 1 + 2550 355.85699 -14.565557 0.0034851739 1 1 + 2600 308.37478 5.3662058 0.0034851739 1 1 + 2650 355.02677 5.6646195 0.0034851739 1 1 + 2700 305.29585 -72.628985 0.0034851739 1 1 + 2750 339.1896 9.9381719 0.0034851739 1 1 + 2800 289.96857 81.376482 0.0034851739 1 1 + 2850 371.49928 -11.17772 0.0034851739 1 1 + 2900 323.79513 -5.9027888 0.0034851739 1 1 + 2950 282.41126 28.534129 0.0034851739 1 1 + 3000 272.16782 -11.082726 0.0034851739 1 1 + 3050 254.79152 -6.6137708 0.0034851739 1 1 + 3100 283.42761 -13.484241 0.0034851739 1 1 + 3150 354.8518 -3.9990667 0.0034851739 1 1 + 3200 332.49654 -27.44782 0.0034851739 1 1 + 3250 321.57296 -16.58413 0.0034851739 1 1 + 3300 303.80741 -4.0052311 0.0034851739 1 1 + 3350 327.09654 7.6679173 0.0034851739 1 1 + 3400 294.35887 -2.083573 0.0034851739 1 1 + 3450 344.69064 47.038736 0.0034851739 1 1 + 3500 296.31364 -33.425487 0.0034851739 1 1 + 3550 273.55338 -19.801234 0.0034851739 1 1 + 3600 282.08517 3.9694564 0.0034851739 1 1 + 3650 311.79439 -31.150719 0.0034851739 1 1 + 3700 371.63196 38.679894 0.0034851739 1 1 + 3750 302.49204 12.17107 0.0034851739 1 1 + 3800 401.86606 23.239237 0.0034851739 1 1 + 3850 418.35074 12.478572 0.0034851739 1 1 + 3900 319.21653 -13.934416 0.0034851739 1 1 + 3950 338.97441 -4.0091462 0.0034851739 1 1 + 4000 308.95219 -29.87033 0.0034851739 1 1 + 4050 310.73989 -17.668013 0.0034851739 1 1 + 4100 245.14598 -37.179498 0.0034851739 1 1 + 4150 306.0045 12.975571 0.0034851739 1 1 + 4200 329.4494 7.9502408 0.0034851739 1 1 + 4250 318.65886 46.500882 0.0034851739 1 1 + 4300 290.86591 -33.296886 0.0034851739 1 1 + 4350 337.38027 7.340717 0.0034851739 1 1 + 4400 295.88452 -14.752068 0.0034851739 1 1 + 4450 328.27597 -19.829348 0.0034851739 1 1 + 4500 335.56062 -31.664934 0.0034851739 1 1 + 4550 311.49318 -21.263194 0.0034851739 1 1 + 4600 305.5698 -21.036698 0.0034851739 1 1 + 4650 284.44357 8.7805009 0.0034851739 1 1 + 4700 249.8975 -34.878936 0.0034851739 1 1 + 4750 306.02117 14.484856 0.0034851739 1 1 + 4800 302.92303 -8.2292473 0.0034851739 1 1 + 4850 317.27758 26.449595 0.0034851739 1 1 + 4900 345.35658 -56.733014 0.0034851739 1 1 + 4950 357.70684 -27.045496 0.0034851739 1 1 + 5000 286.49899 20.602508 0.0034851739 1 1 + 5050 232.09177 -1.2436825 0.0034851739 1 1 + 5100 237.98002 0.093875712 0.0034851739 1 1 + 5150 267.48939 -30.493825 0.0034851739 1 1 + 5200 270.52468 15.018132 0.0034851739 1 1 + 5250 314.97567 8.4461263 0.0034851739 1 1 + 5300 374.75073 43.033056 0.0034851739 1 1 + 5350 321.20583 -37.205273 0.0034851739 1 1 + 5400 274.69813 -0.35078588 0.0034851739 1 1 + 5450 305.0191 6.9960466 0.0034851739 1 1 + 5500 325.71584 5.4399122 0.0034851739 1 1 + 5550 278.29347 -45.943963 0.0034851739 1 1 + 5600 276.05366 -12.54 0.0034851739 1 1 + 5650 280.69615 -30.354661 0.0034851739 1 1 + 5700 281.30531 34.201307 0.0034851739 1 1 + 5750 310.90781 -47.605583 0.0034851739 1 1 + 5800 313.6072 -21.803162 0.0034851739 1 1 + 5850 315.62339 -17.875505 0.0034851739 1 1 + 5900 362.76378 -8.309555 0.0034851739 1 1 + 5950 343.69069 3.9606338 0.0034851739 1 1 + 6000 313.16827 1.1473109 0.0034851739 1 1 + 6050 276.92034 43.178579 0.0034851739 1 1 + 6100 293.37805 11.701418 0.0034851739 1 1 + 6150 271.94973 39.678224 0.0034851739 1 1 + 6200 230.42409 3.8775772 0.0034851739 1 1 + 6250 271.89225 51.123133 0.0034851739 1 1 + 6300 268.63024 -39.636155 0.0034851739 1 1 + 6350 340.08365 -50.515067 0.0034851739 1 1 + 6400 260.67548 41.177348 0.0034851739 1 1 + 6450 353.42905 7.2147702 0.0034851739 1 1 + 6500 291.35792 -5.3972614 0.0034851739 1 1 + 6550 319.45925 -0.78755919 0.0034851739 1 1 + 6600 296.04927 -42.363248 0.0034851739 1 1 + 6650 264.49746 -5.170119 0.0034851739 1 1 + 6700 252.65366 -21.575047 0.0034851739 1 1 + 6750 277.49756 11.590782 0.0034851739 1 1 + 6800 322.57225 9.7325926 0.0034851739 1 1 + 6850 342.48788 61.034798 0.0034851739 1 1 + 6900 369.52035 53.853825 0.0034851739 1 1 + 6950 403.43535 -41.716313 0.0034851739 1 1 + 7000 349.70142 10.717437 0.0034851739 1 1 + 7050 374.72487 -51.02726 0.0034851739 1 1 + 7100 337.113 28.620163 0.0034851739 1 1 + 7150 337.89818 -2.2324783 0.0034851739 1 1 + 7200 314.90661 3.5352168 0.0034851739 1 1 + 7250 280.21223 18.641551 0.0034851739 1 1 + 7300 261.50516 -9.6028875 0.0034851739 1 1 + 7350 318.42478 24.204897 0.0034851739 1 1 + 7400 232.30092 10.795028 0.0034851739 1 1 + 7450 308.6283 55.826052 0.0034851739 1 1 + 7500 330.77199 42.067567 0.0034851739 1 1 + 7550 371.76375 54.198803 0.0034851739 1 1 + 7600 325.44511 -15.323566 0.0034851739 1 1 + 7650 321.43817 14.785585 0.0034851739 1 1 + 7700 230.20981 -6.0681095 0.0034851739 1 1 + 7750 242.5704 -53.537013 0.0034851739 1 1 + 7800 256.12447 32.028102 0.0034851739 1 1 + 7850 271.85629 -2.5947419 0.0034851739 1 1 + 7900 293.57857 -14.193508 0.0034851739 1 1 + 7950 312.3337 1.4728672 0.0034851739 1 1 + 8000 287.58972 15.11998 0.0034851739 1 1 + 8050 342.12521 17.753217 0.0034851739 1 1 + 8100 322.65648 -21.518385 0.0034851739 1 1 + 8150 290.34023 -1.5454147 0.0034851739 1 1 + 8200 315.24727 -9.3963309 0.0034851739 1 1 + 8250 274.37494 -22.114313 0.0034851739 1 1 + 8300 291.16468 -21.422884 0.0034851739 1 1 + 8350 256.84658 -42.498897 0.0034851739 1 1 + 8400 227.60946 -42.086538 0.0034851739 1 1 + 8450 268.32046 35.482121 0.0034851739 1 1 + 8500 285.33854 -29.668866 0.0034851739 1 1 + 8550 332.3756 2.5194564 0.0034851739 1 1 + 8600 278.62604 -27.17113 0.0034851739 1 1 + 8650 300.42927 29.153595 0.0034851739 1 1 + 8700 339.74007 -32.789361 0.0034851739 1 1 + 8750 316.04678 24.843884 0.0034851739 1 1 + 8800 314.82303 25.425594 0.0034851739 1 1 + 8850 260.07817 28.255628 0.0034851739 1 1 + 8900 229.1425 -43.158148 0.0034851739 1 1 + 8950 249.33486 48.974948 0.0034851739 1 1 + 9000 291.49985 -2.3871659 0.0034851739 1 1 + 9050 302.28048 17.468444 0.0034851739 1 1 + 9100 327.34257 17.930615 0.0034851739 1 1 + 9150 269.76327 0.076165315 0.0034851739 1 1 + 9200 328.12791 -6.8179432 0.0034851739 1 1 + 9250 374.89034 -30.676844 0.0034851739 1 1 + 9300 323.73968 -10.662196 0.0034851739 1 1 + 9350 373.39717 15.609921 0.0034851739 1 1 + 9400 304.65852 19.157003 0.0034851739 1 1 + 9450 300.61967 10.877633 0.0034851739 1 1 + 9500 295.51997 -43.105377 0.0034851739 1 1 + 9550 288.39617 -44.8765 0.0034851739 1 1 + 9600 265.52101 29.227992 0.0034851739 1 1 + 9650 272.81855 18.990648 0.0034851739 1 1 + 9700 282.43605 -31.037116 0.0034851739 1 1 + 9750 286.81417 7.8153435 0.0034851739 1 1 + 9800 308.06574 -15.009325 0.0034851739 1 1 + 9850 345.71664 18.323166 0.0034851739 1 1 + 9900 303.77548 -4.9790263 0.0034851739 1 1 + 9950 321.4875 -24.276896 0.0034851739 1 1 + 10000 264.3328 40.169777 0.0034851739 1 1 +Loop time of 2.92911 on 1 procs for 10000 steps with 44 atoms + +Performance: 294.970 ns/day, 0.081 hours/ns, 3414.002 timesteps/s, 150.216 katom-step/s +99.6% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.10431 | 0.10431 | 0.10431 | 0.0 | 3.56 +Bond | 0.2007 | 0.2007 | 0.2007 | 0.0 | 6.85 +Kspace | 2.5635 | 2.5635 | 2.5635 | 0.0 | 87.52 +Neigh | 0.0036333 | 0.0036333 | 0.0036333 | 0.0 | 0.12 +Comm | 0.0012115 | 0.0012115 | 0.0012115 | 0.0 | 0.04 +Output | 0.0014554 | 0.0014554 | 0.0014554 | 0.0 | 0.05 +Modify | 0.051897 | 0.051897 | 0.051897 | 0.0 | 1.77 +Other | | 0.002372 | | | 0.08 + +Nlocal: 44 ave 44 max 44 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 22 ave 22 max 22 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 938 ave 938 max 938 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 938 +Ave neighs/atom = 21.318182 +Ave special neighs/atom = 6.4090909 +Neighbor list builds = 231 +Dangerous builds = 0 + +# write_restart restart_longrun +# write_data restart_longrun.data +Total wall time: 0:00:02 diff --git a/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.11Feb2026.tiny_nylon_stabilized.g++.4 b/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.11Feb2026.tiny_nylon_stabilized.g++.4 new file mode 100644 index 00000000000..d34a2f5b58e --- /dev/null +++ b/examples/PACKAGES/reaction/tiny_nylon_wildcards/log.11Feb2026.tiny_nylon_stabilized.g++.4 @@ -0,0 +1,447 @@ +LAMMPS (11 Feb 2026 - Development - patch_11Feb2026-159-gddd6fdf6d6-modified) +# two monomer nylon example +# reaction produces a condensed water molecule + +units real + +boundary p p p + +atom_style full + +kspace_style pppm 1.0e-4 + +pair_style lj/class2/coul/long 8.5 + +angle_style class2 + +bond_style class2 + +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 extra/dihedral/per/atom 15 extra/improper/per/atom 25 extra/special/per/atom 25 +Reading data file ... + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 2 by 2 MPI processor grid + reading atom labelmap ... + reading bond labelmap ... + reading angle labelmap ... + reading dihedral labelmap ... + reading improper labelmap ... + reading atoms ... + 44 atoms + reading velocities ... + 44 velocities + scanning bonds ... + 9 = max bonds/atom + scanning angles ... + 21 = max angles/atom + scanning dihedrals ... + 29 = max dihedrals/atom + scanning impropers ... + 29 = max impropers/atom + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 42 bonds + reading angles ... + 74 angles + reading dihedrals ... + 100 dihedrals + reading impropers ... + 16 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 1 + special bond factors coul: 0 0 1 + 4 = max # of 1-2 neighbors + 6 = max # of 1-3 neighbors + 35 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.006 seconds + +velocity all create 300.0 4928459 dist gaussian + +molecule mol1 rxn1_stp1_unreacted.json auto adi +Read molecule template mol1: +(no title) + 1 molecules + 0 fragments + 0 bodies + 18 atoms with max type 8 + 16 bonds with max type 8 + 25 angles with max type 25 + 23 dihedrals with max type 33 + 2 impropers with max type 3 +molecule mol2 rxn1_stp1_reacted.json auto adi +Read molecule template mol2: +(no title) + 1 molecules + 0 fragments + 0 bodies + 18 atoms with max type 9 + 17 bonds with max type 11 + 31 angles with max type 24 + 39 dihedrals with max type 30 + 0 impropers with max type 0 +molecule mol3 rxn1_stp2_unreacted.json auto adi +Read molecule template mol3: +(no title) + 1 molecules + 0 fragments + 0 bodies + 15 atoms with max type 9 + 14 bonds with max type 11 + 25 angles with max type 24 + 30 dihedrals with max type 30 + 0 impropers with max type 0 +molecule mol4 rxn1_stp2_reacted.json auto adi +Read molecule template mol4: +(no title) + 1 molecules + 0 fragments + 0 bodies + 15 atoms with max type 11 + 13 bonds with max type 13 + 19 angles with max type 26 + 16 dihedrals with max type 29 + 2 impropers with max type 5 + +thermo 50 + +# dump 1 all xyz 1 test_vis.xyz +# dump_modify 1 types labels + +fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map rescale_charges yes +WARNING: Fix bond/react: Atom affected by reaction rxn1 is too close to template edge (src/REACTION/fix_bond_react.cpp:2653) +WARNING: Fix bond/react: Atom affected by reaction rxn2 is too close to template edge (src/REACTION/fix_bond_react.cpp:2653) +dynamic group bond_react_MASTER_group defined +dynamic group statted_grp_REACT defined + +fix 1 statted_grp_REACT nvt temp 300 300 100 + +# optionally, you can customize behavior of reacting atoms, +# by using the internally-created 'bond_react_MASTER_group', like so: +fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1 + +thermo_style custom step temp press density f_myrxns[*] +thermo_modify colname auto + +# restart 100 restart1 restart2 + +run 10000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419 + +@Article{Gissinger24, + author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor}, + title = {Type Label Framework for Bonded Force Fields in LAMMPS}, + journal = {J. Phys. Chem. B}, + year = 2024, + volume = 128, + number = 13, + pages = {3282--3297} +} + +- fix bond/react: https://reacter.org, https://doi.org/10.1016/j.polymer.2017.09.038, https://doi.org/10.1021/acs.macromol.0c02012, https://doi.org/10.1016/j.cpc.2024.109287 + +@Article{Gissinger17, + author = {J. R. Gissinger and B. D. Jensen and K. E. Wise}, + title = {Modeling Chemical Reactions in Classical Molecular Dynamics Simulations}, + journal = {Polymer}, + year = 2017, + volume = 128, + pages = {211--217} +} + +@Article{Gissinger20, + author = {J. R. Gissinger, B. D. Jensen, K. E. Wise}, + title = {{REACTER}: A Heuristic Method for Reactive Molecular Dynamics}, + journal = {Macromolecules}, + year = 2020, + volume = 53, + number = 22, + pages = {9953--9961} +} + +@Article{Gissinger24, + author = {J. R. Gissinger, B. D. Jensen, K. E. Wise}, + title = {Molecular Modeling of Reactive Systems with REACTER}, + journal = {Computer Physics Communications}, + year = 2024, + volume = 304, + number = 109287 +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +PPPM initialization ... + using 12-bit tables for long-range coulomb + G vector (1/distance) = 0.23408048 + grid = 15 15 15 + stencil order = 5 + estimated absolute RMS force accuracy = 0.018627396 + estimated relative force accuracy = 5.6095851e-05 + using double precision KISS FFT + 3d grid and FFT values/proc = 3380 960 +Generated 55 of 55 mixed pair_coeff terms from sixthpower/sixthpower 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 = 10.5 + ghost atom cutoff = 10.5 + binsize = 5.25, bins = 10 10 10 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) pair lj/class2/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) fix bond/react, occasional, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 33.49 | 33.72 | 34.28 Mbytes + Step Temp Press Density f_myrxns:rxn1 f_myrxns:rxn2 + 0 300 357.25587 0.0034851739 0 0 + 50 323.13357 -36.901145 0.0034851739 1 0 + 100 303.51 11.102115 0.0034851739 1 1 + 150 332.31667 -25.20854 0.0034851739 1 1 + 200 278.87792 25.724788 0.0034851739 1 1 + 250 306.00815 -9.2221075 0.0034851739 1 1 + 300 254.72154 -5.7953243 0.0034851739 1 1 + 350 267.62849 23.758906 0.0034851739 1 1 + 400 320.81812 3.3741666 0.0034851739 1 1 + 450 376.12912 -10.240072 0.0034851739 1 1 + 500 409.47719 17.579329 0.0034851739 1 1 + 550 251.53859 -1.855726 0.0034851739 1 1 + 600 237.09927 19.34288 0.0034851739 1 1 + 650 325.85267 12.350177 0.0034851739 1 1 + 700 281.35713 2.4348116 0.0034851739 1 1 + 750 348.96295 10.699428 0.0034851739 1 1 + 800 285.14402 -34.310532 0.0034851739 1 1 + 850 272.05346 -29.232747 0.0034851739 1 1 + 900 233.75444 25.081062 0.0034851739 1 1 + 950 270.83373 36.530228 0.0034851739 1 1 + 1000 226.39853 -25.096605 0.0034851739 1 1 + 1050 252.97684 -38.371556 0.0034851739 1 1 + 1100 298.67431 53.002071 0.0034851739 1 1 + 1150 291.35418 -0.5873292 0.0034851739 1 1 + 1200 338.55036 -12.606207 0.0034851739 1 1 + 1250 273.47414 2.60749 0.0034851739 1 1 + 1300 238.32577 103.89002 0.0034851739 1 1 + 1350 289.7203 35.589669 0.0034851739 1 1 + 1400 308.54997 -14.26474 0.0034851739 1 1 + 1450 335.61769 -4.3227573 0.0034851739 1 1 + 1500 322.50674 17.455373 0.0034851739 1 1 + 1550 394.2999 9.2091519 0.0034851739 1 1 + 1600 381.17832 17.685279 0.0034851739 1 1 + 1650 335.99721 -48.364575 0.0034851739 1 1 + 1700 303.84751 -45.870032 0.0034851739 1 1 + 1750 320.31452 -11.515199 0.0034851739 1 1 + 1800 294.33869 -26.35506 0.0034851739 1 1 + 1850 279.71967 6.08188 0.0034851739 1 1 + 1900 303.75788 -49.286914 0.0034851739 1 1 + 1950 290.83148 5.2445057 0.0034851739 1 1 + 2000 233.30698 2.1573847 0.0034851739 1 1 + 2050 342.10511 48.769056 0.0034851739 1 1 + 2100 356.60518 -42.429133 0.0034851739 1 1 + 2150 330.93049 -10.464322 0.0034851739 1 1 + 2200 334.95641 45.887707 0.0034851739 1 1 + 2250 314.11619 -1.5434876 0.0034851739 1 1 + 2300 307.68641 -7.8034001 0.0034851739 1 1 + 2350 308.76756 21.598802 0.0034851739 1 1 + 2400 284.58948 1.5929493 0.0034851739 1 1 + 2450 355.55641 28.432663 0.0034851739 1 1 + 2500 295.58167 23.280848 0.0034851739 1 1 + 2550 371.25707 -10.58728 0.0034851739 1 1 + 2600 359.68341 -5.2907726 0.0034851739 1 1 + 2650 384.6798 20.865417 0.0034851739 1 1 + 2700 332.21994 -34.169414 0.0034851739 1 1 + 2750 300.42138 -12.291032 0.0034851739 1 1 + 2800 271.01311 32.378068 0.0034851739 1 1 + 2850 283.99145 -17.936892 0.0034851739 1 1 + 2900 258.28306 28.898778 0.0034851739 1 1 + 2950 267.29489 36.539519 0.0034851739 1 1 + 3000 293.40021 5.8287078 0.0034851739 1 1 + 3050 307.34374 6.9045185 0.0034851739 1 1 + 3100 354.41756 18.485277 0.0034851739 1 1 + 3150 324.13633 -21.423388 0.0034851739 1 1 + 3200 311.91519 0.74689118 0.0034851739 1 1 + 3250 331.69917 19.998501 0.0034851739 1 1 + 3300 345.30941 -9.8087947 0.0034851739 1 1 + 3350 241.40268 -7.2122535 0.0034851739 1 1 + 3400 330.91492 38.638196 0.0034851739 1 1 + 3450 304.50536 16.594641 0.0034851739 1 1 + 3500 310.54379 22.39052 0.0034851739 1 1 + 3550 289.81597 -32.48778 0.0034851739 1 1 + 3600 315.913 31.853028 0.0034851739 1 1 + 3650 324.65024 10.050418 0.0034851739 1 1 + 3700 304.9945 7.8301195 0.0034851739 1 1 + 3750 294.78067 -3.2631377 0.0034851739 1 1 + 3800 284.11377 -22.275792 0.0034851739 1 1 + 3850 220.69522 33.777465 0.0034851739 1 1 + 3900 256.29613 -53.418545 0.0034851739 1 1 + 3950 261.30627 -22.813215 0.0034851739 1 1 + 4000 305.80112 23.561146 0.0034851739 1 1 + 4050 275.54421 13.053881 0.0034851739 1 1 + 4100 315.75499 49.747322 0.0034851739 1 1 + 4150 315.96338 -38.079448 0.0034851739 1 1 + 4200 325.13857 -87.01902 0.0034851739 1 1 + 4250 338.81913 25.914142 0.0034851739 1 1 + 4300 388.38557 46.197706 0.0034851739 1 1 + 4350 294.83481 -41.839453 0.0034851739 1 1 + 4400 297.72576 16.664088 0.0034851739 1 1 + 4450 305.73003 -10.606181 0.0034851739 1 1 + 4500 298.48692 -22.392374 0.0034851739 1 1 + 4550 305.98391 21.91024 0.0034851739 1 1 + 4600 271.26849 14.578329 0.0034851739 1 1 + 4650 314.22063 29.952428 0.0034851739 1 1 + 4700 297.32624 -33.578621 0.0034851739 1 1 + 4750 325.00311 -49.80012 0.0034851739 1 1 + 4800 358.00261 -23.364892 0.0034851739 1 1 + 4850 360.31216 9.6486091 0.0034851739 1 1 + 4900 317.77261 24.298745 0.0034851739 1 1 + 4950 317.04436 22.331487 0.0034851739 1 1 + 5000 357.58241 23.31468 0.0034851739 1 1 + 5050 282.14913 -30.254296 0.0034851739 1 1 + 5100 272.52247 -10.901472 0.0034851739 1 1 + 5150 270.4524 -6.8827268 0.0034851739 1 1 + 5200 300.3521 64.929326 0.0034851739 1 1 + 5250 308.20583 -41.798255 0.0034851739 1 1 + 5300 325.55529 -27.954254 0.0034851739 1 1 + 5350 294.91412 25.438299 0.0034851739 1 1 + 5400 266.66918 -5.4735636 0.0034851739 1 1 + 5450 208.04894 9.5771991 0.0034851739 1 1 + 5500 246.1425 -19.580318 0.0034851739 1 1 + 5550 322.31812 16.498933 0.0034851739 1 1 + 5600 359.00369 12.899138 0.0034851739 1 1 + 5650 326.27724 -22.213591 0.0034851739 1 1 + 5700 267.13085 24.722767 0.0034851739 1 1 + 5750 338.23325 -6.8854669 0.0034851739 1 1 + 5800 296.02965 -46.77692 0.0034851739 1 1 + 5850 215.33228 39.976882 0.0034851739 1 1 + 5900 249.3337 -8.1120399 0.0034851739 1 1 + 5950 241.13267 -1.6905246 0.0034851739 1 1 + 6000 229.70969 22.993369 0.0034851739 1 1 + 6050 239.80034 -33.641252 0.0034851739 1 1 + 6100 287.79026 -24.348035 0.0034851739 1 1 + 6150 248.16127 -9.2052185 0.0034851739 1 1 + 6200 323.71354 -47.476208 0.0034851739 1 1 + 6250 327.28865 -32.632654 0.0034851739 1 1 + 6300 320.77767 16.0804 0.0034851739 1 1 + 6350 307.68509 0.1944429 0.0034851739 1 1 + 6400 329.08143 -21.472596 0.0034851739 1 1 + 6450 318.19579 -34.753263 0.0034851739 1 1 + 6500 275.61073 32.323869 0.0034851739 1 1 + 6550 257.23144 18.556693 0.0034851739 1 1 + 6600 274.51301 -2.4159555 0.0034851739 1 1 + 6650 236.9243 -14.812704 0.0034851739 1 1 + 6700 290.04921 1.9975556 0.0034851739 1 1 + 6750 297.68817 13.924398 0.0034851739 1 1 + 6800 316.11804 1.3563521 0.0034851739 1 1 + 6850 401.46232 70.115567 0.0034851739 1 1 + 6900 339.29932 -19.552437 0.0034851739 1 1 + 6950 320.24317 23.34253 0.0034851739 1 1 + 7000 295.90518 -19.717881 0.0034851739 1 1 + 7050 282.08396 -2.773803 0.0034851739 1 1 + 7100 307.30147 -31.048644 0.0034851739 1 1 + 7150 284.02881 19.40507 0.0034851739 1 1 + 7200 283.30101 -68.15113 0.0034851739 1 1 + 7250 278.64051 86.966139 0.0034851739 1 1 + 7300 330.84295 -18.711624 0.0034851739 1 1 + 7350 312.98066 -36.848008 0.0034851739 1 1 + 7400 347.3138 9.4767976 0.0034851739 1 1 + 7450 315.87087 43.920311 0.0034851739 1 1 + 7500 267.75156 -31.556573 0.0034851739 1 1 + 7550 276.65085 6.1891795 0.0034851739 1 1 + 7600 230.40446 7.4884271 0.0034851739 1 1 + 7650 280.11621 4.3729138 0.0034851739 1 1 + 7700 239.8512 6.3183186 0.0034851739 1 1 + 7750 288.54475 -39.588823 0.0034851739 1 1 + 7800 262.10062 30.375019 0.0034851739 1 1 + 7850 320.7353 26.459535 0.0034851739 1 1 + 7900 313.05966 10.364636 0.0034851739 1 1 + 7950 399.03782 7.696121 0.0034851739 1 1 + 8000 347.82482 -16.722983 0.0034851739 1 1 + 8050 361.31081 3.77975 0.0034851739 1 1 + 8100 334.84827 -12.573234 0.0034851739 1 1 + 8150 289.9115 -17.810893 0.0034851739 1 1 + 8200 288.93559 29.918984 0.0034851739 1 1 + 8250 329.06923 29.130347 0.0034851739 1 1 + 8300 307.64926 -3.2122786 0.0034851739 1 1 + 8350 308.50975 10.250504 0.0034851739 1 1 + 8400 305.22045 7.8395123 0.0034851739 1 1 + 8450 316.01134 13.227936 0.0034851739 1 1 + 8500 262.40908 -58.617843 0.0034851739 1 1 + 8550 329.58689 29.944145 0.0034851739 1 1 + 8600 347.90523 12.111574 0.0034851739 1 1 + 8650 337.48787 -7.5025796 0.0034851739 1 1 + 8700 358.36277 -57.37112 0.0034851739 1 1 + 8750 395.18676 16.399673 0.0034851739 1 1 + 8800 326.80324 21.606457 0.0034851739 1 1 + 8850 269.54447 -33.557034 0.0034851739 1 1 + 8900 338.35434 -28.108924 0.0034851739 1 1 + 8950 286.3217 50.413683 0.0034851739 1 1 + 9000 294.82723 10.755724 0.0034851739 1 1 + 9050 266.85948 -19.36416 0.0034851739 1 1 + 9100 294.69133 -18.169658 0.0034851739 1 1 + 9150 269.34694 -28.028372 0.0034851739 1 1 + 9200 274.16403 -12.16129 0.0034851739 1 1 + 9250 282.79902 -0.86787542 0.0034851739 1 1 + 9300 280.67602 34.756095 0.0034851739 1 1 + 9350 272.83169 28.332351 0.0034851739 1 1 + 9400 316.47763 20.311008 0.0034851739 1 1 + 9450 280.98259 36.841016 0.0034851739 1 1 + 9500 331.93043 -33.336776 0.0034851739 1 1 + 9550 293.33855 -16.992144 0.0034851739 1 1 + 9600 273.19381 13.351368 0.0034851739 1 1 + 9650 249.12256 -28.390935 0.0034851739 1 1 + 9700 257.86354 -9.1340856 0.0034851739 1 1 + 9750 250.12745 -2.9898511 0.0034851739 1 1 + 9800 267.25354 1.4864123 0.0034851739 1 1 + 9850 209.06214 36.635534 0.0034851739 1 1 + 9900 282.52457 -1.2795244 0.0034851739 1 1 + 9950 268.06782 60.658795 0.0034851739 1 1 + 10000 309.8645 -36.729301 0.0034851739 1 1 +Loop time of 1.65845 on 4 procs for 10000 steps with 44 atoms + +Performance: 520.970 ns/day, 0.046 hours/ns, 6029.741 timesteps/s, 265.309 katom-step/s +99.4% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00049008 | 0.034593 | 0.10318 | 22.5 | 2.09 +Bond | 0.00099274 | 0.054105 | 0.18158 | 32.1 | 3.26 +Kspace | 1.1521 | 1.32 | 1.3947 | 8.7 | 79.59 +Neigh | 0.0039549 | 0.0039727 | 0.0039824 | 0.0 | 0.24 +Comm | 0.021066 | 0.037253 | 0.052539 | 7.7 | 2.25 +Output | 0.0013475 | 0.0017175 | 0.002611 | 1.2 | 0.10 +Modify | 0.18843 | 0.20014 | 0.22486 | 3.3 | 12.07 +Other | | 0.006669 | | | 0.40 + +Nlocal: 11 ave 44 max 0 min +Histogram: 3 0 0 0 0 0 0 0 0 1 +Nghost: 18.5 ave 44 max 0 min +Histogram: 1 0 0 2 0 0 0 0 0 1 +Neighs: 234.5 ave 938 max 0 min +Histogram: 3 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 938 +Ave neighs/atom = 21.318182 +Ave special neighs/atom = 6.4090909 +Neighbor list builds = 236 +Dangerous builds = 0 + +# write_restart restart_longrun +# write_data restart_longrun.data +Total wall time: 0:00:01 diff --git a/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp1_reacted.json b/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp1_reacted.json index f8b1ed0ef18..7639662c215 100644 --- a/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp1_reacted.json +++ b/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp1_reacted.json @@ -93,85 +93,5 @@ [ "c_1-o", 10, 12], [ "o-ho", 12, 15] ] - }, - "angles": { - "format": ["angle-type", "atom1", "atom2", "atom3"], - "data": [ - ["c2-n-hn", 2, 1, 4], - ["c2-n-hn", 2, 1, 5], - ["c2-n-c_1", 2, 1, 10], - ["hn-n-hn", 4, 1, 5], - ["hn-n-c_1", 4, 1, 10], - ["hn-n-c_1", 5, 1, 10], - ["n-c2-c2", 1, 2, 3], - ["n-c2-hc", 1, 2, 6], - ["n-c2-hc", 1, 2, 7], - [ "c2-c2-hc", 3, 2, 6], - [ "c2-c2-hc", 3, 2, 7], - [ "hc-c2-hc", 6, 2, 7], - [ "c2-c2-c2", 2, 3, 16], - [ "c2-c2-hc", 2, 3, 17], - [ "c2-c2-hc", 2, 3, 18], - [ "c2-c2-hc", 16, 3, 17], - [ "c2-c2-hc", 16, 3, 18], - [ "hc-c2-hc", 17, 3, 18], - [ "c2-c2-c_1", 8, 9, 10], - [ "c2-c2-hc", 8, 9, 13], - [ "c2-c2-hc", 8, 9, 14], - [ "hc-c2-c_1", 13, 9, 10], - [ "hc-c2-c_1", 14, 9, 10], - [ "hc-c2-hc", 13, 9, 14], - [ "c2-c_1-o_1", 9, 10, 11], - [ "c2-c_1-o", 9, 10, 12], - [ "n-c_1-c2", 1, 10, 9], - [ "o_1-c_1-o", 11, 10, 12], - [ "n-c_1-o_1", 1, 10, 11], - [ "n-c_1-o", 1, 10, 12], - [ "c_1-o-ho", 10, 12, 15] - ] - }, - "dihedrals": { - "format": ["dihedral-type", "atom1", "atom2", "atom3", "atom4"], - "data": [ - ["hn-n-c2-c2", 4, 1, 2, 3], - ["hn-n-c2-hc", 4, 1, 2, 6], - ["hn-n-c2-hc", 4, 1, 2, 7], - ["hn-n-c2-c2", 5, 1, 2, 3], - ["hn-n-c2-hc", 5, 1, 2, 6], - ["hn-n-c2-hc", 5, 1, 2, 7], - ["c_1-n-c2-c2", 10, 1, 2, 3], - ["c_1-n-c2-hc", 10, 1, 2, 6], - ["c_1-n-c2-hc", 10, 1, 2, 7], - [ "c2-n-c_1-c2", 2, 1, 10, 9], - [ "c2-n-c_1-o_1", 2, 1, 10, 11], - [ "c2-n-c_1-o", 2, 1, 10, 12], - [ "hn-n-c_1-c2", 4, 1, 10, 9], - [ "hn-n-c_1-o_1", 4, 1, 10, 11], - [ "hn-n-c_1-o", 4, 1, 10, 12], - [ "hn-n-c_1-c2", 5, 1, 10, 9], - [ "hn-n-c_1-o_1", 5, 1, 10, 11], - [ "hn-n-c_1-o", 5, 1, 10, 12], - [ "n-c2-c2-c2", 1, 2, 3, 16], - [ "n-c2-c2-hc", 1, 2, 3, 17], - [ "n-c2-c2-hc", 1, 2, 3, 18], - [ "c2-c2-c2-hc", 16, 3, 2, 6], - [ "hc-c2-c2-hc", 6, 2, 3, 17], - [ "hc-c2-c2-hc", 6, 2, 3, 18], - [ "c2-c2-c2-hc", 16, 3, 2, 7], - [ "hc-c2-c2-hc", 7, 2, 3, 17], - [ "hc-c2-c2-hc", 7, 2, 3, 18], - [ "c2-c2-c_1-o_1", 8, 9, 10, 11], - [ "c2-c2-c_1-o", 8, 9, 10, 12], - [ "c2-c2-c_1-n", 8, 9, 10, 1], - [ "hc-c2-c_1-o_1", 13, 9, 10, 11], - [ "hc-c2-c_1-o", 13, 9, 10, 12], - [ "hc-c2-c_1-n", 13, 9, 10, 1], - [ "hc-c2-c_1-o_1", 14, 9, 10, 11], - [ "hc-c2-c_1-o", 14, 9, 10, 12], - [ "hc-c2-c_1-n", 14, 9, 10, 1], - [ "c2-c_1-o-ho", 9, 10, 12, 15], - [ "o_1-c_1-o-ho", 11, 10, 12, 15], - [ "n-c_1-o-ho", 1, 10, 12, 15] - ] } } diff --git a/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp1_unreacted.json b/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp1_unreacted.json index be909ee2174..9fcd19e9f20 100644 --- a/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp1_unreacted.json +++ b/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp1_unreacted.json @@ -93,64 +93,6 @@ [ "o-ho", 12, 15] ] }, - "angles": { - "format": ["angle-type", "atom1", "atom2", "atom3"], - "data": [ - ["c2-na-hn", 2, 1, 4], - ["c2-na-hn", 2, 1, 5], - ["hn-na-hn", 4, 1, 5], - ["na-c2-c2", 1, 2, 3], - ["na-c2-hc", 1, 2, 6], - ["na-c2-hc", 1, 2, 7], - ["c2-c2-hc", 3, 2, 6], - ["c2-c2-hc", 3, 2, 7], - ["hc-c2-hc", 6, 2, 7], - [ "c2-c2-c2", 2, 3, 16], - [ "c2-c2-hc", 2, 3, 17], - [ "c2-c2-hc", 2, 3, 18], - [ "c2-c2-hc", 16, 3, 17], - [ "c2-c2-hc", 16, 3, 18], - [ "hc-c2-hc", 17, 3, 18], - [ "c2-c2-c_1", 8, 9, 10], - [ "c2-c2-hc", 8, 9, 13], - [ "c2-c2-hc", 8, 9, 14], - [ "hc-c2-c_1", 13, 9, 10], - [ "hc-c2-c_1", 14, 9, 10], - [ "hc-c2-hc", 13, 9, 14], - [ "c2-c_1-o_1", 9, 10, 11], - [ "c2-c_1-o", 9, 10, 12], - [ "o_1-c_1-o", 11, 10, 12], - [ "c_1-o-ho", 10, 12, 15] - ] - }, - "dihedrals": { - "format": ["dihedral-type", "atom1", "atom2", "atom3", "atom4"], - "data": [ - ["hn-na-c2-c2", 4, 1, 2, 3], - ["hn-na-c2-hc", 4, 1, 2, 6], - ["hn-na-c2-hc", 4, 1, 2, 7], - ["hn-na-c2-c2", 5, 1, 2, 3], - ["hn-na-c2-hc", 5, 1, 2, 6], - ["hn-na-c2-hc", 5, 1, 2, 7], - ["na-c2-c2-c2", 1, 2, 3, 16], - ["na-c2-c2-hc", 1, 2, 3, 17], - ["na-c2-c2-hc", 1, 2, 3, 18], - [ "c2-c2-c2-hc", 16, 3, 2, 6], - [ "hc-c2-c2-hc", 6, 2, 3, 17], - [ "hc-c2-c2-hc", 6, 2, 3, 18], - [ "c2-c2-c2-hc", 16, 3, 2, 7], - [ "hc-c2-c2-hc", 7, 2, 3, 17], - [ "hc-c2-c2-hc", 7, 2, 3, 18], - [ "c2-c2-c_1-o_1", 8, 9, 10, 11], - [ "c2-c2-c_1-o", 8, 9, 10, 12], - [ "hc-c2-c_1-o_1", 13, 9, 10, 11], - [ "hc-c2-c_1-o", 13, 9, 10, 12], - [ "hc-c2-c_1-o_1", 14, 9, 10, 11], - [ "hc-c2-c_1-o", 14, 9, 10, 12], - [ "c2-c_1-o-ho", 9, 10, 12, 15], - [ "o_1-c_1-o-ho", 11, 10, 12, 15] - ] - }, "charges": { "format": ["atom-id", "charge"], "data": [ @@ -173,12 +115,5 @@ [17, 0.0], [18, 0.0] ] - }, - "impropers": { - "format": [ "improper-type", "atom1", "atom2", "atom3", "atom4"], - "data": [ - [ "c2-na-hn-hn", 2, 1, 4, 5], - [ "c2-c_1-o_1-o", 9, 10, 11, 12] - ] } } diff --git a/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp2_reacted.json b/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp2_reacted.json index 8d8979675ac..f94c3387ebe 100644 --- a/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp2_reacted.json +++ b/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp2_reacted.json @@ -81,51 +81,6 @@ [ "hw-o*", 15, 12] ] }, - "angles": { - "format": ["angle-type", "atom1", "atom2", "atom3"], - "data": [ - ["c2-n-hn", 2, 1, 5], - ["c2-n-c_1", 2, 1, 10], - ["hn-n-c_1", 5, 1, 10], - ["n-c2-c2", 1, 2, 3], - ["n-c2-hc", 1, 2, 6], - ["n-c2-hc", 1, 2, 7], - ["c2-c2-hc", 3, 2, 6], - ["c2-c2-hc", 3, 2, 7], - ["hc-c2-hc", 6, 2, 7], - [ "c2-c2-c_1", 8, 9, 10], - [ "c2-c2-hc", 8, 9, 13], - [ "c2-c2-hc", 8, 9, 14], - [ "hc-c2-c_1", 13, 9, 10], - [ "hc-c2-c_1", 14, 9, 10], - [ "hc-c2-hc", 13, 9, 14], - [ "c2-c_1-o_1", 9, 10, 11], - [ "n-c_1-c2", 1, 10, 9], - [ "n-c_1-o_1", 1, 10, 11], - [ "hw-o*-hw", 15, 12, 4] - ] - }, - "dihedrals": { - "format": ["dihedral-type", "atom1", "atom2", "atom3", "atom4"], - "data": [ - ["hn-n-c2-c2", 5, 1, 2, 3], - ["hn-n-c2-hc", 5, 1, 2, 6], - ["hn-n-c2-hc", 5, 1, 2, 7], - ["c_1-n-c2-c2", 10, 1, 2, 3], - ["c_1-n-c2-hc", 10, 1, 2, 6], - ["c_1-n-c2-hc", 10, 1, 2, 7], - ["c2-n-c_1-c2", 2, 1, 10, 9], - ["c2-n-c_1-o_1", 2, 1, 10, 11], - ["hn-n-c_1-c2", 5, 1, 10, 9], - [ "hn-n-c_1-o_1", 5, 1, 10, 11], - [ "c2-c2-c_1-o_1", 8, 9, 10, 11], - [ "c2-c2-c_1-n", 8, 9, 10, 1], - [ "hc-c2-c_1-o_1", 13, 9, 10, 11], - [ "hc-c2-c_1-n", 13, 9, 10, 1], - [ "hc-c2-c_1-o_1", 14, 9, 10, 11], - [ "hc-c2-c_1-n", 14, 9, 10, 1] - ] - }, "charges": { "format": ["atom-id", "charge"], "data": [ @@ -145,12 +100,5 @@ [14, 0.18949], [15, 0.38] ] - }, - "impropers": { - "format": ["improper-type", "atom1", "atom2", "atom3", "atom4"], - "data": [ - ["c2-n-hn-c_1", 2, 1, 5, 10], - ["n-c_1-c2-o_1", 1, 10, 9, 11] - ] } } diff --git a/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp2_unreacted.json b/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp2_unreacted.json index 1d7acaaedf4..e42350fd183 100644 --- a/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp2_unreacted.json +++ b/examples/PACKAGES/reaction/tiny_nylon_wildcards/rxn1_stp2_unreacted.json @@ -82,71 +82,6 @@ ["o-ho", 12, 15] ] }, - "angles": { - "format": ["angle-type", "atom1", "atom2", "atom3"], - "data": [ - ["c2-n-hn", 2, 1, 4], - ["c2-n-hn", 2, 1, 5], - ["c2-n-c_1", 2, 1, 10], - ["hn-n-hn", 4, 1, 5], - ["hn-n-c_1", 4, 1, 10], - ["hn-n-c_1", 5, 1, 10], - ["n-c2-c2", 1, 2, 3], - ["n-c2-hc", 1, 2, 6], - ["n-c2-hc", 1, 2, 7], - ["c2-c2-hc", 3, 2, 6], - ["c2-c2-hc", 3, 2, 7], - ["hc-c2-hc", 6, 2, 7], - ["c2-c2-c_1", 8, 9, 10], - ["c2-c2-hc", 8, 9, 13], - ["c2-c2-hc", 8, 9, 14], - ["hc-c2-c_1", 13, 9, 10], - ["hc-c2-c_1", 14, 9, 10], - ["hc-c2-hc", 13, 9, 14], - ["c2-c_1-o_1", 9, 10, 11], - ["c2-c_1-o", 9, 10, 12], - ["n-c_1-c2", 1, 10, 9], - ["o_1-c_1-o", 11, 10, 12], - ["n-c_1-o_1", 1, 10, 11], - ["n-c_1-o", 1, 10, 12], - ["c_1-o-ho", 10, 12, 15] - ] - }, - "dihedrals": { - "format": ["dihedral-type", "atom1", "atom2", "atom3", "atom4"], - "data": [ - ["hn-n-c2-c2", 4, 1, 2, 3], - ["hn-n-c2-hc", 4, 1, 2, 6], - ["hn-n-c2-hc", 4, 1, 2, 7], - ["hn-n-c2-c2", 5, 1, 2, 3], - ["hn-n-c2-hc", 5, 1, 2, 6], - ["hn-n-c2-hc", 5, 1, 2, 7], - ["c_1-n-c2-c2", 10, 1, 2, 3], - ["c_1-n-c2-hc", 10, 1, 2, 6], - ["c_1-n-c2-hc", 10, 1, 2, 7], - ["c2-n-c_1-c2", 2, 1, 10, 9], - ["c2-n-c_1-o_1", 2, 1, 10, 11], - ["c2-n-c_1-o", 2, 1, 10, 12], - ["hn-n-c_1-c2", 4, 1, 10, 9], - ["hn-n-c_1-o_1", 4, 1, 10, 11], - ["hn-n-c_1-o", 4, 1, 10, 12], - ["hn-n-c_1-c2", 5, 1, 10, 9], - ["hn-n-c_1-o_1", 5, 1, 10, 11], - ["hn-n-c_1-o", 5, 1, 10, 12], - ["c2-c2-c_1-o_1", 8, 9, 10, 11], - ["c2-c2-c_1-o", 8, 9, 10, 12], - ["c2-c2-c_1-n", 8, 9, 10, 1], - ["hc-c2-c_1-o_1", 13, 9, 10, 11], - ["hc-c2-c_1-o", 13, 9, 10, 12], - ["hc-c2-c_1-n", 13, 9, 10, 1], - ["hc-c2-c_1-o_1", 14, 9, 10, 11], - ["hc-c2-c_1-o", 14, 9, 10, 12], - ["hc-c2-c_1-n", 14, 9, 10, 1], - ["c2-c_1-o-ho", 9, 10, 12, 15], - ["o_1-c_1-o-ho", 11, 10, 12, 15], - ["n-c_1-o-ho", 1, 10, 12, 15] - ] - }, "charges": { "format": ["atom-id", "charge"], "data": [ diff --git a/src/BODY/body_rounded_polyhedron.cpp b/src/BODY/body_rounded_polyhedron.cpp index 9e256735586..d75b7cdaa43 100644 --- a/src/BODY/body_rounded_polyhedron.cpp +++ b/src/BODY/body_rounded_polyhedron.cpp @@ -64,7 +64,7 @@ BodyRoundedPolyhedron::BodyRoundedPolyhedron(LAMMPS *lmp, int narg, char **arg) maxexchange = 3 + 3*nmax+2*nmax+MAX_FACE_SIZE*nmax+1+1; // icp max + dcp max memory->create(imflag,3*nmax,"body/rounded/polyhedron:imflag"); - memory->create(imdata,3*nmax,9,"body/rounded/polyhedron:imdata"); + memory->create(imdata,3*nmax,18,"body/rounded/polyhedron:imdata"); } /* ---------------------------------------------------------------------- */ @@ -620,11 +620,20 @@ int BodyRoundedPolyhedron::image(int ibonus, double flag1, double flag2, } else { // select whether edges or faces or both should be drawn - bool edgeflag = true; + bool edgeflag = false; bool triflag = true; + bool flatflag = false; int flag = static_cast(flag2); - if (flag == 2) triflag = false; - if (flag == 1) edgeflag = false; + // default settings are for flag2 == 1 + if (flag == 2) { + edgeflag = true; + triflag = false; + } else if (flag == 3) { + edgeflag = true; + flatflag = true; + } else if (flag == 4) { + flatflag = true; + } int nedges = bonus->ivalue[1]; if (nvertices == 2) nedges = 1; // special case: just two vertices -> one rod @@ -662,11 +671,12 @@ int BodyRoundedPolyhedron::image(int ibonus, double flag1, double flag2, int pt2 = static_cast(edge_ends[4*i+1]); int pt3 = static_cast(edge_ends[4*i+2]); int pt4 = static_cast(edge_ends[4*i+3]); + double tmpnormal[3]; // quadrilateral face requires two triangles. triangle has fourth vertex index set to -1 if (pt4 >= 0) { // first triangle - imflag[nelements] = Graphics::TRI; + imflag[nelements] = Graphics::TRINORM; MathExtra::matvec(p,&bonus->dvalue[3*pt1],imdata[nelements]); MathExtra::matvec(p,&bonus->dvalue[3*pt2],&imdata[nelements][3]); MathExtra::matvec(p,&bonus->dvalue[3*pt3],&imdata[nelements][6]); @@ -679,10 +689,27 @@ int BodyRoundedPolyhedron::image(int ibonus, double flag1, double flag2, imdata[nelements][6] += x[0]; imdata[nelements][7] += x[1]; imdata[nelements][8] += x[2]; + MathExtra::matvec(p,&bonus->dvalue[3*pt1],&imdata[nelements][9]); + MathExtra::matvec(p,&bonus->dvalue[3*pt2],&imdata[nelements][12]); + MathExtra::matvec(p,&bonus->dvalue[3*pt3],&imdata[nelements][15]); + // tilt the normals toward the center of the square to make it more "edgy" + MathExtra::matvec(p,&bonus->dvalue[3*pt4],tmpnormal); + tmpnormal[0] += imdata[nelements][9] + imdata[nelements][12] + imdata[nelements][15]; + tmpnormal[1] += imdata[nelements][10] + imdata[nelements][13] + imdata[nelements][16]; + tmpnormal[2] += imdata[nelements][11] + imdata[nelements][14] + imdata[nelements][17]; + MathExtra::scale3(0.5, tmpnormal); + for (int j = 0; j < 3; ++j) { + for (auto k : {9,12,15}) { + imdata[nelements][k+j] += tmpnormal[j]; + } + } + MathExtra::norm3(&imdata[nelements][9]); + MathExtra::norm3(&imdata[nelements][12]); + MathExtra::norm3(&imdata[nelements][15]); ++nelements; // second triangle - imflag[nelements] = Graphics::TRI; + imflag[nelements] = Graphics::TRINORM; MathExtra::matvec(p,&bonus->dvalue[3*pt3],imdata[nelements]); MathExtra::matvec(p,&bonus->dvalue[3*pt4],&imdata[nelements][3]); MathExtra::matvec(p,&bonus->dvalue[3*pt1],&imdata[nelements][6]); @@ -695,6 +722,24 @@ int BodyRoundedPolyhedron::image(int ibonus, double flag1, double flag2, imdata[nelements][6] += x[0]; imdata[nelements][7] += x[1]; imdata[nelements][8] += x[2]; + MathExtra::matvec(p,&bonus->dvalue[3*pt3],&imdata[nelements][9]); + MathExtra::matvec(p,&bonus->dvalue[3*pt4],&imdata[nelements][12]); + MathExtra::matvec(p,&bonus->dvalue[3*pt1],&imdata[nelements][15]); + // tilt the normals toward the center of the square to make it more "edgy" + for (int j = 0; j < 3; ++j) { + for (auto k : {9,12,15}) { + imdata[nelements][k+j] += tmpnormal[j]; + } + } + MathExtra::norm3(&imdata[nelements][9]); + MathExtra::norm3(&imdata[nelements][12]); + MathExtra::norm3(&imdata[nelements][15]); + + if (flatflag) { + // reset rounded triangles to flat triangles, if requested + imflag[nelements] = Graphics::TRI; + imflag[nelements-1] = Graphics::TRI; + } // shift triangles toward the outside of the body by half diameter when also drawing edges if (edgeflag) { @@ -730,10 +775,10 @@ int BodyRoundedPolyhedron::image(int ibonus, double flag1, double flag2, imdata[nelements-1][7] += vec2[1]; imdata[nelements-1][8] += vec2[2]; } - ++nelements; + } else { - imflag[nelements] = Graphics::TRI; + imflag[nelements] = Graphics::TRINORM; MathExtra::matvec(p,&bonus->dvalue[3*pt1],imdata[nelements]); MathExtra::matvec(p,&bonus->dvalue[3*pt2],&imdata[nelements][3]); MathExtra::matvec(p,&bonus->dvalue[3*pt3],&imdata[nelements][6]); @@ -746,6 +791,25 @@ int BodyRoundedPolyhedron::image(int ibonus, double flag1, double flag2, imdata[nelements][6] += x[0]; imdata[nelements][7] += x[1]; imdata[nelements][8] += x[2]; + MathExtra::matvec(p,&bonus->dvalue[3*pt1],&imdata[nelements][9]); + MathExtra::matvec(p,&bonus->dvalue[3*pt2],&imdata[nelements][12]); + MathExtra::matvec(p,&bonus->dvalue[3*pt3],&imdata[nelements][15]); + // tilt the normals toward the center of the triangle to make it a bit "edgy" + tmpnormal[0] = imdata[nelements][9] + imdata[nelements][12] + imdata[nelements][15]; + tmpnormal[1] = imdata[nelements][10] + imdata[nelements][13] + imdata[nelements][16]; + tmpnormal[2] = imdata[nelements][11] + imdata[nelements][14] + imdata[nelements][17]; + MathExtra::scale3(0.5, tmpnormal); + for (int j = 0; j < 3; ++j) { + for (auto k : {9,12,15}) { + imdata[nelements][k+j] += tmpnormal[j]; + } + } + MathExtra::norm3(&imdata[nelements][9]); + MathExtra::norm3(&imdata[nelements][12]); + MathExtra::norm3(&imdata[nelements][15]); + + // reset rounded triangles to flat triangles, if requested + if (flatflag) imflag[nelements] = Graphics::TRI; // shift triangle toward the outside of the body by half diameter when also drawing edges if (edgeflag) { diff --git a/src/COLVARS/fix_colvars.cpp b/src/COLVARS/fix_colvars.cpp index 3063b133680..1c9eb966c44 100644 --- a/src/COLVARS/fix_colvars.cpp +++ b/src/COLVARS/fix_colvars.cpp @@ -22,8 +22,9 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing author: Axel Kohlmeyer (Temple U) - Currently maintained by: Giacomo Fiorin (NIH) + Contributing author: Axel Kohlmeyer (Temple U) + Currently maintained by: Giacomo Fiorin (NIH) + Global array of colvar values: Mitch Murphy (alphataubio at gmail) ------------------------------------------------------------------------- */ #include "fix_colvars.h" @@ -41,12 +42,14 @@ #if defined(COLVARS_MPI) #include "universe.h" #endif +#include "thermo.h" #include "update.h" #include "colvarmodule.h" #include "colvarproxy_lammps.h" #include "colvars_memstream.h" #include "colvarscript.h" +#include "colvar.h" #include @@ -82,23 +85,23 @@ int FixColvars::instances = 0; FixColvars::FixColvars(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { - if (narg < 4) - error->all(FLERR,"Illegal fix colvars command: too few arguments"); - + if (narg < 4) utils::missing_cmd_args(FLERR, "fix colvars", error); if (instances > 0) - error->all(FLERR,"Only one colvars fix can be active at a time"); + error->all(FLERR, Error::COMMAND, "Only one fix colvars instance may be active at a time"); ++instances; - scalar_flag = 1; + extscalar = 1; + array_flag = 1; + size_array_rows_variable = 1; + size_array_cols = 4; + extarray = 0; // dont scale colvars values by number of atoms global_freq = 1; nevery = 1; - extscalar = 1; restart_global = 1; energy_global_flag = 1; root2root = MPI_COMM_NULL; proxy = nullptr; - if (strcmp(arg[3], "none") == 0) { conf_file = nullptr; } else { @@ -115,7 +118,6 @@ FixColvars::FixColvars(LAMMPS *lmp, int narg, char **arg) : /* initialize various state variables. */ energy = 0.0; nlevels_respa = 0; - init_flag = 0; num_coords = 0; comm_buf = nullptr; taglist = nullptr; @@ -135,12 +137,20 @@ FixColvars::FixColvars(LAMMPS *lmp, int narg, char **arg) : proxy->init(); proxy->set_random_seed(rng_seed); proxy->set_target_temperature(t_target); - if (conf_file) { - proxy->add_config("configfile", conf_file); - } + if (conf_file) proxy->add_config("configfile", conf_file); + } + +#if defined(COLVARS_MPI) + if (universe->nworlds > 1) { + // create inter root communicator + int color = 1; + if (comm->me == 0) color = 0; + MPI_Comm_split(universe->uworld, color, universe->iworld, &root2root); + if (comm->me == 0) proxy->set_replicas_mpi_communicator(root2root); } +#endif // defined(COLVARS_MPI) - /* storage required to communicate a single coordinate or force. */ + /* storage required to communicate a single coordinate or force */ size_one = sizeof(struct commdata); } @@ -150,7 +160,6 @@ int FixColvars::parse_fix_arguments(int narg, char **arg, bool fix_constructor) int const iarg_start = fix_constructor ? 4 : 0; int iarg = iarg_start; while (iarg < narg) { - bool is_fix_keyword = false; if (0 == strcmp(arg[iarg], "input")) { @@ -177,17 +186,13 @@ int FixColvars::parse_fix_arguments(int narg, char **arg, bool fix_constructor) // Valid LAMMPS fix keyword: raise error if it has no argument if (iarg + 1 == narg) { - if (fix_constructor) { - error->all(FLERR, ("Missing argument to keyword \""+ - std::string(arg[iarg]) +"\"")); - } else { - // Error code consistent with Fix::modify_param() - return 0; - } + if (fix_constructor) + error->all(FLERR, "Missing argument to keyword {}", arg[iarg]); + else + return 0; // Error code consistent with Fix::modify_param() } } else { - if (fix_constructor) { error->all(FLERR, "Unrecognized fix colvars argument: please note that " "Colvars script commands are not allowed until after the " @@ -211,6 +216,7 @@ int FixColvars::parse_fix_arguments(int narg, char **arg, bool fix_constructor) return iarg; } +/* ---------------------------------------------------------------------- */ FixColvars::~FixColvars() { @@ -223,10 +229,7 @@ FixColvars::~FixColvars() memory->sfree(comm_buf); if (proxy) delete proxy; - - if (root2root != MPI_COMM_NULL) - MPI_Comm_free(&root2root); - + if (root2root != MPI_COMM_NULL) MPI_Comm_free(&root2root); --instances; } @@ -243,40 +246,24 @@ int FixColvars::setmask() return mask; } +/* ---------------------------------------------------------------------- */ void FixColvars::init() { - const auto me = comm->me; if (atom->tag_enable == 0) error->all(FLERR, "Cannot use fix colvars without atom IDs"); if (atom->map_style == Atom::MAP_NONE) error->all(FLERR, "Fix colvars requires an atom map, see atom_modify"); - if ((me == 0) && (update->whichflag == 2)) + if ((comm->me == 0) && (update->whichflag == 2)) error->warning(FLERR, "Using fix colvars with minimization"); if (utils::strmatch(update->integrate_style, "^respa")) nlevels_respa = ((Respa *) update->integrate)->nlevels; - - if (init_flag) return; - init_flag = 1; - -#if defined(COLVARS_MPI) - if (universe->nworlds > 1) { - // create inter root communicator - int color = 1; - if (me == 0) { - color = 0; - } - MPI_Comm_split(universe->uworld, color, universe->iworld, &root2root); - if (me == 0) { - proxy->set_replicas_mpi_communicator(root2root); - } - } -#endif } +/* ---------------------------------------------------------------------- */ void FixColvars::set_thermostat_temperature() { @@ -284,9 +271,8 @@ void FixColvars::set_thermostat_temperature() if (tfix_name) { if (strcmp(tfix_name, "NULL") != 0) { Fix *tstat_fix = modify->get_fix_by_id(tfix_name); - if (!tstat_fix) { - error->one(FLERR, "Could not find thermostat fix ID {}", tfix_name); - } + if (!tstat_fix) error->one(FLERR, "Could not find thermostat fix ID {}", tfix_name); + int tmp = 0; auto *tt = reinterpret_cast(tstat_fix->extract("t_target", tmp)); if (tt) { @@ -305,12 +291,9 @@ void FixColvars::init_taglist() { int new_taglist_size = -1; const auto me = comm->me; - if (me == 0) { - // Number of atoms requested by Colvars num_coords = static_cast(proxy->modify_atom_positions()->size()); - if (proxy->modified_atom_list()) { new_taglist_size = num_coords; proxy->reset_modified_atom_list(); @@ -321,13 +304,9 @@ void FixColvars::init_taglist() // Broadcast number of colvar atoms; negative means no updates MPI_Bcast(&new_taglist_size, 1, MPI_INT, 0, world); - - if (new_taglist_size < 0) { - return; - } + if (new_taglist_size < 0) return; num_coords = new_taglist_size; - if (taglist) { memory->destroy(taglist); memory->destroy(force_buf); @@ -336,11 +315,8 @@ void FixColvars::init_taglist() memory->create(force_buf, 3*num_coords, "colvars:force_buf"); if (me == 0) { - // Initialize and build hashtable on MPI rank 0 - std::vector const &tl = *(proxy->get_atom_ids()); - idmap.clear(); idmap.reserve(num_coords); for (int i = 0; i < num_coords; ++i) { @@ -353,6 +329,7 @@ void FixColvars::init_taglist() MPI_Bcast(taglist, num_coords, MPI_LMP_TAGINT, 0, world); } +/* ---------------------------------------------------------------------- */ int FixColvars::modify_param(int narg, char **arg) { @@ -363,47 +340,42 @@ int FixColvars::modify_param(int narg, char **arg) // Parse arguments to fix colvars int return_code = parse_fix_arguments(narg, arg, false); - if (return_code >= 0) { + // update colvars in case fix_modify changed them + setup_colvars(); // A fix colvars argument was detected, return directly return return_code; } + for (int i = 0; i < narg; i++) { + // Substitute LAMMPS variables on all ranks to avoid mpi deadlock + char *new_arg = arg[i]; + int ncopy = strlen(new_arg) + 1; + int nwork = ncopy; + auto *copy = (char *) memory->smalloc(ncopy * sizeof(char), "fix/colvar:copy"); + auto *work = (char *) memory->smalloc(ncopy * sizeof(char), "fix/colvar:work"); + strncpy(copy, new_arg, ncopy); + lmp->input->substitute(copy,work,ncopy,nwork,0); + memory->sfree(work); + new_arg = copy; + script_args[i+1] = reinterpret_cast(new_arg); + } + // Any unknown arguments will go through the Colvars scripting interface if (comm->me == 0) { int error_code = COLVARSCRIPT_OK; colvarscript *script = proxy->script; script->set_cmdline_main_cmd("fix_modify " + std::string(id)); - - for (int i = 0; i < narg; i++) { - - // Substitute LAMMPS variables - - char *new_arg = arg[i]; - int ncopy = strlen(new_arg) + 1; - int nwork = ncopy; - auto *copy = (char *) memory->smalloc(ncopy * sizeof(char), "fix/colvar:copy"); - auto *work = (char *) memory->smalloc(ncopy * sizeof(char), "fix/colvar:work"); - strncpy(copy, new_arg, ncopy); - lmp->input->substitute(copy,work,ncopy,nwork,0); - memory->sfree(work); - new_arg = copy; - - script_args[i+1] = reinterpret_cast(new_arg); - } - // Run the command through Colvars error_code |= script->run(narg+1, script_args); - std::string const result = proxy->get_error_msgs() + script->str_result(); if (result.size()) utils::logmesg(lmp, result); - + setup_colvars(); // free allocated memory for (int i = 0; i < narg; i++) memory->sfree(script_args[i+1]); return (error_code == COLVARSCRIPT_OK) ? narg : 0; - - } else { - + } else { // me != 0 + setup_colvars(); // communicate colvars changes to mpi ranks > 0 // Return without error, don't block Fix::modify_params() return narg; } @@ -411,35 +383,28 @@ int FixColvars::modify_param(int narg, char **arg) return 0; } +/* ---------------------------------------------------------------------- */ void FixColvars::setup_io() { if (comm->me == 0) { proxy->set_input_prefix(std::string(inp_name ? inp_name : "")); - if (proxy->input_prefix().size() > 0) { - proxy->log("Will read input state from file \""+ - proxy->input_prefix()+".colvars.state\""); - } - + if (!proxy->input_prefix().empty()) + proxy->log("Will read input state from file \"" + proxy->input_prefix() + ".colvars.state\""); proxy->set_output_prefix(std::string(out_name ? out_name : "")); - // Try to extract a restart prefix from a potential restart command LAMMPS_NS::Output *outp = lmp->output; - if ((outp->restart_every_single > 0) && - (outp->restart1 != nullptr)) { - + if ((outp->restart_every_single > 0) && (outp->restart1 != nullptr)) { proxy->set_default_restart_frequency(outp->restart_every_single); proxy->set_restart_output_prefix(std::string(outp->restart1)); - - } else if ((outp->restart_every_double > 0) && - (outp->restart2a != nullptr)) { - + } else if ((outp->restart_every_double > 0) && (outp->restart2a != nullptr)) { proxy->set_default_restart_frequency(outp->restart_every_double); proxy->set_restart_output_prefix(std::string(outp->restart2a)); } } } +/* ---------------------------------------------------------------------- */ void FixColvars::setup(int vflag) { @@ -449,23 +414,18 @@ void FixColvars::setup(int vflag) int tmp = 0; const auto nlocal = atom->nlocal; const auto me = comm->me; - MPI_Status status; MPI_Request request; - if (me == 0) { - setup_io(); - proxy->parse_module_config(); - } - + if (me == 0) setup_io(); + setup_colvars(); init_taglist(); // determine size of comm buffer nme=0; for (i=0; i < num_coords; ++i) { const tagint k = atom->map(taglist[i]); - if ((k >= 0) && (k < nlocal)) - ++nme; + if ((k >= 0) && (k < nlocal)) ++nme; } MPI_Allreduce(&nme,&nmax,1,MPI_INT,MPI_MAX,world); @@ -473,7 +433,6 @@ void FixColvars::setup(int vflag) const double * const * const x = atom->x; const imageint * const image = atom->image; - const double xprd = domain->xprd; const double yprd = domain->yprd; const double zprd = domain->zprd; @@ -482,7 +441,6 @@ void FixColvars::setup(int vflag) const double yz = domain->yz; if (me == 0) { - std::vector &tp = *(proxy->modify_atom_types()); std::vector &cd = *(proxy->modify_atom_positions()); std::vector &of = *(proxy->modify_atom_total_forces()); @@ -491,18 +449,14 @@ void FixColvars::setup(int vflag) // store coordinate data in holding array, clear old forces - for (i=0; imap(taglist[i]); if ((k >= 0) && (k < nlocal)) { - of[i].x = of[i].y = of[i].z = 0.0; - if (unwrap_flag) { const int ix = (image[k] & IMGMASK) - IMGMAX; const int iy = (image[k] >> IMGBITS & IMGMASK) - IMGMAX; const int iz = (image[k] >> IMG2BITS) - IMGMAX; - cd[i].x = x[k][0] + ix * xprd + iy * xy + iz * xz; cd[i].y = x[k][1] + iy * yprd + iz * yz; cd[i].z = x[k][2] + iz * zprd; @@ -511,19 +465,15 @@ void FixColvars::setup(int vflag) cd[i].y = x[k][1]; cd[i].z = x[k][2]; } - if (atom->rmass_flag) { + if (atom->rmass_flag) m[i] = atom->rmass[k]; - } else { + else m[i] = atom->mass[type[k]]; - } - if (atom->q_flag) { - q[i] = atom->q[k]; - } + if (atom->q_flag) q[i] = atom->q[k]; } } // loop over procs to receive and apply remote data - for (i=1; i < comm->nprocs; ++i) { int maxbuf = nmax*size_one; MPI_Irecv(comm_buf, maxbuf, MPI_BYTE, i, 0, world, &request); @@ -531,42 +481,32 @@ void FixColvars::setup(int vflag) MPI_Wait(&request, &status); MPI_Get_count(&status, MPI_BYTE, &ndata); ndata /= size_one; - for (int k=0; ksecond; - tp[j] = comm_buf[k].type; - cd[j].x = comm_buf[k].x; cd[j].y = comm_buf[k].y; cd[j].z = comm_buf[k].z; - m[j] = comm_buf[k].m; q[j] = comm_buf[k].q; - of[j].x = of[j].y = of[j].z = 0.0; } } } } else { // me != 0 - // copy coordinate data into communication buffer - nme = 0; for (i=0; imap(taglist[i]); if ((k >= 0) && (k < nlocal)) { - comm_buf[nme].tag = tag[k]; comm_buf[nme].type = type[k]; - if (unwrap_flag) { const int ix = (image[k] & IMGMASK) - IMGMAX; const int iy = (image[k] >> IMGBITS & IMGMASK) - IMGMAX; const int iz = (image[k] >> IMG2BITS) - IMGMAX; - comm_buf[nme].x = x[k][0] + ix * xprd + iy * xy + iz * xz; comm_buf[nme].y = x[k][1] + iy * yprd + iz * yz; comm_buf[nme].z = x[k][2] + iz * zprd; @@ -575,33 +515,26 @@ void FixColvars::setup(int vflag) comm_buf[nme].y = x[k][1]; comm_buf[nme].z = x[k][2]; } - - if (atom->rmass_flag) { + if (atom->rmass_flag) comm_buf[nme].m = atom->rmass[k]; - } else { + else comm_buf[nme].m = atom->mass[type[k]]; - } - - if (atom->q_flag) { - comm_buf[nme].q = atom->q[k]; - } - + if (atom->q_flag) comm_buf[nme].q = atom->q[k]; ++nme; } } - /* blocking receive to wait until it is our turn to send data. */ + /* blocking receive to wait until it is our turn to send data */ MPI_Recv(&tmp, 0, MPI_INT, 0, 0, world, MPI_STATUS_IGNORE); MPI_Rsend(comm_buf, nme*size_one, MPI_BYTE, 0, 0, world); } // run pre-run setup in colvarproxy - if (me == 0) - proxy->setup(); + if (me == 0) proxy->setup(); // initialize forces - if (utils::strmatch(update->integrate_style,"^verlet") || (update->whichflag == 2)) + if (utils::strmatch(update->integrate_style,"^verlet") || (update->whichflag == 2)) { post_force(vflag); - else { + } else { ((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1); post_force_respa(vflag,nlevels_respa-1,0); ((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1); @@ -610,22 +543,21 @@ void FixColvars::setup(int vflag) /* ---------------------------------------------------------------------- */ /* Main colvars handler: - * Send coodinates and add colvar forces to atoms. */ + * Send coodinates and add colvar forces to atoms. + */ void FixColvars::post_force(int /*vflag*/) { const auto me = comm->me; - - // some housekeeping: update status of the proxy as needed. + // some housekeeping: update status of the proxy as needed if (me == 0) { if (proxy->want_exit()) - error->one(FLERR,"Run aborted on request from colvars module.\n"); + error->one(FLERR, Error::NOLASTLINE, "Run aborted on request from colvars module."); } const tagint * const tag = atom->tag; const double * const * const x = atom->x; double * const * const f = atom->f; const imageint * const image = atom->image; - const double xprd = domain->xprd; const double yprd = domain->yprd; const double zprd = domain->zprd; @@ -634,14 +566,12 @@ void FixColvars::post_force(int /*vflag*/) const double yz = domain->yz; const int nlocal = atom->nlocal; - /* check and potentially grow local communication buffers. */ + /* check and potentially grow local communication buffers */ int i,nmax_new,nme=0; for (i=0; i < num_coords; ++i) { const tagint k = atom->map(taglist[i]); - if ((k >= 0) && (k < nlocal)) - ++nme; + if ((k >= 0) && (k < nlocal)) ++nme; } - MPI_Allreduce(&nme,&nmax_new,1,MPI_INT,MPI_MAX,world); if (nmax_new > nmax) { nmax = nmax_new; @@ -651,23 +581,17 @@ void FixColvars::post_force(int /*vflag*/) MPI_Status status; MPI_Request request; int tmp = 0; - int ndata =0; - + int ndata = 0; if (me == 0) { - std::vector &cd = *(proxy->modify_atom_positions()); - // store coordinate data - for (i=0; imap(taglist[i]); if ((k >= 0) && (k < nlocal)) { - if (unwrap_flag) { const int ix = (image[k] & IMGMASK) - IMGMAX; const int iy = (image[k] >> IMGBITS & IMGMASK) - IMGMAX; const int iz = (image[k] >> IMG2BITS) - IMGMAX; - cd[i].x = x[k][0] + ix * xprd + iy * xy + iz * xz; cd[i].y = x[k][1] + iy * yprd + iz * yz; cd[i].z = x[k][2] + iz * zprd; @@ -687,19 +611,16 @@ void FixColvars::post_force(int /*vflag*/) MPI_Wait(&request, &status); MPI_Get_count(&status, MPI_BYTE, &ndata); ndata /= size_one; - for (int k=0; ksecond; - cd[j].x = comm_buf[k].x; cd[j].y = comm_buf[k].y; cd[j].z = comm_buf[k].z; } } } - } else { // me != 0 /* copy coordinate data into communication buffer */ nme = 0; @@ -707,12 +628,10 @@ void FixColvars::post_force(int /*vflag*/) const tagint k = atom->map(taglist[i]); if ((k >= 0) && (k < nlocal)) { comm_buf[nme].tag = tag[k]; - if (unwrap_flag) { const int ix = (image[k] & IMGMASK) - IMGMAX; const int iy = (image[k] >> IMGBITS & IMGMASK) - IMGMAX; const int iz = (image[k] >> IMG2BITS) - IMGMAX; - comm_buf[nme].x = x[k][0] + ix * xprd + iy * xy + iz * xz; comm_buf[nme].y = x[k][1] + iy * yprd + iz * yz; comm_buf[nme].z = x[k][2] + iz * zprd; @@ -721,17 +640,16 @@ void FixColvars::post_force(int /*vflag*/) comm_buf[nme].y = x[k][1]; comm_buf[nme].z = x[k][2]; } - ++nme; } } - /* blocking receive to wait until it is our turn to send data. */ + /* blocking receive to wait until it is our turn to send data */ MPI_Recv(&tmp, 0, MPI_INT, 0, 0, world, MPI_STATUS_IGNORE); MPI_Rsend(comm_buf, nme*size_one, MPI_BYTE, 0, 0, world); } //////////////////////////////////////////////////////////////////////// - // call our workhorse and retrieve additional information. + // call our workhorse and retrieve additional information if (me == 0) { energy = proxy->compute(); store_forces = proxy->total_forces_enabled(); @@ -743,11 +661,8 @@ void FixColvars::post_force(int /*vflag*/) MPI_Bcast(&store_forces, 1, MPI_INT, 0, world); // broadcast and apply biasing forces - if (me == 0) { - std::vector &fo = *(proxy->modify_atom_applied_forces()); - double *fbuf = force_buf; for (int j=0; j < num_coords; ++j) { *fbuf++ = fo[j].x; @@ -755,8 +670,8 @@ void FixColvars::post_force(int /*vflag*/) *fbuf++ = fo[j].z; } } - MPI_Bcast(force_buf, 3*num_coords, MPI_DOUBLE, 0, world); + MPI_Bcast(force_buf, 3*num_coords, MPI_DOUBLE, 0, world); for (int i=0; i < num_coords; ++i) { const tagint k = atom->map(taglist[i]); if ((k >= 0) && (k < nlocal)) { @@ -768,33 +683,33 @@ void FixColvars::post_force(int /*vflag*/) } /* ---------------------------------------------------------------------- */ + void FixColvars::min_post_force(int vflag) { post_force(vflag); } /* ---------------------------------------------------------------------- */ + void FixColvars::post_force_respa(int vflag, int ilevel, int /*iloop*/) { - /* only process colvar forces on the outmost RESPA level. */ + /* only process colvar forces on the outmost RESPA level */ if (ilevel == nlevels_respa-1) post_force(vflag); } /* ---------------------------------------------------------------------- */ + void FixColvars::end_of_step() { if (store_forces) { - const tagint * const tag = atom->tag; double * const * const f = atom->f; const int nlocal = atom->nlocal; - - /* check and potentially grow local communication buffers. */ + /* check and potentially grow local communication buffers */ int i,nmax_new,nme=0; for (i=0; i < num_coords; ++i) { const tagint k = atom->map(taglist[i]); - if ((k >= 0) && (k < nlocal)) - ++nme; + if ((k >= 0) && (k < nlocal)) ++nme; } MPI_Allreduce(&nme,&nmax_new,1,MPI_INT,MPI_MAX,world); @@ -807,27 +722,21 @@ void FixColvars::end_of_step() MPI_Request request; int tmp = 0; int ndata = 0; - if (comm->me == 0) { - // store old force data std::vector &of = *(proxy->modify_atom_total_forces()); - for (i=0; imap(taglist[i]); if ((k >= 0) && (k < nlocal)) { - auto search = idmap.find(tag[k]); if (search != idmap.end()) { const int j = search->second; - of[j].x = f[k][0]; of[j].y = f[k][1]; of[j].z = f[k][2]; } } } - /* loop over procs to receive remote data */ for (i=1; i < comm->nprocs; ++i) { int maxbuf = nmax*size_one; @@ -836,19 +745,16 @@ void FixColvars::end_of_step() MPI_Wait(&request, &status); MPI_Get_count(&status, MPI_BYTE, &ndata); ndata /= size_one; - for (int k=0; ksecond; - of[j].x = comm_buf[k].x; of[j].y = comm_buf[k].y; of[j].z = comm_buf[k].z; } } } - } else { // me != 0 /* copy total force data into communication buffer */ nme = 0; @@ -862,7 +768,7 @@ void FixColvars::end_of_step() ++nme; } } - /* blocking receive to wait until it is our turn to send data. */ + /* blocking receive to wait until it is our turn to send data */ MPI_Recv(&tmp, 0, MPI_INT, 0, 0, world, MPI_STATUS_IGNORE); MPI_Rsend(comm_buf, nme*size_one, MPI_BYTE, 0, 0, world); } @@ -882,9 +788,7 @@ void FixColvars::write_restart(FILE *fp) fwrite(&len, sizeof(int), 1, fp); fwrite(&len, sizeof(int), 1, fp); fwrite(ms.output_buffer(), 1, len_cv_state, fp); - } else { - error->all(FLERR, "Failed to write Colvars state to binary file"); - } + } else error->all(FLERR, "Failed to write Colvars state to binary file"); } } @@ -896,9 +800,8 @@ void FixColvars::restart(char *buf) // Read the buffer's length, then load it into Colvars starting right past that location int length = *(reinterpret_cast(buf)); auto *colvars_state_buffer = reinterpret_cast(buf + sizeof(int)); - if (proxy->colvars->set_input_state_buffer(length, colvars_state_buffer) != COLVARS_OK) { + if (proxy->colvars->set_input_state_buffer(length, colvars_state_buffer) != COLVARS_OK) error->all(FLERR, "Failed to set the Colvars input state from string buffer"); - } } } @@ -908,9 +811,7 @@ void FixColvars::post_run() { if (comm->me == 0) { proxy->post_run(); - if (lmp->citeme) { - lmp->citeme->add(proxy->colvars->feature_report(1)); - } + if (lmp->citeme) lmp->citeme->add(proxy->colvars->feature_report(1)); } } @@ -922,6 +823,53 @@ double FixColvars::compute_scalar() } /* ---------------------------------------------------------------------- */ + +void FixColvars::setup_colvars() +{ + int sizes_array[2]; + if (comm->me == 0) { + proxy->parse_module_config(); + const auto& variables = *proxy->colvars->variables(); + size_array_rows = variables.size(); + size_array_cols = 0; + for ( int m=0 ; m(variables[m]->value().size()); + size_array_cols = MAX(size_array_cols, variable_size); + } + sizes_array[0] = size_array_rows; + sizes_array[1] = size_array_cols; + } + + MPI_Bcast(sizes_array, 2, MPI_INT, 0, world); + if (comm->me > 0) { + size_array_rows = sizes_array[0]; + size_array_cols = sizes_array[1]; + } +} + +double FixColvars::compute_array(int m, int n) +{ + double value = 0.0; + if (comm->me == 0) { + const auto& variables = *proxy->colvars->variables(); + if (m >= variables.size()) { + error->all(FLERR, Error::NOLASTLINE, "f_{}[{}][{}] out-of-bounds: {} collective variables " + "available.", id, m+1, n+1, variables.size()); + } + const auto& variable = variables[m]->value(); + const auto& name = variables[m]->name; + if (n >= variable.size()) { + error->all(FLERR, Error::NOLASTLINE, "f_{}[{}][{}] out-of-bounds: collective variable {} " + "has size {}.", id, m+1, n+1, name, variable.size()); + } + value = variable[n]; + } + MPI_Bcast(&value, 1, MPI_DOUBLE, 0, world); + return value; +} + +/* ---------------------------------------------------------------------- */ + /* local memory usage. approximately. */ double FixColvars::memory_usage() { diff --git a/src/COLVARS/fix_colvars.h b/src/COLVARS/fix_colvars.h index 40872d5bd9f..152e2b99b76 100644 --- a/src/COLVARS/fix_colvars.h +++ b/src/COLVARS/fix_colvars.h @@ -59,6 +59,7 @@ class FixColvars : public Fix { void end_of_step() override; void post_run() override; double compute_scalar() override; + double compute_array(int, int) override; double memory_usage() override; void write_restart(FILE *) override; @@ -90,7 +91,6 @@ class FixColvars : public Fix { int nlevels_respa; // flag to determine respa levels. int store_forces; // flag to determine whether to store total forces int unwrap_flag; // 1 if atom coords are unwrapped, 0 if not - int init_flag; // 1 if initialized, 0 if not static int instances; // count fix instances, since colvars currently // only supports one instance at a time MPI_Comm root2root; // inter-root communicator for multi-replica support @@ -108,6 +108,8 @@ class FixColvars : public Fix { /// \param arg Array of strings /// \param fix_constructor If false, try Colvars commands if LAMMPS ones fail int parse_fix_arguments(int narg, char **arg, bool fix_constructor = true); + + void setup_colvars(); // update size_array_rows and colname_auto }; } // namespace LAMMPS_NS diff --git a/src/GRAPHICS/dump_image.cpp b/src/GRAPHICS/dump_image.cpp index ec460b99560..492dbca5d49 100644 --- a/src/GRAPHICS/dump_image.cpp +++ b/src/GRAPHICS/dump_image.cpp @@ -321,12 +321,13 @@ DumpImage::DumpImage(LAMMPS *lmp, int narg, char **arg) : else error->all(FLERR, iarg+1, "Dump image ellipsoid only supports color by type, atom, or index"); estyle = utils::inumeric(FLERR,arg[iarg+2],false,lmp); - if ((estyle < 0) || (estyle > 3)) - error->all(FLERR, iarg+2, "Dump image ellipsoid only supports style setting 1, 2, or 3"); + // unless the wireframe setting is requested, we draw rounded triangles + if (estyle !=2) estyle = 1; + elevel = utils::inumeric(FLERR,arg[iarg+3],false,lmp); if (elevel == 0) elevel = 4; // default setting - if (elevel > 6) - error->all(FLERR, iarg+3, "Dump image ellipsoid mesh refinement level {} is too large", elevel); + if ((elevel < 0) || (elevel > 6)) + error->all(FLERR, iarg+3, "Dump image ellipsoid invalid mesh refinement level {}", elevel); ediamvalue = utils::numeric(FLERR,arg[iarg+4],false,lmp); iarg += 5; @@ -1377,7 +1378,7 @@ void DumpImage::create_image() } // render atoms that are ellipsoids - // estyle = 1 for tri only, estyle 2 for wireframe only, estyle 3 for both + // estyle = 1 for tri only, estyle 2 for wireframe only if (ellipsoidflag) { double **x = atom->x; @@ -1409,7 +1410,6 @@ void DumpImage::create_image() } else { color = image->color2rgb("white"); } - savedColors saved; EllipsoidObj e(elevel); if (avec_ellipsoid->bonus_super) { auto *bonus = avec_ellipsoid->bonus_super; @@ -1465,11 +1465,17 @@ void DumpImage::create_image() else if (bodyvec[k] == Graphics::LINE) image->draw_cylinder(&bodyarray[k][0],&bodyarray[k][3],color,bodyarray[k][6],3,opacity); else if (bodyvec[k] == Graphics::TRI) { - // brighten flat surfaces a little bit + // brighten flat surfaces somewhat auto saved = reset_lighting(image, 0.3, 0.8, 0.45, 0.8); - image->draw_triangle(&bodyarray[k][0],&bodyarray[k][3],&bodyarray[k][6],color,opacity); - + // restore previous settings + restore_lighting(saved, image); + } else if (bodyvec[k] == Graphics::TRINORM) { + // brighten surfaces a little bit + auto saved = reset_lighting(image, 0.6, 0.3, 0.5, 0.7); + image->draw_trinorm(&bodyarray[k][0],&bodyarray[k][3],&bodyarray[k][6], + &bodyarray[k][9],&bodyarray[k][12],&bodyarray[k][15], + color,color,color,opacity); // restore previous settings restore_lighting(saved, image); } @@ -1754,17 +1760,18 @@ void DumpImage::create_image() if (!objvec || !objarray) continue; // set color and transparency + double *white = image->color2rgb("white"); opacity = iobj.opacity; if (iobj.colorstyle == TYPE) { itype = static_cast(objarray[i][0] - 1.0) % ntypes + 1; - color = colortype[itype]; + color = (itype > 0) ? colortype[itype] : white; } else if (iobj.colorstyle == ELEMENT) { itype = static_cast(objarray[i][0] - 1.0) % ntypes + 1; - color = colorelement[itype]; + color = (itype > 0) ? colorelement[itype] : white; } else if (iobj.colorstyle == CONSTANT) { color = iobj.rgb; } else { - color = image->color2rgb("white"); + color = white; opacity = 1.0; } @@ -1784,6 +1791,7 @@ void DumpImage::create_image() // @sjplimp for consistency this should be: // image->draw_cylinder(&objarray[i][1],&objarray[i][4],color,iobj.flag2,iobj.flag1); image->draw_cylinder(&objarray[i][1], &objarray[i][4], color, iobj.flag1, 3, opacity); + } else if (objvec[i] == Graphics::TRI) { // don't render surface meshes in 2d if (domain->dimension == 3) { p1 = &objarray[i][1]; @@ -1797,20 +1805,60 @@ void DumpImage::create_image() image->draw_cylinder(p3, p1, color, iobj.flag2, 3, opacity); } } + + } else if (objvec[i] == Graphics::TRINORM) { // don't render surface meshes in 2d + if (domain->dimension == 3) { + double *color2 = nullptr; + double *color3 = nullptr; + if (iobj.colorstyle == TYPE) { + itype = static_cast(objarray[i][1] - 1.0) % ntypes + 1; + color2 = (itype > 0) ? colortype[itype] : white; + itype = static_cast(objarray[i][2] - 1.0) % ntypes + 1; + color3 = (itype > 0) ? colortype[itype] : white; + } else if (iobj.colorstyle == ELEMENT) { + itype = static_cast(objarray[i][1] - 1.0) % ntypes + 1; + color2 = (itype > 0) ? colorelement[itype] : white; + itype = static_cast(objarray[i][2] - 1.0) % ntypes + 1; + color3 = (itype > 0) ? colorelement[itype] : white; + } else if (iobj.colorstyle == CONSTANT) { + color2 = iobj.rgb; + color3 = iobj.rgb; + } else { + color2 = color3 = image->color2rgb("white"); + opacity = 1.0; + } + + p1 = &objarray[i][3]; + p2 = &objarray[i][6]; + p3 = &objarray[i][9]; + if (static_cast(iobj.flag1) % 2) { + image->draw_trinorm(p1, p2, p3, &objarray[i][12], &objarray[i][15], &objarray[i][18], + color, color2, color3, opacity); + } else { + image->draw_cylinder(p1, p2, color, iobj.flag2, 3, opacity); + image->draw_cylinder(p2, p3, color, iobj.flag2, 3, opacity); + image->draw_cylinder(p3, p1, color, iobj.flag2, 3, opacity); + } + } + } else if (objvec[i] == Graphics::CYLINDER) { image->draw_cylinder(&objarray[i][1], &objarray[i][4], color, objarray[i][7] + iobj.flag2, (int) iobj.flag1, opacity); + } else if (objvec[i] == Graphics::TRIANGLE) { image->draw_triangle(&objarray[i][1], &objarray[i][4], &objarray[i][7], color, opacity); + } else if (objvec[i] == Graphics::ARROW) { ArrowObj a(objarray[i][9]); a.draw(image, color, &objarray[i][1], objarray[i][7] + iobj.flag1, &objarray[i][4], objarray[i][8] + iobj.flag2, opacity); + } else if (objvec[i] == Graphics::CONE) { ConeObj c(1.0, objarray[i][7] + iobj.flag2, objarray[i][8] + iobj.flag2, (int) objarray[i][9]); c.draw(image, vec3{objarray[i][1], objarray[i][2], objarray[i][3]}, vec3{objarray[i][4], objarray[i][5], objarray[i][6]}, color, opacity); + } else if (objvec[i] == Graphics::PIXMAP) { // get pointer to pixmap buffer and get background transparency color const auto *pixmap = (const unsigned char *) ubuf(objarray[i][6]).i; // NOLINT @@ -1821,6 +1869,7 @@ void DumpImage::create_image() else // coordinates are in image coordinates, ignore z image->draw_pixmap((int) objarray[i][1], (int) objarray[i][2], (int) objarray[i][4], (int) objarray[i][5], pixmap, transcolor, objarray[i][10], opacity); + } else if (objvec[i] == Graphics::BOND) { int type1 = static_cast(objarray[i][0] - 1.0) % ntypes + 1; int type2 = static_cast(objarray[i][1] - 1.0) % ntypes + 1; diff --git a/src/GRAPHICS/fix_graphics_isosurface.cpp b/src/GRAPHICS/fix_graphics_isosurface.cpp index bbc16bfd04e..f55053472d6 100644 --- a/src/GRAPHICS/fix_graphics_isosurface.cpp +++ b/src/GRAPHICS/fix_graphics_isosurface.cpp @@ -56,11 +56,14 @@ constexpr int GRIDEXTRA = 4; using vec3 = std::array; using triangle = struct { std::array triangle; - int type; + std::array normals; + std::array type; }; using gridcell = struct { vec3 pos[8]; double iso[8]; + vec3 grad[8]; + int type[8]; }; inline vec3 operator-(const vec3 &a, const vec3 &b) @@ -68,16 +71,48 @@ inline vec3 operator-(const vec3 &a, const vec3 &b) return {a[0] - b[0], a[1] - b[1], a[2] - b[2]}; } -// get vertex position for a grid cell edge by interpolating between -// the two corners based on their iso values -void get_vertex(const gridcell &g, int c1, int c2, vec3 &vert) +// compute the gradient at a grid point using central differences (clamped at boundaries) +void compute_gradient(double ***isogrid, int cx, int cy, int cz, int nx, int ny, int nz, vec3 &grad) +{ + int xm = (cx > 0) ? cx - 1 : 0; + int xp = (cx < nx - 1) ? cx + 1 : nx - 1; + int ym = (cy > 0) ? cy - 1 : 0; + int yp = (cy < ny - 1) ? cy + 1 : ny - 1; + int zm = (cz > 0) ? cz - 1 : 0; + int zp = (cz < nz - 1) ? cz + 1 : nz - 1; + grad[0] = isogrid[xp][cy][cz] - isogrid[xm][cy][cz]; + grad[1] = isogrid[cx][yp][cz] - isogrid[cx][ym][cz]; + grad[2] = isogrid[cx][cy][zp] - isogrid[cx][cy][zm]; +} + +// get vertex position and interpolated normal for a grid cell edge +// by interpolating between the two corners based on their iso values +void get_vertex(const gridcell &g, int c1, int c2, vec3 &vert, vec3 &norm, int &type) { const double diff = g.iso[c2] - g.iso[c1]; const double fraction = (fabs(diff) > 0.0) ? -g.iso[c1] / diff : 0.0; - vert[0] = g.pos[c1][0] + fraction * (g.pos[c2][0] - g.pos[c1][0]); - vert[1] = g.pos[c1][1] + fraction * (g.pos[c2][1] - g.pos[c1][1]); - vert[2] = g.pos[c1][2] + fraction * (g.pos[c2][2] - g.pos[c1][2]); + // assign type closest to vertex, if available + if (g.type[c1] && !g.type[c2]) { + type = g.type[c1]; + } else if (!g.type[c1] && g.type[c2]) { + type = g.type[c2]; + } else if (g.type[c1] && g.type[c2]) { + type = (fraction < 0.5) ? g.type[c1] : g.type[c2]; + } else { + type = 0; + } + + for (int d = 0; d < 3; ++d) { + vert[d] = g.pos[c1][d] + fraction * (g.pos[c2][d] - g.pos[c1][d]); + norm[d] = g.grad[c1][d] + fraction * (g.grad[c2][d] - g.grad[c1][d]); + } + double len = sqrt(norm[0] * norm[0] + norm[1] * norm[1] + norm[2] * norm[2]); + if (len > 0.0) { + norm[0] /= len; + norm[1] /= len; + norm[2] /= len; + } } // spread out atom data across the grid @@ -810,8 +845,26 @@ void FixGraphicsIsosurface::end_of_step() g.pos[5] = {gx+delta, gy, gz+delta}; g.pos[7] = {gx, gy+delta, gz+delta}; g.pos[6] = {gx+delta, gy+delta, gz+delta}; + g.type[0] = typegrid[ix ][iy ][iz ]; + g.type[1] = typegrid[ix+1][iy ][iz ]; + g.type[3] = typegrid[ix ][iy+1][iz ]; + g.type[2] = typegrid[ix+1][iy+1][iz ]; + g.type[4] = typegrid[ix ][iy ][iz+1]; + g.type[5] = typegrid[ix+1][iy ][iz+1]; + g.type[7] = typegrid[ix ][iy+1][iz+1]; + g.type[6] = typegrid[ix+1][iy+1][iz+1]; // clang-format on + // compute gradient at each corner for smooth normals + compute_gradient(isogrid, ix, iy, iz, nx, ny, nz, g.grad[0]); + compute_gradient(isogrid, ix + 1, iy, iz, nx, ny, nz, g.grad[1]); + compute_gradient(isogrid, ix + 1, iy + 1, iz, nx, ny, nz, g.grad[2]); + compute_gradient(isogrid, ix, iy + 1, iz, nx, ny, nz, g.grad[3]); + compute_gradient(isogrid, ix, iy, iz + 1, nx, ny, nz, g.grad[4]); + compute_gradient(isogrid, ix + 1, iy, iz + 1, nx, ny, nz, g.grad[5]); + compute_gradient(isogrid, ix + 1, iy + 1, iz + 1, nx, ny, nz, g.grad[6]); + compute_gradient(isogrid, ix, iy + 1, iz + 1, nx, ny, nz, g.grad[7]); + // determine edge table index int idx = 0; if (g.iso[0] < 0.0) idx |= 1; @@ -826,27 +879,32 @@ void FixGraphicsIsosurface::end_of_step() // gridcube is not crossed by isosurface if (EDGETABLE[idx] == 0) continue; - // compute the possible 12 triangle vertices + // compute the possible 12 triangle vertices and normals std::array vertices; - if (EDGETABLE[idx] & 1) get_vertex(g, 0, 1, vertices[0]); - if (EDGETABLE[idx] & 2) get_vertex(g, 1, 2, vertices[1]); - if (EDGETABLE[idx] & 4) get_vertex(g, 2, 3, vertices[2]); - if (EDGETABLE[idx] & 8) get_vertex(g, 3, 0, vertices[3]); - if (EDGETABLE[idx] & 16) get_vertex(g, 4, 5, vertices[4]); - if (EDGETABLE[idx] & 32) get_vertex(g, 5, 6, vertices[5]); - if (EDGETABLE[idx] & 64) get_vertex(g, 6, 7, vertices[6]); - if (EDGETABLE[idx] & 128) get_vertex(g, 7, 4, vertices[7]); - if (EDGETABLE[idx] & 256) get_vertex(g, 0, 4, vertices[8]); - if (EDGETABLE[idx] & 512) get_vertex(g, 1, 5, vertices[9]); - if (EDGETABLE[idx] & 1024) get_vertex(g, 2, 6, vertices[10]); - if (EDGETABLE[idx] & 2048) get_vertex(g, 3, 7, vertices[11]); + std::array vnormals; + std::array vtypes; + if (EDGETABLE[idx] & 1) get_vertex(g, 0, 1, vertices[0], vnormals[0], vtypes[0]); + if (EDGETABLE[idx] & 2) get_vertex(g, 1, 2, vertices[1], vnormals[1], vtypes[1]); + if (EDGETABLE[idx] & 4) get_vertex(g, 2, 3, vertices[2], vnormals[2], vtypes[2]); + if (EDGETABLE[idx] & 8) get_vertex(g, 3, 0, vertices[3], vnormals[3], vtypes[3]); + if (EDGETABLE[idx] & 16) get_vertex(g, 4, 5, vertices[4], vnormals[4], vtypes[4]); + if (EDGETABLE[idx] & 32) get_vertex(g, 5, 6, vertices[5], vnormals[5], vtypes[5]); + if (EDGETABLE[idx] & 64) get_vertex(g, 6, 7, vertices[6], vnormals[6], vtypes[6]); + if (EDGETABLE[idx] & 128) get_vertex(g, 7, 4, vertices[7], vnormals[7], vtypes[7]); + if (EDGETABLE[idx] & 256) get_vertex(g, 0, 4, vertices[8], vnormals[8], vtypes[8]); + if (EDGETABLE[idx] & 512) get_vertex(g, 1, 5, vertices[9], vnormals[9], vtypes[9]); + if (EDGETABLE[idx] & 1024) get_vertex(g, 2, 6, vertices[10], vnormals[10], vtypes[10]); + if (EDGETABLE[idx] & 2048) get_vertex(g, 3, 7, vertices[11], vnormals[11], vtypes[11]); // compute the triangles for this grid cell and add them to the list for (int i = 0; TRITABLE[idx][i] != -1; i += 3) triangles.emplace_back( triangle{{vertices[TRITABLE[idx][i]], vertices[TRITABLE[idx][i + 1]], vertices[TRITABLE[idx][i + 2]]}, - typegrid[ix][iy][iz]}); + {vnormals[TRITABLE[idx][i]], vnormals[TRITABLE[idx][i + 1]], + vnormals[TRITABLE[idx][i + 2]]}, + {vtypes[TRITABLE[idx][i]], vtypes[TRITABLE[idx][i + 1]], + vtypes[TRITABLE[idx][i + 2]]}}); } } } @@ -858,7 +916,7 @@ void FixGraphicsIsosurface::end_of_step() memory->destroy(imgobjs); memory->destroy(imgparms); memory->create(imgobjs, numobjs, "fix_graphics:imgobjs"); - memory->create(imgparms, numobjs, 10, "fix_graphics:imgparms"); + memory->create(imgparms, numobjs, 21, "fix_graphics:imgparms"); int n = 0; for (const auto &tri : triangles) { @@ -868,17 +926,28 @@ void FixGraphicsIsosurface::end_of_step() for (int j = 0; j < 3; ++j) if ((tri.triangle[i][j] < sublo[j]) || (tri.triangle[i][j] > subhi[j])) addme = false; if (addme) { - imgobjs[n] = Graphics::TRI; - imgparms[n][0] = tri.type; - imgparms[n][1] = tri.triangle[0][0]; - imgparms[n][2] = tri.triangle[0][1]; - imgparms[n][3] = tri.triangle[0][2]; - imgparms[n][4] = tri.triangle[1][0]; - imgparms[n][5] = tri.triangle[1][1]; - imgparms[n][6] = tri.triangle[1][2]; - imgparms[n][7] = tri.triangle[2][0]; - imgparms[n][8] = tri.triangle[2][1]; - imgparms[n][9] = tri.triangle[2][2]; + imgobjs[n] = Graphics::TRINORM; + imgparms[n][0] = tri.type[0]; + imgparms[n][1] = tri.type[1]; + imgparms[n][2] = tri.type[2]; + imgparms[n][3] = tri.triangle[0][0]; + imgparms[n][4] = tri.triangle[0][1]; + imgparms[n][5] = tri.triangle[0][2]; + imgparms[n][6] = tri.triangle[1][0]; + imgparms[n][7] = tri.triangle[1][1]; + imgparms[n][8] = tri.triangle[1][2]; + imgparms[n][9] = tri.triangle[2][0]; + imgparms[n][10] = tri.triangle[2][1]; + imgparms[n][11] = tri.triangle[2][2]; + imgparms[n][12] = tri.normals[0][0]; + imgparms[n][13] = tri.normals[0][1]; + imgparms[n][14] = tri.normals[0][2]; + imgparms[n][15] = tri.normals[1][0]; + imgparms[n][16] = tri.normals[1][1]; + imgparms[n][17] = tri.normals[1][2]; + imgparms[n][18] = tri.normals[2][0]; + imgparms[n][19] = tri.normals[2][1]; + imgparms[n][20] = tri.normals[2][2]; ++n; } } diff --git a/src/GRAPHICS/image.cpp b/src/GRAPHICS/image.cpp index 7361d6753a5..19d9da30e28 100644 --- a/src/GRAPHICS/image.cpp +++ b/src/GRAPHICS/image.cpp @@ -578,8 +578,8 @@ void Image::clear() int blue = background[2]; if (background2[0] < 0.0) { - for (int iy = 0; iy < height; iy ++) { - for (int ix = 0; ix < width; ix ++) { + for (int iy = 0; iy < height; ++iy) { + for (int ix = 0; ix < width; ++ix) { imageBuffer[iy * width * 3 + ix * 3 + 0] = red; imageBuffer[iy * width * 3 + ix * 3 + 1] = green; imageBuffer[iy * width * 3 + ix * 3 + 2] = blue; @@ -587,12 +587,12 @@ void Image::clear() } } } else { - for (int iy = 0; iy < height; iy ++) { + for (int iy = 0; iy < height; ++iy) { double fraction = (double) iy / (double) height; red = static_cast(fraction * background2[0] + (1.0 - fraction) * background[0]); green = static_cast(fraction * background2[1] + (1.0 - fraction) * background[1]); blue = static_cast(fraction * background2[2] + (1.0 - fraction) * background[2]); - for (int ix = 0; ix < width; ix ++) { + for (int ix = 0; ix < width; ++ix) { imageBuffer[iy * width * 3 + ix * 3 + 0] = red; imageBuffer[iy * width * 3 + ix * 3 + 1] = green; imageBuffer[iy * width * 3 + ix * 3 + 2] = blue; @@ -844,6 +844,8 @@ void Image::draw_pixmap(const double *x, int pixwidth, int pixheight, const unsi void Image::draw_pixmap(int xc, int yc, int pixwidth, int pixheight, const unsigned char *pixmap, double *transcolor, double scale, double opacity, double dist) { + if (opacity <= 0.0) return; // nothing to do + const unsigned char *mypixmap = pixmap; unsigned char *npixmap = nullptr; @@ -874,7 +876,7 @@ void Image::draw_pixmap(int xc, int yc, int pixwidth, int pixheight, const unsig int iy = ylo + j - pixheight/2; int ix = xlo + i - pixwidth/2; if (iy < 0 || iy >= height || ix < 0 || ix >= width) continue; - if (((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) || (opacity <= 0.0)) + if ((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) continue; // get color of pixel at x/y position of pixmap @@ -940,7 +942,7 @@ void Image::draw_sphere(const double *x, const double *surfaceColor, double diam for (int iy = yc - pixelRadius; iy <= yc + pixelRadius; iy++) { for (int ix = xc - pixelRadius; ix <= xc + pixelRadius; ix++) { if (iy < 0 || iy >= height || ix < 0 || ix >= width) continue; - if (((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) || (opacity <= 0.0)) + if ((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) continue; double surface[3]; @@ -1005,10 +1007,10 @@ void Image::draw_cube(const double *x, const double *surfaceColor, double diamet xc += width / 2; yc += height / 2; - for (int iy = yc - pixelHalfWidth; iy <= yc + pixelHalfWidth; iy ++) { - for (int ix = xc - pixelHalfWidth; ix <= xc + pixelHalfWidth; ix ++) { + for (int iy = yc - pixelHalfWidth; iy <= yc + pixelHalfWidth; ++iy) { + for (int ix = xc - pixelHalfWidth; ix <= xc + pixelHalfWidth; ++ix) { if (iy < 0 || iy >= height || ix < 0 || ix >= width) continue; - if (((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) || (opacity <= 0.0)) + if ((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) continue; double sy = ((iy - yc) - height_error) * pixelWidth; @@ -1021,7 +1023,7 @@ void Image::draw_cube(const double *x, const double *surfaceColor, double diamet // only render up to 3 which are facing the camera // these checks short circuit a dot product, testing for > 0 - for (int dim = 0; dim < 3; dim ++) { + for (int dim = 0; dim < 3; ++dim) { if (camDir[dim] > 0) { // positive faces camera t = (radius - surface[dim]) / camDir[dim]; normal[0] = camRight[dim]; @@ -1161,10 +1163,10 @@ void Image::draw_cylinder(const double *x, const double *y, double a = camLDir[0] * camLDir[0]; - for (int iy = yc - pixelHalfHeight; iy <= yc + pixelHalfHeight; iy ++) { - for (int ix = xc - pixelHalfWidth; ix <= xc + pixelHalfWidth; ix ++) { + for (int iy = yc - pixelHalfHeight; iy <= yc + pixelHalfHeight; ++iy) { + for (int ix = xc - pixelHalfWidth; ix <= xc + pixelHalfWidth; ++ix) { if (iy < 0 || iy >= height || ix < 0 || ix >= width) continue; - if (((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) || (opacity <= 0.0)) + if ((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) continue; double surface[3], normal[3]; @@ -1292,10 +1294,10 @@ void Image::draw_triangle(const double *x, const double *y, const double *z, int pixelDown = static_cast(ceil(pixelDownFull)); int pixelUp = static_cast(ceil(pixelUpFull)); - for (int iy = yc - pixelDown; iy <= yc + pixelUp; iy ++) { - for (int ix = xc - pixelLeft; ix <= xc + pixelRight; ix ++) { + for (int iy = yc - pixelDown; iy <= yc + pixelUp; ++iy) { + for (int ix = xc - pixelLeft; ix <= xc + pixelRight; ++ix) { if (iy < 0 || iy >= height || ix < 0 || ix >= width) continue; - if (((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) || (opacity <= 0.0)) + if ((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) continue; double sy = ((iy - yc) - height_error) * pixelWidth; @@ -1348,10 +1350,172 @@ void Image::draw_triangle(const double *x, const double *y, const double *z, } } +/* ---------------------------------------------------------------------- + draw triangle with 3 corner points x,y,z + 3 normals nx,ny,nz and 3 colors cx,cy,cz, one per corner + normal and color for each pixel are interpolated using barycentric coords +------------------------------------------------------------------------- */ + +void Image::draw_trinorm(const double *x, const double *y, const double *z, + const double *nx, const double *ny, const double *nz, + const double *cx, const double *cy, const double *cz, + const double opacity) +{ + if (opacity <= 0.0) return; // nothing to do + + double d1[3], d1len, d2[3], d2len, normal[3], invndotd; + double xlocal[3], ylocal[3], zlocal[3]; + double surface[3]; + double depth; + + xlocal[0] = x[0] - xctr; + xlocal[1] = x[1] - yctr; + xlocal[2] = x[2] - zctr; + ylocal[0] = y[0] - xctr; + ylocal[1] = y[1] - yctr; + ylocal[2] = y[2] - zctr; + zlocal[0] = z[0] - xctr; + zlocal[1] = z[1] - yctr; + zlocal[2] = z[2] - zctr; + + MathExtra::sub3(xlocal, ylocal, d1); + d1len = MathExtra::len3(d1); + if (d1len == 0.0) return; // zero length of triangle side + MathExtra::scale3(1.0 / d1len, d1); + + MathExtra::sub3(zlocal, ylocal, d2); + d2len = MathExtra::len3(d2); + if (d2len == 0.0) return; // zero length of triangle side + MathExtra::scale3(1.0 / d2len, d2); + + MathExtra::cross3(d1, d2, normal); + MathExtra::norm3(normal); + invndotd = MathExtra::dot3(normal, camDir); + + // triangle parallel to camera and thus invisible + if (invndotd == 0.0) return; + invndotd = 1.0 / invndotd; + + double r[3],u[3]; + + r[0] = MathExtra::dot3(camRight,xlocal); + r[1] = MathExtra::dot3(camRight,ylocal); + r[2] = MathExtra::dot3(camRight,zlocal); + + u[0] = MathExtra::dot3(camUp,xlocal); + u[1] = MathExtra::dot3(camUp,ylocal); + u[2] = MathExtra::dot3(camUp,zlocal); + + double rasterLeft = r[0] - MIN(r[0],MIN(r[1],r[2])); + double rasterRight = MAX(r[0],MAX(r[1],r[2])) - r[0]; + double rasterDown = u[0] - MIN(u[0],MIN(u[1],u[2])); + double rasterUp = MAX(u[0],MAX(u[1],u[2])) - u[0]; + + double xmap = MathExtra::dot3(camRight,xlocal); + double ymap = MathExtra::dot3(camUp,xlocal); + double dist = MathExtra::dot3(camPos,camDir) - MathExtra::dot3(xlocal,camDir); + + double pixelWidth = (tanPerPixel > 0) ? tanPerPixel * dist : -tanPerPixel / zoom; + double xf = xmap / pixelWidth; + double yf = ymap / pixelWidth; + int xc = static_cast(floor(xf)); + int yc = static_cast(floor(yf)); + double width_error = xf - xc; + double height_error = yf - yc; + + // shift 0,0 to screen center (vs lower left) + + xc += width / 2; + yc += height / 2; + + double pixelLeftFull = rasterLeft / pixelWidth; + double pixelRightFull = rasterRight / pixelWidth; + double pixelDownFull = rasterDown / pixelWidth; + double pixelUpFull = rasterUp / pixelWidth; + int pixelLeft = static_cast(ceil(pixelLeftFull)); + int pixelRight = static_cast(ceil(pixelRightFull)); + int pixelDown = static_cast(ceil(pixelDownFull)); + int pixelUp = static_cast(ceil(pixelUpFull)); + + // precompute for barycentric coordinates + + double v0[3], v1[3]; + MathExtra::sub3(ylocal, xlocal, v0); + MathExtra::sub3(zlocal, xlocal, v1); + double d00 = MathExtra::dot3(v0, v0); + double d01 = MathExtra::dot3(v0, v1); + double d11 = MathExtra::dot3(v1, v1); + double denom = d00 * d11 - d01 * d01; + if (denom == 0.0) return; // degenerate triangle + double inv_denom = 1.0 / denom; + + for (int iy = yc - pixelDown; iy <= yc + pixelUp; ++iy) { + for (int ix = xc - pixelLeft; ix <= xc + pixelRight; ++ix) { + if (iy < 0 || iy >= height || ix < 0 || ix >= width) continue; + if ((opacity < 1.0) && (transthresh[ix % TRANK][iy % TRANK] > opacity)) + continue; + + double sy = ((iy - yc) - height_error) * pixelWidth; + double sx = ((ix - xc) - width_error) * pixelWidth; + surface[0] = camRight[0] * sx + camUp[0] * sy; + surface[1] = camRight[1] * sx + camUp[1] * sy; + surface[2] = camRight[2] * sx + camUp[2] * sy; + + double t = -MathExtra::dot3(normal,surface) * invndotd; + + // compute point on triangle plane + + double p[3]; + p[0] = xlocal[0] + surface[0] + camDir[0] * t; + p[1] = xlocal[1] + surface[1] + camDir[1] * t; + p[2] = xlocal[2] + surface[2] + camDir[2] * t; + + // compute barycentric coordinates + + double v2[3]; + MathExtra::sub3(p, xlocal, v2); + double d20 = MathExtra::dot3(v2, v0); + double d21 = MathExtra::dot3(v2, v1); + double lambda_y = (d11 * d20 - d01 * d21) * inv_denom; + double lambda_z = (d00 * d21 - d01 * d20) * inv_denom; + double lambda_x = 1.0 - lambda_y - lambda_z; + + // point outside triangle if any barycentric coordinate is negative + + if ((lambda_x < 0.0) || (lambda_y < 0.0) || (lambda_z < 0.0)) continue; + + // interpolate normal from per-vertex normals + + double inormal[3]; + inormal[0] = lambda_x * nx[0] + lambda_y * ny[0] + lambda_z * nz[0]; + inormal[1] = lambda_x * nx[1] + lambda_y * ny[1] + lambda_z * nz[1]; + inormal[2] = lambda_x * nx[2] + lambda_y * ny[2] + lambda_z * nz[2]; + MathExtra::norm3(inormal); + + // interpolate color from per-vertex colors + + double icolor[3]; + icolor[0] = lambda_x * cx[0] + lambda_y * cy[0] + lambda_z * cz[0]; + icolor[1] = lambda_x * cx[1] + lambda_y * cy[1] + lambda_z * cz[1]; + icolor[2] = lambda_x * cx[2] + lambda_y * cy[2] + lambda_z * cz[2]; + + // transform interpolated normal to camera space + + double cNormal[3]; + cNormal[0] = MathExtra::dot3(camRight, inormal); + cNormal[1] = MathExtra::dot3(camUp, inormal); + cNormal[2] = MathExtra::dot3(camDir, inormal); + + depth = dist - t; + draw_pixel(ix, iy, depth, cNormal, icolor); + } + } +} + /* ---------------------------------------------------------------------- */ -void Image::draw_pixel(int ix, int iy, double depth, - const double *surface, const double *surfaceColor) +void Image::draw_pixel(int ix, int iy, double depth, const double *surface, + const double *surfaceColor) { if (!std::isfinite(depth)) return; // reject pixels with invalid depth buffer values if (!surfaceColor) return; // reject pixels with an invalid color @@ -1423,7 +1587,7 @@ void Image::compute_SSAO() int pixelstart = static_cast(1.0*me/nprocs * npixels); int pixelstop = static_cast(1.0*(me+1)/nprocs * npixels); - // file buffer with random numbers to avoid race conditions + // fill buffer with random numbers to avoid race conditions auto *uniform = new double[pixelstop - pixelstart]; for (int i = 0; i < pixelstop - pixelstart; ++i) uniform[i] = random->uniform(); @@ -1444,7 +1608,7 @@ void Image::compute_SSAO() double mytheta = uniform[index - pixelstart] * SSAOJitter; double ao = 0.0; - for (int s = 0; s < SSAOSamples; s ++) { + for (int s = 0; s < SSAOSamples; ++s) { double hx = cos(mytheta); double hy = sin(mytheta); mytheta += delTheta; diff --git a/src/GRAPHICS/image.h b/src/GRAPHICS/image.h index ac87d2b5cb1..1b9a191127f 100644 --- a/src/GRAPHICS/image.h +++ b/src/GRAPHICS/image.h @@ -57,6 +57,9 @@ class Image : protected Pointers { double opacity = 1.0); void draw_triangle(const double *, const double *, const double *, const double *, double opacity = 1.0); + void draw_trinorm(const double *, const double *, const double *, const double *, const double *, + const double *, const double *, const double *, const double *, + double opacity = 1.0); void draw_box(double (*)[3], double, double opacity = 1.0); void draw_axes(double (*)[3], double, double opacity = 1.0); void draw_pixmap(const double *, int, int, const unsigned char *, double *, double scale = 1.0, diff --git a/src/GRAPHICS/image_objects.cpp b/src/GRAPHICS/image_objects.cpp index 9a8c9eb8bf5..ee012a92fb1 100644 --- a/src/GRAPHICS/image_objects.cpp +++ b/src/GRAPHICS/image_objects.cpp @@ -103,6 +103,33 @@ std::vector transform(const std::vector &triangles, const ve } return newtriangles; } + +// re-orient list of per-vertex normals to point along "dir" (rotation only, no scaling/translation) +std::vector transform_normals(const std::vector &norms, const vec3 &dir) +{ + std::vector newnormals; + + // normalize direction vector + vec3 u = vec3norm(dir); + + // vector is too short. can't draw anything. return empty list + if (vec3len(u) < SMALL) return newnormals; + + // construct orthonormal basis around direction vector + vec3 a = (std::fabs(u[0]) < 0.9) ? vec3{1.0, 0.0, 0.0} : vec3{0.0, 1.0, 0.0}; + vec3 v = vec3norm(vec3cross(u, a)); + vec3 w = vec3cross(u, v); + + // now process the template normals and return the rotated list + newnormals.reserve(norms.size()); + for (const auto &n : norms) { + vec3 n1 = vec3norm((n[0][0] * u) + (n[0][1] * v) + (n[0][2] * w)); + vec3 n2 = vec3norm((n[1][0] * u) + (n[1][1] * v) + (n[1][2] * w)); + vec3 n3 = vec3norm((n[2][0] * u) + (n[2][1] * v) + (n[2][2] * w)); + newnormals.push_back({n1, n2, n3}); + } + return newnormals; +} } // namespace // construct an arrow from primitives, mostly triangles and a cylinder, and draw them @@ -124,6 +151,7 @@ ArrowObj::ArrowObj(double _tipl, double _tipw, double radius, int res) : tiplength(_tipl), tipwidth(_tipw), diameter(2.0 * radius), resolution(res) { triangles.clear(); + normals.clear(); // we want at least 2 iterations. if (res < 2) return; @@ -142,8 +170,17 @@ ArrowObj::ArrowObj(double _tipl, double _tipw, double radius, int res) : p1[2] = (radius + tipwidth) * cos(radinc * i - RADOVERLAP); p2[1] = (radius + tipwidth) * sin(radinc * (i + 1)); p2[2] = (radius + tipwidth) * cos(radinc * (i + 1)); + // tip cone: radial normals at rim, + // use mid-point rim normal with a little tilt for a mostly "pointy" tip + vec3 n1 = vec3norm({0.0, p2[1], p2[2]}); + vec3 n2 = vec3norm({0.25, 0.5 * (p1[1] + p2[1]), 0.5 * (p1[2] + p2[2])}); + vec3 n3 = vec3norm({0.0, p1[1], p1[2]}); triangles.emplace_back(triangle{p2, tip, p1}); + normals.emplace_back(triangle{n1, n2, n3}); + // flat disc at base of tip: normal points in -x direction + vec3 nflat = {-1.0, 0.0, 0.0}; triangles.emplace_back(triangle{p2, mid, p1}); + normals.emplace_back(triangle{nflat, nflat, nflat}); } // construct list of triangles for the cap at the bottom @@ -155,7 +192,10 @@ ArrowObj::ArrowObj(double _tipl, double _tipw, double radius, int res) : p1[2] = radius * cos(radinc * i - RADOVERLAP); p2[1] = radius * sin(radinc * (i + 1)); p2[2] = radius * cos(radinc * (i + 1)); + // bottom cap: normal points in -x direction + vec3 nflat = {-1.0, 0.0, 0.0}; triangles.emplace_back(triangle{p2, bot, p1}); + normals.emplace_back(triangle{nflat, nflat, nflat}); } } @@ -173,13 +213,16 @@ void ArrowObj::draw(Image *img, const double *color, const double *center, doubl double wscale = scale / diameter; auto arrow = transform(triangles, dir, {center[0], center[1], center[2]}, lscale, wscale); + auto norms = transform_normals(normals, dir); // nothing to draw if (!arrow.size()) return; - // draw tip and bottom from list of triangles - for (const auto &tri : arrow) - img->draw_triangle(tri[0].data(), tri[1].data(), tri[2].data(), color, opacity); + // draw tip and bottom from list of triangles with per-vertex normals + for (size_t i = 0; i < arrow.size(); ++i) + img->draw_trinorm(arrow[i][0].data(), arrow[i][1].data(), arrow[i][2].data(), + norms[i][0].data(), norms[i][1].data(), norms[i][2].data(), color, color, + color, opacity); // infer cylinder end points for body from list of triangles // (middle corner of all triangles in the the second and last set of triangles) @@ -203,13 +246,16 @@ void ArrowObj::draw(Image *img, const double *color, const double *bottom, const double wscale = scale / diameter; auto arrow = transform(triangles, dir, {center[0], center[1], center[2]}, lscale, wscale); + auto norms = transform_normals(normals, dir); // nothing to draw if (!arrow.size()) return; - // draw tip and bottom from list of triangles - for (const auto &tri : arrow) - img->draw_triangle(tri[0].data(), tri[1].data(), tri[2].data(), color, opacity); + // draw tip and bottom from list of triangles with per-vertex normals + for (size_t i = 0; i < arrow.size(); ++i) + img->draw_trinorm(arrow[i][0].data(), arrow[i][1].data(), arrow[i][2].data(), + norms[i][0].data(), norms[i][1].data(), norms[i][2].data(), color, color, + color, opacity); // infer cylinder end points for body from list of triangles // (middle corner of all triangles in the the second and last set of triangles) @@ -239,6 +285,7 @@ void ArrowObj::draw(Image *img, const double *color, const double *bottom, const ConeObj::ConeObj(double length, double topwidth, double botwidth, int flag, int resolution) { triangles.clear(); + normals.clear(); // we want at least 2 iterations. if (resolution < 2) return; @@ -260,6 +307,10 @@ ConeObj::ConeObj(double length, double topwidth, double botwidth, int flag, int vec3 p1bot{bot}; vec3 p2bot{bot}; + // cap normal directions + vec3 ntop = {1.0, 0.0, 0.0}; + vec3 nbot = {-1.0, 0.0, 0.0}; + for (int i = 0; i < resolution; ++i) { if (topwidth > 0.0) { p1top[1] = topwidth * sin(radinc * i - RADOVERLAP); @@ -267,7 +318,10 @@ ConeObj::ConeObj(double length, double topwidth, double botwidth, int flag, int p2top[1] = topwidth * sin(radinc * (i + 1)); p2top[2] = topwidth * cos(radinc * (i + 1)); // cap on top - if (dotop) triangles.emplace_back(triangle{p1top, top, p2top}); + if (dotop) { + triangles.emplace_back(triangle{p1top, top, p2top}); + normals.emplace_back(triangle{ntop, ntop, ntop}); + } } if (botwidth > 0.0) { p1bot[1] = botwidth * sin(radinc * i - RADOVERLAP); @@ -275,12 +329,25 @@ ConeObj::ConeObj(double length, double topwidth, double botwidth, int flag, int p2bot[1] = botwidth * sin(radinc * (i + 1)); p2bot[2] = botwidth * cos(radinc * (i + 1)); // cap at bottom - if (dobot) triangles.emplace_back(triangle{p1bot, bot, p2bot}); + if (dobot) { + triangles.emplace_back(triangle{p1bot, bot, p2bot}); + normals.emplace_back(triangle{nbot, nbot, nbot}); + } } - // side + // side: use radial normals for smooth shading if (doside) { - if (topwidth > 0.0) triangles.emplace_back(triangle{p1top, p1bot, p2top}); - if (botwidth > 0.0) triangles.emplace_back(triangle{p1bot, p2bot, p2top}); + vec3 n1top = vec3norm({0.0, p1top[1], p1top[2]}); + vec3 n2top = vec3norm({0.0, p2top[1], p2top[2]}); + vec3 n1bot = vec3norm({0.0, p1bot[1], p1bot[2]}); + vec3 n2bot = vec3norm({0.0, p2bot[1], p2bot[2]}); + if (topwidth > 0.0) { + triangles.emplace_back(triangle{p1top, p1bot, p2top}); + normals.emplace_back(triangle{n1top, n1bot, n2top}); + } + if (botwidth > 0.0) { + triangles.emplace_back(triangle{p1bot, p2bot, p2top}); + normals.emplace_back(triangle{n1bot, n2bot, n2top}); + } } } } @@ -296,19 +363,36 @@ void ConeObj::draw(Image *img, int flag, const vec3 &dir, const vec3 &mid, const // rotate to selected axis and translate from origin to original center // no need of scaling here since length and width was already applied during construction auto cone = transform(triangles, dir, mid, 1.0, 1.0); + auto norms = transform_normals(normals, dir); // nothing to draw if (!cone.size()) return; + // get the offset from forward_transform to extract rotation-only for normals + double ox = 0.0, oy = 0.0, oz = 0.0; + reg->forward_transform(ox, oy, oz); + int n = 0; - for (auto &tri : cone) { + for (size_t k = 0; k < cone.size(); ++k) { + auto &tri = cone[k]; // apply region rotation and translation reg->forward_transform(tri[0][0], tri[0][1], tri[0][2]); reg->forward_transform(tri[1][0], tri[1][1], tri[1][2]); reg->forward_transform(tri[2][0], tri[2][1], tri[2][2]); - // draw triangle - if (flag & 1) img->draw_triangle(tri[0].data(), tri[1].data(), tri[2].data(), color, opacity); + // apply region rotation to normals (subtract translation offset) + auto rn = norms[k]; + reg->forward_transform(rn[0][0], rn[0][1], rn[0][2]); + reg->forward_transform(rn[1][0], rn[1][1], rn[1][2]); + reg->forward_transform(rn[2][0], rn[2][1], rn[2][2]); + rn[0] = vec3norm({rn[0][0] - ox, rn[0][1] - oy, rn[0][2] - oz}); + rn[1] = vec3norm({rn[1][0] - ox, rn[1][1] - oy, rn[1][2] - oz}); + rn[2] = vec3norm({rn[2][0] - ox, rn[2][1] - oy, rn[2][2] - oz}); + + // draw triangle with per-vertex normals + if (flag & 1) + img->draw_trinorm(tri[0].data(), tri[1].data(), tri[2].data(), rn[0].data(), rn[1].data(), + rn[2].data(), color, color, color, opacity); // draw wireframe if (flag & 2) { @@ -337,13 +421,15 @@ void ConeObj::draw(Image *img, const vec3 &bot, const vec3 &top, const double *c // rotate to selected axis and translate from origin to original center // no need of scaling here since length and width was already applied during construction auto cone = transform(triangles, dir, mid, length, 1.0); + auto norms = transform_normals(normals, dir); // nothing to draw if (!cone.size()) return; - for (auto &tri : cone) { - // draw triangle - img->draw_triangle(tri[0].data(), tri[1].data(), tri[2].data(), color, opacity); + for (size_t k = 0; k < cone.size(); ++k) { + // draw triangle with per-vertex normals + img->draw_trinorm(cone[k][0].data(), cone[k][1].data(), cone[k][2].data(), norms[k][0].data(), + norms[k][1].data(), norms[k][2].data(), color, color, color, opacity); } } @@ -372,21 +458,37 @@ void EllipsoidObj::refine() } // Construct and draw an ellipsoid from primitives, triangles and cylinders. -// Build a triangle mesh by refinining the triangles of an octahedron +// Build a triangle mesh by refining the triangles of an icosahedron EllipsoidObj::EllipsoidObj(int level) { - // Define edges of an octahedron to approximate a sphere of radius 1 around the origin. - constexpr vec3 OCT1 = {-1.0, 0.0, 0.0}; - constexpr vec3 OCT2 = {1.0, 0.0, 0.0}; - constexpr vec3 OCT3 = {0.0, -1.0, 0.0}; - constexpr vec3 OCT4 = {0.0, 1.0, 0.0}; - constexpr vec3 OCT5 = {0.0, 0.0, -1.0}; - constexpr vec3 OCT6 = {0.0, 0.0, 1.0}; - - // define level 1 octahedron triangle mesh, normals pointing away from the center. - triangles = {{OCT5, OCT4, OCT1}, {OCT2, OCT4, OCT5}, {OCT6, OCT4, OCT2}, {OCT1, OCT4, OCT6}, - {OCT1, OCT3, OCT5}, {OCT5, OCT3, OCT2}, {OCT2, OCT3, OCT6}, {OCT6, OCT3, OCT1}}; + // Define vertices of an icosahedron to approximate a sphere of radius 1 around the origin. + // A and B are the normalized coordinates derived from the golden ratio: + // phi = (1 + sqrt(5)) / 2; A = 1 / sqrt(1 + phi^2); B = phi / sqrt(1 + phi^2) + constexpr double A = 0.5257311121191336; + constexpr double B = 0.8506508083520399; + // clang-format off + constexpr vec3 ICO00 = { -A, B, 0.0}; + constexpr vec3 ICO01 = { A, B, 0.0}; + constexpr vec3 ICO02 = { -A, -B, 0.0}; + constexpr vec3 ICO03 = { A, -B, 0.0}; + constexpr vec3 ICO04 = {0.0, -A, B}; + constexpr vec3 ICO05 = {0.0, A, B}; + constexpr vec3 ICO06 = {0.0, -A, -B}; + constexpr vec3 ICO07 = {0.0, A, -B}; + constexpr vec3 ICO08 = { B, 0.0, -A}; + constexpr vec3 ICO09 = { B, 0.0, A}; + constexpr vec3 ICO10 = { -B, 0.0, -A}; + constexpr vec3 ICO11 = { -B, 0.0, A}; + // clang-format on + + // define level 1 icosahedron triangle mesh, normals pointing away from the center. + triangles = { + {ICO00, ICO05, ICO11}, {ICO00, ICO01, ICO05}, {ICO00, ICO07, ICO01}, {ICO00, ICO10, ICO07}, + {ICO00, ICO11, ICO10}, {ICO01, ICO09, ICO05}, {ICO05, ICO04, ICO11}, {ICO11, ICO02, ICO10}, + {ICO10, ICO06, ICO07}, {ICO07, ICO08, ICO01}, {ICO03, ICO04, ICO09}, {ICO03, ICO02, ICO04}, + {ICO03, ICO06, ICO02}, {ICO03, ICO08, ICO06}, {ICO03, ICO09, ICO08}, {ICO04, ICO05, ICO09}, + {ICO02, ICO11, ICO04}, {ICO06, ICO10, ICO02}, {ICO08, ICO07, ICO06}, {ICO09, ICO01, ICO08}}; // refine the list of triangles to the desired level for (int i = 1; i < level; ++i) refine(); @@ -413,11 +515,21 @@ void EllipsoidObj::draw(Image *img, int flag, const double *color, const double // nothing to draw if (!triangles.size()) return; + // get the offset from forward_transform to extract rotation-only for normals + double ox = 0.0, oy = 0.0, oz = 0.0; + reg->forward_transform(ox, oy, oz); + // draw triangles const vec3 offs{center[0], center[1], center[2]}; for (auto tri : triangles) { + // compute ellipsoid surface normals from gradient of x^2/a^2 + y^2/b^2 + z^2/c^2 + const double sa = shape[0] * shape[0], sb = shape[1] * shape[1], sc = shape[2] * shape[2]; + vec3 n1 = vec3norm({tri[0][0] / sa, tri[0][1] / sb, tri[0][2] / sc}); + vec3 n2 = vec3norm({tri[1][0] / sa, tri[1][1] / sb, tri[1][2] / sc}); + vec3 n3 = vec3norm({tri[2][0] / sa, tri[2][1] / sb, tri[2][2] / sc}); + // set shape and move tri[0] = tri[0] * radscale(shape, tri[0]) + offs; reg->forward_transform(tri[0][0], tri[0][1], tri[0][2]); @@ -426,7 +538,17 @@ void EllipsoidObj::draw(Image *img, int flag, const double *color, const double tri[2] = tri[2] * radscale(shape, tri[2]) + offs; reg->forward_transform(tri[2][0], tri[2][1], tri[2][2]); - if (dotri) img->draw_triangle(tri[0].data(), tri[1].data(), tri[2].data(), color, opacity); + if (dotri) { + // apply region rotation to normals (subtract translation offset) + reg->forward_transform(n1[0], n1[1], n1[2]); + reg->forward_transform(n2[0], n2[1], n2[2]); + reg->forward_transform(n3[0], n3[1], n3[2]); + n1 = vec3norm({n1[0] - ox, n1[1] - oy, n1[2] - oz}); + n2 = vec3norm({n2[0] - ox, n2[1] - oy, n2[2] - oz}); + n3 = vec3norm({n3[0] - ox, n3[1] - oy, n3[2] - oz}); + img->draw_trinorm(tri[0].data(), tri[1].data(), tri[2].data(), n1.data(), n2.data(), + n3.data(), color, color, color, opacity); + } if (doframe) { img->draw_cylinder(tri[0].data(), tri[1].data(), color, diameter, 3, opacity); img->draw_cylinder(tri[0].data(), tri[2].data(), color, diameter, 3, opacity); @@ -442,10 +564,13 @@ void EllipsoidObj::draw(Image *img, int flag, const double *color, const double const double *block) { // select between triangles or cylinders or both - bool doframe = true; + bool doframe = false; bool dotri = true; if (flag == 1) doframe = false; - if (flag == 2) dotri = false; + if (flag == 2) { + dotri = false; + doframe = true; + } if (diameter <= 0.0) doframe = false; if (!dotri && !doframe) return; // nothing to do @@ -470,6 +595,12 @@ void EllipsoidObj::draw(Image *img, int flag, const double *color, const double for (auto tri : triangles) { if (dotri) { + // compute ellipsoid surface normals from gradient of x^2/a^2 + y^2/b^2 + z^2/c^2 + const double sa = shape[0] * shape[0], sb = shape[1] * shape[1], sc = shape[2] * shape[2]; + vec3 n1 = vec3norm({tri[0][0] / sa, tri[0][1] / sb, tri[0][2] / sc}); + vec3 n2 = vec3norm({tri[1][0] / sa, tri[1][1] / sb, tri[1][2] / sc}); + vec3 n3 = vec3norm({tri[2][0] / sa, tri[2][1] / sb, tri[2][2] / sc}); + // set shape by shifting each corner to the surface if (block) { for (int i = 0; i < 3; ++i) { @@ -493,36 +624,27 @@ void EllipsoidObj::draw(Image *img, int flag, const double *color, const double e2 = e2 + offs; e3 = e3 + offs; - img->draw_triangle(e1.data(), e2.data(), e3.data(), color, opacity); + // rotate normals (no translation or scaling) + vec3 rn1, rn2, rn3; + MathExtra::matvec(p, n1.data(), rn1.data()); + MathExtra::matvec(p, n2.data(), rn2.data()); + MathExtra::matvec(p, n3.data(), rn3.data()); + + img->draw_trinorm(e1.data(), e2.data(), e3.data(), rn1.data(), rn2.data(), rn3.data(), color, + color, color, opacity); } if (doframe) { + // set shape if (block) { - // set shape for (int i = 0; i < 3; ++i) { auto &t = tri[i]; - if (dotri) { - // shift the cylinder positions inward by their diameter when using cylinders and - // triangles together for a smoother surface to avoid increasing the final size - double shapeplus[3] = {shape[0] - diameter, shape[1] - diameter, shape[1] - diameter}; - t = superscale(shapeplus, block, t) * t; - } else { - t = superscale(shape, block, t) * t; - } + t = superscale(shape, block, t) * t; } - } else { - // set shape for (int i = 0; i < 3; ++i) { auto &t = tri[i]; - if (dotri) { - // shift the cylinder positions inward by their diameter when using cylinders and - // triangles together for a smoother surface to avoid increasing the final size - double shapeplus[3] = {shape[0] - diameter, shape[1] - diameter, shape[1] - diameter}; - t = radscale(shapeplus, t) * t; - } else { - t = radscale(shape, t) * t; - } + t = radscale(shape, t) * t; } } diff --git a/src/GRAPHICS/image_objects.h b/src/GRAPHICS/image_objects.h index 1c208d2c380..7d0e10d6191 100644 --- a/src/GRAPHICS/image_objects.h +++ b/src/GRAPHICS/image_objects.h @@ -67,6 +67,7 @@ namespace ImageObjects { double tipwidth; double diameter; std::vector triangles; + std::vector normals; int resolution; }; @@ -85,11 +86,12 @@ namespace ImageObjects { private: std::vector triangles; + std::vector normals; }; class EllipsoidObj { public: - // construct (spherical) triangle mesh by refinining the triangles of an octahedron + // construct (spherical) triangle mesh by refining the triangles of an icosahedron EllipsoidObj(int level = DEF_ELEVEL); // draw ellipsoid from triangle mesh for ellipsoid and superellipsoid particles diff --git a/src/MBX/fix_mbx.cpp b/src/MBX/fix_mbx.cpp index c53f9cf98ad..f1180d9a4eb 100644 --- a/src/MBX/fix_mbx.cpp +++ b/src/MBX/fix_mbx.cpp @@ -62,6 +62,8 @@ using namespace LAMMPS_NS; using namespace FixConst; +static constexpr double MBX_CUTOFF_TOL = 1e-9; + std::string FixMBX::cite_pair_mbx = std::string( "pair mbx command:\n\n" \ "@article{10.1063/5.0156036,\n" \ @@ -614,6 +616,8 @@ void FixMBX::init() { if (!atom->q_flag) error->all(FLERR, "[MBX] Fix mbx requires atom attribute q"); + if (!atom->molecule_flag) error->all(FLERR, "[MBX] Fix mbx requires atom attribute molecule"); + ngroup = group->count(igroup); if (ngroup == 0) error->all(FLERR, "[MBX] Fix mbx group has no atoms"); @@ -652,8 +656,8 @@ void FixMBX::mbx_fill_system_information_from_atom() } // Reset anchors - int * last_anchor = mol_anchor + nall; - std::fill(mol_anchor, last_anchor, 0); + int *last_anchor = mol_anchor + nall; + memset(mol_anchor, 0, sizeof(int)*nall); for (int i = 0; i < nall; ++i) { // Assign anchor TODO careful, not necessarily true @@ -1193,7 +1197,7 @@ void FixMBX::mbx_init() double mbx_cut = mbx_impl->ptr_mbx->GetRealspaceCutoff(); double diff_sq = (mbx_cut - pair_mbx->cut_global) * (mbx_cut - pair_mbx->cut_global); - if (diff_sq > 1e-9) error->one(FLERR, "[MBX] cutoff not consistent with LAMMPS"); + if (diff_sq > MBX_CUTOFF_TOL) error->one(FLERR, "[MBX] cutoff not consistent with LAMMPS"); double mbx_2b_cut = mbx_impl->ptr_mbx->Get2bCutoff(); if (mbx_2b_cut > mbx_cut) error->one(FLERR, @@ -1266,20 +1270,13 @@ void FixMBX::mbx_init_local() mbx_num_atoms_local = 0; mbx_num_ext_local = 0; - for (int i = 0; i < nall; ++i) mol_local[i] = 0; - - // add all local+ghost monomers - for (int i = 0; i < nall; ++i) { + mol_local[i] = 0; if (mol_anchor[i]) mol_local[i] = 1; } // remove ghost monomers that are periodic images of local monomer // -- just an artifact for small systems and PBC - // -- should be able to remove this - - // Look for atoms that are local (0closest_image(x[i], x[j], ximage); - double dx = x[i][0] - ximage[0]; - double dy = x[i][1] - ximage[1]; - double dz = x[i][2] - ximage[2]; - double rsq = dx * dx + dy * dy + dz * dz; - if (rsq < 0.00001) mol_local[j] = 0; + if (atom->tag[i] == atom->tag[j]) { + mol_local[j] = 0; + } } } } @@ -1310,6 +1305,7 @@ void FixMBX::mbx_init_local() std::vector molec; + double ximage[3]; const double xlo = domain->boxlo[0]; const double ylo = domain->boxlo[1]; const double zlo = domain->boxlo[2]; @@ -1406,7 +1402,7 @@ void FixMBX::mbx_init_local() double mbx_cut = mbx_impl->ptr_mbx_local->GetRealspaceCutoff(); double diff_sq = (mbx_cut - pair_mbx->cut_global) * (mbx_cut - pair_mbx->cut_global); - if (diff_sq > 1e-9) error->one(FLERR, "[MBX] cutoff not consistent with LAMMPS"); + if (diff_sq > MBX_CUTOFF_TOL) error->one(FLERR, "[MBX] cutoff not consistent with LAMMPS"); double mbx_2b_cut = mbx_impl->ptr_mbx_local->Get2bCutoff(); if (mbx_2b_cut > mbx_cut) error->one(FLERR, diff --git a/src/graphics.h b/src/graphics.h index 81e9ebf932b..272831c596c 100644 --- a/src/graphics.h +++ b/src/graphics.h @@ -24,6 +24,7 @@ enum { TRI, // a surface mesh as triangles or cylinder mesh based on fflag1, fflag2 sets diameter CYLINDER, // a cylinder with diameter given by fix, fflag1 choose caps, fflag2 adjusts diameter TRIANGLE, // a regular triangle, no settings apply + TRINORM, // a curved triangle with surface normals and a color for each corner BOND, // two connected cylinders with bond diameter, colored by atom types, fflag1 sets cap ARROW, // a cylinder with a conical tip and a flat cap at the bottom CONE, // a truncated cone with flat caps, fflag1 sets caps diff --git a/src/label_map.cpp b/src/label_map.cpp index f6572e22c61..9eceb69394c 100644 --- a/src/label_map.cpp +++ b/src/label_map.cpp @@ -578,7 +578,7 @@ int LabelMap::infer_impropertype(const std::vector &mytypes, std::a if (iorder) *iorder = {0, 1, 2, 3}; for (int j = 0; j < 4; j++) { - if (std::string(force->improper_style) == "none" || force->improper->symmatoms[j] == 0) { + if (std::string(force->improper_style) == "none" || force->improper->symmatoms[j] != 1) { for (int k = 0; k < 4; k++) { if (itypes[j] == avail_types[k]) { avail_types[k] = ""; diff --git a/src/math_const.h b/src/math_const.h index 96162f0c322..3e3a9f87245 100644 --- a/src/math_const.h +++ b/src/math_const.h @@ -31,7 +31,7 @@ namespace LAMMPS_NS::MathConst { static constexpr double MY_SQRT2 = 1.41421356237309504880; // sqrt(2) static constexpr double MY_ISQRT2 = 0.707106781186547524401; // 1/sqrt(2) static constexpr double MY_CUBEROOT2 = 1.25992104989487316476; // 2^(1/3) - static constexpr double MY_TWOBYSIXTH = 1.12246204830937298142; // 2^(1/6) // + static constexpr double MY_TWOBYSIXTH = 1.12246204830937298142; // 2^(1/6) static constexpr double DEG2RAD = MY_PI / 180.0; // degree to radians static constexpr double RAD2DEG = 180.0 / MY_PI; // radians to degree } // namespace LAMMPS_NS::MathConst diff --git a/src/molecule.cpp b/src/molecule.cpp index d776ba8bf8c..ecbdd4fdd4e 100644 --- a/src/molecule.cpp +++ b/src/molecule.cpp @@ -21,6 +21,7 @@ #include "domain.h" #include "error.h" #include "force.h" +#include "improper.h" #include "json.h" #include "label_map.h" #include "math_eigen.h" @@ -136,10 +137,56 @@ void Molecule::command(int narg, char **arg, int &index) iarg += 2; } else if (strcmp(arg[iarg], "check_labels") == 0) { if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "check_labels", error); - if (strchr(arg[iarg + 1], 'b')) check_which_labels[0] = 1; - if (strchr(arg[iarg + 1], 'a')) check_which_labels[1] = 1; - if (strchr(arg[iarg + 1], 'd')) check_which_labels[2] = 1; - if (strchr(arg[iarg + 1], 'i')) check_which_labels[3] = 1; + + int i = 0; + char option; + + while ((option = arg[iarg + 1][i++]) != '\0') { + switch (option) { + case 'b': + check_which_labels[0] = 1; + break; + case 'a': + check_which_labels[1] = 1; + break; + case 'd': + check_which_labels[2] = 1; + break; + case 'i': + check_which_labels[3] = 1; + break; + default: + error->all(FLERR, iarg + 1, "Illegal check_labels option {}", option); + break; + } + } + + iarg += 2; + } else if (strcmp(arg[iarg], "auto") == 0) { + if (iarg + 2 > narg) utils::missing_cmd_args(FLERR, "molecule auto", error); + + int i = 0; + char option; + + while ((option = arg[iarg + 1][i++]) != '\0') { + switch (option) { + case 'a': + auto_angleflag = 1; + break; + case 'd': + auto_dihedralflag = 1; + break; + case 'i': + if (std::string(force->improper_style) == "hybrid") + error->all(FLERR, fileiarg, "Cannot infer improper type with improper_style hybrid"); + auto_improperflag = 1; + break; + default: + error->all(FLERR, iarg + 1, "Illegal auto option {}", option); + break; + } + } + iarg += 2; } else break; @@ -1825,6 +1872,10 @@ void Molecule::from_json(const std::string &molid, const json &moldata) nspecialflag = 1; } + if (auto_angleflag) generate_angles(); + if (auto_dihedralflag) generate_dihedrals(); + if (auto_improperflag) generate_impropers(); + // body particle must have natom = 1 // set radius by having body class compute its own radius @@ -2672,6 +2723,10 @@ void Molecule::read(int flag) } } + if (flag && auto_angleflag) generate_angles(); + if (flag && auto_dihedralflag) generate_dihedrals(); + if (flag && auto_improperflag) generate_impropers(); + // body particle must have natom = 1 // set radius by having body class compute its own radius @@ -3523,6 +3578,346 @@ void Molecule::special_read(char *line) } } +/* ---------------------------------------------------------------------- + auto generate angles from bond info +------------------------------------------------------------------------- */ + +void Molecule::generate_angles() +{ + if (specialflag == 0) + error->all(FLERR, fileiarg, "Unable to generate angles without special bonds."); + + if (angleflag == 1) { + error->warning(FLERR, "Generating angles will overwrite angle data from molecule template."); + nangletypes = 0; + nangles = 0; + memory->destroy(angle_type); + memory->destroy(angle_atom1); + memory->destroy(angle_atom2); + memory->destroy(angle_atom3); + } + + int newton_bond = force->newton_bond; + int itype, signed_itype; + tagint m, atom1, atom2, atom3; + std::vector atom1_found, atom2_found, atom3_found; + + for (int i = 0; i < natoms; i++) { + count[i] = 0; + num_angle[i] = 0; + } + + for (atom2 = 0; atom2 < natoms; atom2++) { + for (int i = 0; i < nspecial[atom2][0]; i++) { + atom1 = special[atom2][i] - 1; + for (int j = i + 1; j < nspecial[atom2][0]; j++) { + atom3 = special[atom2][j] - 1; + count[atom2]++; + nangles++; + atom1_found.push_back(atom1 + 1); + atom2_found.push_back(atom2 + 1); + atom3_found.push_back(atom3 + 1); + if (newton_bond == 0) { + count[atom1]++; + count[atom3]++; + } + } + } + } + + angle_per_atom = 0; + for (int i = 0; i < natoms; i++) angle_per_atom = MAX(angle_per_atom, count[i]); + + memory->create(angle_type, natoms, angle_per_atom, "molecule:angle_type"); + memory->create(angle_atom1, natoms, angle_per_atom, "molecule:angle_atom1"); + memory->create(angle_atom2, natoms, angle_per_atom, "molecule:angle_atom2"); + memory->create(angle_atom3, natoms, angle_per_atom, "molecule:angle_atom3"); + + for (int i = 0; i < nangles; i++) { + atom1 = atom1_found[i]; + atom2 = atom2_found[i]; + atom3 = atom3_found[i]; + signed_itype = atom->lmap->infer_angletype(type[atom1 - 1], type[atom2 - 1], type[atom3 - 1]); + if (!signed_itype) error->one(FLERR, "Unable to infer angle type from bonds."); + itype = std::abs(signed_itype); + if (signed_itype < 0) + std::swap(atom1, atom3); + m = atom2 - 1; + nangletypes = MAX(nangletypes, itype); + angle_type[m][num_angle[m]] = itype; + angle_atom1[m][num_angle[m]] = atom1; + angle_atom2[m][num_angle[m]] = atom2; + angle_atom3[m][num_angle[m]] = atom3; + num_angle[m]++; + if (newton_bond == 0) { + m = atom1 - 1; + angle_type[m][num_angle[m]] = itype; + angle_atom1[m][num_angle[m]] = atom1; + angle_atom2[m][num_angle[m]] = atom2; + angle_atom3[m][num_angle[m]] = atom3; + num_angle[m]++; + m = atom3 - 1; + angle_type[m][num_angle[m]] = itype; + angle_atom1[m][num_angle[m]] = atom1; + angle_atom2[m][num_angle[m]] = atom2; + angle_atom3[m][num_angle[m]] = atom3; + num_angle[m]++; + } + } + + angleflag = tag_require = 1; +} + +/* ---------------------------------------------------------------------- + auto generate dihedrals from bond info +------------------------------------------------------------------------- */ + +void Molecule::generate_dihedrals() +{ + if (specialflag == 0) + error->all(FLERR, fileiarg, "Unable to generate dihedrals without special bonds."); + + if (dihedralflag == 1) { + error->warning(FLERR, "Generating dihedrals will overwrite dihedral data from molecule template."); + ndihedraltypes = 0; + ndihedrals = 0; + memory->destroy(dihedral_type); + memory->destroy(dihedral_atom1); + memory->destroy(dihedral_atom2); + memory->destroy(dihedral_atom3); + memory->destroy(dihedral_atom4); + } + + int newton_bond = force->newton_bond; + int itype, signed_itype; + tagint m, atom1, atom2, atom3, atom4; + std::vector atom1_found, atom2_found, atom3_found, atom4_found; + + for (int i = 0; i < natoms; i++) { + count[i] = 0; + num_dihedral[i] = 0; + } + + for (atom2 = 0; atom2 < natoms; atom2++) { + for (int i = 0; i < nspecial[atom2][0]; i++) { + atom3 = special[atom2][i] - 1; + if (atom3 <= atom2) continue; // avoid duplicates + + for (int j = 0; j < nspecial[atom2][0]; j++) { + atom1 = special[atom2][j] - 1; + if (atom1 == atom3) continue; + if (atom1 == atom2) continue; + + for (int k = 0; k < nspecial[atom3][0]; k++) { + atom4 = special[atom3][k] - 1; + if (atom4 == atom3) continue; + if (atom4 == atom2) continue; + if (atom4 == atom1) continue; + + count[atom2]++; + if (newton_bond == 0) { + count[atom1]++; + count[atom3]++; + count[atom4]++; + } + + ndihedrals++; + atom1_found.push_back(atom1 + 1); + atom2_found.push_back(atom2 + 1); + atom3_found.push_back(atom3 + 1); + atom4_found.push_back(atom4 + 1); + } + } + } + } + + dihedral_per_atom = 0; + for (int i = 0; i < natoms; i++) dihedral_per_atom = MAX(dihedral_per_atom, count[i]); + + memory->create(dihedral_type, natoms, dihedral_per_atom, "molecule:dihedral_type"); + memory->create(dihedral_atom1, natoms, dihedral_per_atom, "molecule:dihedral_atom1"); + memory->create(dihedral_atom2, natoms, dihedral_per_atom, "molecule:dihedral_atom2"); + memory->create(dihedral_atom3, natoms, dihedral_per_atom, "molecule:dihedral_atom3"); + memory->create(dihedral_atom4, natoms, dihedral_per_atom, "molecule:dihedral_atom4"); + + ndihedraltypes = 0; + for (int i = 0; i < ndihedrals; i++) { + atom1 = atom1_found[i]; + atom2 = atom2_found[i]; + atom3 = atom3_found[i]; + atom4 = atom4_found[i]; + signed_itype = atom->lmap->infer_dihedraltype(type[atom1 - 1], type[atom2 - 1], + type[atom3 - 1], type[atom4 - 1]); + if (!signed_itype) error->one(FLERR, "Unable to infer dihedral type from bonds."); + itype = std::abs(signed_itype); + if (signed_itype < 0) { + atom1 = atom4_found[i]; + atom2 = atom3_found[i]; + atom3 = atom2_found[i]; + atom4 = atom1_found[i]; + } + m = atom2 - 1; + ndihedraltypes = MAX(ndihedraltypes, itype); + dihedral_type[m][num_dihedral[m]] = itype; + dihedral_atom1[m][num_dihedral[m]] = atom1; + dihedral_atom2[m][num_dihedral[m]] = atom2; + dihedral_atom3[m][num_dihedral[m]] = atom3; + dihedral_atom4[m][num_dihedral[m]] = atom4; + num_dihedral[m]++; + if (newton_bond == 0) { + m = atom1 - 1; + dihedral_type[m][num_dihedral[m]] = itype; + dihedral_atom1[m][num_dihedral[m]] = atom1; + dihedral_atom2[m][num_dihedral[m]] = atom2; + dihedral_atom3[m][num_dihedral[m]] = atom3; + dihedral_atom4[m][num_dihedral[m]] = atom4; + num_dihedral[m]++; + m = atom3 - 1; + dihedral_type[m][num_dihedral[m]] = itype; + dihedral_atom1[m][num_dihedral[m]] = atom1; + dihedral_atom2[m][num_dihedral[m]] = atom2; + dihedral_atom3[m][num_dihedral[m]] = atom3; + dihedral_atom4[m][num_dihedral[m]] = atom4; + num_dihedral[m]++; + m = atom4 - 1; + dihedral_type[m][num_dihedral[m]] = itype; + dihedral_atom1[m][num_dihedral[m]] = atom1; + dihedral_atom2[m][num_dihedral[m]] = atom2; + dihedral_atom3[m][num_dihedral[m]] = atom3; + dihedral_atom4[m][num_dihedral[m]] = atom4; + num_dihedral[m]++; + } + } + + dihedralflag = tag_require = 1; +} + +/* ---------------------------------------------------------------------- + auto generate impropers from bond info +------------------------------------------------------------------------- */ + +void Molecule::generate_impropers() +{ + if (specialflag == 0) + error->all(FLERR, fileiarg, "Unable to generate impropers without special bonds."); + + if (improperflag == 1) { + error->warning(FLERR, "Generating impropers will overwrite improper data from molecule template."); + nimpropertypes = 0; + nimpropers = 0; + memory->destroy(improper_type); + memory->destroy(improper_atom1); + memory->destroy(improper_atom2); + memory->destroy(improper_atom3); + memory->destroy(improper_atom4); + } + + int newton_bond = force->newton_bond; + int itype, signed_itype; + tagint m, atom1, atom2, atom3, atom4; + std::vector atom1_found, atom2_found, atom3_found, atom4_found; + std::array iorder; + + for (int i = 0; i < natoms; i++) { + count[i] = 0; + num_improper[i] = 0; + } + + for (atom2 = 0; atom2 < natoms; atom2++) { + if (nspecial[atom2][0] == 3) { + atom1 = special[atom2][0] - 1; + atom3 = special[atom2][1] - 1; + atom4 = special[atom2][2] - 1; + + count[atom2]++; + if (newton_bond == 0) { + count[atom1]++; + count[atom3]++; + count[atom4]++; + } + atom1_found.push_back(atom1 + 1); + atom2_found.push_back(atom2 + 1); + atom3_found.push_back(atom3 + 1); + atom4_found.push_back(atom4 + 1); + + tagint *iptrs[4] = {&atom1_found[nimpropers], &atom2_found[nimpropers], + &atom3_found[nimpropers], &atom4_found[nimpropers]}; + std::array tags = {atom1_found[nimpropers], atom2_found[nimpropers], + atom3_found[nimpropers], atom4_found[nimpropers]}; + for (int iatom = 0; iatom < 4; iatom++) { + if (force->improper && force->improper->symmatoms[iatom] == 1) { + *iptrs[iatom] = tags[1]; + *iptrs[1] = tags[iatom]; + } + } + + nimpropers++; + } + } + + improper_per_atom = 0; + for (int i = 0; i < natoms; i++) improper_per_atom = MAX(improper_per_atom, count[i]); + + memory->create(improper_type, natoms, improper_per_atom, "molecule:improper_type"); + memory->create(improper_atom1, natoms, improper_per_atom, "molecule:improper_atom1"); + memory->create(improper_atom2, natoms, improper_per_atom, "molecule:improper_atom2"); + memory->create(improper_atom3, natoms, improper_per_atom, "molecule:improper_atom3"); + memory->create(improper_atom4, natoms, improper_per_atom, "molecule:improper_atom4"); + + for (int i = 0; i < nimpropers; i++) { + atom1 = atom1_found[i]; + atom2 = atom2_found[i]; + atom3 = atom3_found[i]; + atom4 = atom4_found[i]; + + tagint *iptrs[4] = {&atom1, &atom2, &atom3, &atom4}; + signed_itype = atom->lmap->infer_impropertype(type[atom1 - 1], type[atom2 - 1], + type[atom3 - 1], type[atom4 - 1], &iorder); + if (!signed_itype) error->one(FLERR, "Unable to infer improper type from bonds."); + itype = std::abs(signed_itype); + if (signed_itype < 0) { + // rearrange atoms based on the order found by infer_impropertype + std::array tags = {atom1, atom2, atom3, atom4}; + for (int iatom = 0; iatom < 4; iatom++) + *iptrs[iatom] = tags[iorder[iatom]]; + } + + m = atom2 - 1; + nimpropertypes = MAX(nimpropertypes, itype); + improper_type[m][num_improper[m]] = itype; + improper_atom1[m][num_improper[m]] = atom1; + improper_atom2[m][num_improper[m]] = atom2; + improper_atom3[m][num_improper[m]] = atom3; + improper_atom4[m][num_improper[m]] = atom4; + num_improper[m]++; + if (newton_bond == 0) { + m = atom1 - 1; + improper_type[m][num_improper[m]] = itype; + improper_atom1[m][num_improper[m]] = atom1; + improper_atom2[m][num_improper[m]] = atom2; + improper_atom3[m][num_improper[m]] = atom3; + improper_atom4[m][num_improper[m]] = atom4; + num_improper[m]++; + m = atom3 - 1; + improper_type[m][num_improper[m]] = itype; + improper_atom1[m][num_improper[m]] = atom1; + improper_atom2[m][num_improper[m]] = atom2; + improper_atom3[m][num_improper[m]] = atom3; + improper_atom4[m][num_improper[m]] = atom4; + num_improper[m]++; + m = atom4 - 1; + improper_type[m][num_improper[m]] = itype; + improper_atom1[m][num_improper[m]] = atom1; + improper_atom2[m][num_improper[m]] = atom2; + improper_atom3[m][num_improper[m]] = atom3; + improper_atom4[m][num_improper[m]] = atom4; + num_improper[m]++; + } + } + + improperflag = tag_require = 1; +} + /* ---------------------------------------------------------------------- auto generate special bond info ------------------------------------------------------------------------- */ @@ -3977,6 +4372,7 @@ void Molecule::initialize() xflag = typeflag = moleculeflag = fragmentflag = qflag = radiusflag = muflag = rmassflag = 0; bondflag = angleflag = dihedralflag = improperflag = 0; + auto_angleflag = auto_dihedralflag = auto_improperflag = 0; nspecialflag = specialflag = 0; shakeflag = shakeflagflag = shakeatomflag = shaketypeflag = 0; bodyflag = ibodyflag = dbodyflag = 0; diff --git a/src/molecule.h b/src/molecule.h index f6e1c96399d..263499bc08d 100644 --- a/src/molecule.h +++ b/src/molecule.h @@ -49,6 +49,7 @@ class Molecule : protected Pointers { int xflag, typeflag, moleculeflag, fragmentflag, qflag, radiusflag, muflag, rmassflag; int bondflag, angleflag, dihedralflag, improperflag; + int auto_angleflag, auto_dihedralflag, auto_improperflag; int nspecialflag, specialflag; int shakeflag, shakeflagflag, shakeatomflag, shaketypeflag; int bodyflag, ibodyflag, dbodyflag; @@ -169,6 +170,9 @@ class Molecule : protected Pointers { void nspecial_read(int, char *); void special_read(char *); void special_generate(); + void generate_angles(); + void generate_dihedrals(); + void generate_impropers(); void shakeflag_read(char *); void shakeatom_read(char *); void shaketype_read(char *); diff --git a/unittest/formats/test_molecule_file.cpp b/unittest/formats/test_molecule_file.cpp index 2236413397e..3c18f527514 100644 --- a/unittest/formats/test_molecule_file.cpp +++ b/unittest/formats/test_molecule_file.cpp @@ -780,6 +780,67 @@ TEST_F(MoleculeFileTest, dipoles) EXPECT_NEAR(mu[1][3], sqrt(2.0), EPSILON); } +TEST_F(MoleculeFileTest, auto_invalidopt) +{ + TEST_FAILURE(".*Illegal auto option f.*", run_mol_cmd(test_name, "auto afi", "Comment\n\n");); +} + +TEST_F(MoleculeFileTest, auto_angle_dihedral) +{ + command("atom_style full"); + command("region box block 0 2 0 2 0 2"); + command("create_box 4 box bond/types 1 angle/types 1 dihedral/types 1 " + "extra/bond/per/atom 2 extra/angle/per/atom 2 extra/dihedral/per/atom 1 extra/special/per/atom 4"); + + command("labelmap atom 1 A"); + command("labelmap bond 1 A-A"); + command("labelmap angle 1 A-A-A"); + command("labelmap dihedral 1 A-A-A-A"); + + run_mol_cmd(test_name, "auto ad", + "Comment\n" + "4 atoms\n" + "3 bonds\n\n" + "Types\n\n" + "1 1\n2 1\n3 1\n4 1\n\n" + "Bonds\n\n" + "1 1 1 2\n" + "2 1 2 3\n" + "3 1 3 4\n\n"); + + Molecule *mol = lmp->atom->molecules[0]; + ASSERT_EQ(mol->nangles, 2); + ASSERT_EQ(mol->ndihedrals, 1); +} + +TEST_F(MoleculeFileTest, auto_angle_improper) +{ + command("atom_style full"); + command("region box block 0 2 0 2 0 2"); + command("create_box 4 box bond/types 1 angle/types 1 improper/types 1 " + "extra/bond/per/atom 2 extra/angle/per/atom 2 extra/improper/per/atom 1 extra/special/per/atom 4"); + + command("labelmap atom 1 A"); + command("labelmap bond 1 A-A"); + command("labelmap angle 1 A-A-A"); + command("labelmap improper 1 A-A-A-A"); + + run_mol_cmd(test_name, "auto ai", + "Comment\n" + "4 atoms\n" + "3 bonds\n\n" + "Types\n\n" + "1 1\n2 1\n3 1\n4 1\n\n" + "Bonds\n\n" + "1 1 1 2\n" + "2 1 1 3\n" + "3 1 1 4\n\n"); + + Molecule *mol = lmp->atom->molecules[0]; + ASSERT_EQ(mol->nangles, 3); + ASSERT_EQ(mol->nimpropers, 1); +} + int main(int argc, char **argv) { MPI_Init(&argc, &argv);