diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index a4736740cf..2d259791f2 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -652,7 +652,7 @@ install( if(BUILD_SHARED_LIBS) if(CMAKE_VERSION VERSION_LESS 3.12) # adjust so we find Python 3 versions before Python 2 on old systems with old CMake - set(Python_ADDITIONAL_VERSIONS 3.8 3.7 3.6 3.5) + set(Python_ADDITIONAL_VERSIONS 3.9 3.8 3.7 3.6 3.5) find_package(PythonInterp) # Deprecated since version 3.12 if(PYTHONINTERP_FOUND) set(Python_EXECUTABLE ${PYTHON_EXECUTABLE}) @@ -662,10 +662,10 @@ if(BUILD_SHARED_LIBS) endif() if (Python_EXECUTABLE) add_custom_target( - install-python - ${Python_EXECUTABLE} install.py -v ${LAMMPS_SOURCE_DIR}/version.h + install-python ${CMAKE_COMMAND} -E remove_directory build + COMMAND ${Python_EXECUTABLE} install.py -v ${LAMMPS_SOURCE_DIR}/version.h -p ${LAMMPS_PYTHON_DIR}/lammps - -l ${CMAKE_BINARY_DIR}/liblammps${CMAKE_SHARED_LIBRARY_SUFFIX} + -l ${CMAKE_BINARY_DIR}/liblammps${LAMMPS_MACHINE}${CMAKE_SHARED_LIBRARY_SUFFIX} WORKING_DIRECTORY ${LAMMPS_PYTHON_DIR} COMMENT "Installing LAMMPS Python module") else() diff --git a/cmake/Modules/Packages/GPU.cmake b/cmake/Modules/Packages/GPU.cmake index bc66ef04d2..4c52eee68b 100644 --- a/cmake/Modules/Packages/GPU.cmake +++ b/cmake/Modules/Packages/GPU.cmake @@ -36,6 +36,9 @@ if(GPU_API STREQUAL "CUDA") option(CUDPP_OPT "Enable CUDPP_OPT" ON) option(CUDA_MPS_SUPPORT "Enable tweaks to support CUDA Multi-process service (MPS)" OFF) if(CUDA_MPS_SUPPORT) + if(CUDPP_OPT) + message(FATAL_ERROR "Must use -DCUDPP_OPT=OFF with -DGPU_CUDA_MPS_SUPPORT=ON") + endif() set(GPU_CUDA_MPS_FLAGS "-DCUDA_PROXY") endif() @@ -94,9 +97,9 @@ if(GPU_API STREQUAL "CUDA") if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0") string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_75,code=[sm_75,compute_75]") endif() - # Ampere (GPU Arch 8.0) is supported by CUDA 11 and later + # Ampere (GPU Arch 8.0 and 8.6) is supported by CUDA 11 and later if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0") - string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]") + string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80] -gencode arch=compute_86,code=[sm_86,compute_86]") endif() if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0") message(WARNING "Unsupported CUDA version. Use at your own risk.") diff --git a/cmake/Modules/Packages/MLIAP.cmake b/cmake/Modules/Packages/MLIAP.cmake index d3f601a1e1..81bb10cb8f 100644 --- a/cmake/Modules/Packages/MLIAP.cmake +++ b/cmake/Modules/Packages/MLIAP.cmake @@ -1,7 +1,7 @@ # if PYTHON package is included we may also include Python support in MLIAP set(MLIAP_ENABLE_PYTHON_DEFAULT OFF) if(PKG_PYTHON) - find_package(Cythonize) + find_package(Cythonize QUIET) if(Cythonize_FOUND) set(MLIAP_ENABLE_PYTHON_DEFAULT ON) endif() @@ -14,6 +14,15 @@ if(MLIAP_ENABLE_PYTHON) if(NOT PKG_PYTHON) message(FATAL_ERROR "Must enable PYTHON package for including Python support in MLIAP") endif() + if(CMAKE_VERSION VERSION_LESS 3.12) + if(PYTHONLIBS_VERSION_STRING VERSION_LESS 3.6) + message(FATAL_ERROR "Python support in MLIAP requires Python 3.6 or later") + endif() + else() + if(Python_VERSION VERSION_LESS 3.6) + message(FATAL_ERROR "Python support in MLIAP requires Python 3.6 or later") + endif() + endif() set(MLIAP_BINARY_DIR ${CMAKE_BINARY_DIR}/cython) set(MLIAP_CYTHON_SRC ${LAMMPS_SOURCE_DIR}/MLIAP/mliap_model_python_couple.pyx) diff --git a/doc/lammps.1 b/doc/lammps.1 index 299f8538b0..9351ba5636 100644 --- a/doc/lammps.1 +++ b/doc/lammps.1 @@ -1,4 +1,4 @@ -.TH LAMMPS "24 December 2020" "2020-12-24" +.TH LAMMPS "10 February 2021" "2021-02-10" .SH NAME .B LAMMPS \- Molecular Dynamics Simulator. diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index 0c048c53ff..8f1154a167 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -131,7 +131,7 @@ CMake build -D HIP_USE_DEVICE_SORT=value # enables GPU sorting # value = yes (default) or no -D CUDPP_OPT=value # optimization setting for GPU_API=cuda - # enables CUDA Performance Primitives Optimizations + # enables CUDA Performance Primitives Optimizations, must be "no" for CUDA_MPS_SUPPORT=yes # value = yes (default) or no -D CUDA_MPS_SUPPORT=value # enables some tweaks required to run with active nvidia-cuda-mps daemon # value = yes or no (default) @@ -219,11 +219,19 @@ Makefile if desired: * ``CUDA_PRECISION`` = precision (double, mixed, single) * ``EXTRAMAKE`` = which Makefile.lammps.\* file to copy to Makefile.lammps -The file Makefile.linux_multi is set up to include support for multiple +The file Makefile.cuda is set up to include support for multiple GPU architectures as supported by the CUDA toolkit in use. This is done through using the "--gencode " flag, which can be used multiple times and thus support all GPU architectures supported by your CUDA compiler. +To include CUDA performance primitives set the Makefile variable +``CUDPP_OPT = -DUSE_CUDPP -Icudpp_mini``. + +To support the CUDA multiprocessor server you can set the define +``-DCUDA_PROXY``. Please note that in this case you should **not** use +the CUDA performance primitives and thus set the variable ``CUDPP_OPT`` +to empty. + If the library build is successful, 3 files should be created: ``lib/gpu/libgpu.a``\ , ``lib/gpu/nvc_get_devices``\ , and ``lib/gpu/Makefile.lammps``\ . The latter has settings that enable LAMMPS diff --git a/doc/src/Developer_notes.rst b/doc/src/Developer_notes.rst index 87ef97ea7b..ab2e3826f2 100644 --- a/doc/src/Developer_notes.rst +++ b/doc/src/Developer_notes.rst @@ -1,11 +1,133 @@ -Notes for Developers and Code Maintainers +Notes for developers and code maintainers ----------------------------------------- -This section documents how a few large sections of code with LAMMPS -work at a conceptual level. Comments on code in source files +This section documents how some of the code functionality within +LAMMPS works at a conceptual level. Comments on code in source files typically document what a variable stores, what a small section of -code does, or what a function does or its input/outputs. The topics -on this page are intended to document code at a higher level. +code does, or what a function does and its input/outputs. The topics +on this page are intended to document code functionality at a higher level. + +Fix contributions to instantaneous energy, virial, and cumulative energy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Fixes can calculate contributions to the instantaneous energy and/or +virial of the system, both in a global and peratom sense. Fixes that +perform thermostatting or barostatting can calculate the cumulative +energy they add to or subtract from the system, which is accessed by +the *ecouple* and *econserve* thermodynamic keywords. This subsection +explains how both work and what flags to set in a new fix to enable +this functionality. + +Let's start with thermostatting and barostatting fixes. Examples are +the :doc:`fix langevin ` and :doc:`fix npt ` +commands. Here is what the fix needs to do: + +* Set the variable *ecouple_flag* = 1 in the constructor. Also set + *scalar_flag* = 1, *extscalar* = 1, and *global_freq* to a timestep + increment which matches how often the fix is invoked. +* Implement a compute_scalar() method that returns the cumulative + energy added or subtracted by the fix, e.g. by rescaling the + velocity of atoms. The sign convention is that subtracted energy is + positive, added energy is negative. This must be the total energy + added to the entire system, i.e. an "extensive" quantity, not a + per-atom energy. Cumulative means the summed energy since the fix + was instantiated, even across multiple runs. This is because the + energy is used by the *econserve* thermodynamic keyword to check + that the fix is conserving the total energy of the system, + i.e. potential energy + kinetic energy + coupling energy = a + constant. + +And here is how the code operates: + +* The Modify class makes a list of all fixes that set *ecouple_flag* = 1. +* The :doc:`thermo_style custom ` command defines + *ecouple* and *econserve* keywords. +* These keywords sum the energy contributions from all the + *ecouple_flag* = 1 fixes by invoking the energy_couple() method in + the Modify class, which calls the compute_scalar() method of each + fix in the list. + +------------------ + +Next, here is how a fix contributes to the instantaneous energy and +virial of the system. First, it sets any or all of these flags to a +value of 1 in their constructor: + +* *energy_global_flag* to contribute to global energy, example: :doc:`fix indent ` +* *energy_peratom_flag* to contribute to peratom energy, :doc:`fix cmap ` +* *virial_global_flag* to contribute to global virial, example: :doc:`fix wall ` +* *virial_peratom_flag* to contribute to peratom virial, example: :doc:`fix wall ` + +The fix must also do the following: + +* For global energy, implement a compute_scalar() method that returns + the energy added or subtracted on this timestep. Here the sign + convention is that added energy is positive, subtracted energy is + negative. +* For peratom energy, invoke the ev_init(eflag,vflag) function each + time the fix is invoked, which initializes per-atom energy storage. + The value of eflag may need to be stored from an earlier call to the + fix during the same timestep. See how the :doc:`fix cmap + ` command does this in src/MOLECULE/fix_cmap.cpp. When an + energy for one or more atoms is calculated, invoke the ev_tally() + function to tally the contribution to each atom. Both the ev_init() + and ev_tally() methods are in the parent Fix class. +* For global and/or peratom virial, invoke the v_init(vflag) function + each time the fix is invoked, which initializes virial storage. + When forces on one or more atoms are calculated, invoke the + v_tally() function to tally the contribution. Both the v_init() and + v_tally() methods are in the parent Fix class. Note that there are + several variants of v_tally(); choose the one appropriate to your + fix. + +.. note:: + + The ev_init() and ev_tally() methods also account for global and + peratom virial contributions. Thus you do not need to invoke the + v_init() and v_tally() methods, if the fix also calculates peratom + energies. + +The fix must also specify whether (by default) to include or exclude +these contributions to the global/peratom energy/virial of the system. +For the fix to include the contributions, set either of both of these +variables in the constructor: + +* *thermo_energy* = 1, for global and peratom energy +* *thermo_virial* = 1, for global and peratom virial + +Note that these variables are zeroed in fix.cpp. Thus if you don't +set the variables, the contributions will be excluded (by default) + +However, the user has ultimate control over whether to include or +exclude the contributions of the fix via the :doc:`fix modify +` command: + +* fix modify *energy yes* to include global and peratom energy contributions +* fix modify *virial yes* to include global and peratom virial contributions + +If the fix contributes to any of the global/peratom energy/virial +values for the system, it should be explained on the fix doc page, +along with the default values for the *energy yes/no* and *virial +yes/no* settings of the :doc:`fix modify ` command. + +Finally, these 4 contributions are included in the output of 4 +computes: + +* global energy in :doc:`compute pe ` +* peratom energy in :doc:`compute pe/atom ` +* global virial in :doc:`compute pressure ` +* peratom virial in :doc:`compute stress/atom ` + +These computes invoke a method of the Modify class to include +contributions from fixes that have the corresponding flags set, +e.g. *energy_peratom_flag* and *thermo_energy* for :doc:`compute +pe/atom `. + +Note that each compute has an optional keyword to either include or +exclude all contributions from fixes. Also note that :doc:`compute pe +` and :doc:`compute pressure ` are what +is used (by default) by :doc:`thermodynamic output ` to +calculate values for its *pe* and *press* keywords. KSpace PPPM FFT grids ^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/src/Intro_citing.rst b/doc/src/Intro_citing.rst index a74d3134f3..e758992e2b 100644 --- a/doc/src/Intro_citing.rst +++ b/doc/src/Intro_citing.rst @@ -38,17 +38,18 @@ In addition there are DOIs for individual stable releases. Currently there are: Home page ^^^^^^^^^ -The LAMMPS website at `https://lammps.sandia.gov/ `_ is the canonical -location for information about LAMMPS and more detailed lists of publications -using LAMMPS and contributing features. +The LAMMPS website at `https://lammps.sandia.gov/ +`_ is the canonical location for information +about LAMMPS and its features. Citing contributions ^^^^^^^^^^^^^^^^^^^^ -LAMMPS has many features and uses previously published methods and -algorithms or novel features. It also includes potential parameter -filed for specific models. You can look up relevant publications either -in the LAMMPS output to the screen, the ``log.cite`` file (which is -populated with references to relevant papers through embedding them into -the source code) and in the documentation of the :doc:`corresponding commands +LAMMPS has many features and that use either previously published +methods and algorithms or novel features. It also includes potential +parameter filed for specific models. Where available, a reminder about +references for optional features used in a specific run is printed to +the screen and log file. Style and output location can be selected with +the :ref:`-cite command-line switch `. Additional references are +given in the documentation of the :doc:`corresponding commands ` or in the :doc:`Howto tutorials `. diff --git a/doc/src/Modify_contribute.rst b/doc/src/Modify_contribute.rst index 27de36f30c..4998712a3d 100644 --- a/doc/src/Modify_contribute.rst +++ b/doc/src/Modify_contribute.rst @@ -206,16 +206,22 @@ packages in the src directory for examples. If you are uncertain, please ask. algorithm/science behind the feature itself, or its initial usage, or its implementation in LAMMPS), you can add the citation to the \*.cpp source file. See src/USER-EFF/atom_vec_electron.cpp for an example. - A LaTeX citation is stored in a variable at the top of the file and a - single line of code that references the variable is added to the - constructor of the class. Whenever a user invokes your feature from - their input script, this will cause LAMMPS to output the citation to a - log.cite file and prompt the user to examine the file. Note that you - should only use this for a paper you or your group authored. - E.g. adding a cite in the code for a paper by Nose and Hoover if you - write a fix that implements their integrator is not the intended - usage. That kind of citation should just be in the doc page you - provide. + A LaTeX citation is stored in a variable at the top of the file and + a single line of code registering this variable is added to the + constructor of the class. If there is additional functionality (which + may have been added later) described in a different publication, + additional citation descriptions may be added for as long as they + are only registered when the corresponding keyword activating this + functionality is used. With these options it is possible to have + LAMMPS output a specific citation reminder whenever a user invokes + your feature from their input script. Note that you should only use + this for the most relevant paper for a feature and a publication that + you or your group authored. E.g. adding a citation in the code for + a paper by Nose and Hoover if you write a fix that implements their + integrator is not the intended usage. That kind of citation should + just be included in the documentation page you provide describing + your contribution. If you are not sure what the best option would + be, please contact the LAMMPS developers for advice. Finally, as a general rule-of-thumb, the more clear and self-explanatory you make your documentation and README files, and the diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index e044adfcb3..455df083e4 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -668,8 +668,8 @@ A general interface for machine-learning interatomic potentials, including PyTor To use this package, also the :ref:`SNAP package ` package needs to be installed. To make the *mliappy* model available, also the -:ref:`PYTHON package ` package needs to be installed, the version of -Python must be 3.6 or later, and the `cython `_ software +:ref:`PYTHON package ` package needs to be installed, the version +of Python must be 3.6 or later, and the `cython `_ software must be installed. **Author:** Aidan Thompson (Sandia), Nicholas Lubbers (LANL). diff --git a/doc/src/Python_module.rst b/doc/src/Python_module.rst index 8b4fbe1c2e..59be645cbd 100644 --- a/doc/src/Python_module.rst +++ b/doc/src/Python_module.rst @@ -26,6 +26,23 @@ There are multiple Python interface classes in the :py:mod:`lammps` module: .. _mpi4py_url: https://mpi4py.readthedocs.io +.. admonition:: Version check + :class: note + + The :py:mod:`lammps` module stores the version number of the LAMMPS + version it is installed from. When initializing the + :py:class:`lammps ` class, this version is checked to + be the same as the result from :py:func:`lammps.version`, the version + of the LAMMPS shared library that the module interfaces to. If the + they are not the same an AttributeError exception is raised since a + mismatch of versions (e.g. due to incorrect use of the + ``LD_LIBRARY_PATH`` or ``PYTHONPATH`` environment variables can lead + to crashes or data corruption and otherwise incorrect behavior. + +.. automodule:: lammps + :members: + :noindex: + ---------- The ``lammps`` class API diff --git a/doc/src/Run_options.rst b/doc/src/Run_options.rst index 9c269e552f..25756d9be0 100644 --- a/doc/src/Run_options.rst +++ b/doc/src/Run_options.rst @@ -11,6 +11,7 @@ letter abbreviation can be used: * :ref:`-k or -kokkos ` * :ref:`-l or -log ` * :ref:`-m or -mpicolor ` +* :ref:`-c or -cite ` * :ref:`-nc or -nocite ` * :ref:`-pk or -package ` * :ref:`-p or -partition ` @@ -220,14 +221,31 @@ links with from the lib/message directory. See the ---------- +.. _cite: + +**-cite style or file name** + +Select how and where to output a reminder about citing contributions +to the LAMMPS code that were used during the run. Available styles are +"both", "none", "screen", or "log". Any flag will be considered a file +name to write the detailed citation info to. Default is the "log" style +where there is a short summary in the screen output and detailed citations +in BibTeX format in the logfile. The option "both" selects the detailed +output for both, "none", the short output for both, and "screen" will +write the detailed info to the screen and the short version to the log +file. If a dedicated citation info file is requested, the screen and +log file output will be in the short format (same as with "none"). + +See the :doc:`citation page ` for more details on +how to correctly reference and cite LAMMPS. + +---------- + .. _nocite: **-nocite** -Disable writing the log.cite file which is normally written to list -references for specific cite-able features used during a LAMMPS run. -See the `citation page `_ for more -details. +Disable generating a citation reminder (see above) at all. ---------- diff --git a/doc/src/compute_displace_atom.rst b/doc/src/compute_displace_atom.rst index 9079538fd8..688e73d914 100644 --- a/doc/src/compute_displace_atom.rst +++ b/doc/src/compute_displace_atom.rst @@ -46,11 +46,12 @@ the compute command was issued. The value of the displacement will be .. note:: Initial coordinates are stored in "unwrapped" form, by using the - image flags associated with each atom. See the :doc:`dump custom ` command for a discussion of "unwrapped" coordinates. - See the Atoms section of the :doc:`read_data ` command for a - discussion of image flags and how they are set for each atom. You can - reset the image flags (e.g. to 0) before invoking this compute by - using the :doc:`set image ` command. + image flags associated with each atom. See the :doc:`dump custom + ` command for a discussion of "unwrapped" coordinates. See + the Atoms section of the :doc:`read_data ` command for a + discussion of image flags and how they are set for each atom. You + can reset the image flags (e.g. to 0) before invoking this compute + by using the :doc:`set image ` command. .. note:: diff --git a/doc/src/compute_pressure.rst b/doc/src/compute_pressure.rst index b89d17bc5a..f69f70daba 100644 --- a/doc/src/compute_pressure.rst +++ b/doc/src/compute_pressure.rst @@ -122,8 +122,11 @@ Output info This compute calculates a global scalar (the pressure) and a global vector of length 6 (pressure tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar -or vector values from a compute as input. See the :doc:`Howto output ` doc page for an overview of LAMMPS output -options. +or vector values from a compute as input. See the :doc:`Howto output +` doc page for an overview of LAMMPS output options. + +The ordering of values in the symmetric pressure tensor is as follows: +pxx, pyy, pzz, pxy, pxz, pyz. The scalar and vector values calculated by this compute are "intensive". The scalar and vector values will be in pressure diff --git a/doc/src/compute_reduce_chunk.rst b/doc/src/compute_reduce_chunk.rst index e63f4b7b54..342c6ceb05 100644 --- a/doc/src/compute_reduce_chunk.rst +++ b/doc/src/compute_reduce_chunk.rst @@ -30,7 +30,7 @@ Examples .. code-block:: LAMMPS - compute 1 all reduce/chunk/atom mychunk min c_cluster + compute 1 all reduce/chunk mychunk min c_cluster Description """"""""""" diff --git a/doc/src/compute_stress_atom.rst b/doc/src/compute_stress_atom.rst index 08f1c5f1ba..393d3b2ffb 100644 --- a/doc/src/compute_stress_atom.rst +++ b/doc/src/compute_stress_atom.rst @@ -216,6 +216,11 @@ an identical manner to compute *stress/atom*. See the :doc:`Howto output ` doc page for an overview of LAMMPS output options. +The ordering of the 6 columns for *stress/atom* is as follows: xx, yy, +zz, xy, xz, yz. The ordering of the 9 columns for +*centroid/stress/atom* is as follows: xx, yy, zz, xy, xz, yz, yx, zx, +zy. + The per-atom array values will be in pressure\*volume :doc:`units ` as discussed above. diff --git a/doc/src/create_bonds.rst b/doc/src/create_bonds.rst index b69fd909f0..056b60c7aa 100644 --- a/doc/src/create_bonds.rst +++ b/doc/src/create_bonds.rst @@ -125,6 +125,16 @@ cannot appear in the neighbor list, to avoid creation of duplicate bonds. The neighbor list for all atom type pairs must also extend to a distance that encompasses the *rmax* for new bonds to create. +.. note:: + + If you want to create bonds between pairs of 1-3 or 1-4 atoms in + the current bond topology, then you need to use :doc:`special_bonds + lj 0 1 1 ` to insure those pairs appear in the + neighbor list. They will not appear with the default special_bonds + settings which are zero for 1-2, 1-3, and 1-4 atoms. 1-3 or 1-4 + atoms are those which are 2 hops or 3 hops apart in the bond + topology. + An additional requirement for this style is that your system must be ready to perform a simulation. This means, for example, that all :doc:`pair_style ` coefficients be set via the diff --git a/doc/src/fix_addforce.rst b/doc/src/fix_addforce.rst index f2f7a69f6c..0137066ff7 100644 --- a/doc/src/fix_addforce.rst +++ b/doc/src/fix_addforce.rst @@ -118,32 +118,38 @@ converge properly. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the potential "energy" inferred by the added force to the -system's potential energy as part of :doc:`thermodynamic output `. This is a fictitious quantity but is -needed so that the :doc:`minimize ` command can include the -forces added by this fix in a consistent manner. I.e. there is a -decrease in potential energy when atoms move in the direction of the -added force. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy inferred by the added force to +the global potential energy of the system as part of +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify energy no `. Note that this +energy is a fictitious quantity but is needed so that the +:doc:`minimize ` command can include the forces added by +this fix in a consistent manner. I.e. there is a decrease in +potential energy when atoms move in the direction of the added force. -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the contribution due to the added forces on atoms to the -system's virial as part of :doc:`thermodynamic output `. -The default is *virial no* +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution due to the added forces on atoms to +both the global pressure and per-atom stress of the system via the +:doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial no `. The :doc:`fix_modify ` *respa* option is supported by this -fix. This allows to set at which level of the :doc:`r-RESPA ` -integrator the fix is adding its forces. Default is the outermost -level. +fix. This allows to set at which level of the :doc:`r-RESPA +` integrator the fix is adding its forces. Default is the +outermost level. This fix computes a global scalar and a global 3-vector of forces, -which can be accessed by various :doc:`output commands `. -The scalar is the potential energy discussed above. The vector is the -total force on the group of atoms before the forces on individual -atoms are changed by the fix. The scalar and vector values calculated -by this fix are "extensive". +which can be accessed by various :doc:`output commands +`. The scalar is the potential energy discussed above. +The vector is the total force on the group of atoms before the forces +on individual atoms are changed by the fix. The scalar and vector +values calculated by this fix are "extensive". No parameter of this fix can be used with the *start/stop* keywords of the :doc:`run ` command. diff --git a/doc/src/fix_addtorque.rst b/doc/src/fix_addtorque.rst index b716f94dc8..fbb957e547 100644 --- a/doc/src/fix_addtorque.rst +++ b/doc/src/fix_addtorque.rst @@ -55,13 +55,15 @@ Restart, fix_modify, output, run start/stop, minimize info No information about this fix is written to :doc:`binary restart files `. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the potential "energy" inferred by the added forces to the -system's potential energy as part of :doc:`thermodynamic output `. This is a fictitious quantity but is -needed so that the :doc:`minimize ` command can include the -forces added by this fix in a consistent manner. I.e. there is a -decrease in potential energy when atoms move in the direction of the -added forces. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential "energy" inferred by the added torques +to the global potential energy of the system as part of +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify energy no `. Note that this +is a fictitious quantity but is needed so that the :doc:`minimize +` command can include the forces added by this fix in a +consistent manner. I.e. there is a decrease in potential energy when +atoms move in the direction of the added forces. The :doc:`fix_modify ` *respa* option is supported by this fix. This allows to set at which level of the :doc:`r-RESPA ` @@ -78,16 +80,28 @@ No parameter of this fix can be used with the *start/stop* keywords of the :doc:`run ` command. The forces due to this fix are imposed during an energy minimization, -invoked by the :doc:`minimize ` command. You should not -specify force components with a variable that has time-dependence for -use with a minimizer, since the minimizer increments the timestep as -the iteration count during the minimization. +invoked by the :doc:`minimize ` command. + +.. note:: + + If you want the fictitious potential energy associated with the + added forces to be included in the total potential energy of the + system (the quantity being minimized), you MUST enable the + :doc:`fix_modify ` *energy* option for this fix. + +.. note:: + + You should not specify force components with a variable that has + time-dependence for use with a minimizer, since the minimizer + increments the timestep as the iteration count during the + minimization. Restrictions """""""""""" This fix is part of the USER-MISC package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. +LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. Related commands """""""""""""""" diff --git a/doc/src/fix_atc.rst b/doc/src/fix_atc.rst index 8e9ab0ceb2..25f85f6f6c 100644 --- a/doc/src/fix_atc.rst +++ b/doc/src/fix_atc.rst @@ -122,10 +122,22 @@ Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" No information about this fix is written to :doc:`binary restart files -`. The :doc:`fix_modify ` options relevant to this -fix are listed below. No global scalar or vector or per-atom quantities -are stored by this fix for access by various :doc:`output commands -`. No parameter of this fix can be used with the +`. + +The :doc:`fix_modify ` *energy* option is not supported by +this fix, but this fix does add the kinetic energy imparted to atoms +by the momentum coupling mode of the AtC package to the global +potential energy of the system as part of :doc:`thermodynamic output +`. + +Additional :doc:`fix_modify ` options relevant to this +fix are listed below. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the energy +discussed in the previous paragraph. The scalar value is "extensive". + +No parameter of this fix can be used with the *start/stop* keywords of the :doc:`run ` command. This fix is not invoked during :doc:`energy minimization `. @@ -145,10 +157,10 @@ one, e.g. nve, nvt, etc. In addition, currently: Related commands """""""""""""""" -After specifying this fix in your input script, several other -:doc:`fix_modify ` commands are used to setup the problem, -e.g. define the finite element mesh and prescribe initial and boundary -conditions. +After specifying this fix in your input script, several +:doc:`fix_modify AtC ` commands are used to setup the +problem, e.g. define the finite element mesh and prescribe initial and +boundary conditions. Each of these options has its own doc page. *fix_modify* commands for setup: @@ -240,7 +252,8 @@ miscellaneous *fix_modify* commands: * :doc:`fix_modify AtC remove_species ` * :doc:`fix_modify AtC remove_molecule ` -Note: a set of example input files with the attendant material files are included in the ``examples/USER/atc`` folders. +Note: a set of example input files with the attendant material files +are included in the ``examples/USER/atc`` folders. Default """"""" @@ -252,30 +265,52 @@ For detailed exposition of the theory and algorithms please see: .. _Wagner: -**(Wagner)** Wagner, GJ; Jones, RE; Templeton, JA; Parks, MA, "An atomistic-to-continuum coupling method for heat transfer in solids." Special Issue of Computer Methods and Applied Mechanics (2008) 197:3351. +**(Wagner)** Wagner, GJ; Jones, RE; Templeton, JA; Parks, MA, "An + atomistic-to-continuum coupling method for heat transfer in solids." + Special Issue of Computer Methods and Applied Mechanics (2008) + 197:3351. .. _Zimmeman2004: -**(Zimmerman2004)** Zimmerman, JA; Webb, EB; Hoyt, JJ;. Jones, RE; Klein, PA; Bammann, DJ, "Calculation of stress in atomistic simulation." Special Issue of Modelling and Simulation in Materials Science and Engineering (2004), 12:S319. +**(Zimmerman2004)** Zimmerman, JA; Webb, EB; Hoyt, JJ;. Jones, RE; + Klein, PA; Bammann, DJ, "Calculation of stress in atomistic + simulation." Special Issue of Modelling and Simulation in Materials + Science and Engineering (2004), 12:S319. .. _Zimmerman2010: -**(Zimmerman2010)** Zimmerman, JA; Jones, RE; Templeton, JA, "A material frame approach for evaluating continuum variables in atomistic simulations." Journal of Computational Physics (2010), 229:2364. +**(Zimmerman2010)** Zimmerman, JA; Jones, RE; Templeton, JA, "A + material frame approach for evaluating continuum variables in + atomistic simulations." Journal of Computational Physics (2010), + 229:2364. .. _Templeton2010: -**(Templeton2010)** Templeton, JA; Jones, RE; Wagner, GJ, "Application of a field-based method to spatially varying thermal transport problems in molecular dynamics." Modelling and Simulation in Materials Science and Engineering (2010), 18:085007. +**(Templeton2010)** Templeton, JA; Jones, RE; Wagner, GJ, "Application + of a field-based method to spatially varying thermal transport + problems in molecular dynamics." Modelling and Simulation in + Materials Science and Engineering (2010), 18:085007. .. _Jones: -**(Jones)** Jones, RE; Templeton, JA; Wagner, GJ; Olmsted, D; Modine, JA, "Electron transport enhanced molecular dynamics for metals and semi-metals." International Journal for Numerical Methods in Engineering (2010), 83:940. +**(Jones)** Jones, RE; Templeton, JA; Wagner, GJ; Olmsted, D; Modine, + JA, "Electron transport enhanced molecular dynamics for metals and + semi-metals." International Journal for Numerical Methods in + Engineering (2010), 83:940. .. _Templeton2011: -**(Templeton2011)** Templeton, JA; Jones, RE; Lee, JW; Zimmerman, JA; Wong, BM, "A long-range electric field solver for molecular dynamics based on atomistic-to-continuum modeling." Journal of Chemical Theory and Computation (2011), 7:1736. +**(Templeton2011)** Templeton, JA; Jones, RE; Lee, JW; Zimmerman, JA; + Wong, BM, "A long-range electric field solver for molecular dynamics + based on atomistic-to-continuum modeling." Journal of Chemical Theory + and Computation (2011), 7:1736. .. _Mandadapu: -**(Mandadapu)** Mandadapu, KK; Templeton, JA; Lee, JW, "Polarization as a field variable from molecular dynamics simulations." Journal of Chemical Physics (2013), 139:054115. +**(Mandadapu)** Mandadapu, KK; Templeton, JA; Lee, JW, "Polarization + as a field variable from molecular dynamics simulations." Journal of + Chemical Physics (2013), 139:054115. -Please refer to the standard finite element (FE) texts, e.g. T.J.R Hughes " The finite element method ", Dover 2003, for the basics of FE simulation. +Please refer to the standard finite element (FE) texts, e.g. T.J.R +Hughes " The finite element method ", Dover 2003, for the basics of FE +simulation. diff --git a/doc/src/fix_bocs.rst b/doc/src/fix_bocs.rst index b5a00b2687..f4b3080cc0 100644 --- a/doc/src/fix_bocs.rst +++ b/doc/src/fix_bocs.rst @@ -75,6 +75,39 @@ Note that *V_avg* and *Coeff_i* should all be in the proper units, e.g. if you are using *units real*\ , *V_avg* should be in cubic angstroms, and the coefficients should all be in atmospheres \* cubic angstroms. +---------- + +Restart, fix_modify, output, run start/stop, minimize info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +This fix writes the cumulative global energy change to :doc:`binary +restart files `. See the :doc:`read_restart ` +command for info on how to re-specify a fix in an input script that +reads a restart file, so that the fix continues in an uninterrupted +fashion. + +The :doc:`fix_modify ` *temp* option is supported by this +fix. You can use it to assign a temperature :doc:`compute ` +you have defined to this fix which will be used in its thermostatting +procedure, as described above. For consistency, the group used by +this fix and by the compute should be the same. + +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". + +This fix can ramp its target temperature over multiple runs, using the +*start* and *stop* keywords of the :doc:`run ` command. See the +:doc:`run ` command for details of how to do this. + +This fix is not invoked during :doc:`energy minimization `. + Restrictions """""""""""" diff --git a/doc/src/fix_bond_react.rst b/doc/src/fix_bond_react.rst index 97717f59fc..5291aff81b 100644 --- a/doc/src/fix_bond_react.rst +++ b/doc/src/fix_bond_react.rst @@ -41,7 +41,7 @@ Syntax * template-ID(post-reacted) = ID of a molecule template containing post-reaction topology * map_file = name of file specifying corresponding atom-IDs in the pre- and post-reacted templates * zero or more individual keyword/value pairs may be appended to each react argument -* individual_keyword = *prob* or *max_rxn* or *stabilize_steps* or *custom_charges* +* individual_keyword = *prob* or *max_rxn* or *stabilize_steps* or *custom_charges* or *molecule* or *modify_create* .. parsed-literal:: @@ -59,6 +59,12 @@ Syntax off = allow both inter- and intramolecular reactions (default) inter = search for reactions between molecules with different IDs intra = search for reactions within the same molecule + *modify_create* keyword values + *fit* value = *all* or *fragmentID* + all = use all eligible atoms for create-atoms fit (default) + fragmentID = ID of molecule fragment used for create-atoms fit + *overlap* value = R + R = only insert atom/molecule if further than R from existing particles (distance units) Examples """""""" @@ -89,7 +95,9 @@ documentation. Topology changes are defined in pre- and post-reaction molecule templates and can include creation and deletion of bonds, angles, dihedrals, impropers, bond types, angle types, dihedral types, atom types, or atomic charges. In addition, reaction by-products or -other molecules can be identified and deleted. +other molecules can be identified and deleted. Finally, atoms can be +created and inserted at specific positions relative to the reaction +site. Fix bond/react does not use quantum mechanical (eg. fix qmmm) or pairwise bond-order potential (eg. Tersoff or AIREBO) methods to @@ -262,14 +270,14 @@ command page. The post-reacted molecule template contains a sample of the reaction site and its surrounding topology after the reaction has occurred. It -must contain the same number of atoms as the pre-reacted template. A -one-to-one correspondence between the atom IDs in the pre- and -post-reacted templates is specified in the map file as described -below. Note that during a reaction, an atom, bond, etc. type may -change to one that was previously not present in the simulation. These -new types must also be defined during the setup of a given simulation. -A discussion of correctly handling this is also provided on the -:doc:`molecule ` command page. +must contain the same number of atoms as the pre-reacted template +(unless there are created atoms). A one-to-one correspondence between +the atom IDs in the pre- and post-reacted templates is specified in +the map file as described below. Note that during a reaction, an atom, +bond, etc. type may change to one that was previously not present in +the simulation. These new types must also be defined during the setup +of a given simulation. A discussion of correctly handling this is also +provided on the :doc:`molecule ` command page. .. note:: @@ -283,7 +291,7 @@ A discussion of correctly handling this is also provided on the The map file is a text document with the following format: A map file has a header and a body. The header of map file the -contains one mandatory keyword and four optional keywords. The +contains one mandatory keyword and five optional keywords. The mandatory keyword is 'equivalences': .. parsed-literal:: @@ -296,11 +304,12 @@ The optional keywords are 'edgeIDs', 'deleteIDs', 'chiralIDs' and .. parsed-literal:: N *edgeIDs* = # of edge atoms N in the pre-reacted molecule template - N *deleteIDs* = # of atoms N that are specified for deletion - N *chiralIDs* = # of specified chiral centers N - N *constraints* = # of specified reaction constraints N + N *deleteIDs* = # of atoms N that are deleted + N *createIDs* = # of atoms N that are created + N *chiralIDs* = # of chiral centers N + N *constraints* = # of reaction constraints N -The body of the map file contains two mandatory sections and four +The body of the map file contains two mandatory sections and five optional sections. The first mandatory section begins with the keyword 'InitiatorIDs' and lists the two atom IDs of the initiator atom pair in the pre-reacted molecule template. The second mandatory section @@ -313,8 +322,10 @@ the keyword 'EdgeIDs' and lists the atom IDs of edge atoms in the pre-reacted molecule template. The second optional section begins with the keyword 'DeleteIDs' and lists the atom IDs of pre-reaction template atoms to delete. The third optional section begins with the +keyword 'CreateIDs' and lists the atom IDs of the post-reaction +template atoms to create. The fourth optional section begins with the keyword 'ChiralIDs' lists the atom IDs of chiral atoms whose -handedness should be enforced. The fourth optional section begins with +handedness should be enforced. The fifth optional section begins with the keyword 'Constraints' and lists additional criteria that must be satisfied in order for the reaction to occur. Currently, there are five types of constraints available, as discussed below: 'distance', @@ -353,6 +364,38 @@ A sample map file is given below: ---------- +A user-specified set of atoms can be deleted by listing their +pre-reaction template IDs in the DeleteIDs section. A deleted atom +must still be included in the post-reaction molecule template, in +which it cannot be bonded to an atom that is not deleted. In addition +to deleting unwanted reaction by-products, this feature can be used to +remove specific topologies, such as small rings, that may be otherwise +indistinguishable. + +Atoms can be created by listing their post-reaction template IDs in +the CreateIDs section. A created atom should not be included in the +pre-reaction template. The inserted positions of created atoms are +determined by the coordinates of the post-reaction template, after +optimal translation and rotation of the post-reaction template to the +reaction site (using a fit with atoms that are neither created nor +deleted). The *modify_create* keyword can be used to modify the +default behavior when creating atoms. The *modify_create* keyword has +two sub-keywords, *fit* and *overlap*. One or more of the sub-keywords +may be used after the *modify_create* keyword. The *fit* sub-keyword +can be used to specify which post-reaction atoms are used for the +optimal translation and rotation of the post-reaction template. The +*fragmentID* value of the *fit* sub-keyword must be the name of a +molecule fragment defined in the post-reaction :doc:`molecule +` template, and only atoms in this fragment are used for the +fit. Atoms are created only if no current atom in the simulation is +within a distance R of any created atom, including the effect of +periodic boundary conditions if applicable. R is defined by the +*overlap* sub-keyword. Note that the default value for R is 0.0, which +will allow atoms to strongly overlap if you are inserting where other +atoms are present. The velocity of each created atom is initialized in +a random direction with a magnitude calculated from the instantaneous +temperature of the reaction site. + The handedness of atoms that are chiral centers can be enforced by listing their IDs in the ChiralIDs section. A chiral atom must be bonded to four atoms with mutually different atom types. This feature @@ -528,15 +571,6 @@ the same molecule ID are considered for the reaction. A few other considerations: -Many reactions result in one or more atoms that are considered -unwanted by-products. Therefore, bond/react provides the option to -delete a user-specified set of atoms. These pre-reaction atoms are -identified in the map file. A deleted atom must still be included in -the post-reaction molecule template, in which it cannot be bonded to -an atom that is not deleted. In addition to deleting unwanted reaction -by-products, this feature can be used to remove specific topologies, -such as small rings, that may be otherwise indistinguishable. - Optionally, you can enforce additional behaviors on reacting atoms. For example, it may be beneficial to force reacting atoms to remain at a certain temperature. For this, you can use the internally-created @@ -610,14 +644,14 @@ Default """"""" The option defaults are stabilization = no, prob = 1.0, stabilize_steps = 60, -reset_mol_ids = yes, custom_charges = no, molecule = off +reset_mol_ids = yes, custom_charges = no, molecule = off, modify_create = no ---------- .. _Gissinger: -**(Gissinger)** Gissinger, Jensen and Wise, Polymer, 128, 211-217 (2017). +**(Gissinger2017)** Gissinger, Jensen and Wise, Polymer, 128, 211-217 (2017). .. _Gissinger2020: -**(Gissinger)** Gissinger, Jensen and Wise, Macromolecules, 53, 22, 9953-9961 (2020). +**(Gissinger2020)** Gissinger, Jensen and Wise, Macromolecules, 53, 22, 9953-9961 (2020). diff --git a/doc/src/fix_client_md.rst b/doc/src/fix_client_md.rst index 0200966a34..3bcc6bdaa5 100644 --- a/doc/src/fix_client_md.rst +++ b/doc/src/fix_client_md.rst @@ -47,14 +47,15 @@ for running *ab initio* MD with quantum forces. The group associated with this fix is ignored. The protocol and :doc:`units ` for message format and content -that LAMMPS exchanges with the server code is defined on the :doc:`server md ` doc page. +that LAMMPS exchanges with the server code is defined on the +:doc:`server md ` doc page. Note that when using LAMMPS as an MD client, your LAMMPS input script should not normally contain force field commands, like a :doc:`pair_style `, :doc:`bond_style `, or -:doc:`kspace_style ` command. However it is possible for -a server code to only compute a portion of the full force-field, while -LAMMPS computes the remaining part. Your LAMMPS script can also +:doc:`kspace_style ` command. However it is possible +for a server code to only compute a portion of the full force-field, +while LAMMPS computes the remaining part. Your LAMMPS script can also specify boundary conditions or force constraints in the usual way, which will be added to the per-atom forces returned by the server code. @@ -69,16 +70,21 @@ LAMMPS and another code in tandem to perform a coupled simulation. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the potential energy computed by the server application to -the system's potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy set by the server application to +the global potential energy of the system as part of +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify energy yes `. -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the server application's contribution to the system's -virial as part of :doc:`thermodynamic output `. The -default is *virial yes* +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution computed by the server application to +the global pressure of the system via the :doc:`compute pressure +` command. This can be accessed by +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify virial yes `. This fix computes a global scalar which can be accessed by various :doc:`output commands `. The scalar is the potential @@ -86,13 +92,16 @@ energy discussed above. The scalar value calculated by this fix is "extensive". No parameter of this fix can be used with the *start/stop* keywords of -the :doc:`run ` command. This fix is not invoked during :doc:`energy minimization `. +the :doc:`run ` command. + +This fix is not invoked during :doc:`energy minimization `. Restrictions """""""""""" This fix is part of the MESSAGE package. It is only enabled if LAMMPS -was built with that package. See the :doc:`Build package ` doc page for more info. +was built with that package. See the :doc:`Build package +` doc page for more info. A script that uses this command must also use the :doc:`message ` command to setup and shut down the messaging diff --git a/doc/src/fix_cmap.rst b/doc/src/fix_cmap.rst index 14e83f49e6..892fd4ab41 100644 --- a/doc/src/fix_cmap.rst +++ b/doc/src/fix_cmap.rst @@ -29,11 +29,12 @@ Description This command enables CMAP cross-terms to be added to simulations which use the CHARMM force field. These are relevant for any CHARMM model of a peptide or protein sequences that is 3 or more amino-acid -residues long; see :ref:`(Buck) ` and :ref:`(Brooks) ` for details, -including the analytic energy expressions for CMAP interactions. The -CMAP cross-terms add additional potential energy contributions to pairs -of overlapping phi-psi dihedrals of amino-acids, which are important -to properly represent their conformational behavior. +residues long; see :ref:`(Buck) ` and :ref:`(Brooks) ` +for details, including the analytic energy expressions for CMAP +interactions. The CMAP cross-terms add additional potential energy +contributions to pairs of overlapping phi-psi dihedrals of +amino-acids, which are important to properly represent their +conformational behavior. The examples/cmap directory has a sample input script and data file for a small peptide, that illustrates use of the fix cmap command. @@ -93,19 +94,27 @@ the note below about how to include the CMAP energy when performing an Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the list of CMAP cross-terms to :doc:`binary restart files `. See the :doc:`read_restart ` command +This fix writes the list of CMAP cross-terms to :doc:`binary restart +files `. See the :doc:`read_restart ` command for info on how to re-specify a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the potential "energy" of the CMAP interactions system's -potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy of the CMAP interactions to both +the global potential energy and peratom potential energies of the +system as part of :doc:`thermodynamic output ` or +output by the :doc:`compute pe/atom ` command. The +default setting for this fix is :doc:`fix_modify energy yes +`. -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the contribution due to the interaction between atoms to -the system's virial as part of :doc:`thermodynamic output `. -The default is *virial yes* +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution due to the CMAP interactions to both +the global pressure and per-atom stress of the system via the +:doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial yes `. This fix computes a global scalar which can be accessed by various :doc:`output commands `. The scalar is the potential @@ -121,8 +130,8 @@ invoked by the :doc:`minimize ` command. .. note:: If you want the potential energy associated with the CMAP terms - forces to be included in the total potential energy of the system (the - quantity being minimized), you MUST enable the + forces to be included in the total potential energy of the system + (the quantity being minimized), you MUST not disable the :doc:`fix_modify ` *energy* option for this fix. Restrictions diff --git a/doc/src/fix_colvars.rst b/doc/src/fix_colvars.rst index fbc39f3f2f..3f503410d3 100644 --- a/doc/src/fix_colvars.rst +++ b/doc/src/fix_colvars.rst @@ -35,12 +35,12 @@ Examples Description """"""""""" -This fix interfaces LAMMPS to the collective variables "Colvars" -library, which allows to calculate potentials of mean force -(PMFs) for any set of colvars, using different sampling methods: -currently implemented are the Adaptive Biasing Force (ABF) method, -metadynamics, Steered Molecular Dynamics (SMD) and Umbrella Sampling -(US) via a flexible harmonic restraint bias. +This fix interfaces LAMMPS to the collective variables (Colvars) +library, which allows to calculate potentials of mean force (PMFs) for +any set of colvars, using different sampling methods: currently +implemented are the Adaptive Biasing Force (ABF) method, metadynamics, +Steered Molecular Dynamics (SMD) and Umbrella Sampling (US) via a +flexible harmonic restraint bias. This documentation describes only the fix colvars command itself and LAMMPS specific parts of the code. The full documentation of the @@ -98,9 +98,11 @@ This fix writes the current status of the colvars module into mode status file that is written by the colvars module itself and the kind of information in both files is identical. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change from the biasing force added by the fix -to the system's potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy change from the biasing force added by +Colvars to the global potential energy of the system as part of +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify energy no `. The *fix_modify configfile * option allows to add settings from an additional config file to the colvars module. This option can @@ -113,15 +115,16 @@ in a pair of double quotes ("), or can span multiple lines when bracketed by a pair of triple double quotes (""", like python embedded documentation). This fix computes a global scalar which can be accessed by various -:doc:`output commands `. The scalar is the cumulative -energy change due to this fix. The scalar value calculated by this -fix is "extensive". +:doc:`output commands `. The scalar is the Colvars +energy mentioned above. The scalar value calculated by this fix is +"extensive". Restrictions """""""""""" This fix is part of the USER-COLVARS package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. +LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. There can only be one colvars fix active at a time. Since the interface communicates only the minimum amount of information and colvars module diff --git a/doc/src/fix_efield.rst b/doc/src/fix_efield.rst index 227e048c8c..86dcda9bc5 100644 --- a/doc/src/fix_efield.rst +++ b/doc/src/fix_efield.rst @@ -100,9 +100,9 @@ minimize the orientation of dipoles in an applied electric field. The *energy* keyword specifies the name of an atom-style :doc:`variable ` which is used to compute the energy of each -atom as function of its position. Like variables used for *ex*\ , *ey*\ , -*ez*\ , the energy variable is specified as v_name, where name is the -variable name. +atom as function of its position. Like variables used for *ex*\ , +*ey*\ , *ez*\ , the energy variable is specified as v_name, where name +is the variable name. Note that when the *energy* keyword is used during an energy minimization, you must insure that the formula defined for the @@ -117,31 +117,38 @@ minimization will not converge properly. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the potential "energy" inferred by the added force due to -the electric field to the system's potential energy as part of -:doc:`thermodynamic output `. This is a fictitious -quantity but is needed so that the :doc:`minimize ` command -can include the forces added by this fix in a consistent manner. -I.e. there is a decrease in potential energy when atoms move in the -direction of the added force due to the electric field. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy inferred by the added force due +to the electric field to the global potential energy of the system as +part of :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify energy no `. +Note that this energy is a fictitious quantity but is needed so that +the :doc:`minimize ` command can include the forces added by +this fix in a consistent manner. I.e. there is a decrease in +potential energy when atoms move in the direction of the added force +due to the electric field. -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the contribution due to the added forces on atoms to the -system's virial as part of :doc:`thermodynamic output `. -The default is *virial no* +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution due to the added forces on atoms to +both the global pressure and per-atom stress of the system via the +:doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial no `. The :doc:`fix_modify ` *respa* option is supported by this -fix. This allows to set at which level of the :doc:`r-RESPA ` -integrator the fix adding its forces. Default is the outermost level. +fix. This allows to set at which level of the :doc:`r-RESPA +` integrator the fix adding its forces. Default is the +outermost level. This fix computes a global scalar and a global 3-vector of forces, -which can be accessed by various :doc:`output commands `. -The scalar is the potential energy discussed above. The vector is the -total force added to the group of atoms. The scalar and vector values -calculated by this fix are "extensive". +which can be accessed by various :doc:`output commands +`. The scalar is the potential energy discussed above. +The vector is the total force added to the group of atoms. The scalar +and vector values calculated by this fix are "extensive". No parameter of this fix can be used with the *start/stop* keywords of the :doc:`run ` command. diff --git a/doc/src/fix_external.rst b/doc/src/fix_external.rst index fb71888025..938b798ddf 100644 --- a/doc/src/fix_external.rst +++ b/doc/src/fix_external.rst @@ -84,7 +84,8 @@ code `Quest `_. If mode is *pf/array* then the fix simply stores force values in an array. The fix adds these forces to each atom in the group, once -every *Napply* steps, similar to the way the :doc:`fix addforce ` command works. +every *Napply* steps, similar to the way the :doc:`fix addforce +` command works. The name of the public force array provided by the FixExternal class is @@ -150,19 +151,27 @@ of properties that the caller code may want to communicate to LAMMPS Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the potential "energy" set by the external driver to the -system's potential energy as part of :doc:`thermodynamic output `. This is a fictitious quantity but is -needed so that the :doc:`minimize ` command can include the -forces added by this fix in a consistent manner. I.e. there is a -decrease in potential energy when atoms move in the direction of the -added force. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy set by the external driver to +both the global potential energy and peratom potential energies of the +system as part of :doc:`thermodynamic output ` or output +by the :doc:`compute pe/atom ` command. The default +setting for this fix is :doc:`fix_modify energy yes `. +Note that this energy may be a fictitious quantity but it is needed so +that the :doc:`minimize ` command can include the forces +added by this fix in a consistent manner. I.e. there is a decrease in +potential energy when atoms move in the direction of the added force. -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the contribution due to the interactions computed by the -external program to the system's virial as part of :doc:`thermodynamic output `. The default is *virial yes* +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution computed by the external program to +both the global pressure and per-atom stress of the system via the +:doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial yes `. This fix computes a global scalar which can be accessed by various :doc:`output commands `. The scalar is the potential @@ -178,7 +187,7 @@ invoked by the :doc:`minimize ` command. If you want the fictitious potential energy associated with the added forces to be included in the total potential energy of the - system (the quantity being minimized), you MUST enable the + system (the quantity being minimized), you MUST not disable the :doc:`fix_modify ` *energy* option for this fix. Restrictions diff --git a/doc/src/fix_ffl.rst b/doc/src/fix_ffl.rst index 3888c439c5..0bfdaf87c9 100644 --- a/doc/src/fix_ffl.rst +++ b/doc/src/fix_ffl.rst @@ -76,28 +76,31 @@ Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" The instantaneous values of the extended variables are written to -:doc:`binary restart files `. Because the state of the random -number generator is not saved in restart files, this means you cannot -do "exact" restarts with this fix, where the simulation continues on -the same as if no restart had taken place. However, in a statistical -sense, a restarted simulation should produce the same behavior. -Note however that you should use a different seed each time you -restart, otherwise the same sequence of random numbers will be used -each time, which might lead to stochastic synchronization and +:doc:`binary restart files `. Because the state of the +random number generator is not saved in restart files, this means you +cannot do "exact" restarts with this fix, where the simulation +continues on the same as if no restart had taken place. However, in a +statistical sense, a restarted simulation should produce the same +behavior. Note however that you should use a different seed each time +you restart, otherwise the same sequence of random numbers will be +used each time, which might lead to stochastic synchronization and subtle artifacts in the sampling. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". + This fix can ramp its target temperature over multiple runs, using the *start* and *stop* keywords of the :doc:`run ` command. See the :doc:`run ` command for details of how to do this. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Langevin thermostatting to the -system's potential energy as part of :doc:`thermodynamic output `. - -This fix computes a global scalar which can be accessed by various -:doc:`output commands `. The scalar is the cumulative -energy change due to this fix. The scalar value calculated by this -fix is "extensive". +This fix is not invoked during :doc:`energy minimization `. Restrictions """""""""""" diff --git a/doc/src/fix_flow_gauss.rst b/doc/src/fix_flow_gauss.rst index b40fefff0e..67a0218c9b 100644 --- a/doc/src/fix_flow_gauss.rst +++ b/doc/src/fix_flow_gauss.rst @@ -55,17 +55,22 @@ momentum. GD applies an external fluctuating gravitational field that acts as a driving force to keep the system away from equilibrium. To maintain steady state, a profile-unbiased thermostat must be implemented to -dissipate the heat that is added by the driving force. :doc:`Compute temp/profile ` can be used to implement a +dissipate the heat that is added by the driving force. :doc:`Compute +temp/profile ` can be used to implement a profile-unbiased thermostat. A common use of this fix is to compute a pressure drop across a pipe, pore, or membrane. The pressure profile can be computed in LAMMPS with -:doc:`compute stress/atom ` and :doc:`fix ave/chunk `, or with the hardy method in :doc:`fix atc `. Note that the simple :doc:`compute stress/atom ` method is only accurate away -from inhomogeneities in the fluid, such as fixed wall atoms. Further, -the computed pressure profile must be corrected for the acceleration +:doc:`compute stress/atom ` and :doc:`fix +ave/chunk `, or with the hardy method in :doc:`fix atc +`. Note that the simple :doc:`compute stress/atom +` method is only accurate away from +inhomogeneities in the fluid, such as fixed wall atoms. Further, the +computed pressure profile must be corrected for the acceleration applied by GD before computing a pressure drop or comparing it to -other methods, such as the pump method :ref:`(Zhu) `. The pressure -correction is discussed and described in :ref:`(Strong) `. +other methods, such as the pump method :ref:`(Zhu) `. The +pressure correction is discussed and described in :ref:`(Strong) +`. For a complete example including the considerations discussed above, see the examples/USER/flow_gauss directory. @@ -102,14 +107,15 @@ computed by the fix will return zero. of wall atoms fixed, such as :doc:`fix spring/self `. If this fix is used in a simulation with the :doc:`rRESPA ` -integrator, the applied acceleration must be computed and applied at the same -rRESPA level as the interactions between the flowing fluid and the obstacle. -The rRESPA level at which the acceleration is applied can be changed using -the :doc:`fix_modify ` *respa* option discussed below. If the -flowing fluid and the obstacle interact through multiple interactions that are -computed at different rRESPA levels, then there must be a separate flow/gauss -fix for each level. For example, if the flowing fluid and obstacle interact -through pairwise and long-range Coulomb interactions, which are computed at +integrator, the applied acceleration must be computed and applied at +the same rRESPA level as the interactions between the flowing fluid +and the obstacle. The rRESPA level at which the acceleration is +applied can be changed using the :doc:`fix_modify ` +*respa* option discussed below. If the flowing fluid and the obstacle +interact through multiple interactions that are computed at different +rRESPA levels, then there must be a separate flow/gauss fix for each +level. For example, if the flowing fluid and obstacle interact through +pairwise and long-range Coulomb interactions, which are computed at rRESPA levels 3 and 4, respectively, then there must be two separate flow/gauss fixes, one that specifies *fix_modify respa 3* and one with *fix_modify respa 4*. @@ -119,38 +125,49 @@ flow/gauss fixes, one that specifies *fix_modify respa 3* and one with Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix is part of the USER-MISC package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. +No information about this fix is written to :doc:`binary restart files +`. -No information about this fix is written to :doc:`binary restart files `. - -The :doc:`fix_modify ` *energy* option is supported by this -fix to subtract the work done from the -system's potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy added by the fix to the global +potential energy of the system as part of :doc:`thermodynamic output +`. The default setting for this fix is :doc:`fix_modify +energy no `. The :doc:`fix_modify ` *respa* option is supported by this -fix. This allows the user to set at which level of the :doc:`rRESPA ` -integrator the fix computes and adds the external acceleration. Default is the -outermost level. +fix. This allows the user to set at which level of the :doc:`rRESPA +` integrator the fix computes and adds the external +acceleration. Default is the outermost level. This fix computes a global scalar and a global 3-vector of forces, -which can be accessed by various :doc:`output commands `. -The scalar is the negative of the work done on the system, see above -discussion. The vector is the total force that this fix applied to -the group of atoms on the current timestep. The scalar and vector -values calculated by this fix are "extensive". +which can be accessed by various :doc:`output commands +`. The scalar is the negative of the work done on the +system, see the discussion above. It is only calculated if the +*energy* keyword is enabled or :doc:`fix_modify energy yes +` is set. + +The vector is the total force that this fix applied to the group of +atoms on the current timestep. The scalar and vector values +calculated by this fix are "extensive". No parameter of this fix can be used with the *start/stop* keywords of the :doc:`run ` command. +This fix is not invoked during :doc:`energy minimization `. + Restrictions """""""""""" - none + +This fix is part of the USER-MISC package. It is only enabled if +LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. Related commands """""""""""""""" -:doc:`fix addforce `, :doc:`compute temp/profile `, :doc:`velocity ` +:doc:`fix addforce `, +:doc:`compute temp/profile `, +:doc:`velocity ` Default """"""" diff --git a/doc/src/fix_gcmc.rst b/doc/src/fix_gcmc.rst index 8ea84303bc..894e4ec4b1 100644 --- a/doc/src/fix_gcmc.rst +++ b/doc/src/fix_gcmc.rst @@ -398,12 +398,13 @@ adds all inserted atoms of the specified type to the Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the state of the fix to :doc:`binary restart files `. This includes information about the random -number generator seed, the next timestep for MC exchanges, the number -of MC step attempts and successes etc. See -the :doc:`read_restart ` command for info on how to -re-specify a fix in an input script that reads a restart file, so that -the operation of the fix continues in an uninterrupted fashion. +This fix writes the state of the fix to :doc:`binary restart files +`. This includes information about the random number +generator seed, the next timestep for MC exchanges, the number of MC +step attempts and successes etc. See the :doc:`read_restart +` command for info on how to re-specify a fix in an +input script that reads a restart file, so that the operation of the +fix continues in an uninterrupted fashion. .. note:: @@ -411,8 +412,8 @@ the operation of the fix continues in an uninterrupted fashion. after reading the restart with :doc:`reset_timestep `. The fix will try to detect it and stop with an error. -None of the :doc:`fix_modify ` options are relevant to this -fix. +None of the :doc:`fix_modify ` options are relevant to +this fix. This fix computes a global vector of length 8, which can be accessed by various :doc:`output commands `. The vector values are @@ -430,7 +431,8 @@ the following global cumulative quantities: The vector values calculated by this fix are "extensive". No parameter of this fix can be used with the *start/stop* keywords of -the :doc:`run ` command. This fix is not invoked during :doc:`energy minimization `. +the :doc:`run ` command. This fix is not invoked during +:doc:`energy minimization `. Restrictions """""""""""" diff --git a/doc/src/fix_gle.rst b/doc/src/fix_gle.rst index 1f14c7245d..a341e0fa08 100644 --- a/doc/src/fix_gle.rst +++ b/doc/src/fix_gle.rst @@ -103,28 +103,31 @@ Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" The instantaneous values of the extended variables are written to -:doc:`binary restart files `. Because the state of the random -number generator is not saved in restart files, this means you cannot -do "exact" restarts with this fix, where the simulation continues on -the same as if no restart had taken place. However, in a statistical -sense, a restarted simulation should produce the same behavior. -Note however that you should use a different seed each time you -restart, otherwise the same sequence of random numbers will be used -each time, which might lead to stochastic synchronization and +:doc:`binary restart files `. Because the state of the +random number generator is not saved in restart files, this means you +cannot do "exact" restarts with this fix, where the simulation +continues on the same as if no restart had taken place. However, in a +statistical sense, a restarted simulation should produce the same +behavior. Note however that you should use a different seed each time +you restart, otherwise the same sequence of random numbers will be +used each time, which might lead to stochastic synchronization and subtle artifacts in the sampling. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". + This fix can ramp its target temperature over multiple runs, using the *start* and *stop* keywords of the :doc:`run ` command. See the :doc:`run ` command for details of how to do this. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Langevin thermostatting to the -system's potential energy as part of :doc:`thermodynamic output `. - -This fix computes a global scalar which can be accessed by various -:doc:`output commands `. The scalar is the cumulative -energy change due to this fix. The scalar value calculated by this -fix is "extensive". +This fix is not invoked during :doc:`energy minimization `. Restrictions """""""""""" diff --git a/doc/src/fix_gravity.rst b/doc/src/fix_gravity.rst index a163eb4ab2..bd585b1312 100644 --- a/doc/src/fix_gravity.rst +++ b/doc/src/fix_gravity.rst @@ -103,23 +103,27 @@ Restart, fix_modify, output, run start/stop, minimize info No information about this fix is written to :doc:`binary restart files `. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the gravitational potential energy of the system to the -system's potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the gravitational potential energy of the system to +the global potential energy of the system as part of +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify energy no `. The :doc:`fix_modify ` *respa* option is supported by this -fix. This allows to set at which level of the :doc:`r-RESPA ` -integrator the fix is adding its forces. Default is the outermost level. +fix. This allows to set at which level of the :doc:`r-RESPA +` integrator the fix is adding its forces. Default is the +outermost level. This fix computes a global scalar which can be accessed by various -:doc:`output commands `. This scalar is the gravitational -potential energy of the particles in the defined field, namely mass \* -(g dot x) for each particles, where x and mass are the particles -position and mass, and g is the gravitational field. The scalar value -calculated by this fix is "extensive". +:doc:`output commands `. This scalar is the +gravitational potential energy of the particles in the defined field, +namely mass \* (g dot x) for each particles, where x and mass are the +particles position and mass, and g is the gravitational field. The +scalar value calculated by this fix is "extensive". No parameter of this fix can be used with the *start/stop* keywords of -the :doc:`run ` command. This fix is not invoked during :doc:`energy minimization `. +the :doc:`run ` command. This fix is not invoked during +:doc:`energy minimization `. Restrictions """""""""""" diff --git a/doc/src/fix_hyper_global.rst b/doc/src/fix_hyper_global.rst index 52f542f647..0b46616c5e 100644 --- a/doc/src/fix_hyper_global.rst +++ b/doc/src/fix_hyper_global.rst @@ -200,16 +200,20 @@ algorithm. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy of the bias potential to the system's -potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy of the bias potential to the global +potential energy of the system as part of :doc:`thermodynamic output +`. The default setting for this fix is :doc:`fix_modify +energy no `. -This fix computes a global scalar and global vector of length 12, which -can be accessed by various :doc:`output commands `. The -scalar is the magnitude of the bias potential (energy units) applied on -the current timestep. The vector stores the following quantities: +This fix computes a global scalar and global vector of length 12, +which can be accessed by various :doc:`output commands +`. The scalar is the magnitude of the bias potential +(energy units) applied on the current timestep. The vector stores the +following quantities: * 1 = boost factor on this step (unitless) * 2 = max strain :math:`E_{ij}` of any bond on this step (absolute value, unitless) @@ -253,7 +257,8 @@ The scalar and vector values calculated by this fix are all "intensive". No parameter of this fix can be used with the *start/stop* keywords of -the :doc:`run ` command. This fix is not invoked during :doc:`energy minimization `. +the :doc:`run ` command. This fix is not invoked during +:doc:`energy minimization `. Restrictions """""""""""" diff --git a/doc/src/fix_hyper_local.rst b/doc/src/fix_hyper_local.rst index da197cad20..90238e0b4a 100644 --- a/doc/src/fix_hyper_local.rst +++ b/doc/src/fix_hyper_local.rst @@ -370,15 +370,17 @@ Restart, fix_modify, output, run start/stop, minimize info No information about this fix is written to :doc:`binary restart files `. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy of the bias potential to the system's potential -energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy of the bias potential to the global +potential energy of the system as part of :doc:`thermodynamic output +`. The default setting for this fix is :doc:`fix_modify +energy no `. This fix computes a global scalar and global vector of length 28, -which can be accessed by various :doc:`output commands `. -The scalar is the magnitude of the bias potential (energy units) -applied on the current timestep, summed over all biased bonds. The -vector stores the following quantities: +which can be accessed by various :doc:`output commands +`. The scalar is the magnitude of the bias potential +(energy units) applied on the current timestep, summed over all biased +bonds. The vector stores the following quantities: * 1 = average boost for all bonds on this step (unitless) * 2 = # of biased bonds on this step @@ -510,8 +512,8 @@ Value 27 computes the average boost for biased bonds only on this step. Value 28 is the count of bonds with an absolute value of strain >= q on this step. -The scalar and vector values calculated by this fix are all -"intensive". +The scalar value is an "extensive" quantity since it grows with the +system size; the vector values are all "intensive". This fix also computes a local vector of length the number of bonds currently in the system. The value for each bond is its :math:`C_{ij}` @@ -524,7 +526,8 @@ close to 1.0, which indicates a good choice of :math:`V^{max}`. The local values calculated by this fix are unitless. No parameter of this fix can be used with the *start/stop* keywords of -the :doc:`run ` command. This fix is not invoked during :doc:`energy minimization `. +the :doc:`run ` command. This fix is not invoked during +:doc:`energy minimization `. Restrictions """""""""""" diff --git a/doc/src/fix_indent.rst b/doc/src/fix_indent.rst index 2a77e27268..e9dab5141f 100644 --- a/doc/src/fix_indent.rst +++ b/doc/src/fix_indent.rst @@ -179,20 +179,25 @@ contains *xlat*\ , *ylat*\ , *zlat* keywords of the Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy of interaction between atoms and the indenter to -the system's potential energy as part of :doc:`thermodynamic output `. The energy of each particle interacting -with the indenter is K/3 (r - R)\^3. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy of interaction between atoms and the +indenter to the global potential energy of the system as part of +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify energy no `. The energy of +each particle interacting with the indenter is K/3 (r - R)\^3. The :doc:`fix_modify ` *respa* option is supported by this -fix. This allows to set at which level of the :doc:`r-RESPA ` -integrator the fix is adding its forces. Default is the outermost level. +fix. This allows to set at which level of the :doc:`r-RESPA +` integrator the fix is adding its forces. Default is the +outermost level. This fix computes a global scalar energy and a global 3-vector of -forces (on the indenter), which can be accessed by various :doc:`output commands `. The scalar and vector values calculated -by this fix are "extensive". +forces (on the indenter), which can be accessed by various +:doc:`output commands `. The scalar and vector values +calculated by this fix are "extensive". The forces due to this fix are imposed during an energy minimization, invoked by the :doc:`minimize ` command. Note that if you @@ -204,10 +209,10 @@ check if you have done this. .. note:: - If you want the atom/indenter interaction energy to be included - in the total potential energy of the system (the quantity being - minimized), you must enable the :doc:`fix_modify ` *energy* - option for this fix. + If you want the atom/indenter interaction energy to be included in + the total potential energy of the system (the quantity being + minimized), you must enable the :doc:`fix_modify ` + *energy* option for this fix. Restrictions """""""""""" diff --git a/doc/src/fix_langevin.rst b/doc/src/fix_langevin.rst index e31434247f..918573fc6b 100644 --- a/doc/src/fix_langevin.rst +++ b/doc/src/fix_langevin.rst @@ -230,7 +230,7 @@ conservation. .. note:: - this accumulated energy does NOT include kinetic energy removed + This accumulated energy does NOT include kinetic energy removed by the *zero* flag. LAMMPS will print a warning when both options are active. @@ -244,7 +244,8 @@ to zero by subtracting off an equal part of it from each atom in the group. As a result, the center-of-mass of a system with zero initial momentum will not drift over time. -The keyword *gjf* can be used to run the :ref:`Gronbech-Jensen/Farago ` time-discretization of the Langevin model. As +The keyword *gjf* can be used to run the :ref:`Gronbech-Jensen/Farago +` time-discretization of the Langevin model. As described in the papers cited below, the purpose of this method is to enable longer timesteps to be used (up to the numerical stability limit of the integrator), while still producing the correct Boltzmann @@ -252,19 +253,20 @@ distribution of atom positions. The current implementation provides the user with the option to output the velocity in one of two forms: *vfull* or *vhalf*\ , which replaces -the outdated option *yes*\ . The *gjf* option *vfull* outputs the on-site -velocity given in :ref:`Gronbech-Jensen/Farago `; this velocity -is shown to be systematically lower than the target temperature by a small -amount, which grows quadratically with the timestep. -The *gjf* option *vhalf* outputs the 2GJ half-step velocity given in -:ref:`Gronbech Jensen/Gronbech-Jensen <2Gronbech-Jensen>`; for linear systems, -this velocity is shown to not have any statistical errors for any stable time step. -An overview of statistically correct Boltzmann and Maxwell-Boltzmann -sampling of true on-site and true half-step velocities is given in -:ref:`Gronbech-Jensen <1Gronbech-Jensen>`. -Regardless of the choice of output velocity, the sampling of the configurational -distribution of atom positions is the same, and linearly consistent with the -target temperature. +the outdated option *yes*\ . The *gjf* option *vfull* outputs the +on-site velocity given in :ref:`Gronbech-Jensen/Farago +`; this velocity is shown to be systematically lower +than the target temperature by a small amount, which grows +quadratically with the timestep. The *gjf* option *vhalf* outputs the +2GJ half-step velocity given in :ref:`Gronbech Jensen/Gronbech-Jensen +<2Gronbech-Jensen>`; for linear systems, this velocity is shown to not +have any statistical errors for any stable time step. An overview of +statistically correct Boltzmann and Maxwell-Boltzmann sampling of true +on-site and true half-step velocities is given in +:ref:`Gronbech-Jensen <1Gronbech-Jensen>`. Regardless of the choice +of output velocity, the sampling of the configurational distribution +of atom positions is the same, and linearly consistent with the target +temperature. ---------- @@ -287,16 +289,18 @@ you have defined to this fix which will be used in its thermostatting procedure, as described above. For consistency, the group used by this fix and by the compute should be the same. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Langevin thermostatting to the -system's potential energy as part of :doc:`thermodynamic output `. Note that use of this option requires -setting the *tally* keyword to *yes*\ . +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*\ , but only if the *tally* keyword to set to +*yes*\ . See the :doc:`thermo_style ` doc page for +details. This fix computes a global scalar which can be accessed by various -:doc:`output commands `. The scalar is the cumulative -energy change due to this fix. The scalar value calculated by this -fix is "extensive". Note that calculation of this quantity requires -setting the *tally* keyword to *yes*\ . +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". +Note that calculation of this quantity also requires setting the +*tally* keyword to *yes*\ . This fix can ramp its target temperature over multiple runs, using the *start* and *stop* keywords of the :doc:`run ` command. See the diff --git a/doc/src/fix_langevin_eff.rst b/doc/src/fix_langevin_eff.rst index 29df472d83..c6fd1b0b40 100644 --- a/doc/src/fix_langevin_eff.rst +++ b/doc/src/fix_langevin_eff.rst @@ -81,16 +81,18 @@ you have defined to this fix which will be used in its thermostatting procedure, as described above. For consistency, the group used by this fix and by the compute should be the same. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Langevin thermostatting to the -system's potential energy as part of :doc:`thermodynamic output `. Note that use of this option requires -setting the *tally* keyword to *yes*\ . +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*\ , but only if the *tally* keyword to set to +*yes*\ . See the :doc:`thermo_style ` doc page for +details. This fix computes a global scalar which can be accessed by various -:doc:`output commands `. The scalar is the cumulative -energy change due to this fix. The scalar value calculated by this -fix is "extensive". Note that calculation of this quantity requires -setting the *tally* keyword to *yes*\ . +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". +Note that calculation of this quantity also requires setting the +*tally* keyword to *yes*\ . This fix can ramp its target temperature over multiple runs, using the *start* and *stop* keywords of the :doc:`run ` command. See the diff --git a/doc/src/fix_latte.rst b/doc/src/fix_latte.rst index 0d6488af26..58a8ddbe20 100644 --- a/doc/src/fix_latte.rst +++ b/doc/src/fix_latte.rst @@ -107,16 +107,27 @@ larger system sizes and longer time scales Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the potential energy computed by LATTE to the system's -potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy computed by LATTE to the global +potential energy of the system as part of :doc:`thermodynamic output +`. The default setting for this fix is :doc:`fix_modify +energy yes `. -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the LATTE DFTB contribution to the system's virial as part -of :doc:`thermodynamic output `. The default is *virial -yes* +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution compute by LATTE to the global +pressure of the system via the :doc:`compute pressure +` command. This can be accessed by +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify virial yes `. + +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution computed by LATTE to the global +pressure of the system as part of :doc:`thermodynamic output +`. The default setting for this fix is :doc:`fix_modify +virial yes `. This fix computes a global scalar which can be accessed by various :doc:`output commands `. The scalar is the potential @@ -127,20 +138,22 @@ No parameter of this fix can be used with the *start/stop* keywords of the :doc:`run ` command. The DFTB forces computed by LATTE via this fix are imposed during an -energy minimization, invoked by the :doc:`minimize ` command. +energy minimization, invoked by the :doc:`minimize ` +command. .. note:: If you want the potential energy associated with the DFTB forces to be included in the total potential energy of the system (the - quantity being minimized), you MUST enable the + quantity being minimized), you MUST not disable the :doc:`fix_modify ` *energy* option for this fix. Restrictions """""""""""" This fix is part of the LATTE package. It is only enabled if LAMMPS -was built with that package. See the :doc:`Build package ` doc page for more info. +was built with that package. See the :doc:`Build package +` doc page for more info. You must use metal units, as set by the :doc:`units ` command to use this fix. diff --git a/doc/src/fix_lb_rigid_pc_sphere.rst b/doc/src/fix_lb_rigid_pc_sphere.rst index 66b5f5f8d5..b6a19c98d5 100644 --- a/doc/src/fix_lb_rigid_pc_sphere.rst +++ b/doc/src/fix_lb_rigid_pc_sphere.rst @@ -50,7 +50,8 @@ This fix is based on the :doc:`fix rigid ` command, and was created to be used in place of that fix, to integrate the equations of motion of spherical rigid bodies when a lattice-Boltzmann fluid is present with a user-specified value of the force-coupling constant. -The fix uses the integration algorithm described in :ref:`Mackay et al. ` to update the positions, velocities, and orientations of +The fix uses the integration algorithm described in :ref:`Mackay et +al. ` to update the positions, velocities, and orientations of a set of spherical rigid bodies experiencing velocity dependent hydrodynamic forces. The spherical bodies are assumed to rotate as solid, uniform density spheres, with moments of inertia calculated @@ -88,9 +89,18 @@ Restart, fix_modify, output, run start/stop, minimize info No information about the *rigid* and *rigid/nve* fixes are written to :doc:`binary restart files `. +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution due to the added forces on atoms to +both the global pressure and per-atom stress of the system via the +:doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial yes `. + Similar to the :doc:`fix rigid ` command: The rigid fix -computes a global scalar which can be accessed by various :doc:`output commands `. The scalar value calculated by these -fixes is "intensive". The scalar is the current temperature of the +computes a global scalar which can be accessed by various :doc:`output +commands `. The scalar value calculated by these fixes +is "intensive". The scalar is the current temperature of the collection of rigid bodies. This is averaged over all rigid bodies and their translational and rotational degrees of freedom. The translational energy of a rigid body is 1/2 m v\^2, where m = total @@ -130,7 +140,8 @@ Restrictions """""""""""" This fix is part of the USER-LB package. It is only enabled if LAMMPS -was built with that package. See the :doc:`Build package ` doc page for more info. +was built with that package. See the :doc:`Build package +` doc page for more info. Can only be used if a lattice-Boltzmann fluid has been created via the :doc:`fix lb/fluid ` command, and must come after this diff --git a/doc/src/fix_modify.rst b/doc/src/fix_modify.rst index 604b63550c..a6bac6ac44 100644 --- a/doc/src/fix_modify.rst +++ b/doc/src/fix_modify.rst @@ -59,43 +59,58 @@ define their own compute by default, as described in their documentation. Thus this option allows the user to override the default method for computing P. -The *energy* keyword can be used with fixes that support it. -*energy yes* adds a contribution to the potential energy of the -system. The fix's global and per-atom -energy is included in the calculation performed by the :doc:`compute pe ` or :doc:`compute pe/atom ` -commands. See the :doc:`thermo_style ` command for info -on how potential energy is output. For fixes that tally a global -energy, it can be printed by using the keyword f_ID in the -thermo_style custom command, where ID is the fix-ID of the appropriate -fix. +The *energy* keyword can be used with fixes that support it, which is +explained at the bottom of their doc page. *Energy yes* will add a +contribution to the potential energy of the system. More +specifically, the fix's global or per-atom energy is included in the +calculation performed by the :doc:`compute pe ` or +:doc:`compute pe/atom ` commands. The former is what +is used the :doc:`thermo_style ` command for output of +any quantity that includes the global potential energy of the system. +Note that the :doc:`compute pe ` and :doc:`compute pe/atom +` commands also have an option to include or exclude +the contribution from fixes. For fixes that tally a global energy, it +can also be printed with thermodynamic output by using the keyword +f_ID in the thermo_style custom command, where ID is the fix-ID of the +appropriate fix. .. note:: - You must also specify the *energy yes* setting for a fix if you - are using it when performing an :doc:`energy minimization ` - and if you want the energy and forces it produces to be part of the - optimization criteria. - -The *virial* keyword can be used with fixes that support it. -*virial yes* adds a contribution to the virial of the -system. The fix's global and per-atom -virial is included in the calculation performed by the :doc:`compute pressure ` or -:doc:`compute stress/atom ` -commands. See the :doc:`thermo_style ` command for info -on how pressure is output. + If you are performing an :doc:`energy minimization ` with + one of these fixes and want the energy and forces it produces to be + part of the optimization criteria, you must specify the *energy + yes* setting. .. note:: - You must specify the *virial yes* setting for a fix if you - are doing :doc:`box relaxation ` and - if you want virial contribution of the fix to be part of the - relaxation criteria, although this seems unlikely. + For most fixes that support the *energy* keyword, the default + setting is *no*. For a few it is *yes*, when a user would expect + that to be the case. The doc page of each fix gives the default. + +The *virial* keyword can be used with fixes that support it, which is +explained at the bottom of their doc page. *Virial yes* will add a +contribution to the virial of the system. More specifically, the +fix's global or per-atom virial is included in the calculation +performed by the :doc:`compute pressure ` or +:doc:`compute stress/atom ` commands. The former +is what is used the :doc:`thermo_style ` command for +output of any quantity that includes the global pressure of the +system. Note that the :doc:`compute pressure ` and +:doc:`compute stress/atom ` commands also have an +option to include or exclude the contribution from fixes. .. note:: - This option is only supported by fixes that explicitly say - so. For some of these (e.g. the :doc:`fix shake ` command) - the default setting is *virial yes*\ , for others it is *virial no*\ . + If you are performing an :doc:`energy minimization ` with + :doc:`box relaxation ` and one of these fixes and + want the virial contribution of the fix to be part of the + optimization criteria, you must specify the *virial yes* setting. + +.. note:: + + For most fixes that support the *virial* keyword, the default + setting is *no*. For a few it is *yes*, when a user would expect + that to be the case. The doc page of each fix gives the default. For fixes that set or modify forces, it may be possible to select at which :doc:`r-RESPA ` level the fix operates via the *respa* @@ -112,13 +127,15 @@ The *dynamic/dof* keyword determines whether the number of atoms N in the fix group and their associated degrees of freedom are re-computed each time a temperature is computed. Only fix styles that calculate their own internal temperature use this option. Currently this is -only the :doc:`fix rigid/nvt/small ` and :doc:`fix rigid/npt/small ` commands for the purpose of +only the :doc:`fix rigid/nvt/small ` and :doc:`fix +rigid/npt/small ` commands for the purpose of thermostatting rigid body translation and rotation. By default, N and their DOF are assumed to be constant. If you are adding atoms or -molecules to the system (see the :doc:`fix pour `, :doc:`fix deposit `, and :doc:`fix gcmc ` commands) or +molecules to the system (see the :doc:`fix pour `, :doc:`fix +deposit `, and :doc:`fix gcmc ` commands) or expect atoms or molecules to be lost (e.g. due to exiting the -simulation box or via :doc:`fix evaporate `), then -this option should be used to insure the temperature is correctly +simulation box or via :doc:`fix evaporate `), then this +option should be used to insure the temperature is correctly normalized. .. note:: diff --git a/doc/src/fix_msst.rst b/doc/src/fix_msst.rst index 14158227d0..e3996776a1 100644 --- a/doc/src/fix_msst.rst +++ b/doc/src/fix_msst.rst @@ -131,20 +131,29 @@ command for info on how to re-specify a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". + The progress of the MSST can be monitored by printing the global scalar and global vector quantities computed by the fix. -The scalar is the cumulative energy change due to the fix. This is -also the energy added to the potential energy by the -:doc:`fix_modify ` *energy* command. With this command, the -thermo keyword *etotal* prints the conserved quantity of the MSST -dynamic equations. This can be used to test if the MD timestep is -sufficiently small for accurate integration of the dynamic -equations. See also :doc:`thermo_style ` command. +As mentioned above, the scalar is the cumulative energy change due to +the fix. By monitoring the thermodynamic *econserve* output, this can +be used to test if the MD timestep is sufficiently small for accurate +integration of the dynamic equations. -The global vector contains four values in this order: +The global vector contains four values in the following order. The +vector values output by this fix are "intensive". -[\ *dhugoniot*\ , *drayleigh*\ , *lagrangian_speed*, *lagrangian_position*] +[\ *dhugoniot*\ , *drayleigh*\ , *lagrangian_speed*, +*lagrangian_position*] 1. *dhugoniot* is the departure from the Hugoniot (temperature units). 2. *drayleigh* is the departure from the Rayleigh line (pressure units). @@ -157,17 +166,11 @@ headers, the following LAMMPS commands are suggested: .. code-block:: LAMMPS fix msst all msst z - fix_modify msst energy yes variable dhug equal f_msst[1] variable dray equal f_msst[2] variable lgr_vel equal f_msst[3] variable lgr_pos equal f_msst[4] - thermo_style custom step temp ke pe lz pzz etotal v_dhug v_dray v_lgr_vel v_lgr_pos f_msst - -These fixes compute a global scalar and a global vector of 4 -quantities, which can be accessed by various :doc:`output commands -`. The scalar values calculated by this fix are -"extensive"; the vector values are "intensive". + thermo_style custom step temp ke pe lz pzz econserve v_dhug v_dray v_lgr_vel v_lgr_pos f_msst Restrictions """""""""""" diff --git a/doc/src/fix_nh.rst b/doc/src/fix_nh.rst index 988a147abe..590211eda7 100644 --- a/doc/src/fix_nh.rst +++ b/doc/src/fix_nh.rst @@ -594,17 +594,20 @@ compute temperature on a subset of atoms. specified by the *press* keyword will be unaffected by the *temp* setting. -The :doc:`fix_modify ` *energy* option is supported by these -fixes to add the energy change induced by Nose/Hoover thermostatting -and barostatting to the system's potential energy as part of -:doc:`thermodynamic output `. +The cumulative energy change in the system imposed by these fixes, via +either thermostatting and/or barostatting, is included in the +:doc:`thermodynamic output ` keywords *ecouple* and +*econserve*. See the :doc:`thermo_style ` doc page for +details. -These fixes compute a global scalar and a global vector of quantities, -which can be accessed by various :doc:`output commands `. -The scalar value calculated by these fixes is "extensive"; the vector -values are "intensive". +These fixes compute a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". -The scalar is the cumulative energy change due to the fix. +These fixes compute also compute a global vector of quantities, which +can be accessed by various :doc:`output commands `. The +vector values are "intensive". The vector stores internal Nose/Hoover thermostat and barostat variables. The number and meaning of the vector values depends on diff --git a/doc/src/fix_nph_asphere.rst b/doc/src/fix_nph_asphere.rst index da0510492e..011630a534 100644 --- a/doc/src/fix_nph_asphere.rst +++ b/doc/src/fix_nph_asphere.rst @@ -87,7 +87,8 @@ It also means that changing attributes of *thermo_temp* or Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the state of the Nose/Hoover barostat to :doc:`binary restart files `. See the :doc:`read_restart ` +This fix writes the state of the Nose/Hoover barostat to :doc:`binary +restart files `. See the :doc:`read_restart ` command for info on how to re-specify a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. @@ -101,9 +102,10 @@ consistent with the virial term computed using all atoms for the pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover barostatting to -the system's potential energy as part of :doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix nph ` command. diff --git a/doc/src/fix_nph_body.rst b/doc/src/fix_nph_body.rst index fd517b5243..4c91d28588 100644 --- a/doc/src/fix_nph_body.rst +++ b/doc/src/fix_nph_body.rst @@ -84,7 +84,8 @@ It also means that changing attributes of *thermo_temp* or Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the state of the Nose/Hoover barostat to :doc:`binary restart files `. See the :doc:`read_restart ` +This fix writes the state of the Nose/Hoover barostat to :doc:`binary +restart files `. See the :doc:`read_restart ` command for info on how to re-specify a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. @@ -98,9 +99,10 @@ consistent with the virial term computed using all atoms for the pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover barostatting to -the system's potential energy as part of :doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix nph ` command. diff --git a/doc/src/fix_nph_sphere.rst b/doc/src/fix_nph_sphere.rst index 4b76f7252f..6062faa50e 100644 --- a/doc/src/fix_nph_sphere.rst +++ b/doc/src/fix_nph_sphere.rst @@ -100,7 +100,8 @@ It also means that changing attributes of *thermo_temp* or Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the state of the Nose/Hoover barostat to :doc:`binary restart files `. See the :doc:`read_restart ` +This fix writes the state of the Nose/Hoover barostat to :doc:`binary +restart files `. See the :doc:`read_restart ` command for info on how to re-specify a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. @@ -114,9 +115,10 @@ consistent with the virial term computed using all atoms for the pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover barostatting to -the system's potential energy as part of :doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix nph ` command. diff --git a/doc/src/fix_nphug.rst b/doc/src/fix_nphug.rst index d55f435d43..776b3e4849 100644 --- a/doc/src/fix_nphug.rst +++ b/doc/src/fix_nphug.rst @@ -168,43 +168,47 @@ specified, then the instantaneous value in the system at the start of the simulation is used. The :doc:`fix_modify ` *temp* and *press* options are -supported by these fixes. You can use them to assign a -:doc:`compute ` you have defined to this fix which will be used -in its thermostatting or barostatting procedure, as described above. -If you do this, note that the kinetic energy derived from the compute +supported by this fix. You can use them to assign a :doc:`compute +` you have defined to this fix which will be used in its +thermostatting or barostatting procedure, as described above. If you +do this, note that the kinetic energy derived from the compute temperature should be consistent with the virial term computed using all atoms for the pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms. -The :doc:`fix_modify ` *energy* option is supported by these -fixes to add the energy change induced by Nose/Hoover thermostatting -and barostatting to the system's potential energy as part of -:doc:`thermodynamic output `. Either way, this energy is \*not\* -included in the definition of internal energy E when calculating the value -of Delta in the above equation. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. Note that this energy is \*not\* included in +the definition of internal energy E when calculating the value of +Delta in the above equation. -These fixes compute a global scalar and a global vector of quantities, -which can be accessed by various :doc:`output commands `. -The scalar value calculated by these fixes is "extensive"; the vector -values are "intensive". +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". -The scalar is the cumulative energy change due to the fix. +This fix also computes a global vector of quantities, which can be +accessed by various :doc:`output commands `. The scalar +The vector values are "intensive". -The vector stores three quantities unique to this fix (:math:`\Delta`, Us, and up), -followed by all the internal Nose/Hoover thermostat and barostat -variables defined for :doc:`fix npt `. Delta is the deviation -of the temperature from the target temperature, given by the above equation. -Us and up are the shock and particle velocity corresponding to a steady -shock calculated from the RH conditions. They have units of distance/time. +The vector stores three quantities unique to this fix (:math:`\Delta`, +Us, and up), followed by all the internal Nose/Hoover thermostat and +barostat variables defined for :doc:`fix npt `. Delta is the +deviation of the temperature from the target temperature, given by the +above equation. Us and up are the shock and particle velocity +corresponding to a steady shock calculated from the RH +conditions. They have units of distance/time. Restrictions """""""""""" This fix style is part of the SHOCK package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. +LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. -All the usual restrictions for :doc:`fix npt ` apply, -plus the additional ones mentioned above. +All the usual restrictions for :doc:`fix npt ` apply, plus the +additional ones mentioned above. Related commands """""""""""""""" diff --git a/doc/src/fix_npt_asphere.rst b/doc/src/fix_npt_asphere.rst index de2289a068..f65ecd8d19 100644 --- a/doc/src/fix_npt_asphere.rst +++ b/doc/src/fix_npt_asphere.rst @@ -124,10 +124,10 @@ consistent with the virial term computed using all atoms for the pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover thermostatting and -barostatting to the system's potential energy as part of -:doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix npt ` command. diff --git a/doc/src/fix_npt_body.rst b/doc/src/fix_npt_body.rst index 412d522a45..af0a0fb252 100644 --- a/doc/src/fix_npt_body.rst +++ b/doc/src/fix_npt_body.rst @@ -45,7 +45,8 @@ can also have a bias velocity removed from them before thermostatting takes place; see the description below. Additional parameters affecting the thermostat and barostat are -specified by keywords and values documented with the :doc:`fix npt ` command. See, for example, discussion of the *temp*\ , +specified by keywords and values documented with the :doc:`fix npt +` command. See, for example, discussion of the *temp*\ , *iso*\ , *aniso*\ , and *dilate* keywords. The particles in the fix group are the only ones whose velocities and @@ -121,10 +122,10 @@ consistent with the virial term computed using all atoms for the pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover thermostatting and -barostatting to the system's potential energy as part of -:doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix npt ` command. diff --git a/doc/src/fix_npt_cauchy.rst b/doc/src/fix_npt_cauchy.rst index 034a2c9c8d..8ef74b25c9 100644 --- a/doc/src/fix_npt_cauchy.rst +++ b/doc/src/fix_npt_cauchy.rst @@ -487,27 +487,31 @@ compute temperature on a subset of atoms. .. note:: If both the *temp* and *press* keywords are used in a single - thermo_modify command (or in two separate commands), then the order in - which the keywords are specified is important. Note that a :doc:`pressure compute ` defines its own temperature compute as - an argument when it is specified. The *temp* keyword will override - this (for the pressure compute being used by fix npt), but only if the - *temp* keyword comes after the *press* keyword. If the *temp* keyword - comes before the *press* keyword, then the new pressure compute - specified by the *press* keyword will be unaffected by the *temp* - setting. + thermo_modify command (or in two separate commands), then the order + in which the keywords are specified is important. Note that a + :doc:`pressure compute ` defines its own + temperature compute as an argument when it is specified. The + *temp* keyword will override this (for the pressure compute being + used by fix npt), but only if the *temp* keyword comes after the + *press* keyword. If the *temp* keyword comes before the *press* + keyword, then the new pressure compute specified by the *press* + keyword will be unaffected by the *temp* setting. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover thermostatting -and barostatting to the system's potential energy as part of -:doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix, due to +thermostatting and/or barostatting, is included in the +:doc:`thermodynamic output ` keywords *ecouple* and +*econserve*. See the :doc:`thermo_style ` doc page for +details. -This fix computes a global scalar and a global vector of quantities, -which can be accessed by various :doc:`output commands `. -The scalar value calculated by this fix is "extensive"; the vector +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". + +This fix also computes a global vector of quantities, which can be +accessed by various :doc:`output commands `. Rhe vector values are "intensive". -The scalar is the cumulative energy change due to the fix. - The vector stores internal Nose/Hoover thermostat and barostat variables. The number and meaning of the vector values depends on which fix is used and the settings for keywords *tchain* and *pchain*\ , diff --git a/doc/src/fix_npt_sphere.rst b/doc/src/fix_npt_sphere.rst index 7363375ff3..dd78cebbf1 100644 --- a/doc/src/fix_npt_sphere.rst +++ b/doc/src/fix_npt_sphere.rst @@ -93,13 +93,14 @@ IDs of the new computes are the fix-ID + underscore + "temp" or fix_ID since pressure is computed for the entire system. Note that these are NOT the computes used by thermodynamic output (see -the :doc:`thermo_style ` command) with ID = *thermo_temp* -and *thermo_press*. This means you can change the attributes of this -fix's temperature or pressure via the -:doc:`compute_modify ` command or print this temperature -or pressure during thermodynamic output via the :doc:`thermo_style custom ` command using the appropriate compute-ID. -It also means that changing attributes of *thermo_temp* or -*thermo_press* will have no effect on this fix. +the :doc:`thermo_style ` command) with ID = +*thermo_temp* and *thermo_press*. This means you can change the +attributes of this fix's temperature or pressure via the +:doc:`compute_modify ` command or print this +temperature or pressure during thermodynamic output via the +:doc:`thermo_style custom ` command using the +appropriate compute-ID. It also means that changing attributes of +*thermo_temp* or *thermo_press* will have no effect on this fix. Like other fixes that perform thermostatting, this fix can be used with :doc:`compute commands ` that calculate a temperature @@ -129,18 +130,18 @@ a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. The :doc:`fix_modify ` *temp* and *press* options are -supported by this fix. You can use them to assign a -:doc:`compute ` you have defined to this fix which will be used -in its thermostatting or barostatting procedure. If you do this, note -that the kinetic energy derived from the compute temperature should be +supported by this fix. You can use them to assign a :doc:`compute +` you have defined to this fix which will be used in its +thermostatting or barostatting procedure. If you do this, note that +the kinetic energy derived from the compute temperature should be consistent with the virial term computed using all atoms for the pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover thermostatting and -barostatting to the system's potential energy as part of -:doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix npt ` command. diff --git a/doc/src/fix_nvt_asphere.rst b/doc/src/fix_nvt_asphere.rst index bb4139d95f..98e8a5b495 100644 --- a/doc/src/fix_nvt_asphere.rst +++ b/doc/src/fix_nvt_asphere.rst @@ -92,19 +92,21 @@ thermal degrees of freedom, and the bias is added back in. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the state of the Nose/Hoover thermostat to :doc:`binary restart files `. See the :doc:`read_restart ` -command for info on how to re-specify a fix in an input script that -reads a restart file, so that the operation of the fix continues in an -uninterrupted fashion. +This fix writes the state of the Nose/Hoover thermostat to +:doc:`binary restart files `. See the :doc:`read_restart +` command for info on how to re-specify a fix in an +input script that reads a restart file, so that the operation of the +fix continues in an uninterrupted fashion. The :doc:`fix_modify ` *temp* option is supported by this fix. You can use it to assign a :doc:`compute ` you have defined to this fix which will be used in its thermostatting procedure. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover thermostatting to -the system's potential energy as part of :doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix nvt ` command. diff --git a/doc/src/fix_nvt_body.rst b/doc/src/fix_nvt_body.rst index b608c93f27..02b7d0c66c 100644 --- a/doc/src/fix_nvt_body.rst +++ b/doc/src/fix_nvt_body.rst @@ -89,19 +89,21 @@ thermal degrees of freedom, and the bias is added back in. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the state of the Nose/Hoover thermostat to :doc:`binary restart files `. See the :doc:`read_restart ` -command for info on how to re-specify a fix in an input script that -reads a restart file, so that the operation of the fix continues in an -uninterrupted fashion. +This fix writes the state of the Nose/Hoover thermostat to +:doc:`binary restart files `. See the :doc:`read_restart +` command for info on how to re-specify a fix in an +input script that reads a restart file, so that the operation of the +fix continues in an uninterrupted fashion. The :doc:`fix_modify ` *temp* option is supported by this fix. You can use it to assign a :doc:`compute ` you have defined to this fix which will be used in its thermostatting procedure. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover thermostatting to -the system's potential energy as part of :doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix nvt ` command. diff --git a/doc/src/fix_nvt_sllod.rst b/doc/src/fix_nvt_sllod.rst index ff9a4f0d12..9ff22bca09 100644 --- a/doc/src/fix_nvt_sllod.rst +++ b/doc/src/fix_nvt_sllod.rst @@ -122,19 +122,21 @@ thermal degrees of freedom, and the bias is added back in. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the state of the Nose/Hoover thermostat to :doc:`binary restart files `. See the :doc:`read_restart ` -command for info on how to re-specify a fix in an input script that -reads a restart file, so that the operation of the fix continues in an -uninterrupted fashion. +This fix writes the state of the Nose/Hoover thermostat to +:doc:`binary restart files `. See the :doc:`read_restart +` command for info on how to re-specify a fix in an +input script that reads a restart file, so that the operation of the +fix continues in an uninterrupted fashion. The :doc:`fix_modify ` *temp* option is supported by this fix. You can use it to assign a :doc:`compute ` you have defined to this fix which will be used in its thermostatting procedure. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover thermostatting to -the system's potential energy as part of :doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix nvt ` command. diff --git a/doc/src/fix_nvt_sllod_eff.rst b/doc/src/fix_nvt_sllod_eff.rst index 09fc1ecff6..e07e990d4b 100644 --- a/doc/src/fix_nvt_sllod_eff.rst +++ b/doc/src/fix_nvt_sllod_eff.rst @@ -41,19 +41,21 @@ velocity. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the state of the Nose/Hoover thermostat to :doc:`binary restart files `. See the :doc:`read_restart ` -command for info on how to re-specify a fix in an input script that -reads a restart file, so that the operation of the fix continues in an -uninterrupted fashion. +This fix writes the state of the Nose/Hoover thermostat to +:doc:`binary restart files `. See the :doc:`read_restart +` command for info on how to re-specify a fix in an +input script that reads a restart file, so that the operation of the +fix continues in an uninterrupted fashion. The :doc:`fix_modify ` *temp* option is supported by this fix. You can use it to assign a :doc:`compute ` you have defined to this fix which will be used in its thermostatting procedure. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover thermostatting to -the system's potential energy as part of :doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix nvt/eff ` command. diff --git a/doc/src/fix_nvt_sphere.rst b/doc/src/fix_nvt_sphere.rst index 8226328cea..31c8d91889 100644 --- a/doc/src/fix_nvt_sphere.rst +++ b/doc/src/fix_nvt_sphere.rst @@ -106,19 +106,21 @@ thermal degrees of freedom, and the bias is added back in. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the state of the Nose/Hoover thermostat to :doc:`binary restart files `. See the :doc:`read_restart ` -command for info on how to re-specify a fix in an input script that -reads a restart file, so that the operation of the fix continues in an -uninterrupted fashion. +This fix writes the state of the Nose/Hoover thermostat to +:doc:`binary restart files `. See the :doc:`read_restart +` command for info on how to re-specify a fix in an +input script that reads a restart file, so that the operation of the +fix continues in an uninterrupted fashion. The :doc:`fix_modify ` *temp* option is supported by this fix. You can use it to assign a :doc:`compute ` you have defined to this fix which will be used in its thermostatting procedure. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change induced by Nose/Hoover thermostatting to -the system's potential energy as part of :doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes the same global scalar and global vector of quantities as does the :doc:`fix nvt ` command. diff --git a/doc/src/fix_orient.rst b/doc/src/fix_orient.rst index 31aa6074d1..3397261552 100644 --- a/doc/src/fix_orient.rst +++ b/doc/src/fix_orient.rst @@ -144,16 +144,20 @@ writing the orientation files is given in :ref:`(Wicaksono2) ` Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the potential energy of atom interactions with the grain -boundary driving force to the system's potential energy as part of -:doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy of atom interactions with the +grain boundary driving force to the global potential energy of the +system as part of :doc:`thermodynamic output `. The +default setting for this fix is :doc:`fix_modify energy no +`. -The :doc:`fix_modify ` *respa* option is supported by these -fixes. This allows to set at which level of the :doc:`r-RESPA ` -integrator a fix is adding its forces. Default is the outermost level. +The :doc:`fix_modify ` *respa* option is supported by +these fixes. This allows to set at which level of the :doc:`r-RESPA +` integrator a fix is adding its forces. Default is the +outermost level. This fix calculates a global scalar which can be accessed by various :doc:`output commands `. The scalar is the potential @@ -166,13 +170,16 @@ order parameter Xi and normalized order parameter (0 to 1) for each atom. The per-atom values can be accessed on any timestep. No parameter of this fix can be used with the *start/stop* keywords of -the :doc:`run ` command. This fix is not invoked during :doc:`energy minimization `. +the :doc:`run ` command. + +This fix is not invoked during :doc:`energy minimization `. Restrictions """""""""""" This fix is part of the MISC package. It is only enabled if LAMMPS -was built with that package. See the :doc:`Build package ` doc page for more info. +was built with that package. See the :doc:`Build package +` doc page for more info. This fix should only be used with fcc or bcc lattices. diff --git a/doc/src/fix_orient_eco.rst b/doc/src/fix_orient_eco.rst index 58ff38268f..1db83338d4 100644 --- a/doc/src/fix_orient_eco.rst +++ b/doc/src/fix_orient_eco.rst @@ -26,22 +26,24 @@ Examples Description """"""""""" -The fix applies a synthetic driving force to a grain boundary which can -be used for the investigation of grain boundary motion. The affiliation -of atoms to either of the two grains forming the grain boundary is -determined from an orientation-dependent order parameter as described -in :ref:`(Ulomek) `. The potential energy of atoms is either increased by an amount -of 0.5*\ *u0* or -0.5*\ *u0* according to the orientation of the surrounding -crystal. This creates a potential energy gradient which pushes atoms near -the grain boundary to orient according to the energetically favorable -grain orientation. This fix is designed for applications in bicrystal system -with one grain boundary and open ends, or two opposite grain boundaries in -a periodic system. In either case, the entire system can experience a -displacement during the simulation which needs to be accounted for in the -evaluation of the grain boundary velocity. While the basic method is -described in :ref:`(Ulomek) `, the implementation follows the efficient -implementation from :ref:`(Schratt & Mohles) `. The synthetic potential energy added to an -atom j is given by the following formulas +The fix applies a synthetic driving force to a grain boundary which +can be used for the investigation of grain boundary motion. The +affiliation of atoms to either of the two grains forming the grain +boundary is determined from an orientation-dependent order parameter +as described in :ref:`(Ulomek) `. The potential energy of +atoms is either increased by an amount of 0.5*\ *u0* or -0.5*\ *u0* +according to the orientation of the surrounding crystal. This creates +a potential energy gradient which pushes atoms near the grain boundary +to orient according to the energetically favorable grain +orientation. This fix is designed for applications in bicrystal system +with one grain boundary and open ends, or two opposite grain +boundaries in a periodic system. In either case, the entire system can +experience a displacement during the simulation which needs to be +accounted for in the evaluation of the grain boundary velocity. While +the basic method is described in :ref:`(Ulomek) `, the +implementation follows the efficient implementation from +:ref:`(Schratt & Mohles) `. The synthetic potential energy +added to an atom j is given by the following formulas .. math:: @@ -60,60 +62,69 @@ atom j is given by the following formulas which are fully explained in :ref:`(Ulomek) ` and :ref:`(Schratt & Mohles) `. -The force on each atom is the negative gradient of the synthetic potential energy. It -depends on the surrounding of this atom. An atom far from the grain boundary does not -experience a synthetic force as its surrounding is that of an oriented single crystal -and thermal fluctuations are masked by the parameter *eta*\ . Near the grain boundary -however, the gradient is nonzero and synthetic force terms are computed. -The orientationsFile specifies the perfect oriented crystal basis vectors for the -two adjoining crystals. The first three lines (line=row vector) for the energetically penalized and the -last three lines for the energetically favored grain assuming *u0* is positive. For -negative *u0*, this is reversed. With the *cutoff* parameter, the size of the region around -each atom which is used in the order parameter computation is defined. The cutoff must be -smaller than the interaction range of the MD potential. It should at -least include the nearest neighbor shell. For high temperatures or low angle -grain boundaries, it might be beneficial to increase the cutoff in order to get a more -precise identification of the atoms surrounding. However, computation time will -increase as more atoms are considered in the order parameter and force computation. -It is also worth noting that the cutoff radius must not exceed the communication -distance for ghost atoms in LAMMPS. With orientationsFile, the -6 oriented crystal basis vectors is specified. Each line of the input file -contains the three components of a primitive lattice vector oriented according to -the grain orientation in the simulation box. The first (last) three lines correspond -to the primitive lattice vectors of the first (second) grain. An example for -a :math:`\Sigma\langle001\rangle` mis-orientation is given at the end. - -If no synthetic energy difference between the grains is created, :math:`u0=0`, the -force computation is omitted. In this case, still, the order parameter of the -driving force is computed and can be used to track the grain boundary motion throughout the -simulation. - +The force on each atom is the negative gradient of the synthetic +potential energy. It depends on the surrounding of this atom. An atom +far from the grain boundary does not experience a synthetic force as +its surrounding is that of an oriented single crystal and thermal +fluctuations are masked by the parameter *eta*\ . Near the grain +boundary however, the gradient is nonzero and synthetic force terms +are computed. The orientationsFile specifies the perfect oriented +crystal basis vectors for the two adjoining crystals. The first three +lines (line=row vector) for the energetically penalized and the last +three lines for the energetically favored grain assuming *u0* is +positive. For negative *u0*, this is reversed. With the *cutoff* +parameter, the size of the region around each atom which is used in +the order parameter computation is defined. The cutoff must be smaller +than the interaction range of the MD potential. It should at least +include the nearest neighbor shell. For high temperatures or low angle +grain boundaries, it might be beneficial to increase the cutoff in +order to get a more precise identification of the atoms +surrounding. However, computation time will increase as more atoms are +considered in the order parameter and force computation. It is also +worth noting that the cutoff radius must not exceed the communication +distance for ghost atoms in LAMMPS. With orientationsFile, the 6 +oriented crystal basis vectors is specified. Each line of the input +file contains the three components of a primitive lattice vector +oriented according to the grain orientation in the simulation box. The +first (last) three lines correspond to the primitive lattice vectors +of the first (second) grain. An example for a +:math:`\Sigma\langle001\rangle` mis-orientation is given at the end. +If no synthetic energy difference between the grains is created, +:math:`u0=0`, the force computation is omitted. In this case, still, +the order parameter of the driving force is computed and can be used +to track the grain boundary motion throughout the simulation. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc: `binary restart files `. +No information about this fix is written to :doc: `binary restart +files `. -The :doc:`fix_modify ` *energy* option is supported by this fix to -add the potential energy of atom interactions with the grain boundary -driving force to the system's potential energy as part of thermodynamic output. -The total sum of added synthetic potential energy is computed and can be accessed -by various output options. The order parameter as well as the thermally masked -output parameter are stored in per-atom arrays and can also be accessed by various -:doc:`output commands `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy of atom interactions with the +grain boundary driving force to the global potential energy of the +system as part of :doc:`thermodynamic output `. The +default setting for this fix is :doc:`fix_modify energy no +`. -No parameter of this fix can be used with the start/stop keywords of the run command. This fix is -not invoked during energy minimization. +This fix calculates a per-atom array with 2 columns, which can be +accessed by indices 1-1 by any command that uses per-atom values from +a fix as input. See the :doc:`Howto output ` doc page +for an overview of LAMMPS output options. +The first column is the order parameter for each atom; the second is +the thermal masking value for each atom. Both are described above. +No parameter of this fix can be used with the start/stop keywords of +the run command. This fix is not invoked during energy minimization. Restrictions """""""""""" -This fix is part of the USER-MISC package. It is only enabled if LAMMPS was -built with that package. See the :doc:`Build package ` doc page for more info. - +This fix is part of the USER-MISC package. It is only enabled if +LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. Related commands diff --git a/doc/src/fix_plumed.rst b/doc/src/fix_plumed.rst index e2eadfe6bd..bd2c05adfe 100644 --- a/doc/src/fix_plumed.rst +++ b/doc/src/fix_plumed.rst @@ -66,7 +66,8 @@ plumed fix in the LAMMPS input. The *plumedfile* keyword allows the user to specify the name of the PLUMED input file. Instructions as to what should be included in a -plumed input file can be found in the `documentation for PLUMED `_ +plumed input file can be found in the `documentation for PLUMED +`_ The *outfile* keyword allows the user to specify the name of a file in which to output the PLUMED log. This log file normally just repeats the @@ -78,31 +79,45 @@ be specified by the user in the PLUMED input file. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -When performing a restart of a calculation that involves PLUMED you must -include a RESTART command in the PLUMED input file as detailed in the -`PLUMED documentation `_. When the restart command is found in -the PLUMED input PLUMED will append to the files that were generated in -the run that was performed previously. No part of the PLUMED restart -data is included in the LAMMPS restart files. Furthermore, any history -dependent bias potentials that were accumulated in previous calculations -will be read in when the RESTART command is included in the PLUMED -input. +When performing a restart of a calculation that involves PLUMED you +must include a RESTART command in the PLUMED input file as detailed in +the `PLUMED documentation `_. When the restart command +is found in the PLUMED input PLUMED will append to the files that were +generated in the run that was performed previously. No part of the +PLUMED restart data is included in the LAMMPS restart files. +Furthermore, any history dependent bias potentials that were +accumulated in previous calculations will be read in when the RESTART +command is included in the PLUMED input. -The :doc:`fix_modify ` *energy* option is not supported by -this fix. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy change from the biasing force added by +PLUMED to the global potential energy of the system as part of +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify energy yes `. -Nothing is computed by this fix that can be accessed by any of the -:doc:`output commands ` within LAMMPS. All the quantities -of interest can be output by commands that are native to PLUMED, -however. +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution from the biasing force to the global +pressure of the system via the :doc:`compute pressure +` command. This can be accessed by +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify virial yes `. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the PLUMED +energy mentioned above. The scalar value calculated by this fix is +"extensive". + +Note that other quantities of interest can be output by commands that +are native to PLUMED. Restrictions """""""""""" This fix is part of the USER-PLUMED package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. +LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. -There can only be one plumed fix active at a time. +There can only be one fix plumed command active at a time. Related commands """""""""""""""" diff --git a/doc/src/fix_poems.rst b/doc/src/fix_poems.rst index 0f173fcc4e..b782b7809e 100644 --- a/doc/src/fix_poems.rst +++ b/doc/src/fix_poems.rst @@ -39,14 +39,15 @@ useful for treating a large biomolecule as a collection of connected, coarse-grained particles. The coupling, associated motion constraints, and time integration is -performed by the software package `Parallelizable Open source Efficient Multibody Software (POEMS)` which computes the -constrained rigid-body motion of articulated (jointed) multibody -systems :ref:`(Anderson) `. POEMS was written and is distributed -by Prof Kurt Anderson, his graduate student Rudranarayan Mukherjee, -and other members of his group at Rensselaer Polytechnic Institute -(RPI). Rudranarayan developed the LAMMPS/POEMS interface. For -copyright information on POEMS and other details, please refer to the -documents in the poems directory distributed with LAMMPS. +performed by the software package `Parallelizable Open source +Efficient Multibody Software (POEMS)` which computes the constrained +rigid-body motion of articulated (jointed) multibody systems +:ref:`(Anderson) `. POEMS was written and is distributed by +Prof Kurt Anderson, his graduate student Rudranarayan Mukherjee, and +other members of his group at Rensselaer Polytechnic Institute (RPI). +Rudranarayan developed the LAMMPS/POEMS interface. For copyright +information on POEMS and other details, please refer to the documents +in the poems directory distributed with LAMMPS. This fix updates the positions and velocities of the rigid atoms with a constant-energy time integration, so you should not update the same @@ -107,7 +108,16 @@ off, and there is only a single fix poems defined. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. + +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution due to the added forces and torques +on atoms to both the global pressure and per-atom stress of the system +via the :doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial yes `. The :doc:`fix_modify ` *bodyforces* option is supported by this fix style to set whether per-body forces and torques are computed @@ -115,16 +125,18 @@ early or late in a timestep, i.e. at the post-force stage or at the final-integrate stage, respectively. No global or per-atom quantities are stored by this fix for access by -various :doc:`output commands `. No parameter of this fix -can be used with the *start/stop* keywords of the :doc:`run ` -command. This fix is not invoked during :doc:`energy minimization `. +various :doc:`output commands `. No parameter of this +fix can be used with the *start/stop* keywords of the :doc:`run ` +command. This fix is not invoked during :doc:`energy minimization +`. Restrictions """""""""""" -This fix is part of the :ref:`POEMS ` package. It is only enabled if LAMMPS -was built with that package, which also requires the POEMS library be -built and linked with LAMMPS. See the :doc:`Build package ` doc page for more info. +This fix is part of the :ref:`POEMS ` package. It is only +enabled if LAMMPS was built with that package, which also requires the +POEMS library be built and linked with LAMMPS. See the :doc:`Build +package ` doc page for more info. Related commands """""""""""""""" diff --git a/doc/src/fix_precession_spin.rst b/doc/src/fix_precession_spin.rst index 0cb8cc1148..5e818374a0 100644 --- a/doc/src/fix_precession_spin.rst +++ b/doc/src/fix_precession_spin.rst @@ -42,11 +42,12 @@ Examples Description """"""""""" -This fix applies a precession torque to each magnetic spin in the group. +This fix applies a precession torque to each magnetic spin in the +group. -Style *zeeman* is used for the simulation of the interaction -between the magnetic spins in the defined group and an external -magnetic field: +Style *zeeman* is used for the simulation of the interaction between +the magnetic spins in the defined group and an external magnetic +field: .. math:: @@ -62,17 +63,17 @@ with: The field value in Tesla is multiplied by the gyromagnetic ratio, :math:`g \cdot \mu_B/\hbar`, converting it into a precession frequency in -rad.THz (in metal units and with :math:`\mu_B = 5.788\cdot 10^{-5}` eV/T). +rad.THz (in metal units and with :math:`\mu_B = 5.788\cdot 10^{-5}` +eV/T). -As a comparison, the figure below displays the simulation of a -single spin (of norm :math:`\mu_i = 1.0`) submitted to an external -magnetic field of :math:`\vert B_{ext}\vert = 10.0\; \mathrm{Tesla}` (and oriented along the z -axis). -The upper plot shows the average magnetization along the -external magnetic field axis and the lower plot the Zeeman -energy, both as a function of temperature. -The reference result is provided by the plot of the Langevin -function for the same parameters. +As a comparison, the figure below displays the simulation of a single +spin (of norm :math:`\mu_i = 1.0`) submitted to an external magnetic +field of :math:`\vert B_{ext}\vert = 10.0\; \mathrm{Tesla}` (and +oriented along the z axis). The upper plot shows the average +magnetization along the external magnetic field axis and the lower +plot the Zeeman energy, both as a function of temperature. The +reference result is provided by the plot of the Langevin function for +the same parameters. .. image:: JPG/zeeman_langevin.jpg :align: center @@ -88,10 +89,12 @@ for the magnetic spins in the defined group: .. math:: - H_{aniso} = -\sum_{{ i}=1}^{N} K_{an}(\mathbf{r}_{i})\, \left( \vec{s}_{i} \cdot \vec{n}_{i} \right)^2 + H_{aniso} = -\sum_{{ i}=1}^{N} K_{an}(\mathbf{r}_{i})\, \left( + \vec{s}_{i} \cdot \vec{n}_{i} \right)^2 -with :math:`n` defining the direction of the anisotropy, and :math:`K` (in eV) its intensity. -If :math:`K > 0`, an easy axis is defined, and if :math:`K < 0`, an easy plane is defined. +with :math:`n` defining the direction of the anisotropy, and :math:`K` +(in eV) its intensity. If :math:`K > 0`, an easy axis is defined, and +if :math:`K < 0`, an easy plane is defined. Style *cubic* is used to simulate a cubic anisotropy, with three possible easy axis for the magnetic spins in the defined group: @@ -110,17 +113,17 @@ possible easy axis for the magnetic spins in the defined group: \left(\vec{s}_{i} \cdot \vec{n_2} \right)^2 \left(\vec{s}_{i} \cdot \vec{n_3} \right)^2 -with :math:`K_1` and :math:`K_{2c}` (in eV) the intensity coefficients and -:math:`\vec{n}_1`, :math:`\vec{n}_2` and :math:`\vec{n}_3` defining the three anisotropic directions -defined by the command (from *n1x* to *n3z*). -For :math:`\vec{n}_1 = (1 0 0)`, :math:`\vec{n}_2 = (0 1 0)`, and :math:`\vec{n}_3 = (0 0 1)`, :math:`K_1 < 0` defines an +with :math:`K_1` and :math:`K_{2c}` (in eV) the intensity coefficients +and :math:`\vec{n}_1`, :math:`\vec{n}_2` and :math:`\vec{n}_3` +defining the three anisotropic directions defined by the command (from +*n1x* to *n3z*). For :math:`\vec{n}_1 = (1 0 0)`, :math:`\vec{n}_2 = +(0 1 0)`, and :math:`\vec{n}_3 = (0 0 1)`, :math:`K_1 < 0` defines an iron type anisotropy (easy axis along the :math:`(0 0 1)`-type cube -edges), and :math:`K_1 > 0` defines a nickel type anisotropy (easy axis -along the :math:`(1 1 1)`-type cube diagonals). -:math:`K_2^c > 0` also defines easy axis along the :math:`(1 1 1)`-type cube -diagonals. -See chapter 2 of :ref:`(Skomski) ` for more details on cubic -anisotropies. +edges), and :math:`K_1 > 0` defines a nickel type anisotropy (easy +axis along the :math:`(1 1 1)`-type cube diagonals). :math:`K_2^c > +0` also defines easy axis along the :math:`(1 1 1)`-type cube +diagonals. See chapter 2 of :ref:`(Skomski) ` for more +details on cubic anisotropies. In all cases, the choice of :math:`(x y z)` only imposes the vector directions for the forces. Only the direction of the vector is @@ -134,32 +137,35 @@ Those styles can be combined within one single command line. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -By default, the energy associated to this fix is not added to the potential -energy of the system. -The :doc:`fix_modify ` *energy* option is supported by this fix -to add this magnetic potential energy to the potential energy of the system, +No information about this fix is written to :doc:`binary restart files +`. -.. code-block:: LAMMPS - - fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 - fix_modify 1 energy yes +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy associated with the spin precession +torque to the global potential energy of the system as part of +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify energy no `. This fix computes a global scalar which can be accessed by various -:doc:`output commands `. +:doc:`output commands `. The scalar is the potential +energy (in energy units) discussed in the previous paragraph. The +scalar value is an "extensive" quantity. -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. Restrictions """""""""""" The *precession/spin* style is part of the SPIN package. This style is only enabled if LAMMPS was built with this package, and if the -atom_style "spin" was declared. See the :doc:`Build package ` doc page for more info. +atom_style "spin" was declared. See the :doc:`Build package +` doc page for more info. -The *precession/spin* style can only be declared once. If more -than one precession type (for example combining an anisotropy and a Zeeman interactions) -has to be declared, they have to be chained in the same command -line (as shown in the examples above). +The *precession/spin* style can only be declared once. If more than +one precession type (for example combining an anisotropy and a Zeeman +interactions) has to be declared, they have to be chained in the same +command line (as shown in the examples above). Related commands """""""""""""""" diff --git a/doc/src/fix_qbmsst.rst b/doc/src/fix_qbmsst.rst index 8444312681..ef820a68d6 100644 --- a/doc/src/fix_qbmsst.rst +++ b/doc/src/fix_qbmsst.rst @@ -152,13 +152,30 @@ Because the state of the random number generator is not written to "exactly" in an uninterrupted fashion. However, in a statistical sense, a restarted simulation should produce similar behaviors of the system as if it is not interrupted. To achieve such a restart, one -should write explicitly the same value for *q*\ , *mu*\ , *damp*\ , *f_max*, -*N_f*, *eta*\ , and *beta* and set *tscale* = 0 if the system is -compressed during the first run. +should write explicitly the same value for *q*\ , *mu*\ , *damp*\ , +*f_max*, *N_f*, *eta*\ , and *beta* and set *tscale* = 0 if the system +is compressed during the first run. + +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". The progress of the QBMSST can be monitored by printing the global -scalar and global vector quantities computed by the fix. The global -vector contains five values in this order: +scalar and global vector quantities computed by the fix. + +As mentioned above, the scalar is the cumulative energy change due to +the fix. By monitoring the thermodynamic *econserve* output, this can +be used to test if the MD timestep is sufficiently small for accurate +integration of the dynamic equations. + +The global vector contains five values in the following order. The +vector values output by this fix are "intensive". [\ *dhugoniot*\ , *drayleigh*\ , *lagrangian_speed*, *lagrangian_position*, *quantum_temperature*] @@ -170,29 +187,21 @@ vector contains five values in this order: 5. *quantum_temperature* is the temperature of the quantum thermal bath :math:`T^{qm}`. To print these quantities to the log file with descriptive column -headers, the following LAMMPS commands are suggested. Here the -:doc:`fix_modify ` energy command is also enabled to allow -the thermo keyword *etotal* to print the quantity :math:`E^{tot}`. See -also the :doc:`thermo_style ` command. +headers, the following LAMMPS commands are suggested. .. parsed-literal:: fix fix_id all msst z - fix_modify fix_id energy yes variable dhug equal f_fix_id[1] variable dray equal f_fix_id[2] variable lgr_vel equal f_fix_id[3] variable lgr_pos equal f_fix_id[4] variable T_qm equal f_fix_id[5] - thermo_style custom step temp ke pe lz pzz etotal v_dhug v_dray v_lgr_vel v_lgr_pos v_T_qm f_fix_id + thermo_style custom step temp ke pe lz pzz econserve v_dhug v_dray v_lgr_vel v_lgr_pos v_T_qm f_fix_id -The global scalar under the entry f_fix_id is the quantity of thermo -energy as an extra part of :math:`E^{tot}`. This global scalar and the -vector of 5 quantities can be accessed by various :doc:`output commands `. -It is worth noting that the temp keyword -under the :doc:`thermo_style ` command print the -instantaneous classical temperature :math:`T^{cl}` as described -in the command :doc:`fix qtb `. +It is worth noting that the temp keyword for the :doc:`thermo_style +` command prints the instantaneous classical temperature +:math:`T^{cl}` as described by the :doc:`fix qtb ` command. ---------- @@ -200,7 +209,8 @@ Restrictions """""""""""" This fix style is part of the USER-QTB package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. +LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. All cell dimensions must be periodic. This fix can not be used with a triclinic cell. The QBMSST fix has been tested only for the group-ID diff --git a/doc/src/fix_restrain.rst b/doc/src/fix_restrain.rst index 1f127bce2f..84e525cdf2 100644 --- a/doc/src/fix_restrain.rst +++ b/doc/src/fix_restrain.rst @@ -219,15 +219,19 @@ current dihedral angle :math:`\phi` is equal to :math:`\phi_0`. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the potential energy associated with this fix to the -system's potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy associated with this fix to the +global potential energy of the system as part of :doc:`thermodynamic +output ` The default setting for this fix is +:doc:`fix_modify energy no `. The :doc:`fix_modify ` *respa* option is supported by this -fix. This allows to set at which level of the :doc:`r-RESPA ` -integrator the fix is adding its forces. Default is the outermost level. +fix. This allows to set at which level of the :doc:`r-RESPA +` integrator the fix is adding its forces. Default is the +outermost level. .. note:: diff --git a/doc/src/fix_rhok.rst b/doc/src/fix_rhok.rst index 38bde220ef..cffba5bafa 100644 --- a/doc/src/fix_rhok.rst +++ b/doc/src/fix_rhok.rst @@ -45,11 +45,34 @@ temperatures :ref:`(Pedersen) `. An example of using the interface pinning method is located in the *examples/USER/misc/rhok* directory. +Restart, fix_modify, output, run start/stop, minimize info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +No information about this fix is written to :doc:`binary restart files +`. + +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the potential energy calculated by the fix to the +global potential energy of the system as part of :doc:`thermodynamic +output `. The default setting for this fix is +:doc:`fix_modify energy no `. + +This fix computes a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the potential +energy discussed in the preceding paragraph. The scalar stored by +this fix is "extensive". + +No parameter of this fix can be used with the *start/stop* keywords of +the :doc:`run ` command. + +This fix is not invoked during :doc:`energy minimization `. + Restrictions """""""""""" This fix is part of the USER-MISC package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. +LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. Related commands """""""""""""""" diff --git a/doc/src/fix_rigid.rst b/doc/src/fix_rigid.rst index efadc5dd13..43750d59a1 100644 --- a/doc/src/fix_rigid.rst +++ b/doc/src/fix_rigid.rst @@ -752,25 +752,17 @@ rigid/nvt. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about the 4 NVE rigid styles is written to :doc:`binary restart files `. The exception is if the *infile* or -*mol* keyword is used, in which case an auxiliary file is written out -with rigid body information each time a restart file is written, as +No information about the 4 NVE rigid styles is written to :doc:`binary +restart files `. The exception is if the *infile* or *mol* +keyword is used, in which case an auxiliary file is written out with +rigid body information each time a restart file is written, as explained above for the *infile* keyword. For the 2 NVT rigid styles, -the state of the Nose/Hoover thermostat is written to :doc:`binary restart files `. Ditto for the 4 NPT and NPH rigid styles, and -the state of the Nose/Hoover barostat. See the -:doc:`read_restart ` command for info on how to re-specify -a fix in an input script that reads a restart file, so that the -operation of the fix continues in an uninterrupted fashion. - -The :doc:`fix_modify ` *energy* option is supported by the 6 -NVT, NPT, NPH rigid styles to add the energy change induced by the -thermostatting to the system's potential energy as part of -:doc:`thermodynamic output `. - -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the contribution due to keeping the objects rigid to the -system's virial as part of :doc:`thermodynamic output `. -The default is *virial yes* +the state of the Nose/Hoover thermostat is written to :doc:`binary +restart files `. Ditto for the 4 NPT and NPH rigid styles, +and the state of the Nose/Hoover barostat. See the :doc:`read_restart +` command for info on how to re-specify a fix in an +input script that reads a restart file, so that the operation of the +fix continues in an uninterrupted fashion. The :doc:`fix_modify ` *temp* and *press* options are supported by the 4 NPT and NPH rigid styles to change the computes @@ -783,6 +775,12 @@ all rigid styles to set whether per-body forces and torques are computed early or late in a timestep, i.e. at the post-force stage or at the final-integrate stage or the timestep, respectively. +The cumulative energy change in the system imposed by the 6 NVT, NPT, +NPH rigid fixes, via either thermostatting and/or barostatting, is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. + The 2 NVE rigid fixes compute a global scalar which can be accessed by various :doc:`output commands `. The scalar value calculated by these fixes is "intensive". The scalar is the current @@ -798,13 +796,22 @@ are removed from this calculation, but only for the *rigid* and The 6 NVT, NPT, NPH rigid fixes compute a global scalar which can be accessed by various :doc:`output commands `. The scalar -value calculated by these fixes is "extensive". The scalar is the -cumulative energy change due to the thermostatting and barostatting -the fix performs. +is the same cumulative energy change due to these fixes described +above. The scalar value calculated by this fix is "extensive". + +The :doc:`fix_modify ` *virial* option is supported by +these fixes to add the contribution due to the added forces on atoms +to both the global pressure and per-atom stress of the system via the +:doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial yes `. All of the *rigid* styles (not the *rigid/small* styles) compute a -global array of values which can be accessed by various :doc:`output commands `. Similar information about the bodies -defined by the *rigid/small* styles can be accessed via the :doc:`compute rigid/local ` command. +global array of values which can be accessed by various :doc:`output +commands `. Similar information about the bodies +defined by the *rigid/small* styles can be accessed via the +:doc:`compute rigid/local ` command. The number of rows in the array is equal to the number of rigid bodies. The number of columns is 15. Thus for each rigid body, 15 diff --git a/doc/src/fix_shake.rst b/doc/src/fix_shake.rst index 116edd8c7e..8e8f3e0988 100644 --- a/doc/src/fix_shake.rst +++ b/doc/src/fix_shake.rst @@ -191,22 +191,29 @@ LAMMPS closely follows (:ref:`Andersen (1983) `). Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the contribution due to keeping the constraints to the -system's virial as part of :doc:`thermodynamic output `. -The default is *virial yes* +No information about these fixes is written to :doc:`binary restart +files `. -No information about these fixes is written to :doc:`binary restart files `. None of the :doc:`fix_modify ` options -are relevant to these fixes. No global or per-atom quantities are -stored by these fixes for access by various :doc:`output commands `. No parameter of these fixes can be used -with the *start/stop* keywords of the :doc:`run ` command. These -fixes are not invoked during :doc:`energy minimization `. +The :doc:`fix_modify ` *virial* option is supported by +these fixes to add the contribution due to the added forces on atoms +to both the global pressure and per-atom stress of the system via the +:doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial yes `. + +No global or per-atom quantities are stored by these fixes for access +by various :doc:`output commands `. No parameter of +these fixes can be used with the *start/stop* keywords of the +:doc:`run ` command. These fixes are not invoked during +:doc:`energy minimization `. Restrictions """""""""""" These fixes are part of the RIGID package. They are only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. +LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. For computational efficiency, there can only be one shake or rattle fix defined in a simulation. diff --git a/doc/src/fix_smd.rst b/doc/src/fix_smd.rst index 8cbae29adf..8bf7c25478 100644 --- a/doc/src/fix_smd.rst +++ b/doc/src/fix_smd.rst @@ -48,10 +48,12 @@ Description """"""""""" This fix implements several options of steered MD (SMD) as reviewed in -:ref:`(Izrailev) `, which allows to induce conformational changes -in systems and to compute the potential of mean force (PMF) along the -assumed reaction coordinate :ref:`(Park) ` based on Jarzynski's -equality :ref:`(Jarzynski) `. This fix borrows a lot from :doc:`fix spring ` and :doc:`fix setforce `. +:ref:`(Izrailev) `, which allows to induce conformational +changes in systems and to compute the potential of mean force (PMF) +along the assumed reaction coordinate :ref:`(Park) ` based on +Jarzynski's equality :ref:`(Jarzynski) `. This fix borrows +a lot from :doc:`fix spring ` and :doc:`fix setforce +`. You can apply a moving spring force to a group of atoms (\ *tether* style) or between two groups of atoms (\ *couple* style). The spring @@ -108,30 +110,36 @@ See the :doc:`read_restart ` command for info on how to re-specify a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the contribution due to the added forces on atoms to the -system's virial as part of :doc:`thermodynamic output `. -The default is *virial no* +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution due to the added forces on atoms to +both the global pressure and per-atom stress of the system via the +:doc:`compute pressure ` and :doc:`compute +stress/atom ` commands. The former can be +accessed by :doc:`thermodynamic output `. The default +setting for this fix is :doc:`fix_modify virial no `. -The :doc:`fix_modify ` *respa* option is supported by -this fix. This allows to set at which level of the :doc:`r-RESPA ` -integrator the fix is adding its forces. Default is the outermost level. +The :doc:`fix_modify ` *respa* option is supported by this +fix. This allows to set at which level of the :doc:`r-RESPA +` integrator the fix is adding its forces. Default is the +outermost level. This fix computes a vector list of 7 quantities, which can be accessed -by various :doc:`output commands `. The quantities in the -vector are in this order: the x-, y-, and z-component of the pulling -force, the total force in direction of the pull, the equilibrium -distance of the spring, the distance between the two reference points, -and finally the accumulated PMF (the sum of pulling forces times -displacement). +by various :doc:`output commands `. The quantities in +the vector are in this order: the x-, y-, and z-component of the +pulling force, the total force in direction of the pull, the +equilibrium distance of the spring, the distance between the two +reference points, and finally the accumulated PMF (the sum of pulling +forces times displacement). The force is the total force on the group of atoms by the spring. In the case of the *couple* style, it is the force on the fix group -(group-ID) or the negative of the force on the second group (group-ID2). -The vector values calculated by this fix are "extensive". +(group-ID) or the negative of the force on the second group +(group-ID2). The vector values calculated by this fix are +"extensive". No parameter of this fix can be used with the *start/stop* keywords of -the :doc:`run ` command. This fix is not invoked during :doc:`energy minimization `. +the :doc:`run ` command. This fix is not invoked during +:doc:`energy minimization `. Restrictions """""""""""" diff --git a/doc/src/fix_spring.rst b/doc/src/fix_spring.rst index 06b9279c4d..007f2cd278 100644 --- a/doc/src/fix_spring.rst +++ b/doc/src/fix_spring.rst @@ -100,11 +100,14 @@ last example holds the ion a distance 5 away from the pore axis Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy stored in the spring to the system's potential -energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy stored in the spring to the global +potential energy of the system as part of :doc:`thermodynamic output +`. The default setting for this fix is :doc:`fix_modify +energy no `. The :doc:`fix_modify ` *respa* option is supported by this fix. This allows to set at which level of the :doc:`r-RESPA ` diff --git a/doc/src/fix_spring_chunk.rst b/doc/src/fix_spring_chunk.rst index a2d9945a0b..3d3069c53e 100644 --- a/doc/src/fix_spring_chunk.rst +++ b/doc/src/fix_spring_chunk.rst @@ -62,9 +62,11 @@ will define the same number of chunks. The restart data is only applied when the number of chunks matches. Otherwise the center of mass coordinates are recomputed. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy stored in all the springs to the system's potential -energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy stored in all the springs to the global +potential energy of the system as part of :doc:`thermodynamic output +`. The default setting for this fix is :doc:`fix_modify +energy no `. The :doc:`fix_modify ` *respa* option is supported by this fix. This allows to set at which level of the :doc:`r-RESPA ` diff --git a/doc/src/fix_spring_self.rst b/doc/src/fix_spring_self.rst index 8c5442943f..6cf0a9e0e7 100644 --- a/doc/src/fix_spring_self.rst +++ b/doc/src/fix_spring_self.rst @@ -44,15 +44,18 @@ plane, respectively. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -This fix writes the original coordinates of tethered atoms to :doc:`binary restart files `, so that the spring effect will be the -same in a restarted simulation. See the -:doc:`read_restart ` command for info on how to re-specify -a fix in an input script that reads a restart file, so that the -operation of the fix continues in an uninterrupted fashion. +This fix writes the original coordinates of tethered atoms to +:doc:`binary restart files `, so that the spring effect will +be the same in a restarted simulation. See the :doc:`read_restart +` command for info on how to re-specify a fix in an +input script that reads a restart file, so that the operation of the +fix continues in an uninterrupted fashion. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy stored in the per-atom springs to the system's -potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy stored in the per-atom springs to the +global potential energy of the system as part of :doc:`thermodynamic +output `. The default setting for this fix is +:doc:`fix_modify energy no `. The :doc:`fix_modify ` *respa* option is supported by this fix. This allows to set at which level of the :doc:`r-RESPA ` diff --git a/doc/src/fix_temp_berendsen.rst b/doc/src/fix_temp_berendsen.rst index ae9f8a933a..59f4de64a9 100644 --- a/doc/src/fix_temp_berendsen.rst +++ b/doc/src/fix_temp_berendsen.rst @@ -132,14 +132,15 @@ you have defined to this fix which will be used in its thermostatting procedure, as described above. For consistency, the group used by this fix and by the compute should be the same. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change implied by a velocity rescaling to the -system's potential energy as part of :doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes a global scalar which can be accessed by various -:doc:`output commands `. The scalar is the cumulative -energy change due to this fix. The scalar value calculated by this -fix is "extensive". +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". This fix can ramp its target temperature over multiple runs, using the *start* and *stop* keywords of the :doc:`run ` command. See the diff --git a/doc/src/fix_temp_csvr.rst b/doc/src/fix_temp_csvr.rst index 440a264ed5..ae276f9fc5 100644 --- a/doc/src/fix_temp_csvr.rst +++ b/doc/src/fix_temp_csvr.rst @@ -142,32 +142,36 @@ ensemble. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -These fixes write the cumulative global energy change and the -random number generator states to :doc:`binary restart files `. -See the :doc:`read_restart ` command for info on how to -re-specify a fix in an input script that reads a restart file, -so that the selected fix continues in an uninterrupted fashion. The -random number generator state can only be restored when the number -of processors remains unchanged from what is recorded in the restart file. - -No information about these fixes are written to :doc:`binary restart files `. +These fixes write the cumulative global energy change and the random +number generator states to :doc:`binary restart files `. See +the :doc:`read_restart ` command for info on how to +re-specify a fix in an input script that reads a restart file, so that +the selected fix continues in an uninterrupted fashion. The random +number generator state can only be restored when the number of +processors remains unchanged from what is recorded in the restart +file. The :doc:`fix_modify ` *temp* option is supported by these -fixes. You can use it to assign a temperature :doc:`compute ` -you have defined to these fixes which will be used in its thermostatting -procedure, as described above. For consistency, the group used by -these fixes and by the compute should be the same. +fixes. You can use it to assign a temperature :doc:`compute +` you have defined to these fixes which will be used in its +thermostatting procedure, as described above. For consistency, the +group used by these fixes and by the compute should be the same. -These fixes can ramp its target temperature over multiple runs, using -the *start* and *stop* keywords of the :doc:`run ` command. See the -:doc:`run ` command for details of how to do this. - -These fixes are not invoked during :doc:`energy minimization `. +The cumulative energy change in the system imposed by these fixes is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. These fixes compute a global scalar which can be accessed by various -:doc:`output commands `. The scalar is the cumulative -energy change due to the fix. The scalar value calculated by this fix -is "extensive". +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". + +These fixes can ramp their target temperature over multiple runs, +using the *start* and *stop* keywords of the :doc:`run ` command. +See the :doc:`run ` command for details of how to do this. + +These fixes are not invoked during :doc:`energy minimization `. Restrictions """""""""""" diff --git a/doc/src/fix_temp_rescale.rst b/doc/src/fix_temp_rescale.rst index b00d8e446a..125f74306e 100644 --- a/doc/src/fix_temp_rescale.rst +++ b/doc/src/fix_temp_rescale.rst @@ -100,13 +100,13 @@ ID of the new compute is the fix-ID + underscore + "temp", and the group for the new compute is the same as the fix group. Note that this is NOT the compute used by thermodynamic output (see -the :doc:`thermo_style ` command) with ID = *thermo_temp*. -This means you can change the attributes of this fix's temperature -(e.g. its degrees-of-freedom) via the -:doc:`compute_modify ` command or print this temperature -during thermodynamic output via the :doc:`thermo_style custom ` command using the appropriate compute-ID. -It also means that changing attributes of *thermo_temp* will have no -effect on this fix. +the :doc:`thermo_style ` command) with ID = +*thermo_temp*. This means you can change the attributes of this fix's +temperature (e.g. its degrees-of-freedom) via the :doc:`compute_modify +` command or print this temperature during +thermodynamic output via the :doc:`thermo_style custom ` +command using the appropriate compute-ID. It also means that changing +attributes of *thermo_temp* will have no effect on this fix. Like other fixes that perform thermostatting, this fix can be used with :doc:`compute commands ` that calculate a temperature @@ -114,13 +114,14 @@ after removing a "bias" from the atom velocities. E.g. removing the center-of-mass velocity from a group of atoms or only calculating temperature on the x-component of velocity or only calculating temperature for atoms in a geometric region. This is not done by -default, but only if the :doc:`fix_modify ` command is used -to assign a temperature compute to this fix that includes such a bias -term. See the doc pages for individual :doc:`compute commands ` to determine which ones include a bias. In -this case, the thermostat works in the following manner: the current -temperature is calculated taking the bias into account, bias is -removed from each atom, thermostatting is performed on the remaining -thermal degrees of freedom, and the bias is added back in. +default, but only if the :doc:`fix_modify ` command is +used to assign a temperature compute to this fix that includes such a +bias term. See the doc pages for individual :doc:`compute commands +` to determine which ones include a bias. In this case, the +thermostat works in the following manner: the current temperature is +calculated taking the bias into account, bias is removed from each +atom, thermostatting is performed on the remaining thermal degrees of +freedom, and the bias is added back in. ---------- @@ -139,15 +140,15 @@ you have defined to this fix which will be used in its thermostatting procedure, as described above. For consistency, the group used by this fix and by the compute should be the same. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change implied by a velocity rescaling to the -system's potential energy as part of :doc:`thermodynamic output -`. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes a global scalar which can be accessed by various -:doc:`output commands `. The scalar is the cumulative -energy change due to this fix. The scalar value calculated by this -fix is "extensive". +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". This fix can ramp its target temperature over multiple runs, using the *start* and *stop* keywords of the :doc:`run ` command. See the diff --git a/doc/src/fix_temp_rescale_eff.rst b/doc/src/fix_temp_rescale_eff.rst index 4ad175b62f..01017c0267 100644 --- a/doc/src/fix_temp_rescale_eff.rst +++ b/doc/src/fix_temp_rescale_eff.rst @@ -38,7 +38,8 @@ particles. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. The :doc:`fix_modify ` *temp* option is supported by this fix. You can use it to assign a temperature :doc:`compute ` @@ -46,14 +47,15 @@ you have defined to this fix which will be used in its thermostatting procedure, as described above. For consistency, the group used by this fix and by the compute should be the same. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy change implied by a velocity rescaling to the -system's potential energy as part of :doc:`thermodynamic output `. +The cumulative energy change in the system imposed by this fix is +included in the :doc:`thermodynamic output ` keywords +*ecouple* and *econserve*. See the :doc:`thermo_style ` +doc page for details. This fix computes a global scalar which can be accessed by various -:doc:`output commands `. The scalar is the cumulative -energy change due to this fix. The scalar value calculated by this -fix is "extensive". +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". This fix can ramp its target temperature over multiple runs, using the *start* and *stop* keywords of the :doc:`run ` command. See the diff --git a/doc/src/fix_tgnh_drude.rst b/doc/src/fix_tgnh_drude.rst index 92781cd9e8..1854655a82 100644 --- a/doc/src/fix_tgnh_drude.rst +++ b/doc/src/fix_tgnh_drude.rst @@ -218,10 +218,10 @@ a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. The :doc:`fix_modify ` *temp* and *press* options are -supported by these fixes. You can use them to assign a -:doc:`compute ` you have defined to this fix which will be used -in its thermostatting or barostatting procedure, as described above. -If you do this, note that the kinetic energy derived from the compute +supported by these fixes. You can use them to assign a :doc:`compute +` you have defined to this fix which will be used in its +thermostatting or barostatting procedure, as described above. If you +do this, note that the kinetic energy derived from the compute temperature should be consistent with the virial term computed using all atoms for the pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms. @@ -229,42 +229,49 @@ compute temperature on a subset of atoms. .. note:: If both the *temp* and *press* keywords are used in a single - thermo_modify command (or in two separate commands), then the order in - which the keywords are specified is important. Note that a :doc:`pressure compute ` defines its own temperature compute as - an argument when it is specified. The *temp* keyword will override - this (for the pressure compute being used by fix npt), but only if the - *temp* keyword comes after the *press* keyword. If the *temp* keyword - comes before the *press* keyword, then the new pressure compute - specified by the *press* keyword will be unaffected by the *temp* - setting. + thermo_modify command (or in two separate commands), then the order + in which the keywords are specified is important. Note that a + :doc:`pressure compute ` defines its own + temperature compute as an argument when it is specified. The + *temp* keyword will override this (for the pressure compute being + used by fix npt), but only if the *temp* keyword comes after the + *press* keyword. If the *temp* keyword comes before the *press* + keyword, then the new pressure compute specified by the *press* + keyword will be unaffected by the *temp* setting. -The :doc:`fix_modify ` *energy* option is supported by these -fixes to add the energy change induced by Nose/Hoover thermostatting -and barostatting to the system's potential energy as part of -:doc:`thermodynamic output `. +The cumulative energy change in the system imposed by these fixes, due +to thermostatting and/or barostatting, are included in the +:doc:`thermodynamic output ` keywords *ecouple* and +*econserve*. See the :doc:`thermo_style ` doc page for +details. -These fixes compute a global scalar and a global vector of quantities, -which can be accessed by various :doc:`output commands `. -The scalar value calculated by these fixes is "extensive"; the vector -values are "intensive". -The scalar is the cumulative energy change due to the fix. -The vector stores the three temperatures :math:`T_\mathrm{M}`, :math:`T_\mathrm{R}` and :math:`T_\mathrm{D}`. +These fixes compute a global scalar which can be accessed by various +:doc:`output commands `. The scalar is the same +cumulative energy change due to this fix described in the previous +paragraph. The scalar value calculated by this fix is "extensive". + +These fixes also compute a global vector of quantities, which can be +accessed by various :doc:`output commands `. The vector +values are "intensive". The vector stores the three temperatures +:math:`T_\mathrm{M}`, :math:`T_\mathrm{R}` and :math:`T_\mathrm{D}`. These fixes can ramp their external temperature and pressure over -multiple runs, using the *start* and *stop* keywords of the -:doc:`run ` command. See the :doc:`run ` command for details of -how to do this. +multiple runs, using the *start* and *stop* keywords of the :doc:`run +` command. See the :doc:`run ` command for details of how +to do this. -These fixes are not invoked during :doc:`energy minimization `. +These fixes are not invoked during :doc:`energy minimization +`. ---------- Restrictions """""""""""" -These fixes are only available when LAMMPS was built with the USER-DRUDE package. -These fixes cannot be used with dynamic groups as defined by the :doc:`group ` command. -These fixes cannot be used in 2D simulations. +These fixes are only available when LAMMPS was built with the +USER-DRUDE package. These fixes cannot be used with dynamic groups as +defined by the :doc:`group ` command. These fixes cannot be +used in 2D simulations. *X*\ , *y*\ , *z* cannot be barostatted if the associated dimension is not periodic. *Xy*\ , *xz*\ , and *yz* can only be barostatted if the diff --git a/doc/src/fix_ti_spring.rst b/doc/src/fix_ti_spring.rst index 303564456e..7003100631 100644 --- a/doc/src/fix_ti_spring.rst +++ b/doc/src/fix_ti_spring.rst @@ -89,13 +89,14 @@ time: \lambda(\tau) = \tau -where :math:`\tau` is the scaled time variable *t/t_s*. The option *2* performs -the lambda switching at a rate defined by the following switching -function +where :math:`\tau` is the scaled time variable *t/t_s*. The option *2* +performs the lambda switching at a rate defined by the following +switching function .. math:: - \lambda(\tau) = \tau^5 \left( 70 \tau^4 - 315 \tau^3 + 540 \tau^2 - 420 \tau + 126 \right) + \lambda(\tau) = \tau^5 \left( 70 \tau^4 - 315 \tau^3 + 540 \tau^2 - + 420 \tau + 126 \right) This function has zero slope as lambda approaches its extreme values (0 and 1), according to :ref:`de Koning ` this results in @@ -106,16 +107,19 @@ increase in computational resources cost. .. note:: - As described in :ref:`Freitas `, it is important to keep the - center-of-mass fixed during the thermodynamic integration. A nonzero - total velocity will result in divergences during the integration due - to the fact that the atoms are 'attached' to their equilibrium - positions by the Einstein crystal. Check the option *zero* of :doc:`fix langevin ` and :doc:`velocity `. The use of - the Nose-Hoover thermostat (:doc:`fix nvt `) is *NOT* - recommended due to its well documented issues with the canonical - sampling of harmonic degrees of freedom (notice that the *chain* - option will *NOT* solve this problem). The Langevin thermostat (:doc:`fix langevin `) correctly thermostats the system and we - advise its usage with ti/spring command. + As described in :ref:`Freitas `, it is important to keep + the center-of-mass fixed during the thermodynamic integration. A + nonzero total velocity will result in divergences during the + integration due to the fact that the atoms are 'attached' to their + equilibrium positions by the Einstein crystal. Check the option + *zero* of :doc:`fix langevin ` and :doc:`velocity + `. The use of the Nose-Hoover thermostat (:doc:`fix nvt + `) is *NOT* recommended due to its well documented issues + with the canonical sampling of harmonic degrees of freedom (notice + that the *chain* option will *NOT* solve this problem). The + Langevin thermostat (:doc:`fix langevin `) correctly + thermostats the system and we advise its usage with ti/spring + command. Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -127,18 +131,20 @@ be the same in a restarted simulation. See the :doc:`read restart input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. -The :doc:`fix modify ` *energy* option is supported by +The :doc:`fix_modify ` *energy* option is supported by this fix to add the energy stored in the per-atom springs to the -system's potential energy as part of :doc:`thermodynamic output -`. +global potential energy of the system as part of :doc:`thermodynamic +output `. The default setting for this fix is +:doc:`fix_modify energy no `. This fix computes a global scalar and a global vector quantities which can be accessed by various :doc:`output commands `. The scalar is an energy which is the sum of the spring energy for each -atom, where the per-atom energy is 0.5 \* k \* r\^2. The vector stores -2 values. The first value is the coupling parameter lambda. The -second value is the derivative of lambda with respect to the integer -timestep *s*, i.e. d lambda / ds. In order to obtain d lambda / dt, +atom, where the per-atom energy is :math:`0.5 \cdot k \cdot r^2`. +The vector stores 2 values. The first value is the coupling parameter lambda. +The second value is the derivative of lambda with respect to the integer +timestep *s*, i.e. :math:`\frac{d \lambda}{d s}`. In order to obtain +:math:`\frac{d \lambda}{d t}`, where t is simulation time, this 2nd value needs to be divided by the timestep size (e.g. 0.5 fs). The scalar and vector values calculated by this fix are "extensive". diff --git a/doc/src/fix_wall.rst b/doc/src/fix_wall.rst index 39ff879138..2a2aba777d 100644 --- a/doc/src/fix_wall.rst +++ b/doc/src/fix_wall.rst @@ -331,23 +331,33 @@ perturbation on the particles: Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -No information about this fix is written to :doc:`binary restart files `. +No information about this fix is written to :doc:`binary restart files +`. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy of interaction between atoms and each wall to -the system's potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy of interaction between atoms and all the +specified walls to the global potential energy of the system as part +of :doc:`thermodynamic output `. The default setting +for this fix is :doc:`fix_modify energy no `. -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the contribution due to the interaction between -atoms and each wall to the system's virial as part of :doc:`thermodynamic output `. The default is *virial no* +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution due to the interaction between atoms +and all the specified walls to both the global pressure and per-atom +stress of the system via the :doc:`compute pressure +` and :doc:`compute stress/atom +` commands. The former can be accessed by +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify virial no `. The :doc:`fix_modify ` *respa* option is supported by this -fix. This allows to set at which level of the :doc:`r-RESPA ` -integrator the fix is adding its forces. Default is the outermost level. +fix. This allows to set at which level of the :doc:`r-RESPA +` integrator the fix is adding its forces. Default is the +outermost level. This fix computes a global scalar energy and a global vector of -forces, which can be accessed by various :doc:`output commands `. Note that the scalar energy is the sum -of interactions with all defined walls. If you want the energy on a +forces, which can be accessed by various :doc:`output commands +`. Note that the scalar energy is the sum of +interactions with all defined walls. If you want the energy on a per-wall basis, you need to use multiple fix wall commands. The length of the vector is equal to the number of walls defined by the fix. Each vector value is the normal force on a specific wall. Note diff --git a/doc/src/fix_wall_ees.rst b/doc/src/fix_wall_ees.rst index 2bab8c6056..cf689f3a77 100644 --- a/doc/src/fix_wall_ees.rst +++ b/doc/src/fix_wall_ees.rst @@ -56,20 +56,27 @@ Description """"""""""" Fix *wall/ees* bounds the simulation domain on one or more of its -faces with a flat wall that interacts with the ellipsoidal atoms in the -group by generating a force on the atom in a direction perpendicular to -the wall and a torque parallel with the wall. The energy of -wall-particle interactions E is given by: +faces with a flat wall that interacts with the ellipsoidal atoms in +the group by generating a force on the atom in a direction +perpendicular to the wall and a torque parallel with the wall. The +energy of wall-particle interactions E is given by: .. math:: - E = \epsilon \left[ \frac{2 \sigma_{LJ}^{12} \left(7 r^5+14 r^3 \sigma_{n}^2+3 r \sigma_{n}^4\right) }{945 \left(r^2-\sigma_{n}^2\right)^7} -\frac{ \sigma_{LJ}^6 \left(2 r \sigma_{n}^3+\sigma_{n}^2 \left(r^2-\sigma_{n}^2\right)\log{ \left[\frac{r-\sigma_{n}}{r+\sigma_{n}}\right]}\right) }{12 \sigma_{n}^5 \left(r^2-\sigma_{n}^2\right)} \right]\qquad \sigma_n < r < r_c + E = \epsilon \left[ \frac{2 \sigma_{LJ}^{12} \left(7 r^5+14 r^3 + \sigma_{n}^2+3 r \sigma_{n}^4\right) }{945 + \left(r^2-\sigma_{n}^2\right)^7} -\frac{ \sigma_{LJ}^6 \left(2 r + \sigma_{n}^3+\sigma_{n}^2 \left(r^2-\sigma_{n}^2\right)\log{ + \left[\frac{r-\sigma_{n}}{r+\sigma_{n}}\right]}\right) }{12 + \sigma_{n}^5 \left(r^2-\sigma_{n}^2\right)} \right]\qquad \sigma_n + < r < r_c -Introduced by Babadi and Ejtehadi in :ref:`(Babadi) `. Here, -*r* is the distance from the particle to the wall at position *coord*\ , -and Rc is the *cutoff* distance at which the particle and wall no -longer interact. Also, :math:`\sigma_n` is the distance between center of -ellipsoid and the nearest point of its surface to the wall as shown below. +Introduced by Babadi and Ejtehadi in :ref:`(Babadi) +`. Here, *r* is the distance from the particle to the +wall at position *coord*\ , and Rc is the *cutoff* distance at which +the particle and wall no longer interact. Also, :math:`\sigma_n` is +the distance between center of ellipsoid and the nearest point of its +surface to the wall as shown below. .. image:: JPG/fix_wall_ees_image.jpg :align: center @@ -85,13 +92,15 @@ pre-factor is .. math:: - 8 \pi^2 \quad \rho_{wall} \quad \rho_{ellipsoid} \quad \epsilon \quad \sigma_a \quad \sigma_b \quad \sigma_c + 8 \pi^2 \quad \rho_{wall} \quad \rho_{ellipsoid} \quad \epsilon + \quad \sigma_a \quad \sigma_b \quad \sigma_c -where :math:`\epsilon` is the LJ energy parameter for the constituent LJ -particles and :math:`\sigma_a`, :math:`\sigma_b`, and :math:`\sigma_c` -are the radii of the ellipsoidal particles. :math:`\rho_{wall}` and -:math:`\rho_{ellipsoid}` are the number density of the constituent -particles, in the wall and ellipsoid respectively, in units of 1/volume. +where :math:`\epsilon` is the LJ energy parameter for the constituent +LJ particles and :math:`\sigma_a`, :math:`\sigma_b`, and +:math:`\sigma_c` are the radii of the ellipsoidal +particles. :math:`\rho_{wall}` and :math:`\rho_{ellipsoid}` are the +number density of the constituent particles, in the wall and ellipsoid +respectively, in units of 1/volume. .. note:: @@ -106,16 +115,56 @@ Fix *wall/region/ees* treats the surface of the geometric region defined by the *region-ID* as a bounding wall which interacts with nearby ellipsoidal particles according to the EES potential introduced above. -Other details of this command are the same as for the :doc:`fix wall/region ` command. One may also find an example +Other details of this command are the same as for the :doc:`fix +wall/region ` command. One may also find an example of using this fix in the examples/USER/misc/ees/ directory. +---------- + +Restart, fix_modify, output, run start/stop, minimize info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +No information about these fixes are written to :doc:`binary restart +files `. + +The :doc:`fix_modify ` *energy* option is supported by +these fixes to add the energy of interaction between atoms and all the +specified walls or region wall to the global potential energy of the +system as part of :doc:`thermodynamic output `. The +default settings for these fixes are :doc:`fix_modify energy no +`. + +The :doc:`fix_modify ` *respa* option is supported by +these fixes. This allows to set at which level of the :doc:`r-RESPA +` integrator the fix is adding its forces. Default is the +outermost level. + +These fixes computes a global scalar and a global vector of forces, +which can be accessed by various :doc:`output commands +`. See the :doc:`fix wall ` command for a +description of the scalar and vector. + +No parameter of these fixes can be used with the *start/stop* keywords of +the :doc:`run ` command. + +The forces due to these fixes are imposed during an energy +minimization, invoked by the :doc:`minimize ` command. + +.. note:: + + If you want the atom/wall interaction energy to be included in + the total potential energy of the system (the quantity being + minimized), you MUST enable the :doc:`fix_modify ` *energy* + option for this fix. + Restrictions """""""""""" -This fix is part of the USER-MISC package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. +These fixes are part of the USER-MISC package. They are only enabled +if LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. -This fix requires that atoms be ellipsoids as defined by the +These fixes requires that atoms be ellipsoids as defined by the :doc:`atom_style ellipsoid ` command. Related commands diff --git a/doc/src/fix_wall_region.rst b/doc/src/fix_wall_region.rst index 2359e27255..3803d4b74b 100644 --- a/doc/src/fix_wall_region.rst +++ b/doc/src/fix_wall_region.rst @@ -194,24 +194,32 @@ Restart, fix_modify, output, run start/stop, minimize info No information about this fix is written to :doc:`binary restart files `. -The :doc:`fix_modify ` *energy* option is supported by this -fix to add the energy of interaction between atoms and the wall to the -system's potential energy as part of :doc:`thermodynamic output `. +The :doc:`fix_modify ` *energy* option is supported by +this fix to add the energy of interaction between atoms and the region +wall to the global potential energy of the system as part of +:doc:`thermodynamic output `. The default setting for +this fix is :doc:`fix_modify energy no `. -The :doc:`fix_modify ` *virial* option is supported by this -fix to add the contribution due to the interaction between -atoms and each wall to the system's virial as part of :doc:`thermodynamic output `. The default is *virial no* +The :doc:`fix_modify ` *virial* option is supported by +this fix to add the contribution due to the interaction between atoms +and the region wall to both the global pressure and per-atom stress of +the system via the :doc:`compute pressure ` and +:doc:`compute stress/atom ` commands. The former +can be accessed by :doc:`thermodynamic output `. The +default setting for this fix is :doc:`fix_modify virial no +`. The :doc:`fix_modify ` *respa* option is supported by this fix. This allows to set at which level of the :doc:`r-RESPA ` integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar energy and a global 3-length vector -of forces, which can be accessed by various :doc:`output commands `. The scalar energy is the sum of energy -interactions for all particles interacting with the wall represented -by the region surface. The 3 vector quantities are the x,y,z -components of the total force acting on the wall due to the particles. -The scalar and vector values calculated by this fix are "extensive". +of forces, which can be accessed by various :doc:`output commands +`. The scalar energy is the sum of energy interactions +for all particles interacting with the wall represented by the region +surface. The 3 vector quantities are the x,y,z components of the +total force acting on the wall due to the particles. The scalar and +vector values calculated by this fix are "extensive". No parameter of this fix can be used with the *start/stop* keywords of the :doc:`run ` command. @@ -221,10 +229,10 @@ invoked by the :doc:`minimize ` command. .. note:: - If you want the atom/wall interaction energy to be included in - the total potential energy of the system (the quantity being - minimized), you MUST enable the :doc:`fix_modify ` *energy* - option for this fix. + If you want the atom/wall interaction energy to be included in the + total potential energy of the system (the quantity being + minimized), you MUST enable the :doc:`fix_modify ` + *energy* option for this fix. Restrictions """""""""""" diff --git a/doc/src/fix_widom.rst b/doc/src/fix_widom.rst index 853bc6201c..8ec5a1308d 100644 --- a/doc/src/fix_widom.rst +++ b/doc/src/fix_widom.rst @@ -155,11 +155,11 @@ Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" This fix writes the state of the fix to :doc:`binary restart files -`. This includes information about the random number generator -seed, the next timestep for Widom insertions etc. See the -:doc:`read_restart ` command for info on how to re-specify -a fix in an input script that reads a restart file, so that the -operation of the fix continues in an uninterrupted fashion. +`. This includes information about the random number +generator seed, the next timestep for Widom insertions etc. See the +:doc:`read_restart ` command for info on how to +re-specify a fix in an input script that reads a restart file, so that +the operation of the fix continues in an uninterrupted fashion. .. note:: diff --git a/doc/src/kim_commands.rst b/doc/src/kim_commands.rst index 99f7efffd5..e9afa48fd5 100644 --- a/doc/src/kim_commands.rst +++ b/doc/src/kim_commands.rst @@ -1286,7 +1286,7 @@ to cite the OpenKIM project :ref:`(Tadmor) `, KIM API in addition to the relevant scientific references for the IM. The citation format for an IM is displayed on its page on `OpenKIM `_ along with the corresponding BibTex file, -and is automatically added to the LAMMPS *log.cite* file. +and is automatically added to the LAMMPS citation reminder. Citing the IM software (KIM infrastructure and specific PM or SM codes) used in the simulation gives credit to the researchers who developed them diff --git a/doc/src/thermo_modify.rst b/doc/src/thermo_modify.rst index 6d56f60276..4439f7732c 100644 --- a/doc/src/thermo_modify.rst +++ b/doc/src/thermo_modify.rst @@ -11,10 +11,10 @@ Syntax thermo_modify keyword value ... * one or more keyword/value pairs may be listed +* keyword = *lost* or *lost/bond* or *norm* or *flush* or *line* or *format* or *temp* or *press* .. parsed-literal:: - keyword = *lost* or *lost/bond* or *norm* or *flush* or *line* or *format* or *temp* or *press*\ :l *lost* value = *error* or *warn* or *ignore* *lost/bond* value = *error* or *warn* or *ignore* *norm* value = *yes* or *no* diff --git a/doc/src/thermo_style.rst b/doc/src/thermo_style.rst index dbb634a2b0..8ea487fd0a 100644 --- a/doc/src/thermo_style.rst +++ b/doc/src/thermo_style.rst @@ -20,9 +20,10 @@ Syntax *custom* args = list of keywords possible keywords = step, elapsed, elaplong, dt, time, cpu, tpcpu, spcpu, cpuremain, part, timeremain, - atoms, temp, press, pe, ke, etotal, enthalpy, + atoms, temp, press, pe, ke, etotal, evdwl, ecoul, epair, ebond, eangle, edihed, eimp, emol, elong, etail, + enthalpy, ecouple, econserve, vol, density, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi, xy, xz, yz, xlat, ylat, zlat, bonds, angles, dihedrals, impropers, @@ -49,7 +50,6 @@ Syntax pe = total potential energy ke = kinetic energy etotal = total energy (pe + ke) - enthalpy = enthalpy (etotal + press\*vol) evdwl = van der Waals pairwise energy (includes etail) ecoul = Coulombic pairwise energy epair = pairwise energy (evdwl + ecoul + elong) @@ -60,6 +60,9 @@ Syntax emol = molecular energy (ebond + eangle + edihed + eimp) elong = long-range kspace energy etail = van der Waals energy long-range tail correction + enthalpy = enthalpy (etotal + press\*vol) + ecouple = cumulative energy change due to thermo/baro statting fixes + econserve = pe + ke + ecouple = etotal + ecouple vol = volume density = mass density of system lx,ly,lz = box lengths in x,y,z @@ -197,27 +200,33 @@ change the attributes of this potential energy via the The kinetic energy of the system *ke* is inferred from the temperature of the system with :math:`\frac{1}{2} k_B T` of energy for each degree -of freedom. Thus, using different :doc:`compute commands ` for -calculating temperature, via the :doc:`thermo_modify temp +of freedom. Thus, using different :doc:`compute commands ` +for calculating temperature, via the :doc:`thermo_modify temp ` command, may yield different kinetic energies, since -different computes that calculate temperature can subtract out different -non-thermal components of velocity and/or include different degrees of -freedom (translational, rotational, etc). +different computes that calculate temperature can subtract out +different non-thermal components of velocity and/or include different +degrees of freedom (translational, rotational, etc). The potential energy of the system *pe* will include contributions -from fixes if the :doc:`fix_modify thermo ` option is set -for a fix that calculates such a contribution. For example, the :doc:`fix wall/lj93 ` fix calculates the energy of atoms +from fixes if the :doc:`fix_modify energy yes ` option is +set for a fix that calculates such a contribution. For example, the +:doc:`fix wall/lj93 ` fix calculates the energy of atoms interacting with the wall. See the doc pages for "individual fixes" -to see which ones contribute. +to see which ones contribute and whether their default +:doc:`fix_modify energy ` setting is *yes* or *no*\ . A long-range tail correction *etail* for the van der Waals pairwise -energy will be non-zero only if the :doc:`pair_modify tail ` option is turned on. The *etail* contribution -is included in *evdwl*\ , *epair*\ , *pe*\ , and *etotal*\ , and the +energy will be non-zero only if the :doc:`pair_modify tail +` option is turned on. The *etail* contribution is +included in *evdwl*\ , *epair*\ , *pe*\ , and *etotal*\ , and the corresponding tail correction to the pressure is included in *press* and *pxx*\ , *pyy*\ , etc. ---------- +Here is more information on other keywords whose meaning may not be +clear: + The *step*\ , *elapsed*\ , and *elaplong* keywords refer to timestep count. *Step* is the current timestep, or iteration count when a :doc:`minimization ` is being performed. *Elapsed* is the @@ -228,13 +237,14 @@ keywords for the :doc:`run ` for info on how to invoke a series of runs that keep track of an initial starting time. If these keywords are not used, then *elapsed* and *elaplong* are the same value. -The *dt* keyword is the current timestep size in time -:doc:`units `. The *time* keyword is the current elapsed -simulation time, also in time :doc:`units `, which is simply -(step\*dt) if the timestep size has not changed and the timestep has -not been reset. If the timestep has changed (e.g. via :doc:`fix dt/reset `) or the timestep has been reset (e.g. via -the "reset_timestep" command), then the simulation time is effectively -a cumulative value up to the current point. +The *dt* keyword is the current timestep size in time :doc:`units +`. The *time* keyword is the current elapsed simulation time, +also in time :doc:`units `, which is simply (step\*dt) if the +timestep size has not changed and the timestep has not been reset. If +the timestep has changed (e.g. via :doc:`fix dt/reset `) +or the timestep has been reset (e.g. via the "reset_timestep" +command), then the simulation time is effectively a cumulative value +up to the current point. The *cpu* keyword is elapsed CPU seconds since the beginning of this run. The *tpcpu* and *spcpu* keywords are measures of how fast your @@ -266,16 +276,29 @@ a filename for output specific to this partition. See discussion of the :doc:`-partition command-line switch ` for details on running in multi-partition mode. -The *timeremain* keyword returns the remaining seconds when a -timeout has been configured via the :doc:`timer timeout ` command. -If the timeout timer is inactive, the value of this keyword is 0.0 and -if the timer is expired, it is negative. This allows for example to exit +The *timeremain* keyword is the seconds remaining when a timeout has +been configured via the :doc:`timer timeout ` command. If the +timeout timer is inactive, the value of this keyword is 0.0 and if the +timer is expired, it is negative. This allows for example to exit loops cleanly, if the timeout is expired with: .. code-block:: LAMMPS if "$(timeremain) < 0.0" then "quit 0" +The *ecouple* keyword is cumulative energy change in the system due to +any thermostatting or barostatting fixes that are being used. A +positive value means that energy has been subtracted from the system +(added to the coupling reservoir). See the *econserve* keyword for an +explanation of why this sign choice makes sense. + +The *econserve* keyword is the sum of the potential and kinetic energy +of the system as well as the energy that has been transferred by +thermostatting or barostatting to their coupling reservoirs. I.e. it +is *pe* + *ke* + *econserve*\ . Ideally, for a simulation in the NVE, +NPH, or NPT ensembles, the *econserve* quantity should remain constant +over time. + The *fmax* and *fnorm* keywords are useful for monitoring the progress of an :doc:`energy minimization `. The *fmax* keyword calculates the maximum force in any dimension on any atom in the @@ -295,12 +318,13 @@ to reduce the delay factor to insure no force interactions are missed by atoms moving beyond the neighbor skin distance before a rebuild takes place. -The keywords *cella*\ , *cellb*\ , *cellc*\ , *cellalpha*\ , *cellbeta*\ , -*cellgamma*\ , correspond to the usual crystallographic quantities that -define the periodic unit cell of a crystal. See the :doc:`Howto triclinic ` doc page for a geometric description -of triclinic periodic cells, including a precise definition of these -quantities in terms of the internal LAMMPS cell dimensions *lx*\ , *ly*\ , -*lz*\ , *yz*\ , *xz*\ , *xy*\ . +The keywords *cella*\ , *cellb*\ , *cellc*\ , *cellalpha*\ , +*cellbeta*\ , *cellgamma*\ , correspond to the usual crystallographic +quantities that define the periodic unit cell of a crystal. See the +:doc:`Howto triclinic ` doc page for a geometric +description of triclinic periodic cells, including a precise +definition of these quantities in terms of the internal LAMMPS cell +dimensions *lx*\ , *ly*\ , *lz*\ , *yz*\ , *xz*\ , *xy*\ . ---------- @@ -330,8 +354,8 @@ creates a global vector with 6 values. ---------- -The *c_ID* and *c_ID[I]* and *c_ID[I][J]* keywords allow global -values calculated by a compute to be output. As discussed on the +The *c_ID* and *c_ID[I]* and *c_ID[I][J]* keywords allow global values +calculated by a compute to be output. As discussed on the :doc:`compute ` doc page, computes can calculate global, per-atom, or local values. Only global values can be referenced by this command. However, per-atom compute values for an individual atom @@ -353,12 +377,13 @@ kinetic energy that are summed over all atoms in the compute group. Intensive quantities are printed directly without normalization by thermo_style custom. Extensive quantities may be normalized by the total number of atoms in the simulation (NOT the number of atoms in -the compute group) when output, depending on the :doc:`thermo_modify norm ` option being used. +the compute group) when output, depending on the :doc:`thermo_modify +norm ` option being used. -The *f_ID* and *f_ID[I]* and *f_ID[I][J]* keywords allow global -values calculated by a fix to be output. As discussed on the -:doc:`fix ` doc page, fixes can calculate global, per-atom, or -local values. Only global values can be referenced by this command. +The *f_ID* and *f_ID[I]* and *f_ID[I][J]* keywords allow global values +calculated by a fix to be output. As discussed on the :doc:`fix +` doc page, fixes can calculate global, per-atom, or local +values. Only global values can be referenced by this command. However, per-atom fix values can be referenced for an individual atom in a :doc:`variable ` and the variable referenced by thermo_style custom, as discussed below. See the discussion above for @@ -377,8 +402,8 @@ energy that are summed over all atoms in the fix group. Intensive quantities are printed directly without normalization by thermo_style custom. Extensive quantities may be normalized by the total number of atoms in the simulation (NOT the number of atoms in the fix group) -when output, depending on the :doc:`thermo_modify norm ` -option being used. +when output, depending on the :doc:`thermo_modify norm +` option being used. The *v_name* keyword allow the current value of a variable to be output. The name in the keyword should be replaced by the variable diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index e9ba170ac5..9937a98850 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -508,6 +508,7 @@ cpp cpu createatoms createAtoms +CreateIDs crespi Crespi Critchley @@ -597,6 +598,7 @@ Dcut de dE De +deallocated decorrelation debye Debye @@ -787,6 +789,7 @@ ees eFF efield effm +eflag eflux eg Eggebrecht @@ -2537,6 +2540,8 @@ Px pxx Pxx Pxy +pxy +pxz py Py pydir @@ -2548,10 +2553,13 @@ pymol pypar pythonic pytorch +pyy Pyy +pyz pz Pz Pzz +pzz qbmsst qcore qdist @@ -2680,6 +2688,7 @@ rfile rg Rg Rhaphson +Rhe rheological rheology rhodo @@ -3334,6 +3343,7 @@ verlet Verlet versa ves +vflag vhi vibrational Vij diff --git a/examples/SPIN/nickel/in.spin.nickel b/examples/SPIN/nickel/in.spin.nickel index 0fd2e5f345..baa05760a6 100644 --- a/examples/SPIN/nickel/in.spin.nickel +++ b/examples/SPIN/nickel/in.spin.nickel @@ -1,6 +1,6 @@ # fcc nickel in a 3d periodic box -clear +clear units metal atom_style spin @@ -8,7 +8,7 @@ dimension 3 boundary p p p # necessary for the serial algorithm (sametag) -atom_modify map array +atom_modify map array lattice fcc 3.524 region box block 0.0 5.0 0.0 5.0 0.0 5.0 @@ -20,7 +20,7 @@ create_atoms 1 box mass 1 58.69 set group all spin/random 31 0.63 -#set group all spin 0.63 0.0 0.0 1.0 +#set group all spin 0.63 0.0 0.0 1.0 velocity all create 100 4928459 rot yes dist gaussian pair_style hybrid/overlay eam/alloy spin/exchange 4.0 @@ -31,7 +31,7 @@ neighbor 0.1 bin neigh_modify every 10 check yes delay 20 fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 -fix_modify 1 energy yes +fix_modify 1 energy yes fix 2 all langevin/spin 0.0 0.0 21 fix 3 all nve/spin lattice moving diff --git a/examples/SPIN/nickel/in.spin.nickel_cubic b/examples/SPIN/nickel/in.spin.nickel_cubic index 88c477132e..6f91b4c8bb 100644 --- a/examples/SPIN/nickel/in.spin.nickel_cubic +++ b/examples/SPIN/nickel/in.spin.nickel_cubic @@ -1,60 +1,60 @@ # fcc nickel in a 3d periodic box -clear -units metal -atom_style spin +clear +units metal +atom_style spin -dimension 3 -boundary p p p +dimension 3 +boundary p p p # necessary for the serial algorithm (sametag) -atom_modify map array +atom_modify map array -lattice fcc 3.524 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -create_atoms 1 box +lattice fcc 3.524 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +create_atoms 1 box # setting mass, mag. moments, and interactions for cobalt -mass 1 58.69 +mass 1 58.69 -set group all spin/random 31 0.63 -#set group all spin 0.63 0.0 0.0 1.0 -velocity all create 100 4928459 rot yes dist gaussian +set group all spin/random 31 0.63 +#set group all spin 0.63 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian -pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Ni99.eam.alloy Ni -pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Ni99.eam.alloy Ni +pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 -fix 1 all precession/spin cubic -0.0001 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 & - zeeman 0.0 0.0 0.0 1.0 -fix_modify 1 energy yes -fix 2 all langevin/spin 0.0 0.0 21 +fix 1 all precession/spin cubic -0.0001 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 & + zeeman 0.0 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.0 21 -fix 3 all nve/spin lattice moving -timestep 0.0001 +fix 3 all nve/spin lattice moving +timestep 0.0001 # compute and output options -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] thermo_style custom step time v_magnorm pe v_emag temp v_tmag etotal thermo 50 -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] -run 1000 +run 1000 diff --git a/examples/USER/dpd/dpdrx-shardlow/kinetics.dpdrx b/examples/USER/dpd/dpdrx-shardlow/kinetics.dpdrx old mode 100755 new mode 100644 diff --git a/examples/USER/dpd/dpdrx-shardlow/params.exp6 b/examples/USER/dpd/dpdrx-shardlow/params.exp6 old mode 100755 new mode 100644 diff --git a/examples/USER/dpd/dpdrx-shardlow/table.eos b/examples/USER/dpd/dpdrx-shardlow/table.eos old mode 100755 new mode 100644 diff --git a/examples/USER/dpd/dpdrx-shardlow/thermo.dpdrx b/examples/USER/dpd/dpdrx-shardlow/thermo.dpdrx old mode 100755 new mode 100644 diff --git a/examples/USER/dpd/dpdrx-shardlow/thermo.dpdrx.new b/examples/USER/dpd/dpdrx-shardlow/thermo.dpdrx.new deleted file mode 100755 index c55d5065ba..0000000000 --- a/examples/USER/dpd/dpdrx-shardlow/thermo.dpdrx.new +++ /dev/null @@ -1,17 +0,0 @@ -# rx heats of formation for various molecules -# multiple entries can be added to this file, LAMMPS reads the ones it needs -# the entries are in LAMMPS "metal" units (eV) -# Be sure the units are consistent with your input file - -# format of a single entry (one or more lines): -# species DeltaHformation - -rdx 1.989907438211819 -hcn 1.400635733970104 -no2 0.343004076201018 -no 0.935781955892458 -h2o -2.506184777415379 -n2 0.000000000000000 -h2 0.000000000000000 -co -1.145533746031845 -co2 -4.078501848437456 diff --git a/examples/USER/lb/confined_colloid/results64.out b/examples/USER/lb/confined_colloid/results64.out old mode 100755 new mode 100644 diff --git a/examples/USER/lb/dragforce/data.one_radius16d2 b/examples/USER/lb/dragforce/data.one_radius16d2 old mode 100755 new mode 100644 diff --git a/examples/USER/lb/dragforce/defaultgamma_drag.out b/examples/USER/lb/dragforce/defaultgamma_drag.out old mode 100755 new mode 100644 diff --git a/examples/USER/lb/dragforce/setgamma13d0_drag.out b/examples/USER/lb/dragforce/setgamma13d0_drag.out old mode 100755 new mode 100644 diff --git a/examples/USER/lb/fourspheres/data.four b/examples/USER/lb/fourspheres/data.four old mode 100755 new mode 100644 diff --git a/examples/USER/lb/fourspheres/fourspheres_velocity0d0001_defaultgamma.out b/examples/USER/lb/fourspheres/fourspheres_velocity0d0001_defaultgamma.out old mode 100755 new mode 100644 diff --git a/examples/USER/lb/fourspheres/fourspheres_velocity0d0001_setgamma.out b/examples/USER/lb/fourspheres/fourspheres_velocity0d0001_setgamma.out old mode 100755 new mode 100644 diff --git a/examples/USER/lb/microrheology/data.two b/examples/USER/lb/microrheology/data.two old mode 100755 new mode 100644 diff --git a/examples/USER/lb/microrheology/microrheology_defaultgamma.out b/examples/USER/lb/microrheology/microrheology_defaultgamma.out old mode 100755 new mode 100644 diff --git a/examples/USER/lb/microrheology/microrheology_setgamma.out b/examples/USER/lb/microrheology/microrheology_setgamma.out old mode 100755 new mode 100644 diff --git a/examples/USER/lb/planewall/data.one_radius16d2 b/examples/USER/lb/planewall/data.one_radius16d2 old mode 100755 new mode 100644 diff --git a/examples/USER/lb/planewall/wall_defaultgamma.out b/examples/USER/lb/planewall/wall_defaultgamma.out old mode 100755 new mode 100644 diff --git a/examples/USER/lb/planewall/wall_setgamma.out b/examples/USER/lb/planewall/wall_setgamma.out old mode 100755 new mode 100644 diff --git a/examples/USER/misc/gle/in.h2o-quantum b/examples/USER/misc/gle/in.h2o-quantum index 04f94f219a..ee330e8393 100644 --- a/examples/USER/misc/gle/in.h2o-quantum +++ b/examples/USER/misc/gle/in.h2o-quantum @@ -1,12 +1,12 @@ -units real -atom_style full +units real +atom_style full -pair_style lj/cut/tip4p/long 1 2 1 1 0.14714951 8 -bond_style class2 -angle_style harmonic -kspace_style pppm/tip4p 0.0001 +pair_style lj/cut/tip4p/long 1 2 1 1 0.14714951 8 +bond_style class2 +angle_style harmonic +kspace_style pppm/tip4p 0.0001 -read_data data.h2o-quantum +read_data data.h2o-quantum pair_coeff * 2 0.0 0.0 pair_coeff 1 1 0.1852 3.1589022 @@ -15,7 +15,7 @@ pair_coeff 1 1 0.1852 3.1589022 bond_coeff 1 0.9419 607.19354 -1388.6516 1852.577 angle_coeff 1 43.93 107.4 -timestep 0.5 +timestep 0.5 # mean velocity is higher than target T because of zero point energy velocity all create 800.0 1112 dist gaussian mom yes @@ -24,18 +24,17 @@ thermo 100 thermo_style custom step temp pe ke etotal # some problem -fix 1 all gle 6 300.0 300.0 31415 qt-300k.A noneq qt-300k.C -fix_modify 1 energy no +fix 1 all gle 6 300.0 300.0 31415 qt-300k.A noneq qt-300k.C -#dump 1 all atom 100 h2o-smart.lammpstrj +#dump 1 all atom 100 h2o-smart.lammpstrj -#dump 2 all image 1000 h2o-smart.*.jpg element element & -# zoom 1.4 -#dump_modify 2 pad 5 element O H +#dump 2 all image 1000 h2o-smart.*.jpg element element & +# zoom 1.4 +#dump_modify 2 pad 5 element O H -#dump 3 all movie 100 movie.mp4 element element & -# zoom 1.4 -#dump_modify 3 pad 5 element O H +#dump 3 all movie 100 movie.mp4 element element & +# zoom 1.4 +#dump_modify 3 pad 5 element O H -run 10000 +run 10000 diff --git a/examples/USER/misc/gle/in.h2o-smart b/examples/USER/misc/gle/in.h2o-smart index 37de851f97..9a7d6ef717 100644 --- a/examples/USER/misc/gle/in.h2o-smart +++ b/examples/USER/misc/gle/in.h2o-smart @@ -1,12 +1,12 @@ -units real -atom_style full +units real +atom_style full -pair_style lj/cut/tip4p/long 1 2 1 1 0.14714951 8 -bond_style class2 -angle_style harmonic -kspace_style pppm/tip4p 0.0001 +pair_style lj/cut/tip4p/long 1 2 1 1 0.14714951 8 +bond_style class2 +angle_style harmonic +kspace_style pppm/tip4p 0.0001 -read_data data.h2o-smart +read_data data.h2o-smart pair_coeff * 2 0.0 0.0 pair_coeff 1 1 0.1852 3.1589022 @@ -15,27 +15,26 @@ pair_coeff 1 1 0.1852 3.1589022 bond_coeff 1 0.9419 607.19354 -1388.6516 1852.577 angle_coeff 1 43.93 107.4 -timestep 0.5 +timestep 0.5 -velocity all create 300.0 1112 dist gaussian mom yes +velocity all create 300.0 1112 dist gaussian mom yes thermo 100 thermo_style custom step temp pe ke etotal # smart sampling with GLE: best efficiency on slow diffusive modes, # and as good as possible on higher-frequency modes -fix 1 all gle 6 300.0 300.0 31415 smart.A -fix_modify 1 energy no +fix 1 all gle 6 300.0 300.0 31415 smart.A -#dump 1 all atom 100 h2o-smart.lammpstrj +#dump 1 all atom 100 h2o-smart.lammpstrj -#dump 2 all image 1000 h2o-smart.*.jpg element element & -# zoom 1.4 -#dump_modify 2 pad 5 element O H +#dump 2 all image 1000 h2o-smart.*.jpg element element & +# zoom 1.4 +#dump_modify 2 pad 5 element O H -#dump 3 all movie 100 movie.mp4 element element & -# zoom 1.4 -#dump_modify 3 pad 5 element O H +#dump 3 all movie 100 movie.mp4 element element & +# zoom 1.4 +#dump_modify 3 pad 5 element O H -run 10000 +run 10000 diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/ff-silicon.lmp b/examples/USER/phonon/dynamical_matrix_command/Silicon/ff-silicon.lmp old mode 100755 new mode 100644 diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/lmp_bank/amorphous_silicon.lmp b/examples/USER/phonon/dynamical_matrix_command/Silicon/lmp_bank/amorphous_silicon.lmp old mode 100755 new mode 100644 diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/lmp_bank/silicon_216.lmp b/examples/USER/phonon/dynamical_matrix_command/Silicon/lmp_bank/silicon_216.lmp old mode 100755 new mode 100644 diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/lmp_bank/silicon_512.lmp b/examples/USER/phonon/dynamical_matrix_command/Silicon/lmp_bank/silicon_512.lmp old mode 100755 new mode 100644 diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/lmp_bank/silicon_8.lmp b/examples/USER/phonon/dynamical_matrix_command/Silicon/lmp_bank/silicon_8.lmp old mode 100755 new mode 100644 diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/silicon_input_file.lmp b/examples/USER/phonon/dynamical_matrix_command/Silicon/silicon_input_file.lmp old mode 100755 new mode 100644 diff --git a/examples/USER/qtb/alpha_quartz_qbmsst/in.alpha_quartz_qbmsst b/examples/USER/qtb/alpha_quartz_qbmsst/in.alpha_quartz_qbmsst index 3ee0bd0ca5..49e89e2bb2 100644 --- a/examples/USER/qtb/alpha_quartz_qbmsst/in.alpha_quartz_qbmsst +++ b/examples/USER/qtb/alpha_quartz_qbmsst/in.alpha_quartz_qbmsst @@ -23,13 +23,12 @@ include alpha_quartz_qtb.mod reset_timestep 0 #Beta is the number of time steps between each update of the quantum bath temperature. Setting a larger beta can reduce thermal flactuations. fix shock all qbmsst z ${v_msst} q ${q_msst} tscale ${tscale_msst} damp ${damp_qtb} f_max 120 N_f 100 seed 35082 eta ${eta_qbmsst} beta 5 T_init ${temperature} -fix_modify shock energy yes variable dhug equal f_shock[1] variable dray equal f_shock[2] variable lgr_vel equal f_shock[3] variable lgr_pos equal f_shock[4] variable T_qm equal f_shock[5] #Temperature with quantum nuclear correction -thermo_style custom step v_T_qm press etotal vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos +thermo_style custom step v_T_qm press econserve vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos thermo 200 timestep ${delta_t} run 1000 @@ -42,14 +41,14 @@ read_restart restart.1000 include alpha_quartz_potential.mod #Use the same fix id and add no tscale if the system is already compressed fix shock all qbmsst z ${v_msst} q ${q_msst} tscale 0.0 damp ${damp_qtb} f_max 120 N_f 100 seed 35082 eta ${eta_qbmsst} beta 5 T_init ${temperature} -fix_modify shock energy yes variable dhug equal f_shock[1] variable dray equal f_shock[2] variable lgr_vel equal f_shock[3] variable lgr_pos equal f_shock[4] variable T_qm equal f_shock[5] #Temperature with quantum nuclear correction -thermo_style custom step v_T_qm press etotal vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos +thermo_style custom step v_T_qm press econserve vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos thermo 500 timestep ${delta_t} -restart 1000 restart +#restart 1000 restart run 10000 #10 ps +shell rm restart.1000 diff --git a/examples/USER/qtb/alpha_quartz_qbmsst/log.15Jun20.alpha_quartz_qbmsst.g++.1 b/examples/USER/qtb/alpha_quartz_qbmsst/log.09Feb21.alpha_quartz_qbmsst.g++.1 similarity index 64% rename from examples/USER/qtb/alpha_quartz_qbmsst/log.15Jun20.alpha_quartz_qbmsst.g++.1 rename to examples/USER/qtb/alpha_quartz_qbmsst/log.09Feb21.alpha_quartz_qbmsst.g++.1 index cb5ebe31a9..977c07b02b 100644 --- a/examples/USER/qtb/alpha_quartz_qbmsst/log.15Jun20.alpha_quartz_qbmsst.g++.1 +++ b/examples/USER/qtb/alpha_quartz_qbmsst/log.09Feb21.alpha_quartz_qbmsst.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (15 Jun 2020) +LAMMPS (24 Dec 2020) using 1 OpenMP thread(s) per MPI task ## This script first uses fix qtb to equilibrate alpha quartz structure to an initial state with quantum nuclear correction and then simulate shock induced phase transition through the quantum thermal bath multi-scale shock technique variable x_rep equal 2 #plot is made with x_rep = 8 #x-direction replication number @@ -29,12 +29,12 @@ atom_style charge #Lattice lattice custom 1.0 a1 4.916000 0.000000 0.000000 a2 -2.45800 4.257381 0.000000 a3 0.000000 0.000000 5.405400 basis 0.469700 0.000000 0.000000 basis 0.000000 0.469700 0.666667 basis 0.530300 0.530300 0.333333 basis 0.413500 0.266900 0.119100 basis 0.266900 0.413500 0.547567 basis 0.733100 0.146600 0.785767 basis 0.586500 0.853400 0.214233 basis 0.853400 0.586500 0.452433 basis 0.146600 0.733100 0.880900 #American Mineralogist 65 920 1980 (Space Group 154) -Lattice spacing in x,y,z = 7.374 4.25738 5.4054 +Lattice spacing in x,y,z = 7.3740000 4.2573810 5.4054000 #Computational Cell region orthorhombic_unit_cell block 0 4.916000 0 8.514762 0 5.405400 units box create_box 2 orthorhombic_unit_cell -Created orthogonal box = (0.0 0.0 0.0) to (4.916 8.514762 5.4054) +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (4.9160000 8.5147620 5.4054000) 1 by 1 by 1 MPI processor grid create_atoms 1 box basis 1 1 basis 2 1 basis 3 1 basis 4 2 basis 5 2 basis 6 2 basis 7 2 basis 8 2 basis 9 2 Created 18 atoms @@ -43,17 +43,20 @@ replicate ${x_rep} ${y_rep} ${z_rep} replicate 2 ${y_rep} ${z_rep} replicate 2 1 ${z_rep} replicate 2 1 4 - orthogonal box = (0.0 0.0 0.0) to (9.832 8.514762 21.6216) +Replicating atoms ... + orthogonal box = (0.0000000 0.0000000 0.0000000) to (9.8320000 8.5147620 21.621600) 1 by 1 by 1 MPI processor grid 144 atoms - replicate CPU = 0.000271082 secs + replicate CPU = 0.001 seconds #Atomic Information mass 1 28.085500 mass 2 15.999400 set type 1 charge +2.4 +Setting atom values ... 48 settings made for charge set type 2 charge -1.2 +Setting atom values ... 96 settings made for charge @@ -72,8 +75,8 @@ pair_coeff 1 2 table potential_SiO2.TPF Si-O ${cut_off} pair_coeff 1 2 table potential_SiO2.TPF Si-O 10 pair_coeff 2 2 table potential_SiO2.TPF O-O ${cut_off} #See the potential file for more information pair_coeff 2 2 table potential_SiO2.TPF O-O 10 -WARNING: 1 of 39901 force values in table are inconsistent with -dE/dr. - Should only be flagged at inflection points (src/pair_table.cpp:471) +WARNING: 1 of 39901 force values in table O-O are inconsistent with -dE/dr. + Should only be flagged at inflection points (src/pair_table.cpp:461) kspace_style pppm 1.0e-4 #Neighbor style @@ -96,12 +99,12 @@ thermo_style custom step temp press etotal vol lx ly lz pxx pyy pzz p thermo 200 run 2000 # 2 ps PPPM initialization ... - using 12-bit tables for long-range coulomb (src/kspace.cpp:332) - G vector (1/distance) = 0.301598 + using 12-bit tables for long-range coulomb (src/kspace.cpp:339) + G vector (1/distance) = 0.30159814 grid = 9 8 15 stencil order = 5 - estimated absolute RMS force accuracy = 0.00117056 - estimated relative force accuracy = 8.12908e-05 + estimated absolute RMS force accuracy = 0.0011705589 + estimated relative force accuracy = 8.1290814e-05 using double precision FFTW3 3d grid and FFT values/proc = 5280 1080 Neighbor list info ... @@ -123,42 +126,42 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 80.09 | 80.09 | 80.09 Mbytes Step Temp Press TotEng Volume Lx Ly Lz Pxx Pyy Pzz Pxy Pyz Pxz - 0 0 -34026.791 -2793.6042 1810.0985 9.832 8.514762 21.6216 -37470.578 -37470.432 -27139.363 -6.4345368e-12 0.94245783 4.2212262e-10 + 0 0 -34026.791 -2793.6042 1810.0985 9.832 8.514762 21.6216 -37470.578 -37470.432 -27139.363 3.7975984e-11 0.94245783 8.5085457e-11 200 170.7381 43248.332 -2790.8398 1879.164 9.9554912 8.6217086 21.89317 39337.624 42979.126 47428.246 324.91326 454.85872 -2034.6053 - 400 258.09921 -28257.8 -2788.3487 1856.1432 9.9146707 8.5863569 21.803402 -19478.873 -29571.375 -35723.152 4633.9026 8487.8103 -626.12005 - 600 277.77032 -22751.351 -2786.2715 1866.9783 9.9339253 8.6030319 21.845744 -21727.335 -29200.027 -17326.692 -4327.8571 -8218.4965 252.30681 - 800 349.8665 30508.003 -2784.2204 1873.4953 9.9454706 8.6130304 21.871134 29929.055 33562.672 28032.281 -3188.5605 12329.482 7558.5678 - 1000 373.67651 -18839.569 -2783.2178 1855.5937 9.9136922 8.5855095 21.80125 -18063.486 -22288.321 -16166.902 -416.09547 -10368.975 9030.4208 - 1200 423.3474 6846.9905 -2781.9271 1896.2131 9.9855083 8.6477041 21.959181 2147.3938 11765.857 6627.7202 -7627.6782 -1297.6517 -4758.4746 - 1400 418.54527 -6416.7506 -2781.4358 1834.2719 9.8755745 8.5524986 21.717425 5693.0543 -19487.901 -5455.405 827.66513 -523.1508 -3890.9919 - 1600 429.42796 3939.8836 -2780.5861 1895.8859 9.984934 8.6472068 21.957918 3755.6959 -1326.4343 9390.3893 1948.1153 4489.8629 1466.0914 - 1800 447.7623 -8344.6306 -2780.1071 1858.4925 9.9188518 8.5899779 21.812596 -17549.498 3336.8135 -10821.208 1643.4226 -644.56065 -8935.9666 - 2000 438.1306 -6691.4691 -2780.7407 1871.3547 9.9416812 8.6097487 21.862801 -6959.2196 -8486.8466 -4628.341 -1019.9006 443.03694 -2751.917 -Loop time of 2.46815 on 1 procs for 2000 steps with 144 atoms + 400 258.09921 -28257.8 -2788.3487 1856.1432 9.9146707 8.5863569 21.803402 -19478.873 -29571.375 -35723.151 4633.9025 8487.8103 -626.12008 + 600 277.77032 -22751.351 -2786.2715 1866.9783 9.9339253 8.6030319 21.845744 -21727.333 -29200.028 -17326.691 -4327.8577 -8218.4994 252.30614 + 800 349.8665 30508.004 -2784.2204 1873.4953 9.9454706 8.6130304 21.871134 29929.053 33562.675 28032.284 -3188.5636 12329.485 7558.5604 + 1000 373.67652 -18839.562 -2783.2178 1855.5937 9.9136922 8.5855095 21.80125 -18063.481 -22288.32 -16166.887 -416.09489 -10368.975 9030.4151 + 1200 423.34739 6846.9842 -2781.9271 1896.2131 9.9855083 8.6477041 21.959181 2147.3919 11765.847 6627.7141 -7627.6762 -1297.649 -4758.4757 + 1400 418.54526 -6416.7547 -2781.4358 1834.2719 9.8755745 8.5524986 21.717425 5693.0508 -19487.901 -5455.4139 827.66188 -523.1469 -3890.9904 + 1600 429.42798 3939.889 -2780.5861 1895.8859 9.984934 8.6472068 21.957918 3755.6972 -1326.4252 9390.395 1948.1084 4489.8536 1466.083 + 1800 447.76215 -8344.6447 -2780.1071 1858.4925 9.9188519 8.5899779 21.812596 -17549.502 3336.8092 -10821.241 1643.4315 -644.54621 -8935.98 + 2000 438.1305 -6691.4324 -2780.7407 1871.3547 9.9416812 8.6097487 21.8628 -6959.1834 -8486.8262 -4628.2877 -1019.8998 443.04638 -2751.9173 +Loop time of 11.2763 on 1 procs for 2000 steps with 144 atoms -Performance: 70.012 ns/day, 0.343 hours/ns, 810.323 timesteps/s -99.8% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 15.324 ns/day, 1.566 hours/ns, 177.363 timesteps/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 | 2.0003 | 2.0003 | 2.0003 | 0.0 | 81.04 -Kspace | 0.20006 | 0.20006 | 0.20006 | 0.0 | 8.11 +Pair | 7.9085 | 7.9085 | 7.9085 | 0.0 | 70.13 +Kspace | 2.0339 | 2.0339 | 2.0339 | 0.0 | 18.04 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.023753 | 0.023753 | 0.023753 | 0.0 | 0.96 -Output | 0.0001986 | 0.0001986 | 0.0001986 | 0.0 | 0.01 -Modify | 0.23896 | 0.23896 | 0.23896 | 0.0 | 9.68 -Other | | 0.004907 | | | 0.20 +Comm | 0.15276 | 0.15276 | 0.15276 | 0.0 | 1.35 +Output | 0.00036049 | 0.00036049 | 0.00036049 | 0.0 | 0.00 +Modify | 1.1706 | 1.1706 | 1.1706 | 0.0 | 10.38 +Other | | 0.01023 | | | 0.09 -Nlocal: 144 ave 144 max 144 min +Nlocal: 144.000 ave 144 max 144 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 3943 ave 3943 max 3943 min +Nghost: 3943.00 ave 3943 max 3943 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 41952 ave 41952 max 41952 min +Neighs: 41952.0 ave 41952 max 41952 min Histogram: 1 0 0 0 0 0 0 0 0 0 Total # of neighbors = 41952 -Ave neighs/atom = 291.333 +Ave neighs/atom = 291.33333 Neighbor list builds = 0 Dangerous builds = 0 unfix quartz_qtb @@ -185,24 +188,23 @@ QBMSST parameters: Initial pressure calculated on first step Initial volume calculated on first step Initial energy calculated on first step -fix_modify shock energy yes variable dhug equal f_shock[1] variable dray equal f_shock[2] variable lgr_vel equal f_shock[3] variable lgr_pos equal f_shock[4] variable T_qm equal f_shock[5] #Temperature with quantum nuclear correction -thermo_style custom step v_T_qm press etotal vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos +thermo_style custom step v_T_qm press econserve vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos thermo 200 timestep ${delta_t} timestep 0.001 run 1000 PPPM initialization ... - using 12-bit tables for long-range coulomb (src/kspace.cpp:332) - G vector (1/distance) = 0.303132 + using 12-bit tables for long-range coulomb (src/kspace.cpp:339) + G vector (1/distance) = 0.30313178 grid = 9 8 16 stencil order = 5 - estimated absolute RMS force accuracy = 0.00104699 - estimated relative force accuracy = 7.27093e-05 + estimated absolute RMS force accuracy = 0.0010469888 + estimated relative force accuracy = 7.2709348e-05 using double precision FFTW3 3d grid and FFT values/proc = 5520 1152 Neighbor list info ... @@ -223,52 +225,53 @@ Neighbor list info ... stencil: none bin: none Fix QBMSST v0 = 1.87135e+03 -Fix QBMSST p0 = -4.62948e+03 +Fix QBMSST p0 = -4.62942e+03 Fix QBMSST e0 = to be -2.78074e+03 -Fix QBMSST initial strain rate of -4.01096e-01 established by reducing temperature by factor of 5.00000e-02 -Per MPI rank memory allocation (min/avg/max) = 80.1 | 80.1 | 80.1 Mbytes -Step v_T_qm Press TotEng Volume Lx Ly Lz Pzz v_dhug v_dray v_lgr_vel v_lgr_pos - 0 300 -6922.9433 -2780.7394 1871.3547 9.9416812 8.6097487 21.862801 -4819.9907 10.953265 -190.51273 0 0 - 200 294.95797 54876.416 -2779.2988 1723.7621 9.9416812 8.6097487 20.138495 108897.19 -29.773973 -9271.7281 6.1518102 -15.057867 - 400 288.3711 139521.03 -2778.7321 1628.5574 9.9416812 8.6097487 19.026231 222107.71 8.0682073 24727.575 10.120041 -28.714693 - 600 280.56521 98070.281 -2779.8934 1687.2434 9.9416812 8.6097487 19.711852 164558.51 2.6076928 16005.656 7.6739491 -42.705007 - 800 274.94701 106060.26 -2779.2916 1651.0723 9.9416812 8.6097487 19.289269 176842.6 -39.645354 -1804.9466 9.1815975 -56.628078 - 1000 268.47106 189695.34 -2779.4951 1492.6355 9.9416812 8.6097487 17.438272 277351.5 -84.834482 -33116.996 15.785409 -69.870519 -Loop time of 2.05219 on 1 procs for 1000 steps with 144 atoms +Fix QBMSST initial strain rate of -4.01095e-01 established by reducing temperature by factor of 5.00000e-02 +Per MPI rank memory allocation (min/avg/max) = 80.10 | 80.10 | 80.10 Mbytes +Step v_T_qm Press Econserve Volume Lx Ly Lz Pzz v_dhug v_dray v_lgr_vel v_lgr_pos + 0 300 -6922.9066 -2780.7394 1871.3547 9.9416812 8.6097487 21.8628 -4819.9374 10.953262 -190.5127 0 0 + 200 294.95802 54876.628 -2779.2988 1723.7617 9.9416812 8.6097487 20.13849 108897.62 -29.773363 -9271.7016 6.1518278 -15.057866 + 400 288.37122 139520.66 -2778.7321 1628.5573 9.9416812 8.6097487 19.02623 222107.14 8.0673735 24726.892 10.120044 -28.714689 + 600 280.56538 98072.818 -2779.8934 1687.2396 9.9416812 8.6097487 19.711808 164562.57 2.6099747 16006.563 7.6741039 -42.704989 + 800 274.9472 106058.35 -2779.2916 1651.0755 9.9416812 8.6097487 19.289307 176839.13 -39.647552 -1805.8176 9.1814643 -56.628046 + 1000 268.4714 189679.65 -2779.4952 1492.6558 9.9416812 8.6097487 17.43851 277332.66 -84.846841 -33118.917 15.784559 -69.870561 +Loop time of 8.7779 on 1 procs for 1000 steps with 144 atoms -Performance: 42.101 ns/day, 0.570 hours/ns, 487.284 timesteps/s -99.8% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 9.843 ns/day, 2.438 hours/ns, 113.922 timesteps/s +99.2% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 1.6815 | 1.6815 | 1.6815 | 0.0 | 81.94 -Kspace | 0.10373 | 0.10373 | 0.10373 | 0.0 | 5.05 -Neigh | 0.0061183 | 0.0061183 | 0.0061183 | 0.0 | 0.30 -Comm | 0.012444 | 0.012444 | 0.012444 | 0.0 | 0.61 -Output | 0.00014687 | 0.00014687 | 0.00014687 | 0.0 | 0.01 -Modify | 0.24529 | 0.24529 | 0.24529 | 0.0 | 11.95 -Other | | 0.002948 | | | 0.14 +Pair | 6.8031 | 6.8031 | 6.8031 | 0.0 | 77.50 +Kspace | 1.0505 | 1.0505 | 1.0505 | 0.0 | 11.97 +Neigh | 0.024976 | 0.024976 | 0.024976 | 0.0 | 0.28 +Comm | 0.082612 | 0.082612 | 0.082612 | 0.0 | 0.94 +Output | 0.00032592 | 0.00032592 | 0.00032592 | 0.0 | 0.00 +Modify | 0.8108 | 0.8108 | 0.8108 | 0.0 | 9.24 +Other | | 0.005632 | | | 0.06 -Nlocal: 144 ave 144 max 144 min +Nlocal: 144.000 ave 144 max 144 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 4243 ave 4243 max 4243 min +Nghost: 4243.00 ave 4243 max 4243 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 48210 ave 48210 max 48210 min +Neighs: 48210.0 ave 48210 max 48210 min Histogram: 1 0 0 0 0 0 0 0 0 0 Total # of neighbors = 48210 -Ave neighs/atom = 334.792 +Ave neighs/atom = 334.79167 Neighbor list builds = 8 Dangerous builds = 0 write_restart restart.1000 +System init for write_restart ... PPPM initialization ... - using 12-bit tables for long-range coulomb (src/kspace.cpp:332) - G vector (1/distance) = 0.306435 + using 12-bit tables for long-range coulomb (src/kspace.cpp:339) + G vector (1/distance) = 0.30643517 grid = 9 8 15 stencil order = 5 - estimated absolute RMS force accuracy = 0.000955688 - estimated relative force accuracy = 6.63689e-05 + estimated absolute RMS force accuracy = 0.0009556927 + estimated relative force accuracy = 6.6369185e-05 using double precision FFTW3 3d grid and FFT values/proc = 5280 1080 Neighbor list info ... @@ -294,12 +297,14 @@ Neighbor list info ... clear using 1 OpenMP thread(s) per MPI task read_restart restart.1000 +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 restoring atom style charge from restart - orthogonal box = (-0.05484062286382799 -0.04749337384227555 2.0916641327653274) to (9.886840622863804 8.562255373842252 19.52993586723476) + orthogonal box = (-0.054840605 -0.047493358 2.0915450) to (9.8868406 8.5622554 19.530055) 1 by 1 by 1 MPI processor grid restoring pair style hybrid/overlay from restart 144 atoms - read_restart CPU = 0.0002563 secs + read_restart CPU = 0.001 seconds include alpha_quartz_potential.mod #This script implements the BKS pair potential for various silicon dioxide compounds. Inner part is fixed with a harmonic potential. Long range Coulomb interactions are evaluated with the pppm method. @@ -314,8 +319,8 @@ pair_coeff 1 2 table potential_SiO2.TPF Si-O ${cut_off} pair_coeff 1 2 table potential_SiO2.TPF Si-O 10 pair_coeff 2 2 table potential_SiO2.TPF O-O ${cut_off} #See the potential file for more information pair_coeff 2 2 table potential_SiO2.TPF O-O 10 -WARNING: 1 of 39901 force values in table are inconsistent with -dE/dr. - Should only be flagged at inflection points (src/pair_table.cpp:471) +WARNING: 1 of 39901 force values in table O-O are inconsistent with -dE/dr. + Should only be flagged at inflection points (src/pair_table.cpp:461) kspace_style pppm 1.0e-4 #Neighbor style @@ -338,25 +343,24 @@ QBMSST parameters: Initial energy calculated on first step Resetting global fix info from restart file: fix style: qbmsst, fix ID: shock -fix_modify shock energy yes variable dhug equal f_shock[1] variable dray equal f_shock[2] variable lgr_vel equal f_shock[3] variable lgr_pos equal f_shock[4] variable T_qm equal f_shock[5] #Temperature with quantum nuclear correction -thermo_style custom step v_T_qm press etotal vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos +thermo_style custom step v_T_qm press econserve vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos thermo 500 timestep ${delta_t} timestep 0.001 -restart 1000 restart +#restart 1000 restart run 10000 #10 ps PPPM initialization ... - using 12-bit tables for long-range coulomb (src/kspace.cpp:332) - G vector (1/distance) = 0.306435 + using 12-bit tables for long-range coulomb (src/kspace.cpp:339) + G vector (1/distance) = 0.30643517 grid = 9 8 15 stencil order = 5 - estimated absolute RMS force accuracy = 0.000955688 - estimated relative force accuracy = 6.63689e-05 + estimated absolute RMS force accuracy = 0.0009556927 + estimated relative force accuracy = 6.6369185e-05 using double precision FFTW3 3d grid and FFT values/proc = 5280 1080 All restart file global fix info was re-assigned @@ -378,53 +382,54 @@ Neighbor list info ... stencil: none bin: none Per MPI rank memory allocation (min/avg/max) = 80.12 | 80.12 | 80.12 Mbytes -Step v_T_qm Press TotEng Volume Lx Ly Lz Pzz v_dhug v_dray v_lgr_vel v_lgr_pos - 1000 268.47106 189686.77 -2781.5194 1492.6355 9.9416812 8.6097487 17.438272 277378.37 -84.692548 -33090.129 15.785409 0 - 1500 362.13476 692245.96 -2800.9352 1011.2037 9.9416812 8.6097487 11.813766 661095.53 188.71833 -49928.712 35.851981 -24.11484 - 2000 860.78914 714816.8 -2830.893 997.64749 9.9416812 8.6097487 11.65539 653537.64 852.68158 -68765.537 36.41702 -44.978484 - 2500 1620.8281 709511.19 -2840.8217 1000.3425 9.9416812 8.6097487 11.686875 660030.01 1184.3105 -60030.892 36.304689 -65.69966 - 3000 2395.6824 649526.84 -2832.6859 995.56591 9.9416812 8.6097487 11.631071 660984.37 939.07209 -63050.693 36.503782 -86.383242 - 3500 3034.6774 715794.56 -2822.6098 995.8622 9.9416812 8.6097487 11.634532 712849.74 1055.7295 -10938.816 36.491433 -106.99315 - 4000 3487.9039 736791.25 -2804.1216 994.13867 9.9416812 8.6097487 11.614397 765817.85 943.15747 40595.305 36.563271 -127.76315 - 4500 3718.6279 813775.8 -2788.1942 995.82514 9.9416812 8.6097487 11.634099 881961.06 1370.5559 158141.68 36.492977 -148.68649 - 5000 3691.4947 750146.58 -2770.5541 1018.4785 9.9416812 8.6097487 11.898756 770500.36 196.2793 65528.786 35.548762 -169.8589 - 5500 3585.8602 831522.51 -2766.0198 1005.6834 9.9416812 8.6097487 11.749273 916093.67 1088.1987 200476.48 36.082073 -190.89436 - 6000 3431.6405 749891.94 -2771.6404 1011.9077 9.9416812 8.6097487 11.82199 781321.11 268.24344 70882.55 35.82264 -212.20913 - 6500 3350.2876 666113.16 -2780.4124 1028.8353 9.9416812 8.6097487 12.019753 749294.32 371.38231 52939.676 35.117081 -233.59556 - 7000 3339.2397 675783.2 -2782.7559 1022.6541 9.9416812 8.6097487 11.947539 690109.39 -26.949124 -11388.054 35.374719 -254.95868 - 7500 3395.582 726601.74 -2784.7652 1018.1439 9.9416812 8.6097487 11.894846 759167.86 506.5811 53917.852 35.56271 -276.24361 - 8000 3393.2372 625141.93 -2771.6398 1035.4915 9.9416812 8.6097487 12.097517 598674.46 -895.80046 -92142.112 34.839641 -297.61681 - 8500 3272.9752 659367.77 -2776.608 1031.8188 9.9416812 8.6097487 12.054609 688358.42 -142.30814 -5513.8593 34.992722 -318.94541 - 9000 3277.8848 724828.76 -2777.6502 1017.6314 9.9416812 8.6097487 11.888859 724452.11 58.574942 18775.738 35.58407 -340.1718 - 9500 3273.7854 620652.38 -2780.0794 1023.5922 9.9416812 8.6097487 11.958499 747175.42 317.3826 46458.505 35.335617 -361.41643 - 10000 3329.1766 668606.38 -2786.3493 1022.9534 9.9416812 8.6097487 11.951035 703351.81 168.14538 2103.38 35.362244 -382.64609 - 10500 3398.9956 642919.16 -2784.2833 1016.2587 9.9416812 8.6097487 11.872822 661298.16 -230.03577 -45520.34 35.641287 -403.78721 - 11000 3418.7053 675754.06 -2782.6318 1005.7483 9.9416812 8.6097487 11.75003 689789.84 -136.97148 -25773.422 36.079372 -424.97556 -Loop time of 32.4277 on 1 procs for 10000 steps with 144 atoms +Step v_T_qm Press Econserve Volume Lx Ly Lz Pzz v_dhug v_dray v_lgr_vel v_lgr_pos + 1000 268.4714 189671.09 -2781.5189 1492.6558 9.9416812 8.6097487 17.43851 277359.52 -84.704915 -33092.054 15.784559 0 + 1500 362.24943 690690.88 -2801.3189 1013.1871 9.9416812 8.6097487 11.836938 660912.81 210.15736 -48461.278 35.76931 -24.117097 + 2000 851.29288 687202.75 -2829.28 998.92158 9.9416812 8.6097487 11.670275 702779.72 1177.175 -18463.457 36.363914 -45.102068 + 2500 1584.7231 702373.6 -2840.9926 998.47448 9.9416812 8.6097487 11.665052 685551.65 1366.7769 -36063.512 36.382549 -65.966813 + 3000 2369.1915 765783.04 -2835.3495 994.53954 9.9416812 8.6097487 11.61908 742616.98 1609.2532 17727.912 36.546562 -86.541922 + 3500 3092.3052 829161.44 -2827.8974 977.82563 9.9416812 8.6097487 11.423814 768559.05 1500.9858 29763.85 37.243215 -107.10048 + 4000 3627.1538 773057.81 -2813.687 988.31955 9.9416812 8.6097487 11.546413 738541.81 959.39292 8477.6525 36.805818 -127.75274 + 4500 3910.5455 753799.74 -2790.7863 1002.749 9.9416812 8.6097487 11.71499 763069.75 602.0127 45010.991 36.204385 -148.51594 + 5000 3976.7913 761978.62 -2782.0448 998.85434 9.9416812 8.6097487 11.669489 780709.6 482.34112 59410.482 36.366717 -169.42341 + 5500 3928.0113 702739.91 -2765.8379 1008.695 9.9416812 8.6097487 11.784456 632171.28 -991.2791 -80940.344 35.956549 -190.30951 + 6000 3731.5486 654300.14 -2763.1253 1032.1476 9.9416812 8.6097487 12.05845 642590.19 -832.8417 -51008.602 34.979018 -211.41573 + 6500 3505.5984 713092.19 -2767.3169 1010.6873 9.9416812 8.6097487 11.807732 735218.98 -176.4579 23764.995 35.873507 -232.57305 + 7000 3348.5047 762624.48 -2769.0996 1010.8032 9.9416812 8.6097487 11.809086 662703.98 -667.90587 -48653.562 35.868676 -253.64668 + 7500 3197.2839 689038.79 -2770.7583 1036.994 9.9416812 8.6097487 12.11507 679188.92 -330.37222 -10377.635 34.777016 -275.06425 + 8000 3117.1867 765531.79 -2775.0143 1023.9741 9.9416812 8.6097487 11.96296 681640.02 -288.82226 -18759.215 35.319699 -296.38453 + 8500 3053.5599 667992.24 -2772.057 1027.6458 9.9416812 8.6097487 12.005857 657921.43 -507.92809 -39422.884 35.166657 -317.64367 + 9000 2997.4957 704542.99 -2780.9279 1020.074 9.9416812 8.6097487 11.917396 647510.98 -398.1601 -56133.168 35.482259 -338.8598 + 9500 2990.5818 810181.5 -2783.2413 1002.8927 9.9416812 8.6097487 11.716669 859476.58 1107.5241 141537.42 36.198393 -359.85577 + 10000 3055.8298 792271.02 -2786.5277 991.62826 9.9416812 8.6097487 11.585068 847298.17 1051.5369 119986.89 36.667907 -380.83279 + 10500 3159.7134 706528.08 -2793.5555 1009.9173 9.9416812 8.6097487 11.798737 673106.83 67.67511 -38987.761 35.905599 -401.74903 + 11000 3261.7609 748345.85 -2783.0699 1017.8806 9.9416812 8.6097487 11.891771 656140.32 -267.8786 -49328.779 35.573683 -422.65593 +Loop time of 130.289 on 1 procs for 10000 steps with 144 atoms -Performance: 26.644 ns/day, 0.901 hours/ns, 308.378 timesteps/s -99.5% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 6.631 ns/day, 3.619 hours/ns, 76.752 timesteps/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 | 28.397 | 28.397 | 28.397 | 0.0 | 87.57 -Kspace | 1.0225 | 1.0225 | 1.0225 | 0.0 | 3.15 -Neigh | 0.27594 | 0.27594 | 0.27594 | 0.0 | 0.85 -Comm | 0.1797 | 0.1797 | 0.1797 | 0.0 | 0.55 -Output | 0.10409 | 0.10409 | 0.10409 | 0.0 | 0.32 -Modify | 2.4112 | 2.4112 | 2.4112 | 0.0 | 7.44 -Other | | 0.03707 | | | 0.11 +Pair | 109.8 | 109.8 | 109.8 | 0.0 | 84.27 +Kspace | 10.328 | 10.328 | 10.328 | 0.0 | 7.93 +Neigh | 1.0855 | 1.0855 | 1.0855 | 0.0 | 0.83 +Comm | 1.2041 | 1.2041 | 1.2041 | 0.0 | 0.92 +Output | 0.0012848 | 0.0012848 | 0.0012848 | 0.0 | 0.00 +Modify | 7.8094 | 7.8094 | 7.8094 | 0.0 | 5.99 +Other | | 0.06511 | | | 0.05 -Nlocal: 144 ave 144 max 144 min +Nlocal: 144.000 ave 144 max 144 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 5541 ave 5541 max 5541 min +Nghost: 5430.00 ave 5430 max 5430 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 74662 ave 74662 max 74662 min +Neighs: 72807.0 ave 72807 max 72807 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Total # of neighbors = 74662 -Ave neighs/atom = 518.486 -Neighbor list builds = 207 +Total # of neighbors = 72807 +Ave neighs/atom = 505.60417 +Neighbor list builds = 206 Dangerous builds = 0 -Total wall time: 0:00:37 +shell rm restart.1000 +Total wall time: 0:02:32 diff --git a/examples/USER/qtb/alpha_quartz_qbmsst/log.15Jun20.alpha_quartz_qbmsst.g++.4 b/examples/USER/qtb/alpha_quartz_qbmsst/log.09Feb21.alpha_quartz_qbmsst.g++.4 similarity index 63% rename from examples/USER/qtb/alpha_quartz_qbmsst/log.15Jun20.alpha_quartz_qbmsst.g++.4 rename to examples/USER/qtb/alpha_quartz_qbmsst/log.09Feb21.alpha_quartz_qbmsst.g++.4 index 58738cd639..024ca3cc3f 100644 --- a/examples/USER/qtb/alpha_quartz_qbmsst/log.15Jun20.alpha_quartz_qbmsst.g++.4 +++ b/examples/USER/qtb/alpha_quartz_qbmsst/log.09Feb21.alpha_quartz_qbmsst.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (15 Jun 2020) +LAMMPS (24 Dec 2020) using 1 OpenMP thread(s) per MPI task ## This script first uses fix qtb to equilibrate alpha quartz structure to an initial state with quantum nuclear correction and then simulate shock induced phase transition through the quantum thermal bath multi-scale shock technique variable x_rep equal 2 #plot is made with x_rep = 8 #x-direction replication number @@ -29,12 +29,12 @@ atom_style charge #Lattice lattice custom 1.0 a1 4.916000 0.000000 0.000000 a2 -2.45800 4.257381 0.000000 a3 0.000000 0.000000 5.405400 basis 0.469700 0.000000 0.000000 basis 0.000000 0.469700 0.666667 basis 0.530300 0.530300 0.333333 basis 0.413500 0.266900 0.119100 basis 0.266900 0.413500 0.547567 basis 0.733100 0.146600 0.785767 basis 0.586500 0.853400 0.214233 basis 0.853400 0.586500 0.452433 basis 0.146600 0.733100 0.880900 #American Mineralogist 65 920 1980 (Space Group 154) -Lattice spacing in x,y,z = 7.374 4.25738 5.4054 +Lattice spacing in x,y,z = 7.3740000 4.2573810 5.4054000 #Computational Cell region orthorhombic_unit_cell block 0 4.916000 0 8.514762 0 5.405400 units box create_box 2 orthorhombic_unit_cell -Created orthogonal box = (0.0 0.0 0.0) to (4.916 8.514762 5.4054) +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (4.9160000 8.5147620 5.4054000) 1 by 2 by 2 MPI processor grid create_atoms 1 box basis 1 1 basis 2 1 basis 3 1 basis 4 2 basis 5 2 basis 6 2 basis 7 2 basis 8 2 basis 9 2 Created 18 atoms @@ -43,17 +43,20 @@ replicate ${x_rep} ${y_rep} ${z_rep} replicate 2 ${y_rep} ${z_rep} replicate 2 1 ${z_rep} replicate 2 1 4 - orthogonal box = (0.0 0.0 0.0) to (9.832 8.514762 21.6216) +Replicating atoms ... + orthogonal box = (0.0000000 0.0000000 0.0000000) to (9.8320000 8.5147620 21.621600) 1 by 1 by 4 MPI processor grid 144 atoms - replicate CPU = 0.000225782 secs + replicate CPU = 0.001 seconds #Atomic Information mass 1 28.085500 mass 2 15.999400 set type 1 charge +2.4 +Setting atom values ... 48 settings made for charge set type 2 charge -1.2 +Setting atom values ... 96 settings made for charge @@ -72,8 +75,8 @@ pair_coeff 1 2 table potential_SiO2.TPF Si-O ${cut_off} pair_coeff 1 2 table potential_SiO2.TPF Si-O 10 pair_coeff 2 2 table potential_SiO2.TPF O-O ${cut_off} #See the potential file for more information pair_coeff 2 2 table potential_SiO2.TPF O-O 10 -WARNING: 1 of 39901 force values in table are inconsistent with -dE/dr. - Should only be flagged at inflection points (src/pair_table.cpp:471) +WARNING: 1 of 39901 force values in table O-O are inconsistent with -dE/dr. + Should only be flagged at inflection points (src/pair_table.cpp:461) kspace_style pppm 1.0e-4 #Neighbor style @@ -96,12 +99,12 @@ thermo_style custom step temp press etotal vol lx ly lz pxx pyy pzz p thermo 200 run 2000 # 2 ps PPPM initialization ... - using 12-bit tables for long-range coulomb (src/kspace.cpp:332) - G vector (1/distance) = 0.301598 + using 12-bit tables for long-range coulomb (src/kspace.cpp:339) + G vector (1/distance) = 0.30159814 grid = 9 8 15 stencil order = 5 - estimated absolute RMS force accuracy = 0.00117056 - estimated relative force accuracy = 8.12908e-05 + estimated absolute RMS force accuracy = 0.0011705589 + estimated relative force accuracy = 8.1290814e-05 using double precision FFTW3 3d grid and FFT values/proc = 2400 288 Neighbor list info ... @@ -121,44 +124,44 @@ Neighbor list info ... pair build: skip stencil: none bin: none -Per MPI rank memory allocation (min/avg/max) = 79.7 | 79.7 | 79.7 Mbytes +Per MPI rank memory allocation (min/avg/max) = 79.70 | 79.70 | 79.70 Mbytes Step Temp Press TotEng Volume Lx Ly Lz Pxx Pyy Pzz Pxy Pyz Pxz - 0 0 -34026.791 -2793.6042 1810.0985 9.832 8.514762 21.6216 -37470.578 -37470.432 -27139.363 1.0530512e-10 0.94245783 4.0087238e-10 + 0 0 -34026.791 -2793.6042 1810.0985 9.832 8.514762 21.6216 -37470.578 -37470.432 -27139.363 -3.2012455e-11 0.94245783 1.6892124e-10 200 153.57631 45538.205 -2790.8177 1873.0866 9.9447472 8.612404 21.869543 41721.016 44095.248 50798.351 -3961.4596 1223.325 2871.656 400 234.74785 -34404.175 -2789.0189 1850.2127 9.9041 8.5772024 21.780156 -28329.333 -39376.313 -35506.88 -1154.5043 -5411.1071 2246.6749 - 600 265.24833 -20905.145 -2786.2727 1874.9981 9.948129 8.6153326 21.87698 -22753.886 -21091.083 -18870.468 -4645.5548 2968.2945 1415.0311 - 800 297.79035 32990.58 -2784.8247 1853.6946 9.910309 8.5825796 21.79381 30061.364 35359.18 33551.195 -3092.2971 1525.52 -6461.0249 - 1000 367.71884 -27539.239 -2783.0102 1864.7161 9.9299114 8.5995557 21.836917 -20273.387 -38720.429 -23623.901 7639.0334 -866.35665 543.52723 - 1200 399.77109 3807.7814 -2781.511 1893.4978 9.9807399 8.6435745 21.948695 1625.8226 7441.2236 2356.298 -4057.1674 3814.9305 1528.4567 - 1400 466.57962 -4148.235 -2780.1546 1851.5925 9.9065614 8.5793341 21.785568 -10883.19 1816.768 -3378.2828 896.25296 -7208.541 -42.253127 - 1600 497.86539 14505.31 -2778.9409 1882.2616 9.9609584 8.6264432 21.905193 8268.1103 20614.738 14633.082 -2690.5669 6807.3187 11995.878 - 1800 557.31182 -108.04462 -2778.1875 1875.514 9.9490413 8.6161228 21.878986 948.68308 -1929.7575 656.94053 -1628.2172 -6594.5909 -4423.4368 - 2000 480.39449 -8852.2243 -2778.4963 1862.9552 9.9267847 8.596848 21.830042 -18274.307 3038.8369 -11321.203 -5002.1016 12023.282 6845.2769 -Loop time of 1.42181 on 4 procs for 2000 steps with 144 atoms + 600 265.24834 -20905.145 -2786.2727 1874.9981 9.948129 8.6153326 21.87698 -22753.885 -21091.083 -18870.467 -4645.5539 2968.2936 1415.0335 + 800 297.79036 32990.577 -2784.8247 1853.6946 9.910309 8.5825796 21.79381 30061.366 35359.175 33551.191 -3092.2938 1525.518 -6461.029 + 1000 367.71885 -27539.237 -2783.0102 1864.7161 9.9299114 8.5995557 21.836917 -20273.384 -38720.43 -23623.895 7639.0325 -866.34777 543.5312 + 1200 399.7711 3807.785 -2781.511 1893.4978 9.9807399 8.6435745 21.948695 1625.8297 7441.2317 2356.2937 -4057.1659 3814.9292 1528.4637 + 1400 466.57958 -4148.2231 -2780.1546 1851.5925 9.9065614 8.5793341 21.785568 -10883.182 1816.778 -3378.2653 896.24645 -7208.5417 -42.262464 + 1600 497.86536 14505.308 -2778.9409 1882.2616 9.9609584 8.6264432 21.905193 8268.1088 20614.74 14633.075 -2690.5703 6807.3188 11995.875 + 1800 557.31178 -108.02787 -2778.1875 1875.514 9.9490413 8.6161228 21.878986 948.70277 -1929.753 656.96663 -1628.2124 -6594.6026 -4423.4256 + 2000 480.39444 -8852.2282 -2778.4963 1862.9552 9.9267847 8.596848 21.830042 -18274.302 3038.8276 -11321.21 -5002.1095 12023.298 6845.2631 +Loop time of 4.1373 on 4 procs for 2000 steps with 144 atoms -Performance: 121.535 ns/day, 0.197 hours/ns, 1406.656 timesteps/s -87.5% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 41.766 ns/day, 0.575 hours/ns, 483.407 timesteps/s +96.8% 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.72578 | 0.80093 | 0.87518 | 6.1 | 56.33 -Kspace | 0.33737 | 0.41245 | 0.48642 | 8.4 | 29.01 +Pair | 2.2821 | 2.4503 | 2.7881 | 12.7 | 59.22 +Kspace | 0.81032 | 1.1413 | 1.306 | 18.2 | 27.59 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.066098 | 0.071334 | 0.076039 | 1.6 | 5.02 -Output | 0.00021172 | 0.00039291 | 0.00093484 | 0.0 | 0.03 -Modify | 0.090105 | 0.1077 | 0.11384 | 3.1 | 7.58 -Other | | 0.029 | | | 2.04 +Comm | 0.16143 | 0.16964 | 0.17659 | 1.3 | 4.10 +Output | 0.00026584 | 0.00061899 | 0.0016773 | 0.0 | 0.01 +Modify | 0.29943 | 0.33639 | 0.34927 | 3.7 | 8.13 +Other | | 0.03911 | | | 0.95 -Nlocal: 36 ave 36 max 36 min +Nlocal: 36.0000 ave 36 max 36 min Histogram: 4 0 0 0 0 0 0 0 0 0 -Nghost: 2614 ave 2614 max 2614 min +Nghost: 2614.00 ave 2614 max 2614 min Histogram: 4 0 0 0 0 0 0 0 0 0 -Neighs: 10488 ave 11326 max 9404 min +Neighs: 10488.0 ave 11326 max 9404 min Histogram: 1 0 0 0 0 0 2 0 0 1 Total # of neighbors = 41952 -Ave neighs/atom = 291.333 +Ave neighs/atom = 291.33333 Neighbor list builds = 0 Dangerous builds = 0 unfix quartz_qtb @@ -185,24 +188,23 @@ QBMSST parameters: Initial pressure calculated on first step Initial volume calculated on first step Initial energy calculated on first step -fix_modify shock energy yes variable dhug equal f_shock[1] variable dray equal f_shock[2] variable lgr_vel equal f_shock[3] variable lgr_pos equal f_shock[4] variable T_qm equal f_shock[5] #Temperature with quantum nuclear correction -thermo_style custom step v_T_qm press etotal vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos +thermo_style custom step v_T_qm press econserve vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos thermo 200 timestep ${delta_t} timestep 0.001 run 1000 PPPM initialization ... - using 12-bit tables for long-range coulomb (src/kspace.cpp:332) - G vector (1/distance) = 0.30088 + using 12-bit tables for long-range coulomb (src/kspace.cpp:339) + G vector (1/distance) = 0.30087967 grid = 9 8 15 stencil order = 5 - estimated absolute RMS force accuracy = 0.00120534 - estimated relative force accuracy = 8.37062e-05 + estimated absolute RMS force accuracy = 0.0012053392 + estimated relative force accuracy = 8.3706174e-05 using double precision FFTW3 3d grid and FFT values/proc = 2400 288 Neighbor list info ... @@ -225,50 +227,51 @@ Neighbor list info ... Fix QBMSST v0 = 1.86296e+03 Fix QBMSST p0 = -1.13219e+04 Fix QBMSST e0 = to be -2.77850e+03 -Fix QBMSST initial strain rate of -4.21890e-01 established by reducing temperature by factor of 5.00000e-02 -Per MPI rank memory allocation (min/avg/max) = 79.7 | 79.7 | 79.7 Mbytes -Step v_T_qm Press TotEng Volume Lx Ly Lz Pzz v_dhug v_dray v_lgr_vel v_lgr_pos - 0 300 -9106.318 -2778.4963 1862.9552 9.9267847 8.596848 21.830042 -11562.002 12.009862 -240.0699 0 0 - 200 296.47213 25984.111 -2777.5178 1770.2164 9.9267847 8.596848 20.743332 64970.204 -25.305765 -1564.7673 3.8828772 -15.16768 - 400 291.06707 69977.517 -2777.6325 1684.893 9.9267847 8.596848 19.743515 144833.82 -12.184734 6667.384 7.4552796 -29.607028 - 600 287.21118 39706.699 -2778.0322 1716.9533 9.9267847 8.596848 20.119196 87971.152 -38.593844 -23279.741 6.1129484 -43.751298 - 800 284.33611 18833.281 -2778.1637 1792.7576 9.9267847 8.596848 21.007468 43725.433 -8.1267799 -3885.5802 2.9391022 -58.454556 - 1000 281.98328 -6030.6935 -2778.3314 1881.8369 9.9267847 8.596848 22.051297 -14118.602 1.3183874 13055.078 -0.79055793 -73.780965 -Loop time of 1.25215 on 4 procs for 1000 steps with 144 atoms +Fix QBMSST initial strain rate of -4.21889e-01 established by reducing temperature by factor of 5.00000e-02 +Per MPI rank memory allocation (min/avg/max) = 79.70 | 79.70 | 79.70 Mbytes +Step v_T_qm Press Econserve Volume Lx Ly Lz Pzz v_dhug v_dray v_lgr_vel v_lgr_pos + 0 300 -9106.3219 -2778.4963 1862.9552 9.9267847 8.596848 21.830042 -11562.009 12.009861 -240.06987 0 0 + 200 296.47212 25984.099 -2777.5178 1770.2165 9.9267847 8.596848 20.743332 64970.178 -25.305804 -1564.7427 3.8828751 -15.16768 + 400 291.06704 69977.415 -2777.6325 1684.8932 9.9267847 8.596848 19.743517 144833.61 -12.18477 6667.3264 7.4552723 -29.607029 + 600 287.21114 39706.769 -2778.0322 1716.9533 9.9267847 8.596848 20.119196 87971.211 -38.594057 -23279.705 6.1129499 -43.7513 + 800 284.33606 18833.325 -2778.1637 1792.7575 9.9267847 8.596848 21.007467 43725.516 -8.1270751 -3885.5508 2.9391052 -58.454557 + 1000 281.98323 -6030.7047 -2778.3314 1881.8368 9.9267847 8.596848 22.051295 -14118.589 1.3182589 13054.989 -0.79055248 -73.780966 +Loop time of 3.32539 on 4 procs for 1000 steps with 144 atoms -Performance: 69.001 ns/day, 0.348 hours/ns, 798.628 timesteps/s -90.6% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 25.982 ns/day, 0.924 hours/ns, 300.717 timesteps/s +97.0% 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.67979 | 0.73665 | 0.8091 | 5.4 | 58.83 -Kspace | 0.18687 | 0.25893 | 0.31544 | 9.1 | 20.68 -Neigh | 0.0011306 | 0.0012404 | 0.0013735 | 0.3 | 0.10 -Comm | 0.040339 | 0.041345 | 0.042296 | 0.4 | 3.30 -Output | 0.00020051 | 0.00035506 | 0.00081801 | 0.0 | 0.03 -Modify | 0.19595 | 0.2007 | 0.20253 | 0.6 | 16.03 -Other | | 0.01292 | | | 1.03 +Pair | 1.9626 | 2.0842 | 2.2541 | 7.9 | 62.68 +Kspace | 0.44255 | 0.61231 | 0.73369 | 14.5 | 18.41 +Neigh | 0.0050733 | 0.0052404 | 0.0053804 | 0.2 | 0.16 +Comm | 0.077084 | 0.077385 | 0.077714 | 0.1 | 2.33 +Output | 0.00029039 | 0.00046909 | 0.0010037 | 0.0 | 0.01 +Modify | 0.50853 | 0.52962 | 0.53724 | 1.7 | 15.93 +Other | | 0.01615 | | | 0.49 -Nlocal: 36 ave 38 max 34 min +Nlocal: 36.0000 ave 38 max 34 min Histogram: 1 0 1 0 0 0 0 1 0 1 -Nghost: 2527.75 ave 2547 max 2518 min +Nghost: 2527.75 ave 2547 max 2518 min Histogram: 2 0 0 1 0 0 0 0 0 1 -Neighs: 10194.8 ave 11177 max 9437 min +Neighs: 10194.8 ave 11177 max 9437 min Histogram: 2 0 0 0 0 0 1 0 0 1 Total # of neighbors = 40779 -Ave neighs/atom = 283.188 +Ave neighs/atom = 283.18750 Neighbor list builds = 6 Dangerous builds = 0 write_restart restart.1000 +System init for write_restart ... PPPM initialization ... - using 12-bit tables for long-range coulomb (src/kspace.cpp:332) - G vector (1/distance) = 0.302953 + using 12-bit tables for long-range coulomb (src/kspace.cpp:339) + G vector (1/distance) = 0.30295266 grid = 9 8 16 stencil order = 5 - estimated absolute RMS force accuracy = 0.00105569 - estimated relative force accuracy = 7.33134e-05 + estimated absolute RMS force accuracy = 0.0010556863 + estimated relative force accuracy = 7.3313358e-05 using double precision FFTW3 3d grid and FFT values/proc = 2640 288 Neighbor list info ... @@ -294,12 +297,14 @@ Neighbor list info ... clear using 1 OpenMP thread(s) per MPI task read_restart restart.1000 +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 restoring atom style charge from restart - orthogonal box = (-0.04739235907204603 -0.041042988010289584 -0.21484841641189512) to (9.879392359072014 8.555804988010294 21.83644841641206) + orthogonal box = (-0.047392358 -0.041042987 -0.21484765) to (9.8793924 8.5558050 21.836448) 1 by 1 by 4 MPI processor grid restoring pair style hybrid/overlay from restart 144 atoms - read_restart CPU = 0.000472307 secs + read_restart CPU = 0.009 seconds include alpha_quartz_potential.mod #This script implements the BKS pair potential for various silicon dioxide compounds. Inner part is fixed with a harmonic potential. Long range Coulomb interactions are evaluated with the pppm method. @@ -314,8 +319,8 @@ pair_coeff 1 2 table potential_SiO2.TPF Si-O ${cut_off} pair_coeff 1 2 table potential_SiO2.TPF Si-O 10 pair_coeff 2 2 table potential_SiO2.TPF O-O ${cut_off} #See the potential file for more information pair_coeff 2 2 table potential_SiO2.TPF O-O 10 -WARNING: 1 of 39901 force values in table are inconsistent with -dE/dr. - Should only be flagged at inflection points (src/pair_table.cpp:471) +WARNING: 1 of 39901 force values in table O-O are inconsistent with -dE/dr. + Should only be flagged at inflection points (src/pair_table.cpp:461) kspace_style pppm 1.0e-4 #Neighbor style @@ -338,25 +343,24 @@ QBMSST parameters: Initial energy calculated on first step Resetting global fix info from restart file: fix style: qbmsst, fix ID: shock -fix_modify shock energy yes variable dhug equal f_shock[1] variable dray equal f_shock[2] variable lgr_vel equal f_shock[3] variable lgr_pos equal f_shock[4] variable T_qm equal f_shock[5] #Temperature with quantum nuclear correction -thermo_style custom step v_T_qm press etotal vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos +thermo_style custom step v_T_qm press econserve vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos thermo 500 timestep ${delta_t} timestep 0.001 -restart 1000 restart +#restart 1000 restart run 10000 #10 ps PPPM initialization ... - using 12-bit tables for long-range coulomb (src/kspace.cpp:332) - G vector (1/distance) = 0.302953 + using 12-bit tables for long-range coulomb (src/kspace.cpp:339) + G vector (1/distance) = 0.30295266 grid = 9 8 16 stencil order = 5 - estimated absolute RMS force accuracy = 0.00105569 - estimated relative force accuracy = 7.33134e-05 + estimated absolute RMS force accuracy = 0.0010556863 + estimated relative force accuracy = 7.3313358e-05 using double precision FFTW3 3d grid and FFT values/proc = 2640 288 All restart file global fix info was re-assigned @@ -378,53 +382,54 @@ Neighbor list info ... stencil: none bin: none Per MPI rank memory allocation (min/avg/max) = 79.71 | 79.71 | 79.71 Mbytes -Step v_T_qm Press TotEng Volume Lx Ly Lz Pzz v_dhug v_dray v_lgr_vel v_lgr_pos - 1000 281.98328 -6031.2395 -2778.6227 1881.8369 9.9267847 8.596848 22.051297 -14113.621 1.3373278 13060.059 -0.79055793 0 - 1500 266.12746 44405.573 -2777.9815 1739.6543 9.9267847 8.596848 20.385206 92590.239 -12.06041 397.47049 5.1624821 -37.823748 - 2000 255.79411 17620.408 -2777.9685 1785.7619 9.9267847 8.596848 20.925494 48670.364 -16.082827 -4813.6764 3.2320016 -73.974437 - 2500 256.8887 40153.833 -2778.4337 1752.9461 9.9267847 8.596848 20.540959 79665.002 7.7413878 -1368.8927 4.6059671 -112.35254 - 3000 261.55251 5315.4799 -2779.0755 1834.3375 9.9267847 8.596848 21.4947 15896.368 22.588205 3192.882 1.1981949 -148.36068 - 3500 261.57101 57911.809 -2778.1223 1713.3956 9.9267847 8.596848 20.077507 110996.8 -9.4471543 -3240.9018 6.2619064 -186.41261 - 4000 254.88665 13952.95 -2778.4816 1818.2782 9.9267847 8.596848 21.306518 26833.588 2.2818412 647.88057 1.8705799 -222.72504 - 4500 240.08908 73322.997 -2776.7382 1668.6666 9.9267847 8.596848 19.553375 151978.11 -43.917346 189.1572 8.1346613 -260.52885 - 5000 214.49084 1925.2557 -2777.0657 1890.0985 9.9267847 8.596848 22.148106 -5218.7292 -44.5537 28890.787 -1.1364617 -297.26329 - 5500 194.6515 71804.842 -2777.3417 1669.7297 9.9267847 8.596848 19.565832 146911.42 -34.911593 -3985.0635 8.0901523 -334.1879 - 6000 186.23814 10196.007 -2777.1394 1837.3793 9.9267847 8.596848 21.530344 23550.907 -18.381207 13401.096 1.0708382 -371.9208 - 6500 172.53603 5474.3725 -2777.4502 1818.0038 9.9267847 8.596848 21.303303 18389.825 -22.65951 -8026.2088 1.8820667 -407.83084 - 7000 160.91186 107908.64 -2777.6746 1621.7378 9.9267847 8.596848 19.003464 196841.27 -8.6606903 5654.1938 10.099523 -444.9925 - 7500 146.01905 147030.69 -2777.2543 1539.7536 9.9267847 8.596848 18.042777 253089.02 -43.928324 -6926.1018 13.532114 -478.63113 - 8000 207.17758 837859.1 -2796.8957 989.32874 9.9267847 8.596848 11.592918 811765.11 1172.3778 89652.363 36.577833 -503.41923 - 8500 725.15657 853732.89 -2832.3144 974.18299 9.9267847 8.596848 11.415441 773926.64 1749.5702 39098.598 37.21197 -524.17835 - 9000 1554.6089 807867.74 -2843.0063 990.10922 9.9267847 8.596848 11.602064 749697.22 1959.0322 28239.71 36.545155 -544.77354 - 9500 2440.1194 748145.05 -2839.2364 992.38871 9.9267847 8.596848 11.628775 691503.58 1437.0708 -28040.223 36.449715 -565.41198 - 10000 3112.1817 823862.43 -2820.0495 982.35471 9.9267847 8.596848 11.511197 754954.89 1330.6807 26987.244 36.869828 -586.12357 - 10500 3550.0273 868916.79 -2803.7678 983.70386 9.9267847 8.596848 11.527006 867368.45 1727.9058 140533.46 36.813341 -607.00946 - 11000 3839.7527 830581.55 -2795.3804 995.31485 9.9267847 8.596848 11.663063 811740 1150.0462 94652.768 36.327201 -628.02229 -Loop time of 15.1476 on 4 procs for 10000 steps with 144 atoms +Step v_T_qm Press Econserve Volume Lx Ly Lz Pzz v_dhug v_dray v_lgr_vel v_lgr_pos + 1000 281.98323 -6031.2507 -2778.6227 1881.8368 9.9267847 8.596848 22.051295 -14113.608 1.3371988 13059.97 -0.79055248 0 + 1500 266.12743 44405.252 -2777.9815 1739.6551 9.9267847 8.596848 20.385215 92589.619 -12.060756 397.55607 5.1624473 -37.823753 + 2000 255.79412 17620.89 -2777.9685 1785.7605 9.9267847 8.596848 20.925477 48671.42 -16.082485 -4813.8454 3.2320631 -73.974438 + 2500 257.13592 39692.462 -2778.6986 1751.4095 9.9267847 8.596848 20.522952 80667.315 15.746345 -1656.6275 4.6703047 -112.35088 + 3000 248.95332 9617.5633 -2778.937 1830.5557 9.9267847 8.596848 21.450385 25275.769 19.730704 9397.3972 1.3565331 -148.37113 + 3500 247.70025 100159.87 -2778.0604 1610.8047 9.9267847 8.596848 18.875351 189849.69 -33.726976 -10516.027 10.557281 -185.61862 + 4000 266.07224 848367.31 -2787.9052 992.46097 9.9267847 8.596848 11.629622 880163.37 1477.3994 160680.23 36.44669 -213.83067 + 4500 645.86948 789169.63 -2822.9559 992.40405 9.9267847 8.596848 11.628955 696879.41 1039.4139 -22651.518 36.449073 -234.79958 + 5000 1369.4257 735014.89 -2838.4571 1002.6048 9.9267847 8.596848 11.748487 648785.76 1170.3517 -62181.314 36.021977 -255.55776 + 5500 2156.7632 768865.28 -2835.9297 995.94989 9.9267847 8.596848 11.670505 678013.94 1271.734 -38540.152 36.300612 -276.42588 + 6000 2864.2837 773631.53 -2828.0627 993.01727 9.9267847 8.596848 11.63614 749067.81 1567.7659 30051.708 36.423398 -297.26898 + 6500 3422.632 861319.73 -2810.1415 985.48363 9.9267847 8.596848 11.547861 816792.18 1535.8348 91451.363 36.738824 -318.12934 + 7000 3798.2073 791521.73 -2801.7757 993.1961 9.9267847 8.596848 11.638236 677215.78 330.09854 -41650.204 36.415911 -338.86015 + 7500 4060.7728 836165.25 -2789.6215 984.13658 9.9267847 8.596848 11.532077 780101.5 698.84908 53629.791 36.795223 -359.64284 + 8000 4122.5641 754871.86 -2776.0049 1006.6266 9.9267847 8.596848 11.795613 699610.84 -124.86381 -7979.8848 35.853592 -380.58907 + 8500 4087.3529 769727.63 -2775.3629 1018.2197 9.9267847 8.596848 11.931461 767853.09 415.9984 69995.141 35.368199 -401.90058 + 9000 3958.4459 615996.33 -2758.7864 1058.0696 9.9267847 8.596848 12.398422 641295.34 -689.82578 -23107.426 33.699723 -423.43203 + 9500 3746.2013 643366.31 -2767.1851 1043.1232 9.9267847 8.596848 12.22328 610176.19 -767.67823 -66774.534 34.325515 -445.14544 + 10000 3723.8623 659730.11 -2781.6634 1034.0441 9.9267847 8.596848 12.116891 671355.25 0.037615796 -13217.642 34.705647 -466.9448 + 10500 3705.48 637406.18 -2776.4898 1041.5851 9.9267847 8.596848 12.205256 725619.7 274.78304 47377.665 34.389914 -488.75102 + 11000 3678.0139 648116.35 -2779.0968 1049.9523 9.9267847 8.596848 12.303303 723144.21 382.51198 51926.71 34.039587 -510.63944 +Loop time of 51.3151 on 4 procs for 10000 steps with 144 atoms -Performance: 57.039 ns/day, 0.421 hours/ns, 660.171 timesteps/s -91.3% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 16.837 ns/day, 1.425 hours/ns, 194.874 timesteps/s +94.1% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 7.7228 | 9.085 | 10.626 | 36.0 | 59.98 -Kspace | 1.6343 | 3.1795 | 4.5467 | 61.0 | 20.99 -Neigh | 0.02063 | 0.027076 | 0.034395 | 3.1 | 0.18 -Comm | 0.54719 | 0.57781 | 0.60468 | 2.8 | 3.81 -Output | 0.10128 | 0.1019 | 0.10373 | 0.3 | 0.67 -Modify | 2.0819 | 2.1159 | 2.1495 | 1.8 | 13.97 -Other | | 0.06035 | | | 0.40 +Pair | 26.662 | 32.362 | 38.05 | 70.9 | 63.07 +Kspace | 5.8733 | 11.582 | 17.302 | 118.9 | 22.57 +Neigh | 0.18541 | 0.22229 | 0.25113 | 5.0 | 0.43 +Comm | 1.4273 | 1.4501 | 1.483 | 1.9 | 2.83 +Output | 0.0011935 | 0.0018681 | 0.003891 | 2.7 | 0.00 +Modify | 5.4539 | 5.5056 | 5.5294 | 1.3 | 10.73 +Other | | 0.1916 | | | 0.37 -Nlocal: 36 ave 38 max 33 min +Nlocal: 36.0000 ave 37 max 35 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 4159.50 ave 4171 max 4140 min Histogram: 1 0 0 0 0 0 1 0 1 1 -Nghost: 4267 ave 4304 max 4239 min -Histogram: 1 0 1 0 1 0 0 0 0 1 -Neighs: 18859.2 ave 25108 max 12333 min -Histogram: 1 0 0 1 0 0 1 0 0 1 +Neighs: 17967.8 ave 20291 max 15710 min +Histogram: 2 0 0 0 0 0 0 0 0 2 -Total # of neighbors = 75437 -Ave neighs/atom = 523.868 -Neighbor list builds = 95 +Total # of neighbors = 71871 +Ave neighs/atom = 499.10417 +Neighbor list builds = 161 Dangerous builds = 0 -Total wall time: 0:00:17 +shell rm restart.1000 +Total wall time: 0:01:01 diff --git a/examples/USER/reaction/create_atoms_polystyrene/grow_styrene.map b/examples/USER/reaction/create_atoms_polystyrene/grow_styrene.map new file mode 100644 index 0000000000..88d282690c --- /dev/null +++ b/examples/USER/reaction/create_atoms_polystyrene/grow_styrene.map @@ -0,0 +1,66 @@ +map file: styrene growth + +1 edgeIDs +30 equivalences +16 createIDs + +InitiatorIDs + +4 +13 + +EdgeIDs + +30 + +CreateIDs + +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 + +Equivalences + +1 45 +2 46 +3 44 +4 43 +5 42 +6 41 +7 40 +8 39 +9 38 +10 37 +11 36 +12 35 +13 34 +14 33 +15 32 +16 31 +17 17 +18 18 +19 19 +20 20 +21 21 +22 22 +23 23 +24 24 +25 25 +26 26 +27 27 +28 28 +29 29 +30 30 diff --git a/examples/USER/reaction/create_atoms_polystyrene/grow_styrene_post.data_template b/examples/USER/reaction/create_atoms_polystyrene/grow_styrene_post.data_template new file mode 100644 index 0000000000..de0c2383bb --- /dev/null +++ b/examples/USER/reaction/create_atoms_polystyrene/grow_styrene_post.data_template @@ -0,0 +1,456 @@ +molecule template: end of chain plus polymerized styrene + +46 atoms +48 bonds +81 angles +121 dihedrals +35 impropers +1 fragments + +Fragments + +create_fit 34 44 + +Types + +1 1 +2 2 +3 1 +4 5 +5 1 +6 2 +7 1 +8 2 +9 1 +10 2 +11 1 +12 2 +13 2 +14 6 +15 2 +16 2 +17 1 +18 2 +19 1 +20 5 +21 1 +22 2 +23 1 +24 2 +25 1 +26 2 +27 1 +28 2 +29 2 +30 6 +31 1 +32 2 +33 1 +34 5 +35 1 +36 2 +37 1 +38 2 +39 1 +40 2 +41 1 +42 2 +43 2 +44 6 +45 2 +46 2 + +Charges + +1 -0.129000 +2 0.123700 +3 0.026600 +4 -0.018200 +5 -0.129000 +6 0.123700 +7 -0.173400 +8 0.140300 +9 -0.113400 +10 0.128800 +11 -0.173400 +12 0.140300 +13 0.051600 +14 -0.069600 +15 0.035400 +16 0.035400 +17 -0.129000 +18 0.123700 +19 0.026600 +20 -0.018200 +21 -0.129000 +22 0.123700 +23 -0.173400 +24 0.140300 +25 -0.113400 +26 0.128800 +27 -0.173400 +28 0.140300 +29 0.051600 +30 -0.069600 +31 -0.129000 +32 0.123700 +33 0.026600 +34 -0.018200 +35 -0.129000 +36 0.123700 +37 -0.173400 +38 0.140300 +39 -0.113400 +40 0.128800 +41 -0.173400 +42 0.140300 +43 0.051600 +44 -0.069600 +45 0.035400 +46 0.035400 + +Coords + +1 24.130699 1.043900 -1.309300 +2 25.062700 1.582900 -1.309300 +3 22.900700 1.753900 -1.309300 +4 22.900700 3.253900 -1.309300 +5 21.670700 1.043900 -1.309300 +6 20.738701 1.582900 -1.309300 +7 21.670700 -0.376100 -1.309300 +8 20.738701 -0.915100 -1.309300 +9 22.900700 -1.086100 -1.309300 +10 22.900700 -2.163100 -1.309300 +11 24.130699 -0.376100 -1.309300 +12 25.062700 -0.915100 -1.309300 +13 23.766701 3.658900 -0.952300 +14 21.622700 3.802900 -1.871300 +15 21.672701 4.544900 -1.970300 +16 20.979700 2.979900 -2.165300 +17 13.465800 0.682500 -1.658900 +18 14.397800 1.221500 -1.658900 +19 12.235800 1.392500 -1.658900 +20 12.235800 2.892500 -1.658900 +21 11.005800 0.682500 -1.658900 +22 10.073800 1.221500 -1.658900 +23 11.005800 -0.737500 -1.658900 +24 10.073800 -1.276500 -1.658900 +25 12.235800 -1.447500 -1.658900 +26 12.235800 -2.524500 -1.658900 +27 13.465800 -0.737500 -1.658900 +28 14.397800 -1.276500 -1.658900 +29 13.101800 3.297500 -1.301900 +30 10.957800 3.441500 -2.220900 +31 18.663500 0.855500 -1.372100 +32 19.595501 1.394500 -1.372100 +33 17.433500 1.565500 -1.372100 +34 17.433500 3.065500 -1.372100 +35 16.203501 0.855500 -1.372100 +36 15.271500 1.394500 -1.372100 +37 16.203501 -0.564500 -1.372100 +38 15.271500 -1.103500 -1.372100 +39 17.433500 -1.274500 -1.372100 +40 17.433500 -2.351500 -1.372100 +41 18.663500 -0.564500 -1.372100 +42 19.595501 -1.103500 -1.372100 +43 18.299500 3.470500 -1.015100 +44 16.155500 3.614500 -1.934100 +45 16.205500 4.356500 -2.033100 +46 15.512500 2.791500 -2.228100 + +Bonds + +1 1 1 2 +2 2 1 3 +3 2 1 11 +4 11 3 4 +5 2 3 5 +6 12 13 4 +7 13 4 14 +8 1 5 6 +9 2 5 7 +10 1 7 8 +11 2 7 9 +12 1 9 10 +13 2 9 11 +14 1 11 12 +15 10 15 14 +16 10 16 14 +17 9 14 34 +18 1 17 18 +19 2 17 19 +20 2 17 27 +21 7 19 20 +22 2 19 21 +23 8 29 20 +24 9 30 20 +25 9 44 20 +26 1 21 22 +27 2 21 23 +28 1 23 24 +29 2 23 25 +30 1 25 26 +31 2 25 27 +32 1 27 28 +33 1 31 32 +34 2 31 33 +35 2 31 41 +36 7 33 34 +37 2 33 35 +38 8 43 34 +39 9 44 34 +40 1 35 36 +41 2 35 37 +42 1 37 38 +43 2 37 39 +44 1 39 40 +45 2 39 41 +46 1 41 42 +47 10 45 44 +48 10 46 44 + +Angles + +1 1 3 1 2 +2 1 11 1 2 +3 2 3 1 11 +4 17 1 3 4 +5 2 1 3 5 +6 17 5 3 4 +7 18 3 4 13 +8 19 3 4 14 +9 20 13 4 14 +10 1 3 5 6 +11 2 3 5 7 +12 1 7 5 6 +13 1 5 7 8 +14 2 5 7 9 +15 1 9 7 8 +16 1 7 9 10 +17 2 7 9 11 +18 1 11 9 10 +19 2 1 11 9 +20 1 1 11 12 +21 1 9 11 12 +22 21 15 14 4 +23 21 16 14 4 +24 22 4 14 34 +25 15 15 14 16 +26 14 15 14 34 +27 14 16 14 34 +28 1 19 17 18 +29 1 27 17 18 +30 2 19 17 27 +31 9 17 19 20 +32 2 17 19 21 +33 9 21 19 20 +34 10 19 20 29 +35 11 19 20 30 +36 11 19 20 44 +37 12 29 20 30 +38 12 29 20 44 +39 13 30 20 44 +40 1 19 21 22 +41 2 19 21 23 +42 1 23 21 22 +43 1 21 23 24 +44 2 21 23 25 +45 1 25 23 24 +46 1 23 25 26 +47 2 23 25 27 +48 1 27 25 26 +49 2 17 27 25 +50 1 17 27 28 +51 1 25 27 28 +52 1 33 31 32 +53 1 41 31 32 +54 2 33 31 41 +55 9 31 33 34 +56 2 31 33 35 +57 9 35 33 34 +58 11 33 34 14 +59 12 43 34 14 +60 13 14 34 44 +61 10 33 34 43 +62 11 33 34 44 +63 12 43 34 44 +64 1 33 35 36 +65 2 33 35 37 +66 1 37 35 36 +67 1 35 37 38 +68 2 35 37 39 +69 1 39 37 38 +70 1 37 39 40 +71 2 37 39 41 +72 1 41 39 40 +73 2 31 41 39 +74 1 31 41 42 +75 1 39 41 42 +76 16 20 44 34 +77 14 45 44 20 +78 14 46 44 20 +79 14 45 44 34 +80 14 46 44 34 +81 15 45 44 46 + +Dihedrals + +1 20 2 1 3 4 +2 2 5 3 1 2 +3 21 11 1 3 4 +4 4 11 1 3 5 +5 2 9 11 1 2 +6 5 2 1 11 12 +7 4 3 1 11 9 +8 2 3 1 11 12 +9 22 1 3 4 13 +10 23 1 3 4 14 +11 22 5 3 4 13 +12 23 5 3 4 14 +13 2 1 3 5 6 +14 4 1 3 5 7 +15 20 6 5 3 4 +16 21 7 5 3 4 +17 24 3 4 14 15 +18 24 3 4 14 16 +19 25 3 4 14 34 +20 26 13 4 14 15 +21 26 13 4 14 16 +22 27 13 4 14 34 +23 2 3 5 7 8 +24 4 3 5 7 9 +25 5 6 5 7 8 +26 2 9 7 5 6 +27 2 5 7 9 10 +28 4 5 7 9 11 +29 5 8 7 9 10 +30 2 11 9 7 8 +31 4 7 9 11 1 +32 2 7 9 11 12 +33 2 1 11 9 10 +34 5 10 9 11 12 +35 28 4 14 34 33 +36 29 4 14 34 43 +37 30 4 14 34 44 +38 31 15 14 34 33 +39 32 15 14 34 43 +40 33 15 14 34 44 +41 31 16 14 34 33 +42 32 16 14 34 43 +43 33 16 14 34 44 +44 10 18 17 19 20 +45 2 21 19 17 18 +46 11 27 17 19 20 +47 4 27 17 19 21 +48 2 25 27 17 18 +49 5 18 17 27 28 +50 4 19 17 27 25 +51 2 19 17 27 28 +52 12 17 19 20 29 +53 13 17 19 20 30 +54 13 17 19 20 44 +55 12 21 19 20 29 +56 13 21 19 20 30 +57 13 21 19 20 44 +58 2 17 19 21 22 +59 4 17 19 21 23 +60 10 22 21 19 20 +61 11 23 21 19 20 +62 34 34 44 20 19 +63 31 45 44 20 19 +64 31 46 44 20 19 +65 35 34 44 20 29 +66 32 45 44 20 29 +67 32 46 44 20 29 +68 36 34 44 20 30 +69 33 45 44 20 30 +70 33 46 44 20 30 +71 2 19 21 23 24 +72 4 19 21 23 25 +73 5 22 21 23 24 +74 2 25 23 21 22 +75 2 21 23 25 26 +76 4 21 23 25 27 +77 5 24 23 25 26 +78 2 27 25 23 24 +79 4 23 25 27 17 +80 2 23 25 27 28 +81 2 17 27 25 26 +82 5 26 25 27 28 +83 10 32 31 33 34 +84 2 35 33 31 32 +85 11 41 31 33 34 +86 4 41 31 33 35 +87 2 39 41 31 32 +88 5 32 31 41 42 +89 4 33 31 41 39 +90 2 33 31 41 42 +91 13 31 33 34 14 +92 12 31 33 34 43 +93 13 31 33 34 44 +94 13 35 33 34 14 +95 12 35 33 34 43 +96 13 35 33 34 44 +97 2 31 33 35 36 +98 4 31 33 35 37 +99 10 36 35 33 34 +100 11 37 35 33 34 +101 36 20 44 34 14 +102 33 45 44 34 14 +103 33 46 44 34 14 +104 34 20 44 34 33 +105 31 45 44 34 33 +106 31 46 44 34 33 +107 35 20 44 34 43 +108 32 45 44 34 43 +109 32 46 44 34 43 +110 2 33 35 37 38 +111 4 33 35 37 39 +112 5 36 35 37 38 +113 2 39 37 35 36 +114 2 35 37 39 40 +115 4 35 37 39 41 +116 5 38 37 39 40 +117 2 41 39 37 38 +118 4 37 39 41 31 +119 2 37 39 41 42 +120 2 31 41 39 40 +121 5 40 39 41 42 + +Impropers + +1 1 3 1 11 2 +2 8 1 3 5 4 +3 9 3 4 13 14 +4 1 3 5 7 6 +5 1 5 7 9 8 +6 1 7 9 11 10 +7 1 1 11 9 12 +8 1 19 17 27 18 +9 5 17 19 21 20 +10 1 19 21 23 22 +11 1 21 23 25 24 +12 1 23 25 27 26 +13 1 17 27 25 28 +14 1 33 31 41 32 +15 5 31 33 35 34 +16 1 33 35 37 36 +17 1 35 37 39 38 +18 1 37 39 41 40 +19 1 31 41 39 42 +20 1 15 14 16 4 +21 1 15 14 4 34 +22 1 16 14 4 34 +23 1 15 14 16 34 +24 1 19 20 29 30 +25 1 19 20 29 44 +26 1 19 20 30 44 +27 1 29 20 30 44 +28 1 33 34 43 14 +29 1 33 34 14 44 +30 1 43 34 14 44 +31 1 33 34 43 44 +32 1 45 44 34 20 +33 1 46 44 34 20 +34 1 45 44 46 20 +35 1 45 44 46 34 diff --git a/examples/USER/reaction/create_atoms_polystyrene/grow_styrene_pre.data_template b/examples/USER/reaction/create_atoms_polystyrene/grow_styrene_pre.data_template new file mode 100644 index 0000000000..d04fefccf5 --- /dev/null +++ b/examples/USER/reaction/create_atoms_polystyrene/grow_styrene_pre.data_template @@ -0,0 +1,294 @@ +molecule template: end of styrene chain + +30 atoms +31 bonds +51 angles +73 dihedrals +21 impropers + +Types + +1 2 +2 2 +3 6 +4 2 +5 2 +6 1 +7 2 +8 1 +9 2 +10 1 +11 2 +12 1 +13 5 +14 1 +15 2 +16 1 +17 1 +18 2 +19 1 +20 5 +21 1 +22 2 +23 1 +24 2 +25 1 +26 2 +27 1 +28 2 +29 2 +30 6 + +Coords + +1 59.89981112372972 62.733697275315585 59.09884284578856 +2 61.41970248324232 63.42116581894993 59.52874545893742 +3 60.864754970096406 62.91724243011892 59.559720865992695 +4 62.139819000186826 61.41011937002877 60.81065044071466 +5 60.036455711425084 57.160029629288026 60.31958663310848 +6 59.734195751174056 58.18706337912225 60.20562410798949 +7 57.64574781117771 57.712432799329 59.860109977091554 +8 58.37408644866664 58.50134169314242 59.94422053768215 +9 56.94300092269842 60.093170109004795 59.5955638127831 +10 57.974275786582744 59.85577775892068 59.793714995577716 +11 58.63231375134033 61.922969938852454 59.79065033121885 +12 58.934573711591355 60.89593618901822 59.904612856337835 +13 61.30908151524225 61.68041745837013 60.28316188676589 +14 60.29468229868386 60.58165855333751 60.16601625920239 +15 61.725768540066994 58.98982945913568 60.51467315154424 +16 60.69449367618267 59.2272218092198 60.31652196874961 +17 56.90935800040509 62.609851248143706 59.150831390216375 +18 57.940632148874506 62.37245957639904 59.3489824055682 +19 56.509546622906285 63.96428799226142 59.00032568066915 +20 57.52394583946467 65.06304689729403 59.11747130823266 +21 55.14943732039887 64.27856630628159 58.738922110361806 +22 54.84717807556275 65.30559937777636 58.62495975268562 +23 54.18913939539026 63.23840787618404 58.62802424960169 +24 53.15786524692084 63.4757995479287 58.42987323424986 +25 54.58895077288906 61.88397113206633 58.77852995914891 +26 53.86061213540014 61.09506223825291 58.69441939855832 +27 55.94906007539648 61.56969281804616 59.039933529456256 +28 56.2513193202326 60.54265974655139 59.15389588713244 +29 58.35468332440925 64.79274880895268 59.64495986218142 +30 57.07961929431883 66.29987186904283 58.394030287459465 + +Charges + +1 0.0354 +2 0.0354 +3 -0.0696 +4 0.0516 +5 0.1403 +6 -0.1734 +7 0.1288 +8 -0.1134 +9 0.1403 +10 -0.1734 +11 0.1237 +12 -0.129 +13 -0.0182 +14 0.0266 +15 0.1237 +16 -0.129 +17 -0.129 +18 0.1237 +19 0.0266 +20 -0.0182 +21 -0.129 +22 0.1237 +23 -0.1734 +24 0.1403 +25 -0.1134 +26 0.1288 +27 -0.1734 +28 0.1403 +29 0.0516 +30 -0.0696 + +Bonds + +1 10 1 3 +2 10 2 3 +3 8 4 13 +4 1 6 5 +5 1 8 7 +6 2 8 6 +7 1 10 9 +8 2 10 8 +9 1 12 11 +10 2 12 10 +11 9 13 3 +12 7 14 13 +13 2 14 12 +14 1 16 15 +15 2 16 14 +16 2 16 6 +17 1 17 18 +18 2 17 19 +19 2 17 27 +20 7 19 20 +21 2 19 21 +22 9 20 30 +23 9 20 3 +24 1 21 22 +25 2 21 23 +26 1 23 24 +27 2 23 25 +28 1 25 26 +29 2 25 27 +30 1 27 28 +31 8 29 20 + +Angles + +1 16 20 3 13 +2 14 2 3 20 +3 14 1 3 20 +4 14 2 3 13 +5 14 1 3 13 +6 15 2 3 1 +7 2 16 6 8 +8 1 16 6 5 +9 1 8 6 5 +10 1 10 8 7 +11 2 10 8 6 +12 1 6 8 7 +13 1 12 10 9 +14 2 12 10 8 +15 1 8 10 9 +16 1 14 12 11 +17 2 14 12 10 +18 1 10 12 11 +19 10 14 13 4 +20 11 14 13 3 +21 12 4 13 3 +22 9 16 14 13 +23 2 16 14 12 +24 9 12 14 13 +25 1 14 16 15 +26 1 6 16 15 +27 2 14 16 6 +28 1 19 17 18 +29 1 27 17 18 +30 2 19 17 27 +31 9 17 19 20 +32 2 17 19 21 +33 9 21 19 20 +34 10 19 20 29 +35 11 19 20 30 +36 11 19 20 3 +37 12 29 20 30 +38 12 29 20 3 +39 13 30 20 3 +40 1 19 21 22 +41 2 19 21 23 +42 1 23 21 22 +43 1 21 23 24 +44 2 21 23 25 +45 1 25 23 24 +46 1 23 25 26 +47 2 23 25 27 +48 1 27 25 26 +49 2 17 27 25 +50 1 17 27 28 +51 1 25 27 28 + +Dihedrals + +1 2 8 6 16 15 +2 2 16 6 8 7 +3 2 6 8 10 9 +4 4 10 8 6 16 +5 2 10 8 6 5 +6 5 7 8 6 5 +7 2 8 10 12 11 +8 2 12 10 8 7 +9 4 12 10 8 6 +10 5 9 10 8 7 +11 10 11 12 14 13 +12 11 10 12 14 13 +13 2 14 12 10 9 +14 4 14 12 10 8 +15 5 11 12 10 9 +16 17 14 13 3 20 +17 14 14 13 3 2 +18 14 14 13 3 1 +19 18 4 13 3 20 +20 15 4 13 3 2 +21 15 4 13 3 1 +22 2 12 14 16 15 +23 12 16 14 13 4 +24 13 16 14 13 3 +25 12 12 14 13 4 +26 13 12 14 13 3 +27 2 16 14 12 11 +28 4 16 14 12 10 +29 10 15 16 14 13 +30 11 6 16 14 13 +31 4 6 16 14 12 +32 5 15 16 6 5 +33 4 14 16 6 8 +34 2 14 16 6 5 +35 10 18 17 19 20 +36 11 27 17 19 20 +37 4 27 17 19 21 +38 5 18 17 27 28 +39 4 19 17 27 25 +40 2 19 17 27 28 +41 2 21 19 17 18 +42 12 17 19 20 29 +43 13 17 19 20 30 +44 13 17 19 20 3 +45 12 21 19 20 29 +46 13 21 19 20 30 +47 13 21 19 20 3 +48 2 17 19 21 22 +49 4 17 19 21 23 +50 17 19 20 3 13 +51 14 19 20 3 2 +52 14 19 20 3 1 +53 18 29 20 3 13 +54 15 29 20 3 2 +55 15 29 20 3 1 +56 19 30 20 3 13 +57 16 30 20 3 2 +58 16 30 20 3 1 +59 10 22 21 19 20 +60 11 23 21 19 20 +61 2 19 21 23 24 +62 4 19 21 23 25 +63 5 22 21 23 24 +64 2 25 23 21 22 +65 2 21 23 25 26 +66 4 21 23 25 27 +67 5 24 23 25 26 +68 2 27 25 23 24 +69 4 23 25 27 17 +70 2 23 25 27 28 +71 5 26 25 27 28 +72 2 25 27 17 18 +73 2 17 27 25 26 + +Impropers + +1 1 2 3 13 20 +2 1 1 3 13 20 +3 1 2 3 1 20 +4 1 2 3 1 13 +5 1 16 6 8 5 +6 1 10 8 6 7 +7 1 12 10 8 9 +8 1 14 12 10 11 +9 7 14 13 4 3 +10 5 16 14 12 13 +11 1 14 16 6 15 +12 1 19 17 27 18 +13 5 17 19 21 20 +14 1 19 20 29 30 +15 1 19 20 29 3 +16 1 19 20 30 3 +17 1 29 20 30 3 +18 1 19 21 23 22 +19 1 21 23 25 24 +20 1 23 25 27 26 +21 1 17 27 25 28 diff --git a/examples/USER/reaction/create_atoms_polystyrene/in.grow_styrene b/examples/USER/reaction/create_atoms_polystyrene/in.grow_styrene new file mode 100644 index 0000000000..8950cec614 --- /dev/null +++ b/examples/USER/reaction/create_atoms_polystyrene/in.grow_styrene @@ -0,0 +1,48 @@ +# use bond/react 'create atoms' feature to add 30 new styrene monomers to chain + +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 + +variable T equal 530 + +read_data trimer.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 + +molecule mol1 grow_styrene_pre.data_template +molecule mol2 grow_styrene_post.data_template + +fix myrxns all bond/react stabilization yes statted_grp .03 & + react rxn1 all 1 0 3.0 mol1 mol2 grow_styrene.map & + modify_create fit create_fit overlap 2.0 & + stabilize_steps 100 max_rxn 30 + +fix 1 statted_grp_REACT nvt temp $T $T 100 + +fix 4 bond_react_MASTER_group temp/rescale 1 $T $T 1 1 + +thermo_style custom step temp press density f_myrxns[1] + +thermo 100 + +run 8000 + +# write_data final.data nofix diff --git a/examples/USER/reaction/create_atoms_polystyrene/log.24Dec20.grow_styrene.g++.1 b/examples/USER/reaction/create_atoms_polystyrene/log.24Dec20.grow_styrene.g++.1 new file mode 100644 index 0000000000..5f1f2c6698 --- /dev/null +++ b/examples/USER/reaction/create_atoms_polystyrene/log.24Dec20.grow_styrene.g++.1 @@ -0,0 +1,196 @@ +LAMMPS (24 Dec 2020) +Reading data file ... + orthogonal box = (50.000000 50.000000 50.000000) to (250.00000 250.00000 250.00000) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 48 atoms + reading velocities ... + 48 velocities + scanning bonds ... + 8 = max bonds/atom + scanning angles ... + 21 = max angles/atom + scanning dihedrals ... + 33 = max dihedrals/atom + scanning impropers ... + 29 = max impropers/atom + reading bonds ... + 50 bonds + reading angles ... + 84 angles + reading dihedrals ... + 127 dihedrals + reading impropers ... + 36 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 8 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 46 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.077 seconds +Read molecule template mol1: + 1 molecules + 30 atoms with max type 6 + 31 bonds with max type 10 + 51 angles with max type 16 + 73 dihedrals with max type 19 + 21 impropers with max type 7 +Read molecule template mol2: + 1 molecules + 46 atoms with max type 6 + 48 bonds with max type 13 + 81 angles with max type 22 + 121 dihedrals with max type 36 + 35 impropers with max type 9 +dynamic group bond_react_MASTER_group defined +dynamic group statted_grp_REACT defined +PPPM initialization ... +WARNING: System is not charge neutral, net charge = -0.00060000000 (../kspace.cpp:324) + using 12-bit tables for long-range coulomb (../kspace.cpp:339) + G vector (1/distance) = 0.20144813 + grid = 45 45 45 + stencil order = 5 + estimated absolute RMS force accuracy = 0.00053712952 + estimated relative force accuracy = 1.6175496e-06 + using double precision KISS FFT + 3d grid and FFT values/proc = 125000 91125 +Neighbor list info ... + update every 1 steps, delay 10 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 = 39 39 39 + 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/newton + bin: standard + (2) fix bond/react, occasional, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 1 +Per MPI rank memory allocation (min/avg/max) = 48.02 | 48.02 | 48.02 Mbytes +Step Temp Press Density f_myrxns[1] + 0 496.23742 0.9983211 6.4856516e-05 0 + 100 534.05394 -0.76952227 6.4856516e-05 0 + 200 552.2225 -0.55375493 6.4856516e-05 0 + 300 857.52834 -0.4272061 8.6475354e-05 1 + 400 714.10681 1.5004615 8.6475354e-05 1 + 500 678.19171 0.21965471 8.6475354e-05 1 + 600 572.3234 0.87879933 8.6475354e-05 1 + 700 996.17398 -0.24269717 0.00010809419 2 + 800 904.50395 1.3662054 0.00010809419 2 + 900 1097.1568 -2.2909907 0.00012971303 3 + 1000 954.08892 1.7705672 0.00012971303 3 + 1100 1102.0377 -1.7018446 0.00015133187 4 + 1200 1239.785 -0.30442903 0.00015133187 4 + 1300 1388.4127 1.3301175 0.00017295071 5 + 1400 1559.3853 1.6709729 0.00017295071 5 + 1500 1471.8623 0.8268427 0.00017295071 5 + 1600 1543.6793 2.1987908 0.00019456955 6 + 1700 1694.5595 0.48852817 0.00019456955 6 + 1800 1632.7737 -1.4617692 0.00021618839 7 + 1900 1922.6502 1.1664257 0.00021618839 7 + 2000 2223.503 -0.95799878 0.00023780722 8 + 2100 2142.6035 0.88444463 0.00025942606 9 + 2200 2298.8636 3.4239313 0.00025942606 9 + 2300 2252.4355 0.82167302 0.00025942606 9 + 2400 2321.0788 1.7499714 0.00025942606 9 + 2500 2095.6715 0.55288444 0.00025942606 9 + 2600 2136.0316 -3.833114 0.00025942606 9 + 2700 2466.3134 -2.2519511 0.00025942606 9 + 2800 2294.3454 1.0637304 0.00025942606 9 + 2900 2340.3891 1.3997049 0.0002810449 10 + 3000 2272.0013 -0.27591886 0.0002810449 10 + 3100 2333.9696 -0.11772138 0.0002810449 10 + 3200 2409.0946 -1.025473 0.0002810449 10 + 3300 2148.023 1.6752329 0.0002810449 10 + 3400 2267.636 -0.45297583 0.0002810449 10 + 3500 2457.622 0.35627297 0.0002810449 10 + 3600 2288.008 -15.516626 0.00030266374 11 + 3700 2458.2681 1.4571773 0.00030266374 11 + 3800 2566.7623 -29.140553 0.00032428258 12 + 3900 2839.4062 0.64583638 0.00032428258 12 + 4000 2893.9852 -52.954497 0.00034590142 13 + 4100 3021.3611 -65.03731 0.00036752025 14 + 4200 3002.7136 1.5750081 0.00036752025 14 + 4300 3218.6248 -120.74039 0.00038913909 15 + 4400 3345.1482 -0.96545269 0.00038913909 15 + 4500 3603.2429 1.2438833 0.00038913909 15 + 4600 3129.8814 -249.91806 0.00041075793 16 + 4700 3769.052 -289.24351 0.00043237677 17 + 4800 3560.4714 -3.1655406 0.00043237677 17 + 4900 3452.2717 -2.1270765 0.00043237677 17 + 5000 3594.3247 -523.48506 0.00045399561 18 + 5100 3578.4199 1.0009097 0.00045399561 18 + 5200 3822.1566 1.0526914 0.00047561445 19 + 5300 3901.8883 -0.14607602 0.00047561445 19 + 5400 4059.3644 -1.7789927 0.00049723329 20 + 5500 4163.6847 1.0240127 0.00049723329 20 + 5600 4109.1649 0.80199787 0.00049723329 20 + 5700 4391.2091 2.8730036 0.00049723329 20 + 5800 4279.6579 -0.36499822 0.00051885212 21 + 5900 4296.2695 -1.3064528 0.00051885212 21 + 6000 4065.3758 -2.0483224 0.00051885212 21 + 6100 4772.5362 -2.6814694 0.00054047096 22 + 6200 4627.029 2.999215 0.0005620898 23 + 6300 5120.7881 0.65372968 0.00058370864 24 + 6400 4588.9559 3.7570705 0.00058370864 24 + 6500 5008.7814 2.3595833 0.00060532748 25 + 6600 5195.0053 1.4641612 0.00060532748 25 + 6700 5622.293 -0.33396047 0.00062694632 26 + 6800 5515.1957 -4.234874 0.00062694632 26 + 6900 5156.7455 0.40171954 0.00064856516 27 + 7000 5120.1639 -1.6065245 0.00064856516 27 + 7100 5650.0327 0.94436323 0.00067018399 28 + 7200 5985.1115 -3.8940347 0.00069180283 29 + 7300 5983.197 0.5293568 0.00069180283 29 + 7400 6001.1559 -0.13712834 0.00071342167 30 + 7500 5889.2134 0.17230892 0.00071342167 30 + 7600 5797.31 2.0920058 0.00071342167 30 + 7700 5865.2783 -0.18556395 0.00071342167 30 + 7800 6207.0659 -5.6237083 0.00071342167 30 + 7900 5627.5108 -2.3718942 0.00071342167 30 + 8000 5823.9502 -0.85418578 0.00071342167 30 +Loop time of 184.87 on 1 procs for 8000 steps with 528 atoms + +Performance: 3.739 ns/day, 6.419 hours/ns, 43.274 timesteps/s +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.3043 | 3.3043 | 3.3043 | 0.0 | 1.79 +Bond | 8.0003 | 8.0003 | 8.0003 | 0.0 | 4.33 +Kspace | 168.33 | 168.33 | 168.33 | 0.0 | 91.05 +Neigh | 4.6322 | 4.6322 | 4.6322 | 0.0 | 2.51 +Comm | 0.077927 | 0.077927 | 0.077927 | 0.0 | 0.04 +Output | 0.0020548 | 0.0020548 | 0.0020548 | 0.0 | 0.00 +Modify | 0.5005 | 0.5005 | 0.5005 | 0.0 | 0.27 +Other | | 0.02483 | | | 0.01 + +Nlocal: 528.000 ave 528 max 528 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 341.000 ave 341 max 341 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 35111.0 ave 35111 max 35111 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 35111 +Ave neighs/atom = 66.498106 +Ave special neighs/atom = 11.409091 +Neighbor list builds = 8000 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:03:05 diff --git a/examples/USER/reaction/create_atoms_polystyrene/log.24Dec20.grow_styrene.g++.4 b/examples/USER/reaction/create_atoms_polystyrene/log.24Dec20.grow_styrene.g++.4 new file mode 100644 index 0000000000..8daa6d8161 --- /dev/null +++ b/examples/USER/reaction/create_atoms_polystyrene/log.24Dec20.grow_styrene.g++.4 @@ -0,0 +1,196 @@ +LAMMPS (24 Dec 2020) +Reading data file ... + orthogonal box = (50.000000 50.000000 50.000000) to (250.00000 250.00000 250.00000) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 48 atoms + reading velocities ... + 48 velocities + scanning bonds ... + 8 = max bonds/atom + scanning angles ... + 21 = max angles/atom + scanning dihedrals ... + 33 = max dihedrals/atom + scanning impropers ... + 29 = max impropers/atom + reading bonds ... + 50 bonds + reading angles ... + 84 angles + reading dihedrals ... + 127 dihedrals + reading impropers ... + 36 impropers +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 4 = max # of 1-2 neighbors + 8 = max # of 1-3 neighbors + 17 = max # of 1-4 neighbors + 46 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.007 seconds +Read molecule template mol1: + 1 molecules + 30 atoms with max type 6 + 31 bonds with max type 10 + 51 angles with max type 16 + 73 dihedrals with max type 19 + 21 impropers with max type 7 +Read molecule template mol2: + 1 molecules + 46 atoms with max type 6 + 48 bonds with max type 13 + 81 angles with max type 22 + 121 dihedrals with max type 36 + 35 impropers with max type 9 +dynamic group bond_react_MASTER_group defined +dynamic group statted_grp_REACT defined +PPPM initialization ... +WARNING: System is not charge neutral, net charge = -0.00060000000 (../kspace.cpp:324) + using 12-bit tables for long-range coulomb (../kspace.cpp:339) + G vector (1/distance) = 0.20144813 + grid = 45 45 45 + stencil order = 5 + estimated absolute RMS force accuracy = 0.00053712952 + estimated relative force accuracy = 1.6175496e-06 + using double precision KISS FFT + 3d grid and FFT values/proc = 39200 24300 +Neighbor list info ... + update every 1 steps, delay 10 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 = 39 39 39 + 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/newton + bin: standard + (2) fix bond/react, occasional, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 1 +Per MPI rank memory allocation (min/avg/max) = 38.70 | 38.92 | 39.43 Mbytes +Step Temp Press Density f_myrxns[1] + 0 496.23742 0.9983211 6.4856516e-05 0 + 100 534.05394 -0.76952227 6.4856516e-05 0 + 200 552.2225 -0.55375493 6.4856516e-05 0 + 300 857.52834 -0.4272061 8.6475354e-05 1 + 400 714.10681 1.5004615 8.6475354e-05 1 + 500 678.19171 0.21965471 8.6475354e-05 1 + 600 572.3234 0.87879933 8.6475354e-05 1 + 700 996.17398 -0.24269717 0.00010809419 2 + 800 904.50395 1.3662054 0.00010809419 2 + 900 1097.1568 -2.2909907 0.00012971303 3 + 1000 954.08892 1.7705672 0.00012971303 3 + 1100 1102.0377 -1.7018446 0.00015133187 4 + 1200 1239.785 -0.30442903 0.00015133187 4 + 1300 1388.4127 1.3301175 0.00017295071 5 + 1400 1559.3853 1.6709729 0.00017295071 5 + 1500 1471.8623 0.8268427 0.00017295071 5 + 1600 1543.6793 2.1987908 0.00019456955 6 + 1700 1694.5595 0.48852817 0.00019456955 6 + 1800 1632.7737 -1.4617692 0.00021618839 7 + 1900 1922.6502 1.1664257 0.00021618839 7 + 2000 2223.503 -0.95799878 0.00023780722 8 + 2100 2142.6035 0.88444463 0.00025942606 9 + 2200 2298.8636 3.4239313 0.00025942606 9 + 2300 2252.4355 0.82167302 0.00025942606 9 + 2400 2321.0788 1.7499714 0.00025942606 9 + 2500 2095.6715 0.55288444 0.00025942606 9 + 2600 2136.0316 -3.833114 0.00025942606 9 + 2700 2466.3134 -2.2519511 0.00025942606 9 + 2800 2294.3454 1.0637304 0.00025942606 9 + 2900 2340.3891 1.3997049 0.0002810449 10 + 3000 2272.0013 -0.27591886 0.0002810449 10 + 3100 2333.9696 -0.11772138 0.0002810449 10 + 3200 2409.0946 -1.025473 0.0002810449 10 + 3300 2148.023 1.6752329 0.0002810449 10 + 3400 2267.636 -0.45297583 0.0002810449 10 + 3500 2457.622 0.35627297 0.0002810449 10 + 3600 2288.008 -15.516626 0.00030266374 11 + 3700 2458.2681 1.4571773 0.00030266374 11 + 3800 2566.7623 -29.140553 0.00032428258 12 + 3900 2839.4062 0.64583638 0.00032428258 12 + 4000 2893.2204 -53.187892 0.00034590142 13 + 4100 3024.6375 -65.068146 0.00036752025 14 + 4200 3004.6784 1.4155214 0.00036752025 14 + 4300 3033.1895 1.8572273 0.00036752025 14 + 4400 3157.2542 -0.92462977 0.00036752025 14 + 4500 3557.7137 -194.46498 0.00038913909 15 + 4600 3096.485 -1.830492 0.00038913909 15 + 4700 3488.088 -286.81055 0.00041075793 16 + 4800 3390.5493 -372.77818 0.00043237677 17 + 4900 3773.7226 -446.58574 0.00045399561 18 + 5000 3703.0159 -0.81188551 0.00045399561 18 + 5100 4051.3067 1.2567439 0.00045399561 18 + 5200 3813.3682 0.92945737 0.00047561445 19 + 5300 4036.0078 -2.5336258 0.00049723329 20 + 5400 4219.803 -0.96928261 0.00049723329 20 + 5500 4433.7447 -0.026762463 0.00051885212 21 + 5600 4477.4505 -1.417316 0.00054047096 22 + 5700 4500.0306 -1.0551443 0.00054047096 22 + 5800 4600.3507 -4.9580056 0.00054047096 22 + 5900 4765.4978 -2.2546941 0.0005620898 23 + 6000 5442.6193 0.91161284 0.00058370864 24 + 6100 5086.8047 -0.9875332 0.00060532748 25 + 6200 5485.3437 -2.8296626 0.00062694632 26 + 6300 4988.0396 -0.15179023 0.00064856516 27 + 6400 5597.3703 4.2941885 0.00067018399 28 + 6500 5677.0263 -2.8611595 0.00069180283 29 + 6600 6058.0009 1.4111778 0.00071342167 30 + 6700 5859.0817 -2.5782466 0.00071342167 30 + 6800 5879.3941 -4.5681807 0.00071342167 30 + 6900 6398.288 2.5259412 0.00071342167 30 + 7000 6250.1096 -2.6049627 0.00071342167 30 + 7100 5849.651 -0.44062578 0.00071342167 30 + 7200 5778.6532 -0.27299118 0.00071342167 30 + 7300 5977.6661 4.2483639 0.00071342167 30 + 7400 5862.4231 1.0289519 0.00071342167 30 + 7500 6482.376 7.5412373 0.00071342167 30 + 7600 5810.4325 1.0343075 0.00071342167 30 + 7700 5916.7304 2.304302 0.00071342167 30 + 7800 5869.9504 -0.5946555 0.00071342167 30 + 7900 5804.0522 -4.1207689 0.00071342167 30 + 8000 6077.1704 0.52211243 0.00071342167 30 +Loop time of 60.5603 on 4 procs for 8000 steps with 528 atoms + +Performance: 11.413 ns/day, 2.103 hours/ns, 132.100 timesteps/s +99.9% 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.0041695 | 0.90113 | 2.3423 | 102.8 | 1.49 +Bond | 0.011606 | 2.1188 | 5.8107 | 163.9 | 3.50 +Kspace | 47.987 | 52.817 | 55.679 | 43.7 | 87.21 +Neigh | 3.5961 | 3.6262 | 3.6496 | 1.2 | 5.99 +Comm | 0.11097 | 0.16569 | 0.26369 | 15.3 | 0.27 +Output | 0.0020366 | 0.0023427 | 0.0032469 | 1.1 | 0.00 +Modify | 0.62302 | 0.91659 | 1.1227 | 21.5 | 1.51 +Other | | 0.0126 | | | 0.02 + +Nlocal: 132.000 ave 295 max 0 min +Histogram: 2 0 0 0 0 0 0 1 0 1 +Nghost: 133.000 ave 349 max 0 min +Histogram: 2 0 0 0 0 1 0 0 0 1 +Neighs: 8383.50 ave 20143 max 0 min +Histogram: 2 0 0 0 0 0 1 0 0 1 + +Total # of neighbors = 33534 +Ave neighs/atom = 63.511364 +Ave special neighs/atom = 11.409091 +Neighbor list builds = 8000 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:01:00 diff --git a/examples/USER/reaction/create_atoms_polystyrene/trimer.data b/examples/USER/reaction/create_atoms_polystyrene/trimer.data new file mode 100644 index 0000000000..b3ad132f03 --- /dev/null +++ b/examples/USER/reaction/create_atoms_polystyrene/trimer.data @@ -0,0 +1,796 @@ +polystyrene trimer + +48 atoms +7 atom types +50 bonds +13 bond types +84 angles +22 angle types +127 dihedrals +36 dihedral types +36 impropers +9 improper types + +50 250 xlo xhi +50 250 ylo yhi +50 250 zlo zhi + +Masses + +1 12.0112 +2 1.00797 +3 12.0112 +4 12.0112 +5 12.0112 +6 12.0112 +7 12.0112 + +Pair Coeffs # lj/class2/coul/long + +1 0.064 4.01 +2 0.02 2.7 +3 0.064 4.01 +4 0.064 3.9 +5 0.054 4.01 +6 0.054 4.01 +7 0.054 4.01 + +Bond Coeffs # class2 + +1 1.0982 372.825 -803.453 894.317 +2 1.417 470.836 -627.618 1327.63 +3 1.501 321.902 -521.821 572.163 +4 1.0883 365.768 -725.54 781.662 +5 1.34 543.99 -1238.2 1644.03 +6 1.0883 365.768 -725.54 781.662 +7 1.501 321.902 -521.821 572.163 +8 1.101 345 -691.89 844.6 +9 1.53 299.67 -501.77 679.81 +10 1.101 345 -691.89 844.6 +11 1.501 321.902 -521.821 572.163 +12 1.101 345 -691.89 844.6 +13 1.53 299.67 -501.77 679.81 + +Angle Coeffs # class2 + +1 117.94 35.1558 -12.4682 0 +2 118.9 61.0226 -34.9931 0 +3 120.05 44.7148 -22.7352 0 +4 111 44.3234 -9.4454 0 +5 108.4 43.9594 -8.3924 -9.3379 +6 124.88 35.2766 -17.774 -1.6215 +7 124.88 35.2766 -17.774 -1.6215 +8 115.49 29.6363 -12.4853 -6.2218 +9 120.05 44.7148 -22.7352 0 +10 111 44.3234 -9.4454 0 +11 108.4 43.9594 -8.3924 -9.3379 +12 110.77 41.453 -10.604 5.129 +13 112.67 39.516 -7.443 -9.5583 +14 110.77 41.453 -10.604 5.129 +15 107.66 39.641 -12.921 -2.4318 +16 112.67 39.516 -7.443 -9.5583 +17 120.05 44.7148 -22.7352 0 +18 111 44.3234 -9.4454 0 +19 108.4 43.9594 -8.3924 -9.3379 +20 110.77 41.453 -10.604 5.129 +21 110.77 41.453 -10.604 5.129 +22 112.67 39.516 -7.443 -9.5583 + +BondBond Coeffs + +1 1.0795 1.417 1.0982 +2 68.2856 1.417 1.417 +3 12.0676 1.417 1.501 +4 2.9168 1.501 1.0883 +5 0 1.501 1.34 +6 10.1047 1.0883 1.34 +7 10.1047 1.0883 1.34 +8 4.8506 1.0883 1.0883 +9 12.0676 1.417 1.501 +10 2.9168 1.501 1.101 +11 0 1.501 1.53 +12 3.3872 1.101 1.53 +13 0 1.53 1.53 +14 3.3872 1.101 1.53 +15 5.3316 1.101 1.101 +16 0 1.53 1.53 +17 12.0676 1.417 1.501 +18 2.9168 1.501 1.101 +19 0 1.501 1.53 +20 3.3872 1.101 1.53 +21 3.3872 1.101 1.53 +22 0 1.53 1.53 + +BondAngle Coeffs + +1 20.0033 24.2183 1.417 1.0982 +2 28.8708 28.8708 1.417 1.417 +3 31.0771 47.0579 1.417 1.501 +4 26.4608 11.7717 1.501 1.0883 +5 0 0 1.501 1.34 +6 19.0592 23.3588 1.0883 1.34 +7 19.0592 23.3588 1.0883 1.34 +8 17.9795 17.9795 1.0883 1.0883 +9 31.0771 47.0579 1.417 1.501 +10 26.4608 11.7717 1.501 1.101 +11 0 0 1.501 1.53 +12 11.421 20.754 1.101 1.53 +13 8.016 8.016 1.53 1.53 +14 11.421 20.754 1.101 1.53 +15 18.103 18.103 1.101 1.101 +16 8.016 8.016 1.53 1.53 +17 31.0771 47.0579 1.417 1.501 +18 26.4608 11.7717 1.501 1.101 +19 0 0 1.501 1.53 +20 11.421 20.754 1.101 1.53 +21 11.421 20.754 1.101 1.53 +22 8.016 8.016 1.53 1.53 + +Dihedral Coeffs # class2 + +1 0 0 1.559 0 0 0 +2 0 0 3.9661 0 0 0 +3 0 0 4.4072 0 0 0 +4 8.3667 0 1.1932 0 0 0 +5 0 0 1.8769 0 0 0 +6 0 0 0 0 0 0 +7 0 0 0 0 0 0 +8 0 0 0 0 0 0 +9 0 0 4.8974 0 0 0 +10 0 0 1.559 0 0 0 +11 0 0 4.4072 0 0 0 +12 -0.2801 0 -0.0678 0 -0.0122 0 +13 -0.2802 0 -0.0678 0 -0.0122 0 +14 -0.0228 0 0.028 0 -0.1863 0 +15 -0.1432 0 0.0617 0 -0.1083 0 +16 0 0 0.0316 0 -0.1681 0 +17 0 0 0 0 0 0 +18 0 0 0.0316 0 -0.1681 0 +19 0 0 0.0514 0 -0.143 0 +20 0 0 1.559 0 0 0 +21 0 0 4.4072 0 0 0 +22 -0.2801 0 -0.0678 0 -0.0122 0 +23 -0.2802 0 -0.0678 0 -0.0122 0 +24 -0.0228 0 0.028 0 -0.1863 0 +25 0 0 0 0 0 0 +26 -0.1432 0 0.0617 0 -0.1083 0 +27 0 0 0.0316 0 -0.1681 0 +28 0 0 0 0 0 0 +29 0 0 0.0316 0 -0.1681 0 +30 0 0 0.0514 0 -0.143 0 +31 -0.0228 0 0.028 0 -0.1863 0 +32 -0.1432 0 0.0617 0 -0.1083 0 +33 0 0 0.0316 0 -0.1681 0 +34 0 0 0 0 0 0 +35 0 0 0.0316 0 -0.1681 0 +36 0 0 0.0514 0 -0.143 0 + +AngleAngleTorsion Coeffs + +1 4.4444 117.94 120.05 +2 -4.8141 118.9 117.94 +3 -14.4097 118.9 120.05 +4 0 118.9 118.9 +5 0.3598 117.94 117.94 +6 0 120.05 111 +7 0 120.05 108.4 +8 0 108.4 124.88 +9 -7.0058 124.88 124.88 +10 4.4444 117.94 120.05 +11 -14.4097 118.9 120.05 +12 -5.8888 120.05 111 +13 0 120.05 108.4 +14 0 108.4 110.77 +15 -12.564 110.77 110.77 +16 -16.164 112.67 110.77 +17 0 108.4 112.67 +18 -16.164 110.77 112.67 +19 -22.045 112.67 112.67 +20 4.4444 117.94 120.05 +21 -14.4097 118.9 120.05 +22 -5.8888 120.05 111 +23 0 120.05 108.4 +24 0 108.4 110.77 +25 0 108.4 112.67 +26 -12.564 110.77 110.77 +27 -16.164 110.77 112.67 +28 0 112.67 108.4 +29 -16.164 112.67 110.77 +30 -22.045 112.67 112.67 +31 0 110.77 108.4 +32 -12.564 110.77 110.77 +33 -16.164 110.77 112.67 +34 0 112.67 108.4 +35 -16.164 112.67 110.77 +36 -22.045 112.67 112.67 + +EndBondTorsion Coeffs + +1 0 -0.4879 0 0 -1.797 0 1.0982 1.501 +2 0 -6.8958 0 0 -0.4669 0 1.417 1.0982 +3 0 -0.6918 0 0 0.2421 0 1.417 1.501 +4 -0.1185 6.3204 0 -0.1185 6.3204 0 1.417 1.417 +5 0 -0.689 0 0 -0.689 0 1.0982 1.0982 +6 0 0 0 0 0 0 1.417 1.0883 +7 0 0 0 0 0 0 1.417 1.34 +8 0 0 0 0 0 0 1.501 1.0883 +9 0.7129 0.5161 0 0.7129 0.5161 0 1.0883 1.0883 +10 0 -0.4879 0 0 -1.797 0 1.0982 1.501 +11 0 -0.6918 0 0 0.2421 0 1.417 1.501 +12 -0.5835 1.122 0.3978 1.3997 0.7756 0 1.417 1.101 +13 0 0 0 0 0 0 1.417 1.53 +14 0 0 0 0 0 0 1.501 1.101 +15 0.213 0.312 0.0777 0.213 0.312 0.0777 1.101 1.101 +16 0.2486 0.2422 -0.0925 0.0814 0.0591 0.2219 1.53 1.101 +17 0 0 0 0 0 0 1.501 1.53 +18 0.0814 0.0591 0.2219 0.2486 0.2422 -0.0925 1.101 1.53 +19 -0.0732 0 0 -0.0732 0 0 1.53 1.53 +20 0 -0.4879 0 0 -1.797 0 1.0982 1.501 +21 0 -0.6918 0 0 0.2421 0 1.417 1.501 +22 -0.5835 1.122 0.3978 1.3997 0.7756 0 1.417 1.101 +23 0 0 0 0 0 0 1.417 1.53 +24 0 0 0 0 0 0 1.501 1.101 +25 0 0 0 0 0 0 1.501 1.53 +26 0.213 0.312 0.0777 0.213 0.312 0.0777 1.101 1.101 +27 0.0814 0.0591 0.2219 0.2486 0.2422 -0.0925 1.101 1.53 +28 0 0 0 0 0 0 1.53 1.501 +29 0.2486 0.2422 -0.0925 0.0814 0.0591 0.2219 1.53 1.101 +30 -0.0732 0 0 -0.0732 0 0 1.53 1.53 +31 0 0 0 0 0 0 1.101 1.501 +32 0.213 0.312 0.0777 0.213 0.312 0.0777 1.101 1.101 +33 0.0814 0.0591 0.2219 0.2486 0.2422 -0.0925 1.101 1.53 +34 0 0 0 0 0 0 1.53 1.501 +35 0.2486 0.2422 -0.0925 0.0814 0.0591 0.2219 1.53 1.101 +36 -0.0732 0 0 -0.0732 0 0 1.53 1.53 + +MiddleBondTorsion Coeffs + +1 0 3.9421 0 1.417 +2 0 -1.1521 0 1.417 +3 0 9.1792 0 1.417 +4 27.5989 -2.312 0 1.417 +5 0 4.8228 0 1.417 +6 0 0 0 1.501 +7 0 0 0 1.501 +8 0 0 0 1.34 +9 0.8558 6.3911 0 1.34 +10 0 3.9421 0 1.417 +11 0 9.1792 0 1.417 +12 -5.5679 1.4083 0.301 1.501 +13 0 0 0 1.501 +14 0 0 0 1.53 +15 -14.261 -0.5322 -0.4864 1.53 +16 -14.879 -3.6581 -0.3138 1.53 +17 0 0 0 1.53 +18 -14.879 -3.6581 -0.3138 1.53 +19 -17.787 -7.1877 0 1.53 +20 0 3.9421 0 1.417 +21 0 9.1792 0 1.417 +22 -5.5679 1.4083 0.301 1.501 +23 0 0 0 1.501 +24 0 0 0 1.53 +25 0 0 0 1.53 +26 -14.261 -0.5322 -0.4864 1.53 +27 -14.879 -3.6581 -0.3138 1.53 +28 0 0 0 1.53 +29 -14.879 -3.6581 -0.3138 1.53 +30 -17.787 -7.1877 0 1.53 +31 0 0 0 1.53 +32 -14.261 -0.5322 -0.4864 1.53 +33 -14.879 -3.6581 -0.3138 1.53 +34 0 0 0 1.53 +35 -14.879 -3.6581 -0.3138 1.53 +36 -17.787 -7.1877 0 1.53 + +BondBond13 Coeffs + +1 0.8743 1.0982 1.501 +2 -6.2741 1.417 1.0982 +3 2.5085 1.417 1.501 +4 53 1.417 1.417 +5 -1.7077 1.0982 1.0982 +6 0 1.417 1.0883 +7 0 1.417 1.34 +8 0 1.501 1.0883 +9 0 1.0883 1.0883 +10 0.8743 1.0982 1.501 +11 2.5085 1.417 1.501 +12 -3.4826 1.417 1.101 +13 0 1.417 1.53 +14 0 1.501 1.101 +15 0 1.101 1.101 +16 0 1.53 1.101 +17 0 1.501 1.53 +18 0 1.101 1.53 +19 0 1.53 1.53 +20 0.8743 1.0982 1.501 +21 2.5085 1.417 1.501 +22 -3.4826 1.417 1.101 +23 0 1.417 1.53 +24 0 1.501 1.101 +25 0 1.501 1.53 +26 0 1.101 1.101 +27 0 1.101 1.53 +28 0 1.53 1.501 +29 0 1.53 1.101 +30 0 1.53 1.53 +31 0 1.101 1.501 +32 0 1.101 1.101 +33 0 1.101 1.53 +34 0 1.53 1.501 +35 0 1.53 1.101 +36 0 1.53 1.53 + +AngleTorsion Coeffs + +1 0 3.4601 0 0 -0.1242 0 117.94 120.05 +2 0 2.5014 0 0 2.7147 0 118.9 117.94 +3 0 3.8987 0 0 -4.4683 0 118.9 120.05 +4 1.9767 1.0239 0 1.9767 1.0239 0 118.9 118.9 +5 0 2.4501 0 0 2.4501 0 117.94 117.94 +6 0 0 0 0 0 0 120.05 111 +7 0 0 0 0 0 0 120.05 108.4 +8 0 0 0 0 0 0 108.4 124.88 +9 -1.8911 3.254 0 -1.8911 3.254 0 124.88 124.88 +10 0 3.4601 0 0 -0.1242 0 117.94 120.05 +11 0 3.8987 0 0 -4.4683 0 118.9 120.05 +12 0.2251 0.6548 0.1237 4.6266 0.1632 0.0461 120.05 111 +13 0 0 0 0 0 0 120.05 108.4 +14 0 0 0 0 0 0 108.4 110.77 +15 -0.8085 0.5569 -0.2466 -0.8085 0.5569 -0.2466 110.77 110.77 +16 -0.2454 0 -0.1136 0.3113 0.4516 -0.1988 112.67 110.77 +17 0 0 0 0 0 0 108.4 112.67 +18 0.3113 0.4516 -0.1988 -0.2454 0 -0.1136 110.77 112.67 +19 0.3886 -0.3139 0.1389 0.3886 -0.3139 0.1389 112.67 112.67 +20 0 3.4601 0 0 -0.1242 0 117.94 120.05 +21 0 3.8987 0 0 -4.4683 0 118.9 120.05 +22 0.2251 0.6548 0.1237 4.6266 0.1632 0.0461 120.05 111 +23 0 0 0 0 0 0 120.05 108.4 +24 0 0 0 0 0 0 108.4 110.77 +25 0 0 0 0 0 0 108.4 112.67 +26 -0.8085 0.5569 -0.2466 -0.8085 0.5569 -0.2466 110.77 110.77 +27 0.3113 0.4516 -0.1988 -0.2454 0 -0.1136 110.77 112.67 +28 0 0 0 0 0 0 112.67 108.4 +29 -0.2454 0 -0.1136 0.3113 0.4516 -0.1988 112.67 110.77 +30 0.3886 -0.3139 0.1389 0.3886 -0.3139 0.1389 112.67 112.67 +31 0 0 0 0 0 0 110.77 108.4 +32 -0.8085 0.5569 -0.2466 -0.8085 0.5569 -0.2466 110.77 110.77 +33 0.3113 0.4516 -0.1988 -0.2454 0 -0.1136 110.77 112.67 +34 0 0 0 0 0 0 112.67 108.4 +35 -0.2454 0 -0.1136 0.3113 0.4516 -0.1988 112.67 110.77 +36 0.3886 -0.3139 0.1389 0.3886 -0.3139 0.1389 112.67 112.67 + +Improper Coeffs # class2 + +1 4.8912 0 +2 7.8153 0 +3 0 0 +4 2.8561 0 +5 7.8153 0 +6 0 0 +7 0 0 +8 7.8153 0 +9 0 0 + +AngleAngle Coeffs + +1 0 0 0 118.9 117.94 117.94 +2 0 0 0 118.9 120.05 120.05 +3 0 0 0 111 124.88 108.4 +4 0 0 0 115.49 124.88 124.88 +5 0 0 0 118.9 120.05 120.05 +6 0 0 0 107.66 110.77 110.77 +7 0 0 0 111 110.77 108.4 +8 0 0 0 118.9 120.05 120.05 +9 0 0 0 111 110.77 108.4 + +Atoms # full + +44 1 2 3.5400000000000001e-02 6.1476397222913839e+01 8.2376490601205234e+01 6.0906939115836181e+01 +45 1276 2 3.5400000000000001e-02 5.8398688202244472e+01 8.0172948526664996e+01 6.2115536813582672e+01 +46 1276 6 -6.9599999999999995e-02 5.9489073989392523e+01 8.0264057167571636e+01 6.1984002598976552e+01 +48 1276 2 3.5400000000000001e-02 5.9675170230342431e+01 8.0048052449390738e+01 6.0920159395372401e+01 +47 1276 2 1.2370000000000000e-01 5.9297455513100488e+01 8.3187777608476154e+01 5.9645157256520122e+01 +18 1 5 -1.8200000000000001e-02 6.2426251430535707e+01 8.2055473568260709e+01 6.2971661388612958e+01 +19 1 6 -6.9599999999999995e-02 6.1399255844467369e+01 8.1794665295860213e+01 6.1821819828185660e+01 +21 1 1 -1.2900000000000000e-01 6.4032918371445831e+01 8.0190179089286701e+01 6.3021564712316334e+01 +22 1 1 2.6599999999999999e-02 6.3672975135915053e+01 8.1418558650051665e+01 6.2448012627881994e+01 +23 1 2 3.5400000000000001e-02 6.1545198223694939e+01 8.0836309422842305e+01 6.1349823957467130e+01 +27 1276 2 5.1600000000000000e-02 5.9809503696580933e+01 8.1831265916389881e+01 6.3253745193271065e+01 +28 1276 5 -1.8200000000000001e-02 5.9900307947967441e+01 8.1677453781363639e+01 6.2190757403657820e+01 +31 1276 2 1.2370000000000000e-01 5.8050043823867973e+01 8.2698312265456622e+01 6.3667111329534436e+01 +38 1 2 1.2370000000000000e-01 6.3754126973935612e+01 7.9931147303963002e+01 6.4022259163067275e+01 +20 1 2 1.2370000000000000e-01 6.4070158368422781e+01 8.2950071388392274e+01 6.1042631212883315e+01 +24 1 1 -1.2900000000000000e-01 6.4337973861569580e+01 8.1916618276489871e+01 6.1387866780102470e+01 +37 1 2 1.4030000000000001e-01 6.5360115866618415e+01 7.8586112104863830e+01 6.3004997314380716e+01 +39 1 1 -1.7340000000000000e-01 6.5018338085325610e+01 7.9478260591306125e+01 6.2440745569712817e+01 +40 1 1 -1.1340000000000000e-01 6.5628759887796605e+01 7.9941156332165264e+01 6.1248476296558067e+01 +41 1 1 -1.7340000000000000e-01 6.5247995680260402e+01 8.1172439250598345e+01 6.0753045571239831e+01 +42 1 2 1.2880000000000000e-01 6.6569600059599281e+01 7.9514748976494360e+01 6.0810611807135601e+01 +43 1 2 1.4030000000000001e-01 6.5780165393063371e+01 8.1570974991007958e+01 5.9850915261812396e+01 +9 1276 2 1.2880000000000000e-01 5.5651795605743445e+01 8.5074472139235127e+01 6.1094480497979262e+01 +30 1276 2 1.4030000000000001e-01 5.6082982679196888e+01 8.3912863624076010e+01 6.3351889697403472e+01 +33 1276 1 -1.7340000000000000e-01 5.6718133911388506e+01 8.3758479063002000e+01 6.2493293749545209e+01 +34 1276 1 -1.1340000000000000e-01 5.6498352105218459e+01 8.4426576393179090e+01 6.1290147608586011e+01 +6 3822 1 -1.7340000000000000e-01 6.3308103537340351e+01 8.7713509787622499e+01 6.4643082313868433e+01 +7 3822 1 -1.2900000000000000e-01 6.3010291684764312e+01 8.6423650045069493e+01 6.4252844241495922e+01 +8 3822 2 1.2370000000000000e-01 6.2089199187020355e+01 8.6309198636296912e+01 6.3711263099850854e+01 +10 1276 2 1.4030000000000001e-01 5.7266131308654970e+01 8.4599328362003035e+01 5.9281511478144402e+01 +11 3822 2 3.5400000000000001e-02 6.1694306618059791e+01 8.3823470438280594e+01 6.3778953909925114e+01 +12 3822 5 -1.8200000000000001e-02 6.3814926998838651e+01 8.3900077798460728e+01 6.4108991789590448e+01 +13 3822 6 -6.9599999999999995e-02 6.2604540882379787e+01 8.3491998603381077e+01 6.3249610918984622e+01 +14 3822 2 1.2370000000000000e-01 6.5739253131027880e+01 8.4813736128157771e+01 6.5351692111169555e+01 +15 3822 1 -1.2900000000000000e-01 6.5071144269009466e+01 8.5646783550482454e+01 6.5086813218945636e+01 +16 3822 1 2.6599999999999999e-02 6.3957099792282079e+01 8.5375816595044753e+01 6.4385073943729708e+01 +17 1 2 5.1600000000000000e-02 6.2256484483973310e+01 8.1576962161157596e+01 6.3963984654065122e+01 +26 3822 2 5.1600000000000000e-02 6.4196825763126355e+01 8.3291442832977836e+01 6.4907094488854057e+01 +29 1276 1 2.6599999999999999e-02 5.8784742332505303e+01 8.2766055380197670e+01 6.1667239692876961e+01 +32 1276 1 -1.2900000000000000e-01 5.7836199787435064e+01 8.3005060229118428e+01 6.2669788306756018e+01 +35 1276 1 -1.2900000000000000e-01 5.8572661840325132e+01 8.3404075689965083e+01 6.0443288532625175e+01 +36 1276 1 -1.7340000000000000e-01 5.7380616699226330e+01 8.4134680429976896e+01 6.0248710539932475e+01 +25 3822 2 3.5400000000000001e-02 6.2750675036816460e+01 8.3891633300878468e+01 6.2249429178485677e+01 +5 3822 2 1.4030000000000001e-01 6.2626160082050376e+01 8.8416565740835182e+01 6.4093918967496805e+01 +1 3822 2 1.2880000000000000e-01 6.4863557606529355e+01 8.9096029197548390e+01 6.5342927535537825e+01 +2 3822 1 -1.1340000000000000e-01 6.4627442641031166e+01 8.8047381925321190e+01 6.5138073202291650e+01 +3 3822 2 1.4030000000000001e-01 6.6470254992065406e+01 8.6991893750821745e+01 6.5857474890608984e+01 +4 3822 1 -1.7340000000000000e-01 6.5416488888088338e+01 8.6963894801200169e+01 6.5357641085394278e+01 + +Velocities + +44 -1.1274099342391698e-02 2.8614364731871914e-02 7.8116535486555949e-03 +45 2.3164382404151666e-03 3.9815732957733160e-03 -2.9971878581527899e-02 +46 -7.1653099619954563e-03 4.5491360587300133e-04 4.9898614093692017e-03 +48 9.8069086061434527e-03 4.0008139512159270e-03 6.2934259772882122e-03 +47 2.2646445306743783e-03 1.3029071608409702e-03 4.2232440120174040e-02 +18 7.0040064100195757e-03 3.2877451206009701e-03 -3.5376010407568422e-04 +19 -1.3998188760009689e-02 7.2238210565990146e-03 7.7956220633332383e-03 +21 3.1954292320462373e-03 -2.9717583309420764e-03 -3.1753395094325522e-03 +22 5.2997643939121201e-03 -2.9646963088534335e-03 -4.1351926198204894e-03 +23 7.6443400078766528e-03 4.0358953976530103e-02 -2.6684706183248367e-02 +27 1.9261652416455359e-03 -1.1632914130150688e-02 1.0061732021630769e-02 +28 -8.2251676802878315e-03 -1.5111873066969876e-04 1.3808893565582731e-02 +31 5.2475840572179860e-03 1.8266996572138715e-02 2.3453280610166885e-03 +38 -2.0343905130199073e-02 3.2815536859276281e-02 3.6511922534330152e-03 +20 2.2914549087537126e-02 1.4424503744223915e-02 2.1708279654645496e-03 +24 -2.4717233344142471e-03 1.2966123098719246e-02 8.1261459853411936e-03 +37 -2.4547379584186218e-02 -3.0213966592845171e-02 -3.1437442951939183e-02 +39 2.5476117829076835e-03 1.2743160680987653e-03 1.8775880208113892e-03 +40 -6.9216508143939990e-03 1.0986173624795060e-02 8.4543093049661480e-03 +41 -6.9641432145561661e-03 3.4497795547843439e-03 -6.5914679936187716e-03 +42 -1.6682931637687005e-02 -7.9952140358728052e-03 -5.4993265930488526e-02 +43 -1.2747392921213267e-03 -8.9033092043203244e-03 -1.4285400545629027e-02 +9 -4.6235166357676289e-03 -1.3071850427027999e-02 -1.4097407987100977e-02 +30 -1.0949617396609294e-02 2.8255703113196974e-03 1.7171748232322353e-02 +33 -6.1375812469323665e-03 -2.4748644899411924e-03 -9.4761978149296138e-03 +34 1.3676079846441525e-03 5.6076140293943458e-03 4.3217204641336267e-03 +6 -1.0264635053701928e-02 6.5278337056107680e-03 7.0056151148588212e-04 +7 -8.7519451205145676e-03 -4.6476440106580945e-03 2.5970484253527112e-03 +8 2.1377395557690311e-02 -3.3261274153819453e-03 -1.0112266596677577e-02 +10 -3.5793767912309253e-02 -4.7139872292323019e-02 -1.6709528481405608e-02 +11 8.5071485795589590e-03 9.9402848610678270e-03 -3.8088596341056854e-03 +12 -7.1678159384257103e-04 -6.9164463557228907e-04 -6.4073519808107186e-03 +13 -4.8443902657902991e-03 -1.1919190682985097e-03 6.3946846087726637e-03 +14 1.4810157483257907e-02 1.9829623839419017e-03 -2.7393844990063056e-02 +15 2.4171850935506777e-03 8.5003135180758520e-03 -1.4373227798951704e-03 +16 2.7567342910947553e-03 4.7168484476890456e-03 -5.5131873288712992e-03 +17 -3.8456662730386774e-02 2.0220106671151108e-02 -1.3822049134399602e-02 +26 2.7415414728694614e-02 1.4392155257037418e-03 -6.7281635499082748e-03 +29 2.8284983560440745e-03 2.8809942505517976e-03 -9.0489583066552114e-04 +32 -3.8543634697614316e-03 4.6751647301899795e-03 4.2171867397204537e-03 +35 -8.6957974827209118e-03 -4.4615282666186267e-04 -2.6571026120482824e-03 +36 9.4881057996863086e-04 -7.5665878069688429e-03 2.0333670960646154e-03 +25 1.8105924111310519e-02 -8.6933495274689535e-03 -1.9695291360338044e-04 +5 -5.0447438383189585e-03 -4.5665146331657552e-02 1.0653751333175230e-02 +1 -1.7372868398038824e-02 -2.3625357536259349e-03 1.2220266128368908e-02 +2 3.7050246021929395e-03 -1.0236943515935205e-03 7.2206774682170580e-03 +3 2.3669435799326944e-02 2.7891427939155597e-02 -6.7091036888174346e-03 +4 3.4910623999263577e-03 2.6370880132825258e-03 -6.4694788112864129e-03 + +Bonds + +1 10 44 19 +2 10 45 46 +3 10 48 46 +4 9 19 18 +5 1 21 38 +6 2 21 22 +7 2 21 39 +8 7 22 18 +9 2 22 24 +10 10 23 19 +11 8 27 28 +12 9 28 46 +13 9 28 19 +14 1 24 20 +15 2 24 41 +16 1 39 37 +17 1 40 42 +18 2 40 39 +19 1 41 43 +20 2 41 40 +21 1 33 30 +22 1 34 9 +23 2 34 33 +24 1 6 5 +25 2 6 2 +26 1 7 8 +27 2 7 6 +28 10 11 13 +29 13 12 13 +30 9 13 18 +31 1 15 14 +32 2 15 16 +33 2 15 4 +34 11 16 12 +35 2 16 7 +36 8 17 18 +37 12 26 12 +38 7 29 28 +39 2 29 35 +40 1 32 31 +41 2 32 29 +42 2 32 33 +43 1 35 47 +44 2 35 36 +45 1 36 10 +46 2 36 34 +47 10 25 13 +48 1 2 1 +49 2 2 4 +50 1 4 3 + +Angles + +1 14 45 46 28 +2 14 48 46 28 +3 15 45 46 48 +4 11 22 18 13 +5 12 17 18 13 +6 13 13 18 19 +7 10 22 18 17 +8 11 22 18 19 +9 12 17 18 19 +10 16 28 19 18 +11 14 44 19 28 +12 14 23 19 28 +13 14 44 19 18 +14 14 23 19 18 +15 15 44 19 23 +16 1 22 21 38 +17 1 39 21 38 +18 2 22 21 39 +19 9 21 22 18 +20 2 21 22 24 +21 9 24 22 18 +22 10 29 28 27 +23 11 29 28 46 +24 11 29 28 19 +25 12 27 28 46 +26 12 27 28 19 +27 13 46 28 19 +28 1 22 24 20 +29 2 22 24 41 +30 1 41 24 20 +31 2 21 39 40 +32 1 21 39 37 +33 1 40 39 37 +34 1 41 40 42 +35 2 41 40 39 +36 1 39 40 42 +37 1 24 41 43 +38 2 24 41 40 +39 1 40 41 43 +40 2 32 33 34 +41 1 32 33 30 +42 1 34 33 30 +43 1 36 34 9 +44 2 36 34 33 +45 1 33 34 9 +46 1 7 6 5 +47 2 7 6 2 +48 1 2 6 5 +49 1 16 7 8 +50 2 16 7 6 +51 1 6 7 8 +52 18 16 12 26 +53 19 16 12 13 +54 20 26 12 13 +55 21 25 13 12 +56 21 11 13 12 +57 22 12 13 18 +58 15 25 13 11 +59 14 25 13 18 +60 14 11 13 18 +61 1 16 15 14 +62 1 4 15 14 +63 2 16 15 4 +64 17 15 16 12 +65 2 15 16 7 +66 17 7 16 12 +67 9 32 29 28 +68 2 32 29 35 +69 9 35 29 28 +70 1 29 32 31 +71 1 33 32 31 +72 2 29 32 33 +73 1 29 35 47 +74 2 29 35 36 +75 1 36 35 47 +76 1 35 36 10 +77 2 35 36 34 +78 1 34 36 10 +79 1 6 2 1 +80 2 6 2 4 +81 1 4 2 1 +82 2 15 4 2 +83 1 15 4 3 +84 1 2 4 3 + +Dihedrals + +1 34 18 19 28 29 +2 31 44 19 28 29 +3 31 23 19 28 29 +4 35 18 19 28 27 +5 32 44 19 28 27 +6 32 23 19 28 27 +7 36 18 19 28 46 +8 33 44 19 28 46 +9 33 23 19 28 46 +10 36 28 19 18 13 +11 33 44 19 18 13 +12 33 23 19 18 13 +13 34 28 19 18 22 +14 31 44 19 18 22 +15 31 23 19 18 22 +16 35 28 19 18 17 +17 32 44 19 18 17 +18 32 23 19 18 17 +19 10 38 21 22 18 +20 11 39 21 22 18 +21 4 39 21 22 24 +22 5 38 21 39 37 +23 4 22 21 39 40 +24 2 22 21 39 37 +25 2 24 22 21 38 +26 13 21 22 18 13 +27 12 21 22 18 17 +28 13 21 22 18 19 +29 13 24 22 18 13 +30 12 24 22 18 17 +31 13 24 22 18 19 +32 2 21 22 24 20 +33 4 21 22 24 41 +34 14 29 28 46 45 +35 14 29 28 46 48 +36 15 27 28 46 45 +37 15 27 28 46 48 +38 16 19 28 46 45 +39 16 19 28 46 48 +40 10 20 24 22 18 +41 11 41 24 22 18 +42 2 22 24 41 43 +43 4 22 24 41 40 +44 5 20 24 41 43 +45 2 40 39 21 38 +46 2 21 39 40 42 +47 2 39 40 41 43 +48 4 41 40 39 21 +49 2 41 40 39 37 +50 5 42 40 39 37 +51 2 40 41 24 20 +52 2 24 41 40 42 +53 4 24 41 40 39 +54 5 43 41 40 42 +55 2 34 33 32 31 +56 2 32 33 34 9 +57 2 33 34 36 10 +58 4 36 34 33 32 +59 2 36 34 33 30 +60 5 9 34 33 30 +61 2 2 6 7 8 +62 2 7 6 2 1 +63 4 7 6 2 4 +64 5 5 6 2 1 +65 20 8 7 16 12 +66 21 6 7 16 12 +67 2 16 7 6 5 +68 4 16 7 6 2 +69 5 8 7 6 5 +70 24 16 12 13 25 +71 24 16 12 13 11 +72 25 16 12 13 18 +73 26 26 12 13 25 +74 26 26 12 13 11 +75 27 26 12 13 18 +76 28 12 13 18 22 +77 29 12 13 18 17 +78 30 12 13 18 19 +79 31 25 13 18 22 +80 32 25 13 18 17 +81 33 25 13 18 19 +82 31 11 13 18 22 +83 32 11 13 18 17 +84 33 11 13 18 19 +85 20 14 15 16 12 +86 21 4 15 16 12 +87 4 4 15 16 7 +88 5 14 15 4 3 +89 4 16 15 4 2 +90 2 16 15 4 3 +91 2 7 16 15 14 +92 22 15 16 12 26 +93 23 15 16 12 13 +94 22 7 16 12 26 +95 23 7 16 12 13 +96 2 15 16 7 8 +97 4 15 16 7 6 +98 2 35 29 32 31 +99 12 32 29 28 27 +100 13 32 29 28 46 +101 13 32 29 28 19 +102 12 35 29 28 27 +103 13 35 29 28 46 +104 13 35 29 28 19 +105 2 32 29 35 47 +106 4 32 29 35 36 +107 10 31 32 29 28 +108 11 33 32 29 28 +109 4 33 32 29 35 +110 5 31 32 33 30 +111 4 29 32 33 34 +112 2 29 32 33 30 +113 10 47 35 29 28 +114 11 36 35 29 28 +115 2 29 35 36 10 +116 4 29 35 36 34 +117 5 47 35 36 10 +118 2 34 36 35 47 +119 2 35 36 34 9 +120 4 35 36 34 33 +121 5 10 36 34 9 +122 2 4 2 6 5 +123 4 6 2 4 15 +124 2 6 2 4 3 +125 5 1 2 4 3 +126 2 2 4 15 14 +127 2 15 4 2 1 + +Impropers + +1 6 45 46 48 28 +2 1 22 18 17 13 +3 1 22 18 13 19 +4 1 17 18 13 19 +5 1 22 18 17 19 +6 1 44 19 18 28 +7 1 23 19 18 28 +8 1 44 19 23 28 +9 1 44 19 23 18 +10 1 22 21 39 38 +11 5 21 22 24 18 +12 1 29 28 27 46 +13 1 29 28 27 19 +14 1 29 28 46 19 +15 1 27 28 46 19 +16 1 22 24 41 20 +17 1 21 39 40 37 +18 1 41 40 39 42 +19 1 24 41 40 43 +20 1 32 33 34 30 +21 1 36 34 33 9 +22 1 7 6 2 5 +23 1 16 7 6 8 +24 9 16 12 26 13 +25 1 25 13 11 12 +26 1 25 13 12 18 +27 1 11 13 12 18 +28 1 25 13 11 18 +29 1 16 15 4 14 +30 8 15 16 7 12 +31 5 32 29 35 28 +32 1 29 32 33 31 +33 1 29 35 36 47 +34 1 35 36 34 10 +35 1 6 2 4 1 +36 1 15 4 2 3 diff --git a/examples/USER/sph/shock_tube/exact_solution.dat b/examples/USER/sph/shock_tube/exact_solution.dat old mode 100755 new mode 100644 diff --git a/examples/USER/sph/shock_tube/shock2d.lmp b/examples/USER/sph/shock_tube/shock2d.lmp old mode 100755 new mode 100644 diff --git a/examples/hBN-momolayer-5nm.data b/examples/hBN-momolayer-5nm.data deleted file mode 100644 index 18ae541279..0000000000 --- a/examples/hBN-momolayer-5nm.data +++ /dev/null @@ -1,892 +0,0 @@ - Makeup graphene nanoribbon on hBN - - 880 atoms - - 2 atom types - - 0.000000000000000 46.152979739999999 xlo xhi - 0.000000000000000 48.443364211584992 ylo yhi - 0.000000000000000 100.000000000000000 zlo zhi - - Atoms - - 1 1 0.420 0.000000000000000 0.000000000000000 0.000000000000000 - 2 2 -0.420 0.698900000000000 1.210530287683010 0.000000000000000 - 3 1 0.420 2.096700000000000 1.210530287683010 0.000000000000000 - 4 2 -0.420 2.795600000000000 0.000000000000000 0.000000000000000 - 5 1 0.420 4.193400000000000 0.000000000000000 0.000000000000000 - 6 2 -0.420 4.892300000000000 1.210530287683010 0.000000000000000 - 7 1 0.420 6.290100000000000 1.210530287683010 0.000000000000000 - 8 2 -0.420 6.989000000000000 0.000000000000000 0.000000000000000 - 9 1 0.420 8.386799999999999 0.000000000000000 0.000000000000000 - 10 2 -0.420 9.085699999999999 1.210530287683010 0.000000000000000 - 11 1 0.420 10.483499999999999 1.210530287683010 0.000000000000000 - 12 2 -0.420 11.182399999999999 0.000000000000000 0.000000000000000 - 13 1 0.420 12.580200000000000 0.000000000000000 0.000000000000000 - 14 2 -0.420 13.279100000000000 1.210530287683010 0.000000000000000 - 15 1 0.420 14.676900000000000 1.210530287683010 0.000000000000000 - 16 2 -0.420 15.375800000000000 0.000000000000000 0.000000000000000 - 17 1 0.420 16.773599999999998 0.000000000000000 0.000000000000000 - 18 2 -0.420 17.472500000000000 1.210530287683010 0.000000000000000 - 19 1 0.420 18.870300000000000 1.210530287683010 0.000000000000000 - 20 2 -0.420 19.569199999999999 0.000000000000000 0.000000000000000 - 21 1 0.420 20.966999999999999 0.000000000000000 0.000000000000000 - 22 2 -0.420 21.665900000000001 1.210530287683010 0.000000000000000 - 23 1 0.420 23.063699999999997 1.210530287683010 0.000000000000000 - 24 2 -0.420 23.762599999999999 0.000000000000000 0.000000000000000 - 25 1 0.420 25.160399999999999 0.000000000000000 0.000000000000000 - 26 2 -0.420 25.859299999999998 1.210530287683010 0.000000000000000 - 27 1 0.420 27.257099999999998 1.210530287683010 0.000000000000000 - 28 2 -0.420 27.956000000000000 0.000000000000000 0.000000000000000 - 29 1 0.420 29.353800000000000 0.000000000000000 0.000000000000000 - 30 2 -0.420 30.052699999999998 1.210530287683010 0.000000000000000 - 31 1 0.420 31.450499999999998 1.210530287683010 0.000000000000000 - 32 2 -0.420 32.149400000000000 0.000000000000000 0.000000000000000 - 33 1 0.420 33.547199999999997 0.000000000000000 0.000000000000000 - 34 2 -0.420 34.246099999999998 1.210530287683010 0.000000000000000 - 35 1 0.420 35.643899999999995 1.210530287683010 0.000000000000000 - 36 2 -0.420 36.342799999999997 0.000000000000000 0.000000000000000 - 37 1 0.420 37.740600000000001 0.000000000000000 0.000000000000000 - 38 2 -0.420 38.439499999999995 1.210530287683010 0.000000000000000 - 39 1 0.420 39.837299999999999 1.210530287683010 0.000000000000000 - 40 2 -0.420 40.536200000000001 0.000000000000000 0.000000000000000 - 41 1 0.420 41.933999999999997 0.000000000000000 0.000000000000000 - 42 2 -0.420 42.632899999999999 1.210530287683010 0.000000000000000 - 43 1 0.420 44.030699999999996 1.210530287683010 0.000000000000000 - 44 2 -0.420 44.729599999999998 0.000000000000000 0.000000000000000 - 45 1 0.420 0.000000000000000 2.421060575366020 0.000000000000000 - 46 2 -0.420 0.698900000000000 3.631590863049030 0.000000000000000 - 47 1 0.420 2.096700000000000 3.631590863049030 0.000000000000000 - 48 2 -0.420 2.795600000000000 2.421060575366020 0.000000000000000 - 49 1 0.420 4.193400000000000 2.421060575366020 0.000000000000000 - 50 2 -0.420 4.892300000000000 3.631590863049030 0.000000000000000 - 51 1 0.420 6.290100000000000 3.631590863049030 0.000000000000000 - 52 2 -0.420 6.989000000000000 2.421060575366020 0.000000000000000 - 53 1 0.420 8.386799999999999 2.421060575366020 0.000000000000000 - 54 2 -0.420 9.085699999999999 3.631590863049030 0.000000000000000 - 55 1 0.420 10.483499999999999 3.631590863049030 0.000000000000000 - 56 2 -0.420 11.182399999999999 2.421060575366020 0.000000000000000 - 57 1 0.420 12.580200000000000 2.421060575366020 0.000000000000000 - 58 2 -0.420 13.279100000000000 3.631590863049030 0.000000000000000 - 59 1 0.420 14.676900000000000 3.631590863049030 0.000000000000000 - 60 2 -0.420 15.375800000000000 2.421060575366020 0.000000000000000 - 61 1 0.420 16.773599999999998 2.421060575366020 0.000000000000000 - 62 2 -0.420 17.472500000000000 3.631590863049030 0.000000000000000 - 63 1 0.420 18.870300000000000 3.631590863049030 0.000000000000000 - 64 2 -0.420 19.569199999999999 2.421060575366020 0.000000000000000 - 65 1 0.420 20.966999999999999 2.421060575366020 0.000000000000000 - 66 2 -0.420 21.665900000000001 3.631590863049030 0.000000000000000 - 67 1 0.420 23.063699999999997 3.631590863049030 0.000000000000000 - 68 2 -0.420 23.762599999999999 2.421060575366020 0.000000000000000 - 69 1 0.420 25.160399999999999 2.421060575366020 0.000000000000000 - 70 2 -0.420 25.859299999999998 3.631590863049030 0.000000000000000 - 71 1 0.420 27.257099999999998 3.631590863049030 0.000000000000000 - 72 2 -0.420 27.956000000000000 2.421060575366020 0.000000000000000 - 73 1 0.420 29.353800000000000 2.421060575366020 0.000000000000000 - 74 2 -0.420 30.052699999999998 3.631590863049030 0.000000000000000 - 75 1 0.420 31.450499999999998 3.631590863049030 0.000000000000000 - 76 2 -0.420 32.149400000000000 2.421060575366020 0.000000000000000 - 77 1 0.420 33.547199999999997 2.421060575366020 0.000000000000000 - 78 2 -0.420 34.246099999999998 3.631590863049030 0.000000000000000 - 79 1 0.420 35.643899999999995 3.631590863049030 0.000000000000000 - 80 2 -0.420 36.342799999999997 2.421060575366020 0.000000000000000 - 81 1 0.420 37.740600000000001 2.421060575366020 0.000000000000000 - 82 2 -0.420 38.439499999999995 3.631590863049030 0.000000000000000 - 83 1 0.420 39.837299999999999 3.631590863049030 0.000000000000000 - 84 2 -0.420 40.536200000000001 2.421060575366020 0.000000000000000 - 85 1 0.420 41.933999999999997 2.421060575366020 0.000000000000000 - 86 2 -0.420 42.632899999999999 3.631590863049030 0.000000000000000 - 87 1 0.420 44.030699999999996 3.631590863049030 0.000000000000000 - 88 2 -0.420 44.729599999999998 2.421060575366020 0.000000000000000 - 89 1 0.420 0.000000000000000 4.842121150732040 0.000000000000000 - 90 2 -0.420 0.698900000000000 6.052651438415050 0.000000000000000 - 91 1 0.420 2.096700000000000 6.052651438415050 0.000000000000000 - 92 2 -0.420 2.795600000000000 4.842121150732040 0.000000000000000 - 93 1 0.420 4.193400000000000 4.842121150732040 0.000000000000000 - 94 2 -0.420 4.892300000000000 6.052651438415050 0.000000000000000 - 95 1 0.420 6.290100000000000 6.052651438415050 0.000000000000000 - 96 2 -0.420 6.989000000000000 4.842121150732040 0.000000000000000 - 97 1 0.420 8.386799999999999 4.842121150732040 0.000000000000000 - 98 2 -0.420 9.085699999999999 6.052651438415050 0.000000000000000 - 99 1 0.420 10.483499999999999 6.052651438415050 0.000000000000000 - 100 2 -0.420 11.182399999999999 4.842121150732040 0.000000000000000 - 101 1 0.420 12.580200000000000 4.842121150732040 0.000000000000000 - 102 2 -0.420 13.279100000000000 6.052651438415050 0.000000000000000 - 103 1 0.420 14.676900000000000 6.052651438415050 0.000000000000000 - 104 2 -0.420 15.375800000000000 4.842121150732040 0.000000000000000 - 105 1 0.420 16.773599999999998 4.842121150732040 0.000000000000000 - 106 2 -0.420 17.472500000000000 6.052651438415050 0.000000000000000 - 107 1 0.420 18.870300000000000 6.052651438415050 0.000000000000000 - 108 2 -0.420 19.569199999999999 4.842121150732040 0.000000000000000 - 109 1 0.420 20.966999999999999 4.842121150732040 0.000000000000000 - 110 2 -0.420 21.665900000000001 6.052651438415050 0.000000000000000 - 111 1 0.420 23.063699999999997 6.052651438415050 0.000000000000000 - 112 2 -0.420 23.762599999999999 4.842121150732040 0.000000000000000 - 113 1 0.420 25.160399999999999 4.842121150732040 0.000000000000000 - 114 2 -0.420 25.859299999999998 6.052651438415050 0.000000000000000 - 115 1 0.420 27.257099999999998 6.052651438415050 0.000000000000000 - 116 2 -0.420 27.956000000000000 4.842121150732040 0.000000000000000 - 117 1 0.420 29.353800000000000 4.842121150732040 0.000000000000000 - 118 2 -0.420 30.052699999999998 6.052651438415050 0.000000000000000 - 119 1 0.420 31.450499999999998 6.052651438415050 0.000000000000000 - 120 2 -0.420 32.149400000000000 4.842121150732040 0.000000000000000 - 121 1 0.420 33.547199999999997 4.842121150732040 0.000000000000000 - 122 2 -0.420 34.246099999999998 6.052651438415050 0.000000000000000 - 123 1 0.420 35.643899999999995 6.052651438415050 0.000000000000000 - 124 2 -0.420 36.342799999999997 4.842121150732040 0.000000000000000 - 125 1 0.420 37.740600000000001 4.842121150732040 0.000000000000000 - 126 2 -0.420 38.439499999999995 6.052651438415050 0.000000000000000 - 127 1 0.420 39.837299999999999 6.052651438415050 0.000000000000000 - 128 2 -0.420 40.536200000000001 4.842121150732040 0.000000000000000 - 129 1 0.420 41.933999999999997 4.842121150732040 0.000000000000000 - 130 2 -0.420 42.632899999999999 6.052651438415050 0.000000000000000 - 131 1 0.420 44.030699999999996 6.052651438415050 0.000000000000000 - 132 2 -0.420 44.729599999999998 4.842121150732040 0.000000000000000 - 133 1 0.420 0.000000000000000 7.263181726098059 0.000000000000000 - 134 2 -0.420 0.698900000000000 8.473712013781070 0.000000000000000 - 135 1 0.420 2.096700000000000 8.473712013781070 0.000000000000000 - 136 2 -0.420 2.795600000000000 7.263181726098059 0.000000000000000 - 137 1 0.420 4.193400000000000 7.263181726098059 0.000000000000000 - 138 2 -0.420 4.892300000000000 8.473712013781070 0.000000000000000 - 139 1 0.420 6.290100000000000 8.473712013781070 0.000000000000000 - 140 2 -0.420 6.989000000000000 7.263181726098059 0.000000000000000 - 141 1 0.420 8.386799999999999 7.263181726098059 0.000000000000000 - 142 2 -0.420 9.085699999999999 8.473712013781070 0.000000000000000 - 143 1 0.420 10.483499999999999 8.473712013781070 0.000000000000000 - 144 2 -0.420 11.182399999999999 7.263181726098059 0.000000000000000 - 145 1 0.420 12.580200000000000 7.263181726098059 0.000000000000000 - 146 2 -0.420 13.279100000000000 8.473712013781070 0.000000000000000 - 147 1 0.420 14.676900000000000 8.473712013781070 0.000000000000000 - 148 2 -0.420 15.375800000000000 7.263181726098059 0.000000000000000 - 149 1 0.420 16.773599999999998 7.263181726098059 0.000000000000000 - 150 2 -0.420 17.472500000000000 8.473712013781070 0.000000000000000 - 151 1 0.420 18.870300000000000 8.473712013781070 0.000000000000000 - 152 2 -0.420 19.569199999999999 7.263181726098059 0.000000000000000 - 153 1 0.420 20.966999999999999 7.263181726098059 0.000000000000000 - 154 2 -0.420 21.665900000000001 8.473712013781070 0.000000000000000 - 155 1 0.420 23.063699999999997 8.473712013781070 0.000000000000000 - 156 2 -0.420 23.762599999999999 7.263181726098059 0.000000000000000 - 157 1 0.420 25.160399999999999 7.263181726098059 0.000000000000000 - 158 2 -0.420 25.859299999999998 8.473712013781070 0.000000000000000 - 159 1 0.420 27.257099999999998 8.473712013781070 0.000000000000000 - 160 2 -0.420 27.956000000000000 7.263181726098059 0.000000000000000 - 161 1 0.420 29.353800000000000 7.263181726098059 0.000000000000000 - 162 2 -0.420 30.052699999999998 8.473712013781070 0.000000000000000 - 163 1 0.420 31.450499999999998 8.473712013781070 0.000000000000000 - 164 2 -0.420 32.149400000000000 7.263181726098059 0.000000000000000 - 165 1 0.420 33.547199999999997 7.263181726098059 0.000000000000000 - 166 2 -0.420 34.246099999999998 8.473712013781070 0.000000000000000 - 167 1 0.420 35.643899999999995 8.473712013781070 0.000000000000000 - 168 2 -0.420 36.342799999999997 7.263181726098059 0.000000000000000 - 169 1 0.420 37.740600000000001 7.263181726098059 0.000000000000000 - 170 2 -0.420 38.439499999999995 8.473712013781070 0.000000000000000 - 171 1 0.420 39.837299999999999 8.473712013781070 0.000000000000000 - 172 2 -0.420 40.536200000000001 7.263181726098059 0.000000000000000 - 173 1 0.420 41.933999999999997 7.263181726098059 0.000000000000000 - 174 2 -0.420 42.632899999999999 8.473712013781070 0.000000000000000 - 175 1 0.420 44.030699999999996 8.473712013781070 0.000000000000000 - 176 2 -0.420 44.729599999999998 7.263181726098059 0.000000000000000 - 177 1 0.420 0.000000000000000 9.684242301464080 0.000000000000000 - 178 2 -0.420 0.698900000000000 10.894772589147090 0.000000000000000 - 179 1 0.420 2.096700000000000 10.894772589147090 0.000000000000000 - 180 2 -0.420 2.795600000000000 9.684242301464080 0.000000000000000 - 181 1 0.420 4.193400000000000 9.684242301464080 0.000000000000000 - 182 2 -0.420 4.892300000000000 10.894772589147090 0.000000000000000 - 183 1 0.420 6.290100000000000 10.894772589147090 0.000000000000000 - 184 2 -0.420 6.989000000000000 9.684242301464080 0.000000000000000 - 185 1 0.420 8.386799999999999 9.684242301464080 0.000000000000000 - 186 2 -0.420 9.085699999999999 10.894772589147090 0.000000000000000 - 187 1 0.420 10.483499999999999 10.894772589147090 0.000000000000000 - 188 2 -0.420 11.182399999999999 9.684242301464080 0.000000000000000 - 189 1 0.420 12.580200000000000 9.684242301464080 0.000000000000000 - 190 2 -0.420 13.279100000000000 10.894772589147090 0.000000000000000 - 191 1 0.420 14.676900000000000 10.894772589147090 0.000000000000000 - 192 2 -0.420 15.375800000000000 9.684242301464080 0.000000000000000 - 193 1 0.420 16.773599999999998 9.684242301464080 0.000000000000000 - 194 2 -0.420 17.472500000000000 10.894772589147090 0.000000000000000 - 195 1 0.420 18.870300000000000 10.894772589147090 0.000000000000000 - 196 2 -0.420 19.569199999999999 9.684242301464080 0.000000000000000 - 197 1 0.420 20.966999999999999 9.684242301464080 0.000000000000000 - 198 2 -0.420 21.665900000000001 10.894772589147090 0.000000000000000 - 199 1 0.420 23.063699999999997 10.894772589147090 0.000000000000000 - 200 2 -0.420 23.762599999999999 9.684242301464080 0.000000000000000 - 201 1 0.420 25.160399999999999 9.684242301464080 0.000000000000000 - 202 2 -0.420 25.859299999999998 10.894772589147090 0.000000000000000 - 203 1 0.420 27.257099999999998 10.894772589147090 0.000000000000000 - 204 2 -0.420 27.956000000000000 9.684242301464080 0.000000000000000 - 205 1 0.420 29.353800000000000 9.684242301464080 0.000000000000000 - 206 2 -0.420 30.052699999999998 10.894772589147090 0.000000000000000 - 207 1 0.420 31.450499999999998 10.894772589147090 0.000000000000000 - 208 2 -0.420 32.149400000000000 9.684242301464080 0.000000000000000 - 209 1 0.420 33.547199999999997 9.684242301464080 0.000000000000000 - 210 2 -0.420 34.246099999999998 10.894772589147090 0.000000000000000 - 211 1 0.420 35.643899999999995 10.894772589147090 0.000000000000000 - 212 2 -0.420 36.342799999999997 9.684242301464080 0.000000000000000 - 213 1 0.420 37.740600000000001 9.684242301464080 0.000000000000000 - 214 2 -0.420 38.439499999999995 10.894772589147090 0.000000000000000 - 215 1 0.420 39.837299999999999 10.894772589147090 0.000000000000000 - 216 2 -0.420 40.536200000000001 9.684242301464080 0.000000000000000 - 217 1 0.420 41.933999999999997 9.684242301464080 0.000000000000000 - 218 2 -0.420 42.632899999999999 10.894772589147090 0.000000000000000 - 219 1 0.420 44.030699999999996 10.894772589147090 0.000000000000000 - 220 2 -0.420 44.729599999999998 9.684242301464080 0.000000000000000 - 221 1 0.420 0.000000000000000 12.105302876830100 0.000000000000000 - 222 2 -0.420 0.698900000000000 13.315833164513110 0.000000000000000 - 223 1 0.420 2.096700000000000 13.315833164513110 0.000000000000000 - 224 2 -0.420 2.795600000000000 12.105302876830100 0.000000000000000 - 225 1 0.420 4.193400000000000 12.105302876830100 0.000000000000000 - 226 2 -0.420 4.892300000000000 13.315833164513110 0.000000000000000 - 227 1 0.420 6.290100000000000 13.315833164513110 0.000000000000000 - 228 2 -0.420 6.989000000000000 12.105302876830100 0.000000000000000 - 229 1 0.420 8.386799999999999 12.105302876830100 0.000000000000000 - 230 2 -0.420 9.085699999999999 13.315833164513110 0.000000000000000 - 231 1 0.420 10.483499999999999 13.315833164513110 0.000000000000000 - 232 2 -0.420 11.182399999999999 12.105302876830100 0.000000000000000 - 233 1 0.420 12.580200000000000 12.105302876830100 0.000000000000000 - 234 2 -0.420 13.279100000000000 13.315833164513110 0.000000000000000 - 235 1 0.420 14.676900000000000 13.315833164513110 0.000000000000000 - 236 2 -0.420 15.375800000000000 12.105302876830100 0.000000000000000 - 237 1 0.420 16.773599999999998 12.105302876830100 0.000000000000000 - 238 2 -0.420 17.472500000000000 13.315833164513110 0.000000000000000 - 239 1 0.420 18.870300000000000 13.315833164513110 0.000000000000000 - 240 2 -0.420 19.569199999999999 12.105302876830100 0.000000000000000 - 241 1 0.420 20.966999999999999 12.105302876830100 0.000000000000000 - 242 2 -0.420 21.665900000000001 13.315833164513110 0.000000000000000 - 243 1 0.420 23.063699999999997 13.315833164513110 0.000000000000000 - 244 2 -0.420 23.762599999999999 12.105302876830100 0.000000000000000 - 245 1 0.420 25.160399999999999 12.105302876830100 0.000000000000000 - 246 2 -0.420 25.859299999999998 13.315833164513110 0.000000000000000 - 247 1 0.420 27.257099999999998 13.315833164513110 0.000000000000000 - 248 2 -0.420 27.956000000000000 12.105302876830100 0.000000000000000 - 249 1 0.420 29.353800000000000 12.105302876830100 0.000000000000000 - 250 2 -0.420 30.052699999999998 13.315833164513110 0.000000000000000 - 251 1 0.420 31.450499999999998 13.315833164513110 0.000000000000000 - 252 2 -0.420 32.149400000000000 12.105302876830100 0.000000000000000 - 253 1 0.420 33.547199999999997 12.105302876830100 0.000000000000000 - 254 2 -0.420 34.246099999999998 13.315833164513110 0.000000000000000 - 255 1 0.420 35.643899999999995 13.315833164513110 0.000000000000000 - 256 2 -0.420 36.342799999999997 12.105302876830100 0.000000000000000 - 257 1 0.420 37.740600000000001 12.105302876830100 0.000000000000000 - 258 2 -0.420 38.439499999999995 13.315833164513110 0.000000000000000 - 259 1 0.420 39.837299999999999 13.315833164513110 0.000000000000000 - 260 2 -0.420 40.536200000000001 12.105302876830100 0.000000000000000 - 261 1 0.420 41.933999999999997 12.105302876830100 0.000000000000000 - 262 2 -0.420 42.632899999999999 13.315833164513110 0.000000000000000 - 263 1 0.420 44.030699999999996 13.315833164513110 0.000000000000000 - 264 2 -0.420 44.729599999999998 12.105302876830100 0.000000000000000 - 265 1 0.420 0.000000000000000 14.526363452196119 0.000000000000000 - 266 2 -0.420 0.698900000000000 15.736893739879129 0.000000000000000 - 267 1 0.420 2.096700000000000 15.736893739879129 0.000000000000000 - 268 2 -0.420 2.795600000000000 14.526363452196119 0.000000000000000 - 269 1 0.420 4.193400000000000 14.526363452196119 0.000000000000000 - 270 2 -0.420 4.892300000000000 15.736893739879129 0.000000000000000 - 271 1 0.420 6.290100000000000 15.736893739879129 0.000000000000000 - 272 2 -0.420 6.989000000000000 14.526363452196119 0.000000000000000 - 273 1 0.420 8.386799999999999 14.526363452196119 0.000000000000000 - 274 2 -0.420 9.085699999999999 15.736893739879129 0.000000000000000 - 275 1 0.420 10.483499999999999 15.736893739879129 0.000000000000000 - 276 2 -0.420 11.182399999999999 14.526363452196119 0.000000000000000 - 277 1 0.420 12.580200000000000 14.526363452196119 0.000000000000000 - 278 2 -0.420 13.279100000000000 15.736893739879129 0.000000000000000 - 279 1 0.420 14.676900000000000 15.736893739879129 0.000000000000000 - 280 2 -0.420 15.375800000000000 14.526363452196119 0.000000000000000 - 281 1 0.420 16.773599999999998 14.526363452196119 0.000000000000000 - 282 2 -0.420 17.472500000000000 15.736893739879129 0.000000000000000 - 283 1 0.420 18.870300000000000 15.736893739879129 0.000000000000000 - 284 2 -0.420 19.569199999999999 14.526363452196119 0.000000000000000 - 285 1 0.420 20.966999999999999 14.526363452196119 0.000000000000000 - 286 2 -0.420 21.665900000000001 15.736893739879129 0.000000000000000 - 287 1 0.420 23.063699999999997 15.736893739879129 0.000000000000000 - 288 2 -0.420 23.762599999999999 14.526363452196119 0.000000000000000 - 289 1 0.420 25.160399999999999 14.526363452196119 0.000000000000000 - 290 2 -0.420 25.859299999999998 15.736893739879129 0.000000000000000 - 291 1 0.420 27.257099999999998 15.736893739879129 0.000000000000000 - 292 2 -0.420 27.956000000000000 14.526363452196119 0.000000000000000 - 293 1 0.420 29.353800000000000 14.526363452196119 0.000000000000000 - 294 2 -0.420 30.052699999999998 15.736893739879129 0.000000000000000 - 295 1 0.420 31.450499999999998 15.736893739879129 0.000000000000000 - 296 2 -0.420 32.149400000000000 14.526363452196119 0.000000000000000 - 297 1 0.420 33.547199999999997 14.526363452196119 0.000000000000000 - 298 2 -0.420 34.246099999999998 15.736893739879129 0.000000000000000 - 299 1 0.420 35.643899999999995 15.736893739879129 0.000000000000000 - 300 2 -0.420 36.342799999999997 14.526363452196119 0.000000000000000 - 301 1 0.420 37.740600000000001 14.526363452196119 0.000000000000000 - 302 2 -0.420 38.439499999999995 15.736893739879129 0.000000000000000 - 303 1 0.420 39.837299999999999 15.736893739879129 0.000000000000000 - 304 2 -0.420 40.536200000000001 14.526363452196119 0.000000000000000 - 305 1 0.420 41.933999999999997 14.526363452196119 0.000000000000000 - 306 2 -0.420 42.632899999999999 15.736893739879129 0.000000000000000 - 307 1 0.420 44.030699999999996 15.736893739879129 0.000000000000000 - 308 2 -0.420 44.729599999999998 14.526363452196119 0.000000000000000 - 309 1 0.420 0.000000000000000 16.947424027562139 0.000000000000000 - 310 2 -0.420 0.698900000000000 18.157954315245149 0.000000000000000 - 311 1 0.420 2.096700000000000 18.157954315245149 0.000000000000000 - 312 2 -0.420 2.795600000000000 16.947424027562139 0.000000000000000 - 313 1 0.420 4.193400000000000 16.947424027562139 0.000000000000000 - 314 2 -0.420 4.892300000000000 18.157954315245149 0.000000000000000 - 315 1 0.420 6.290100000000000 18.157954315245149 0.000000000000000 - 316 2 -0.420 6.989000000000000 16.947424027562139 0.000000000000000 - 317 1 0.420 8.386799999999999 16.947424027562139 0.000000000000000 - 318 2 -0.420 9.085699999999999 18.157954315245149 0.000000000000000 - 319 1 0.420 10.483499999999999 18.157954315245149 0.000000000000000 - 320 2 -0.420 11.182399999999999 16.947424027562139 0.000000000000000 - 321 1 0.420 12.580200000000000 16.947424027562139 0.000000000000000 - 322 2 -0.420 13.279100000000000 18.157954315245149 0.000000000000000 - 323 1 0.420 14.676900000000000 18.157954315245149 0.000000000000000 - 324 2 -0.420 15.375800000000000 16.947424027562139 0.000000000000000 - 325 1 0.420 16.773599999999998 16.947424027562139 0.000000000000000 - 326 2 -0.420 17.472500000000000 18.157954315245149 0.000000000000000 - 327 1 0.420 18.870300000000000 18.157954315245149 0.000000000000000 - 328 2 -0.420 19.569199999999999 16.947424027562139 0.000000000000000 - 329 1 0.420 20.966999999999999 16.947424027562139 0.000000000000000 - 330 2 -0.420 21.665900000000001 18.157954315245149 0.000000000000000 - 331 1 0.420 23.063699999999997 18.157954315245149 0.000000000000000 - 332 2 -0.420 23.762599999999999 16.947424027562139 0.000000000000000 - 333 1 0.420 25.160399999999999 16.947424027562139 0.000000000000000 - 334 2 -0.420 25.859299999999998 18.157954315245149 0.000000000000000 - 335 1 0.420 27.257099999999998 18.157954315245149 0.000000000000000 - 336 2 -0.420 27.956000000000000 16.947424027562139 0.000000000000000 - 337 1 0.420 29.353800000000000 16.947424027562139 0.000000000000000 - 338 2 -0.420 30.052699999999998 18.157954315245149 0.000000000000000 - 339 1 0.420 31.450499999999998 18.157954315245149 0.000000000000000 - 340 2 -0.420 32.149400000000000 16.947424027562139 0.000000000000000 - 341 1 0.420 33.547199999999997 16.947424027562139 0.000000000000000 - 342 2 -0.420 34.246099999999998 18.157954315245149 0.000000000000000 - 343 1 0.420 35.643899999999995 18.157954315245149 0.000000000000000 - 344 2 -0.420 36.342799999999997 16.947424027562139 0.000000000000000 - 345 1 0.420 37.740600000000001 16.947424027562139 0.000000000000000 - 346 2 -0.420 38.439499999999995 18.157954315245149 0.000000000000000 - 347 1 0.420 39.837299999999999 18.157954315245149 0.000000000000000 - 348 2 -0.420 40.536200000000001 16.947424027562139 0.000000000000000 - 349 1 0.420 41.933999999999997 16.947424027562139 0.000000000000000 - 350 2 -0.420 42.632899999999999 18.157954315245149 0.000000000000000 - 351 1 0.420 44.030699999999996 18.157954315245149 0.000000000000000 - 352 2 -0.420 44.729599999999998 16.947424027562139 0.000000000000000 - 353 1 0.420 0.000000000000000 19.368484602928159 0.000000000000000 - 354 2 -0.420 0.698900000000000 20.579014890611170 0.000000000000000 - 355 1 0.420 2.096700000000000 20.579014890611170 0.000000000000000 - 356 2 -0.420 2.795600000000000 19.368484602928159 0.000000000000000 - 357 1 0.420 4.193400000000000 19.368484602928159 0.000000000000000 - 358 2 -0.420 4.892300000000000 20.579014890611170 0.000000000000000 - 359 1 0.420 6.290100000000000 20.579014890611170 0.000000000000000 - 360 2 -0.420 6.989000000000000 19.368484602928159 0.000000000000000 - 361 1 0.420 8.386799999999999 19.368484602928159 0.000000000000000 - 362 2 -0.420 9.085699999999999 20.579014890611170 0.000000000000000 - 363 1 0.420 10.483499999999999 20.579014890611170 0.000000000000000 - 364 2 -0.420 11.182399999999999 19.368484602928159 0.000000000000000 - 365 1 0.420 12.580200000000000 19.368484602928159 0.000000000000000 - 366 2 -0.420 13.279100000000000 20.579014890611170 0.000000000000000 - 367 1 0.420 14.676900000000000 20.579014890611170 0.000000000000000 - 368 2 -0.420 15.375800000000000 19.368484602928159 0.000000000000000 - 369 1 0.420 16.773599999999998 19.368484602928159 0.000000000000000 - 370 2 -0.420 17.472500000000000 20.579014890611170 0.000000000000000 - 371 1 0.420 18.870300000000000 20.579014890611170 0.000000000000000 - 372 2 -0.420 19.569199999999999 19.368484602928159 0.000000000000000 - 373 1 0.420 20.966999999999999 19.368484602928159 0.000000000000000 - 374 2 -0.420 21.665900000000001 20.579014890611170 0.000000000000000 - 375 1 0.420 23.063699999999997 20.579014890611170 0.000000000000000 - 376 2 -0.420 23.762599999999999 19.368484602928159 0.000000000000000 - 377 1 0.420 25.160399999999999 19.368484602928159 0.000000000000000 - 378 2 -0.420 25.859299999999998 20.579014890611170 0.000000000000000 - 379 1 0.420 27.257099999999998 20.579014890611170 0.000000000000000 - 380 2 -0.420 27.956000000000000 19.368484602928159 0.000000000000000 - 381 1 0.420 29.353800000000000 19.368484602928159 0.000000000000000 - 382 2 -0.420 30.052699999999998 20.579014890611170 0.000000000000000 - 383 1 0.420 31.450499999999998 20.579014890611170 0.000000000000000 - 384 2 -0.420 32.149400000000000 19.368484602928159 0.000000000000000 - 385 1 0.420 33.547199999999997 19.368484602928159 0.000000000000000 - 386 2 -0.420 34.246099999999998 20.579014890611170 0.000000000000000 - 387 1 0.420 35.643899999999995 20.579014890611170 0.000000000000000 - 388 2 -0.420 36.342799999999997 19.368484602928159 0.000000000000000 - 389 1 0.420 37.740600000000001 19.368484602928159 0.000000000000000 - 390 2 -0.420 38.439499999999995 20.579014890611170 0.000000000000000 - 391 1 0.420 39.837299999999999 20.579014890611170 0.000000000000000 - 392 2 -0.420 40.536200000000001 19.368484602928159 0.000000000000000 - 393 1 0.420 41.933999999999997 19.368484602928159 0.000000000000000 - 394 2 -0.420 42.632899999999999 20.579014890611170 0.000000000000000 - 395 1 0.420 44.030699999999996 20.579014890611170 0.000000000000000 - 396 2 -0.420 44.729599999999998 19.368484602928159 0.000000000000000 - 397 1 0.420 0.000000000000000 21.789545178294180 0.000000000000000 - 398 2 -0.420 0.698900000000000 23.000075465977190 0.000000000000000 - 399 1 0.420 2.096700000000000 23.000075465977190 0.000000000000000 - 400 2 -0.420 2.795600000000000 21.789545178294180 0.000000000000000 - 401 1 0.420 4.193400000000000 21.789545178294180 0.000000000000000 - 402 2 -0.420 4.892300000000000 23.000075465977190 0.000000000000000 - 403 1 0.420 6.290100000000000 23.000075465977190 0.000000000000000 - 404 2 -0.420 6.989000000000000 21.789545178294180 0.000000000000000 - 405 1 0.420 8.386799999999999 21.789545178294180 0.000000000000000 - 406 2 -0.420 9.085699999999999 23.000075465977190 0.000000000000000 - 407 1 0.420 10.483499999999999 23.000075465977190 0.000000000000000 - 408 2 -0.420 11.182399999999999 21.789545178294180 0.000000000000000 - 409 1 0.420 12.580200000000000 21.789545178294180 0.000000000000000 - 410 2 -0.420 13.279100000000000 23.000075465977190 0.000000000000000 - 411 1 0.420 14.676900000000000 23.000075465977190 0.000000000000000 - 412 2 -0.420 15.375800000000000 21.789545178294180 0.000000000000000 - 413 1 0.420 16.773599999999998 21.789545178294180 0.000000000000000 - 414 2 -0.420 17.472500000000000 23.000075465977190 0.000000000000000 - 415 1 0.420 18.870300000000000 23.000075465977190 0.000000000000000 - 416 2 -0.420 19.569199999999999 21.789545178294180 0.000000000000000 - 417 1 0.420 20.966999999999999 21.789545178294180 0.000000000000000 - 418 2 -0.420 21.665900000000001 23.000075465977190 0.000000000000000 - 419 1 0.420 23.063699999999997 23.000075465977190 0.000000000000000 - 420 2 -0.420 23.762599999999999 21.789545178294180 0.000000000000000 - 421 1 0.420 25.160399999999999 21.789545178294180 0.000000000000000 - 422 2 -0.420 25.859299999999998 23.000075465977190 0.000000000000000 - 423 1 0.420 27.257099999999998 23.000075465977190 0.000000000000000 - 424 2 -0.420 27.956000000000000 21.789545178294180 0.000000000000000 - 425 1 0.420 29.353800000000000 21.789545178294180 0.000000000000000 - 426 2 -0.420 30.052699999999998 23.000075465977190 0.000000000000000 - 427 1 0.420 31.450499999999998 23.000075465977190 0.000000000000000 - 428 2 -0.420 32.149400000000000 21.789545178294180 0.000000000000000 - 429 1 0.420 33.547199999999997 21.789545178294180 0.000000000000000 - 430 2 -0.420 34.246099999999998 23.000075465977190 0.000000000000000 - 431 1 0.420 35.643899999999995 23.000075465977190 0.000000000000000 - 432 2 -0.420 36.342799999999997 21.789545178294180 0.000000000000000 - 433 1 0.420 37.740600000000001 21.789545178294180 0.000000000000000 - 434 2 -0.420 38.439499999999995 23.000075465977190 0.000000000000000 - 435 1 0.420 39.837299999999999 23.000075465977190 0.000000000000000 - 436 2 -0.420 40.536200000000001 21.789545178294180 0.000000000000000 - 437 1 0.420 41.933999999999997 21.789545178294180 0.000000000000000 - 438 2 -0.420 42.632899999999999 23.000075465977190 0.000000000000000 - 439 1 0.420 44.030699999999996 23.000075465977190 0.000000000000000 - 440 2 -0.420 44.729599999999998 21.789545178294180 0.000000000000000 - 441 1 0.420 0.000000000000000 24.210605753660200 0.000000000000000 - 442 2 -0.420 0.698900000000000 25.421136041343210 0.000000000000000 - 443 1 0.420 2.096700000000000 25.421136041343210 0.000000000000000 - 444 2 -0.420 2.795600000000000 24.210605753660200 0.000000000000000 - 445 1 0.420 4.193400000000000 24.210605753660200 0.000000000000000 - 446 2 -0.420 4.892300000000000 25.421136041343210 0.000000000000000 - 447 1 0.420 6.290100000000000 25.421136041343210 0.000000000000000 - 448 2 -0.420 6.989000000000000 24.210605753660200 0.000000000000000 - 449 1 0.420 8.386799999999999 24.210605753660200 0.000000000000000 - 450 2 -0.420 9.085699999999999 25.421136041343210 0.000000000000000 - 451 1 0.420 10.483499999999999 25.421136041343210 0.000000000000000 - 452 2 -0.420 11.182399999999999 24.210605753660200 0.000000000000000 - 453 1 0.420 12.580200000000000 24.210605753660200 0.000000000000000 - 454 2 -0.420 13.279100000000000 25.421136041343210 0.000000000000000 - 455 1 0.420 14.676900000000000 25.421136041343210 0.000000000000000 - 456 2 -0.420 15.375800000000000 24.210605753660200 0.000000000000000 - 457 1 0.420 16.773599999999998 24.210605753660200 0.000000000000000 - 458 2 -0.420 17.472500000000000 25.421136041343210 0.000000000000000 - 459 1 0.420 18.870300000000000 25.421136041343210 0.000000000000000 - 460 2 -0.420 19.569199999999999 24.210605753660200 0.000000000000000 - 461 1 0.420 20.966999999999999 24.210605753660200 0.000000000000000 - 462 2 -0.420 21.665900000000001 25.421136041343210 0.000000000000000 - 463 1 0.420 23.063699999999997 25.421136041343210 0.000000000000000 - 464 2 -0.420 23.762599999999999 24.210605753660200 0.000000000000000 - 465 1 0.420 25.160399999999999 24.210605753660200 0.000000000000000 - 466 2 -0.420 25.859299999999998 25.421136041343210 0.000000000000000 - 467 1 0.420 27.257099999999998 25.421136041343210 0.000000000000000 - 468 2 -0.420 27.956000000000000 24.210605753660200 0.000000000000000 - 469 1 0.420 29.353800000000000 24.210605753660200 0.000000000000000 - 470 2 -0.420 30.052699999999998 25.421136041343210 0.000000000000000 - 471 1 0.420 31.450499999999998 25.421136041343210 0.000000000000000 - 472 2 -0.420 32.149400000000000 24.210605753660200 0.000000000000000 - 473 1 0.420 33.547199999999997 24.210605753660200 0.000000000000000 - 474 2 -0.420 34.246099999999998 25.421136041343210 0.000000000000000 - 475 1 0.420 35.643899999999995 25.421136041343210 0.000000000000000 - 476 2 -0.420 36.342799999999997 24.210605753660200 0.000000000000000 - 477 1 0.420 37.740600000000001 24.210605753660200 0.000000000000000 - 478 2 -0.420 38.439499999999995 25.421136041343210 0.000000000000000 - 479 1 0.420 39.837299999999999 25.421136041343210 0.000000000000000 - 480 2 -0.420 40.536200000000001 24.210605753660200 0.000000000000000 - 481 1 0.420 41.933999999999997 24.210605753660200 0.000000000000000 - 482 2 -0.420 42.632899999999999 25.421136041343210 0.000000000000000 - 483 1 0.420 44.030699999999996 25.421136041343210 0.000000000000000 - 484 2 -0.420 44.729599999999998 24.210605753660200 0.000000000000000 - 485 1 0.420 0.000000000000000 26.631666329026221 0.000000000000000 - 486 2 -0.420 0.698900000000000 27.842196616709231 0.000000000000000 - 487 1 0.420 2.096700000000000 27.842196616709231 0.000000000000000 - 488 2 -0.420 2.795600000000000 26.631666329026221 0.000000000000000 - 489 1 0.420 4.193400000000000 26.631666329026221 0.000000000000000 - 490 2 -0.420 4.892300000000000 27.842196616709231 0.000000000000000 - 491 1 0.420 6.290100000000000 27.842196616709231 0.000000000000000 - 492 2 -0.420 6.989000000000000 26.631666329026221 0.000000000000000 - 493 1 0.420 8.386799999999999 26.631666329026221 0.000000000000000 - 494 2 -0.420 9.085699999999999 27.842196616709231 0.000000000000000 - 495 1 0.420 10.483499999999999 27.842196616709231 0.000000000000000 - 496 2 -0.420 11.182399999999999 26.631666329026221 0.000000000000000 - 497 1 0.420 12.580200000000000 26.631666329026221 0.000000000000000 - 498 2 -0.420 13.279100000000000 27.842196616709231 0.000000000000000 - 499 1 0.420 14.676900000000000 27.842196616709231 0.000000000000000 - 500 2 -0.420 15.375800000000000 26.631666329026221 0.000000000000000 - 501 1 0.420 16.773599999999998 26.631666329026221 0.000000000000000 - 502 2 -0.420 17.472500000000000 27.842196616709231 0.000000000000000 - 503 1 0.420 18.870300000000000 27.842196616709231 0.000000000000000 - 504 2 -0.420 19.569199999999999 26.631666329026221 0.000000000000000 - 505 1 0.420 20.966999999999999 26.631666329026221 0.000000000000000 - 506 2 -0.420 21.665900000000001 27.842196616709231 0.000000000000000 - 507 1 0.420 23.063699999999997 27.842196616709231 0.000000000000000 - 508 2 -0.420 23.762599999999999 26.631666329026221 0.000000000000000 - 509 1 0.420 25.160399999999999 26.631666329026221 0.000000000000000 - 510 2 -0.420 25.859299999999998 27.842196616709231 0.000000000000000 - 511 1 0.420 27.257099999999998 27.842196616709231 0.000000000000000 - 512 2 -0.420 27.956000000000000 26.631666329026221 0.000000000000000 - 513 1 0.420 29.353800000000000 26.631666329026221 0.000000000000000 - 514 2 -0.420 30.052699999999998 27.842196616709231 0.000000000000000 - 515 1 0.420 31.450499999999998 27.842196616709231 0.000000000000000 - 516 2 -0.420 32.149400000000000 26.631666329026221 0.000000000000000 - 517 1 0.420 33.547199999999997 26.631666329026221 0.000000000000000 - 518 2 -0.420 34.246099999999998 27.842196616709231 0.000000000000000 - 519 1 0.420 35.643899999999995 27.842196616709231 0.000000000000000 - 520 2 -0.420 36.342799999999997 26.631666329026221 0.000000000000000 - 521 1 0.420 37.740600000000001 26.631666329026221 0.000000000000000 - 522 2 -0.420 38.439499999999995 27.842196616709231 0.000000000000000 - 523 1 0.420 39.837299999999999 27.842196616709231 0.000000000000000 - 524 2 -0.420 40.536200000000001 26.631666329026221 0.000000000000000 - 525 1 0.420 41.933999999999997 26.631666329026221 0.000000000000000 - 526 2 -0.420 42.632899999999999 27.842196616709231 0.000000000000000 - 527 1 0.420 44.030699999999996 27.842196616709231 0.000000000000000 - 528 2 -0.420 44.729599999999998 26.631666329026221 0.000000000000000 - 529 1 0.420 0.000000000000000 29.052726904392237 0.000000000000000 - 530 2 -0.420 0.698900000000000 30.263257192075248 0.000000000000000 - 531 1 0.420 2.096700000000000 30.263257192075248 0.000000000000000 - 532 2 -0.420 2.795600000000000 29.052726904392237 0.000000000000000 - 533 1 0.420 4.193400000000000 29.052726904392237 0.000000000000000 - 534 2 -0.420 4.892300000000000 30.263257192075248 0.000000000000000 - 535 1 0.420 6.290100000000000 30.263257192075248 0.000000000000000 - 536 2 -0.420 6.989000000000000 29.052726904392237 0.000000000000000 - 537 1 0.420 8.386799999999999 29.052726904392237 0.000000000000000 - 538 2 -0.420 9.085699999999999 30.263257192075248 0.000000000000000 - 539 1 0.420 10.483499999999999 30.263257192075248 0.000000000000000 - 540 2 -0.420 11.182399999999999 29.052726904392237 0.000000000000000 - 541 1 0.420 12.580200000000000 29.052726904392237 0.000000000000000 - 542 2 -0.420 13.279100000000000 30.263257192075248 0.000000000000000 - 543 1 0.420 14.676900000000000 30.263257192075248 0.000000000000000 - 544 2 -0.420 15.375800000000000 29.052726904392237 0.000000000000000 - 545 1 0.420 16.773599999999998 29.052726904392237 0.000000000000000 - 546 2 -0.420 17.472500000000000 30.263257192075248 0.000000000000000 - 547 1 0.420 18.870300000000000 30.263257192075248 0.000000000000000 - 548 2 -0.420 19.569199999999999 29.052726904392237 0.000000000000000 - 549 1 0.420 20.966999999999999 29.052726904392237 0.000000000000000 - 550 2 -0.420 21.665900000000001 30.263257192075248 0.000000000000000 - 551 1 0.420 23.063699999999997 30.263257192075248 0.000000000000000 - 552 2 -0.420 23.762599999999999 29.052726904392237 0.000000000000000 - 553 1 0.420 25.160399999999999 29.052726904392237 0.000000000000000 - 554 2 -0.420 25.859299999999998 30.263257192075248 0.000000000000000 - 555 1 0.420 27.257099999999998 30.263257192075248 0.000000000000000 - 556 2 -0.420 27.956000000000000 29.052726904392237 0.000000000000000 - 557 1 0.420 29.353800000000000 29.052726904392237 0.000000000000000 - 558 2 -0.420 30.052699999999998 30.263257192075248 0.000000000000000 - 559 1 0.420 31.450499999999998 30.263257192075248 0.000000000000000 - 560 2 -0.420 32.149400000000000 29.052726904392237 0.000000000000000 - 561 1 0.420 33.547199999999997 29.052726904392237 0.000000000000000 - 562 2 -0.420 34.246099999999998 30.263257192075248 0.000000000000000 - 563 1 0.420 35.643899999999995 30.263257192075248 0.000000000000000 - 564 2 -0.420 36.342799999999997 29.052726904392237 0.000000000000000 - 565 1 0.420 37.740600000000001 29.052726904392237 0.000000000000000 - 566 2 -0.420 38.439499999999995 30.263257192075248 0.000000000000000 - 567 1 0.420 39.837299999999999 30.263257192075248 0.000000000000000 - 568 2 -0.420 40.536200000000001 29.052726904392237 0.000000000000000 - 569 1 0.420 41.933999999999997 29.052726904392237 0.000000000000000 - 570 2 -0.420 42.632899999999999 30.263257192075248 0.000000000000000 - 571 1 0.420 44.030699999999996 30.263257192075248 0.000000000000000 - 572 2 -0.420 44.729599999999998 29.052726904392237 0.000000000000000 - 573 1 0.420 0.000000000000000 31.473787479758258 0.000000000000000 - 574 2 -0.420 0.698900000000000 32.684317767441271 0.000000000000000 - 575 1 0.420 2.096700000000000 32.684317767441271 0.000000000000000 - 576 2 -0.420 2.795600000000000 31.473787479758258 0.000000000000000 - 577 1 0.420 4.193400000000000 31.473787479758258 0.000000000000000 - 578 2 -0.420 4.892300000000000 32.684317767441271 0.000000000000000 - 579 1 0.420 6.290100000000000 32.684317767441271 0.000000000000000 - 580 2 -0.420 6.989000000000000 31.473787479758258 0.000000000000000 - 581 1 0.420 8.386799999999999 31.473787479758258 0.000000000000000 - 582 2 -0.420 9.085699999999999 32.684317767441271 0.000000000000000 - 583 1 0.420 10.483499999999999 32.684317767441271 0.000000000000000 - 584 2 -0.420 11.182399999999999 31.473787479758258 0.000000000000000 - 585 1 0.420 12.580200000000000 31.473787479758258 0.000000000000000 - 586 2 -0.420 13.279100000000000 32.684317767441271 0.000000000000000 - 587 1 0.420 14.676900000000000 32.684317767441271 0.000000000000000 - 588 2 -0.420 15.375800000000000 31.473787479758258 0.000000000000000 - 589 1 0.420 16.773599999999998 31.473787479758258 0.000000000000000 - 590 2 -0.420 17.472500000000000 32.684317767441271 0.000000000000000 - 591 1 0.420 18.870300000000000 32.684317767441271 0.000000000000000 - 592 2 -0.420 19.569199999999999 31.473787479758258 0.000000000000000 - 593 1 0.420 20.966999999999999 31.473787479758258 0.000000000000000 - 594 2 -0.420 21.665900000000001 32.684317767441271 0.000000000000000 - 595 1 0.420 23.063699999999997 32.684317767441271 0.000000000000000 - 596 2 -0.420 23.762599999999999 31.473787479758258 0.000000000000000 - 597 1 0.420 25.160399999999999 31.473787479758258 0.000000000000000 - 598 2 -0.420 25.859299999999998 32.684317767441271 0.000000000000000 - 599 1 0.420 27.257099999999998 32.684317767441271 0.000000000000000 - 600 2 -0.420 27.956000000000000 31.473787479758258 0.000000000000000 - 601 1 0.420 29.353800000000000 31.473787479758258 0.000000000000000 - 602 2 -0.420 30.052699999999998 32.684317767441271 0.000000000000000 - 603 1 0.420 31.450499999999998 32.684317767441271 0.000000000000000 - 604 2 -0.420 32.149400000000000 31.473787479758258 0.000000000000000 - 605 1 0.420 33.547199999999997 31.473787479758258 0.000000000000000 - 606 2 -0.420 34.246099999999998 32.684317767441271 0.000000000000000 - 607 1 0.420 35.643899999999995 32.684317767441271 0.000000000000000 - 608 2 -0.420 36.342799999999997 31.473787479758258 0.000000000000000 - 609 1 0.420 37.740600000000001 31.473787479758258 0.000000000000000 - 610 2 -0.420 38.439499999999995 32.684317767441271 0.000000000000000 - 611 1 0.420 39.837299999999999 32.684317767441271 0.000000000000000 - 612 2 -0.420 40.536200000000001 31.473787479758258 0.000000000000000 - 613 1 0.420 41.933999999999997 31.473787479758258 0.000000000000000 - 614 2 -0.420 42.632899999999999 32.684317767441271 0.000000000000000 - 615 1 0.420 44.030699999999996 32.684317767441271 0.000000000000000 - 616 2 -0.420 44.729599999999998 31.473787479758258 0.000000000000000 - 617 1 0.420 0.000000000000000 33.894848055124278 0.000000000000000 - 618 2 -0.420 0.698900000000000 35.105378342807292 0.000000000000000 - 619 1 0.420 2.096700000000000 35.105378342807292 0.000000000000000 - 620 2 -0.420 2.795600000000000 33.894848055124278 0.000000000000000 - 621 1 0.420 4.193400000000000 33.894848055124278 0.000000000000000 - 622 2 -0.420 4.892300000000000 35.105378342807292 0.000000000000000 - 623 1 0.420 6.290100000000000 35.105378342807292 0.000000000000000 - 624 2 -0.420 6.989000000000000 33.894848055124278 0.000000000000000 - 625 1 0.420 8.386799999999999 33.894848055124278 0.000000000000000 - 626 2 -0.420 9.085699999999999 35.105378342807292 0.000000000000000 - 627 1 0.420 10.483499999999999 35.105378342807292 0.000000000000000 - 628 2 -0.420 11.182399999999999 33.894848055124278 0.000000000000000 - 629 1 0.420 12.580200000000000 33.894848055124278 0.000000000000000 - 630 2 -0.420 13.279100000000000 35.105378342807292 0.000000000000000 - 631 1 0.420 14.676900000000000 35.105378342807292 0.000000000000000 - 632 2 -0.420 15.375800000000000 33.894848055124278 0.000000000000000 - 633 1 0.420 16.773599999999998 33.894848055124278 0.000000000000000 - 634 2 -0.420 17.472500000000000 35.105378342807292 0.000000000000000 - 635 1 0.420 18.870300000000000 35.105378342807292 0.000000000000000 - 636 2 -0.420 19.569199999999999 33.894848055124278 0.000000000000000 - 637 1 0.420 20.966999999999999 33.894848055124278 0.000000000000000 - 638 2 -0.420 21.665900000000001 35.105378342807292 0.000000000000000 - 639 1 0.420 23.063699999999997 35.105378342807292 0.000000000000000 - 640 2 -0.420 23.762599999999999 33.894848055124278 0.000000000000000 - 641 1 0.420 25.160399999999999 33.894848055124278 0.000000000000000 - 642 2 -0.420 25.859299999999998 35.105378342807292 0.000000000000000 - 643 1 0.420 27.257099999999998 35.105378342807292 0.000000000000000 - 644 2 -0.420 27.956000000000000 33.894848055124278 0.000000000000000 - 645 1 0.420 29.353800000000000 33.894848055124278 0.000000000000000 - 646 2 -0.420 30.052699999999998 35.105378342807292 0.000000000000000 - 647 1 0.420 31.450499999999998 35.105378342807292 0.000000000000000 - 648 2 -0.420 32.149400000000000 33.894848055124278 0.000000000000000 - 649 1 0.420 33.547199999999997 33.894848055124278 0.000000000000000 - 650 2 -0.420 34.246099999999998 35.105378342807292 0.000000000000000 - 651 1 0.420 35.643899999999995 35.105378342807292 0.000000000000000 - 652 2 -0.420 36.342799999999997 33.894848055124278 0.000000000000000 - 653 1 0.420 37.740600000000001 33.894848055124278 0.000000000000000 - 654 2 -0.420 38.439499999999995 35.105378342807292 0.000000000000000 - 655 1 0.420 39.837299999999999 35.105378342807292 0.000000000000000 - 656 2 -0.420 40.536200000000001 33.894848055124278 0.000000000000000 - 657 1 0.420 41.933999999999997 33.894848055124278 0.000000000000000 - 658 2 -0.420 42.632899999999999 35.105378342807292 0.000000000000000 - 659 1 0.420 44.030699999999996 35.105378342807292 0.000000000000000 - 660 2 -0.420 44.729599999999998 33.894848055124278 0.000000000000000 - 661 1 0.420 0.000000000000000 36.315908630490298 0.000000000000000 - 662 2 -0.420 0.698900000000000 37.526438918173312 0.000000000000000 - 663 1 0.420 2.096700000000000 37.526438918173312 0.000000000000000 - 664 2 -0.420 2.795600000000000 36.315908630490298 0.000000000000000 - 665 1 0.420 4.193400000000000 36.315908630490298 0.000000000000000 - 666 2 -0.420 4.892300000000000 37.526438918173312 0.000000000000000 - 667 1 0.420 6.290100000000000 37.526438918173312 0.000000000000000 - 668 2 -0.420 6.989000000000000 36.315908630490298 0.000000000000000 - 669 1 0.420 8.386799999999999 36.315908630490298 0.000000000000000 - 670 2 -0.420 9.085699999999999 37.526438918173312 0.000000000000000 - 671 1 0.420 10.483499999999999 37.526438918173312 0.000000000000000 - 672 2 -0.420 11.182399999999999 36.315908630490298 0.000000000000000 - 673 1 0.420 12.580200000000000 36.315908630490298 0.000000000000000 - 674 2 -0.420 13.279100000000000 37.526438918173312 0.000000000000000 - 675 1 0.420 14.676900000000000 37.526438918173312 0.000000000000000 - 676 2 -0.420 15.375800000000000 36.315908630490298 0.000000000000000 - 677 1 0.420 16.773599999999998 36.315908630490298 0.000000000000000 - 678 2 -0.420 17.472500000000000 37.526438918173312 0.000000000000000 - 679 1 0.420 18.870300000000000 37.526438918173312 0.000000000000000 - 680 2 -0.420 19.569199999999999 36.315908630490298 0.000000000000000 - 681 1 0.420 20.966999999999999 36.315908630490298 0.000000000000000 - 682 2 -0.420 21.665900000000001 37.526438918173312 0.000000000000000 - 683 1 0.420 23.063699999999997 37.526438918173312 0.000000000000000 - 684 2 -0.420 23.762599999999999 36.315908630490298 0.000000000000000 - 685 1 0.420 25.160399999999999 36.315908630490298 0.000000000000000 - 686 2 -0.420 25.859299999999998 37.526438918173312 0.000000000000000 - 687 1 0.420 27.257099999999998 37.526438918173312 0.000000000000000 - 688 2 -0.420 27.956000000000000 36.315908630490298 0.000000000000000 - 689 1 0.420 29.353800000000000 36.315908630490298 0.000000000000000 - 690 2 -0.420 30.052699999999998 37.526438918173312 0.000000000000000 - 691 1 0.420 31.450499999999998 37.526438918173312 0.000000000000000 - 692 2 -0.420 32.149400000000000 36.315908630490298 0.000000000000000 - 693 1 0.420 33.547199999999997 36.315908630490298 0.000000000000000 - 694 2 -0.420 34.246099999999998 37.526438918173312 0.000000000000000 - 695 1 0.420 35.643899999999995 37.526438918173312 0.000000000000000 - 696 2 -0.420 36.342799999999997 36.315908630490298 0.000000000000000 - 697 1 0.420 37.740600000000001 36.315908630490298 0.000000000000000 - 698 2 -0.420 38.439499999999995 37.526438918173312 0.000000000000000 - 699 1 0.420 39.837299999999999 37.526438918173312 0.000000000000000 - 700 2 -0.420 40.536200000000001 36.315908630490298 0.000000000000000 - 701 1 0.420 41.933999999999997 36.315908630490298 0.000000000000000 - 702 2 -0.420 42.632899999999999 37.526438918173312 0.000000000000000 - 703 1 0.420 44.030699999999996 37.526438918173312 0.000000000000000 - 704 2 -0.420 44.729599999999998 36.315908630490298 0.000000000000000 - 705 1 0.420 0.000000000000000 38.736969205856319 0.000000000000000 - 706 2 -0.420 0.698900000000000 39.947499493539325 0.000000000000000 - 707 1 0.420 2.096700000000000 39.947499493539325 0.000000000000000 - 708 2 -0.420 2.795600000000000 38.736969205856319 0.000000000000000 - 709 1 0.420 4.193400000000000 38.736969205856319 0.000000000000000 - 710 2 -0.420 4.892300000000000 39.947499493539325 0.000000000000000 - 711 1 0.420 6.290100000000000 39.947499493539325 0.000000000000000 - 712 2 -0.420 6.989000000000000 38.736969205856319 0.000000000000000 - 713 1 0.420 8.386799999999999 38.736969205856319 0.000000000000000 - 714 2 -0.420 9.085699999999999 39.947499493539325 0.000000000000000 - 715 1 0.420 10.483499999999999 39.947499493539325 0.000000000000000 - 716 2 -0.420 11.182399999999999 38.736969205856319 0.000000000000000 - 717 1 0.420 12.580200000000000 38.736969205856319 0.000000000000000 - 718 2 -0.420 13.279100000000000 39.947499493539325 0.000000000000000 - 719 1 0.420 14.676900000000000 39.947499493539325 0.000000000000000 - 720 2 -0.420 15.375800000000000 38.736969205856319 0.000000000000000 - 721 1 0.420 16.773599999999998 38.736969205856319 0.000000000000000 - 722 2 -0.420 17.472500000000000 39.947499493539325 0.000000000000000 - 723 1 0.420 18.870300000000000 39.947499493539325 0.000000000000000 - 724 2 -0.420 19.569199999999999 38.736969205856319 0.000000000000000 - 725 1 0.420 20.966999999999999 38.736969205856319 0.000000000000000 - 726 2 -0.420 21.665900000000001 39.947499493539325 0.000000000000000 - 727 1 0.420 23.063699999999997 39.947499493539325 0.000000000000000 - 728 2 -0.420 23.762599999999999 38.736969205856319 0.000000000000000 - 729 1 0.420 25.160399999999999 38.736969205856319 0.000000000000000 - 730 2 -0.420 25.859299999999998 39.947499493539325 0.000000000000000 - 731 1 0.420 27.257099999999998 39.947499493539325 0.000000000000000 - 732 2 -0.420 27.956000000000000 38.736969205856319 0.000000000000000 - 733 1 0.420 29.353800000000000 38.736969205856319 0.000000000000000 - 734 2 -0.420 30.052699999999998 39.947499493539325 0.000000000000000 - 735 1 0.420 31.450499999999998 39.947499493539325 0.000000000000000 - 736 2 -0.420 32.149400000000000 38.736969205856319 0.000000000000000 - 737 1 0.420 33.547199999999997 38.736969205856319 0.000000000000000 - 738 2 -0.420 34.246099999999998 39.947499493539325 0.000000000000000 - 739 1 0.420 35.643899999999995 39.947499493539325 0.000000000000000 - 740 2 -0.420 36.342799999999997 38.736969205856319 0.000000000000000 - 741 1 0.420 37.740600000000001 38.736969205856319 0.000000000000000 - 742 2 -0.420 38.439499999999995 39.947499493539325 0.000000000000000 - 743 1 0.420 39.837299999999999 39.947499493539325 0.000000000000000 - 744 2 -0.420 40.536200000000001 38.736969205856319 0.000000000000000 - 745 1 0.420 41.933999999999997 38.736969205856319 0.000000000000000 - 746 2 -0.420 42.632899999999999 39.947499493539325 0.000000000000000 - 747 1 0.420 44.030699999999996 39.947499493539325 0.000000000000000 - 748 2 -0.420 44.729599999999998 38.736969205856319 0.000000000000000 - 749 1 0.420 0.000000000000000 41.158029781222339 0.000000000000000 - 750 2 -0.420 0.698900000000000 42.368560068905346 0.000000000000000 - 751 1 0.420 2.096700000000000 42.368560068905346 0.000000000000000 - 752 2 -0.420 2.795600000000000 41.158029781222339 0.000000000000000 - 753 1 0.420 4.193400000000000 41.158029781222339 0.000000000000000 - 754 2 -0.420 4.892300000000000 42.368560068905346 0.000000000000000 - 755 1 0.420 6.290100000000000 42.368560068905346 0.000000000000000 - 756 2 -0.420 6.989000000000000 41.158029781222339 0.000000000000000 - 757 1 0.420 8.386799999999999 41.158029781222339 0.000000000000000 - 758 2 -0.420 9.085699999999999 42.368560068905346 0.000000000000000 - 759 1 0.420 10.483499999999999 42.368560068905346 0.000000000000000 - 760 2 -0.420 11.182399999999999 41.158029781222339 0.000000000000000 - 761 1 0.420 12.580200000000000 41.158029781222339 0.000000000000000 - 762 2 -0.420 13.279100000000000 42.368560068905346 0.000000000000000 - 763 1 0.420 14.676900000000000 42.368560068905346 0.000000000000000 - 764 2 -0.420 15.375800000000000 41.158029781222339 0.000000000000000 - 765 1 0.420 16.773599999999998 41.158029781222339 0.000000000000000 - 766 2 -0.420 17.472500000000000 42.368560068905346 0.000000000000000 - 767 1 0.420 18.870300000000000 42.368560068905346 0.000000000000000 - 768 2 -0.420 19.569199999999999 41.158029781222339 0.000000000000000 - 769 1 0.420 20.966999999999999 41.158029781222339 0.000000000000000 - 770 2 -0.420 21.665900000000001 42.368560068905346 0.000000000000000 - 771 1 0.420 23.063699999999997 42.368560068905346 0.000000000000000 - 772 2 -0.420 23.762599999999999 41.158029781222339 0.000000000000000 - 773 1 0.420 25.160399999999999 41.158029781222339 0.000000000000000 - 774 2 -0.420 25.859299999999998 42.368560068905346 0.000000000000000 - 775 1 0.420 27.257099999999998 42.368560068905346 0.000000000000000 - 776 2 -0.420 27.956000000000000 41.158029781222339 0.000000000000000 - 777 1 0.420 29.353800000000000 41.158029781222339 0.000000000000000 - 778 2 -0.420 30.052699999999998 42.368560068905346 0.000000000000000 - 779 1 0.420 31.450499999999998 42.368560068905346 0.000000000000000 - 780 2 -0.420 32.149400000000000 41.158029781222339 0.000000000000000 - 781 1 0.420 33.547199999999997 41.158029781222339 0.000000000000000 - 782 2 -0.420 34.246099999999998 42.368560068905346 0.000000000000000 - 783 1 0.420 35.643899999999995 42.368560068905346 0.000000000000000 - 784 2 -0.420 36.342799999999997 41.158029781222339 0.000000000000000 - 785 1 0.420 37.740600000000001 41.158029781222339 0.000000000000000 - 786 2 -0.420 38.439499999999995 42.368560068905346 0.000000000000000 - 787 1 0.420 39.837299999999999 42.368560068905346 0.000000000000000 - 788 2 -0.420 40.536200000000001 41.158029781222339 0.000000000000000 - 789 1 0.420 41.933999999999997 41.158029781222339 0.000000000000000 - 790 2 -0.420 42.632899999999999 42.368560068905346 0.000000000000000 - 791 1 0.420 44.030699999999996 42.368560068905346 0.000000000000000 - 792 2 -0.420 44.729599999999998 41.158029781222339 0.000000000000000 - 793 1 0.420 0.000000000000000 43.579090356588360 0.000000000000000 - 794 2 -0.420 0.698900000000000 44.789620644271366 0.000000000000000 - 795 1 0.420 2.096700000000000 44.789620644271366 0.000000000000000 - 796 2 -0.420 2.795600000000000 43.579090356588360 0.000000000000000 - 797 1 0.420 4.193400000000000 43.579090356588360 0.000000000000000 - 798 2 -0.420 4.892300000000000 44.789620644271366 0.000000000000000 - 799 1 0.420 6.290100000000000 44.789620644271366 0.000000000000000 - 800 2 -0.420 6.989000000000000 43.579090356588360 0.000000000000000 - 801 1 0.420 8.386799999999999 43.579090356588360 0.000000000000000 - 802 2 -0.420 9.085699999999999 44.789620644271366 0.000000000000000 - 803 1 0.420 10.483499999999999 44.789620644271366 0.000000000000000 - 804 2 -0.420 11.182399999999999 43.579090356588360 0.000000000000000 - 805 1 0.420 12.580200000000000 43.579090356588360 0.000000000000000 - 806 2 -0.420 13.279100000000000 44.789620644271366 0.000000000000000 - 807 1 0.420 14.676900000000000 44.789620644271366 0.000000000000000 - 808 2 -0.420 15.375800000000000 43.579090356588360 0.000000000000000 - 809 1 0.420 16.773599999999998 43.579090356588360 0.000000000000000 - 810 2 -0.420 17.472500000000000 44.789620644271366 0.000000000000000 - 811 1 0.420 18.870300000000000 44.789620644271366 0.000000000000000 - 812 2 -0.420 19.569199999999999 43.579090356588360 0.000000000000000 - 813 1 0.420 20.966999999999999 43.579090356588360 0.000000000000000 - 814 2 -0.420 21.665900000000001 44.789620644271366 0.000000000000000 - 815 1 0.420 23.063699999999997 44.789620644271366 0.000000000000000 - 816 2 -0.420 23.762599999999999 43.579090356588360 0.000000000000000 - 817 1 0.420 25.160399999999999 43.579090356588360 0.000000000000000 - 818 2 -0.420 25.859299999999998 44.789620644271366 0.000000000000000 - 819 1 0.420 27.257099999999998 44.789620644271366 0.000000000000000 - 820 2 -0.420 27.956000000000000 43.579090356588360 0.000000000000000 - 821 1 0.420 29.353800000000000 43.579090356588360 0.000000000000000 - 822 2 -0.420 30.052699999999998 44.789620644271366 0.000000000000000 - 823 1 0.420 31.450499999999998 44.789620644271366 0.000000000000000 - 824 2 -0.420 32.149400000000000 43.579090356588360 0.000000000000000 - 825 1 0.420 33.547199999999997 43.579090356588360 0.000000000000000 - 826 2 -0.420 34.246099999999998 44.789620644271366 0.000000000000000 - 827 1 0.420 35.643899999999995 44.789620644271366 0.000000000000000 - 828 2 -0.420 36.342799999999997 43.579090356588360 0.000000000000000 - 829 1 0.420 37.740600000000001 43.579090356588360 0.000000000000000 - 830 2 -0.420 38.439499999999995 44.789620644271366 0.000000000000000 - 831 1 0.420 39.837299999999999 44.789620644271366 0.000000000000000 - 832 2 -0.420 40.536200000000001 43.579090356588360 0.000000000000000 - 833 1 0.420 41.933999999999997 43.579090356588360 0.000000000000000 - 834 2 -0.420 42.632899999999999 44.789620644271366 0.000000000000000 - 835 1 0.420 44.030699999999996 44.789620644271366 0.000000000000000 - 836 2 -0.420 44.729599999999998 43.579090356588360 0.000000000000000 - 837 1 0.420 0.000000000000000 46.000150931954380 0.000000000000000 - 838 2 -0.420 0.698900000000000 47.210681219637387 0.000000000000000 - 839 1 0.420 2.096700000000000 47.210681219637387 0.000000000000000 - 840 2 -0.420 2.795600000000000 46.000150931954380 0.000000000000000 - 841 1 0.420 4.193400000000000 46.000150931954380 0.000000000000000 - 842 2 -0.420 4.892300000000000 47.210681219637387 0.000000000000000 - 843 1 0.420 6.290100000000000 47.210681219637387 0.000000000000000 - 844 2 -0.420 6.989000000000000 46.000150931954380 0.000000000000000 - 845 1 0.420 8.386799999999999 46.000150931954380 0.000000000000000 - 846 2 -0.420 9.085699999999999 47.210681219637387 0.000000000000000 - 847 1 0.420 10.483499999999999 47.210681219637387 0.000000000000000 - 848 2 -0.420 11.182399999999999 46.000150931954380 0.000000000000000 - 849 1 0.420 12.580200000000000 46.000150931954380 0.000000000000000 - 850 2 -0.420 13.279100000000000 47.210681219637387 0.000000000000000 - 851 1 0.420 14.676900000000000 47.210681219637387 0.000000000000000 - 852 2 -0.420 15.375800000000000 46.000150931954380 0.000000000000000 - 853 1 0.420 16.773599999999998 46.000150931954380 0.000000000000000 - 854 2 -0.420 17.472500000000000 47.210681219637387 0.000000000000000 - 855 1 0.420 18.870300000000000 47.210681219637387 0.000000000000000 - 856 2 -0.420 19.569199999999999 46.000150931954380 0.000000000000000 - 857 1 0.420 20.966999999999999 46.000150931954380 0.000000000000000 - 858 2 -0.420 21.665900000000001 47.210681219637387 0.000000000000000 - 859 1 0.420 23.063699999999997 47.210681219637387 0.000000000000000 - 860 2 -0.420 23.762599999999999 46.000150931954380 0.000000000000000 - 861 1 0.420 25.160399999999999 46.000150931954380 0.000000000000000 - 862 2 -0.420 25.859299999999998 47.210681219637387 0.000000000000000 - 863 1 0.420 27.257099999999998 47.210681219637387 0.000000000000000 - 864 2 -0.420 27.956000000000000 46.000150931954380 0.000000000000000 - 865 1 0.420 29.353800000000000 46.000150931954380 0.000000000000000 - 866 2 -0.420 30.052699999999998 47.210681219637387 0.000000000000000 - 867 1 0.420 31.450499999999998 47.210681219637387 0.000000000000000 - 868 2 -0.420 32.149400000000000 46.000150931954380 0.000000000000000 - 869 1 0.420 33.547199999999997 46.000150931954380 0.000000000000000 - 870 2 -0.420 34.246099999999998 47.210681219637387 0.000000000000000 - 871 1 0.420 35.643899999999995 47.210681219637387 0.000000000000000 - 872 2 -0.420 36.342799999999997 46.000150931954380 0.000000000000000 - 873 1 0.420 37.740600000000001 46.000150931954380 0.000000000000000 - 874 2 -0.420 38.439499999999995 47.210681219637387 0.000000000000000 - 875 1 0.420 39.837299999999999 47.210681219637387 0.000000000000000 - 876 2 -0.420 40.536200000000001 46.000150931954380 0.000000000000000 - 877 1 0.420 41.933999999999997 46.000150931954380 0.000000000000000 - 878 2 -0.420 42.632899999999999 47.210681219637387 0.000000000000000 - 879 1 0.420 44.030699999999996 47.210681219637387 0.000000000000000 - 880 2 -0.420 44.729599999999998 46.000150931954380 0.000000000000000 diff --git a/examples/hugoniostat/in.hugoniostat b/examples/hugoniostat/in.hugoniostat index 571f92b59e..8a36212f53 100644 --- a/examples/hugoniostat/in.hugoniostat +++ b/examples/hugoniostat/in.hugoniostat @@ -1,16 +1,16 @@ # This script reproduces stress trajectories from Fig. 1 in # Ravelo, Holian, Germann, and Lomdahl, PRB 70 014103 (2004) # -# Three thermostatting scenarios are visited: undamped (nodrag), +# Three thermostatting scenarios are visited: undamped (nodrag), # damped (drag) and Nose-Hoover chain (nhchains). # # The axial and shear stress trajectories are printed to the # file "stress_vs_t.dat". For the damped case, the original figure # seems to be a plot of 2*tau, rather than tau. # -# The script also demonstrates how to +# The script also demonstrates how to # orient a crystal along <110>, -# and how to use the lj/cubic pair style. +# and how to use the lj/cubic pair style. units lj boundary p p p @@ -39,7 +39,7 @@ pair_coeff * * 1.0 0.8908987 fix 3 all box/relax aniso 0.0 vmax 1.0e-4 nreset 100 thermo 100 -thermo_style custom step temp pe etotal pxx pyy pzz lx ly lz +thermo_style custom step temp pe etotal pxx pyy pzz lx ly lz min_modify line quadratic minimize 0.0 1.0e-6 10000 100000 @@ -61,16 +61,12 @@ reset_timestep 0 # Pzz = 40.0, drag/damping term off -fix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0 drag 0.0 tchain 1 pchain 0 +fix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0 drag 0.0 tchain 1 pchain 0 # Specify reference state from paper, times 1000 atoms fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 -# Add fix energy to output etotal - -fix_modify myhug energy yes - # Define output variable dele equal f_myhug[1] # energy delta [temperature] @@ -81,7 +77,7 @@ variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress variable time equal dt*step thermo 1000 -thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up +thermo_style custom step temp ke epair econserve pzz v_tau lz f_myhug v_dele v_us v_up fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (no drag)' @@ -109,16 +105,12 @@ reset_timestep 0 # Pzz = 40.0, drag/damping term on -fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0 +fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0 # Specify reference state from paper, times 1000 atoms fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 -# Add fix energy to output etotal - -fix_modify myhug energy yes - # Define output variable dele equal f_myhug[1] # energy delta [temperature] @@ -129,7 +121,7 @@ variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress variable time equal dt*step thermo 1000 -thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up +thermo_style custom step temp ke epair econserve pzz v_tau lz f_myhug v_dele v_us v_up fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (with drag)' @@ -153,10 +145,6 @@ fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 -# Add fix energy to output etotal - -fix_modify myhug energy yes - # Define output variable dele equal f_myhug[1] # energy delta [temperature] @@ -167,7 +155,7 @@ variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress variable time equal dt*step thermo 1000 -thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up +thermo_style custom step temp ke epair econserve pzz v_tau lz f_myhug v_dele v_us v_up fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (Nose-Hoover chain)' diff --git a/examples/hugoniostat/log.08Feb21.hugoniostat.g++.1 b/examples/hugoniostat/log.08Feb21.hugoniostat.g++.1 new file mode 100644 index 0000000000..5641c14048 --- /dev/null +++ b/examples/hugoniostat/log.08Feb21.hugoniostat.g++.1 @@ -0,0 +1,399 @@ +LAMMPS (24 Dec 2020) + using 1 OpenMP thread(s) per MPI task +# This script reproduces stress trajectories from Fig. 1 in +# Ravelo, Holian, Germann, and Lomdahl, PRB 70 014103 (2004) +# +# Three thermostatting scenarios are visited: undamped (nodrag), +# damped (drag) and Nose-Hoover chain (nhchains). +# +# The axial and shear stress trajectories are printed to the +# file "stress_vs_t.dat". For the damped case, the original figure +# seems to be a plot of 2*tau, rather than tau. +# +# The script also demonstrates how to +# orient a crystal along <110>, +# and how to use the lj/cubic pair style. + +units lj +boundary p p p + +atom_style atomic + +# Set up FCC lattice with z axis along <110> + +lattice fcc 1.4142136 orient x 0 0 1 orient y 1 -1 0 orient z 1 1 0 +Lattice spacing in x,y,z = 1.4142135 2.0000000 2.0000000 + +region mycell block 0.0 5.0 0.0 5.0 0.0 5.0 units lattice +create_box 1 mycell +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.0710677 9.9999999 9.9999999) + 1 by 1 by 1 MPI processor grid +mass * 1.0 +create_atoms 1 box +Created 1000 atoms + create_atoms CPU = 0.001 seconds + +# Using units of Rmin, so sigma = 2^-1/6 = 0.8908987 + +pair_style lj/cubic +pair_coeff * * 1.0 0.8908987 + +# Relax box dimensions + +fix 3 all box/relax aniso 0.0 vmax 1.0e-4 nreset 100 + +thermo 100 +thermo_style custom step temp pe etotal pxx pyy pzz lx ly lz + +min_modify line quadratic +minimize 0.0 1.0e-6 10000 100000 +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (src/min.cpp:188) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.8475372 + ghost atom cutoff = 1.8475372 + binsize = 0.92376862, bins = 8 11 11 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cubic, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.247 | 4.247 | 4.247 Mbytes +Step Temp PotEng TotEng Pxx Pyy Pzz Lx Ly Lz + 0 0 -6.2937536 -6.2937536 -2.7722424 -2.7722424 -2.7722424 7.0710677 9.9999999 9.9999999 + 100 0 -6.3319014 -6.3319014 -0.75971257 -0.75971257 -0.75971257 7.0003571 9.8999999 9.8999999 + 134 0 -6.3344253 -6.3344253 -4.3330648e-13 -4.7530261e-13 -4.7130069e-13 6.9780267 9.8684199 9.8684199 +Loop time of 0.200013 on 1 procs for 134 steps with 1000 atoms + +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +Minimization stats: + Stopping criterion = force tolerance + Energy initial, next-to-last, final = + -6.29375358358557 -6.33442531515503 -6.33442531515503 + Force two-norm initial, final = 3395.2895 5.5740327e-10 + Force max component initial, final = 1960.2713 3.2730334e-10 + Final line search alpha, max atom move = 1.0000000 3.2730334e-10 + Iterations, force evaluations = 134 137 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.14357 | 0.14357 | 0.14357 | 0.0 | 71.78 +Neigh | 0.0017562 | 0.0017562 | 0.0017562 | 0.0 | 0.88 +Comm | 0.0049057 | 0.0049057 | 0.0049057 | 0.0 | 2.45 +Output | 5.126e-05 | 5.126e-05 | 5.126e-05 | 0.0 | 0.03 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 0.04973 | | | 24.86 + +Nlocal: 1000.00 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1724.00 ave 1724 max 1724 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 21000.0 ave 21000 max 21000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 21000 +Ave neighs/atom = 21.000000 +Neighbor list builds = 1 +Dangerous builds = 0 + +# Define initial velocity + +velocity all create 0.01 87287 mom yes rot yes dist gaussian +write_restart restart.equil +System init for write_restart ... + +# Start Run #1 + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.046520549 0.065789991 0.065789991) to (7.0245472 9.9342099 9.9342099) + 1 by 1 by 1 MPI processor grid + restoring pair style lj/cubic from restart + 1000 atoms + read_restart CPU = 0.001 seconds + +neighbor 0.2 bin +neigh_modify every 1 delay 0 check yes +timestep 0.001 +reset_timestep 0 + +# Pzz = 40.0, drag/damping term off + +fix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0 drag 0.0 tchain 1 pchain 0 + +# Specify reference state from paper, times 1000 atoms + +fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 + +# Define output + +variable dele equal f_myhug[1] # energy delta [temperature] +variable us equal f_myhug[2] # shock velocity [distance/time] +variable up equal f_myhug[3] # particle velocity [distance/time] +variable pzz equal pzz # axial stress +variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress +variable time equal dt*step + +thermo 1000 +thermo_style custom step temp ke epair econserve pzz v_tau lz f_myhug v_dele v_us v_up + +fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (no drag)' + +#dump id all atom 500 dump.hugoniostat + +#dump 2 all image 500 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 5 + +#dump 3 all movie 500 movie.mpg type type # axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 5 + +run 10000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.7475372 + ghost atom cutoff = 1.7475372 + binsize = 0.87376862, bins = 8 12 12 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cubic, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.124 | 3.124 | 3.124 Mbytes +Step Temp KinEng E_pair Econserve Pzz v_tau Lz f_myhug v_dele v_us v_up + 0 0.01 0.014985 -6.3344253 -6.3194403 0.014381062 -0.00023971829 9.8684199 0 -0.004855267 2.3814248 0.0041108563 + 1000 0.0093381492 0.013993217 -2.1704431 -4183.8284 129.15284 58.544409 8.3142517 -4.1816719 0.93744212 23.519052 3.7381985 + 2000 0.24794859 0.37155095 -5.8915826 -528.38691 8.3849811 1.3744297 9.5938806 -0.52286688 -0.24350394 13.910493 0.41033425 + 3000 0.3892042 0.5832225 -3.7686896 -3442.3257 72.742382 28.486576 8.6238082 -3.4391402 0.0038227739 19.697354 2.5139569 + 4000 0.67010303 1.0041494 -4.2080956 -2935.8105 35.596234 3.9346859 8.7508489 -2.9326065 -0.58038927 14.529876 1.6677093 + 5000 0.41845028 0.62704774 -4.8392822 -1894.6664 30.624319 4.6370699 8.7827304 -1.8904542 -0.31998377 13.670423 1.5249748 + 6000 0.22409652 0.33580864 -3.7653422 -2666.4156 50.804071 7.220865 8.25496 -2.6629861 -0.017448126 14.48017 2.3883779 + 7000 0.094832866 0.14210705 -4.5432169 -2337.0271 35.853414 3.4750842 8.4475655 -2.332626 -0.052659776 12.95347 1.8841809 + 8000 0.043338745 0.06494311 -4.6249403 -1687.4892 39.679004 6.7256868 8.4321684 -1.6829292 0.070571417 13.554654 1.9927395 + 9000 0.018233343 0.027322664 -4.425909 -1916.4941 41.680023 5.9079935 8.3470382 -1.9120955 0.090887676 13.502397 2.1013348 + 10000 0.0082616415 0.01238007 -4.6221264 -1723.6542 39.842157 6.5678795 8.41093 -1.7190444 0.099616538 13.484322 2.0113699 +Loop time of 15.2001 on 1 procs for 10000 steps with 1000 atoms + +Performance: 56841.813 tau/day, 657.891 timesteps/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 11.69 | 11.69 | 11.69 | 0.0 | 76.91 +Neigh | 0.34087 | 0.34087 | 0.34087 | 0.0 | 2.24 +Comm | 0.41211 | 0.41211 | 0.41211 | 0.0 | 2.71 +Output | 0.001153 | 0.001153 | 0.001153 | 0.0 | 0.01 +Modify | 2.6404 | 2.6404 | 2.6404 | 0.0 | 17.37 +Other | | 0.1158 | | | 0.76 + +Nlocal: 1000.00 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1886.00 ave 1886 max 1886 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 20874.0 ave 20874 max 20874 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 20874 +Ave neighs/atom = 20.874000 +Neighbor list builds = 188 +Dangerous builds = 0 + +# Start Run #2 + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.046520549 0.065789991 0.065789991) to (7.0245472 9.9342099 9.9342099) + 1 by 1 by 1 MPI processor grid + restoring pair style lj/cubic from restart + 1000 atoms + read_restart CPU = 0.001 seconds + +neighbor 0.2 bin +neigh_modify every 1 delay 0 check yes +timestep 0.001 +reset_timestep 0 + +# Pzz = 40.0, drag/damping term on + +fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0 + +# Specify reference state from paper, times 1000 atoms + +fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 + +# Define output + +variable dele equal f_myhug[1] # energy delta [temperature] +variable us equal f_myhug[2] # shock velocity [distance/time] +variable up equal f_myhug[3] # particle velocity [distance/time] +variable pzz equal pzz # axial stress +variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress +variable time equal dt*step + +thermo 1000 +thermo_style custom step temp ke epair econserve pzz v_tau lz f_myhug v_dele v_us v_up + +fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (with drag)' + +run 10000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.7475372 + ghost atom cutoff = 1.7475372 + binsize = 0.87376862, bins = 8 12 12 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cubic, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.124 | 3.124 | 3.124 Mbytes +Step Temp KinEng E_pair Econserve Pzz v_tau Lz f_myhug v_dele v_us v_up + 0 0.01 0.014985 -6.3344253 -6.3194403 0.014381062 -0.00023971829 9.8684199 0 -0.004855267 2.3814248 0.0041108563 + 1000 0.0062572988 0.0093765623 -5.989087 -1670.9191 18.918118 7.5844401 9.2338165 -1.6649394 0.023419337 13.976997 0.92138738 + 2000 0.0068451081 0.010257394 -5.456581 -2537.81 37.064253 15.537266 8.9496405 -2.5323637 0.10230605 16.325406 1.5455016 + 3000 0.0073276099 0.010980423 -5.3663421 -2643.8751 39.907292 16.807489 8.9154852 -2.6385198 0.11818116 16.63905 1.6326832 + 4000 0.0069296906 0.010384141 -5.36234 -2655.7228 40.010742 16.851482 8.9144328 -2.6503709 0.11868137 16.651571 1.6356847 + 5000 0.0076142461 0.011409948 -5.3631443 -2664.4499 39.997648 16.846756 8.9145416 -2.6590982 0.1184114 16.649779 1.6353254 + 6000 0.0077053831 0.011546517 -5.3628538 -2673.2444 39.991598 16.840314 8.9145803 -2.667893 0.11818361 16.648852 1.6351691 + 7000 0.0077405663 0.011599239 -5.3623531 -2682.1589 40.000448 16.844009 8.9145774 -2.6768081 0.11809899 16.650669 1.6353525 + 8000 0.0080673569 0.012088934 -5.3623755 -2691.0104 39.995327 16.840134 8.9146099 -2.6856601 0.11787103 16.649882 1.6352204 + 9000 0.0083223083 0.012470979 -5.3622988 -2699.8929 40.00571 16.847764 8.9146503 -2.6945431 0.11781523 16.652389 1.6353987 + 10000 0.0091249116 0.01367368 -5.3630138 -2708.966 39.987197 16.837314 8.9146848 -2.7036167 0.11743014 16.648832 1.6349911 +Loop time of 13.6753 on 1 procs for 10000 steps with 1000 atoms + +Performance: 63179.754 tau/day, 731.247 timesteps/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 10.568 | 10.568 | 10.568 | 0.0 | 77.28 +Neigh | 0.019792 | 0.019792 | 0.019792 | 0.0 | 0.14 +Comm | 0.33708 | 0.33708 | 0.33708 | 0.0 | 2.46 +Output | 0.0011928 | 0.0011928 | 0.0011928 | 0.0 | 0.01 +Modify | 2.639 | 2.639 | 2.639 | 0.0 | 19.30 +Other | | 0.1101 | | | 0.81 + +Nlocal: 1000.00 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1724.00 ave 1724 max 1724 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 21000.0 ave 21000 max 21000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 21000 +Ave neighs/atom = 21.000000 +Neighbor list builds = 11 +Dangerous builds = 0 + +# Start Run #3 + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.046520549 0.065789991 0.065789991) to (7.0245472 9.9342099 9.9342099) + 1 by 1 by 1 MPI processor grid + restoring pair style lj/cubic from restart + 1000 atoms + read_restart CPU = 0.001 seconds + +neighbor 0.2 bin +neigh_modify every 1 delay 0 check yes +timestep 0.001 +reset_timestep 0 + +# Pzz = 40.0, drag/damping term off, Nose-Hoover chains + +fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 + +# Specify reference state from paper, times 1000 atoms + +fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 + +# Define output + +variable dele equal f_myhug[1] # energy delta [temperature] +variable us equal f_myhug[2] # shock velocity [distance/time] +variable up equal f_myhug[3] # particle velocity [distance/time] +variable pzz equal pzz # axial stress +variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress +variable time equal dt*step + +thermo 1000 +thermo_style custom step temp ke epair econserve pzz v_tau lz f_myhug v_dele v_us v_up + +fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (Nose-Hoover chain)' + +run 10000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.7475372 + ghost atom cutoff = 1.7475372 + binsize = 0.87376862, bins = 8 12 12 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cubic, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.124 | 3.124 | 3.124 Mbytes +Step Temp KinEng E_pair Econserve Pzz v_tau Lz f_myhug v_dele v_us v_up + 0 0.01 0.014985 -6.3344253 -6.3194403 0.014381062 -0.00023971829 9.8684199 0 -0.004855267 2.3814248 0.0041108563 + 1000 0.0083300318 0.012482553 -5.5023183 -838.99233 35.610078 14.886668 8.9677982 -0.83350249 0.093761717 16.159482 1.500112 + 2000 0.020386436 0.030549075 -5.294934 -1021.4347 41.760404 17.563313 8.8960328 -1.0161703 0.1178086 16.852842 1.6868239 + 3000 0.049693082 0.074465084 -5.3469418 -982.1922 39.030412 16.123502 8.9325589 -0.97691972 0.073097533 16.601991 1.6003728 + 4000 0.11859524 0.17771497 -5.207074 -1299.948 40.941639 16.507821 8.9213137 -1.2949186 0.018189971 16.904165 1.6487306 + 5000 0.130146 0.19502378 -5.261025 -1208.3405 39.059595 15.609328 8.9431689 -1.2032745 -0.00023811036 16.701434 1.5920334 + 6000 0.13812959 0.20698719 -5.1710048 -1334.1421 40.904888 16.242199 8.9222846 -1.329178 -0.0044756362 16.90509 1.6471606 + 7000 0.12107441 0.18143001 -5.2602562 -1170.0585 39.060849 15.577606 8.9397535 -1.1649797 0.005587398 16.671517 1.5949415 + 8000 0.14333426 0.21478639 -5.1717109 -1352.635 40.876285 16.205871 8.9218128 -1.3476781 -0.0069373292 16.895041 1.6469877 + 9000 0.12159783 0.18221435 -5.2591928 -1186.8604 39.22852 15.6778 8.9376658 -1.1817834 0.0077335044 16.68885 1.6001243 + 10000 0.15321647 0.22959488 -5.188176 -1391.2245 40.666599 16.146259 8.9228489 -1.3862659 -0.0091900905 16.860718 1.6418747 +Loop time of 13.963 on 1 procs for 10000 steps with 1000 atoms + +Performance: 61877.846 tau/day, 716.179 timesteps/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 10.667 | 10.667 | 10.667 | 0.0 | 76.40 +Neigh | 0.16763 | 0.16763 | 0.16763 | 0.0 | 1.20 +Comm | 0.36182 | 0.36182 | 0.36182 | 0.0 | 2.59 +Output | 0.0011809 | 0.0011809 | 0.0011809 | 0.0 | 0.01 +Modify | 2.6516 | 2.6516 | 2.6516 | 0.0 | 18.99 +Other | | 0.1135 | | | 0.81 + +Nlocal: 1000.00 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1724.00 ave 1724 max 1724 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 20654.0 ave 20654 max 20654 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 20654 +Ave neighs/atom = 20.654000 +Neighbor list builds = 94 +Dangerous builds = 0 + +Total wall time: 0:00:43 diff --git a/examples/hugoniostat/log.08Feb21.hugoniostat.g++.4 b/examples/hugoniostat/log.08Feb21.hugoniostat.g++.4 new file mode 100644 index 0000000000..529407ae2b --- /dev/null +++ b/examples/hugoniostat/log.08Feb21.hugoniostat.g++.4 @@ -0,0 +1,399 @@ +LAMMPS (24 Dec 2020) + using 1 OpenMP thread(s) per MPI task +# This script reproduces stress trajectories from Fig. 1 in +# Ravelo, Holian, Germann, and Lomdahl, PRB 70 014103 (2004) +# +# Three thermostatting scenarios are visited: undamped (nodrag), +# damped (drag) and Nose-Hoover chain (nhchains). +# +# The axial and shear stress trajectories are printed to the +# file "stress_vs_t.dat". For the damped case, the original figure +# seems to be a plot of 2*tau, rather than tau. +# +# The script also demonstrates how to +# orient a crystal along <110>, +# and how to use the lj/cubic pair style. + +units lj +boundary p p p + +atom_style atomic + +# Set up FCC lattice with z axis along <110> + +lattice fcc 1.4142136 orient x 0 0 1 orient y 1 -1 0 orient z 1 1 0 +Lattice spacing in x,y,z = 1.4142135 2.0000000 2.0000000 + +region mycell block 0.0 5.0 0.0 5.0 0.0 5.0 units lattice +create_box 1 mycell +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.0710677 9.9999999 9.9999999) + 1 by 2 by 2 MPI processor grid +mass * 1.0 +create_atoms 1 box +Created 1000 atoms + create_atoms CPU = 0.105 seconds + +# Using units of Rmin, so sigma = 2^-1/6 = 0.8908987 + +pair_style lj/cubic +pair_coeff * * 1.0 0.8908987 + +# Relax box dimensions + +fix 3 all box/relax aniso 0.0 vmax 1.0e-4 nreset 100 + +thermo 100 +thermo_style custom step temp pe etotal pxx pyy pzz lx ly lz + +min_modify line quadratic +minimize 0.0 1.0e-6 10000 100000 +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (src/min.cpp:188) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.8475372 + ghost atom cutoff = 1.8475372 + binsize = 0.92376862, bins = 8 11 11 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cubic, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.211 | 4.211 | 4.211 Mbytes +Step Temp PotEng TotEng Pxx Pyy Pzz Lx Ly Lz + 0 0 -6.2937536 -6.2937536 -2.7722424 -2.7722424 -2.7722424 7.0710677 9.9999999 9.9999999 + 100 0 -6.3319014 -6.3319014 -0.75971257 -0.75971257 -0.75971257 7.0003571 9.8999999 9.8999999 + 134 0 -6.3344253 -6.3344253 -4.303004e-13 -4.72443e-13 -4.7038971e-13 6.9780267 9.8684199 9.8684199 +Loop time of 0.38554 on 4 procs for 134 steps with 1000 atoms + +75.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +Minimization stats: + Stopping criterion = force tolerance + Energy initial, next-to-last, final = + -6.29375358358589 -6.33442531515435 -6.33442531515435 + Force two-norm initial, final = 3395.2895 5.5617370e-10 + Force max component initial, final = 1960.2713 3.2533415e-10 + Final line search alpha, max atom move = 1.0000000 3.2533415e-10 + Iterations, force evaluations = 134 137 + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.031873 | 0.042436 | 0.055233 | 4.3 | 11.01 +Neigh | 0.0004189 | 0.00049466 | 0.00058317 | 0.0 | 0.13 +Comm | 0.085755 | 0.095315 | 0.10484 | 2.7 | 24.72 +Output | 2.8372e-05 | 3.0637e-05 | 3.6955e-05 | 0.0 | 0.01 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 0.2473 | | | 64.13 + +Nlocal: 250.000 ave 305 max 205 min +Histogram: 1 0 0 0 2 0 0 0 0 1 +Nghost: 829.000 ave 874 max 774 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Neighs: 5250.00 ave 6445 max 4305 min +Histogram: 1 0 0 2 0 0 0 0 0 1 + +Total # of neighbors = 21000 +Ave neighs/atom = 21.000000 +Neighbor list builds = 1 +Dangerous builds = 0 + +# Define initial velocity + +velocity all create 0.01 87287 mom yes rot yes dist gaussian +write_restart restart.equil +System init for write_restart ... + +# Start Run #1 + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.046520549 0.065789991 0.065789991) to (7.0245472 9.9342099 9.9342099) + 1 by 2 by 2 MPI processor grid + restoring pair style lj/cubic from restart + 1000 atoms + read_restart CPU = 0.006 seconds + +neighbor 0.2 bin +neigh_modify every 1 delay 0 check yes +timestep 0.001 +reset_timestep 0 + +# Pzz = 40.0, drag/damping term off + +fix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0 drag 0.0 tchain 1 pchain 0 + +# Specify reference state from paper, times 1000 atoms + +fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 + +# Define output + +variable dele equal f_myhug[1] # energy delta [temperature] +variable us equal f_myhug[2] # shock velocity [distance/time] +variable up equal f_myhug[3] # particle velocity [distance/time] +variable pzz equal pzz # axial stress +variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress +variable time equal dt*step + +thermo 1000 +thermo_style custom step temp ke epair econserve pzz v_tau lz f_myhug v_dele v_us v_up + +fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (no drag)' + +#dump id all atom 500 dump.hugoniostat + +#dump 2 all image 500 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 5 + +#dump 3 all movie 500 movie.mpg type type # axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 5 + +run 10000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.7475372 + ghost atom cutoff = 1.7475372 + binsize = 0.87376862, bins = 8 12 12 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cubic, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.086 | 3.086 | 3.086 Mbytes +Step Temp KinEng E_pair Econserve Pzz v_tau Lz f_myhug v_dele v_us v_up + 0 0.01 0.014985 -6.3344253 -6.3194403 0.014347835 -0.00026463907 9.8684199 0 -0.0048552735 2.378672 0.0041061045 + 1000 0.010586669 0.015864123 -2.1721826 -4183.9265 129.03333 58.456619 8.3141284 -4.1817701 0.93542364 23.507245 3.7366151 + 2000 0.33213628 0.49770621 -5.5847928 -972.65689 12.097176 1.2026574 9.4616027 -0.9675698 -0.35714344 13.85823 0.59422982 + 3000 0.46981589 0.70401911 -3.9208694 -3177.4622 63.005615 22.559014 8.6828715 -3.1742453 -0.16959033 18.776506 2.284245 + 4000 0.5486246 0.82211396 -4.170224 -2897.9717 38.4091 4.9062274 8.6573154 -2.8946236 -0.45434723 14.506949 1.8023381 + 5000 0.30607733 0.45865688 -4.73528 -1914.3534 35.002193 6.2096608 8.6658138 -1.9100768 -0.19602135 13.896788 1.714585 + 6000 0.13928238 0.20871465 -4.3038564 -1672.0118 50.372856 12.190245 8.3966652 -1.6679166 0.11455965 15.089171 2.2725288 + 7000 0.055325106 0.082904671 -5.2030895 -1689.3101 30.859753 6.5561993 8.6850199 -1.6841899 0.020593532 13.15254 1.5972063 + 8000 0.02793065 0.041854078 -4.5281755 -966.55101 48.144696 12.229149 8.4107035 -0.96206469 0.19920754 14.821718 2.2112004 + 9000 0.018182543 0.02724654 -4.9847463 -1618.778 37.347471 8.7290944 8.5607031 -1.6138205 0.10912671 13.773572 1.8458347 + 10000 0.0082850143 0.012415094 -5.0129769 -1686.404 36.462176 8.3390717 8.5689886 -1.6814034 0.10655037 13.652105 1.8181142 +Loop time of 22.212 on 4 procs for 10000 steps with 1000 atoms + +Performance: 38897.956 tau/day, 450.208 timesteps/s +76.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.4702 | 3.5904 | 3.684 | 4.4 | 16.16 +Neigh | 0.1001 | 0.10727 | 0.11784 | 2.0 | 0.48 +Comm | 5.1418 | 5.2862 | 5.3573 | 3.7 | 23.80 +Output | 0.083086 | 0.095493 | 0.11021 | 4.0 | 0.43 +Modify | 11.789 | 11.841 | 11.967 | 2.1 | 53.31 +Other | | 1.292 | | | 5.82 + +Nlocal: 250.000 ave 260 max 240 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 927.500 ave 934 max 921 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 5049.00 ave 5203 max 4889 min +Histogram: 1 1 0 0 0 0 0 0 0 2 + +Total # of neighbors = 20196 +Ave neighs/atom = 20.196000 +Neighbor list builds = 175 +Dangerous builds = 0 + +# Start Run #2 + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.046520549 0.065789991 0.065789991) to (7.0245472 9.9342099 9.9342099) + 1 by 2 by 2 MPI processor grid + restoring pair style lj/cubic from restart + 1000 atoms + read_restart CPU = 0.001 seconds + +neighbor 0.2 bin +neigh_modify every 1 delay 0 check yes +timestep 0.001 +reset_timestep 0 + +# Pzz = 40.0, drag/damping term on + +fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0 + +# Specify reference state from paper, times 1000 atoms + +fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 + +# Define output + +variable dele equal f_myhug[1] # energy delta [temperature] +variable us equal f_myhug[2] # shock velocity [distance/time] +variable up equal f_myhug[3] # particle velocity [distance/time] +variable pzz equal pzz # axial stress +variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress +variable time equal dt*step + +thermo 1000 +thermo_style custom step temp ke epair econserve pzz v_tau lz f_myhug v_dele v_us v_up + +fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (with drag)' + +run 10000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.7475372 + ghost atom cutoff = 1.7475372 + binsize = 0.87376862, bins = 8 12 12 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cubic, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.086 | 3.086 | 3.086 Mbytes +Step Temp KinEng E_pair Econserve Pzz v_tau Lz f_myhug v_dele v_us v_up + 0 0.01 0.014985 -6.3344253 -6.3194403 0.014347835 -0.00026463907 9.8684199 0 -0.0048552735 2.378672 0.0041061045 + 1000 0.0063089135 0.0094539069 -5.9892322 -1671.0142 18.914957 7.5823225 9.2337797 -1.6650344 0.02342632 13.975435 0.92133641 + 2000 0.006881368 0.01031173 -5.4566762 -2537.9852 37.064191 15.537213 8.9495783 -2.5325389 0.1023455 16.32485 1.5455517 + 3000 0.0072427308 0.010853232 -5.3662814 -2644.0227 39.906002 16.80569 8.9154322 -2.6386673 0.1182133 16.638326 1.6327015 + 4000 0.0070936511 0.010629836 -5.362616 -2655.9513 40.007995 16.850321 8.9143648 -2.6505993 0.11869211 16.650416 1.6356858 + 5000 0.0074091959 0.01110268 -5.3628939 -2664.5927 39.998199 16.845204 8.9144816 -2.6592409 0.11846407 16.649379 1.6353872 + 6000 0.0077388568 0.011596677 -5.362926 -2673.502 39.995216 16.842807 8.9145056 -2.6681507 0.11826568 16.648964 1.635306 + 7000 0.0076023299 0.011392091 -5.3621079 -2682.3942 39.998343 16.839762 8.9144789 -2.6770435 0.1181081 16.649386 1.6353924 + 8000 0.0076916892 0.011525996 -5.3617056 -2691.2334 40.000701 16.839078 8.9144843 -2.6858832 0.11795298 16.649924 1.635436 + 9000 0.0082153298 0.012310672 -5.3620895 -2700.1796 40.006134 16.845865 8.914544 -2.6948298 0.11785245 16.651566 1.6354968 + 10000 0.0088368733 0.013242055 -5.3625353 -2709.138 39.989575 16.835079 8.914577 -2.7037887 0.11749055 16.648403 1.6351305 +Loop time of 19.325 on 4 procs for 10000 steps with 1000 atoms + +Performance: 44708.822 tau/day, 517.463 timesteps/s +77.5% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.3012 | 3.4003 | 3.584 | 5.9 | 17.60 +Neigh | 0.0047636 | 0.0054044 | 0.0072584 | 1.5 | 0.03 +Comm | 4.5282 | 4.5961 | 4.651 | 2.1 | 23.78 +Output | 0.00071692 | 0.0062424 | 0.0086811 | 4.1 | 0.03 +Modify | 10.133 | 10.215 | 10.287 | 1.7 | 52.86 +Other | | 1.102 | | | 5.70 + +Nlocal: 250.000 ave 258 max 239 min +Histogram: 1 0 0 0 1 0 0 0 1 1 +Nghost: 829.000 ave 840 max 821 min +Histogram: 1 1 0 0 0 1 0 0 0 1 +Neighs: 5250.00 ave 5360 max 5090 min +Histogram: 1 0 0 0 1 0 0 0 0 2 + +Total # of neighbors = 21000 +Ave neighs/atom = 21.000000 +Neighbor list builds = 10 +Dangerous builds = 0 + +# Start Run #3 + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.046520549 0.065789991 0.065789991) to (7.0245472 9.9342099 9.9342099) + 1 by 2 by 2 MPI processor grid + restoring pair style lj/cubic from restart + 1000 atoms + read_restart CPU = 0.001 seconds + +neighbor 0.2 bin +neigh_modify every 1 delay 0 check yes +timestep 0.001 +reset_timestep 0 + +# Pzz = 40.0, drag/damping term off, Nose-Hoover chains + +fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 + +# Specify reference state from paper, times 1000 atoms + +fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 + +# Define output + +variable dele equal f_myhug[1] # energy delta [temperature] +variable us equal f_myhug[2] # shock velocity [distance/time] +variable up equal f_myhug[3] # particle velocity [distance/time] +variable pzz equal pzz # axial stress +variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress +variable time equal dt*step + +thermo 1000 +thermo_style custom step temp ke epair econserve pzz v_tau lz f_myhug v_dele v_us v_up + +fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (Nose-Hoover chain)' + +run 10000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.7475372 + ghost atom cutoff = 1.7475372 + binsize = 0.87376862, bins = 8 12 12 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cubic, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.086 | 3.086 | 3.086 Mbytes +Step Temp KinEng E_pair Econserve Pzz v_tau Lz f_myhug v_dele v_us v_up + 0 0.01 0.014985 -6.3344253 -6.3194403 0.014347835 -0.00026463907 9.8684199 0 -0.0048552735 2.378672 0.0041061045 + 1000 0.0078345757 0.011740112 -5.5017136 -838.78091 35.616593 14.888102 8.9677603 -0.83329094 0.093891841 16.160627 1.5002802 + 2000 0.019260442 0.028861773 -5.2936038 -1018.9574 41.771461 17.563025 8.8958988 -1.0136927 0.11811776 16.853931 1.6871615 + 3000 0.04811126 0.072094723 -5.3454068 -976.69826 39.061528 16.137201 8.9322605 -0.97142494 0.073850795 16.606008 1.6012612 + 4000 0.11854637 0.17764173 -5.2071392 -1296.5766 40.843143 16.426195 8.9202981 -1.2915471 0.017621672 16.874934 1.6476132 + 5000 0.13634185 0.20430827 -5.2645154 -1258.4101 39.098283 15.627986 8.9407719 -1.2533499 -0.00067591716 16.688492 1.5948462 + 6000 0.14222512 0.21312434 -5.1774698 -1369.5986 40.888661 16.260803 8.9214848 -1.3646342 -0.0041700902 16.894723 1.6475174 + 7000 0.12683772 0.19006633 -5.2679854 -1210.973 39.084165 15.633846 8.9393379 -1.2058951 0.00572464 16.672829 1.595768 + 8000 0.14531337 0.21775209 -5.1737911 -1372.667 40.861256 16.19118 8.9199953 -1.367711 -0.0065459838 16.876028 1.648237 + 9000 0.12123505 0.18167072 -5.2546764 -1189.0875 39.276006 15.677923 8.9363537 -1.1840145 0.0075170176 16.687402 1.6022003 + 10000 0.1477113 0.22134539 -5.1833959 -1353.4057 40.578404 16.080238 8.9245614 -1.3484436 -0.0098061873 16.857426 1.6386338 +Loop time of 18.9651 on 4 procs for 10000 steps with 1000 atoms + +Performance: 45557.373 tau/day, 527.284 timesteps/s +77.1% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.1152 | 3.3473 | 3.5591 | 10.0 | 17.65 +Neigh | 0.045731 | 0.056706 | 0.066921 | 3.7 | 0.30 +Comm | 3.9563 | 4.1638 | 4.4413 | 9.7 | 21.96 +Output | 0.00067329 | 0.0033167 | 0.011241 | 7.9 | 0.02 +Modify | 10.321 | 10.425 | 10.482 | 2.0 | 54.97 +Other | | 0.9693 | | | 5.11 + +Nlocal: 250.000 ave 257 max 244 min +Histogram: 1 0 0 1 1 0 0 0 0 1 +Nghost: 832.250 ave 840 max 822 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Neighs: 5144.25 ave 5282 max 4949 min +Histogram: 1 0 0 0 0 1 0 1 0 1 + +Total # of neighbors = 20577 +Ave neighs/atom = 20.577000 +Neighbor list builds = 95 +Dangerous builds = 0 + +Total wall time: 0:01:01 diff --git a/examples/hugoniostat/log.27Nov18.hugoniostat.g++.1 b/examples/hugoniostat/log.27Nov18.hugoniostat.g++.1 deleted file mode 100644 index c1381629eb..0000000000 --- a/examples/hugoniostat/log.27Nov18.hugoniostat.g++.1 +++ /dev/null @@ -1,401 +0,0 @@ -LAMMPS (27 Nov 2018) - using 1 OpenMP thread(s) per MPI task -# This script reproduces stress trajectories from Fig. 1 in -# Ravelo, Holian, Germann, and Lomdahl, PRB 70 014103 (2004) -# -# Three thermostatting scenarios are visited: undamped (nodrag), -# damped (drag) and Nose-Hoover chain (nhchains). -# -# The axial and shear stress trajectories are printed to the -# file "stress_vs_t.dat". For the damped case, the original figure -# seems to be a plot of 2*tau, rather than tau. -# -# The script also demonstrates how to -# orient a crystal along <110>, -# and how to use the lj/cubic pair style. - -units lj -boundary p p p - -atom_style atomic - -# Set up FCC lattice with z axis along <110> - -lattice fcc 1.4142136 orient x 0 0 1 orient y 1 -1 0 orient z 1 1 0 -Lattice spacing in x,y,z = 1.41421 2 2 - -region mycell block 0.0 5.0 0.0 5.0 0.0 5.0 units lattice -create_box 1 mycell -Created orthogonal box = (0 0 0) to (7.07107 10 10) - 1 by 1 by 1 MPI processor grid -mass * 1.0 -create_atoms 1 box -Created 1000 atoms - Time spent = 0.000465155 secs - -# Using units of Rmin, so sigma = 2^-1/6 = 0.8908987 - -pair_style lj/cubic -pair_coeff * * 1.0 0.8908987 - -# Relax box dimensions - -fix 3 all box/relax aniso 0.0 vmax 1.0e-4 nreset 100 - -thermo 100 -thermo_style custom step temp pe etotal pxx pyy pzz lx ly lz - -min_modify line quadratic -minimize 0.0 1.0e-6 10000 100000 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (src/min.cpp:168) -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.84754 - ghost atom cutoff = 1.84754 - binsize = 0.923769, bins = 8 11 11 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/cubic, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 4.247 | 4.247 | 4.247 Mbytes -Step Temp PotEng TotEng Pxx Pyy Pzz Lx Ly Lz - 0 0 -6.2937539 -6.2937539 -2.7722431 -2.7722431 -2.7722431 7.0710677 9.9999999 9.9999999 - 100 0 -6.3319018 -6.3319018 -0.75971321 -0.75971321 -0.75971321 7.0003571 9.8999999 9.8999999 - 134 0 -6.3344257 -6.3344257 -4.5005818e-13 -4.9677973e-13 -4.9219424e-13 6.9780266 9.8684199 9.8684199 -Loop time of 0.0724094 on 1 procs for 134 steps with 1000 atoms - -99.9% CPU use with 1 MPI tasks x 1 OpenMP threads - -Minimization stats: - Stopping criterion = force tolerance - Energy initial, next-to-last, final = - -6.2937539309 -6.33442568056 -6.33442568056 - Force two-norm initial, final = 3395.29 5.83329e-10 - Force max component initial, final = 1960.27 3.42093e-10 - Final line search alpha, max atom move = 1 3.42093e-10 - Iterations, force evaluations = 134 137 - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.054599 | 0.054599 | 0.054599 | 0.0 | 75.40 -Neigh | 0.0011106 | 0.0011106 | 0.0011106 | 0.0 | 1.53 -Comm | 0.002012 | 0.002012 | 0.002012 | 0.0 | 2.78 -Output | 1.955e-05 | 1.955e-05 | 1.955e-05 | 0.0 | 0.03 -Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 0.01467 | | | 20.26 - -Nlocal: 1000 ave 1000 max 1000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1724 ave 1724 max 1724 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 21000 ave 21000 max 21000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 21000 -Ave neighs/atom = 21 -Neighbor list builds = 1 -Dangerous builds = 0 - -# Define initial velocity - -velocity all create 0.01 87287 mom yes rot yes dist gaussian -write_restart restart.equil - -# Start Run #1 - -clear - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil - restoring atom style atomic from restart - orthogonal box = (0.0465206 0.06579 0.06579) to (7.02455 9.93421 9.93421) - 1 by 1 by 1 MPI processor grid - restoring pair style lj/cubic from restart - 1000 atoms - -neighbor 0.2 bin -neigh_modify every 1 delay 0 check yes -timestep 0.001 -reset_timestep 0 - -# Pzz = 40.0, drag/damping term off - -fix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0 drag 0.0 tchain 1 pchain 0 - -# Specify reference state from paper, times 1000 atoms - -fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 - -# Add fix energy to output etotal - -fix_modify myhug energy yes - -# Define output - -variable dele equal f_myhug[1] # energy delta [temperature] -variable us equal f_myhug[2] # shock velocity [distance/time] -variable up equal f_myhug[3] # particle velocity [distance/time] -variable pzz equal pzz # axial stress -variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress -variable time equal dt*step - -thermo 1000 -thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up - -fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (no drag)' - -#dump id all atom 500 dump.hugoniostat - -#dump 2 all image 500 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 5 - -#dump 3 all movie 500 movie.mpg type type # axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 5 - -run 10000 -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.74754 - ghost atom cutoff = 1.74754 - binsize = 0.873769, bins = 8 12 12 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/cubic, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.771 | 2.771 | 2.771 Mbytes -Step Temp KinEng E_pair TotEng Pzz v_tau Lz f_myhug v_dele v_us v_up - 0 0.01 0.014985 -6.3344257 -6.3194407 0.014381062 -0.0002397183 9.8684199 0 -0.0048551451 2.3814196 0.0041108654 - 1000 0.0093381489 0.013993216 -2.170443 -6.3381216 129.15286 58.544417 8.3142516 -4.1816719 0.93744258 23.519053 3.7381989 - 2000 0.24794909 0.37155171 -5.8915802 -6.0429087 8.3850692 1.3744507 9.5938765 -0.5228803 -0.2435043 13.910468 0.4103393 - 3000 0.38920701 0.5832267 -3.768677 -6.6246124 72.742761 28.486747 8.623805 -3.439162 0.003825459 19.697379 2.5139668 - 4000 0.67009971 1.0041444 -4.2080644 -6.1365367 35.596179 3.9344133 8.7508422 -2.9326167 -0.58039603 14.529822 1.6677129 - 5000 0.41848975 0.62710689 -4.8393088 -6.1026724 30.626544 4.6387208 8.7827245 -1.8904705 -0.31996439 13.670884 1.5250343 - 6000 0.22410139 0.33581594 -3.7652941 -6.0923259 50.807437 7.2229456 8.2549488 -2.6628477 -0.017396966 14.4806 2.3884652 - 7000 0.095001485 0.14235972 -4.5436753 -6.7307217 35.8743 3.4938089 8.4476287 -2.3294061 -0.052272192 12.957528 1.8846881 - 8000 0.043277437 0.064851239 -4.6264096 -6.2447456 39.658659 6.7266325 8.4327483 -1.6831873 0.070488482 13.553882 1.9918311 - 9000 0.018271956 0.027380526 -4.4239627 -6.3085661 41.708324 5.9081923 8.3463321 -1.9119839 0.091057512 13.503882 2.1025305 - 10000 0.0082840001 0.012413574 -4.622252 -6.3316699 39.830379 6.5596321 8.4109569 -1.7218314 0.099435465 13.482451 2.0110543 -Loop time of 6.20702 on 1 procs for 10000 steps with 1000 atoms - -Performance: 139197.321 tau/day, 1611.080 timesteps/s -98.8% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 5.0198 | 5.0198 | 5.0198 | 0.0 | 80.87 -Neigh | 0.21405 | 0.21405 | 0.21405 | 0.0 | 3.45 -Comm | 0.16164 | 0.16164 | 0.16164 | 0.0 | 2.60 -Output | 0.00053501 | 0.00053501 | 0.00053501 | 0.0 | 0.01 -Modify | 0.7419 | 0.7419 | 0.7419 | 0.0 | 11.95 -Other | | 0.06911 | | | 1.11 - -Nlocal: 1000 ave 1000 max 1000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1886 ave 1886 max 1886 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 20874 ave 20874 max 20874 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 20874 -Ave neighs/atom = 20.874 -Neighbor list builds = 188 -Dangerous builds = 0 - -# Start Run #2 - -clear - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil - restoring atom style atomic from restart - orthogonal box = (0.0465206 0.06579 0.06579) to (7.02455 9.93421 9.93421) - 1 by 1 by 1 MPI processor grid - restoring pair style lj/cubic from restart - 1000 atoms - -neighbor 0.2 bin -neigh_modify every 1 delay 0 check yes -timestep 0.001 -reset_timestep 0 - -# Pzz = 40.0, drag/damping term on - -fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0 - -# Specify reference state from paper, times 1000 atoms - -fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 - -# Add fix energy to output etotal - -fix_modify myhug energy yes - -# Define output - -variable dele equal f_myhug[1] # energy delta [temperature] -variable us equal f_myhug[2] # shock velocity [distance/time] -variable up equal f_myhug[3] # particle velocity [distance/time] -variable pzz equal pzz # axial stress -variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress -variable time equal dt*step - -thermo 1000 -thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up - -fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (with drag)' - -run 10000 -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.74754 - ghost atom cutoff = 1.74754 - binsize = 0.873769, bins = 8 12 12 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/cubic, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.771 | 2.771 | 2.771 Mbytes -Step Temp KinEng E_pair TotEng Pzz v_tau Lz f_myhug v_dele v_us v_up - 0 0.01 0.014985 -6.3344257 -6.3194407 0.014381062 -0.0002397183 9.8684199 0 -0.0048551451 2.3814196 0.0041108654 - 1000 0.0062572991 0.0093765627 -5.9890874 -7.64465 18.918117 7.5844397 9.2338165 -1.6649392 0.02341947 13.976996 0.92138738 - 2000 0.006845108 0.010257394 -5.4565813 -7.9786876 37.064254 15.537266 8.9496404 -2.5323637 0.1023062 16.325405 1.5455017 - 3000 0.0073276109 0.010980425 -5.3663425 -7.9938818 39.907292 16.807488 8.9154852 -2.6385197 0.11818131 16.639049 1.6326833 - 4000 0.0069296915 0.010384143 -5.3623404 -8.0023271 40.010741 16.851482 8.9144328 -2.6503708 0.11868152 16.651571 1.6356847 - 5000 0.0076142476 0.01140995 -5.3631447 -8.0108329 39.997648 16.846756 8.9145416 -2.6590981 0.11841154 16.649778 1.6353255 - 6000 0.0077053839 0.011546518 -5.3628542 -8.0192007 39.991597 16.840313 8.9145803 -2.6678931 0.11818376 16.648851 1.6351691 - 7000 0.0077405662 0.011599239 -5.3623534 -8.0275624 40.000448 16.844008 8.9145774 -2.6768081 0.11809914 16.650669 1.6353525 - 8000 0.008067359 0.012088937 -5.3623759 -8.0359471 39.995327 16.840134 8.9146099 -2.6856601 0.11787118 16.649881 1.6352204 - 9000 0.0083223114 0.012470984 -5.3622992 -8.0443714 40.00571 16.847763 8.9146503 -2.6945431 0.11781538 16.652389 1.6353987 - 10000 0.0091249143 0.013673684 -5.3630142 -8.0529573 39.987196 16.837314 8.9146848 -2.7036168 0.11743028 16.648831 1.6349911 -Loop time of 5.48047 on 1 procs for 10000 steps with 1000 atoms - -Performance: 157650.687 tau/day, 1824.661 timesteps/s -98.8% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 4.5166 | 4.5166 | 4.5166 | 0.0 | 82.41 -Neigh | 0.012162 | 0.012162 | 0.012162 | 0.0 | 0.22 -Comm | 0.14168 | 0.14168 | 0.14168 | 0.0 | 2.59 -Output | 0.00053787 | 0.00053787 | 0.00053787 | 0.0 | 0.01 -Modify | 0.74394 | 0.74394 | 0.74394 | 0.0 | 13.57 -Other | | 0.06553 | | | 1.20 - -Nlocal: 1000 ave 1000 max 1000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1724 ave 1724 max 1724 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 21000 ave 21000 max 21000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 21000 -Ave neighs/atom = 21 -Neighbor list builds = 11 -Dangerous builds = 0 - -# Start Run #3 - -clear - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil - restoring atom style atomic from restart - orthogonal box = (0.0465206 0.06579 0.06579) to (7.02455 9.93421 9.93421) - 1 by 1 by 1 MPI processor grid - restoring pair style lj/cubic from restart - 1000 atoms - -neighbor 0.2 bin -neigh_modify every 1 delay 0 check yes -timestep 0.001 -reset_timestep 0 - -# Pzz = 40.0, drag/damping term off, Nose-Hoover chains - -fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 - -# Specify reference state from paper, times 1000 atoms - -fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 - -# Add fix energy to output etotal - -fix_modify myhug energy yes - -# Define output - -variable dele equal f_myhug[1] # energy delta [temperature] -variable us equal f_myhug[2] # shock velocity [distance/time] -variable up equal f_myhug[3] # particle velocity [distance/time] -variable pzz equal pzz # axial stress -variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress -variable time equal dt*step - -thermo 1000 -thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up - -fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (Nose-Hoover chain)' - -run 10000 -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.74754 - ghost atom cutoff = 1.74754 - binsize = 0.873769, bins = 8 12 12 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/cubic, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.771 | 2.771 | 2.771 Mbytes -Step Temp KinEng E_pair TotEng Pzz v_tau Lz f_myhug v_dele v_us v_up - 0 0.01 0.014985 -6.3344257 -6.3194407 0.014381062 -0.0002397183 9.8684199 0 -0.0048551451 2.3814196 0.0041108654 - 1000 0.0083300394 0.012482564 -5.5023188 -6.3233387 35.610076 14.886667 8.9677982 -0.83350251 0.093761848 16.159481 1.500112 - 2000 0.020386462 0.030549113 -5.2949349 -6.2805556 41.760388 17.563305 8.896033 -1.0161699 0.11780863 16.85284 1.6868235 - 3000 0.049693152 0.074465188 -5.3469434 -6.2493961 39.030372 16.123483 8.9325594 -0.9769179 0.073097387 16.601986 1.6003716 - 4000 0.11859514 0.17771482 -5.207077 -6.3242752 40.941558 16.507785 8.9213147 -1.2949131 0.018189678 16.904156 1.6487282 - 5000 0.13014573 0.19502337 -5.2610248 -6.269279 39.059628 15.609345 8.9431685 -1.2032776 -0.00023747376 16.701437 1.5920344 - 6000 0.1381307 0.20698886 -5.171005 -6.2931942 40.904837 16.242165 8.9222854 -1.3291781 -0.0044770368 16.905086 1.6471589 - 7000 0.12107326 0.18142828 -5.2602554 -6.2438099 39.060928 15.57765 8.9397525 -1.1649827 0.0055890257 16.671524 1.594944 - 8000 0.14333636 0.21478954 -5.1717123 -6.304602 40.876188 16.205815 8.9218142 -1.3476793 -0.0069396327 16.895033 1.6469846 - 9000 0.12159663 0.18221255 -5.2591911 -6.2587685 39.228648 15.677869 8.9376641 -1.18179 0.0077357066 16.688862 1.6001283 - 10000 0.15321883 0.22959841 -5.1881787 -6.3448453 40.666451 16.146177 8.922851 -1.386265 -0.0091929687 16.860705 1.6418699 -Loop time of 5.6426 on 1 procs for 10000 steps with 1000 atoms - -Performance: 153120.907 tau/day, 1772.233 timesteps/s -98.7% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 4.5653 | 4.5653 | 4.5653 | 0.0 | 80.91 -Neigh | 0.10885 | 0.10885 | 0.10885 | 0.0 | 1.93 -Comm | 0.14695 | 0.14695 | 0.14695 | 0.0 | 2.60 -Output | 0.00055218 | 0.00055218 | 0.00055218 | 0.0 | 0.01 -Modify | 0.75364 | 0.75364 | 0.75364 | 0.0 | 13.36 -Other | | 0.0673 | | | 1.19 - -Nlocal: 1000 ave 1000 max 1000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1724 ave 1724 max 1724 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 20654 ave 20654 max 20654 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 20654 -Ave neighs/atom = 20.654 -Neighbor list builds = 94 -Dangerous builds = 0 - -Total wall time: 0:00:17 diff --git a/examples/hugoniostat/log.27Nov18.hugoniostat.g++.4 b/examples/hugoniostat/log.27Nov18.hugoniostat.g++.4 deleted file mode 100644 index dd0766e81a..0000000000 --- a/examples/hugoniostat/log.27Nov18.hugoniostat.g++.4 +++ /dev/null @@ -1,401 +0,0 @@ -LAMMPS (27 Nov 2018) - using 1 OpenMP thread(s) per MPI task -# This script reproduces stress trajectories from Fig. 1 in -# Ravelo, Holian, Germann, and Lomdahl, PRB 70 014103 (2004) -# -# Three thermostatting scenarios are visited: undamped (nodrag), -# damped (drag) and Nose-Hoover chain (nhchains). -# -# The axial and shear stress trajectories are printed to the -# file "stress_vs_t.dat". For the damped case, the original figure -# seems to be a plot of 2*tau, rather than tau. -# -# The script also demonstrates how to -# orient a crystal along <110>, -# and how to use the lj/cubic pair style. - -units lj -boundary p p p - -atom_style atomic - -# Set up FCC lattice with z axis along <110> - -lattice fcc 1.4142136 orient x 0 0 1 orient y 1 -1 0 orient z 1 1 0 -Lattice spacing in x,y,z = 1.41421 2 2 - -region mycell block 0.0 5.0 0.0 5.0 0.0 5.0 units lattice -create_box 1 mycell -Created orthogonal box = (0 0 0) to (7.07107 10 10) - 1 by 2 by 2 MPI processor grid -mass * 1.0 -create_atoms 1 box -Created 1000 atoms - Time spent = 0.0003438 secs - -# Using units of Rmin, so sigma = 2^-1/6 = 0.8908987 - -pair_style lj/cubic -pair_coeff * * 1.0 0.8908987 - -# Relax box dimensions - -fix 3 all box/relax aniso 0.0 vmax 1.0e-4 nreset 100 - -thermo 100 -thermo_style custom step temp pe etotal pxx pyy pzz lx ly lz - -min_modify line quadratic -minimize 0.0 1.0e-6 10000 100000 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (src/min.cpp:168) -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.84754 - ghost atom cutoff = 1.84754 - binsize = 0.923769, bins = 8 11 11 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/cubic, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 4.211 | 4.211 | 4.211 Mbytes -Step Temp PotEng TotEng Pxx Pyy Pzz Lx Ly Lz - 0 0 -6.2937539 -6.2937539 -2.7722431 -2.7722431 -2.7722431 7.0710677 9.9999999 9.9999999 - 100 0 -6.3319018 -6.3319018 -0.75971321 -0.75971321 -0.75971321 7.0003571 9.8999999 9.8999999 - 134 0 -6.3344257 -6.3344257 -4.5046204e-13 -4.92206e-13 -4.9610344e-13 6.9780266 9.8684199 9.8684199 -Loop time of 0.0269771 on 4 procs for 134 steps with 1000 atoms - -94.3% CPU use with 4 MPI tasks x 1 OpenMP threads - -Minimization stats: - Stopping criterion = force tolerance - Energy initial, next-to-last, final = - -6.2937539309 -6.33442568056 -6.33442568056 - Force two-norm initial, final = 3395.29 5.80609e-10 - Force max component initial, final = 1960.27 3.41627e-10 - Final line search alpha, max atom move = 1 3.41627e-10 - Iterations, force evaluations = 134 137 - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.011534 | 0.013897 | 0.016008 | 1.3 | 51.51 -Neigh | 0.00024176 | 0.00029498 | 0.00035191 | 0.0 | 1.09 -Comm | 0.0029764 | 0.0050126 | 0.0073018 | 2.2 | 18.58 -Output | 1.8835e-05 | 1.9968e-05 | 2.2888e-05 | 0.0 | 0.07 -Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 0.007753 | | | 28.74 - -Nlocal: 250 ave 305 max 205 min -Histogram: 1 0 0 0 2 0 0 0 0 1 -Nghost: 829 ave 874 max 774 min -Histogram: 1 0 0 0 0 0 2 0 0 1 -Neighs: 5250 ave 6445 max 4305 min -Histogram: 1 0 0 2 0 0 0 0 0 1 - -Total # of neighbors = 21000 -Ave neighs/atom = 21 -Neighbor list builds = 1 -Dangerous builds = 0 - -# Define initial velocity - -velocity all create 0.01 87287 mom yes rot yes dist gaussian -write_restart restart.equil - -# Start Run #1 - -clear - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil - restoring atom style atomic from restart - orthogonal box = (0.0465206 0.06579 0.06579) to (7.02455 9.93421 9.93421) - 1 by 2 by 2 MPI processor grid - restoring pair style lj/cubic from restart - 1000 atoms - -neighbor 0.2 bin -neigh_modify every 1 delay 0 check yes -timestep 0.001 -reset_timestep 0 - -# Pzz = 40.0, drag/damping term off - -fix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0 drag 0.0 tchain 1 pchain 0 - -# Specify reference state from paper, times 1000 atoms - -fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 - -# Add fix energy to output etotal - -fix_modify myhug energy yes - -# Define output - -variable dele equal f_myhug[1] # energy delta [temperature] -variable us equal f_myhug[2] # shock velocity [distance/time] -variable up equal f_myhug[3] # particle velocity [distance/time] -variable pzz equal pzz # axial stress -variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress -variable time equal dt*step - -thermo 1000 -thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up - -fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (no drag)' - -#dump id all atom 500 dump.hugoniostat - -#dump 2 all image 500 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 5 - -#dump 3 all movie 500 movie.mpg type type # axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 5 - -run 10000 -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.74754 - ghost atom cutoff = 1.74754 - binsize = 0.873769, bins = 8 12 12 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/cubic, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.717 | 2.809 | 3.086 Mbytes -Step Temp KinEng E_pair TotEng Pzz v_tau Lz f_myhug v_dele v_us v_up - 0 0.01 0.014985 -6.3344257 -6.3194407 0.014347835 -0.00026463907 9.8684199 0 -0.0048551516 2.3786668 0.0041061135 - 1000 0.010586668 0.015864122 -2.1721826 -6.3380886 129.03334 58.456626 8.3141284 -4.1817701 0.93542408 23.507246 3.7366154 - 2000 0.3321368 0.49770699 -5.584787 -6.0546694 12.097343 1.2026972 9.4615963 -0.96758935 -0.3571439 13.858218 0.5942385 - 3000 0.46981685 0.70402055 -3.9208474 -6.3911005 63.005989 22.559106 8.6828663 -3.1742737 -0.16958917 18.776521 2.2842567 - 4000 0.54866493 0.82217439 -4.1703408 -6.2427645 38.408608 4.9066022 8.6573289 -2.894598 -0.45434132 14.506935 1.8023166 - 5000 0.30625495 0.45892304 -4.7355785 -6.186448 35.000599 6.2097986 8.6658098 -1.9097925 -0.19603125 13.896448 1.7145489 - 6000 0.13938196 0.20886386 -4.303964 -5.7629121 50.370681 12.189231 8.3966581 -1.6678119 0.11451271 15.088809 2.2724852 - 7000 0.055349516 0.082941249 -5.2031342 -6.8043199 30.859256 6.5562297 8.6850282 -1.684127 0.020586458 13.152479 1.5971879 - 8000 0.027926794 0.0418483 -4.5281656 -5.4484008 48.145681 12.229919 8.4107051 -0.96208352 0.19922201 14.821877 2.2112219 - 9000 0.018195086 0.027265336 -4.9847444 -6.5712684 37.347655 8.7291385 8.5606968 -1.6137894 0.10912534 13.773573 1.8458438 - 10000 0.0082893467 0.012421586 -5.0130076 -6.6821423 36.46118 8.3386716 8.5689995 -1.6815563 0.1065388 13.651975 1.8180818 -Loop time of 2.01177 on 4 procs for 10000 steps with 1000 atoms - -Performance: 429472.539 tau/day, 4970.747 timesteps/s -98.1% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.2437 | 1.2651 | 1.2843 | 1.7 | 62.89 -Neigh | 0.051696 | 0.052503 | 0.053247 | 0.3 | 2.61 -Comm | 0.24826 | 0.26724 | 0.28867 | 3.5 | 13.28 -Output | 0.00058603 | 0.00085759 | 0.0016623 | 0.0 | 0.04 -Modify | 0.37363 | 0.37671 | 0.38189 | 0.5 | 18.73 -Other | | 0.04935 | | | 2.45 - -Nlocal: 250 ave 260 max 240 min -Histogram: 2 0 0 0 0 0 0 0 0 2 -Nghost: 927.5 ave 934 max 921 min -Histogram: 2 0 0 0 0 0 0 0 0 2 -Neighs: 5048.5 ave 5203 max 4889 min -Histogram: 1 1 0 0 0 0 0 0 1 1 - -Total # of neighbors = 20194 -Ave neighs/atom = 20.194 -Neighbor list builds = 175 -Dangerous builds = 0 - -# Start Run #2 - -clear - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil - restoring atom style atomic from restart - orthogonal box = (0.0465206 0.06579 0.06579) to (7.02455 9.93421 9.93421) - 1 by 2 by 2 MPI processor grid - restoring pair style lj/cubic from restart - 1000 atoms - -neighbor 0.2 bin -neigh_modify every 1 delay 0 check yes -timestep 0.001 -reset_timestep 0 - -# Pzz = 40.0, drag/damping term on - -fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0 - -# Specify reference state from paper, times 1000 atoms - -fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 - -# Add fix energy to output etotal - -fix_modify myhug energy yes - -# Define output - -variable dele equal f_myhug[1] # energy delta [temperature] -variable us equal f_myhug[2] # shock velocity [distance/time] -variable up equal f_myhug[3] # particle velocity [distance/time] -variable pzz equal pzz # axial stress -variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress -variable time equal dt*step - -thermo 1000 -thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up - -fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (with drag)' - -run 10000 -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.74754 - ghost atom cutoff = 1.74754 - binsize = 0.873769, bins = 8 12 12 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/cubic, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.717 | 2.809 | 3.086 Mbytes -Step Temp KinEng E_pair TotEng Pzz v_tau Lz f_myhug v_dele v_us v_up - 0 0.01 0.014985 -6.3344257 -6.3194407 0.014347835 -0.00026463907 9.8684199 0 -0.0048551516 2.3786668 0.0041061135 - 1000 0.0063089138 0.0094539073 -5.9892326 -7.6448129 18.914956 7.5823222 9.2337797 -1.6650342 0.023426454 13.975434 0.92133642 - 2000 0.0068813683 0.01031173 -5.4566765 -7.9789037 37.064192 15.537213 8.9495783 -2.5325388 0.10234565 16.32485 1.5455517 - 3000 0.0072427316 0.010853233 -5.3662818 -7.9940958 39.906002 16.80569 8.9154322 -2.6386672 0.11821344 16.638326 1.6327015 - 4000 0.0070936522 0.010629838 -5.3626164 -8.0025859 40.007994 16.850321 8.9143648 -2.6505993 0.11869226 16.650416 1.6356859 - 5000 0.0074091958 0.01110268 -5.3628943 -8.0110325 39.998199 16.845204 8.9144816 -2.6592409 0.11846422 16.649379 1.6353872 - 6000 0.0077388573 0.011596678 -5.3629264 -8.0194804 39.995216 16.842807 8.9145056 -2.6681507 0.11826582 16.648964 1.635306 - 7000 0.0076023298 0.011392091 -5.3621083 -8.0277598 39.998343 16.839762 8.9144789 -2.6770435 0.11810824 16.649386 1.6353924 - 8000 0.007691692 0.011526001 -5.361706 -8.0360632 40.000701 16.839078 8.9144843 -2.6858833 0.11795313 16.649923 1.6354361 - 9000 0.0082153298 0.012310672 -5.3620899 -8.0446091 40.006134 16.845865 8.914544 -2.6948299 0.11785259 16.651566 1.6354969 - 10000 0.0088368792 0.013242063 -5.3625357 -8.0530825 39.989575 16.835079 8.914577 -2.7037888 0.1174907 16.648402 1.6351306 -Loop time of 1.80214 on 4 procs for 10000 steps with 1000 atoms - -Performance: 479429.980 tau/day, 5548.958 timesteps/s -98.4% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.1353 | 1.1591 | 1.1787 | 1.5 | 64.32 -Neigh | 0.0028975 | 0.0029137 | 0.0029218 | 0.0 | 0.16 -Comm | 0.20882 | 0.22752 | 0.25213 | 3.4 | 12.62 -Output | 0.00058103 | 0.0007953 | 0.0014329 | 0.0 | 0.04 -Modify | 0.36598 | 0.36908 | 0.37078 | 0.3 | 20.48 -Other | | 0.04277 | | | 2.37 - -Nlocal: 250 ave 258 max 239 min -Histogram: 1 0 0 0 1 0 0 0 1 1 -Nghost: 829 ave 840 max 821 min -Histogram: 1 1 0 0 0 1 0 0 0 1 -Neighs: 5250 ave 5360 max 5090 min -Histogram: 1 0 0 0 1 0 0 0 0 2 - -Total # of neighbors = 21000 -Ave neighs/atom = 21 -Neighbor list builds = 10 -Dangerous builds = 0 - -# Start Run #3 - -clear - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil - restoring atom style atomic from restart - orthogonal box = (0.0465206 0.06579 0.06579) to (7.02455 9.93421 9.93421) - 1 by 2 by 2 MPI processor grid - restoring pair style lj/cubic from restart - 1000 atoms - -neighbor 0.2 bin -neigh_modify every 1 delay 0 check yes -timestep 0.001 -reset_timestep 0 - -# Pzz = 40.0, drag/damping term off, Nose-Hoover chains - -fix myhug all nphug temp 1.0 1.0 1.0 z 40.0 40.0 70.0 - -# Specify reference state from paper, times 1000 atoms - -fix_modify myhug e0 -6334.0 p0 0.0 v0 680.73519 - -# Add fix energy to output etotal - -fix_modify myhug energy yes - -# Define output - -variable dele equal f_myhug[1] # energy delta [temperature] -variable us equal f_myhug[2] # shock velocity [distance/time] -variable up equal f_myhug[3] # particle velocity [distance/time] -variable pzz equal pzz # axial stress -variable tau equal 0.5*(pzz-0.5*(pxx+pyy)) # shear stress -variable time equal dt*step - -thermo 1000 -thermo_style custom step temp ke epair etotal pzz v_tau lz f_myhug v_dele v_us v_up - -fix stress all print 10 "${time} ${pzz} ${tau} " screen no append stress_vs_t.dat title '#time pzz tau (Nose-Hoover chain)' - -run 10000 -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.74754 - ghost atom cutoff = 1.74754 - binsize = 0.873769, bins = 8 12 12 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair lj/cubic, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.717 | 2.809 | 3.086 Mbytes -Step Temp KinEng E_pair TotEng Pzz v_tau Lz f_myhug v_dele v_us v_up - 0 0.01 0.014985 -6.3344257 -6.3194407 0.014347835 -0.00026463907 9.8684199 0 -0.0048551516 2.3786668 0.0041061135 - 1000 0.0078345827 0.011740122 -5.501714 -6.3232649 35.616592 14.888101 8.9677603 -0.833291 0.093891974 16.160626 1.5002802 - 2000 0.019260469 0.028861813 -5.2936047 -6.2784351 41.771445 17.563018 8.895899 -1.0136922 0.11811779 16.853929 1.687161 - 3000 0.048111305 0.072094791 -5.3454082 -6.2447367 39.061491 16.137184 8.932261 -0.97142325 0.073850675 16.606004 1.6012602 - 4000 0.11854629 0.17764161 -5.2071426 -6.3210422 40.843054 16.426156 8.9202992 -1.2915412 0.017621345 16.874925 1.6476105 - 5000 0.13634167 0.204308 -5.2645153 -6.3135608 39.098316 15.628006 8.9407716 -1.2533534 -0.00067532215 16.688495 1.5948471 - 6000 0.14222646 0.21312635 -5.1774703 -6.3289809 40.888616 16.260775 8.9214855 -1.3646369 -0.0041713956 16.89472 1.6475159 - 7000 0.12683662 0.19006468 -5.2679846 -6.2838171 39.084233 15.633883 8.939337 -1.2058972 0.0057260888 16.672835 1.5957701 - 8000 0.14531516 0.21775476 -5.1737923 -6.3237483 40.861161 16.191124 8.9199968 -1.3677107 -0.0065481979 16.876021 1.6482339 - 9000 0.12123357 0.18166851 -5.2546748 -6.2570254 39.276123 15.677988 8.9363522 -1.1840191 0.0075191856 16.687414 1.6022039 - 10000 0.14771416 0.22134967 -5.1833988 -6.3104954 40.578265 16.080163 8.9245634 -1.3484463 -0.0098090911 16.857414 1.6386293 -Loop time of 1.8702 on 4 procs for 10000 steps with 1000 atoms - -Performance: 461983.152 tau/day, 5347.027 timesteps/s -98.4% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.1723 | 1.1812 | 1.1956 | 0.9 | 63.16 -Neigh | 0.028221 | 0.030409 | 0.035555 | 1.7 | 1.63 -Comm | 0.22963 | 0.24139 | 0.25155 | 1.6 | 12.91 -Output | 0.00055218 | 0.00077897 | 0.0014515 | 0.0 | 0.04 -Modify | 0.37165 | 0.37241 | 0.3732 | 0.1 | 19.91 -Other | | 0.04404 | | | 2.35 - -Nlocal: 250 ave 257 max 244 min -Histogram: 1 0 0 1 1 0 0 0 0 1 -Nghost: 832.25 ave 840 max 822 min -Histogram: 1 0 0 0 0 0 2 0 0 1 -Neighs: 5144.25 ave 5282 max 4949 min -Histogram: 1 0 0 0 0 1 0 1 0 1 - -Total # of neighbors = 20577 -Ave neighs/atom = 20.577 -Neighbor list builds = 95 -Dangerous builds = 0 - -Total wall time: 0:00:05 diff --git a/examples/hugoniostat/log.5Oct16.hugoniostat.g++.1 b/examples/hugoniostat/log.5Oct16.hugoniostat.g++.1 deleted file mode 100644 index 4eea651e8e..0000000000 --- a/examples/hugoniostat/log.5Oct16.hugoniostat.g++.1 +++ /dev/null @@ -1,110 +0,0 @@ -LAMMPS (5 Oct 2016) -# This script reproduces stress trajectories from Fig. 1 in -# Ravelo, Holian, Germann, and Lomdahl, PRB 70 014103 (2004) -# -# Three thermostatting scenarios are visited: undamped (nodrag), -# damped (drag) and Nose-Hoover chain (nhchains). -# -# The axial and shear stress trajectories are printed to the -# file "stress_vs_t.dat". For the damped case, the original figure -# seems to be a plot of 2*tau, rather than tau. -# -# The script also demonstrates how to -# orient a crystal along <110>, -# and how to use the lj/cubic pair style. - -units lj -boundary p p p - -atom_style atomic - -# Set up FCC lattice with z axis along <110> - -lattice fcc 1.4142136 orient x 0 0 1 orient y 1 -1 0 orient z 1 1 0 -Lattice spacing in x,y,z = 1.41421 2 2 - -region mycell block 0.0 5.0 0.0 5.0 0.0 5.0 units lattice -create_box 1 mycell -Created orthogonal box = (0 0 0) to (7.07107 10 10) - 1 by 1 by 1 MPI processor grid -mass * 1.0 -create_atoms 1 box -Created 1000 atoms - -# Using units of Rmin, so sigma = 2^-1/6 = 0.8908987 - -pair_style lj/cubic -pair_coeff * * 1.0 0.8908987 - -# Relax box dimensions - -fix 3 all box/relax aniso 0.0 vmax 1.0e-4 nreset 100 - -thermo 100 -thermo_style custom step temp pe etotal pxx pyy pzz lx ly lz - -min_modify line quadratic -minimize 0.0 1.0e-6 10000 100000 -WARNING: Resetting reneighboring criteria during minimization (../min.cpp:168) -Neighbor list info ... - 1 neighbor list requests - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.84754 - ghost atom cutoff = 1.84754 - binsize = 0.923769 -> bins = 8 11 11 -Memory usage per processor = 3.65406 Mbytes -Step Temp PotEng TotEng Pxx Pyy Pzz Lx Ly Lz - 0 0 -6.2937539 -6.2937539 -2.7722431 -2.7722431 -2.7722431 7.0710677 9.9999999 9.9999999 - 100 0 -6.3319018 -6.3319018 -0.75971321 -0.75971321 -0.75971321 7.0003571 9.8999999 9.8999999 - 134 0 -6.3344257 -6.3344257 -4.5005818e-13 -4.9677973e-13 -4.9219424e-13 6.9780266 9.8684199 9.8684199 -Loop time of 0.0817621 on 1 procs for 134 steps with 1000 atoms - -100.3% CPU use with 1 MPI tasks x no OpenMP threads - -Minimization stats: - Stopping criterion = force tolerance - Energy initial, next-to-last, final = - -6.2937539309 -6.33442568056 -6.33442568056 - Force two-norm initial, final = 3395.29 5.83329e-10 - Force max component initial, final = 1960.27 3.42093e-10 - Final line search alpha, max atom move = 1 3.42093e-10 - Iterations, force evaluations = 134 137 - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.066955 | 0.066955 | 0.066955 | 0.0 | 81.89 -Neigh | 0.001004 | 0.001004 | 0.001004 | 0.0 | 1.23 -Comm | 0.0014298 | 0.0014298 | 0.0014298 | 0.0 | 1.75 -Output | 1.5974e-05 | 1.5974e-05 | 1.5974e-05 | 0.0 | 0.02 -Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 0.01236 | | | 15.11 - -Nlocal: 1000 ave 1000 max 1000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1724 ave 1724 max 1724 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 21000 ave 21000 max 21000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 21000 -Ave neighs/atom = 21 -Neighbor list builds = 1 -Dangerous builds = 0 - -# Define initial velocity - -velocity all create 0.01 87287 mom yes rot yes dist gaussian -write_restart restart.equil -Neighbor list info ... - 1 neighbor list requests - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.84754 - ghost atom cutoff = 1.84754 - binsize = 0.923769 -> bins = 8 11 11 - -# Start Run #1 - -log log.nodrag diff --git a/examples/hugoniostat/log.5Oct16.hugoniostat.g++.4 b/examples/hugoniostat/log.5Oct16.hugoniostat.g++.4 deleted file mode 100644 index 5125160e47..0000000000 --- a/examples/hugoniostat/log.5Oct16.hugoniostat.g++.4 +++ /dev/null @@ -1,110 +0,0 @@ -LAMMPS (5 Oct 2016) -# This script reproduces stress trajectories from Fig. 1 in -# Ravelo, Holian, Germann, and Lomdahl, PRB 70 014103 (2004) -# -# Three thermostatting scenarios are visited: undamped (nodrag), -# damped (drag) and Nose-Hoover chain (nhchains). -# -# The axial and shear stress trajectories are printed to the -# file "stress_vs_t.dat". For the damped case, the original figure -# seems to be a plot of 2*tau, rather than tau. -# -# The script also demonstrates how to -# orient a crystal along <110>, -# and how to use the lj/cubic pair style. - -units lj -boundary p p p - -atom_style atomic - -# Set up FCC lattice with z axis along <110> - -lattice fcc 1.4142136 orient x 0 0 1 orient y 1 -1 0 orient z 1 1 0 -Lattice spacing in x,y,z = 1.41421 2 2 - -region mycell block 0.0 5.0 0.0 5.0 0.0 5.0 units lattice -create_box 1 mycell -Created orthogonal box = (0 0 0) to (7.07107 10 10) - 1 by 2 by 2 MPI processor grid -mass * 1.0 -create_atoms 1 box -Created 1000 atoms - -# Using units of Rmin, so sigma = 2^-1/6 = 0.8908987 - -pair_style lj/cubic -pair_coeff * * 1.0 0.8908987 - -# Relax box dimensions - -fix 3 all box/relax aniso 0.0 vmax 1.0e-4 nreset 100 - -thermo 100 -thermo_style custom step temp pe etotal pxx pyy pzz lx ly lz - -min_modify line quadratic -minimize 0.0 1.0e-6 10000 100000 -WARNING: Resetting reneighboring criteria during minimization (../min.cpp:168) -Neighbor list info ... - 1 neighbor list requests - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.84754 - ghost atom cutoff = 1.84754 - binsize = 0.923769 -> bins = 8 11 11 -Memory usage per processor = 3.63062 Mbytes -Step Temp PotEng TotEng Pxx Pyy Pzz Lx Ly Lz - 0 0 -6.2937539 -6.2937539 -2.7722431 -2.7722431 -2.7722431 7.0710677 9.9999999 9.9999999 - 100 0 -6.3319018 -6.3319018 -0.75971321 -0.75971321 -0.75971321 7.0003571 9.8999999 9.8999999 - 134 0 -6.3344257 -6.3344257 -4.5046204e-13 -4.92206e-13 -4.9610344e-13 6.9780266 9.8684199 9.8684199 -Loop time of 0.0299768 on 4 procs for 134 steps with 1000 atoms - -98.4% CPU use with 4 MPI tasks x no OpenMP threads - -Minimization stats: - Stopping criterion = force tolerance - Energy initial, next-to-last, final = - -6.2937539309 -6.33442568056 -6.33442568056 - Force two-norm initial, final = 3395.29 5.80609e-10 - Force max component initial, final = 1960.27 3.41627e-10 - Final line search alpha, max atom move = 1 3.41627e-10 - Iterations, force evaluations = 134 137 - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.01485 | 0.017638 | 0.020133 | 1.4 | 58.84 -Neigh | 0.00022697 | 0.00027376 | 0.00033092 | 0.2 | 0.91 -Comm | 0.0026414 | 0.0050641 | 0.0078235 | 2.6 | 16.89 -Output | 1.502e-05 | 1.6749e-05 | 2.0027e-05 | 0.0 | 0.06 -Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 0.006985 | | | 23.30 - -Nlocal: 250 ave 305 max 205 min -Histogram: 1 0 0 0 2 0 0 0 0 1 -Nghost: 829 ave 874 max 774 min -Histogram: 1 0 0 0 0 0 2 0 0 1 -Neighs: 5250 ave 6445 max 4305 min -Histogram: 1 0 0 2 0 0 0 0 0 1 - -Total # of neighbors = 21000 -Ave neighs/atom = 21 -Neighbor list builds = 1 -Dangerous builds = 0 - -# Define initial velocity - -velocity all create 0.01 87287 mom yes rot yes dist gaussian -write_restart restart.equil -Neighbor list info ... - 1 neighbor list requests - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 1.84754 - ghost atom cutoff = 1.84754 - binsize = 0.923769 -> bins = 8 11 11 - -# Start Run #1 - -log log.nodrag diff --git a/examples/in.hBN_shift b/examples/in.hBN_shift deleted file mode 100644 index b3035dc715..0000000000 --- a/examples/in.hBN_shift +++ /dev/null @@ -1,37 +0,0 @@ -# Initialization -units metal -boundary p p p -atom_style charge -processors * * 1 # domain decomposition over x and y - -# System and atom definition -# we use different molecule ids for each layer of hBN -# so that inter- and intra-layer -# interactions can be specified separately -read_data hBN-momolayer-5nm.data -mass 1 10.8110 # boron mass (g/mole) | membrane -mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate - -######################## Potential defition ######################## -pair_style tersoff shift 0.05 -pair_coeff * * BNC.tersoff B N -#################################################################### -# Neighbor update settings -neighbor 2.0 bin -neigh_modify every 1 -neigh_modify delay 0 -neigh_modify check yes - -#### Simulation settings #### -timestep 0.001 -velocity all create 300.0 4928459 loop geom -fix thermostat all nve - -############# Output ############### -thermo 100 -thermo_style custom step etotal pe ke temp -#thermo_modify lost warn -thermo_modify line one format float %20.16g lost warn - -###### Run molecular dynamics ###### -run 1000 diff --git a/examples/msst/in.msst b/examples/msst/in.msst index d9fee2977e..243d229c79 100644 --- a/examples/msst/in.msst +++ b/examples/msst/in.msst @@ -36,15 +36,12 @@ unfix 2 # MSST fix fix msst all msst z 28.0 q 200 mu 3e2 tscale 0.01 -# this is needed to make etotal equal the MSST conserved quantity -fix_modify msst energy yes - variable dhug equal f_msst[1] variable dray equal f_msst[2] variable lgr_vel equal f_msst[3] variable lgr_pos equal f_msst[4] -thermo_style custom step temp ke pe lx ly lz pxx pyy pzz etotal & +thermo_style custom step temp ke pe lx ly lz pxx pyy pzz econserve & v_dhug v_dray v_lgr_vel v_lgr_pos f_msst #dump id all atom 50 dump.msst diff --git a/examples/msst/log.30Jun20.msst.g++.1 b/examples/msst/log.08Feb21.msst.g++.1 similarity index 67% rename from examples/msst/log.30Jun20.msst.g++.1 rename to examples/msst/log.08Feb21.msst.g++.1 index 1e0e083620..a2964b6955 100644 --- a/examples/msst/log.30Jun20.msst.g++.1 +++ b/examples/msst/log.08Feb21.msst.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (30 Jun 2020) +LAMMPS (24 Dec 2020) using 1 OpenMP thread(s) per MPI task # LJ test of msst shock dynamics @@ -10,18 +10,18 @@ atom_style atomic timestep 1e-03 lattice fcc 5.3589 -Lattice spacing in x,y,z = 5.3589 5.3589 5.3589 +Lattice spacing in x,y,z = 5.3589000 5.3589000 5.3589000 ## Specify the box as a given number of unit cells. region box1 block 0 18 0 18 0 18 units lattice ## Instantiate the system. create_box 1 box1 -Created orthogonal box = (0 0 0) to (96.4602 96.4602 96.4602) +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (96.460200 96.460200 96.460200) 1 by 1 by 1 MPI processor grid create_atoms 1 region box1 Created 23328 atoms - create_atoms CPU = 0.007 seconds + create_atoms CPU = 0.012 seconds mass 1 40.00 @@ -63,30 +63,30 @@ Step Temp E_pair E_mol TotEng Press 80 300.28534 -1056.589 0 -151.15321 8324.8812 90 305.83368 -1073.3097 0 -151.14426 8175.2478 100 304.06857 -1067.9843 0 -151.14112 8191.234 -Loop time of 3.62419 on 1 procs for 100 steps with 23328 atoms +Loop time of 8.29437 on 1 procs for 100 steps with 23328 atoms -Performance: 4.768 ns/day, 5.034 hours/ns, 27.592 timesteps/s +Performance: 2.083 ns/day, 11.520 hours/ns, 12.056 timesteps/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 | 3.4606 | 3.4606 | 3.4606 | 0.0 | 95.49 -Neigh | 0.065469 | 0.065469 | 0.065469 | 0.0 | 1.81 -Comm | 0.030757 | 0.030757 | 0.030757 | 0.0 | 0.85 -Output | 0.0024359 | 0.0024359 | 0.0024359 | 0.0 | 0.07 -Modify | 0.049582 | 0.049582 | 0.049582 | 0.0 | 1.37 -Other | | 0.01537 | | | 0.42 +Pair | 7.9896 | 7.9896 | 7.9896 | 0.0 | 96.33 +Neigh | 0.13503 | 0.13503 | 0.13503 | 0.0 | 1.63 +Comm | 0.053102 | 0.053102 | 0.053102 | 0.0 | 0.64 +Output | 0.0035691 | 0.0035691 | 0.0035691 | 0.0 | 0.04 +Modify | 0.091417 | 0.091417 | 0.091417 | 0.0 | 1.10 +Other | | 0.02167 | | | 0.26 -Nlocal: 23328.0 ave 23328.0 max 23328.0 min +Nlocal: 23328.0 ave 23328 max 23328 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 22235.0 ave 22235.0 max 22235.0 min +Nghost: 22235.0 ave 22235 max 22235 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 2183715.0 ave 2183715.0 max 2183715.0 min +Neighs: 2.18372e+06 ave 2.18372e+06 max 2.18372e+06 min Histogram: 1 0 0 0 0 0 0 0 0 0 Total # of neighbors = 2183715 -Ave neighs/atom = 93.60918209876543 +Ave neighs/atom = 93.609182 Neighbor list builds = 1 Dangerous builds = 0 unfix 2 @@ -102,15 +102,12 @@ MSST parameters: Initial volume calculated on first step Initial energy calculated on first step -# this is needed to make etotal equal the MSST conserved quantity -fix_modify msst energy yes - variable dhug equal f_msst[1] variable dray equal f_msst[2] variable lgr_vel equal f_msst[3] variable lgr_pos equal f_msst[4] -thermo_style custom step temp ke pe lx ly lz pxx pyy pzz etotal v_dhug v_dray v_lgr_vel v_lgr_pos f_msst +thermo_style custom step temp ke pe lx ly lz pxx pyy pzz econserve v_dhug v_dray v_lgr_vel v_lgr_pos f_msst #dump id all atom 50 dump.msst @@ -126,42 +123,42 @@ Fix MSST p0 = 8106.7886 Fix MSST e0 = -151.14112 Fix MSST initial strain rate of -0.032011238 established by reducing temperature by factor of 0.01 Per MPI rank memory allocation (min/avg/max) = 18.98 | 18.98 | 18.98 Mbytes -Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz TotEng v_dhug v_dray v_lgr_vel v_lgr_pos f_msst - 100 301.02788 907.67474 -1058.8159 96.4602 96.4602 96.4602 8242.1214 8202.9779 8095.8693 -151.14112 1.5203428 -10.919311 0 0 9.1684318 - 110 297.71411 897.68288 -1048.8859 96.4602 96.4602 96.399397 8347.6253 8303.7121 8220.7572 -151.20299 1.439058 28.652258 0.017649501 -0.55980494 5.7336721 - 120 295.64308 891.43821 -1042.72 96.4602 96.4602 96.340496 8431.6742 8379.2441 8331.5304 -151.28174 1.3655893 56.776734 0.034747125 -1.119263 2.3808018 - 130 296.02228 892.5816 -1043.9407 96.4602 96.4602 96.283468 8456.2492 8412.6368 8392.5853 -151.35912 1.2945465 37.811981 0.05130089 -1.6783851 -0.87840575 - 140 298.19024 899.11855 -1050.5482 96.4602 96.4602 96.228236 8430.5151 8415.6802 8414.2537 -151.42965 1.2243399 -18.01985 0.067333442 -2.2371818 -4.0330712 - 150 300.86421 907.18122 -1058.6966 96.4602 96.4602 96.174681 8399.4697 8396.2236 8420.9004 -151.51534 1.1598278 -86.5197 0.082879112 -2.7956634 -7.0824881 - 160 303.34119 914.64996 -1066.2388 96.4602 96.4602 96.122673 8388.3438 8360.5024 8428.751 -151.58881 1.0977647 -151.64553 0.097975827 -3.353839 -10.033902 - 170 304.87769 919.28288 -1070.961 96.4602 96.4602 96.072088 8408.8694 8333.4337 8449.5665 -151.67812 1.044322 -201.80899 0.11265931 -3.9117174 -12.897768 - 180 304.99 919.62151 -1071.3588 96.4602 96.4602 96.022824 8461.5542 8343.1436 8484.9824 -151.73733 0.99203387 -235.51793 0.12695926 -4.4693063 -15.685622 - 190 305.1148 919.99782 -1071.7807 96.4602 96.4602 95.9748 8498.7562 8371.4217 8514.4473 -151.78288 0.93937416 -273.43964 0.1408996 -5.0266132 -18.403999 - 200 306.45829 924.0488 -1075.8787 96.4602 96.4602 95.927931 8488.9509 8385.2408 8529.6443 -151.82991 0.88654815 -324.00777 0.15450451 -5.583645 -21.055149 -Loop time of 7.9807 on 1 procs for 100 steps with 23328 atoms +Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz Econserve v_dhug v_dray v_lgr_vel v_lgr_pos f_msst + 100 301.02788 907.67474 -1067.9843 96.4602 96.4602 96.4602 8242.1214 8202.9779 8095.8693 -151.14112 1.5203428 -10.919311 0 0 9.1684318 + 110 297.71411 897.68288 -1054.6195 96.4602 96.4602 96.399397 8347.6253 8303.7121 8220.7572 -151.20299 1.439058 28.652258 0.017649501 -0.55980494 5.7336721 + 120 295.64308 891.43821 -1045.1008 96.4602 96.4602 96.340496 8431.6742 8379.2441 8331.5304 -151.28174 1.3655893 56.776734 0.034747125 -1.119263 2.3808018 + 130 296.02228 892.5816 -1043.0623 96.4602 96.4602 96.283468 8456.2492 8412.6368 8392.5853 -151.35912 1.2945465 37.811981 0.05130089 -1.6783851 -0.87840575 + 140 298.19024 899.11855 -1046.5151 96.4602 96.4602 96.228236 8430.5151 8415.6802 8414.2537 -151.42965 1.2243399 -18.01985 0.067333442 -2.2371818 -4.0330712 + 150 300.86421 907.18122 -1051.6141 96.4602 96.4602 96.174681 8399.4697 8396.2236 8420.9004 -151.51534 1.1598278 -86.5197 0.082879112 -2.7956634 -7.0824881 + 160 303.34119 914.64996 -1056.2049 96.4602 96.4602 96.122673 8388.3438 8360.5024 8428.751 -151.58881 1.0977647 -151.64553 0.097975827 -3.353839 -10.033902 + 170 304.87769 919.28288 -1058.0632 96.4602 96.4602 96.072088 8408.8694 8333.4337 8449.5665 -151.67812 1.044322 -201.80899 0.11265931 -3.9117174 -12.897768 + 180 304.99 919.62151 -1055.6732 96.4602 96.4602 96.022824 8461.5542 8343.1436 8484.9824 -151.73733 0.99203387 -235.51793 0.12695926 -4.4693063 -15.685622 + 190 305.1148 919.99782 -1053.3767 96.4602 96.4602 95.9748 8498.7562 8371.4217 8514.4473 -151.78288 0.93937416 -273.43964 0.1408996 -5.0266132 -18.403999 + 200 306.45829 924.0488 -1054.8236 96.4602 96.4602 95.927931 8488.9509 8385.2408 8529.6443 -151.82991 0.88654815 -324.00777 0.15450451 -5.583645 -21.055149 +Loop time of 13.2508 on 1 procs for 100 steps with 23328 atoms -Performance: 2.165 ns/day, 11.084 hours/ns, 12.530 timesteps/s +Performance: 1.304 ns/day, 18.404 hours/ns, 7.547 timesteps/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 | 6.8295 | 6.8295 | 6.8295 | 0.0 | 85.58 -Neigh | 0.13211 | 0.13211 | 0.13211 | 0.0 | 1.66 -Comm | 0.032946 | 0.032946 | 0.032946 | 0.0 | 0.41 -Output | 0.02301 | 0.02301 | 0.02301 | 0.0 | 0.29 -Modify | 0.94857 | 0.94857 | 0.94857 | 0.0 | 11.89 -Other | | 0.01452 | | | 0.18 +Pair | 11.716 | 11.716 | 11.716 | 0.0 | 88.41 +Neigh | 0.26843 | 0.26843 | 0.26843 | 0.0 | 2.03 +Comm | 0.056694 | 0.056694 | 0.056694 | 0.0 | 0.43 +Output | 0.029758 | 0.029758 | 0.029758 | 0.0 | 0.22 +Modify | 1.1599 | 1.1599 | 1.1599 | 0.0 | 8.75 +Other | | 0.02035 | | | 0.15 -Nlocal: 23328.0 ave 23328.0 max 23328.0 min +Nlocal: 23328.0 ave 23328 max 23328 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 22205.0 ave 22205.0 max 22205.0 min +Nghost: 22205.0 ave 22205 max 22205 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 2183494.0 ave 2183494.0 max 2183494.0 min +Neighs: 2.18349e+06 ave 2.18349e+06 max 2.18349e+06 min Histogram: 1 0 0 0 0 0 0 0 0 0 Total # of neighbors = 2183494 -Ave neighs/atom = 93.5997085048011 +Ave neighs/atom = 93.599709 Neighbor list builds = 2 Dangerous builds = 0 -Total wall time: 0:00:11 +Total wall time: 0:00:22 diff --git a/examples/msst/log.30Jun20.msst.g++.4 b/examples/msst/log.08Feb21.msst.g++.4 similarity index 66% rename from examples/msst/log.30Jun20.msst.g++.4 rename to examples/msst/log.08Feb21.msst.g++.4 index a98b957b50..7b5425d8a4 100644 --- a/examples/msst/log.30Jun20.msst.g++.4 +++ b/examples/msst/log.08Feb21.msst.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (30 Jun 2020) +LAMMPS (24 Dec 2020) using 1 OpenMP thread(s) per MPI task # LJ test of msst shock dynamics @@ -10,18 +10,18 @@ atom_style atomic timestep 1e-03 lattice fcc 5.3589 -Lattice spacing in x,y,z = 5.3589 5.3589 5.3589 +Lattice spacing in x,y,z = 5.3589000 5.3589000 5.3589000 ## Specify the box as a given number of unit cells. region box1 block 0 18 0 18 0 18 units lattice ## Instantiate the system. create_box 1 box1 -Created orthogonal box = (0 0 0) to (96.4602 96.4602 96.4602) +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (96.460200 96.460200 96.460200) 1 by 2 by 2 MPI processor grid create_atoms 1 region box1 Created 23328 atoms - create_atoms CPU = 0.003 seconds + create_atoms CPU = 0.080 seconds mass 1 40.00 @@ -63,30 +63,30 @@ Step Temp E_pair E_mol TotEng Press 80 299.37658 -1053.8476 0 -151.1519 8352.9467 90 304.24026 -1068.4941 0 -151.13319 8218.1594 100 301.9683 -1061.6332 0 -151.12284 8244.1277 -Loop time of 0.995305 on 4 procs for 100 steps with 23328 atoms +Loop time of 5.66225 on 4 procs for 100 steps with 23328 atoms -Performance: 17.362 ns/day, 1.382 hours/ns, 100.472 timesteps/s -98.2% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 3.052 ns/day, 7.864 hours/ns, 17.661 timesteps/s +78.0% 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.88957 | 0.90144 | 0.91686 | 1.1 | 90.57 -Neigh | 0.016824 | 0.016945 | 0.017106 | 0.1 | 1.70 -Comm | 0.039949 | 0.054853 | 0.068734 | 4.8 | 5.51 -Output | 0.00076342 | 0.0010425 | 0.0018687 | 1.5 | 0.10 -Modify | 0.012839 | 0.012946 | 0.013153 | 0.1 | 1.30 -Other | | 0.008074 | | | 0.81 +Pair | 2.6416 | 2.7792 | 2.9335 | 6.4 | 49.08 +Neigh | 0.029522 | 0.037458 | 0.054701 | 5.3 | 0.66 +Comm | 2.1998 | 2.4099 | 2.5822 | 8.8 | 42.56 +Output | 0.10457 | 0.10816 | 0.11265 | 1.0 | 1.91 +Modify | 0.023462 | 0.033517 | 0.044696 | 4.9 | 0.59 +Other | | 0.294 | | | 5.19 -Nlocal: 5832.0 ave 5850.0 max 5813.0 min +Nlocal: 5832.00 ave 5850 max 5813 min Histogram: 1 0 0 0 1 1 0 0 0 1 -Nghost: 10571.0 ave 10590.0 max 10553.0 min +Nghost: 10571.0 ave 10590 max 10553 min Histogram: 1 0 0 0 1 1 0 0 0 1 -Neighs: 545761.75 ave 548069.0 max 543643.0 min +Neighs: 545762.0 ave 548069 max 543643 min Histogram: 1 0 0 1 0 1 0 0 0 1 Total # of neighbors = 2183047 -Ave neighs/atom = 93.58054698216735 +Ave neighs/atom = 93.580547 Neighbor list builds = 1 Dangerous builds = 0 unfix 2 @@ -102,15 +102,12 @@ MSST parameters: Initial volume calculated on first step Initial energy calculated on first step -# this is needed to make etotal equal the MSST conserved quantity -fix_modify msst energy yes - variable dhug equal f_msst[1] variable dray equal f_msst[2] variable lgr_vel equal f_msst[3] variable lgr_pos equal f_msst[4] -thermo_style custom step temp ke pe lx ly lz pxx pyy pzz etotal v_dhug v_dray v_lgr_vel v_lgr_pos f_msst +thermo_style custom step temp ke pe lx ly lz pxx pyy pzz econserve v_dhug v_dray v_lgr_vel v_lgr_pos f_msst #dump id all atom 50 dump.msst @@ -126,42 +123,42 @@ Fix MSST p0 = 8186.2393 Fix MSST e0 = -151.12284 Fix MSST initial strain rate of -0.031900492 established by reducing temperature by factor of 0.01 Per MPI rank memory allocation (min/avg/max) = 8.535 | 8.535 | 8.535 Mbytes -Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz TotEng v_dhug v_dray v_lgr_vel v_lgr_pos f_msst - 100 298.94862 901.40524 -1052.5281 96.4602 96.4602 96.4602 8270.9151 8253.4662 8175.4946 -151.12284 1.5098415 -10.744684 0 0 9.1051034 - 110 296.49826 894.01679 -1045.224 96.4602 96.4602 96.399609 8338.4937 8340.5504 8294.9909 -151.20723 1.4327442 23.73173 0.017588167 -0.55980562 5.6560557 - 120 295.97607 892.44225 -1043.7239 96.4602 96.4602 96.340904 8377.6797 8385.921 8378.3042 -151.28169 1.3584606 24.672199 0.034628719 -1.1192655 2.2953307 - 130 297.34893 896.58179 -1047.945 96.4602 96.4602 96.284029 8379.2516 8394.8806 8416.2669 -151.36322 1.2881444 -17.170168 0.051138087 -1.6783905 -0.96527961 - 140 299.71946 903.72952 -1055.1787 96.4602 96.4602 96.22888 8357.0358 8388.6743 8424.3188 -151.44922 1.221125 -86.501161 0.067146366 -2.2371908 -4.1195182 - 150 301.79241 909.97998 -1061.4976 96.4602 96.4602 96.175327 8332.7118 8393.7027 8434.6177 -151.51765 1.1560248 -151.34689 0.082691635 -2.7956762 -7.172084 - 160 303.18249 914.17141 -1065.7667 96.4602 96.4602 96.123244 8321.1154 8413.1248 8454.5596 -151.59527 1.0977348 -204.4864 0.097810061 -3.3538554 -10.134387 - 170 304.34089 917.66428 -1069.3198 96.4602 96.4602 96.072522 8327.6227 8431.1177 8467.92 -151.65554 1.0390628 -262.29751 0.11253339 -3.9117366 -13.01442 - 180 305.86343 922.25514 -1073.9633 96.4602 96.4602 96.023049 8345.1853 8432.5201 8461.3276 -151.70813 0.97863988 -338.30793 0.12689398 -4.4693274 -15.815462 - 190 307.44054 927.01052 -1078.7892 96.4602 96.4602 95.9747 8368.4081 8427.5109 8450.584 -151.77867 0.92329631 -416.89333 0.1409285 -5.0266346 -18.541801 - 200 308.43619 930.01265 -1081.8521 96.4602 96.4602 95.927349 8393.2058 8443.1265 8454.6733 -151.83947 0.8723277 -479.24592 0.1546734 -5.5836644 -21.20378 -Loop time of 2.16596 on 4 procs for 100 steps with 23328 atoms +Step Temp KinEng PotEng Lx Ly Lz Pxx Pyy Pzz Econserve v_dhug v_dray v_lgr_vel v_lgr_pos f_msst + 100 298.94862 901.40524 -1061.6332 96.4602 96.4602 96.4602 8270.9151 8253.4662 8175.4946 -151.12284 1.5098415 -10.744684 0 0 9.1051034 + 110 296.49826 894.01679 -1050.8801 96.4602 96.4602 96.399609 8338.4937 8340.5504 8294.9909 -151.20723 1.4327442 23.73173 0.017588167 -0.55980562 5.6560557 + 120 295.97607 892.44225 -1046.0193 96.4602 96.4602 96.340904 8377.6797 8385.921 8378.3042 -151.28169 1.3584606 24.672199 0.034628719 -1.1192655 2.2953307 + 130 297.34893 896.58179 -1046.9797 96.4602 96.4602 96.284029 8379.2516 8394.8806 8416.2669 -151.36322 1.2881444 -17.170168 0.051138087 -1.6783905 -0.96527961 + 140 299.71946 903.72952 -1051.0592 96.4602 96.4602 96.22888 8357.0358 8388.6743 8424.3188 -151.44922 1.221125 -86.501161 0.067146366 -2.2371908 -4.1195182 + 150 301.79241 909.97998 -1054.3256 96.4602 96.4602 96.175327 8332.7118 8393.7027 8434.6177 -151.51765 1.1560248 -151.34689 0.082691635 -2.7956762 -7.172084 + 160 303.18249 914.17141 -1055.6323 96.4602 96.4602 96.123244 8321.1154 8413.1248 8454.5596 -151.59527 1.0977348 -204.4864 0.097810061 -3.3538554 -10.134387 + 170 304.34089 917.66428 -1056.3054 96.4602 96.4602 96.072522 8327.6227 8431.1177 8467.92 -151.65554 1.0390628 -262.29751 0.11253339 -3.9117366 -13.01442 + 180 305.86343 922.25514 -1058.1478 96.4602 96.4602 96.023049 8345.1853 8432.5201 8461.3276 -151.70813 0.97863988 -338.30793 0.12689398 -4.4693274 -15.815462 + 190 307.44054 927.01052 -1060.2474 96.4602 96.4602 95.9747 8368.4081 8427.5109 8450.584 -151.77867 0.92329631 -416.89333 0.1409285 -5.0266346 -18.541801 + 200 308.43619 930.01265 -1060.6483 96.4602 96.4602 95.927349 8393.2058 8443.1265 8454.6733 -151.83947 0.8723277 -479.24592 0.1546734 -5.5836644 -21.20378 +Loop time of 11.445 on 4 procs for 100 steps with 23328 atoms -Performance: 7.978 ns/day, 3.008 hours/ns, 46.169 timesteps/s -98.5% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 1.510 ns/day, 15.896 hours/ns, 8.737 timesteps/s +77.1% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 1.7569 | 1.7822 | 1.8059 | 1.6 | 82.28 -Neigh | 0.034235 | 0.03546 | 0.037677 | 0.7 | 1.64 -Comm | 0.065427 | 0.091172 | 0.11833 | 7.4 | 4.21 -Output | 0.0062776 | 0.0065615 | 0.0074117 | 0.6 | 0.30 -Modify | 0.24069 | 0.2423 | 0.24655 | 0.5 | 11.19 -Other | | 0.008271 | | | 0.38 +Pair | 3.7358 | 4.0193 | 4.3315 | 10.5 | 35.12 +Neigh | 0.05921 | 0.078071 | 0.089958 | 4.1 | 0.68 +Comm | 2.3136 | 2.683 | 3.054 | 16.3 | 23.44 +Output | 0.038525 | 0.040035 | 0.044559 | 1.3 | 0.35 +Modify | 4.2814 | 4.3709 | 4.4749 | 4.1 | 38.19 +Other | | 0.2537 | | | 2.22 -Nlocal: 5832.0 ave 5874.0 max 5803.0 min +Nlocal: 5832.00 ave 5874 max 5803 min Histogram: 2 0 0 0 0 1 0 0 0 1 -Nghost: 10563.75 ave 10588.0 max 10526.0 min +Nghost: 10563.8 ave 10588 max 10526 min Histogram: 1 0 0 0 1 0 0 0 0 2 -Neighs: 545708.5 ave 550787.0 max 542668.0 min +Neighs: 545708.0 ave 550787 max 542668 min Histogram: 2 0 0 0 1 0 0 0 0 1 Total # of neighbors = 2182834 -Ave neighs/atom = 93.57141632373114 +Ave neighs/atom = 93.571416 Neighbor list builds = 2 Dangerous builds = 0 -Total wall time: 0:00:03 +Total wall time: 0:00:17 diff --git a/examples/reax/CHO/ffield.reax.cho b/examples/reax/CHO/ffield.reax.cho old mode 100755 new mode 100644 diff --git a/examples/tersoff/in.hBN_shift b/examples/tersoff/in.hBN_shift index 0a72235278..82e71e7b39 100644 --- a/examples/tersoff/in.hBN_shift +++ b/examples/tersoff/in.hBN_shift @@ -23,9 +23,9 @@ neigh_modify delay 0 neigh_modify check yes #### Simulation settings #### -timestep 0.001 -velocity all create 300.0 4928459 loop geom -fix thermostat all nve +timestep 0.001 +velocity all create 300.0 4928459 loop geom +fix thermostat all nve ############# Output ############### thermo 100 @@ -34,4 +34,4 @@ thermo_style custom step etotal pe ke temp thermo_modify line one format float %20.16g lost warn ###### Run molecular dynamics ###### -run 1000 +run 1000 diff --git a/examples/tersoff/in.tersoff b/examples/tersoff/in.tersoff index f2be2ae761..90b18fa0a1 100644 --- a/examples/tersoff/in.tersoff +++ b/examples/tersoff/in.tersoff @@ -7,7 +7,7 @@ units metal atom_style atomic atom_modify map array boundary p p p -atom_modify sort 0 0.0 +atom_modify sort 0 0.0 # temperature @@ -35,45 +35,45 @@ region myreg block 0 4 & create_box 8 myreg create_atoms 1 region myreg & - basis 1 1 & - basis 2 2 & - basis 3 3 & - basis 4 4 & - basis 5 5 & - basis 6 6 & - basis 7 7 & - basis 8 8 + basis 1 1 & + basis 2 2 & + basis 3 3 & + basis 4 4 & + basis 5 5 & + basis 6 6 & + basis 7 7 & + basis 8 8 mass * 28.06 -velocity all create $t 5287287 loop geom +velocity all create $t 5287287 loop geom # Equilibrate using Tersoff model for silicon pair_style tersoff -pair_coeff * * Si.tersoff Si Si Si Si Si Si Si Si +pair_coeff * * Si.tersoff Si Si Si Si Si Si Si Si +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes run 100 -write_restart restart.equil +write_restart restart.equil # Test Tersoff/Mod model for Si clear -read_restart restart.equil +read_restart restart.equil pair_style tersoff/mod -pair_coeff * * Si.tersoff.mod Si Si Si Si Si Si Si Si +pair_coeff * * Si.tersoff.mod Si Si Si Si Si Si Si Si +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -82,14 +82,14 @@ run 100 # Test Tersoff/Mod/C model for Si clear -read_restart restart.equil +read_restart restart.equil newton on on pair_style tersoff/mod/c -pair_coeff * * Si.tersoff.modc Si Si Si Si Si Si Si Si +pair_coeff * * Si.tersoff.modc Si Si Si Si Si Si Si Si +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -98,17 +98,17 @@ run 100 # Test Tersoff model for B/N/C clear -read_restart restart.equil +read_restart restart.equil -variable fac equal 0.6 -change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap +variable fac equal 0.6 +change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap pair_style tersoff -pair_coeff * * BNC.tersoff N N N C B B C B +pair_coeff * * BNC.tersoff N N N C B B C B +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -117,19 +117,20 @@ run 100 # Test Tersoff model for B/N/C clear -read_restart restart.equil +read_restart restart.equil -variable fac equal 0.6 -change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap +variable fac equal 0.6 +change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap pair_style tersoff shift 0.05 -pair_coeff * * BNC.tersoff N N N C B B C B +pair_coeff * * BNC.tersoff N N N C B B C B +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes run 100 +shell rm restart.equil diff --git a/examples/tersoff/log.13Jan21.tersoff.g++.1 b/examples/tersoff/log.09Feb21.tersoff.g++.1 similarity index 59% rename from examples/tersoff/log.13Jan21.tersoff.g++.1 rename to examples/tersoff/log.09Feb21.tersoff.g++.1 index b8833a2586..d636f28ae5 100644 --- a/examples/tersoff/log.13Jan21.tersoff.g++.1 +++ b/examples/tersoff/log.09Feb21.tersoff.g++.1 @@ -1,5 +1,4 @@ LAMMPS (24 Dec 2020) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) using 1 OpenMP thread(s) per MPI task # Simple regression tests for Tersoff potentials @@ -10,7 +9,7 @@ units metal atom_style atomic atom_modify map array boundary p p p -atom_modify sort 0 0.0 +atom_modify sort 0 0.0 # temperature @@ -28,26 +27,26 @@ region myreg block 0 4 0 4 create_box 8 myreg Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) 1 by 1 by 1 MPI processor grid -create_atoms 1 region myreg basis 1 1 basis 2 2 basis 3 3 basis 4 4 basis 5 5 basis 6 6 basis 7 7 basis 8 8 +create_atoms 1 region myreg basis 1 1 basis 2 2 basis 3 3 basis 4 4 basis 5 5 basis 6 6 basis 7 7 basis 8 8 Created 512 atoms - create_atoms CPU = 0.000 seconds + create_atoms CPU = 0.001 seconds mass * 28.06 -velocity all create $t 5287287 loop geom -velocity all create 1800 5287287 loop geom +velocity all create $t 5287287 loop geom +velocity all create 1800 5287287 loop geom # Equilibrate using Tersoff model for silicon pair_style tersoff -pair_coeff * * Si.tersoff Si Si Si Si Si Si Si Si +pair_coeff * * Si.tersoff Si Si Si Si Si Si Si Si Reading tersoff potential file Si.tersoff with DATE: 2007-10-25 +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 fix 1 all nvt temp 1800 $t 0.1 fix 1 all nvt temp 1800 1800 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -65,32 +64,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 2.985 | 2.985 | 2.985 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1800 -2370.771 0 -2251.8775 12511.419 - 10 1144.7447 -2327.3227 0 -2251.7759 21852.599 - 20 770.19243 -2302.1547 0 -2251.7633 22286.587 - 30 1059.4324 -2320.1988 0 -2251.8159 6242.222 - 40 1000.972 -2314.6531 0 -2251.796 -3069.9273 - 50 803.91758 -2300.1702 0 -2251.7834 -7154.1383 - 60 761.38639 -2296.1731 0 -2251.7928 -14520.921 - 70 750.57677 -2294.3086 0 -2251.7965 -21400.198 - 80 676.66672 -2288.2634 0 -2251.7899 -23480.201 - 90 640.24103 -2284.6678 0 -2251.7848 -20659.983 - 100 742.67188 -2290.0616 0 -2251.7855 -16211.799 -Loop time of 0.107338 on 1 procs for 100 steps with 512 atoms +Step Temp E_pair TotEng Econserve Press + 0 1800 -2370.771 -2251.8775 -2251.8775 12511.419 + 10 1144.7447 -2327.3227 -2251.7101 -2251.7759 21852.599 + 20 770.19243 -2302.1547 -2251.282 -2251.7633 22286.587 + 30 1059.4324 -2320.1988 -2250.2213 -2251.8159 6242.222 + 40 1000.972 -2314.6531 -2248.5369 -2251.796 -3069.9273 + 50 803.91758 -2300.1702 -2247.0699 -2251.7834 -7154.1383 + 60 761.38639 -2296.1731 -2245.882 -2251.7928 -14520.921 + 70 750.57677 -2294.3086 -2244.7316 -2251.7965 -21400.198 + 80 676.66672 -2288.2634 -2243.5683 -2251.7899 -23480.201 + 90 640.24103 -2284.6678 -2242.3786 -2251.7848 -20659.983 + 100 742.67188 -2290.0616 -2241.0067 -2251.7855 -16211.799 +Loop time of 0.447105 on 1 procs for 100 steps with 512 atoms -Performance: 80.493 ns/day, 0.298 hours/ns, 931.637 timesteps/s -98.6% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 19.324 ns/day, 1.242 hours/ns, 223.661 timesteps/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.10455 | 0.10455 | 0.10455 | 0.0 | 97.40 -Neigh | 0.001115 | 0.001115 | 0.001115 | 0.0 | 1.04 -Comm | 0.000482 | 0.000482 | 0.000482 | 0.0 | 0.45 -Output | 0.000194 | 0.000194 | 0.000194 | 0.0 | 0.18 -Modify | 0.000787 | 0.000787 | 0.000787 | 0.0 | 0.73 -Other | | 0.000209 | | | 0.19 +Pair | 0.4373 | 0.4373 | 0.4373 | 0.0 | 97.81 +Neigh | 0.0021279 | 0.0021279 | 0.0021279 | 0.0 | 0.48 +Comm | 0.0021732 | 0.0021732 | 0.0021732 | 0.0 | 0.49 +Output | 0.00020552 | 0.00020552 | 0.00020552 | 0.0 | 0.05 +Modify | 0.0047524 | 0.0047524 | 0.0047524 | 0.0 | 1.06 +Other | | 0.0005488 | | | 0.12 Nlocal: 512.000 ave 512 max 512 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -106,15 +105,14 @@ Ave neighs/atom = 16.414062 Neighbor list builds = 2 Dangerous builds = 0 -write_restart restart.equil +write_restart restart.equil System init for write_restart ... # Test Tersoff/Mod model for Si clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) using 1 OpenMP thread(s) per MPI task -read_restart restart.equil +read_restart restart.equil Reading restart file ... restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 restoring atom style atomic from restart @@ -122,19 +120,19 @@ Reading restart file ... 1 by 1 by 1 MPI processor grid pair style tersoff stores no restart info 512 atoms - read_restart CPU = 0.006 seconds + read_restart CPU = 0.001 seconds pair_style tersoff/mod -pair_coeff * * Si.tersoff.mod Si Si Si Si Si Si Si Si +pair_coeff * * Si.tersoff.mod Si Si Si Si Si Si Si Si Reading tersoff/mod potential file Si.tersoff.mod with DATE: 2013-07-26 +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 fix 1 all nvt temp 1800 $t 0.1 fix 1 all nvt temp 1800 1800 0.1 Resetting global fix info from restart file: fix style: nvt, fix ID: 1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -153,32 +151,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 2.979 | 2.979 | 2.979 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 742.67188 -2210.6446 0 -2172.3685 -6444.2163 - 110 1135.5853 -2234.6974 0 -2172.3908 113.80404 - 120 1462.8415 -2253.8186 0 -2172.3853 10922.229 - 130 1755.9617 -2270.5152 0 -2172.3964 18780.707 - 140 1895.1939 -2277.1484 0 -2172.3965 22357.106 - 150 1869.5375 -2273.2734 0 -2172.3851 22616.492 - 160 1824.0448 -2268.4342 0 -2172.393 19254.299 - 170 1637.9038 -2254.5219 0 -2172.3815 15904.928 - 180 1451.9871 -2240.7199 0 -2172.3771 12064.754 - 190 1362.8248 -2233.1942 0 -2172.3789 7970.534 - 200 1341.1467 -2229.8951 0 -2172.3717 6244.8542 -Loop time of 0.128972 on 1 procs for 100 steps with 512 atoms +Step Temp E_pair TotEng Econserve Press + 100 742.67188 -2210.6446 -2161.5897 -2172.3685 -6444.2163 + 110 1135.5853 -2234.6974 -2159.6898 -2172.3908 113.80404 + 120 1462.8415 -2253.8186 -2157.1951 -2172.3853 10922.229 + 130 1755.9617 -2270.5152 -2154.5306 -2172.3964 18780.707 + 140 1895.1939 -2277.1484 -2151.9672 -2172.3965 22357.106 + 150 1869.5375 -2273.2734 -2149.7868 -2172.3851 22616.492 + 160 1824.0448 -2268.4342 -2147.9525 -2172.393 19254.299 + 170 1637.9038 -2254.5219 -2146.3352 -2172.3815 15904.928 + 180 1451.9871 -2240.7199 -2144.8134 -2172.3771 12064.754 + 190 1362.8248 -2233.1942 -2143.177 -2172.3789 7970.534 + 200 1341.1467 -2229.8951 -2141.3097 -2172.3717 6244.8542 +Loop time of 0.428851 on 1 procs for 100 steps with 512 atoms -Performance: 66.991 ns/day, 0.358 hours/ns, 775.362 timesteps/s -98.6% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 20.147 ns/day, 1.191 hours/ns, 233.181 timesteps/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.12498 | 0.12498 | 0.12498 | 0.0 | 96.91 -Neigh | 0.002322 | 0.002322 | 0.002322 | 0.0 | 1.80 -Comm | 0.000537 | 0.000537 | 0.000537 | 0.0 | 0.42 -Output | 0.000177 | 0.000177 | 0.000177 | 0.0 | 0.14 -Modify | 0.000761 | 0.000761 | 0.000761 | 0.0 | 0.59 -Other | | 0.000192 | | | 0.15 +Pair | 0.41656 | 0.41656 | 0.41656 | 0.0 | 97.13 +Neigh | 0.0043387 | 0.0043387 | 0.0043387 | 0.0 | 1.01 +Comm | 0.0025339 | 0.0025339 | 0.0025339 | 0.0 | 0.59 +Output | 0.00019503 | 0.00019503 | 0.00019503 | 0.0 | 0.05 +Modify | 0.0047224 | 0.0047224 | 0.0047224 | 0.0 | 1.10 +Other | | 0.0004995 | | | 0.12 Nlocal: 512.000 ave 512 max 512 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -197,9 +195,8 @@ Dangerous builds = 0 # Test Tersoff/Mod/C model for Si clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) using 1 OpenMP thread(s) per MPI task -read_restart restart.equil +read_restart restart.equil Reading restart file ... restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 restoring atom style atomic from restart @@ -210,16 +207,16 @@ Reading restart file ... read_restart CPU = 0.001 seconds newton on on pair_style tersoff/mod/c -pair_coeff * * Si.tersoff.modc Si Si Si Si Si Si Si Si +pair_coeff * * Si.tersoff.modc Si Si Si Si Si Si Si Si Reading tersoff/mod/c potential file Si.tersoff.modc with DATE: 2016-11-09 +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 fix 1 all nvt temp 1800 $t 0.1 fix 1 all nvt temp 1800 1800 0.1 Resetting global fix info from restart file: fix style: nvt, fix ID: 1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -238,32 +235,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 2.976 | 2.976 | 2.976 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 742.67188 -2221.9308 0 -2183.6547 -11721.269 - 110 1106.895 -2244.1196 0 -2183.6843 -2359.7819 - 120 1327.6674 -2256.3155 0 -2183.6767 7904.6604 - 130 1487.0219 -2264.3656 0 -2183.6707 14660.783 - 140 1709.1746 -2276.4761 0 -2183.6886 19298.791 - 150 1710.6528 -2274.1129 0 -2183.6764 22026.559 - 160 1651.0659 -2267.9877 0 -2183.6699 20916.722 - 170 1632.7705 -2264.7081 0 -2183.6777 17339.031 - 180 1477.693 -2252.4683 0 -2183.6706 12563.594 - 190 1310.8768 -2239.5419 0 -2183.6581 9591.0484 - 200 1356.7172 -2240.5315 0 -2183.668 5584.6734 -Loop time of 0.133106 on 1 procs for 100 steps with 512 atoms +Step Temp E_pair TotEng Econserve Press + 100 742.67188 -2221.9308 -2172.8759 -2183.6547 -11721.269 + 110 1106.895 -2244.1196 -2171.007 -2183.6843 -2359.7819 + 120 1327.6674 -2256.3155 -2168.6205 -2183.6767 7904.6604 + 130 1487.0219 -2264.3656 -2166.1449 -2183.6707 14660.783 + 140 1709.1746 -2276.4761 -2163.5818 -2183.6886 19298.791 + 150 1710.6528 -2274.1129 -2161.1209 -2183.6764 22026.559 + 160 1651.0659 -2267.9877 -2158.9316 -2183.6699 20916.722 + 170 1632.7705 -2264.7081 -2156.8605 -2183.6777 17339.031 + 180 1477.693 -2252.4683 -2154.8638 -2183.6706 12563.594 + 190 1310.8768 -2239.5419 -2152.9559 -2183.6581 9591.0484 + 200 1356.7172 -2240.5315 -2150.9177 -2183.668 5584.6734 +Loop time of 0.444872 on 1 procs for 100 steps with 512 atoms -Performance: 64.911 ns/day, 0.370 hours/ns, 751.281 timesteps/s -96.0% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 19.421 ns/day, 1.236 hours/ns, 224.784 timesteps/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.1291 | 0.1291 | 0.1291 | 0.0 | 96.99 -Neigh | 0.002343 | 0.002343 | 0.002343 | 0.0 | 1.76 -Comm | 0.0005 | 0.0005 | 0.0005 | 0.0 | 0.38 -Output | 0.000186 | 0.000186 | 0.000186 | 0.0 | 0.14 -Modify | 0.000786 | 0.000786 | 0.000786 | 0.0 | 0.59 -Other | | 0.000191 | | | 0.14 +Pair | 0.43275 | 0.43275 | 0.43275 | 0.0 | 97.28 +Neigh | 0.0042851 | 0.0042851 | 0.0042851 | 0.0 | 0.96 +Comm | 0.0024009 | 0.0024009 | 0.0024009 | 0.0 | 0.54 +Output | 0.00019312 | 0.00019312 | 0.00019312 | 0.0 | 0.04 +Modify | 0.0047414 | 0.0047414 | 0.0047414 | 0.0 | 1.07 +Other | | 0.0004966 | | | 0.11 Nlocal: 512.000 ave 512 max 512 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -282,9 +279,8 @@ Dangerous builds = 0 # Test Tersoff model for B/N/C clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) using 1 OpenMP thread(s) per MPI task -read_restart restart.equil +read_restart restart.equil Reading restart file ... restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 restoring atom style atomic from restart @@ -294,27 +290,27 @@ Reading restart file ... 512 atoms read_restart CPU = 0.001 seconds -variable fac equal 0.6 -change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap +variable fac equal 0.6 +change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap Changing box ... orthogonal box = (4.3448000 0.0000000 0.0000000) to (17.379200 21.724000 21.724000) orthogonal box = (4.3448000 4.3448000 0.0000000) to (17.379200 17.379200 21.724000) orthogonal box = (4.3448000 4.3448000 4.3448000) to (17.379200 17.379200 17.379200) pair_style tersoff -pair_coeff * * BNC.tersoff N N N C B B C B +pair_coeff * * BNC.tersoff N N N C B B C B Reading tersoff potential file BNC.tersoff with DATE: 2013-03-21 +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 fix 1 all nvt temp 1800 $t 0.1 fix 1 all nvt temp 1800 1800 0.1 Resetting global fix info from restart file: fix style: nvt, fix ID: 1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -333,32 +329,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 2.985 | 2.985 | 2.985 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 742.67188 -2973.8527 0 -2935.5766 3438975.9 - 110 4061.1085 -3183.2489 0 -2930.1208 2211712.7 - 120 4120.3231 -3187.0108 0 -2928.3047 2166764.3 - 130 3602.7602 -3158.5939 0 -2926.6167 2244475.7 - 140 3222.7773 -3141.7275 0 -2925.5369 2161607 - 150 3487.4703 -3163.7495 0 -2921.2462 2222150.2 - 160 3436.3009 -3169.4234 0 -2920.8775 2144368.7 - 170 3308.1796 -3170.3773 0 -2920.8967 2223612.9 - 180 3304.3776 -3178.7805 0 -2920.102 2072546.6 - 190 3217.3561 -3180.7963 0 -2918.4548 2118776.2 - 200 3041.6832 -3176.1794 0 -2916.5787 2130124.6 -Loop time of 0.134621 on 1 procs for 100 steps with 512 atoms +Step Temp E_pair TotEng Econserve Press + 100 742.67188 -2973.8527 -2924.7978 -2935.5766 3438975.9 + 110 4061.1085 -3183.2489 -2915.0049 -2930.1208 2211712.7 + 120 4120.3231 -3187.0108 -2914.8555 -2928.3047 2166764.3 + 130 3602.7602 -3158.5939 -2920.6246 -2926.6167 2244475.7 + 140 3222.7773 -3141.7275 -2928.8568 -2925.5369 2161607 + 150 3487.4703 -3163.7495 -2933.3954 -2921.2462 2222150.2 + 160 3436.3009 -3169.4234 -2942.449 -2920.8775 2144368.7 + 170 3308.1796 -3170.3773 -2951.8656 -2920.8967 2223612.9 + 180 3304.3776 -3178.7805 -2960.52 -2920.102 2072546.6 + 190 3217.3561 -3180.7963 -2968.2837 -2918.4548 2118776.2 + 200 3041.6832 -3176.1794 -2975.2703 -2916.5787 2130124.6 +Loop time of 0.55964 on 1 procs for 100 steps with 512 atoms -Performance: 64.180 ns/day, 0.374 hours/ns, 742.826 timesteps/s -98.6% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 15.438 ns/day, 1.555 hours/ns, 178.686 timesteps/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.12837 | 0.12837 | 0.12837 | 0.0 | 95.35 -Neigh | 0.004553 | 0.004553 | 0.004553 | 0.0 | 3.38 -Comm | 0.000601 | 0.000601 | 0.000601 | 0.0 | 0.45 -Output | 0.000177 | 0.000177 | 0.000177 | 0.0 | 0.13 -Modify | 0.000742 | 0.000742 | 0.000742 | 0.0 | 0.55 -Other | | 0.000181 | | | 0.13 +Pair | 0.54187 | 0.54187 | 0.54187 | 0.0 | 96.83 +Neigh | 0.0087171 | 0.0087171 | 0.0087171 | 0.0 | 1.56 +Comm | 0.0036685 | 0.0036685 | 0.0036685 | 0.0 | 0.66 +Output | 0.00019526 | 0.00019526 | 0.00019526 | 0.0 | 0.03 +Modify | 0.0047348 | 0.0047348 | 0.0047348 | 0.0 | 0.85 +Other | | 0.0004504 | | | 0.08 Nlocal: 512.000 ave 512 max 512 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -377,9 +373,8 @@ Dangerous builds = 0 # Test Tersoff model for B/N/C clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) using 1 OpenMP thread(s) per MPI task -read_restart restart.equil +read_restart restart.equil Reading restart file ... restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 restoring atom style atomic from restart @@ -389,27 +384,27 @@ Reading restart file ... 512 atoms read_restart CPU = 0.001 seconds -variable fac equal 0.6 -change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap +variable fac equal 0.6 +change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap Changing box ... orthogonal box = (4.3448000 0.0000000 0.0000000) to (17.379200 21.724000 21.724000) orthogonal box = (4.3448000 4.3448000 0.0000000) to (17.379200 17.379200 21.724000) orthogonal box = (4.3448000 4.3448000 4.3448000) to (17.379200 17.379200 17.379200) pair_style tersoff shift 0.05 -pair_coeff * * BNC.tersoff N N N C B B C B +pair_coeff * * BNC.tersoff N N N C B B C B Reading tersoff potential file BNC.tersoff with DATE: 2013-03-21 +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 fix 1 all nvt temp 1800 $t 0.1 fix 1 all nvt temp 1800 1800 0.1 Resetting global fix info from restart file: fix style: nvt, fix ID: 1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -428,32 +423,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 2.985 | 2.985 | 2.985 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 742.67188 -3294.0266 0 -3255.7505 1615779.4 - 110 2870.7114 -3432.8485 0 -3257.629 1053310.6 - 120 2898.0798 -3431.4968 0 -3256.6851 1223402.3 - 130 2708.4483 -3419.0142 0 -3256.436 1105893.8 - 140 2307.8661 -3394.1268 0 -3256.1686 1148075.8 - 150 2215.3423 -3390.1427 0 -3255.8733 1138540 - 160 2515.488 -3412.6704 0 -3255.1731 1122902.8 - 170 2485.7109 -3415.0402 0 -3255.3787 1097748.5 - 180 2327.476 -3408.2463 0 -3254.6537 1061602.6 - 190 2339.5966 -3413.3961 0 -3254.7496 1088059 - 200 2260.5961 -3411.477 0 -3254.0771 1104581.5 -Loop time of 0.120764 on 1 procs for 100 steps with 512 atoms +Step Temp E_pair TotEng Econserve Press + 100 742.67188 -3294.0266 -3244.9717 -3255.7505 1615779.4 + 110 2870.7114 -3432.8485 -3243.2324 -3257.629 1053310.6 + 120 2898.0798 -3431.4968 -3240.0731 -3256.6851 1223402.3 + 130 2708.4483 -3419.0142 -3240.1159 -3256.436 1105893.8 + 140 2307.8661 -3394.1268 -3241.6877 -3256.1686 1148075.8 + 150 2215.3423 -3390.1427 -3243.8151 -3255.8733 1138540 + 160 2515.488 -3412.6704 -3246.5175 -3255.1731 1122902.8 + 170 2485.7109 -3415.0402 -3250.8542 -3255.3787 1097748.5 + 180 2327.476 -3408.2463 -3254.512 -3254.6537 1061602.6 + 190 2339.5966 -3413.3961 -3258.8612 -3254.7496 1088059 + 200 2260.5961 -3411.477 -3262.1603 -3254.0771 1104581.5 +Loop time of 0.511812 on 1 procs for 100 steps with 512 atoms -Performance: 71.545 ns/day, 0.335 hours/ns, 828.061 timesteps/s -98.6% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 16.881 ns/day, 1.422 hours/ns, 195.384 timesteps/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.11521 | 0.11521 | 0.11521 | 0.0 | 95.40 -Neigh | 0.003874 | 0.003874 | 0.003874 | 0.0 | 3.21 -Comm | 0.000542 | 0.000542 | 0.000542 | 0.0 | 0.45 -Output | 0.000177 | 0.000177 | 0.000177 | 0.0 | 0.15 -Modify | 0.000774 | 0.000774 | 0.000774 | 0.0 | 0.64 -Other | | 0.00019 | | | 0.16 +Pair | 0.49628 | 0.49628 | 0.49628 | 0.0 | 96.96 +Neigh | 0.0072167 | 0.0072167 | 0.0072167 | 0.0 | 1.41 +Comm | 0.0029061 | 0.0029061 | 0.0029061 | 0.0 | 0.57 +Output | 0.00019026 | 0.00019026 | 0.00019026 | 0.0 | 0.04 +Modify | 0.0047674 | 0.0047674 | 0.0047674 | 0.0 | 0.93 +Other | | 0.0004566 | | | 0.09 Nlocal: 512.000 ave 512 max 512 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -469,4 +464,4 @@ Ave neighs/atom = 28.664062 Neighbor list builds = 5 Dangerous builds = 0 -Total wall time: 0:00:00 +Total wall time: 0:00:02 diff --git a/examples/tersoff/log.13Jan21.tersoff.g++.4 b/examples/tersoff/log.09Feb21.tersoff.g++.4 similarity index 60% rename from examples/tersoff/log.13Jan21.tersoff.g++.4 rename to examples/tersoff/log.09Feb21.tersoff.g++.4 index 07431ff1eb..829ef0c452 100644 --- a/examples/tersoff/log.13Jan21.tersoff.g++.4 +++ b/examples/tersoff/log.09Feb21.tersoff.g++.4 @@ -1,5 +1,4 @@ LAMMPS (24 Dec 2020) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) using 1 OpenMP thread(s) per MPI task # Simple regression tests for Tersoff potentials @@ -10,7 +9,7 @@ units metal atom_style atomic atom_modify map array boundary p p p -atom_modify sort 0 0.0 +atom_modify sort 0 0.0 # temperature @@ -28,26 +27,26 @@ region myreg block 0 4 0 4 create_box 8 myreg Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) 1 by 2 by 2 MPI processor grid -create_atoms 1 region myreg basis 1 1 basis 2 2 basis 3 3 basis 4 4 basis 5 5 basis 6 6 basis 7 7 basis 8 8 +create_atoms 1 region myreg basis 1 1 basis 2 2 basis 3 3 basis 4 4 basis 5 5 basis 6 6 basis 7 7 basis 8 8 Created 512 atoms - create_atoms CPU = 0.000 seconds + create_atoms CPU = 0.001 seconds mass * 28.06 -velocity all create $t 5287287 loop geom -velocity all create 1800 5287287 loop geom +velocity all create $t 5287287 loop geom +velocity all create 1800 5287287 loop geom # Equilibrate using Tersoff model for silicon pair_style tersoff -pair_coeff * * Si.tersoff Si Si Si Si Si Si Si Si +pair_coeff * * Si.tersoff Si Si Si Si Si Si Si Si Reading tersoff potential file Si.tersoff with DATE: 2007-10-25 +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 fix 1 all nvt temp 1800 $t 0.1 fix 1 all nvt temp 1800 1800 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -65,32 +64,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 2.958 | 2.958 | 2.958 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1800 -2370.771 0 -2251.8775 12511.419 - 10 1144.7447 -2327.3227 0 -2251.7759 21852.599 - 20 770.19243 -2302.1547 0 -2251.7633 22286.587 - 30 1059.4324 -2320.1988 0 -2251.8159 6242.222 - 40 1000.972 -2314.6531 0 -2251.796 -3069.9273 - 50 803.91758 -2300.1702 0 -2251.7834 -7154.1383 - 60 761.38639 -2296.1731 0 -2251.7928 -14520.921 - 70 750.57677 -2294.3086 0 -2251.7965 -21400.198 - 80 676.66672 -2288.2634 0 -2251.7899 -23480.201 - 90 640.24103 -2284.6678 0 -2251.7848 -20659.983 - 100 742.67188 -2290.0616 0 -2251.7855 -16211.799 -Loop time of 0.0321762 on 4 procs for 100 steps with 512 atoms +Step Temp E_pair TotEng Econserve Press + 0 1800 -2370.771 -2251.8775 -2251.8775 12511.419 + 10 1144.7447 -2327.3227 -2251.7101 -2251.7759 21852.599 + 20 770.19243 -2302.1547 -2251.282 -2251.7633 22286.587 + 30 1059.4324 -2320.1988 -2250.2213 -2251.8159 6242.222 + 40 1000.972 -2314.6531 -2248.5369 -2251.796 -3069.9273 + 50 803.91758 -2300.1702 -2247.0699 -2251.7834 -7154.1383 + 60 761.38639 -2296.1731 -2245.882 -2251.7928 -14520.921 + 70 750.57677 -2294.3086 -2244.7316 -2251.7965 -21400.198 + 80 676.66672 -2288.2634 -2243.5683 -2251.7899 -23480.201 + 90 640.24103 -2284.6678 -2242.3786 -2251.7848 -20659.983 + 100 742.67188 -2290.0616 -2241.0067 -2251.7855 -16211.799 +Loop time of 0.130429 on 4 procs for 100 steps with 512 atoms -Performance: 268.521 ns/day, 0.089 hours/ns, 3107.882 timesteps/s -98.4% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 66.243 ns/day, 0.362 hours/ns, 766.701 timesteps/s +96.2% 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.026599 | 0.02712 | 0.027602 | 0.2 | 84.28 -Neigh | 0.000285 | 0.00028875 | 0.000294 | 0.0 | 0.90 -Comm | 0.003471 | 0.0039375 | 0.004446 | 0.6 | 12.24 -Output | 0.000112 | 0.00013675 | 0.000203 | 0.0 | 0.43 -Modify | 0.000443 | 0.0004555 | 0.000471 | 0.0 | 1.42 -Other | | 0.000238 | | | 0.74 +Pair | 0.10994 | 0.11386 | 0.11991 | 1.1 | 87.30 +Neigh | 0.0005877 | 0.00059474 | 0.00059915 | 0.0 | 0.46 +Comm | 0.0072911 | 0.013476 | 0.017439 | 3.4 | 10.33 +Output | 0.00014305 | 0.00022113 | 0.00045156 | 0.0 | 0.17 +Modify | 0.0015786 | 0.0016485 | 0.0017092 | 0.1 | 1.26 +Other | | 0.0006239 | | | 0.48 Nlocal: 128.000 ave 131 max 126 min Histogram: 2 0 0 0 0 0 1 0 0 1 @@ -106,15 +105,14 @@ Ave neighs/atom = 16.414062 Neighbor list builds = 2 Dangerous builds = 0 -write_restart restart.equil +write_restart restart.equil System init for write_restart ... # Test Tersoff/Mod model for Si clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) using 1 OpenMP thread(s) per MPI task -read_restart restart.equil +read_restart restart.equil Reading restart file ... restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 restoring atom style atomic from restart @@ -122,19 +120,19 @@ Reading restart file ... 1 by 2 by 2 MPI processor grid pair style tersoff stores no restart info 512 atoms - read_restart CPU = 0.002 seconds + read_restart CPU = 0.001 seconds pair_style tersoff/mod -pair_coeff * * Si.tersoff.mod Si Si Si Si Si Si Si Si +pair_coeff * * Si.tersoff.mod Si Si Si Si Si Si Si Si Reading tersoff/mod potential file Si.tersoff.mod with DATE: 2013-07-26 +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 fix 1 all nvt temp 1800 $t 0.1 fix 1 all nvt temp 1800 1800 0.1 Resetting global fix info from restart file: fix style: nvt, fix ID: 1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -153,32 +151,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 2.949 | 2.950 | 2.950 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 742.67188 -2210.6446 0 -2172.3685 -6444.2163 - 110 1135.5853 -2234.6974 0 -2172.3908 113.80404 - 120 1462.8415 -2253.8186 0 -2172.3853 10922.229 - 130 1755.9617 -2270.5152 0 -2172.3964 18780.707 - 140 1895.1939 -2277.1484 0 -2172.3965 22357.106 - 150 1869.5375 -2273.2734 0 -2172.3851 22616.492 - 160 1824.0448 -2268.4342 0 -2172.393 19254.299 - 170 1637.9038 -2254.5219 0 -2172.3815 15904.928 - 180 1451.9871 -2240.7199 0 -2172.3771 12064.754 - 190 1362.8248 -2233.1942 0 -2172.3789 7970.534 - 200 1341.1467 -2229.8951 0 -2172.3717 6244.8542 -Loop time of 0.0389003 on 4 procs for 100 steps with 512 atoms +Step Temp E_pair TotEng Econserve Press + 100 742.67188 -2210.6446 -2161.5897 -2172.3685 -6444.2163 + 110 1135.5853 -2234.6974 -2159.6898 -2172.3908 113.80404 + 120 1462.8415 -2253.8186 -2157.1951 -2172.3853 10922.229 + 130 1755.9617 -2270.5152 -2154.5306 -2172.3964 18780.707 + 140 1895.1939 -2277.1484 -2151.9672 -2172.3965 22357.106 + 150 1869.5375 -2273.2734 -2149.7868 -2172.3851 22616.492 + 160 1824.0448 -2268.4342 -2147.9525 -2172.393 19254.299 + 170 1637.9038 -2254.5219 -2146.3352 -2172.3815 15904.928 + 180 1451.9871 -2240.7199 -2144.8134 -2172.3771 12064.754 + 190 1362.8248 -2233.1942 -2143.177 -2172.3789 7970.534 + 200 1341.1467 -2229.8951 -2141.3097 -2172.3717 6244.8542 +Loop time of 0.128801 on 4 procs for 100 steps with 512 atoms -Performance: 222.107 ns/day, 0.108 hours/ns, 2570.678 timesteps/s -98.6% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 67.080 ns/day, 0.358 hours/ns, 776.389 timesteps/s +97.2% 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.031362 | 0.032656 | 0.033605 | 0.5 | 83.95 -Neigh | 0.000575 | 0.000599 | 0.000613 | 0.0 | 1.54 -Comm | 0.003768 | 0.004733 | 0.006014 | 1.2 | 12.17 -Output | 0.000207 | 0.00022525 | 0.000276 | 0.0 | 0.58 -Modify | 0.000445 | 0.00047975 | 0.0005 | 0.0 | 1.23 -Other | | 0.0002077 | | | 0.53 +Pair | 0.10866 | 0.11135 | 0.1163 | 0.9 | 86.45 +Neigh | 0.0011961 | 0.001219 | 0.0012498 | 0.1 | 0.95 +Comm | 0.0087612 | 0.013886 | 0.016597 | 2.6 | 10.78 +Output | 0.00013447 | 0.00028586 | 0.000736 | 0.0 | 0.22 +Modify | 0.0014391 | 0.0015088 | 0.0015388 | 0.1 | 1.17 +Other | | 0.0005538 | | | 0.43 Nlocal: 128.000 ave 135 max 123 min Histogram: 1 1 0 0 0 1 0 0 0 1 @@ -197,9 +195,8 @@ Dangerous builds = 0 # Test Tersoff/Mod/C model for Si clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) using 1 OpenMP thread(s) per MPI task -read_restart restart.equil +read_restart restart.equil Reading restart file ... restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 restoring atom style atomic from restart @@ -210,16 +207,16 @@ Reading restart file ... read_restart CPU = 0.001 seconds newton on on pair_style tersoff/mod/c -pair_coeff * * Si.tersoff.modc Si Si Si Si Si Si Si Si +pair_coeff * * Si.tersoff.modc Si Si Si Si Si Si Si Si Reading tersoff/mod/c potential file Si.tersoff.modc with DATE: 2016-11-09 +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 fix 1 all nvt temp 1800 $t 0.1 fix 1 all nvt temp 1800 1800 0.1 Resetting global fix info from restart file: fix style: nvt, fix ID: 1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -238,32 +235,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 2.949 | 2.949 | 2.949 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 742.67188 -2221.9308 0 -2183.6547 -11721.269 - 110 1106.895 -2244.1196 0 -2183.6843 -2359.7819 - 120 1327.6674 -2256.3155 0 -2183.6767 7904.6604 - 130 1487.0219 -2264.3656 0 -2183.6707 14660.783 - 140 1709.1746 -2276.4761 0 -2183.6886 19298.791 - 150 1710.6528 -2274.1129 0 -2183.6764 22026.559 - 160 1651.0659 -2267.9877 0 -2183.6699 20916.722 - 170 1632.7705 -2264.7081 0 -2183.6777 17339.031 - 180 1477.693 -2252.4683 0 -2183.6706 12563.594 - 190 1310.8768 -2239.5419 0 -2183.6581 9591.0484 - 200 1356.7172 -2240.5315 0 -2183.668 5584.6734 -Loop time of 0.039244 on 4 procs for 100 steps with 512 atoms +Step Temp E_pair TotEng Econserve Press + 100 742.67188 -2221.9308 -2172.8759 -2183.6547 -11721.269 + 110 1106.895 -2244.1196 -2171.007 -2183.6843 -2359.7819 + 120 1327.6674 -2256.3155 -2168.6205 -2183.6767 7904.6604 + 130 1487.0219 -2264.3656 -2166.1449 -2183.6707 14660.783 + 140 1709.1746 -2276.4761 -2163.5818 -2183.6886 19298.791 + 150 1710.6528 -2274.1129 -2161.1209 -2183.6764 22026.559 + 160 1651.0659 -2267.9877 -2158.9316 -2183.6699 20916.722 + 170 1632.7705 -2264.7081 -2156.8605 -2183.6777 17339.031 + 180 1477.693 -2252.4683 -2154.8638 -2183.6706 12563.594 + 190 1310.8768 -2239.5419 -2152.9559 -2183.6581 9591.0484 + 200 1356.7172 -2240.5315 -2150.9177 -2183.668 5584.6734 +Loop time of 0.131975 on 4 procs for 100 steps with 512 atoms -Performance: 220.161 ns/day, 0.109 hours/ns, 2548.160 timesteps/s -98.5% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 65.467 ns/day, 0.367 hours/ns, 757.717 timesteps/s +97.2% 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.03126 | 0.032782 | 0.033915 | 0.5 | 83.53 -Neigh | 0.000599 | 0.000707 | 0.000821 | 0.0 | 1.80 -Comm | 0.00363 | 0.004893 | 0.006493 | 1.5 | 12.47 -Output | 0.000122 | 0.0001425 | 0.000192 | 0.0 | 0.36 -Modify | 0.000497 | 0.00050925 | 0.000522 | 0.0 | 1.30 -Other | | 0.0002105 | | | 0.54 +Pair | 0.11186 | 0.11507 | 0.11812 | 0.7 | 87.19 +Neigh | 0.0011823 | 0.0011939 | 0.0012088 | 0.0 | 0.90 +Comm | 0.010214 | 0.0134 | 0.016663 | 2.0 | 10.15 +Output | 0.000139 | 0.000296 | 0.00076294 | 0.0 | 0.22 +Modify | 0.0014501 | 0.0014552 | 0.0014606 | 0.0 | 1.10 +Other | | 0.0005632 | | | 0.43 Nlocal: 128.000 ave 133 max 124 min Histogram: 1 0 1 0 0 1 0 0 0 1 @@ -282,9 +279,8 @@ Dangerous builds = 0 # Test Tersoff model for B/N/C clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) using 1 OpenMP thread(s) per MPI task -read_restart restart.equil +read_restart restart.equil Reading restart file ... restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 restoring atom style atomic from restart @@ -292,29 +288,29 @@ Reading restart file ... 1 by 2 by 2 MPI processor grid pair style tersoff stores no restart info 512 atoms - read_restart CPU = 0.001 seconds + read_restart CPU = 0.007 seconds -variable fac equal 0.6 -change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap +variable fac equal 0.6 +change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap Changing box ... orthogonal box = (4.3448000 0.0000000 0.0000000) to (17.379200 21.724000 21.724000) orthogonal box = (4.3448000 4.3448000 0.0000000) to (17.379200 17.379200 21.724000) orthogonal box = (4.3448000 4.3448000 4.3448000) to (17.379200 17.379200 17.379200) pair_style tersoff -pair_coeff * * BNC.tersoff N N N C B B C B +pair_coeff * * BNC.tersoff N N N C B B C B Reading tersoff potential file BNC.tersoff with DATE: 2013-03-21 +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 fix 1 all nvt temp 1800 $t 0.1 fix 1 all nvt temp 1800 1800 0.1 Resetting global fix info from restart file: fix style: nvt, fix ID: 1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -333,32 +329,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 2.952 | 2.952 | 2.952 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 742.67188 -2973.8527 0 -2935.5766 3438975.9 - 110 4061.1085 -3183.2489 0 -2930.1208 2211712.7 - 120 4120.3231 -3187.0108 0 -2928.3047 2166764.3 - 130 3602.7602 -3158.5939 0 -2926.6167 2244475.7 - 140 3222.7773 -3141.7275 0 -2925.5369 2161607 - 150 3487.4703 -3163.7495 0 -2921.2462 2222150.2 - 160 3436.3009 -3169.4234 0 -2920.8775 2144368.7 - 170 3308.1796 -3170.3773 0 -2920.8967 2223612.9 - 180 3304.3776 -3178.7805 0 -2920.102 2072546.6 - 190 3217.3561 -3180.7963 0 -2918.4548 2118776.2 - 200 3041.6832 -3176.1794 0 -2916.5787 2130124.6 -Loop time of 0.0488862 on 4 procs for 100 steps with 512 atoms +Step Temp E_pair TotEng Econserve Press + 100 742.67188 -2973.8527 -2924.7978 -2935.5766 3438975.9 + 110 4061.1085 -3183.2489 -2915.0049 -2930.1208 2211712.7 + 120 4120.3231 -3187.0108 -2914.8555 -2928.3047 2166764.3 + 130 3602.7602 -3158.5939 -2920.6246 -2926.6167 2244475.7 + 140 3222.7773 -3141.7275 -2928.8568 -2925.5369 2161607 + 150 3487.4703 -3163.7495 -2933.3954 -2921.2462 2222150.2 + 160 3436.3009 -3169.4234 -2942.449 -2920.8775 2144368.7 + 170 3308.1796 -3170.3773 -2951.8656 -2920.8967 2223612.9 + 180 3304.3776 -3178.7805 -2960.52 -2920.102 2072546.6 + 190 3217.3561 -3180.7963 -2968.2837 -2918.4548 2118776.2 + 200 3041.6832 -3176.1794 -2975.2703 -2916.5787 2130124.6 +Loop time of 0.171186 on 4 procs for 100 steps with 512 atoms -Performance: 176.737 ns/day, 0.136 hours/ns, 2045.565 timesteps/s -93.6% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 50.471 ns/day, 0.476 hours/ns, 584.160 timesteps/s +96.4% 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.037364 | 0.039346 | 0.041066 | 0.8 | 80.49 -Neigh | 0.001207 | 0.0012568 | 0.00136 | 0.2 | 2.57 -Comm | 0.005218 | 0.007064 | 0.009117 | 1.9 | 14.45 -Output | 0.000173 | 0.00020325 | 0.000277 | 0.0 | 0.42 -Modify | 0.000709 | 0.000715 | 0.000723 | 0.0 | 1.46 -Other | | 0.0003008 | | | 0.62 +Pair | 0.14009 | 0.14402 | 0.15181 | 1.2 | 84.13 +Neigh | 0.0023134 | 0.0024782 | 0.0026977 | 0.3 | 1.45 +Comm | 0.013972 | 0.02211 | 0.026362 | 3.3 | 12.92 +Output | 0.00015235 | 0.0003258 | 0.00084186 | 0.0 | 0.19 +Modify | 0.0016432 | 0.0017257 | 0.0018435 | 0.2 | 1.01 +Other | | 0.0005236 | | | 0.31 Nlocal: 128.000 ave 132 max 123 min Histogram: 1 0 0 0 1 0 0 1 0 1 @@ -377,9 +373,8 @@ Dangerous builds = 0 # Test Tersoff model for B/N/C clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) using 1 OpenMP thread(s) per MPI task -read_restart restart.equil +read_restart restart.equil Reading restart file ... restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 restoring atom style atomic from restart @@ -389,27 +384,27 @@ Reading restart file ... 512 atoms read_restart CPU = 0.001 seconds -variable fac equal 0.6 -change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap +variable fac equal 0.6 +change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap Changing box ... orthogonal box = (4.3448000 0.0000000 0.0000000) to (17.379200 21.724000 21.724000) orthogonal box = (4.3448000 4.3448000 0.0000000) to (17.379200 17.379200 21.724000) orthogonal box = (4.3448000 4.3448000 4.3448000) to (17.379200 17.379200 17.379200) pair_style tersoff shift 0.05 -pair_coeff * * BNC.tersoff N N N C B B C B +pair_coeff * * BNC.tersoff N N N C B B C B Reading tersoff potential file BNC.tersoff with DATE: 2013-03-21 +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 fix 1 all nvt temp 1800 $t 0.1 fix 1 all nvt temp 1800 1800 0.1 Resetting global fix info from restart file: fix style: nvt, fix ID: 1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -428,32 +423,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 2.952 | 2.952 | 2.952 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 742.67188 -3294.0266 0 -3255.7505 1615779.4 - 110 2870.7114 -3432.8485 0 -3257.629 1053310.6 - 120 2898.0798 -3431.4968 0 -3256.6851 1223402.3 - 130 2708.4483 -3419.0142 0 -3256.436 1105893.8 - 140 2307.8661 -3394.1268 0 -3256.1686 1148075.8 - 150 2215.3423 -3390.1427 0 -3255.8733 1138540 - 160 2515.488 -3412.6704 0 -3255.1731 1122902.8 - 170 2485.7109 -3415.0402 0 -3255.3787 1097748.5 - 180 2327.476 -3408.2463 0 -3254.6537 1061602.6 - 190 2339.5966 -3413.3961 0 -3254.7496 1088059 - 200 2260.5961 -3411.477 0 -3254.0771 1104581.5 -Loop time of 0.0409132 on 4 procs for 100 steps with 512 atoms +Step Temp E_pair TotEng Econserve Press + 100 742.67188 -3294.0266 -3244.9717 -3255.7505 1615779.4 + 110 2870.7114 -3432.8485 -3243.2324 -3257.629 1053310.6 + 120 2898.0798 -3431.4968 -3240.0731 -3256.6851 1223402.3 + 130 2708.4483 -3419.0142 -3240.1159 -3256.436 1105893.8 + 140 2307.8661 -3394.1268 -3241.6877 -3256.1686 1148075.8 + 150 2215.3423 -3390.1427 -3243.8151 -3255.8733 1138540 + 160 2515.488 -3412.6704 -3246.5175 -3255.1731 1122902.8 + 170 2485.7109 -3415.0402 -3250.8542 -3255.3787 1097748.5 + 180 2327.476 -3408.2463 -3254.512 -3254.6537 1061602.6 + 190 2339.5966 -3413.3961 -3258.8612 -3254.7496 1088059 + 200 2260.5961 -3411.477 -3262.1603 -3254.0771 1104581.5 +Loop time of 0.15156 on 4 procs for 100 steps with 512 atoms -Performance: 211.179 ns/day, 0.114 hours/ns, 2444.196 timesteps/s -97.1% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 57.007 ns/day, 0.421 hours/ns, 659.806 timesteps/s +96.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.03285 | 0.033327 | 0.03406 | 0.3 | 81.46 -Neigh | 0.000975 | 0.0010677 | 0.001184 | 0.2 | 2.61 -Comm | 0.004915 | 0.005528 | 0.006044 | 0.7 | 13.51 -Output | 0.000129 | 0.0001535 | 0.000226 | 0.0 | 0.38 -Modify | 0.000564 | 0.0005885 | 0.000604 | 0.0 | 1.44 -Other | | 0.0002483 | | | 0.61 +Pair | 0.12637 | 0.13067 | 0.13398 | 0.8 | 86.22 +Neigh | 0.0019262 | 0.0020029 | 0.0021148 | 0.2 | 1.32 +Comm | 0.012843 | 0.01629 | 0.020752 | 2.2 | 10.75 +Output | 0.00014877 | 0.00030798 | 0.00078011 | 0.0 | 0.20 +Modify | 0.0015197 | 0.0016043 | 0.0017824 | 0.3 | 1.06 +Other | | 0.0006804 | | | 0.45 Nlocal: 128.000 ave 133 max 123 min Histogram: 1 0 0 1 0 0 0 1 0 1 diff --git a/examples/threebody/in.threebody b/examples/threebody/in.threebody index 951a364b57..3d11219a47 100644 --- a/examples/threebody/in.threebody +++ b/examples/threebody/in.threebody @@ -53,9 +53,9 @@ velocity all create $t 5287287 loop geom pair_style sw pair_coeff * * Si.sw Si Si Si Si Si Si Si Si +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -71,9 +71,9 @@ read_restart restart.equil pair_style sw pair_coeff * * CdTeZnSeHgS0.sw Cd Zn Hg Cd Te S Se Te +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -87,9 +87,9 @@ read_restart restart.equil pair_style vashishta pair_coeff * * InP.vashishta In In In In P P P P +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes @@ -106,9 +106,9 @@ change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap pair_style tersoff pair_coeff * * BNC.tersoff N N N C B B C B +thermo_style custom step temp epair etotal econserve press thermo 10 fix 1 all nvt temp $t $t 0.1 -fix_modify 1 energy yes timestep 1.0e-3 neighbor 1.0 bin neigh_modify every 1 delay 10 check yes diff --git a/examples/threebody/log.08Feb21.threebody.g++.1 b/examples/threebody/log.08Feb21.threebody.g++.1 new file mode 100644 index 0000000000..51b6dfea05 --- /dev/null +++ b/examples/threebody/log.08Feb21.threebody.g++.1 @@ -0,0 +1,373 @@ +LAMMPS (24 Dec 2020) + using 1 OpenMP thread(s) per MPI task +# Simple regression tests for threebody potentials + +# NOTE: These are not intended to represent real materials + +units metal + +atom_style atomic +atom_modify map array +boundary p p p +atom_modify sort 0 0.0 + +# temperature + +variable t equal 1800.0 + +# cubic diamond unit cell + +variable a equal 5.431 +lattice custom $a a1 1.0 0.0 0.0 a2 0.0 1.0 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0 basis 0.0 0.5 0.5 basis 0.5 0.0 0.5 basis 0.5 0.5 0.0 basis 0.25 0.25 0.25 basis 0.25 0.75 0.75 basis 0.75 0.25 0.75 basis 0.75 0.75 0.25 +lattice custom 5.431 a1 1.0 0.0 0.0 a2 0.0 1.0 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0 basis 0.0 0.5 0.5 basis 0.5 0.0 0.5 basis 0.5 0.5 0.0 basis 0.25 0.25 0.25 basis 0.25 0.75 0.75 basis 0.75 0.25 0.75 basis 0.75 0.75 0.25 +Lattice spacing in x,y,z = 5.4310000 5.4310000 5.4310000 + +region myreg block 0 4 0 4 0 4 + +create_box 8 myreg +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) + 1 by 1 by 1 MPI processor grid +create_atoms 1 region myreg basis 1 1 basis 2 2 basis 3 3 basis 4 4 basis 5 5 basis 6 6 basis 7 7 basis 8 8 +Created 512 atoms + create_atoms CPU = 0.001 seconds + +mass * 28.06 + +velocity all create $t 5287287 loop geom +velocity all create 1800 5287287 loop geom + +# Equilibrate using Stillinger-Weber model for silicon + +pair_style sw +pair_coeff * * Si.sw Si Si Si Si Si Si Si Si +Reading sw potential file Si.sw with DATE: 2007-06-11 + +thermo_style custom step temp epair etotal econserve press +thermo 10 +fix 1 all nvt temp $t $t 0.1 +fix 1 all nvt temp 1800 $t 0.1 +fix 1 all nvt temp 1800 1800 0.1 +timestep 1.0e-3 +neighbor 1.0 bin +neigh_modify every 1 delay 10 check yes +run 100 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.77118 + ghost atom cutoff = 4.77118 + binsize = 2.38559, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair sw, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.983 | 2.983 | 2.983 Mbytes +Step Temp E_pair TotEng Econserve Press + 0 1800 -2220.3392 -2101.4457 -2101.4457 12358.626 + 10 1006.0192 -2167.7053 -2101.2558 -2101.3286 13892.426 + 20 588.26396 -2139.7132 -2100.8573 -2101.3117 11295.566 + 30 990.55956 -2165.2164 -2099.788 -2101.3931 6279.0239 + 40 700.12917 -2144.4279 -2098.183 -2101.3427 5594.2388 + 50 523.64239 -2131.7796 -2097.192 -2101.3122 6013.0994 + 60 989.47092 -2161.3716 -2096.0152 -2101.3839 5819.2688 + 70 877.27433 -2152.4432 -2094.4975 -2101.3461 9116.6569 + 80 800.80221 -2146.1371 -2093.2426 -2101.313 11995.66 + 90 1293.9689 -2176.9021 -2091.4329 -2101.3848 11692.45 + 100 1112.9699 -2162.7259 -2089.2121 -2101.3478 12263.758 +Loop time of 0.157871 on 1 procs for 100 steps with 512 atoms + +Performance: 54.728 ns/day, 0.439 hours/ns, 633.430 timesteps/s +99.8% 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.14704 | 0.14704 | 0.14704 | 0.0 | 93.14 +Neigh | 0.00247 | 0.00247 | 0.00247 | 0.0 | 1.56 +Comm | 0.0024729 | 0.0024729 | 0.0024729 | 0.0 | 1.57 +Output | 0.0002656 | 0.0002656 | 0.0002656 | 0.0 | 0.17 +Modify | 0.0050237 | 0.0050237 | 0.0050237 | 0.0 | 3.18 +Other | | 0.0006011 | | | 0.38 + +Nlocal: 512.000 ave 512 max 512 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1017.00 ave 1017 max 1017 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0.00000 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 13988.0 ave 13988 max 13988 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 13988 +Ave neighs/atom = 27.320312 +Neighbor list builds = 2 +Dangerous builds = 0 + +write_restart restart.equil +System init for write_restart ... + +# Test Stillinger-Weber model for Cd/Te/Zn/Se/Hg/S + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) + 1 by 1 by 1 MPI processor grid + pair style sw stores no restart info + 512 atoms + read_restart CPU = 0.001 seconds + +pair_style sw +pair_coeff * * CdTeZnSeHgS0.sw Cd Zn Hg Cd Te S Se Te +Reading sw potential file CdTeZnSeHgS0.sw with DATE: 2013-08-09 + +thermo_style custom step temp epair etotal econserve press +thermo 10 +fix 1 all nvt temp $t $t 0.1 +fix 1 all nvt temp 1800 $t 0.1 +fix 1 all nvt temp 1800 1800 0.1 +Resetting global fix info from restart file: + fix style: nvt, fix ID: 1 +timestep 1.0e-3 +neighbor 1.0 bin +neigh_modify every 1 delay 10 check yes +run 100 +All restart file global fix info was re-assigned +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.6320004 + ghost atom cutoff = 5.6320004 + binsize = 2.8160002, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair sw, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.001 | 3.001 | 3.001 Mbytes +Step Temp E_pair TotEng Econserve Press + 100 1112.9699 -625.76163 -552.24781 -564.38354 462129.66 + 110 1502.8461 -649.55768 -550.29179 -564.45814 463413.45 + 120 1926.4523 -674.71265 -547.46675 -564.53612 486338.88 + 130 1152.6663 -621.47264 -545.33681 -564.37203 514892.2 + 140 1762.244 -659.86941 -543.46979 -564.4985 488159.88 + 150 1767.8665 -657.67178 -540.90078 -564.48386 466721.31 + 160 1075.2874 -610.12809 -539.10328 -564.36709 470151.9 + 170 1697.9313 -649.3684 -537.21675 -564.47207 467953.71 + 180 1856.1197 -657.14338 -534.54309 -564.48754 488372.27 + 190 1346.1107 -621.42431 -532.5111 -564.38065 511750.04 + 200 1919.5266 -657.26587 -530.47743 -564.47797 488684.56 +Loop time of 0.455825 on 1 procs for 100 steps with 512 atoms + +Performance: 18.955 ns/day, 1.266 hours/ns, 219.382 timesteps/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.44091 | 0.44091 | 0.44091 | 0.0 | 96.73 +Neigh | 0.0054555 | 0.0054555 | 0.0054555 | 0.0 | 1.20 +Comm | 0.0035784 | 0.0035784 | 0.0035784 | 0.0 | 0.79 +Output | 0.00024486 | 0.00024486 | 0.00024486 | 0.0 | 0.05 +Modify | 0.0050471 | 0.0050471 | 0.0050471 | 0.0 | 1.11 +Other | | 0.000592 | | | 0.13 + +Nlocal: 512.000 ave 512 max 512 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1428.00 ave 1428 max 1428 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0.00000 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 17344.0 ave 17344 max 17344 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 17344 +Ave neighs/atom = 33.875000 +Neighbor list builds = 3 +Dangerous builds = 0 + +# Test Vashishta model for In/P + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) + 1 by 1 by 1 MPI processor grid + pair style sw stores no restart info + 512 atoms + read_restart CPU = 0.001 seconds + +pair_style vashishta +pair_coeff * * InP.vashishta In In In In P P P P +Reading vashishta potential file InP.vashishta with DATE: 2015-10-14 + +thermo_style custom step temp epair etotal econserve press +thermo 10 +fix 1 all nvt temp $t $t 0.1 +fix 1 all nvt temp 1800 $t 0.1 +fix 1 all nvt temp 1800 1800 0.1 +Resetting global fix info from restart file: + fix style: nvt, fix ID: 1 +timestep 1.0e-3 +neighbor 1.0 bin +neigh_modify every 1 delay 10 check yes +run 100 +All restart file global fix info was re-assigned +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair vashishta, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.025 | 3.025 | 3.025 Mbytes +Step Temp E_pair TotEng Econserve Press + 100 1112.9699 -1497.2988 -1423.785 -1435.9207 355619.19 + 110 1250.545 -1504.5795 -1421.9785 -1435.9786 345188.52 + 120 1360.2275 -1509.3443 -1419.4986 -1435.9801 333306.3 + 130 1066.4516 -1487.9076 -1417.4664 -1435.9076 334465.11 + 140 1481.0477 -1513.0511 -1415.2251 -1435.988 308725.1 + 150 1216.1167 -1493.0774 -1412.7505 -1435.9217 304249.09 + 160 1211.4398 -1490.7459 -1410.728 -1435.9164 288897.09 + 170 1542.2025 -1510.0774 -1408.212 -1435.9608 260104.14 + 180 1302.9041 -1491.7765 -1405.7172 -1435.8971 249514.04 + 190 1332.3326 -1491.5271 -1403.524 -1435.9213 227537.99 + 200 1352.1813 -1490.4513 -1401.1371 -1435.9049 207626.42 +Loop time of 0.217808 on 1 procs for 100 steps with 512 atoms + +Performance: 39.668 ns/day, 0.605 hours/ns, 459.121 timesteps/s +98.2% 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.19635 | 0.19635 | 0.19635 | 0.0 | 90.15 +Neigh | 0.01054 | 0.01054 | 0.01054 | 0.0 | 4.84 +Comm | 0.0051923 | 0.0051923 | 0.0051923 | 0.0 | 2.38 +Output | 0.00027919 | 0.00027919 | 0.00027919 | 0.0 | 0.13 +Modify | 0.0048637 | 0.0048637 | 0.0048637 | 0.0 | 2.23 +Other | | 0.0005858 | | | 0.27 + +Nlocal: 512.000 ave 512 max 512 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1838.00 ave 1838 max 1838 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0.00000 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 36482.0 ave 36482 max 36482 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 36482 +Ave neighs/atom = 71.253906 +Neighbor list builds = 4 +Dangerous builds = 0 + +# Test Tersoff model for B/N/C + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) + 1 by 1 by 1 MPI processor grid + pair style sw stores no restart info + 512 atoms + read_restart CPU = 0.001 seconds + +variable fac equal 0.6 +change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap +Changing box ... + orthogonal box = (4.3448000 0.0000000 0.0000000) to (17.379200 21.724000 21.724000) + orthogonal box = (4.3448000 4.3448000 0.0000000) to (17.379200 17.379200 21.724000) + orthogonal box = (4.3448000 4.3448000 4.3448000) to (17.379200 17.379200 17.379200) + +pair_style tersoff +pair_coeff * * BNC.tersoff N N N C B B C B +Reading tersoff potential file BNC.tersoff with DATE: 2013-03-21 + +thermo_style custom step temp epair etotal econserve press +thermo 10 +fix 1 all nvt temp $t $t 0.1 +fix 1 all nvt temp 1800 $t 0.1 +fix 1 all nvt temp 1800 1800 0.1 +Resetting global fix info from restart file: + fix style: nvt, fix ID: 1 +timestep 1.0e-3 +neighbor 1.0 bin +neigh_modify every 1 delay 10 check yes +run 100 +All restart file global fix info was re-assigned +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 3.1 + ghost atom cutoff = 3.1 + binsize = 1.55, bins = 9 9 9 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair tersoff, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.982 | 2.982 | 2.982 Mbytes +Step Temp E_pair TotEng Econserve Press + 100 1112.9699 -3259.7676 -3186.2538 -3198.3895 1912461.3 + 110 1772.8268 -3301.5479 -3184.4493 -3198.8218 1885295.6 + 120 1169.7287 -3258.74 -3181.4772 -3197.9294 1898705.2 + 130 1308.5623 -3265.1338 -3178.7007 -3197.5922 1894187.5 + 140 1486.0361 -3274.951 -3176.7954 -3197.776 1871927.6 + 150 1419.0362 -3267.7302 -3174.0002 -3197.2296 1925234.6 + 160 1196.6689 -3250.1492 -3171.1069 -3196.7078 1902235.1 + 170 1707.5846 -3281.7658 -3168.9766 -3196.9721 1863047.3 + 180 1337.4358 -3254.9844 -3166.6442 -3196.8222 1880420.9 + 190 1441.8052 -3259.0364 -3163.8023 -3196.3556 1904512.1 + 200 1569.0317 -3265.0089 -3161.3714 -3196.3328 1899462.7 +Loop time of 0.487425 on 1 procs for 100 steps with 512 atoms + +Performance: 17.726 ns/day, 1.354 hours/ns, 205.160 timesteps/s +99.1% 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.47762 | 0.47762 | 0.47762 | 0.0 | 97.99 +Neigh | 0.0014286 | 0.0014286 | 0.0014286 | 0.0 | 0.29 +Comm | 0.0024068 | 0.0024068 | 0.0024068 | 0.0 | 0.49 +Output | 0.00028992 | 0.00028992 | 0.00028992 | 0.0 | 0.06 +Modify | 0.0050635 | 0.0050635 | 0.0050635 | 0.0 | 1.04 +Other | | 0.0006182 | | | 0.13 + +Nlocal: 512.000 ave 512 max 512 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1028.00 ave 1028 max 1028 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0.00000 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 14604.0 ave 14604 max 14604 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 14604 +Ave neighs/atom = 28.523438 +Neighbor list builds = 1 +Dangerous builds = 0 + +Total wall time: 0:00:01 diff --git a/examples/threebody/log.08Feb21.threebody.g++.4 b/examples/threebody/log.08Feb21.threebody.g++.4 new file mode 100644 index 0000000000..f747be509d --- /dev/null +++ b/examples/threebody/log.08Feb21.threebody.g++.4 @@ -0,0 +1,373 @@ +LAMMPS (24 Dec 2020) + using 1 OpenMP thread(s) per MPI task +# Simple regression tests for threebody potentials + +# NOTE: These are not intended to represent real materials + +units metal + +atom_style atomic +atom_modify map array +boundary p p p +atom_modify sort 0 0.0 + +# temperature + +variable t equal 1800.0 + +# cubic diamond unit cell + +variable a equal 5.431 +lattice custom $a a1 1.0 0.0 0.0 a2 0.0 1.0 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0 basis 0.0 0.5 0.5 basis 0.5 0.0 0.5 basis 0.5 0.5 0.0 basis 0.25 0.25 0.25 basis 0.25 0.75 0.75 basis 0.75 0.25 0.75 basis 0.75 0.75 0.25 +lattice custom 5.431 a1 1.0 0.0 0.0 a2 0.0 1.0 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0 basis 0.0 0.5 0.5 basis 0.5 0.0 0.5 basis 0.5 0.5 0.0 basis 0.25 0.25 0.25 basis 0.25 0.75 0.75 basis 0.75 0.25 0.75 basis 0.75 0.75 0.25 +Lattice spacing in x,y,z = 5.4310000 5.4310000 5.4310000 + +region myreg block 0 4 0 4 0 4 + +create_box 8 myreg +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) + 1 by 2 by 2 MPI processor grid +create_atoms 1 region myreg basis 1 1 basis 2 2 basis 3 3 basis 4 4 basis 5 5 basis 6 6 basis 7 7 basis 8 8 +Created 512 atoms + create_atoms CPU = 0.074 seconds + +mass * 28.06 + +velocity all create $t 5287287 loop geom +velocity all create 1800 5287287 loop geom + +# Equilibrate using Stillinger-Weber model for silicon + +pair_style sw +pair_coeff * * Si.sw Si Si Si Si Si Si Si Si +Reading sw potential file Si.sw with DATE: 2007-06-11 + +thermo_style custom step temp epair etotal econserve press +thermo 10 +fix 1 all nvt temp $t $t 0.1 +fix 1 all nvt temp 1800 $t 0.1 +fix 1 all nvt temp 1800 1800 0.1 +timestep 1.0e-3 +neighbor 1.0 bin +neigh_modify every 1 delay 10 check yes +run 100 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.77118 + ghost atom cutoff = 4.77118 + binsize = 2.38559, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair sw, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.958 | 2.958 | 2.958 Mbytes +Step Temp E_pair TotEng Econserve Press + 0 1800 -2220.3392 -2101.4457 -2101.4457 12358.626 + 10 1006.0192 -2167.7053 -2101.2558 -2101.3286 13892.426 + 20 588.26396 -2139.7132 -2100.8573 -2101.3117 11295.566 + 30 990.55956 -2165.2164 -2099.788 -2101.3931 6279.0239 + 40 700.12917 -2144.4279 -2098.183 -2101.3427 5594.2388 + 50 523.64239 -2131.7796 -2097.192 -2101.3122 6013.0994 + 60 989.47092 -2161.3716 -2096.0152 -2101.3839 5819.2688 + 70 877.27433 -2152.4432 -2094.4975 -2101.3461 9116.6569 + 80 800.80221 -2146.1371 -2093.2426 -2101.313 11995.66 + 90 1293.9689 -2176.9021 -2091.4329 -2101.3848 11692.45 + 100 1112.9699 -2162.7259 -2089.2121 -2101.3478 12263.758 +Loop time of 0.0998364 on 4 procs for 100 steps with 512 atoms + +Performance: 86.542 ns/day, 0.277 hours/ns, 1001.639 timesteps/s +81.4% 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.037337 | 0.049389 | 0.069239 | 5.9 | 49.47 +Neigh | 0.00067854 | 0.00068814 | 0.00070286 | 0.0 | 0.69 +Comm | 0.025239 | 0.04504 | 0.056869 | 6.1 | 45.11 +Output | 0.00015712 | 0.00082219 | 0.0028148 | 0.0 | 0.82 +Modify | 0.0014369 | 0.0015754 | 0.0016632 | 0.2 | 1.58 +Other | | 0.002321 | | | 2.33 + +Nlocal: 128.000 ave 132 max 125 min +Histogram: 1 1 0 0 0 1 0 0 0 1 +Nghost: 525.000 ave 528 max 521 min +Histogram: 1 0 0 0 1 0 0 0 1 1 +Neighs: 0.00000 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 3497.00 ave 3619 max 3397 min +Histogram: 1 1 0 0 0 0 1 0 0 1 + +Total # of neighbors = 13988 +Ave neighs/atom = 27.320312 +Neighbor list builds = 2 +Dangerous builds = 0 + +write_restart restart.equil +System init for write_restart ... + +# Test Stillinger-Weber model for Cd/Te/Zn/Se/Hg/S + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) + 1 by 2 by 2 MPI processor grid + pair style sw stores no restart info + 512 atoms + read_restart CPU = 0.001 seconds + +pair_style sw +pair_coeff * * CdTeZnSeHgS0.sw Cd Zn Hg Cd Te S Se Te +Reading sw potential file CdTeZnSeHgS0.sw with DATE: 2013-08-09 + +thermo_style custom step temp epair etotal econserve press +thermo 10 +fix 1 all nvt temp $t $t 0.1 +fix 1 all nvt temp 1800 $t 0.1 +fix 1 all nvt temp 1800 1800 0.1 +Resetting global fix info from restart file: + fix style: nvt, fix ID: 1 +timestep 1.0e-3 +neighbor 1.0 bin +neigh_modify every 1 delay 10 check yes +run 100 +All restart file global fix info was re-assigned +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.6320004 + ghost atom cutoff = 5.6320004 + binsize = 2.8160002, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair sw, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.967 | 2.967 | 2.968 Mbytes +Step Temp E_pair TotEng Econserve Press + 100 1112.9699 -625.76163 -552.24782 -564.38354 462129.66 + 110 1502.8461 -649.55768 -550.29179 -564.45814 463413.45 + 120 1926.4523 -674.71265 -547.46675 -564.53613 486338.88 + 130 1152.6663 -621.47265 -545.33681 -564.37203 514892.19 + 140 1762.244 -659.86941 -543.46979 -564.4985 488159.88 + 150 1767.8665 -657.67179 -540.90079 -564.48386 466721.31 + 160 1075.2874 -610.1281 -539.10328 -564.36709 470151.9 + 170 1697.9313 -649.3684 -537.21676 -564.47208 467953.7 + 180 1856.1197 -657.14338 -534.54309 -564.48754 488372.26 + 190 1346.1107 -621.42432 -532.5111 -564.38065 511750.03 + 200 1919.5266 -657.26587 -530.47743 -564.47797 488684.56 +Loop time of 0.286556 on 4 procs for 100 steps with 512 atoms + +Performance: 30.151 ns/day, 0.796 hours/ns, 348.971 timesteps/s +81.7% 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.11093 | 0.139 | 0.16864 | 5.8 | 48.51 +Neigh | 0.0014305 | 0.0014756 | 0.0015156 | 0.1 | 0.51 +Comm | 0.10154 | 0.12374 | 0.16907 | 7.8 | 43.18 +Output | 0.0001862 | 0.00030428 | 0.0006578 | 0.0 | 0.11 +Modify | 0.0038164 | 0.019159 | 0.034146 | 10.8 | 6.69 +Other | | 0.002872 | | | 1.00 + +Nlocal: 128.000 ave 135 max 122 min +Histogram: 1 0 1 0 0 0 1 0 0 1 +Nghost: 759.750 ave 770 max 751 min +Histogram: 1 0 0 1 1 0 0 0 0 1 +Neighs: 0.00000 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 4336.00 ave 4563 max 4128 min +Histogram: 1 0 1 0 0 0 1 0 0 1 + +Total # of neighbors = 17344 +Ave neighs/atom = 33.875000 +Neighbor list builds = 3 +Dangerous builds = 0 + +# Test Vashishta model for In/P + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) + 1 by 2 by 2 MPI processor grid + pair style sw stores no restart info + 512 atoms + read_restart CPU = 0.001 seconds + +pair_style vashishta +pair_coeff * * InP.vashishta In In In In P P P P +Reading vashishta potential file InP.vashishta with DATE: 2015-10-14 + +thermo_style custom step temp epair etotal econserve press +thermo 10 +fix 1 all nvt temp $t $t 0.1 +fix 1 all nvt temp 1800 $t 0.1 +fix 1 all nvt temp 1800 1800 0.1 +Resetting global fix info from restart file: + fix style: nvt, fix ID: 1 +timestep 1.0e-3 +neighbor 1.0 bin +neigh_modify every 1 delay 10 check yes +run 100 +All restart file global fix info was re-assigned +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7 + ghost atom cutoff = 7 + binsize = 3.5, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair vashishta, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.988 | 2.988 | 2.988 Mbytes +Step Temp E_pair TotEng Econserve Press + 100 1112.9699 -1497.2988 -1423.785 -1435.9207 355619.19 + 110 1250.545 -1504.5795 -1421.9785 -1435.9786 345188.52 + 120 1360.2275 -1509.3443 -1419.4986 -1435.9801 333306.3 + 130 1066.4516 -1487.9076 -1417.4664 -1435.9076 334465.11 + 140 1481.0477 -1513.0511 -1415.2251 -1435.988 308725.1 + 150 1216.1167 -1493.0774 -1412.7505 -1435.9217 304249.09 + 160 1211.4398 -1490.7459 -1410.728 -1435.9164 288897.09 + 170 1542.2025 -1510.0774 -1408.212 -1435.9608 260104.14 + 180 1302.9041 -1491.7765 -1405.7172 -1435.8971 249514.04 + 190 1332.3326 -1491.5271 -1403.524 -1435.9213 227537.99 + 200 1352.1813 -1490.4513 -1401.1371 -1435.9049 207626.42 +Loop time of 0.14468 on 4 procs for 100 steps with 512 atoms + +Performance: 59.718 ns/day, 0.402 hours/ns, 691.179 timesteps/s +81.2% 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.047903 | 0.058669 | 0.086091 | 6.6 | 40.55 +Neigh | 0.0027876 | 0.002852 | 0.0028808 | 0.1 | 1.97 +Comm | 0.034642 | 0.066142 | 0.078599 | 7.1 | 45.72 +Output | 0.00018477 | 0.0049147 | 0.019101 | 11.7 | 3.40 +Modify | 0.0015709 | 0.0022651 | 0.0029545 | 1.4 | 1.57 +Other | | 0.009837 | | | 6.80 + +Nlocal: 128.000 ave 131 max 124 min +Histogram: 1 0 0 0 0 1 0 1 0 1 +Nghost: 1013.25 ave 1025 max 1002 min +Histogram: 1 1 0 0 0 0 0 0 1 1 +Neighs: 0.00000 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 9120.50 ave 9356 max 8868 min +Histogram: 1 0 0 0 1 0 1 0 0 1 + +Total # of neighbors = 36482 +Ave neighs/atom = 71.253906 +Neighbor list builds = 4 +Dangerous builds = 0 + +# Test Tersoff model for B/N/C + +clear + using 1 OpenMP thread(s) per MPI task +read_restart restart.equil +Reading restart file ... + restart file = 24 Dec 2020, LAMMPS = 24 Dec 2020 + restoring atom style atomic from restart + orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) + 1 by 2 by 2 MPI processor grid + pair style sw stores no restart info + 512 atoms + read_restart CPU = 0.005 seconds + +variable fac equal 0.6 +change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap +change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap +Changing box ... + orthogonal box = (4.3448000 0.0000000 0.0000000) to (17.379200 21.724000 21.724000) + orthogonal box = (4.3448000 4.3448000 0.0000000) to (17.379200 17.379200 21.724000) + orthogonal box = (4.3448000 4.3448000 4.3448000) to (17.379200 17.379200 17.379200) + +pair_style tersoff +pair_coeff * * BNC.tersoff N N N C B B C B +Reading tersoff potential file BNC.tersoff with DATE: 2013-03-21 + +thermo_style custom step temp epair etotal econserve press +thermo 10 +fix 1 all nvt temp $t $t 0.1 +fix 1 all nvt temp 1800 $t 0.1 +fix 1 all nvt temp 1800 1800 0.1 +Resetting global fix info from restart file: + fix style: nvt, fix ID: 1 +timestep 1.0e-3 +neighbor 1.0 bin +neigh_modify every 1 delay 10 check yes +run 100 +All restart file global fix info was re-assigned +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 3.1 + ghost atom cutoff = 3.1 + binsize = 1.55, bins = 9 9 9 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair tersoff, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.948 | 2.948 | 2.948 Mbytes +Step Temp E_pair TotEng Econserve Press + 100 1112.9699 -3259.7676 -3186.2538 -3198.3895 1912461.3 + 110 1772.8268 -3301.5479 -3184.4493 -3198.8218 1885295.6 + 120 1169.7287 -3258.74 -3181.4772 -3197.9294 1898705.2 + 130 1308.5623 -3265.1338 -3178.7007 -3197.5922 1894187.5 + 140 1486.0361 -3274.951 -3176.7954 -3197.776 1871927.6 + 150 1419.0362 -3267.7302 -3174.0002 -3197.2296 1925234.6 + 160 1196.6689 -3250.1492 -3171.1069 -3196.7078 1902235.1 + 170 1707.5846 -3281.7658 -3168.9766 -3196.9721 1863047.3 + 180 1337.4358 -3254.9844 -3166.6442 -3196.8222 1880420.9 + 190 1441.8052 -3259.0364 -3163.8023 -3196.3556 1904512.1 + 200 1569.0317 -3265.0089 -3161.3714 -3196.3328 1899462.7 +Loop time of 0.348631 on 4 procs for 100 steps with 512 atoms + +Performance: 24.783 ns/day, 0.968 hours/ns, 286.836 timesteps/s +81.0% 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.13281 | 0.15657 | 0.20106 | 6.9 | 44.91 +Neigh | 0.00037527 | 0.00039309 | 0.00040412 | 0.0 | 0.11 +Comm | 0.12177 | 0.16672 | 0.19154 | 6.8 | 47.82 +Output | 0.00019097 | 0.000462 | 0.0012722 | 0.0 | 0.13 +Modify | 0.018353 | 0.020198 | 0.02302 | 1.3 | 5.79 +Other | | 0.004286 | | | 1.23 + +Nlocal: 128.000 ave 132 max 123 min +Histogram: 1 0 0 0 0 1 1 0 0 1 +Nghost: 529.500 ave 533 max 524 min +Histogram: 1 0 0 0 0 0 1 1 0 1 +Neighs: 0.00000 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 3651.00 ave 3783 max 3494 min +Histogram: 1 0 0 0 0 1 1 0 0 1 + +Total # of neighbors = 14604 +Ave neighs/atom = 28.523438 +Neighbor list builds = 1 +Dangerous builds = 0 + +Total wall time: 0:00:01 diff --git a/examples/threebody/log.13Jan21.threebody.g++.1 b/examples/threebody/log.13Jan21.threebody.g++.1 deleted file mode 100644 index 9d84547aa1..0000000000 --- a/examples/threebody/log.13Jan21.threebody.g++.1 +++ /dev/null @@ -1,547 +0,0 @@ -LAMMPS (30 Nov 2020) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -# Simple regression tests for threebody potentials - -# NOTE: These are not intended to represent real materials - -units metal - -atom_style atomic -atom_modify map array -boundary p p p -atom_modify sort 0 0.0 - -# temperature - -variable t equal 1800.0 - -# cubic diamond unit cell - -variable a equal 5.431 -lattice custom $a a1 1.0 0.0 0.0 a2 0.0 1.0 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0 basis 0.0 0.5 0.5 basis 0.5 0.0 0.5 basis 0.5 0.5 0.0 basis 0.25 0.25 0.25 basis 0.25 0.75 0.75 basis 0.75 0.25 0.75 basis 0.75 0.75 0.25 -lattice custom 5.431 a1 1.0 0.0 0.0 a2 0.0 1.0 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0 basis 0.0 0.5 0.5 basis 0.5 0.0 0.5 basis 0.5 0.5 0.0 basis 0.25 0.25 0.25 basis 0.25 0.75 0.75 basis 0.75 0.25 0.75 basis 0.75 0.75 0.25 -Lattice spacing in x,y,z = 5.4310000 5.4310000 5.4310000 - -region myreg block 0 4 0 4 0 4 - -create_box 8 myreg -Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 1 by 1 MPI processor grid -create_atoms 1 region myreg basis 1 1 basis 2 2 basis 3 3 basis 4 4 basis 5 5 basis 6 6 basis 7 7 basis 8 8 -Created 512 atoms - create_atoms CPU = 0.000 seconds - -mass * 28.06 - -velocity all create $t 5287287 loop geom -velocity all create 1800 5287287 loop geom - -# Equilibrate using Stillinger-Weber model for silicon - -pair_style sw -pair_coeff * * Si.sw Si Si Si Si Si Si Si Si -Reading sw potential file Si.sw with DATE: 2007-06-11 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 4.77118 - ghost atom cutoff = 4.77118 - binsize = 2.38559, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair sw, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.983 | 2.983 | 2.983 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1800 -2220.3392 0 -2101.4457 12358.626 - 10 1006.0192 -2167.7053 0 -2101.3286 13892.426 - 20 588.26396 -2139.7132 0 -2101.3117 11295.566 - 30 990.55956 -2165.2164 0 -2101.3931 6279.0239 - 40 700.12917 -2144.4279 0 -2101.3427 5594.2388 - 50 523.64239 -2131.7796 0 -2101.3122 6013.0994 - 60 989.47092 -2161.3716 0 -2101.3839 5819.2688 - 70 877.27433 -2152.4432 0 -2101.3461 9116.6569 - 80 800.80221 -2146.1371 0 -2101.313 11995.66 - 90 1293.9689 -2176.9021 0 -2101.3848 11692.45 - 100 1112.9699 -2162.7259 0 -2101.3478 12263.758 -Loop time of 0.092666 on 1 procs for 100 steps with 512 atoms - -Performance: 93.238 ns/day, 0.257 hours/ns, 1079.144 timesteps/s -99.1% 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.089633 | 0.089633 | 0.089633 | 0.0 | 96.73 -Neigh | 0.001474 | 0.001474 | 0.001474 | 0.0 | 1.59 -Comm | 0.00041 | 0.00041 | 0.00041 | 0.0 | 0.44 -Output | 0.000153 | 0.000153 | 0.000153 | 0.0 | 0.17 -Modify | 0.000782 | 0.000782 | 0.000782 | 0.0 | 0.84 -Other | | 0.000214 | | | 0.23 - -Nlocal: 512.000 ave 512 max 512 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1017.00 ave 1017 max 1017 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 13988.0 ave 13988 max 13988 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 13988 -Ave neighs/atom = 27.320312 -Neighbor list builds = 2 -Dangerous builds = 0 - -write_restart restart.equil -System init for write_restart ... - -# Test Stillinger-Weber model for Cd/Te/Zn/Se/Hg/S - -clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil -Reading restart file ... - restart file = 30 Nov 2020, LAMMPS = 30 Nov 2020 - restoring atom style atomic from restart - orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 1 by 1 MPI processor grid - pair style sw stores no restart info - 512 atoms - read_restart CPU = 0.002 seconds - -pair_style sw -pair_coeff * * CdTeZnSeHgS0.sw Cd Zn Hg Cd Te S Se Te -Reading sw potential file CdTeZnSeHgS0.sw with DATE: 2013-08-09 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -Resetting global fix info from restart file: - fix style: nvt, fix ID: 1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -All restart file global fix info was re-assigned -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 5.6320004 - ghost atom cutoff = 5.6320004 - binsize = 2.8160002, bins = 8 8 8 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair sw, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.001 | 3.001 | 3.001 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 1112.9699 -625.76163 0 -564.38354 462129.66 - 110 1502.8461 -649.55768 0 -564.45814 463413.45 - 120 1926.4523 -674.71265 0 -564.53612 486338.88 - 130 1152.6663 -621.47264 0 -564.37203 514892.2 - 140 1762.244 -659.86941 0 -564.4985 488159.88 - 150 1767.8665 -657.67178 0 -564.48386 466721.31 - 160 1075.2874 -610.12809 0 -564.36709 470151.9 - 170 1697.9313 -649.3684 0 -564.47207 467953.71 - 180 1856.1197 -657.14338 0 -564.48754 488372.27 - 190 1346.1107 -621.42431 0 -564.38065 511750.04 - 200 1919.5266 -657.26587 0 -564.47797 488684.56 -Loop time of 0.289193 on 1 procs for 100 steps with 512 atoms - -Performance: 29.876 ns/day, 0.803 hours/ns, 345.790 timesteps/s -98.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.28463 | 0.28463 | 0.28463 | 0.0 | 98.42 -Neigh | 0.002821 | 0.002821 | 0.002821 | 0.0 | 0.98 -Comm | 0.000605 | 0.000605 | 0.000605 | 0.0 | 0.21 -Output | 0.000176 | 0.000176 | 0.000176 | 0.0 | 0.06 -Modify | 0.000769 | 0.000769 | 0.000769 | 0.0 | 0.27 -Other | | 0.000188 | | | 0.07 - -Nlocal: 512.000 ave 512 max 512 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1428.00 ave 1428 max 1428 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 17344.0 ave 17344 max 17344 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 17344 -Ave neighs/atom = 33.875000 -Neighbor list builds = 3 -Dangerous builds = 0 - -# Test Vashishta model for In/P - -clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil -Reading restart file ... - restart file = 30 Nov 2020, LAMMPS = 30 Nov 2020 - restoring atom style atomic from restart - orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 1 by 1 MPI processor grid - pair style sw stores no restart info - 512 atoms - read_restart CPU = 0.001 seconds - -pair_style vashishta -pair_coeff * * InP.vashishta In In In In P P P P -Reading vashishta potential file InP.vashishta with DATE: 2015-10-14 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -Resetting global fix info from restart file: - fix style: nvt, fix ID: 1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -All restart file global fix info was re-assigned -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 7 - ghost atom cutoff = 7 - binsize = 3.5, bins = 7 7 7 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair vashishta, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.025 | 3.025 | 3.025 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 1112.9699 -1497.2988 0 -1435.9207 355619.19 - 110 1250.545 -1504.5795 0 -1435.9786 345188.52 - 120 1360.2275 -1509.3443 0 -1435.9801 333306.3 - 130 1066.4516 -1487.9076 0 -1435.9076 334465.11 - 140 1481.0477 -1513.0511 0 -1435.988 308725.1 - 150 1216.1167 -1493.0774 0 -1435.9217 304249.09 - 160 1211.4398 -1490.7459 0 -1435.9164 288897.09 - 170 1542.2025 -1510.0774 0 -1435.9608 260104.14 - 180 1302.9041 -1491.7765 0 -1435.8971 249514.04 - 190 1332.3326 -1491.5271 0 -1435.9213 227537.99 - 200 1352.1813 -1490.4513 0 -1435.9049 207626.42 -Loop time of 0.126684 on 1 procs for 100 steps with 512 atoms - -Performance: 68.201 ns/day, 0.352 hours/ns, 789.366 timesteps/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 | 0.11981 | 0.11981 | 0.11981 | 0.0 | 94.57 -Neigh | 0.004903 | 0.004903 | 0.004903 | 0.0 | 3.87 -Comm | 0.000846 | 0.000846 | 0.000846 | 0.0 | 0.67 -Output | 0.000145 | 0.000145 | 0.000145 | 0.0 | 0.11 -Modify | 0.000772 | 0.000772 | 0.000772 | 0.0 | 0.61 -Other | | 0.000207 | | | 0.16 - -Nlocal: 512.000 ave 512 max 512 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1838.00 ave 1838 max 1838 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 36482.0 ave 36482 max 36482 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 36482 -Ave neighs/atom = 71.253906 -Neighbor list builds = 4 -Dangerous builds = 0 - -# Test Tersoff model for B/N/C - -clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil -Reading restart file ... - restart file = 30 Nov 2020, LAMMPS = 30 Nov 2020 - restoring atom style atomic from restart - orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 1 by 1 MPI processor grid - pair style sw stores no restart info - 512 atoms - read_restart CPU = 0.001 seconds - -variable fac equal 0.6 -change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap -Changing box ... - orthogonal box = (4.3448000 0.0000000 0.0000000) to (17.379200 21.724000 21.724000) - orthogonal box = (4.3448000 4.3448000 0.0000000) to (17.379200 17.379200 21.724000) - orthogonal box = (4.3448000 4.3448000 4.3448000) to (17.379200 17.379200 17.379200) - -pair_style tersoff -pair_coeff * * BNC.tersoff N N N C B B C B -Reading tersoff potential file BNC.tersoff with DATE: 2013-03-21 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -Resetting global fix info from restart file: - fix style: nvt, fix ID: 1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -All restart file global fix info was re-assigned -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 3.1 - ghost atom cutoff = 3.1 - binsize = 1.55, bins = 9 9 9 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair tersoff, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.982 | 2.982 | 2.982 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 1112.9699 -3259.7676 0 -3198.3895 1912461.3 - 110 1772.8268 -3301.5479 0 -3198.8218 1885295.6 - 120 1169.7287 -3258.74 0 -3197.9294 1898705.2 - 130 1308.5623 -3265.1338 0 -3197.5922 1894187.5 - 140 1486.0361 -3274.951 0 -3197.776 1871927.6 - 150 1419.0362 -3267.7302 0 -3197.2296 1925234.6 - 160 1196.6689 -3250.1492 0 -3196.7078 1902235.1 - 170 1707.5846 -3281.7658 0 -3196.9721 1863047.3 - 180 1337.4358 -3254.9844 0 -3196.8222 1880420.9 - 190 1441.8052 -3259.0364 0 -3196.3556 1904512.1 - 200 1569.0317 -3265.0089 0 -3196.3328 1899462.7 -Loop time of 0.114312 on 1 procs for 100 steps with 512 atoms - -Performance: 75.583 ns/day, 0.318 hours/ns, 874.799 timesteps/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 | 0.1121 | 0.1121 | 0.1121 | 0.0 | 98.06 -Neigh | 0.000773 | 0.000773 | 0.000773 | 0.0 | 0.68 -Comm | 0.000415 | 0.000415 | 0.000415 | 0.0 | 0.36 -Output | 0.000136 | 0.000136 | 0.000136 | 0.0 | 0.12 -Modify | 0.000703 | 0.000703 | 0.000703 | 0.0 | 0.61 -Other | | 0.000186 | | | 0.16 - -Nlocal: 512.000 ave 512 max 512 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1028.00 ave 1028 max 1028 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 14604.0 ave 14604 max 14604 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 14604 -Ave neighs/atom = 28.523438 -Neighbor list builds = 1 -Dangerous builds = 0 - -# Test Tersoff/Mod model for Si - -clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil -Reading restart file ... - restart file = 30 Nov 2020, LAMMPS = 30 Nov 2020 - restoring atom style atomic from restart - orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 1 by 1 MPI processor grid - pair style sw stores no restart info - 512 atoms - read_restart CPU = 0.001 seconds - -pair_style tersoff/mod -pair_coeff * * Si.tersoff.mod Si Si Si Si Si Si Si Si -Reading tersoff/mod potential file Si.tersoff.mod with DATE: 2013-07-26 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -Resetting global fix info from restart file: - fix style: nvt, fix ID: 1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -All restart file global fix info was re-assigned -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 4.3 - ghost atom cutoff = 4.3 - binsize = 2.15, bins = 11 11 11 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair tersoff/mod, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.986 | 2.986 | 2.986 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 1112.9699 -2309.6047 0 -2248.2266 17662.891 - 110 835.77436 -2289.6119 0 -2248.1918 19964.211 - 120 1067.0735 -2303.0587 0 -2248.2414 13767.101 - 130 957.60664 -2293.7047 0 -2248.2139 14850.338 - 140 865.12471 -2285.7774 0 -2248.1971 17101.553 - 150 1104.7368 -2299.5468 0 -2248.2286 13031.988 - 160 1077.1682 -2295.3841 0 -2248.2227 13615.019 - 170 843.8591 -2277.9713 0 -2248.1911 18966.532 - 180 1008.7412 -2286.922 0 -2248.2075 17275.649 - 190 1237.9346 -2299.5487 0 -2248.2305 14334.006 - 200 1060.2161 -2285.3352 0 -2248.1952 18999.834 -Loop time of 0.12412 on 1 procs for 100 steps with 512 atoms - -Performance: 69.610 ns/day, 0.345 hours/ns, 805.672 timesteps/s -99.2% 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.12079 | 0.12079 | 0.12079 | 0.0 | 97.32 -Neigh | 0.001821 | 0.001821 | 0.001821 | 0.0 | 1.47 -Comm | 0.000407 | 0.000407 | 0.000407 | 0.0 | 0.33 -Output | 0.000159 | 0.000159 | 0.000159 | 0.0 | 0.13 -Modify | 0.000736 | 0.000736 | 0.000736 | 0.0 | 0.59 -Other | | 0.000203 | | | 0.16 - -Nlocal: 512.000 ave 512 max 512 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1007.00 ave 1007 max 1007 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 8884.00 ave 8884 max 8884 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 8884 -Ave neighs/atom = 17.351562 -Neighbor list builds = 3 -Dangerous builds = 0 - -# Test Tersoff/Mod/C model for Si - -clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil -Reading restart file ... - restart file = 30 Nov 2020, LAMMPS = 30 Nov 2020 - restoring atom style atomic from restart - orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 1 by 1 MPI processor grid - pair style sw stores no restart info - 512 atoms - read_restart CPU = 0.001 seconds -newton on on -pair_style tersoff/mod/c -pair_coeff * * Si.tersoff.modc Si Si Si Si Si Si Si Si -Reading tersoff/mod/c potential file Si.tersoff.modc with DATE: 2016-11-09 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -Resetting global fix info from restart file: - fix style: nvt, fix ID: 1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -All restart file global fix info was re-assigned -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 4.205694 - ghost atom cutoff = 4.205694 - binsize = 2.102847, bins = 11 11 11 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair tersoff/mod/c, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.980 | 2.980 | 2.980 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 1112.9699 -2309.1331 0 -2247.755 20346.718 - 110 831.93715 -2288.8853 0 -2247.7187 21758.195 - 120 1077.6698 -2303.2846 0 -2247.7693 16036.053 - 130 972.43247 -2294.1847 0 -2247.7467 16614.835 - 140 815.76148 -2282.0495 0 -2247.7194 18310.116 - 150 1072.7096 -2297.0491 0 -2247.7574 13896.767 - 160 1061.8824 -2294.0028 0 -2247.7522 13663.179 - 170 787.17244 -2273.8946 0 -2247.7175 18586.606 - 180 932.5662 -2281.6828 0 -2247.7315 18154.167 - 190 1205.7299 -2297.2769 0 -2247.7608 14504.136 - 200 1022.5285 -2282.7039 0 -2247.7245 18710.495 -Loop time of 0.12973 on 1 procs for 100 steps with 512 atoms - -Performance: 66.600 ns/day, 0.360 hours/ns, 770.832 timesteps/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 | 0.12643 | 0.12643 | 0.12643 | 0.0 | 97.45 -Neigh | 0.001798 | 0.001798 | 0.001798 | 0.0 | 1.39 -Comm | 0.000421 | 0.000421 | 0.000421 | 0.0 | 0.32 -Output | 0.00016 | 0.00016 | 0.00016 | 0.0 | 0.12 -Modify | 0.000733 | 0.000733 | 0.000733 | 0.0 | 0.57 -Other | | 0.000192 | | | 0.15 - -Nlocal: 512.000 ave 512 max 512 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 958.000 ave 958 max 958 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 8416.00 ave 8416 max 8416 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 8416 -Ave neighs/atom = 16.437500 -Neighbor list builds = 3 -Dangerous builds = 0 - -Total wall time: 0:00:00 diff --git a/examples/threebody/log.13Jan21.threebody.g++.4 b/examples/threebody/log.13Jan21.threebody.g++.4 deleted file mode 100644 index 621c1cab39..0000000000 --- a/examples/threebody/log.13Jan21.threebody.g++.4 +++ /dev/null @@ -1,547 +0,0 @@ -LAMMPS (30 Nov 2020) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -# Simple regression tests for threebody potentials - -# NOTE: These are not intended to represent real materials - -units metal - -atom_style atomic -atom_modify map array -boundary p p p -atom_modify sort 0 0.0 - -# temperature - -variable t equal 1800.0 - -# cubic diamond unit cell - -variable a equal 5.431 -lattice custom $a a1 1.0 0.0 0.0 a2 0.0 1.0 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0 basis 0.0 0.5 0.5 basis 0.5 0.0 0.5 basis 0.5 0.5 0.0 basis 0.25 0.25 0.25 basis 0.25 0.75 0.75 basis 0.75 0.25 0.75 basis 0.75 0.75 0.25 -lattice custom 5.431 a1 1.0 0.0 0.0 a2 0.0 1.0 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0 basis 0.0 0.5 0.5 basis 0.5 0.0 0.5 basis 0.5 0.5 0.0 basis 0.25 0.25 0.25 basis 0.25 0.75 0.75 basis 0.75 0.25 0.75 basis 0.75 0.75 0.25 -Lattice spacing in x,y,z = 5.4310000 5.4310000 5.4310000 - -region myreg block 0 4 0 4 0 4 - -create_box 8 myreg -Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 2 by 2 MPI processor grid -create_atoms 1 region myreg basis 1 1 basis 2 2 basis 3 3 basis 4 4 basis 5 5 basis 6 6 basis 7 7 basis 8 8 -Created 512 atoms - create_atoms CPU = 0.001 seconds - -mass * 28.06 - -velocity all create $t 5287287 loop geom -velocity all create 1800 5287287 loop geom - -# Equilibrate using Stillinger-Weber model for silicon - -pair_style sw -pair_coeff * * Si.sw Si Si Si Si Si Si Si Si -Reading sw potential file Si.sw with DATE: 2007-06-11 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 4.77118 - ghost atom cutoff = 4.77118 - binsize = 2.38559, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair sw, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.958 | 2.958 | 2.958 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1800 -2220.3392 0 -2101.4457 12358.626 - 10 1006.0192 -2167.7053 0 -2101.3286 13892.426 - 20 588.26396 -2139.7132 0 -2101.3117 11295.566 - 30 990.55956 -2165.2164 0 -2101.3931 6279.0239 - 40 700.12917 -2144.4279 0 -2101.3427 5594.2388 - 50 523.64239 -2131.7796 0 -2101.3122 6013.0994 - 60 989.47092 -2161.3716 0 -2101.3839 5819.2688 - 70 877.27433 -2152.4432 0 -2101.3461 9116.6569 - 80 800.80221 -2146.1371 0 -2101.313 11995.66 - 90 1293.9689 -2176.9021 0 -2101.3848 11692.45 - 100 1112.9699 -2162.7259 0 -2101.3478 12263.758 -Loop time of 0.0284905 on 4 procs for 100 steps with 512 atoms - -Performance: 303.259 ns/day, 0.079 hours/ns, 3509.942 timesteps/s -99.0% 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.022257 | 0.023383 | 0.025192 | 0.7 | 82.07 -Neigh | 0.00036 | 0.00037475 | 0.000387 | 0.0 | 1.32 -Comm | 0.002084 | 0.0039075 | 0.005034 | 1.8 | 13.72 -Output | 9.9e-05 | 0.00011525 | 0.00016 | 0.0 | 0.40 -Modify | 0.000428 | 0.00043675 | 0.000443 | 0.0 | 1.53 -Other | | 0.0002728 | | | 0.96 - -Nlocal: 128.000 ave 132 max 125 min -Histogram: 1 1 0 0 0 1 0 0 0 1 -Nghost: 525.000 ave 528 max 521 min -Histogram: 1 0 0 0 1 0 0 0 1 1 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -FullNghs: 3497.00 ave 3619 max 3397 min -Histogram: 1 1 0 0 0 0 1 0 0 1 - -Total # of neighbors = 13988 -Ave neighs/atom = 27.320312 -Neighbor list builds = 2 -Dangerous builds = 0 - -write_restart restart.equil -System init for write_restart ... - -# Test Stillinger-Weber model for Cd/Te/Zn/Se/Hg/S - -clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil -Reading restart file ... - restart file = 30 Nov 2020, LAMMPS = 30 Nov 2020 - restoring atom style atomic from restart - orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 2 by 2 MPI processor grid - pair style sw stores no restart info - 512 atoms - read_restart CPU = 0.000 seconds - -pair_style sw -pair_coeff * * CdTeZnSeHgS0.sw Cd Zn Hg Cd Te S Se Te -Reading sw potential file CdTeZnSeHgS0.sw with DATE: 2013-08-09 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -Resetting global fix info from restart file: - fix style: nvt, fix ID: 1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -All restart file global fix info was re-assigned -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 5.6320004 - ghost atom cutoff = 5.6320004 - binsize = 2.8160002, bins = 8 8 8 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair sw, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.967 | 2.967 | 2.968 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 1112.9699 -625.76163 0 -564.38354 462129.66 - 110 1502.8461 -649.55768 0 -564.45814 463413.45 - 120 1926.4523 -674.71265 0 -564.53613 486338.88 - 130 1152.6663 -621.47265 0 -564.37203 514892.19 - 140 1762.244 -659.86941 0 -564.4985 488159.88 - 150 1767.8665 -657.67179 0 -564.48386 466721.31 - 160 1075.2874 -610.1281 0 -564.36709 470151.9 - 170 1697.9313 -649.3684 0 -564.47208 467953.7 - 180 1856.1197 -657.14338 0 -564.48754 488372.26 - 190 1346.1107 -621.42432 0 -564.38065 511750.03 - 200 1919.5266 -657.26587 0 -564.47797 488684.56 -Loop time of 0.084576 on 4 procs for 100 steps with 512 atoms - -Performance: 102.157 ns/day, 0.235 hours/ns, 1182.369 timesteps/s -99.2% 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.072089 | 0.074912 | 0.076672 | 0.7 | 88.57 -Neigh | 0.000745 | 0.0008125 | 0.000883 | 0.0 | 0.96 -Comm | 0.006054 | 0.0077975 | 0.010598 | 2.1 | 9.22 -Output | 0.000129 | 0.00015525 | 0.000219 | 0.0 | 0.18 -Modify | 0.000523 | 0.000578 | 0.000641 | 0.0 | 0.68 -Other | | 0.0003213 | | | 0.38 - -Nlocal: 128.000 ave 135 max 122 min -Histogram: 1 0 1 0 0 0 1 0 0 1 -Nghost: 759.750 ave 770 max 751 min -Histogram: 1 0 0 1 1 0 0 0 0 1 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -FullNghs: 4336.00 ave 4563 max 4128 min -Histogram: 1 0 1 0 0 0 1 0 0 1 - -Total # of neighbors = 17344 -Ave neighs/atom = 33.875000 -Neighbor list builds = 3 -Dangerous builds = 0 - -# Test Vashishta model for In/P - -clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil -Reading restart file ... - restart file = 30 Nov 2020, LAMMPS = 30 Nov 2020 - restoring atom style atomic from restart - orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 2 by 2 MPI processor grid - pair style sw stores no restart info - 512 atoms - read_restart CPU = 0.001 seconds - -pair_style vashishta -pair_coeff * * InP.vashishta In In In In P P P P -Reading vashishta potential file InP.vashishta with DATE: 2015-10-14 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -Resetting global fix info from restart file: - fix style: nvt, fix ID: 1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -All restart file global fix info was re-assigned -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 7 - ghost atom cutoff = 7 - binsize = 3.5, bins = 7 7 7 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair vashishta, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.988 | 2.988 | 2.988 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 1112.9699 -1497.2988 0 -1435.9207 355619.19 - 110 1250.545 -1504.5795 0 -1435.9786 345188.52 - 120 1360.2275 -1509.3443 0 -1435.9801 333306.3 - 130 1066.4516 -1487.9076 0 -1435.9076 334465.11 - 140 1481.0477 -1513.0511 0 -1435.988 308725.1 - 150 1216.1167 -1493.0774 0 -1435.9217 304249.09 - 160 1211.4398 -1490.7459 0 -1435.9164 288897.09 - 170 1542.2025 -1510.0774 0 -1435.9608 260104.14 - 180 1302.9041 -1491.7765 0 -1435.8971 249514.04 - 190 1332.3326 -1491.5271 0 -1435.9213 227537.99 - 200 1352.1813 -1490.4513 0 -1435.9049 207626.42 -Loop time of 0.0404882 on 4 procs for 100 steps with 512 atoms - -Performance: 213.395 ns/day, 0.112 hours/ns, 2469.852 timesteps/s -99.1% 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.032713 | 0.033094 | 0.033544 | 0.2 | 81.74 -Neigh | 0.001251 | 0.0012875 | 0.001308 | 0.1 | 3.18 -Comm | 0.004788 | 0.005204 | 0.00557 | 0.4 | 12.85 -Output | 0.000123 | 0.0001385 | 0.000182 | 0.0 | 0.34 -Modify | 0.000492 | 0.00050725 | 0.000533 | 0.0 | 1.25 -Other | | 0.0002565 | | | 0.63 - -Nlocal: 128.000 ave 131 max 124 min -Histogram: 1 0 0 0 0 1 0 1 0 1 -Nghost: 1013.25 ave 1025 max 1002 min -Histogram: 1 1 0 0 0 0 0 0 1 1 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -FullNghs: 9120.50 ave 9356 max 8868 min -Histogram: 1 0 0 0 1 0 1 0 0 1 - -Total # of neighbors = 36482 -Ave neighs/atom = 71.253906 -Neighbor list builds = 4 -Dangerous builds = 0 - -# Test Tersoff model for B/N/C - -clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil -Reading restart file ... - restart file = 30 Nov 2020, LAMMPS = 30 Nov 2020 - restoring atom style atomic from restart - orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 2 by 2 MPI processor grid - pair style sw stores no restart info - 512 atoms - read_restart CPU = 0.001 seconds - -variable fac equal 0.6 -change_box all x scale ${fac} y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale ${fac} z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale ${fac} remap -change_box all x scale 0.6 y scale 0.6 z scale 0.6 remap -Changing box ... - orthogonal box = (4.3448000 0.0000000 0.0000000) to (17.379200 21.724000 21.724000) - orthogonal box = (4.3448000 4.3448000 0.0000000) to (17.379200 17.379200 21.724000) - orthogonal box = (4.3448000 4.3448000 4.3448000) to (17.379200 17.379200 17.379200) - -pair_style tersoff -pair_coeff * * BNC.tersoff N N N C B B C B -Reading tersoff potential file BNC.tersoff with DATE: 2013-03-21 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -Resetting global fix info from restart file: - fix style: nvt, fix ID: 1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -All restart file global fix info was re-assigned -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 3.1 - ghost atom cutoff = 3.1 - binsize = 1.55, bins = 9 9 9 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair tersoff, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.948 | 2.948 | 2.948 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 1112.9699 -3259.7676 0 -3198.3895 1912461.3 - 110 1772.8268 -3301.5479 0 -3198.8218 1885295.6 - 120 1169.7287 -3258.74 0 -3197.9294 1898705.2 - 130 1308.5623 -3265.1338 0 -3197.5922 1894187.5 - 140 1486.0361 -3274.951 0 -3197.776 1871927.6 - 150 1419.0362 -3267.7302 0 -3197.2296 1925234.6 - 160 1196.6689 -3250.1492 0 -3196.7078 1902235.1 - 170 1707.5846 -3281.7658 0 -3196.9721 1863047.3 - 180 1337.4358 -3254.9844 0 -3196.8222 1880420.9 - 190 1441.8052 -3259.0364 0 -3196.3556 1904512.1 - 200 1569.0317 -3265.0089 0 -3196.3328 1899462.7 -Loop time of 0.03452 on 4 procs for 100 steps with 512 atoms - -Performance: 250.290 ns/day, 0.096 hours/ns, 2896.871 timesteps/s -99.3% 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.029269 | 0.029729 | 0.030688 | 0.3 | 86.12 -Neigh | 0.000203 | 0.00023375 | 0.000271 | 0.0 | 0.68 -Comm | 0.00275 | 0.0036492 | 0.004132 | 0.9 | 10.57 -Output | 0.000104 | 0.000121 | 0.000165 | 0.0 | 0.35 -Modify | 0.000456 | 0.0004605 | 0.000463 | 0.0 | 1.33 -Other | | 0.000326 | | | 0.94 - -Nlocal: 128.000 ave 132 max 123 min -Histogram: 1 0 0 0 0 1 1 0 0 1 -Nghost: 529.500 ave 533 max 524 min -Histogram: 1 0 0 0 0 0 1 1 0 1 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -FullNghs: 3651.00 ave 3783 max 3494 min -Histogram: 1 0 0 0 0 1 1 0 0 1 - -Total # of neighbors = 14604 -Ave neighs/atom = 28.523438 -Neighbor list builds = 1 -Dangerous builds = 0 - -# Test Tersoff/Mod model for Si - -clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil -Reading restart file ... - restart file = 30 Nov 2020, LAMMPS = 30 Nov 2020 - restoring atom style atomic from restart - orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 2 by 2 MPI processor grid - pair style sw stores no restart info - 512 atoms - read_restart CPU = 0.001 seconds - -pair_style tersoff/mod -pair_coeff * * Si.tersoff.mod Si Si Si Si Si Si Si Si -Reading tersoff/mod potential file Si.tersoff.mod with DATE: 2013-07-26 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -Resetting global fix info from restart file: - fix style: nvt, fix ID: 1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -All restart file global fix info was re-assigned -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 4.3 - ghost atom cutoff = 4.3 - binsize = 2.15, bins = 11 11 11 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair tersoff/mod, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.950 | 2.950 | 2.950 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 1112.9699 -2309.6047 0 -2248.2266 17662.891 - 110 835.77436 -2289.6119 0 -2248.1918 19964.211 - 120 1067.0735 -2303.0587 0 -2248.2414 13767.101 - 130 957.60664 -2293.7047 0 -2248.2139 14850.338 - 140 865.12471 -2285.7774 0 -2248.1971 17101.553 - 150 1104.7368 -2299.5468 0 -2248.2286 13031.988 - 160 1077.1682 -2295.3841 0 -2248.2227 13615.019 - 170 843.8591 -2277.9713 0 -2248.1911 18966.532 - 180 1008.7412 -2286.922 0 -2248.2075 17275.649 - 190 1237.9346 -2299.5487 0 -2248.2305 14334.006 - 200 1060.2161 -2285.3352 0 -2248.1952 18999.834 -Loop time of 0.043388 on 4 procs for 100 steps with 512 atoms - -Performance: 199.133 ns/day, 0.121 hours/ns, 2304.785 timesteps/s -98.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.033874 | 0.036197 | 0.037433 | 0.7 | 83.43 -Neigh | 0.000538 | 0.00055575 | 0.000575 | 0.0 | 1.28 -Comm | 0.004381 | 0.0055505 | 0.007783 | 1.8 | 12.79 -Output | 0.000141 | 0.0001635 | 0.000228 | 0.0 | 0.38 -Modify | 0.000532 | 0.000615 | 0.000692 | 0.0 | 1.42 -Other | | 0.000306 | | | 0.71 - -Nlocal: 128.000 ave 135 max 121 min -Histogram: 1 0 0 0 1 1 0 0 0 1 -Nghost: 515.000 ave 518 max 508 min -Histogram: 1 0 0 0 0 0 0 0 1 2 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -FullNghs: 2221.00 ave 2328 max 2103 min -Histogram: 1 0 0 0 1 0 1 0 0 1 - -Total # of neighbors = 8884 -Ave neighs/atom = 17.351562 -Neighbor list builds = 3 -Dangerous builds = 0 - -# Test Tersoff/Mod/C model for Si - -clear -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) - using 1 OpenMP thread(s) per MPI task -read_restart restart.equil -Reading restart file ... - restart file = 30 Nov 2020, LAMMPS = 30 Nov 2020 - restoring atom style atomic from restart - orthogonal box = (0.0000000 0.0000000 0.0000000) to (21.724000 21.724000 21.724000) - 1 by 2 by 2 MPI processor grid - pair style sw stores no restart info - 512 atoms - read_restart CPU = 0.001 seconds -newton on on -pair_style tersoff/mod/c -pair_coeff * * Si.tersoff.modc Si Si Si Si Si Si Si Si -Reading tersoff/mod/c potential file Si.tersoff.modc with DATE: 2016-11-09 - -thermo 10 -fix 1 all nvt temp $t $t 0.1 -fix 1 all nvt temp 1800 $t 0.1 -fix 1 all nvt temp 1800 1800 0.1 -Resetting global fix info from restart file: - fix style: nvt, fix ID: 1 -fix_modify 1 energy yes -timestep 1.0e-3 -neighbor 1.0 bin -neigh_modify every 1 delay 10 check yes -run 100 -All restart file global fix info was re-assigned -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 4.205694 - ghost atom cutoff = 4.205694 - binsize = 2.102847, bins = 11 11 11 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair tersoff/mod/c, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 2.950 | 2.950 | 2.950 Mbytes -Step Temp E_pair E_mol TotEng Press - 100 1112.9699 -2309.1331 0 -2247.755 20346.718 - 110 831.93715 -2288.8853 0 -2247.7187 21758.195 - 120 1077.6698 -2303.2846 0 -2247.7693 16036.053 - 130 972.43247 -2294.1847 0 -2247.7467 16614.835 - 140 815.76148 -2282.0495 0 -2247.7194 18310.116 - 150 1072.7096 -2297.0491 0 -2247.7574 13896.767 - 160 1061.8824 -2294.0028 0 -2247.7522 13663.179 - 170 787.17244 -2273.8946 0 -2247.7175 18586.606 - 180 932.5662 -2281.6828 0 -2247.7315 18154.167 - 190 1205.7299 -2297.2769 0 -2247.7608 14504.136 - 200 1022.5285 -2282.7039 0 -2247.7245 18710.495 -Loop time of 0.0526065 on 4 procs for 100 steps with 512 atoms - -Performance: 164.238 ns/day, 0.146 hours/ns, 1900.906 timesteps/s -98.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.044962 | 0.045875 | 0.046737 | 0.3 | 87.20 -Neigh | 0.000603 | 0.00062075 | 0.000646 | 0.0 | 1.18 -Comm | 0.003882 | 0.0047085 | 0.005598 | 1.0 | 8.95 -Output | 0.000159 | 0.0001995 | 0.000321 | 0.0 | 0.38 -Modify | 0.000767 | 0.0007775 | 0.000792 | 0.0 | 1.48 -Other | | 0.0004255 | | | 0.81 - -Nlocal: 128.000 ave 131 max 122 min -Histogram: 1 0 0 0 0 0 1 0 0 2 -Nghost: 483.000 ave 485 max 479 min -Histogram: 1 0 0 0 0 0 1 0 0 2 -Neighs: 0.00000 ave 0 max 0 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -FullNghs: 2104.00 ave 2169 max 2008 min -Histogram: 1 0 0 0 0 1 0 0 1 1 - -Total # of neighbors = 8416 -Ave neighs/atom = 16.437500 -Neighbor list builds = 3 -Dangerous builds = 0 - -Total wall time: 0:00:00 diff --git a/lib/colvars/colvargrid.cpp b/lib/colvars/colvargrid.cpp index 7c2fe3b33c..df122b1be4 100644 --- a/lib/colvars/colvargrid.cpp +++ b/lib/colvars/colvargrid.cpp @@ -423,8 +423,8 @@ void integrate_potential::atimes(const std::vector &A, std::vector(w - 1); // Follows right edge if (periodic[0]) { xm = h * (w - 1); xp = h; @@ -478,7 +478,7 @@ void integrate_potential::atimes(const std::vector &A, std::vector &A, std::vector(h); // Skip left slab fact = facty * factz; for (i=1; i &A, std::vector(d) * h * (w - 1); // Follows right slab if (periodic[0]) { xm = d * h * (w - 1); xp = d * h; @@ -639,8 +639,8 @@ void integrate_potential::atimes(const std::vector &A, std::vector(d - 1); // Follows back slab if (periodic[1]) { ym = h * (d - 1); yp = h; @@ -664,8 +664,8 @@ void integrate_potential::atimes(const std::vector &A, std::vector(d - 1); + index2 += h * static_cast(d - 1); } } else { ym = -h; @@ -691,8 +691,8 @@ void integrate_potential::atimes(const std::vector &A, std::vector(d - 1); + index2 += h * static_cast(d - 1); } } diff --git a/lib/colvars/colvargrid.h b/lib/colvars/colvargrid.h index 427e5b0825..17d049a6eb 100644 --- a/lib/colvars/colvargrid.h +++ b/lib/colvars/colvargrid.h @@ -59,7 +59,7 @@ protected: { size_t addr = 0; for (size_t i = 0; i < nd; i++) { - addr += ix[i]*nxc[i]; + addr += ix[i]*static_cast(nxc[i]); if (cvm::debug()) { if (ix[i] >= nx[i]) { cvm::error("Error: exceeding bounds in colvar_grid.\n", BUG_ERROR); diff --git a/lib/gpu/Install.py b/lib/gpu/Install.py index d06a37567a..4a14c503a6 100644 --- a/lib/gpu/Install.py +++ b/lib/gpu/Install.py @@ -46,10 +46,10 @@ parser.add_argument("-b", "--build", action="store_true", help="build the GPU library from scratch from a customized Makefile.auto") parser.add_argument("-m", "--machine", default='linux', help="suffix of Makefile.machine used as base for customizing Makefile.auto") -parser.add_argument("-a", "--arch", default='sm_30', +parser.add_argument("-a", "--arch", default='sm_50', choices=['sm_12', 'sm_13', 'sm_20', 'sm_21', 'sm_30', 'sm_35', 'sm_37', - 'sm_50', 'sm_52', 'sm_60', 'sm_61', 'sm_70', 'sm_75'], - help="set GPU architecture and instruction set (default: 'sm_30')") + 'sm_50', 'sm_52', 'sm_60', 'sm_61', 'sm_70', 'sm_75', 'sm_80'], + help="set GPU architecture and instruction set (default: 'sm_50')") parser.add_argument("-p", "--precision", default='mixed', choices=['single', 'mixed', 'double'], help="set GPU kernel precision mode (default: mixed)") parser.add_argument("-e", "--extramake", default='standard', diff --git a/lib/gpu/Makefile.cuda b/lib/gpu/Makefile.cuda index d357ebf0e4..e03b59979a 100644 --- a/lib/gpu/Makefile.cuda +++ b/lib/gpu/Makefile.cuda @@ -30,6 +30,7 @@ AR = ar BSH = /bin/sh CUDPP_OPT = -DUSE_CUDPP -Icudpp_mini +CUDA_MPS = # device code compiler and settings @@ -37,7 +38,8 @@ NVCC = nvcc CUDA_ARCH = -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] \ -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61] \ - -gencode arch=compute_70,code=[sm_70,compute_70] -gencode arch=compute_75,code=[sm_75,compute_75] + -gencode arch=compute_70,code=[sm_70,compute_70] -gencode arch=compute_75,code=[sm_75,compute_75] \ + -gencode arch=compute_80,code=[sm_80,compute_80] -gencode arch=compute_86,code=[sm_86,compute_86] CUDA_INCLUDE = -I$(CUDA_HOME)/include CUDA_LIB = -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib64/stubs CUDA_OPTS = -DUNIX -O3 --use_fast_math $(LMP_INC) -Xcompiler -fPIC @@ -51,7 +53,7 @@ BIN2C = $(CUDA_HOME)/bin/bin2c CUDR_CPP = mpicxx -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC CUDR_OPTS = -O2 $(LMP_INC) -CUDR = $(CUDR_CPP) $(CUDR_OPTS) $(CUDA_PRECISION) $(CUDA_INCLUDE) \ +CUDR = $(CUDR_CPP) $(CUDR_OPTS) $(CUDA_PROXY) $(CUDA_PRECISION) $(CUDA_INCLUDE) \ $(CUDPP_OPT) # Headers for Geryon diff --git a/lib/gpu/Makefile.cuda_mps b/lib/gpu/Makefile.cuda_mps new file mode 100644 index 0000000000..172640ce6a --- /dev/null +++ b/lib/gpu/Makefile.cuda_mps @@ -0,0 +1,151 @@ +# /* ---------------------------------------------------------------------- +# Generic Linux Makefile for CUDA +# - change CUDA_ARCH for your GPU +# ------------------------------------------------------------------------- */ + +# which file will be copied to Makefile.lammps + +EXTRAMAKE = Makefile.lammps.standard + +ifeq ($(CUDA_HOME),) +CUDA_HOME = /usr/local/cuda +endif + +# this setting should match LAMMPS Makefile +# one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL + +LMP_INC = -DLAMMPS_SMALLBIG + +# precision for GPU calculations +# -D_SINGLE_SINGLE # Single precision for all calculations +# -D_DOUBLE_DOUBLE # Double precision for all calculations +# -D_SINGLE_DOUBLE # Accumulation of forces, etc. in double + +CUDA_PRECISION = -D_SINGLE_DOUBLE + +BIN_DIR = ./ +OBJ_DIR = ./ +LIB_DIR = ./ +AR = ar +BSH = /bin/sh + +CUDPP_OPT = +CUDA_MPS = -DCUDA_PROXY + +# device code compiler and settings + +NVCC = nvcc + +CUDA_ARCH = -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] \ + -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61] \ + -gencode arch=compute_70,code=[sm_70,compute_70] -gencode arch=compute_75,code=[sm_75,compute_75] \ + -gencode arch=compute_80,code=[sm_80,compute_80] -gencode arch=compute_86,code=[sm_86,compute_86] +CUDA_INCLUDE = -I$(CUDA_HOME)/include +CUDA_LIB = -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib64/stubs +CUDA_OPTS = -DUNIX -O3 --use_fast_math $(LMP_INC) -Xcompiler -fPIC +CUDA_LINK = $(CUDA_LIB) -lcudart +CUDA = $(NVCC) $(CUDA_INCLUDE) $(CUDA_OPTS) -Icudpp_mini $(CUDA_ARCH) \ + $(CUDA_PRECISION) + +BIN2C = $(CUDA_HOME)/bin/bin2c + +# host code compiler and settings + +CUDR_CPP = mpicxx -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC +CUDR_OPTS = -O2 $(LMP_INC) +CUDR = $(CUDR_CPP) $(CUDR_OPTS) $(CUDA_PROXY) $(CUDA_PRECISION) $(CUDA_INCLUDE) \ + $(CUDPP_OPT) + +# Headers for Geryon +UCL_H = $(wildcard ./geryon/ucl*.h) +NVD_H = $(wildcard ./geryon/nvd*.h) $(UCL_H) lal_preprocessor.h +ALL_H = $(NVD_H) $(wildcard ./lal_*.h) + +# Source files +SRCS := $(wildcard ./lal_*.cpp) +OBJS := $(subst ./,$(OBJ_DIR)/,$(SRCS:%.cpp=%.o)) +CUS := $(wildcard lal_*.cu) +CUHS := $(filter-out pppm_cubin.h, $(CUS:lal_%.cu=%_cubin.h)) pppm_f_cubin.h pppm_d_cubin.h +CUHS := $(addprefix $(OBJ_DIR)/, $(CUHS)) + +ifdef CUDPP_OPT +CUDPP = $(OBJ_DIR)/cudpp.o $(OBJ_DIR)/cudpp_plan.o \ + $(OBJ_DIR)/cudpp_maximal_launch.o $(OBJ_DIR)/cudpp_plan_manager.o \ + $(OBJ_DIR)/radixsort_app.cu_o $(OBJ_DIR)/scan_app.cu_o +endif + +# targets + +GPU_LIB = $(LIB_DIR)/libgpu.a + +EXECS = $(BIN_DIR)/nvc_get_devices + +all: $(OBJ_DIR) $(CUHS) $(GPU_LIB) $(EXECS) + +$(OBJ_DIR): + mkdir -p $@ + +# device code compilation + +$(OBJ_DIR)/pppm_f.cubin: lal_pppm.cu lal_precision.h lal_preprocessor.h + $(CUDA) --fatbin -DNV_KERNEL -Dgrdtyp=float -Dgrdtyp4=float4 -o $@ lal_pppm.cu + +$(OBJ_DIR)/pppm_f_cubin.h: $(OBJ_DIR)/pppm_f.cubin + $(BIN2C) -c -n pppm_f $(OBJ_DIR)/pppm_f.cubin > $(OBJ_DIR)/pppm_f_cubin.h + +$(OBJ_DIR)/pppm_d.cubin: lal_pppm.cu lal_precision.h lal_preprocessor.h + $(CUDA) --fatbin -DNV_KERNEL -Dgrdtyp=double -Dgrdtyp4=double4 -o $@ lal_pppm.cu + +$(OBJ_DIR)/pppm_d_cubin.h: $(OBJ_DIR)/pppm_d.cubin + $(BIN2C) -c -n pppm_d $(OBJ_DIR)/pppm_d.cubin > $(OBJ_DIR)/pppm_d_cubin.h + +$(OBJ_DIR)/%_cubin.h: lal_%.cu $(ALL_H) + $(CUDA) --fatbin -DNV_KERNEL -o $(OBJ_DIR)/$*.cubin $(OBJ_DIR)/lal_$*.cu + $(BIN2C) -c -n $* $(OBJ_DIR)/$*.cubin > $@ + @rm $(OBJ_DIR)/$*.cubin + +# host code compilation + +$(OBJ_DIR)/lal_%.o: lal_%.cpp $(CUHS) $(ALL_H) + $(CUDR) -o $@ -c $< -I$(OBJ_DIR) + +#ifdef CUDPP_OPT +$(OBJ_DIR)/cudpp.o: cudpp_mini/cudpp.cpp + $(CUDR) -o $@ -c cudpp_mini/cudpp.cpp -Icudpp_mini + +$(OBJ_DIR)/cudpp_plan.o: cudpp_mini/cudpp_plan.cpp + $(CUDR) -o $@ -c cudpp_mini/cudpp_plan.cpp -Icudpp_mini + +$(OBJ_DIR)/cudpp_maximal_launch.o: cudpp_mini/cudpp_maximal_launch.cpp + $(CUDR) -o $@ -c cudpp_mini/cudpp_maximal_launch.cpp -Icudpp_mini + +$(OBJ_DIR)/cudpp_plan_manager.o: cudpp_mini/cudpp_plan_manager.cpp + $(CUDR) -o $@ -c cudpp_mini/cudpp_plan_manager.cpp -Icudpp_mini + +$(OBJ_DIR)/radixsort_app.cu_o: cudpp_mini/radixsort_app.cu + $(CUDA) -o $@ -c cudpp_mini/radixsort_app.cu + +$(OBJ_DIR)/scan_app.cu_o: cudpp_mini/scan_app.cu + $(CUDA) -o $@ -c cudpp_mini/scan_app.cu +#endif + +# build libgpu.a + +$(GPU_LIB): $(OBJS) $(CUDPP) + $(AR) -crusv $(GPU_LIB) $(OBJS) $(CUDPP) + @cp $(EXTRAMAKE) Makefile.lammps + +# test app for querying device info + +$(BIN_DIR)/nvc_get_devices: ./geryon/ucl_get_devices.cpp $(NVD_H) + $(CUDR) -o $@ ./geryon/ucl_get_devices.cpp -DUCL_CUDADR $(CUDA_LIB) -lcuda + +clean: + -rm -f $(EXECS) $(GPU_LIB) $(OBJS) $(CUDPP) $(CUHS) *.linkinfo + +veryclean: clean + -rm -rf *~ *.linkinfo + +cleanlib: + -rm -f $(EXECS) $(GPU_LIB) $(OBJS) $(CUHS) *.linkinfo + diff --git a/lib/gpu/Makefile.linux b/lib/gpu/Makefile.linux index da18ae41ca..5fff81072b 100644 --- a/lib/gpu/Makefile.linux +++ b/lib/gpu/Makefile.linux @@ -41,6 +41,10 @@ CUDA_ARCH = -arch=sm_50 # Turing hardware #CUDA_ARCH = -arch=sm_75 +# Ampere hardware +#CUDA_ARCH = -arch=sm_80 +#CUDA_ARCH = -arch=sm_86 + # this setting should match LAMMPS Makefile # one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL diff --git a/lib/gpu/Makefile.linux_multi b/lib/gpu/Makefile.linux_multi index e0c250a951..aa7d92572d 100644 --- a/lib/gpu/Makefile.linux_multi +++ b/lib/gpu/Makefile.linux_multi @@ -31,9 +31,24 @@ NVCC = nvcc CUDA_ARCH = -arch=sm_50 #CUDA_ARCH = -arch=sm_52 +# Pascal hardware +#CUDA_ARCH = -arch=sm_60 +#CUDA_ARCH = -arch=sm_61 + +# Volta hardware +#CUDA_ARCH = -arch=sm_70 + +# Turing hardware +#CUDA_ARCH = -arch=sm_75 + +# Ampere hardware +#CUDA_ARCH = -arch=sm_80 +#CUDA_ARCH = -arch=sm_86 + CUDA_CODE = -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] \ -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61] \ - -gencode arch=compute_70,code=[sm_70,compute_70] -gencode arch=compute_75,code=[sm_75,compute_75] + -gencode arch=compute_70,code=[sm_70,compute_70] -gencode arch=compute_75,code=[sm_75,compute_75] \ + -gencode arch=compute_80,code=[sm_80,compute_80] -gencode arch=compute_86,code=[sm_86,compute_86] CUDA_ARCH += $(CUDA_CODE) diff --git a/python/install.py b/python/install.py index 6765c33925..6e4c509f07 100644 --- a/python/install.py +++ b/python/install.py @@ -98,6 +98,12 @@ os.chdir(os.path.dirname(args.package)) from distutils.core import setup from distutils.sysconfig import get_python_lib import site +from sys import version_info + +if version_info.major >= 3: + pkgs = ['lammps', 'lammps.mliap'] +else: + pkgs = ['lammps'] #Arguments common to global or user install -- everything but data_files setup_kwargs= dict(name="lammps", @@ -107,7 +113,7 @@ setup_kwargs= dict(name="lammps", url="https://lammps.sandia.gov", description="LAMMPS Molecular Dynamics Python package", license="GPL", - packages=["lammps","lammps.mliap"], + packages=pkgs, ) tryuser=False diff --git a/python/lammps/__init__.py b/python/lammps/__init__.py index b1c8306617..48839273c5 100644 --- a/python/lammps/__init__.py +++ b/python/lammps/__init__.py @@ -1,4 +1,38 @@ +""" +LAMMPS module global members: + +.. data:: __version__ + + Numerical representation of the LAMMPS version this + module was taken from. Has the same format as the + result of :py:func:`lammps.version`. +""" + from .constants import * from .core import * from .data import * from .pylammps import * + +# convert module string version to numeric version +def get_version_number(): + from datetime import datetime + from sys import version_info + vstring = None + if version_info.major == 3 and version_info.minor >= 8: + from importlib.metadata import version + try: + vstring = version('lammps') + except: pass + else: + from pkg_resources import get_distribution + try: + vstring = get_distribution('lammps').version + except: pass + + if not vstring: + return 0 + + d = datetime.strptime(vstring, "%d%b%Y") + return d.year*10000 + d.month*100 + d.day + +__version__ = get_version_number() diff --git a/python/lammps/core.py b/python/lammps/core.py index 6c1300ccf2..d1bc7bc138 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -381,6 +381,13 @@ class lammps(object): self._installed_packages = None self._available_styles = None + # check if liblammps version matches the installed python module version + # but not for in-place usage, i.e. when the version is 0 + import lammps + if lammps.__version__ > 0 and lammps.__version__ != self.lib.lammps_version(self.lmp): + raise(AttributeError("LAMMPS Python module installed for LAMMPS version %d, but shared library is version %d" \ + % (lammps.__version__, self.lib.lammps_version(self.lmp)))) + # add way to insert Python callback for fix external self.callback = {} self.FIX_EXTERNAL_CALLBACK_FUNC = CFUNCTYPE(None, py_object, self.c_bigint, c_int, POINTER(self.c_tagint), POINTER(POINTER(c_double)), POINTER(POINTER(c_double))) @@ -409,7 +416,7 @@ class lammps(object): :rtype: numpy_wrapper """ if not self._numpy: - from .numpy import numpy_wrapper + from .numpy_wrapper import numpy_wrapper self._numpy = numpy_wrapper(self) return self._numpy diff --git a/python/lammps/numpy.py b/python/lammps/numpy_wrapper.py similarity index 100% rename from python/lammps/numpy.py rename to python/lammps/numpy_wrapper.py diff --git a/src/.gitignore b/src/.gitignore index ebeb7076da..45ec71e485 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -204,6 +204,8 @@ /pair_spin_dipole_long.h /pair_spin_exchange.cpp /pair_spin_exchange.h +/pair_spin_exchange_biquadratic.cpp +/pair_spin_exchange_biquadratic.h /pair_spin_magelec.cpp /pair_spin_magelec.h /pair_spin_neel.cpp @@ -247,6 +249,8 @@ /angle_fourier.h /angle_fourier_simple.cpp /angle_fourier_simple.h +/angle_gaussian.cpp +/angle_gaussian.h /angle_harmonic.cpp /angle_harmonic.h /angle_mm3.cpp @@ -295,6 +299,8 @@ /bond_fene.h /bond_fene_expand.cpp /bond_fene_expand.h +/bond_gaussian.cpp +/bond_gaussian.h /bond_gromos.cpp /bond_gromos.h /bond_harmonic.cpp @@ -451,24 +457,30 @@ /dump_atom_adios.h /dump_atom_gz.cpp /dump_atom_gz.h -/dump_xyz_gz.cpp -/dump_xyz_gz.h +/dump_atom_zstd.cpp +/dump_atom_zstd.h /dump_atom_mpiio.cpp /dump_atom_mpiio.h /dump_cfg_gz.cpp /dump_cfg_gz.h /dump_cfg_mpiio.cpp /dump_cfg_mpiio.h +/dump_cfg_zstd.cpp +/dump_cfg_zstd.h /dump_custom_adios.cpp /dump_custom_adios.h /dump_custom_gz.cpp /dump_custom_gz.h /dump_custom_mpiio.cpp /dump_custom_mpiio.h +/dump_custom_zstd.cpp +/dump_custom_zstd.h /dump_h5md.cpp /dump_h5md.h /dump_local_gz.cpp /dump_local_gz.h +/dump_local_zstd.cpp +/dump_local_zstd.h /dump_netcdf.cpp /dump_netcdf.h /dump_netcdf_mpiio.cpp @@ -477,8 +489,12 @@ /dump_vtk.h /dump_xtc.cpp /dump_xtc.h +/dump_xyz_gz.cpp +/dump_xyz_gz.h /dump_xyz_mpiio.cpp /dump_xyz_mpiio.h +/dump_xyz_zstd.cpp +/dump_xyz_zstd.h /dynamical_matrix.cpp /dynamical_matrix.h /ewald.cpp @@ -533,6 +549,8 @@ /fix_efield.h /fix_electron_stopping.cpp /fix_electron_stopping.h +/fix_electron_stopping_fit.cpp +/fix_electron_stopping_fit.h /fix_eos_cv.cpp /fix_eos_cv.h /fix_eos_table.cpp @@ -736,6 +754,12 @@ /fix_store_kim.h /fix_temp_rescale_eff.cpp /fix_temp_rescale_eff.h +/fix_tgnh_drude.cpp +/fix_tgnh_drude.h +/fix_tgnpt_drude.cpp +/fix_tgnpt_drude.h +/fix_tgnvt_drude.cpp +/fix_tgnvt_drude.h /fix_thermal_conductivity.cpp /fix_thermal_conductivity.h /fix_ti_rs.cpp @@ -886,6 +910,8 @@ /pair_coul_slater_cut.h /pair_coul_slater_long.cpp /pair_coul_slater_long.h +/pair_coul_tt.cpp +/pair_coul_tt.h /pair_dipole_cut.cpp /pair_dipole_cut.h /pair_dipole_sf.cpp @@ -906,8 +932,8 @@ /pair_eam_cd.h /pair_eam_fs.cpp /pair_eam_fs.h -/fix_electron_stopping.cpp -/fix_electron_stopping.h +/pair_eam_he.cpp +/pair_eam_he.h /pair_lebedeva_z.cpp /pair_lebedeva_z.h /pair_lj_expand_coul_long.cpp @@ -1112,6 +1138,8 @@ /pair_tri_lj.h /pair_yukawa_colloid.cpp /pair_yukawa_colloid.h +/pair_wf_cut.cpp +/pair_wf_cut.h /pair_momb.cpp /pair_momb.h /pppm.cpp @@ -1387,3 +1415,5 @@ /pair_smtbq.h /pair_vashishta*.cpp /pair_vashishta*.h +/zstd_file_writer.cpp +/zstd_file_writer.h diff --git a/src/COLLOID/fix_wall_colloid.cpp b/src/COLLOID/fix_wall_colloid.cpp index 665c34fe50..ad2cd66f95 100644 --- a/src/COLLOID/fix_wall_colloid.cpp +++ b/src/COLLOID/fix_wall_colloid.cpp @@ -153,7 +153,7 @@ void FixWallColloid::wall_particle(int m, int which, double coord) if (evflag) { if (side < 0) vn = -fwall*delta; else vn = fwall*delta; - v_tally(dim, i, vn); + v_tally(dim,i,vn); } } diff --git a/src/GRANULAR/fix_pour.cpp b/src/GRANULAR/fix_pour.cpp index 9ecde81f53..54b7366003 100644 --- a/src/GRANULAR/fix_pour.cpp +++ b/src/GRANULAR/fix_pour.cpp @@ -263,7 +263,7 @@ FixPour::FixPour(LAMMPS *lmp, int narg, char **arg) : nper = static_cast (volfrac*volume/volume_one); if (nper == 0) error->all(FLERR,"Fix pour insertion count per timestep is 0"); - int nfinal = update->ntimestep + 1 + (ninsert-1)/nper * nfreq; + int nfinal = update->ntimestep + 1 + ((bigint)ninsert-1)/nper * nfreq; // print stats @@ -705,10 +705,10 @@ void FixPour::pre_exchange() if (atom->natoms < 0) error->all(FLERR,"Too many total atoms"); if (mode == MOLECULE) { - atom->nbonds += onemols[imol]->nbonds * ninserted_mols; - atom->nangles += onemols[imol]->nangles * ninserted_mols; - atom->ndihedrals += onemols[imol]->ndihedrals * ninserted_mols; - atom->nimpropers += onemols[imol]->nimpropers * ninserted_mols; + atom->nbonds += (bigint)onemols[imol]->nbonds * ninserted_mols; + atom->nangles += (bigint)onemols[imol]->nangles * ninserted_mols; + atom->ndihedrals += (bigint)onemols[imol]->ndihedrals * ninserted_mols; + atom->nimpropers += (bigint)onemols[imol]->nimpropers * ninserted_mols; } if (maxtag_all >= MAXTAGINT) error->all(FLERR,"New atom IDs exceed maximum allowed ID"); diff --git a/src/KOKKOS/compute_orientorder_atom_kokkos.cpp b/src/KOKKOS/compute_orientorder_atom_kokkos.cpp index 2325288c8c..65c4737ab4 100644 --- a/src/KOKKOS/compute_orientorder_atom_kokkos.cpp +++ b/src/KOKKOS/compute_orientorder_atom_kokkos.cpp @@ -143,7 +143,7 @@ void ComputeOrientOrderAtomKokkos::compute_peratom() chunk_size = MIN(chunksize,inum); // "chunksize" variable is set by user chunk_offset = 0; - if (chunk_size > d_ncount.extent(0)) { + if (chunk_size > (int)d_ncount.extent(0)) { d_qnm = t_sna_3c("orientorder/atom:qnm",chunk_size,nqlist,2*qmax+1); d_ncount = t_sna_1i("orientorder/atom:ncount",chunk_size); } @@ -155,7 +155,7 @@ void ComputeOrientOrderAtomKokkos::compute_peratom() maxneigh = 0; Kokkos::parallel_reduce("ComputeOrientOrderAtomKokkos::find_max_neighs",inum, FindMaxNumNeighs(k_list), Kokkos::Max(maxneigh)); - if (chunk_size > d_distsq.extent(0) || maxneigh > d_distsq.extent(1)) { + if (chunk_size > (int)d_distsq.extent(0) || maxneigh > (int)d_distsq.extent(1)) { d_distsq = t_sna_2d_lr("orientorder/atom:distsq",chunk_size,maxneigh); d_nearest = t_sna_2i_lr("orientorder/atom:nearest",chunk_size,maxneigh); d_rlist = t_sna_3d_lr("orientorder/atom:rlist",chunk_size,maxneigh,3); diff --git a/src/KOKKOS/fix_langevin_kokkos.cpp b/src/KOKKOS/fix_langevin_kokkos.cpp index 0dcaabb39c..054302b9c5 100644 --- a/src/KOKKOS/fix_langevin_kokkos.cpp +++ b/src/KOKKOS/fix_langevin_kokkos.cpp @@ -765,11 +765,11 @@ template KOKKOS_INLINE_FUNCTION double FixLangevinKokkos::compute_energy_item(int i) const { - double energy; + double my_energy = 0.0; if (mask[i] & groupbit) - energy = d_flangevin(i,0)*v(i,0) + d_flangevin(i,1)*v(i,1) + + my_energy = d_flangevin(i,0)*v(i,0) + d_flangevin(i,1)*v(i,1) + d_flangevin(i,2)*v(i,2); - return energy; + return my_energy; } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/fix_neigh_history_kokkos.cpp b/src/KOKKOS/fix_neigh_history_kokkos.cpp index 0f57b67a0e..3d351f7a73 100644 --- a/src/KOKKOS/fix_neigh_history_kokkos.cpp +++ b/src/KOKKOS/fix_neigh_history_kokkos.cpp @@ -182,7 +182,7 @@ void FixNeighHistoryKokkos::post_neighbor() // realloc firstflag and firstvalue if needed - if (maxatom < nlocal || k_list->maxneighs > d_firstflag.extent(1)) { + if (maxatom < nlocal || k_list->maxneighs > (int)d_firstflag.extent(1)) { maxatom = nall; d_firstflag = Kokkos::View("neighbor_history:firstflag",maxatom,k_list->maxneighs); d_firstvalue = Kokkos::View("neighbor_history:firstvalue",maxatom,k_list->maxneighs*dnum); diff --git a/src/KOKKOS/fix_shake_kokkos.cpp b/src/KOKKOS/fix_shake_kokkos.cpp index b680f558fc..97a2932415 100644 --- a/src/KOKKOS/fix_shake_kokkos.cpp +++ b/src/KOKKOS/fix_shake_kokkos.cpp @@ -332,8 +332,7 @@ void FixShakeKokkos::post_force(int vflag) // virial setup - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // reallocate per-atom arrays if necessary diff --git a/src/KOKKOS/fix_wall_lj93_kokkos.cpp b/src/KOKKOS/fix_wall_lj93_kokkos.cpp index 29baa3a813..9b8b146ba3 100644 --- a/src/KOKKOS/fix_wall_lj93_kokkos.cpp +++ b/src/KOKKOS/fix_wall_lj93_kokkos.cpp @@ -31,7 +31,7 @@ FixWallLJ93Kokkos::FixWallLJ93Kokkos(LAMMPS *lmp, int narg, char **a execution_space = ExecutionSpaceFromDevice::space; datamask_read = EMPTY_MASK; datamask_modify = EMPTY_MASK; - virial_flag = 0; + virial_global_flag = virial_peratom_flag = 0; } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/modify_kokkos.cpp b/src/KOKKOS/modify_kokkos.cpp index 04e5baced2..40ed1cdfdc 100644 --- a/src/KOKKOS/modify_kokkos.cpp +++ b/src/KOKKOS/modify_kokkos.cpp @@ -350,27 +350,62 @@ void ModifyKokkos::end_of_step() } /* ---------------------------------------------------------------------- - thermo energy call, only for relevant fixes - called by Thermo class - compute_scalar() is fix call to return energy + coupling energy call, only for relevant fixes + each thermostsat fix returns this via compute_scalar() + ecouple = cumulative energy added to reservoir by thermostatting ------------------------------------------------------------------------- */ -double ModifyKokkos::thermo_energy() +double ModifyKokkos::energy_couple() { double energy = 0.0; - for (int i = 0; i < n_thermo_energy; i++) { - atomKK->sync(fix[list_thermo_energy[i]]->execution_space, - fix[list_thermo_energy[i]]->datamask_read); + for (int i = 0; i < n_energy_couple; i++) { int prev_auto_sync = lmp->kokkos->auto_sync; - if (!fix[list_thermo_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1; - energy += fix[list_thermo_energy[i]]->compute_scalar(); + if (!fix[list_energy_couple[i]]->kokkosable) lmp->kokkos->auto_sync = 1; + energy += fix[list_energy_couple[i]]->compute_scalar(); lmp->kokkos->auto_sync = prev_auto_sync; - atomKK->modified(fix[list_thermo_energy[i]]->execution_space, - fix[list_thermo_energy[i]]->datamask_modify); + atomKK->modified(fix[list_energy_couple[i]]->execution_space, + fix[list_energy_couple[i]]->datamask_modify); } return energy; } +/* ---------------------------------------------------------------------- + global energy call, only for relevant fixes + they return energy via compute_scalar() + called by compute pe +------------------------------------------------------------------------- */ + +double ModifyKokkos::energy_global() +{ + double energy = 0.0; + for (int i = 0; i < n_energy_global; i++) { + int prev_auto_sync = lmp->kokkos->auto_sync; + if (!fix[list_energy_global[i]]->kokkosable) lmp->kokkos->auto_sync = 1; + energy += fix[list_energy_global[i]]->compute_scalar(); + lmp->kokkos->auto_sync = prev_auto_sync; + atomKK->modified(fix[list_energy_global[i]]->execution_space, + fix[list_energy_global[i]]->datamask_modify); + } + return energy; +} + +/* ---------------------------------------------------------------------- + peratom energy call, only for relevant fixes + called by compute pe/atom +------------------------------------------------------------------------- */ + +void ModifyKokkos::energy_atom(int nlocal, double *energy) +{ + int i,j; + double *eatom; + + for (i = 0; i < n_energy_atom; i++) { + eatom = fix[list_energy_atom[i]]->eatom; + if (!eatom) continue; + for (j = 0; j < nlocal; j++) energy[j] += eatom[j]; + } +} + /* ---------------------------------------------------------------------- post_run call ------------------------------------------------------------------------- */ diff --git a/src/KOKKOS/modify_kokkos.h b/src/KOKKOS/modify_kokkos.h index 32dfb2fd97..9ae1cfb5e2 100644 --- a/src/KOKKOS/modify_kokkos.h +++ b/src/KOKKOS/modify_kokkos.h @@ -37,7 +37,9 @@ class ModifyKokkos : public Modify { void post_force(int); void final_integrate(); void end_of_step(); - double thermo_energy(); + double energy_couple(); + double energy_global(); + void energy_atom(int, double *); void post_run(); void setup_pre_force_respa(int, int); diff --git a/src/KSPACE/msm.cpp b/src/KSPACE/msm.cpp index febf37029b..490fbae0e0 100644 --- a/src/KSPACE/msm.cpp +++ b/src/KSPACE/msm.cpp @@ -640,6 +640,7 @@ void MSM::allocate() // create commgrid object for rho and electric field communication if (active_flag[n]) { + delete gc[n]; int **procneigh = procneigh_levels[n]; gc[n] = new GridComm(lmp,world_levels[n],2,nx_msm[n],ny_msm[n],nz_msm[n], nxlo_in[n],nxhi_in[n],nylo_in[n],nyhi_in[n], @@ -653,8 +654,10 @@ void MSM::allocate() npergrid = 1; memory->create(gc_buf1[n],npergrid*ngc_buf1[n],"msm:gc_buf1"); memory->create(gc_buf2[n],npergrid*ngc_buf2[n],"msm:gc_buf2"); - } else { + delete gc[n]; + memory->destroy(gc_buf1[n]); + memory->destroy(gc_buf2[n]); gc[n] = nullptr; gc_buf1[n] = gc_buf2[n] = nullptr; } @@ -675,28 +678,6 @@ void MSM::deallocate() memory->destroy(gcall_buf2); gcall = nullptr; gcall_buf1 = gcall_buf2 = nullptr; - - for (int n=0; ndestroy3d_offset(qgrid[n],nzlo_out[n],nylo_out[n],nxlo_out[n]); - - if (egrid[n]) - memory->destroy3d_offset(egrid[n],nzlo_out[n],nylo_out[n],nxlo_out[n]); - - if (world_levels) - if (world_levels[n] != MPI_COMM_NULL) - MPI_Comm_free(&world_levels[n]); - - if (gc) { - if (gc[n]) { - delete gc[n]; - memory->destroy(gc_buf1[n]); - memory->destroy(gc_buf2[n]); - gc[n] = nullptr; - gc_buf1[n] = gc_buf2[n] = nullptr; - } - } - } } /* ---------------------------------------------------------------------- @@ -826,6 +807,10 @@ void MSM::allocate_levels() for (int n=0; ndestroy3d_offset(qgrid[n],nzlo_out[n],nylo_out[n],nxlo_out[n]); + + if (egrid[n]) + memory->destroy3d_offset(egrid[n],nzlo_out[n],nylo_out[n],nxlo_out[n]); + + if (gc) { + if (gc[n]) { + delete gc[n]; + memory->destroy(gc_buf1[n]); + memory->destroy(gc_buf2[n]); + gc[n] = nullptr; + gc_buf1[n] = gc_buf2[n] = nullptr; + } + } + + if (world_levels[n] != MPI_COMM_NULL) { + MPI_Comm_free(&world_levels[n]); + } + } + } + delete [] ngrid; ngrid = nullptr; diff --git a/src/KSPACE/pppm_dipole.cpp b/src/KSPACE/pppm_dipole.cpp index 80a87a1d61..44c3862b2f 100644 --- a/src/KSPACE/pppm_dipole.cpp +++ b/src/KSPACE/pppm_dipole.cpp @@ -463,7 +463,7 @@ void PPPMDipole::compute(int eflag, int vflag) if (evflag_atom) gc_dipole->forward_comm_kspace(this,18,sizeof(FFT_SCALAR),FORWARD_MU_PERATOM, - gc_buf1,gc_buf2,MPI_FFT_SCALAR); + gc_buf1,gc_buf2,MPI_FFT_SCALAR); // calculate the force on my particles @@ -1333,7 +1333,7 @@ void PPPMDipole::poisson_ik_dipole() wimg = (work1[n+1]*fkx[i] + work2[n+1]*fky[j] + work3[n+1]*fkz[k]); energy += s2 * greensfn[ii] * (wreal*wreal + wimg*wimg); - ii++; + ii++; n += 2; } } @@ -1430,9 +1430,9 @@ void PPPMDipole::poisson_ik_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = -fkx[i]*fkx[i]*(work1[n+1]*fkx[i] + - work2[n+1]*fky[j] + work3[n+1]*fkz[k]); + work2[n+1]*fky[j] + work3[n+1]*fkz[k]); work4[n+1] = fkx[i]*fkx[i]*(work1[n]*fkx[i] + - work2[n]*fky[j] + work3[n]*fkz[k]); + work2[n]*fky[j] + work3[n]*fkz[k]); n += 2; } @@ -1453,9 +1453,9 @@ void PPPMDipole::poisson_ik_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = -fky[j]*fky[j]*(work1[n+1]*fkx[i] + - work2[n+1]*fky[j] + work3[n+1]*fkz[k]); + work2[n+1]*fky[j] + work3[n+1]*fkz[k]); work4[n+1] = fky[j]*fky[j]*(work1[n]*fkx[i] + - work2[n]*fky[j] + work3[n]*fkz[k]); + work2[n]*fky[j] + work3[n]*fkz[k]); n += 2; } @@ -1476,9 +1476,9 @@ void PPPMDipole::poisson_ik_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = -fkz[k]*fkz[k]*(work1[n+1]*fkx[i] + - work2[n+1]*fky[j] + work3[n+1]*fkz[k]); + work2[n+1]*fky[j] + work3[n+1]*fkz[k]); work4[n+1] = fkz[k]*fkz[k]*(work1[n]*fkx[i] + - work2[n]*fky[j] + work3[n]*fkz[k]); + work2[n]*fky[j] + work3[n]*fkz[k]); n += 2; } @@ -1499,9 +1499,9 @@ void PPPMDipole::poisson_ik_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = -fkx[i]*fky[j]*(work1[n+1]*fkx[i] + - work2[n+1]*fky[j] + work3[n+1]*fkz[k]); + work2[n+1]*fky[j] + work3[n+1]*fkz[k]); work4[n+1] = fkx[i]*fky[j]*(work1[n]*fkx[i] + - work2[n]*fky[j] + work3[n]*fkz[k]); + work2[n]*fky[j] + work3[n]*fkz[k]); n += 2; } @@ -1522,9 +1522,9 @@ void PPPMDipole::poisson_ik_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = -fkx[i]*fkz[k]*(work1[n+1]*fkx[i] + - work2[n+1]*fky[j] + work3[n+1]*fkz[k]); + work2[n+1]*fky[j] + work3[n+1]*fkz[k]); work4[n+1] = fkx[i]*fkz[k]*(work1[n]*fkx[i] + - work2[n]*fky[j] + work3[n]*fkz[k]); + work2[n]*fky[j] + work3[n]*fkz[k]); n += 2; } @@ -1545,9 +1545,9 @@ void PPPMDipole::poisson_ik_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = -fky[j]*fkz[k]*(work1[n+1]*fkx[i] + - work2[n+1]*fky[j] + work3[n+1]*fkz[k]); + work2[n+1]*fky[j] + work3[n+1]*fkz[k]); work4[n+1] = fky[j]*fkz[k]*(work1[n]*fkx[i] + - work2[n]*fky[j] + work3[n]*fkz[k]); + work2[n]*fky[j] + work3[n]*fkz[k]); n += 2; } @@ -1582,9 +1582,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkx[i]*(vg[ii][0]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkx[i]*work1[n]); + work3[n]*fkz[k]) + 2.0*fkx[i]*work1[n]); work4[n+1] = fkx[i]*(vg[ii][0]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkx[i]*work1[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkx[i]*work1[n+1]); n += 2; ii++; } @@ -1607,9 +1607,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fky[j]*(vg[ii][0]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkx[i]*work1[n]); + work3[n]*fkz[k]) + 2.0*fkx[i]*work1[n]); work4[n+1] = fky[j]*(vg[ii][0]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkx[i]*work1[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkx[i]*work1[n+1]); n += 2; ii++; } @@ -1632,9 +1632,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkz[k]*(vg[ii][0]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkx[i]*work1[n]); + work3[n]*fkz[k]) + 2.0*fkx[i]*work1[n]); work4[n+1] = fkz[k]*(vg[ii][0]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkx[i]*work1[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkx[i]*work1[n+1]); n += 2; ii++; } @@ -1657,9 +1657,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkx[i]*(vg[ii][1]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fky[j]*work2[n]); + work3[n]*fkz[k]) + 2.0*fky[j]*work2[n]); work4[n+1] = fkx[i]*(vg[ii][1]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fky[j]*work2[n+1]); + work3[n+1]*fkz[k]) + 2.0*fky[j]*work2[n+1]); n += 2; ii++; } @@ -1682,9 +1682,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fky[j]*(vg[ii][1]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fky[j]*work2[n]); + work3[n]*fkz[k]) + 2.0*fky[j]*work2[n]); work4[n+1] = fky[j]*(vg[ii][1]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fky[j]*work2[n+1]); + work3[n+1]*fkz[k]) + 2.0*fky[j]*work2[n+1]); n += 2; ii++; } @@ -1707,9 +1707,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkz[k]*(vg[ii][1]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fky[j]*work2[n]); + work3[n]*fkz[k]) + 2.0*fky[j]*work2[n]); work4[n+1] = fkz[k]*(vg[ii][1]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fky[j]*work2[n+1]); + work3[n+1]*fkz[k]) + 2.0*fky[j]*work2[n+1]); n += 2; ii++; } @@ -1732,9 +1732,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkx[i]*(vg[ii][2]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkz[k]*work3[n]); + work3[n]*fkz[k]) + 2.0*fkz[k]*work3[n]); work4[n+1] = fkx[i]*(vg[ii][2]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkz[k]*work3[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkz[k]*work3[n+1]); n += 2; ii++; } @@ -1757,9 +1757,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fky[j]*(vg[ii][2]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkz[k]*work3[n]); + work3[n]*fkz[k]) + 2.0*fkz[k]*work3[n]); work4[n+1] = fky[j]*(vg[ii][2]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkz[k]*work3[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkz[k]*work3[n+1]); n += 2; ii++; } @@ -1782,9 +1782,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkz[k]*(vg[ii][2]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkz[k]*work3[n]); + work3[n]*fkz[k]) + 2.0*fkz[k]*work3[n]); work4[n+1] = fkz[k]*(vg[ii][2]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkz[k]*work3[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkz[k]*work3[n+1]); n += 2; ii++; } @@ -1807,9 +1807,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkx[i]*(vg[ii][3]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fky[j]*work1[n]); + work3[n]*fkz[k]) + 2.0*fky[j]*work1[n]); work4[n+1] = fkx[i]*(vg[ii][3]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fky[j]*work1[n+1]); + work3[n+1]*fkz[k]) + 2.0*fky[j]*work1[n+1]); n += 2; ii++; } @@ -1832,9 +1832,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fky[j]*(vg[ii][3]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fky[j]*work1[n]); + work3[n]*fkz[k]) + 2.0*fky[j]*work1[n]); work4[n+1] = fky[j]*(vg[ii][3]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fky[j]*work1[n+1]); + work3[n+1]*fkz[k]) + 2.0*fky[j]*work1[n+1]); n += 2; ii++; } @@ -1857,9 +1857,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkz[k]*(vg[ii][3]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fky[j]*work1[n]); + work3[n]*fkz[k]) + 2.0*fky[j]*work1[n]); work4[n+1] = fkz[k]*(vg[ii][3]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fky[j]*work1[n+1]); + work3[n+1]*fkz[k]) + 2.0*fky[j]*work1[n+1]); n += 2; ii++; } @@ -1882,9 +1882,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkx[i]*(vg[ii][4]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkz[k]*work1[n]); + work3[n]*fkz[k]) + 2.0*fkz[k]*work1[n]); work4[n+1] = fkx[i]*(vg[ii][4]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkz[k]*work1[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkz[k]*work1[n+1]); n += 2; ii++; } @@ -1907,9 +1907,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fky[j]*(vg[ii][4]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkz[k]*work1[n]); + work3[n]*fkz[k]) + 2.0*fkz[k]*work1[n]); work4[n+1] = fky[j]*(vg[ii][4]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkz[k]*work1[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkz[k]*work1[n+1]); n += 2; ii++; } @@ -1932,9 +1932,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkz[k]*(vg[ii][4]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkz[k]*work1[n]); + work3[n]*fkz[k]) + 2.0*fkz[k]*work1[n]); work4[n+1] = fkz[k]*(vg[ii][4]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkz[k]*work1[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkz[k]*work1[n+1]); n += 2; ii++; } @@ -1957,9 +1957,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkx[i]*(vg[ii][5]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkz[k]*work2[n]); + work3[n]*fkz[k]) + 2.0*fkz[k]*work2[n]); work4[n+1] = fkx[i]*(vg[ii][5]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkz[k]*work2[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkz[k]*work2[n+1]); n += 2; ii++; } @@ -1982,9 +1982,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fky[j]*(vg[ii][5]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkz[k]*work2[n]); + work3[n]*fkz[k]) + 2.0*fkz[k]*work2[n]); work4[n+1] = fky[j]*(vg[ii][5]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkz[k]*work2[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkz[k]*work2[n+1]); n += 2; ii++; } @@ -2007,9 +2007,9 @@ void PPPMDipole::poisson_peratom_dipole() for (j = nylo_fft; j <= nyhi_fft; j++) for (i = nxlo_fft; i <= nxhi_fft; i++) { work4[n] = fkz[k]*(vg[ii][5]*(work1[n]*fkx[i] + work2[n]*fky[j] + - work3[n]*fkz[k]) + 2.0*fkz[k]*work2[n]); + work3[n]*fkz[k]) + 2.0*fkz[k]*work2[n]); work4[n+1] = fkz[k]*(vg[ii][5]*(work1[n+1]*fkx[i] + work2[n+1]*fky[j] + - work3[n+1]*fkz[k]) + 2.0*fkz[k]*work2[n+1]); + work3[n+1]*fkz[k]) + 2.0*fkz[k]*work2[n+1]); n += 2; ii++; } diff --git a/src/KSPACE/pppm_disp.cpp b/src/KSPACE/pppm_disp.cpp index 28aa68ff14..58db6e51fc 100644 --- a/src/KSPACE/pppm_disp.cpp +++ b/src/KSPACE/pppm_disp.cpp @@ -689,9 +689,9 @@ void PPPMDisp::setup() vg[n][3] = 0.0; vg[n][4] = 0.0; vg[n][5] = 0.0; - vg2[n][0] = 0.0; - vg2[n][1] = 0.0; - vg2[n][2] = 0.0; + vg2[n][0] = 0.0; + vg2[n][1] = 0.0; + vg2[n][2] = 0.0; } else { vterm = -2.0 * (1.0/sqk + 0.25*gew2inv); vg[n][0] = 1.0 + vterm*fkx[i]*fkx[i]; @@ -742,8 +742,8 @@ void PPPMDisp::setup() fkz2_6[i] = unitkz*per; } double sqk,vterm; - long double erft,expt,nom,denom; - long double b,bs,bt; + double erft,expt,nom,denom; + double b,bs,bt; double rtpi = sqrt(MY_PI); double gewinv = 1/g_ewald_6; n = 0; @@ -1048,7 +1048,7 @@ void PPPMDisp::compute(int eflag, int vflag) make_rho_a(); gc6->reverse_comm_kspace(this,7,sizeof(FFT_SCALAR),REVERSE_RHO_ARITH, - gc6_buf1,gc6_buf2,MPI_FFT_SCALAR); + gc6_buf1,gc6_buf2,MPI_FFT_SCALAR); brick2fft_a(); @@ -1143,7 +1143,7 @@ void PPPMDisp::compute(int eflag, int vflag) make_rho_none(); gc6->reverse_comm_kspace(this,nsplit_alloc,sizeof(FFT_SCALAR),REVERSE_RHO_NONE, - gc6_buf1,gc6_buf2,MPI_FFT_SCALAR); + gc6_buf1,gc6_buf2,MPI_FFT_SCALAR); brick2fft_none(); @@ -1158,14 +1158,14 @@ void PPPMDisp::compute(int eflag, int vflag) } gc6->forward_comm_kspace(this,1*nsplit_alloc,sizeof(FFT_SCALAR), - FORWARD_AD_NONE, + FORWARD_AD_NONE, gc6_buf1,gc6_buf2,MPI_FFT_SCALAR); fieldforce_none_ad(); if (vflag_atom) gc6->forward_comm_kspace(this,6*nsplit_alloc,sizeof(FFT_SCALAR), - FORWARD_AD_PERATOM_NONE, + FORWARD_AD_PERATOM_NONE, gc6_buf1,gc6_buf2,MPI_FFT_SCALAR); } else { @@ -1180,14 +1180,14 @@ void PPPMDisp::compute(int eflag, int vflag) } gc6->forward_comm_kspace(this,3*nsplit_alloc,sizeof(FFT_SCALAR), - FORWARD_IK_NONE, + FORWARD_IK_NONE, gc6_buf1,gc6_buf2,MPI_FFT_SCALAR); fieldforce_none_ik(); if (evflag_atom) gc6->forward_comm_kspace(this,7*nsplit_alloc,sizeof(FFT_SCALAR), - FORWARD_IK_PERATOM_NONE, + FORWARD_IK_PERATOM_NONE, gc6_buf1,gc6_buf2,MPI_FFT_SCALAR); } @@ -1321,7 +1321,7 @@ void PPPMDisp::init_coeffs() converged = qr_alg(A,Q,n); if (function[3] && !converged) { error->all(FLERR, - "Matrix factorization to split dispersion coefficients failed"); + "Matrix factorization to split dispersion coefficients failed"); } // determine number of used eigenvalues @@ -1409,8 +1409,8 @@ void PPPMDisp::init_coeffs() utils::logmesg(lmp,fmt::format(" Using {} structure factors\n", nsplit)); if (nsplit > 9) - error->warning(FLERR,"Simulations might be very slow " - "because of large number of structure factors"); + error->warning(FLERR,"Simulations might be very slow " + "because of large number of structure factors"); } memory->destroy(A); @@ -4564,11 +4564,11 @@ void PPPMDisp::make_rho_none() my = m+ny; x0 = y0*rho1d_6[1][m]; for (l = nlower_6; l <= nupper_6; l++) { - mx = l+nx; + mx = l+nx; w = x0*rho1d_6[0][l]; for (k = 0; k < nsplit; k++) { density_brick_none[k][mz][my][mx] += w*B[nsplit*type + k]; - } + } } } } @@ -4813,13 +4813,13 @@ void PPPMDisp::poisson_ad(FFT_SCALAR* wk1, FFT_SCALAR* wk2, ------------------------------------------------------------------------- */ void PPPMDisp::poisson_peratom(FFT_SCALAR* wk1, FFT_SCALAR* wk2, LAMMPS_NS::FFT3d* ft2, - double** vcoeff, double** vcoeff2, int nft, - int nxlo_i, int nylo_i, int nzlo_i, - int nxhi_i, int nyhi_i, int nzhi_i, - FFT_SCALAR*** v0_pa, FFT_SCALAR*** v1_pa, - FFT_SCALAR*** v2_pa, - FFT_SCALAR*** v3_pa, FFT_SCALAR*** v4_pa, - FFT_SCALAR*** v5_pa) + double** vcoeff, double** vcoeff2, int nft, + int nxlo_i, int nylo_i, int nzlo_i, + int nxhi_i, int nyhi_i, int nzhi_i, + FFT_SCALAR*** v0_pa, FFT_SCALAR*** v1_pa, + FFT_SCALAR*** v2_pa, + FFT_SCALAR*** v3_pa, FFT_SCALAR*** v4_pa, + FFT_SCALAR*** v5_pa) { // v0 & v1 term @@ -5227,8 +5227,8 @@ poisson_none_ik(int n1, int n2,FFT_SCALAR* dfft_1, FFT_SCALAR* dfft_2, if (vflag_atom) poisson_none_peratom(n1,n2, - v0_pa[n1],v1_pa[n1],v2_pa[n1],v3_pa[n1],v4_pa[n1],v5_pa[n1], - v0_pa[n2],v1_pa[n2],v2_pa[n2],v3_pa[n2],v4_pa[n2],v5_pa[n2]); + v0_pa[n1],v1_pa[n1],v2_pa[n1],v3_pa[n1],v4_pa[n1],v5_pa[n1], + v0_pa[n2],v1_pa[n2],v2_pa[n2],v3_pa[n2],v4_pa[n2],v5_pa[n2]); } /* ---------------------------------------------------------------------- @@ -5429,8 +5429,8 @@ poisson_none_ad(int n1, int n2, FFT_SCALAR* dfft_1, FFT_SCALAR* dfft_2, if (vflag_atom) poisson_none_peratom(n1,n2, - v0_pa[n1],v1_pa[n1],v2_pa[n1],v3_pa[n1],v4_pa[n1],v5_pa[n1], - v0_pa[n2],v1_pa[n2],v2_pa[n2],v3_pa[n2],v4_pa[n2],v5_pa[n2]); + v0_pa[n1],v1_pa[n1],v2_pa[n1],v3_pa[n1],v4_pa[n1],v5_pa[n1], + v0_pa[n2],v1_pa[n2],v2_pa[n2],v3_pa[n2],v4_pa[n2],v5_pa[n2]); } /* ---------------------------------------------------------------------- diff --git a/src/KSPACE/remap.cpp b/src/KSPACE/remap.cpp index c3c3703d1d..ab2ec687d7 100644 --- a/src/KSPACE/remap.cpp +++ b/src/KSPACE/remap.cpp @@ -597,7 +597,7 @@ struct remap_plan_3d *remap_3d_create_plan( if (memory == 1) { if (nrecv > 0) { plan->scratch = - (FFT_SCALAR *) malloc(nqty*out.isize*out.jsize*out.ksize * + (FFT_SCALAR *) malloc((size_t)nqty*out.isize*out.jsize*out.ksize * sizeof(FFT_SCALAR)); if (plan->scratch == nullptr) return nullptr; } diff --git a/src/LATTE/fix_latte.cpp b/src/LATTE/fix_latte.cpp index 468f37792d..ababe2f185 100644 --- a/src/LATTE/fix_latte.cpp +++ b/src/LATTE/fix_latte.cpp @@ -69,8 +69,9 @@ FixLatte::FixLatte(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = 1; extscalar = 1; - virial_flag = 1; - thermo_virial = 1; + energy_global_flag = 1; + virial_global_flag = 1; + thermo_energy = thermo_virial = 1; // store ID of compute pe/atom used to generate Coulomb potential for LATTE // null pointer means LATTE will compute Coulombic potential @@ -116,12 +117,9 @@ FixLatte::~FixLatte() int FixLatte::setmask() { int mask = 0; - //mask |= INITIAL_INTEGRATE; - //mask |= FINAL_INTEGRATE; mask |= PRE_REVERSE; mask |= POST_FORCE; mask |= MIN_POST_FORCE; - mask |= THERMO_ENERGY; return mask; } @@ -266,9 +264,6 @@ void FixLatte::post_force(int vflag) // hardwire these unsupported flags for now int coulombflag = 0; - // pe_peratom = 0; - // virial_global = 1; // set via vflag_global at some point - // virial_peratom = 0; neighflag = 0; // set flags used by LATTE diff --git a/src/MANYBODY/pair_vashishta_table.cpp b/src/MANYBODY/pair_vashishta_table.cpp index 475710a396..76b44d8664 100644 --- a/src/MANYBODY/pair_vashishta_table.cpp +++ b/src/MANYBODY/pair_vashishta_table.cpp @@ -289,6 +289,5 @@ void PairVashishtaTable::create_tables() double PairVashishtaTable::memory_usage() { - double bytes = 2*nelements*nelements*sizeof(double)*ntable; - return bytes; + return (double)2*nelements*nelements*sizeof(double)*ntable; } diff --git a/src/MC/fix_gcmc.cpp b/src/MC/fix_gcmc.cpp index 0c61838f65..1e607c9752 100644 --- a/src/MC/fix_gcmc.cpp +++ b/src/MC/fix_gcmc.cpp @@ -2334,9 +2334,9 @@ double FixGCMC::energy_full() if (modify->n_post_force) modify->post_force(vflag); if (modify->n_end_of_step) modify->end_of_step(); - // NOTE: all fixes with THERMO_ENERGY mask set and which + // NOTE: all fixes with energy_global_flag set and which // operate at pre_force() or post_force() or end_of_step() - // and which user has enable via fix_modify thermo yes, + // and which user has enabled via fix_modify energy yes, // will contribute to total MC energy via pe->compute_scalar() update->eflag_global = update->ntimestep; diff --git a/src/MC/fix_widom.cpp b/src/MC/fix_widom.cpp index 1b0af1ebfb..45f3ee5823 100644 --- a/src/MC/fix_widom.cpp +++ b/src/MC/fix_widom.cpp @@ -1061,9 +1061,9 @@ double FixWidom::energy_full() if (modify->n_pre_force) modify->pre_force(vflag); if (modify->n_end_of_step) modify->end_of_step(); - // NOTE: all fixes with THERMO_ENERGY mask set and which + // NOTE: all fixes with energy_global_flag set and which // operate at pre_force() or post_force() or end_of_step() - // and which user has enable via fix_modify thermo yes, + // and which user has enabled via fix_modify energy yes, // will contribute to total MC energy via pe->compute_scalar() update->eflag_global = update->ntimestep; diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp index cd0d45cda7..1ef103ec3b 100644 --- a/src/MESSAGE/fix_client_md.cpp +++ b/src/MESSAGE/fix_client_md.cpp @@ -42,7 +42,8 @@ FixClientMD::FixClientMD(LAMMPS *lmp, int narg, char **arg) : { if (lmp->clientserver != 1) error->all(FLERR,"Fix client/md requires LAMMPS be running as a client"); - if (atom->map_style == Atom::MAP_NONE) error->all(FLERR,"Fix client/md requires atom map"); + if (atom->map_style == Atom::MAP_NONE) + error->all(FLERR,"Fix client/md requires atom map"); if (sizeof(tagint) != 4) error->all(FLERR,"Fix client/md only supports 32-bit atom IDs"); @@ -54,8 +55,8 @@ FixClientMD::FixClientMD(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = 1; extscalar = 1; - virial_flag = 1; - thermo_virial = 1; + energy_global_flag = virial_global_flag = 1; + thermo_energy = thermo_virial = 1; inv_nprocs = 1.0 / comm->nprocs; if (domain->dimension == 2) @@ -89,7 +90,6 @@ int FixClientMD::setmask() int mask = 0; mask |= POST_FORCE; mask |= MIN_POST_FORCE; - mask |= THERMO_ENERGY; return mask; } @@ -158,10 +158,9 @@ void FixClientMD::min_setup(int vflag) void FixClientMD::post_force(int vflag) { - // energy and virial setup + // virial setup - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // STEP send every step // required fields: COORDS diff --git a/src/MISC/fix_efield.cpp b/src/MISC/fix_efield.cpp index e8b7a6d11d..1181f554cf 100644 --- a/src/MISC/fix_efield.cpp +++ b/src/MISC/fix_efield.cpp @@ -54,7 +54,8 @@ FixEfield::FixEfield(LAMMPS *lmp, int narg, char **arg) : extscalar = 1; respa_level_support = 1; ilevel_respa = 0; - virial_flag = 1; + energy_global_flag = 1; + virial_global_flag = virial_peratom_flag = 1; qe2f = force->qe2f; xstr = ystr = zstr = nullptr; @@ -128,7 +129,6 @@ FixEfield::~FixEfield() int FixEfield::setmask() { int mask = 0; - mask |= THERMO_ENERGY; mask |= POST_FORCE; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; @@ -247,10 +247,9 @@ void FixEfield::post_force(int vflag) imageint *image = atom->image; int nlocal = atom->nlocal; - // energy and virial setup + // virial setup - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // reallocate efield array if necessary @@ -309,7 +308,7 @@ void FixEfield::post_force(int vflag) v[3] = fx*unwrap[1]; v[4] = fx*unwrap[2]; v[5] = fy*unwrap[2]; - v_tally(i, v); + v_tally(i,v); } } } diff --git a/src/MISC/fix_orient_bcc.cpp b/src/MISC/fix_orient_bcc.cpp index c9ae5d632b..186e651504 100644 --- a/src/MISC/fix_orient_bcc.cpp +++ b/src/MISC/fix_orient_bcc.cpp @@ -67,7 +67,7 @@ FixOrientBCC::FixOrientBCC(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = 1; extscalar = 1; - + energy_global_flag = 1; peratom_flag = 1; size_peratom_cols = 2; peratom_freq = 1; @@ -202,7 +202,6 @@ int FixOrientBCC::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; return mask; } diff --git a/src/MISC/fix_orient_fcc.cpp b/src/MISC/fix_orient_fcc.cpp index 71b38b5258..04eae4ac3e 100644 --- a/src/MISC/fix_orient_fcc.cpp +++ b/src/MISC/fix_orient_fcc.cpp @@ -65,7 +65,7 @@ FixOrientFCC::FixOrientFCC(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = 1; extscalar = 1; - + energy_global_flag = 1; peratom_flag = 1; size_peratom_cols = 2; peratom_freq = 1; @@ -200,7 +200,6 @@ int FixOrientFCC::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; return mask; } diff --git a/src/MOLECULE/fix_cmap.cpp b/src/MOLECULE/fix_cmap.cpp index 6966b5ac11..6da259f6ca 100644 --- a/src/MOLECULE/fix_cmap.cpp +++ b/src/MOLECULE/fix_cmap.cpp @@ -70,10 +70,10 @@ FixCMAP::FixCMAP(LAMMPS *lmp, int narg, char **arg) : restart_global = 1; restart_peratom = 1; - peatom_flag = 1; - virial_flag = 1; + energy_global_flag = energy_peratom_flag = 1; + virial_global_flag = virial_peratom_flag = 1; + thermo_energy = thermo_virial = 1; centroidstressflag = CENTROID_NOTAVAIL; - thermo_virial = 1; peratom_freq = 1; scalar_flag = 1; global_freq = 1; @@ -154,7 +154,6 @@ int FixCMAP::setmask() mask |= PRE_NEIGHBOR; mask |= PRE_REVERSE; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; diff --git a/src/Makefile b/src/Makefile index 7a5e1aa728..679cbe7b97 100644 --- a/src/Makefile +++ b/src/Makefile @@ -272,11 +272,13 @@ mpi-stubs: @cd STUBS; $(MAKE) clean; $(MAKE) # install LAMMPS shared lib and Python wrapper for Python usage -# include python package settings to -# automatically adapt name of python interpreter +# include python package settings to automatically adapt name of +# the python interpreter. must purge build folder to not install +# unwanted outdated files. sinclude ../lib/python/Makefile.lammps install-python: + @rm -rf ../python/build @$(PYTHON) ../python/install.py -v ../src/version.h \ -p ../python/lammps -l ../src/liblammps.so diff --git a/src/OPT/pair_eam_opt.cpp b/src/OPT/pair_eam_opt.cpp index c7d3541e67..67923515c9 100644 --- a/src/OPT/pair_eam_opt.cpp +++ b/src/OPT/pair_eam_opt.cpp @@ -112,7 +112,7 @@ void PairEAMOpt::eval() int ntypes2 = ntypes*ntypes; fast_alpha_t* _noalias fast_alpha = - (fast_alpha_t*) malloc(ntypes2*(nr+1)*sizeof(fast_alpha_t)); + (fast_alpha_t*) malloc((size_t)ntypes2*(nr+1)*sizeof(fast_alpha_t)); for (i = 0; i < ntypes; i++) for (j = 0; j < ntypes; j++) { fast_alpha_t* _noalias tab = &fast_alpha[i*ntypes*nr+j*nr]; if (type2rhor[i+1][j+1] >= 0) { @@ -135,7 +135,7 @@ void PairEAMOpt::eval() fast_alpha_t* _noalias tabeight = fast_alpha; fast_gamma_t* _noalias fast_gamma = - (fast_gamma_t*) malloc(ntypes2*(nr+1)*sizeof(fast_gamma_t)); + (fast_gamma_t*) malloc((size_t)ntypes2*(nr+1)*sizeof(fast_gamma_t)); for (i = 0; i < ntypes; i++) for (j = 0; j < ntypes; j++) { fast_gamma_t* _noalias tab = &fast_gamma[i*ntypes*nr+j*nr]; if (type2rhor[i+1][j+1] >= 0) { diff --git a/src/POEMS/fix_poems.cpp b/src/POEMS/fix_poems.cpp index 21fb4bc05e..bb74e90850 100644 --- a/src/POEMS/fix_poems.cpp +++ b/src/POEMS/fix_poems.cpp @@ -73,7 +73,7 @@ FixPOEMS::FixPOEMS(LAMMPS *lmp, int narg, char **arg) : time_integrate = 1; rigid_flag = 1; - virial_flag = 1; + virial_global_flag = virial_peratom_flag = 1; centroidstressflag = CENTROID_NOTAVAIL; thermo_virial = 1; dof_flag = 1; @@ -684,8 +684,7 @@ void FixPOEMS::setup(int vflag) // virial setup before call to set_v - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // set velocities from angmom & omega @@ -732,8 +731,7 @@ void FixPOEMS::initial_integrate(int vflag) // virial setup before call to set_xv - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // set coords and velocities of atoms in rigid bodies diff --git a/src/PYTHON/fix_python_invoke.cpp b/src/PYTHON/fix_python_invoke.cpp index 6fbd43cbd9..23c4197dca 100644 --- a/src/PYTHON/fix_python_invoke.cpp +++ b/src/PYTHON/fix_python_invoke.cpp @@ -17,6 +17,7 @@ #include "fix_python_invoke.h" +#include "comm.h" #include "error.h" #include "lmppython.h" #include "python_compat.h" @@ -52,14 +53,14 @@ FixPythonInvoke::FixPythonInvoke(LAMMPS *lmp, int narg, char **arg) : // get Python function PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject * pyMain = PyImport_AddModule("__main__"); + PyObject *pyMain = PyImport_AddModule("__main__"); if (!pyMain) { PyGILState_Release(gstate); error->all(FLERR,"Could not initialize embedded Python"); } - char * fname = arg[5]; + char *fname = arg[5]; pFunc = PyObject_GetAttrString(pyMain, fname); if (!pFunc) { @@ -83,13 +84,16 @@ void FixPythonInvoke::end_of_step() { PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject * ptr = PY_VOID_POINTER(lmp); - PyObject * arglist = Py_BuildValue("(O)", ptr); + PyObject *ptr = PY_VOID_POINTER(lmp); + PyObject *arglist = Py_BuildValue("(O)", ptr); - PyObject * result = PyEval_CallObject((PyObject*)pFunc, arglist); + PyObject *result = PyEval_CallObject((PyObject*)pFunc, arglist); Py_DECREF(arglist); + if (!result && (comm->me == 0)) PyErr_Print(); PyGILState_Release(gstate); + if (!result) + error->all(FLERR,"Fix python/invoke end_of_step() method failed"); } /* ---------------------------------------------------------------------- */ @@ -100,11 +104,14 @@ void FixPythonInvoke::post_force(int vflag) PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject * ptr = PY_VOID_POINTER(lmp); - PyObject * arglist = Py_BuildValue("(Oi)", ptr, vflag); + PyObject *ptr = PY_VOID_POINTER(lmp); + PyObject *arglist = Py_BuildValue("(Oi)", ptr, vflag); - PyObject * result = PyEval_CallObject((PyObject*)pFunc, arglist); + PyObject *result = PyEval_CallObject((PyObject*)pFunc, arglist); Py_DECREF(arglist); + if (!result && (comm->me == 0)) PyErr_Print(); PyGILState_Release(gstate); + if (!result) + error->all(FLERR,"Fix python/invoke post_force() method failed"); } diff --git a/src/PYTHON/fix_python_move.cpp b/src/PYTHON/fix_python_move.cpp index 18047b794e..5425b78193 100644 --- a/src/PYTHON/fix_python_move.cpp +++ b/src/PYTHON/fix_python_move.cpp @@ -17,6 +17,7 @@ #include "fix_python_move.h" +#include "comm.h" #include "error.h" #include "lmppython.h" #include "python_compat.h" @@ -42,13 +43,13 @@ FixPythonMove::FixPythonMove(LAMMPS *lmp, int narg, char **arg) : PyGILState_STATE gstate = PyGILState_Ensure(); // add current directory to PYTHONPATH - PyObject * py_path = PySys_GetObject((char *)"path"); + PyObject *py_path = PySys_GetObject((char *)"path"); PyList_Append(py_path, PY_STRING_FROM_STRING(".")); // create integrator instance - char * full_cls_name = arg[3]; - char * lastpos = strrchr(full_cls_name, '.'); + char *full_cls_name = arg[3]; + char *lastpos = strrchr(full_cls_name, '.'); if (lastpos == nullptr) { error->all(FLERR,"Fix python/integrate requires fully qualified class name"); @@ -57,14 +58,14 @@ FixPythonMove::FixPythonMove(LAMMPS *lmp, int narg, char **arg) : size_t module_name_length = strlen(full_cls_name) - strlen(lastpos); size_t cls_name_length = strlen(lastpos)-1; - char * module_name = new char[module_name_length+1]; - char * cls_name = new char[cls_name_length+1]; + char *module_name = new char[module_name_length+1]; + char *cls_name = new char[cls_name_length+1]; strncpy(module_name, full_cls_name, module_name_length); module_name[module_name_length] = 0; strcpy(cls_name, lastpos+1); - PyObject * pModule = PyImport_ImportModule(module_name); + PyObject *pModule = PyImport_ImportModule(module_name); if (!pModule) { PyErr_Print(); PyErr_Clear(); @@ -86,9 +87,9 @@ FixPythonMove::FixPythonMove(LAMMPS *lmp, int narg, char **arg) : delete [] module_name; delete [] cls_name; - PyObject * ptr = PY_VOID_POINTER(lmp); - PyObject * arglist = Py_BuildValue("(O)", ptr); - PyObject * py_move_obj = PyObject_CallObject(py_move_type, arglist); + PyObject *ptr = PY_VOID_POINTER(lmp); + PyObject *arglist = Py_BuildValue("(O)", ptr); + PyObject *py_move_obj = PyObject_CallObject(py_move_type, arglist); Py_DECREF(arglist); if (!py_move_obj) { @@ -136,10 +137,12 @@ void FixPythonMove::init() PyErr_Print(); PyErr_Clear(); PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'init' method'"); + error->all(FLERR,"Could not find 'init()' method'"); } - PyObject * result = PyEval_CallObject(py_init, nullptr); + PyObject *result = PyEval_CallObject(py_init, nullptr); + if (!result && (comm->me == 0)) PyErr_Print(); PyGILState_Release(gstate); + if (!result) error->all(FLERR,"Fix python/move init() method failed"); } /* ---------------------------------------------------------------------- */ @@ -155,10 +158,13 @@ void FixPythonMove::initial_integrate(int vflag) PyGILState_Release(gstate); error->all(FLERR,"Could not find 'initial_integrate' method'"); } - PyObject * arglist = Py_BuildValue("(i)", vflag); - PyObject * result = PyEval_CallObject(py_initial_integrate, arglist); + PyObject *arglist = Py_BuildValue("(i)", vflag); + PyObject *result = PyEval_CallObject(py_initial_integrate, arglist); Py_DECREF(arglist); + if (!result && (comm->me == 0)) PyErr_Print(); PyGILState_Release(gstate); + if (!result) error->all(FLERR,"Fix python/move initial_integrate() " + "method failed"); } /* ---------------------------------------------------------------------- */ @@ -174,8 +180,11 @@ void FixPythonMove::final_integrate() PyGILState_Release(gstate); error->all(FLERR,"Could not find 'final_integrate' method'"); } - PyObject * result = PyEval_CallObject(py_final_integrate, nullptr); + PyObject *result = PyEval_CallObject(py_final_integrate, nullptr); + if (!result && (comm->me == 0)) PyErr_Print(); PyGILState_Release(gstate); + if (!result) error->all(FLERR,"Fix python/move final_integrate() method " + "failed"); } /* ---------------------------------------------------------------------- */ @@ -191,10 +200,13 @@ void FixPythonMove::initial_integrate_respa(int vflag, int ilevel, int iloop) PyGILState_Release(gstate); error->all(FLERR,"Could not find 'initial_integrate_respa' method'"); } - PyObject * arglist = Py_BuildValue("(iii)", vflag, ilevel, iloop); - PyObject * result = PyEval_CallObject(py_initial_integrate_respa, arglist); + PyObject *arglist = Py_BuildValue("(iii)", vflag, ilevel, iloop); + PyObject *result = PyEval_CallObject(py_initial_integrate_respa, arglist); Py_DECREF(arglist); + if (!result && (comm->me == 0)) PyErr_Print(); PyGILState_Release(gstate); + if (!result) error->all(FLERR,"Fix python/move initial_integrate_respa() " + "method failed"); } /* ---------------------------------------------------------------------- */ @@ -210,10 +222,13 @@ void FixPythonMove::final_integrate_respa(int ilevel, int iloop) PyGILState_Release(gstate); error->all(FLERR,"Could not find 'final_integrate_respa' method'"); } - PyObject * arglist = Py_BuildValue("(ii)", ilevel, iloop); - PyObject * result = PyEval_CallObject(py_final_integrate_respa, arglist); + PyObject *arglist = Py_BuildValue("(ii)", ilevel, iloop); + PyObject *result = PyEval_CallObject(py_final_integrate_respa, arglist); Py_DECREF(arglist); + if (!result && (comm->me == 0)) PyErr_Print(); PyGILState_Release(gstate); + if (!result) error->all(FLERR,"Fix python/move final_integrate_respa() " + "method failed"); } /* ---------------------------------------------------------------------- */ @@ -229,6 +244,8 @@ void FixPythonMove::reset_dt() PyGILState_Release(gstate); error->all(FLERR,"Could not find 'reset_dt' method'"); } - PyObject * result = PyEval_CallObject(py_reset_dt, nullptr); + PyObject *result = PyEval_CallObject(py_reset_dt, nullptr); + if (!result && (comm->me == 0)) PyErr_Print(); PyGILState_Release(gstate); + if (!result) error->all(FLERR,"Fix python/move reset_dt() method failed"); } diff --git a/src/QEQ/fix_qeq.cpp b/src/QEQ/fix_qeq.cpp index 1ad01e5c4e..a63e008b36 100644 --- a/src/QEQ/fix_qeq.cpp +++ b/src/QEQ/fix_qeq.cpp @@ -524,7 +524,7 @@ double FixQEq::memory_usage() { double bytes; - bytes = atom->nmax*nprev*2 * sizeof(double); // s_hist & t_hist + bytes = (double)atom->nmax*nprev*2 * sizeof(double); // s_hist & t_hist bytes += (double)atom->nmax*11 * sizeof(double); // storage bytes += (double)n_cap*2 * sizeof(int); // matrix... bytes += (double)m_cap * sizeof(int); diff --git a/src/REPLICA/fix_hyper_global.cpp b/src/REPLICA/fix_hyper_global.cpp index 48dc0bed02..ebd07ae55f 100644 --- a/src/REPLICA/fix_hyper_global.cpp +++ b/src/REPLICA/fix_hyper_global.cpp @@ -50,6 +50,7 @@ FixHyperGlobal::FixHyperGlobal(LAMMPS *lmp, int narg, char **arg) : hyperflag = 1; scalar_flag = 1; + energy_global_flag = 1; vector_flag = 1; size_vector = 12; global_freq = 1; @@ -104,7 +105,6 @@ int FixHyperGlobal::setmask() int mask = 0; mask |= PRE_NEIGHBOR; mask |= PRE_REVERSE; - mask |= THERMO_ENERGY; return mask; } diff --git a/src/REPLICA/fix_hyper_local.cpp b/src/REPLICA/fix_hyper_local.cpp index 14a6c6089f..e4cc61f77f 100644 --- a/src/REPLICA/fix_hyper_local.cpp +++ b/src/REPLICA/fix_hyper_local.cpp @@ -31,7 +31,6 @@ #include "memory.h" #include "error.h" - using namespace LAMMPS_NS; using namespace FixConst; @@ -63,6 +62,7 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) : hyperflag = 2; scalar_flag = 1; + energy_global_flag = 1; vector_flag = 1; size_vector = 26; //size_vector = 28; // can add 2 for debugging @@ -237,7 +237,6 @@ int FixHyperLocal::setmask() mask |= PRE_NEIGHBOR; mask |= PRE_REVERSE; mask |= MIN_PRE_NEIGHBOR; - mask |= THERMO_ENERGY; return mask; } diff --git a/src/REPLICA/prd.cpp b/src/REPLICA/prd.cpp index bd9525ea10..de45116194 100644 --- a/src/REPLICA/prd.cpp +++ b/src/REPLICA/prd.cpp @@ -310,7 +310,7 @@ void PRD::command(int narg, char **arg) dynamics(t_event,time_dynamics); fix_event->store_state_quench(); quench(); - clock = clock + t_event*universe->nworlds; + clock += (bigint)t_event*universe->nworlds; ireplica = check_event(); if (ireplica >= 0) break; fix_event->restore_state_quench(); diff --git a/src/RIGID/fix_ehex.cpp b/src/RIGID/fix_ehex.cpp index 474c865a8b..7229dc8b02 100644 --- a/src/RIGID/fix_ehex.cpp +++ b/src/RIGID/fix_ehex.cpp @@ -309,7 +309,6 @@ double FixEHEX::compute_scalar() return scale; } - /* ---------------------------------------------------------------------- memory usage of local atom-based arrays ------------------------------------------------------------------------- */ diff --git a/src/RIGID/fix_rattle.cpp b/src/RIGID/fix_rattle.cpp index 6482a28e6f..aef3cb3964 100644 --- a/src/RIGID/fix_rattle.cpp +++ b/src/RIGID/fix_rattle.cpp @@ -79,7 +79,6 @@ FixRattle::~FixRattle() { memory->destroy(vp); - if (RATTLE_DEBUG) { // communicate maximum distance error diff --git a/src/RIGID/fix_rigid.cpp b/src/RIGID/fix_rigid.cpp index 8a8456393c..c211e0e4ca 100644 --- a/src/RIGID/fix_rigid.cpp +++ b/src/RIGID/fix_rigid.cpp @@ -37,8 +37,6 @@ #include "error.h" #include "rigid_const.h" - - using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; @@ -64,7 +62,7 @@ FixRigid::FixRigid(LAMMPS *lmp, int narg, char **arg) : extscalar = 0; time_integrate = 1; rigid_flag = 1; - virial_flag = 1; + virial_global_flag = virial_peratom_flag = 1; thermo_virial = 1; create_attribute = 1; dof_flag = 1; @@ -881,8 +879,7 @@ void FixRigid::setup(int vflag) // virial setup before call to set_v - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // set velocities from angmom & omega @@ -945,8 +942,7 @@ void FixRigid::initial_integrate(int vflag) // virial setup before call to set_xv - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // set coords/orient and velocity/rotation of atoms in rigid bodies // from quarternion and omega @@ -2452,8 +2448,8 @@ double FixRigid::memory_usage() bytes += (double)maxvatom*6 * sizeof(double); // vatom if (extended) { bytes += (double)nmax * sizeof(int); - if (orientflag) bytes = nmax*orientflag * sizeof(double); - if (dorientflag) bytes = nmax*3 * sizeof(double); + if (orientflag) bytes = (double)nmax*orientflag * sizeof(double); + if (dorientflag) bytes = (double)nmax*3 * sizeof(double); } return bytes; } diff --git a/src/RIGID/fix_rigid_nh.cpp b/src/RIGID/fix_rigid_nh.cpp index 148a532d41..a29c8d9863 100644 --- a/src/RIGID/fix_rigid_nh.cpp +++ b/src/RIGID/fix_rigid_nh.cpp @@ -49,6 +49,8 @@ FixRigidNH::FixRigidNH(LAMMPS *lmp, int narg, char **arg) : eta_dot_b(nullptr), f_eta_b(nullptr), rfix(nullptr), id_temp(nullptr), id_press(nullptr), temperature(nullptr), pressure(nullptr) { + if (tstat_flag || pstat_flag) ecouple_flag = 1; + // error checks: could be moved up to FixRigid if ((p_flag[0] == 1 && p_period[0] <= 0.0) || @@ -186,8 +188,6 @@ int FixRigidNH::setmask() { int mask = 0; mask = FixRigid::setmask(); - if (tstat_flag || pstat_flag) mask |= THERMO_ENERGY; - return mask; } @@ -565,8 +565,7 @@ void FixRigidNH::initial_integrate(int vflag) // virial setup before call to set_xv - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // remap simulation box by 1/2 step diff --git a/src/RIGID/fix_rigid_nh_small.cpp b/src/RIGID/fix_rigid_nh_small.cpp index 17e5d30aaf..cfefe285f3 100644 --- a/src/RIGID/fix_rigid_nh_small.cpp +++ b/src/RIGID/fix_rigid_nh_small.cpp @@ -51,6 +51,8 @@ FixRigidNHSmall::FixRigidNHSmall(LAMMPS *lmp, int narg, char **arg) : f_eta_b(nullptr), rfix(nullptr), id_temp(nullptr), id_press(nullptr), temperature(nullptr), pressure(nullptr) { + if (tstat_flag || pstat_flag) ecouple_flag = 1; + // error checks if ((p_flag[0] == 1 && p_period[0] <= 0.0) || @@ -199,8 +201,6 @@ int FixRigidNHSmall::setmask() { int mask = 0; mask = FixRigidSmall::setmask(); - if (tstat_flag || pstat_flag) mask |= THERMO_ENERGY; - return mask; } @@ -591,8 +591,7 @@ void FixRigidNHSmall::initial_integrate(int vflag) // virial setup before call to set_xv - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // remap simulation box by 1/2 step diff --git a/src/RIGID/fix_rigid_small.cpp b/src/RIGID/fix_rigid_small.cpp index 8129526d9c..bdc7330d6d 100644 --- a/src/RIGID/fix_rigid_small.cpp +++ b/src/RIGID/fix_rigid_small.cpp @@ -66,7 +66,7 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; time_integrate = 1; rigid_flag = 1; - virial_flag = 1; + virial_global_flag = virial_peratom_flag = 1; thermo_virial = 1; create_attribute = 1; dof_flag = 1; @@ -716,8 +716,7 @@ void FixRigidSmall::setup(int vflag) // virial setup before call to set_v - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // compute and forward communicate vcm and omega of all bodies @@ -788,8 +787,7 @@ void FixRigidSmall::initial_integrate(int vflag) // virial setup before call to set_xv - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // forward communicate updated info of all bodies @@ -3564,8 +3562,8 @@ double FixRigidSmall::memory_usage() bytes += (double)maxvatom*6 * sizeof(double); // vatom if (extended) { bytes += (double)nmax * sizeof(int); - if (orientflag) bytes = nmax*orientflag * sizeof(double); - if (dorientflag) bytes = nmax*3 * sizeof(double); + if (orientflag) bytes = (double)nmax*orientflag * sizeof(double); + if (dorientflag) bytes = (double)nmax*3 * sizeof(double); } bytes += (double)nmax_body * sizeof(Body); return bytes; diff --git a/src/RIGID/fix_shake.cpp b/src/RIGID/fix_shake.cpp index 7ce3f9ddf2..adef291ed9 100644 --- a/src/RIGID/fix_shake.cpp +++ b/src/RIGID/fix_shake.cpp @@ -33,8 +33,6 @@ #include "memory.h" #include "error.h" - - using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; @@ -61,7 +59,7 @@ FixShake::FixShake(LAMMPS *lmp, int narg, char **arg) : MPI_Comm_rank(world,&me); MPI_Comm_size(world,&nprocs); - virial_flag = 1; + virial_global_flag = virial_peratom_flag = 1; thermo_virial = 1; create_attribute = 1; dof_flag = 1; @@ -571,8 +569,7 @@ void FixShake::post_force(int vflag) // virial setup - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // loop over clusters to add constraint forces @@ -618,7 +615,7 @@ void FixShake::post_force_respa(int vflag, int ilevel, int iloop) // and if pressure is requested // virial accumulation happens via evflag at last iteration of each level - if (ilevel == 0 && iloop == loop_respa[ilevel]-1 && vflag) v_setup(vflag); + if (ilevel == 0 && iloop == loop_respa[ilevel]-1 && vflag) v_init(vflag); if (iloop == loop_respa[ilevel]-1) evflag = 1; else evflag = 0; diff --git a/src/SHOCK/fix_msst.cpp b/src/SHOCK/fix_msst.cpp index a73409e584..10ec0f0351 100644 --- a/src/SHOCK/fix_msst.cpp +++ b/src/SHOCK/fix_msst.cpp @@ -33,8 +33,6 @@ #include "memory.h" #include "error.h" - - using namespace LAMMPS_NS; using namespace FixConst; @@ -55,6 +53,7 @@ FixMSST::FixMSST(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 1; extvector = 0; + ecouple_flag = 1; // set defaults @@ -238,7 +237,6 @@ int FixMSST::setmask() int mask = 0; mask |= INITIAL_INTEGRATE; mask |= FINAL_INTEGRATE; - mask |= THERMO_ENERGY; return mask; } @@ -937,6 +935,7 @@ double FixMSST::compute_vector(int n) double FixMSST::compute_hugoniot() { + if (!temperature) return 0.0; double v, e, p; double dhugo; @@ -962,6 +961,8 @@ double FixMSST::compute_hugoniot() double FixMSST::compute_rayleigh() { + if (!temperature) return 0.0; + double v, p; double drayleigh; @@ -1003,9 +1004,10 @@ double FixMSST::compute_lagrangian_position() double FixMSST::compute_etotal() { + if (!pe) return 0.0; + double epot,ekin,etot; epot = pe->compute_scalar(); - if (thermo_energy) epot -= compute_scalar(); ekin = temperature->compute_scalar(); ekin *= 0.5 * temperature->dof * force->boltz; etot = epot+ekin; diff --git a/src/SHOCK/fix_nphug.cpp b/src/SHOCK/fix_nphug.cpp index 744f9d89cb..1fa7b77f6a 100644 --- a/src/SHOCK/fix_nphug.cpp +++ b/src/SHOCK/fix_nphug.cpp @@ -32,7 +32,6 @@ enum{ISO,ANISO,TRICLINIC}; // same as fix_nh.cpp FixNPHug::FixNPHug(LAMMPS *lmp, int narg, char **arg) : FixNH(lmp, narg, arg), pe(nullptr), id_pe(nullptr) { - // Prevent masses from being updated every timestep eta_mass_flag = 0; @@ -171,13 +170,11 @@ FixNPHug::FixNPHug(LAMMPS *lmp, int narg, char **arg) : FixNPHug::~FixNPHug() { - // temp and press computes handled by base class // delete pe compute if (peflag) modify->delete_compute(id_pe); delete [] id_pe; - } /* ---------------------------------------------------------------------- */ @@ -247,9 +244,10 @@ void FixNPHug::compute_temp_target() double FixNPHug::compute_etotal() { + if (!pe) return 0.0; + double epot,ekin,etot; epot = pe->compute_scalar(); - if (thermo_energy) epot -= compute_scalar(); ekin = temperature->compute_scalar(); ekin *= 0.5 * tdof * force->boltz; etot = epot+ekin; @@ -273,6 +271,8 @@ double FixNPHug::compute_vol() double FixNPHug::compute_hugoniot() { + if (!temperature) return 0.0; + double v,e,p; double dhugo; @@ -303,6 +303,8 @@ double FixNPHug::compute_hugoniot() double FixNPHug::compute_us() { + if (!temperature) return 0.0; + double v,p; double eps,us; @@ -346,6 +348,8 @@ double FixNPHug::compute_up() return up; } +/* ----------------------------------------------------------------------- */ + // look for index in local class // if index not found, look in base class diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 6ebddff602..c9cb0fa2ec 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -35,7 +35,6 @@ #include "respa.h" #include "update.h" - using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; @@ -47,12 +46,6 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : { if (narg != 6) error->all(FLERR,"Illegal langevin/spin command"); - dynamic_group_allow = 1; - scalar_flag = 1; - global_freq = 1; - extscalar = 1; - nevery = 1; - temp = utils::numeric(FLERR,arg[3],false,lmp); alpha_t = utils::numeric(FLERR,arg[4],false,lmp); seed = utils::inumeric(FLERR,arg[5],false,lmp); @@ -77,7 +70,6 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : // random = new RanPark(lmp,seed + comm->me); random = new RanMars(lmp,seed + comm->me); - } /* ---------------------------------------------------------------------- */ @@ -92,10 +84,6 @@ FixLangevinSpin::~FixLangevinSpin() int FixLangevinSpin::setmask() { int mask = 0; - mask |= POST_FORCE; - mask |= POST_FORCE_RESPA; - mask |= END_OF_STEP; - mask |= THERMO_ENERGY; return mask; } @@ -156,7 +144,6 @@ void FixLangevinSpin::add_tdamping(double spi[3], double fmi[3]) void FixLangevinSpin::add_temperature(double fmi[3]) { - // double rx = sigma*(2.0*random->uniform() - 1.0); // double ry = sigma*(2.0*random->uniform() - 1.0); // double rz = sigma*(2.0*random->uniform() - 1.0); @@ -175,14 +162,4 @@ void FixLangevinSpin::add_temperature(double fmi[3]) fmi[0] *= gil_factor; fmi[1] *= gil_factor; fmi[2] *= gil_factor; - } - - -/* ---------------------------------------------------------------------- */ - -void FixLangevinSpin::post_force_respa(int vflag, int ilevel, int /*iloop*/) -{ - if (ilevel == nlevels_respa-1) post_force(vflag); -} - diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index 0e4fc69f92..c73b33353b 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -26,15 +26,15 @@ namespace LAMMPS_NS { class FixLangevinSpin : public Fix { public: + int tdamp_flag,ldamp_flag,temp_flag; // damping and temperature flags + FixLangevinSpin(class LAMMPS *, int, char **); virtual ~FixLangevinSpin(); int setmask(); void init(); void setup(int); - void post_force_respa(int, int, int); void add_tdamping(double *, double *); // add transverse damping void add_temperature(double *); // add temperature - int tdamp_flag, ldamp_flag, temp_flag; // damping and temperature flags protected: double alpha_t; // transverse mag. damping diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index 81fb0ed9eb..70ea7e1a09 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -44,7 +44,8 @@ enum{CONSTANT,EQUAL}; /* ---------------------------------------------------------------------- */ -FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), emag(nullptr) +FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg), emag(nullptr) { if (narg < 7) error->all(FLERR,"Illegal precession/spin command"); @@ -56,6 +57,7 @@ FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lm scalar_flag = 1; global_freq = 1; extscalar = 1; + energy_global_flag = 1; respa_level_support = 1; ilevel_respa = 0; @@ -165,12 +167,10 @@ int FixPrecessionSpin::setmask() int mask = 0; mask |= POST_FORCE; mask |= MIN_POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; return mask; } - /* ---------------------------------------------------------------------- */ void FixPrecessionSpin::init() @@ -245,7 +245,6 @@ void FixPrecessionSpin::min_setup(int vflag) void FixPrecessionSpin::post_force(int /* vflag */) { - // update mag field with time (potential improvement) if (varflag != CONSTANT) { diff --git a/src/SPIN/pair_spin_dipole_cut.cpp b/src/SPIN/pair_spin_dipole_cut.cpp index 7ba81d93f8..2679f0fd6d 100644 --- a/src/SPIN/pair_spin_dipole_cut.cpp +++ b/src/SPIN/pair_spin_dipole_cut.cpp @@ -167,9 +167,8 @@ void PairSpinDipoleCut::compute(int eflag, int vflag) double rinv,r2inv,r3inv,rsq,local_cut2,evdwl,ecoul; double xi[3],rij[3],eij[3],spi[4],spj[4],fi[3],fmi[3]; + ev_init(eflag,vflag); evdwl = ecoul = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; int *type = atom->type; int nlocal = atom->nlocal; diff --git a/src/USER-ATC/fix_atc.cpp b/src/USER-ATC/fix_atc.cpp index 90ba43b0e8..843dc41194 100644 --- a/src/USER-ATC/fix_atc.cpp +++ b/src/USER-ATC/fix_atc.cpp @@ -479,8 +479,6 @@ FixATC::FixATC(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), // we write our own restart file restart_global = 0; - - // Set output computation data based on transfer info scalar_flag = atc_->scalar_flag(); vector_flag = atc_->vector_flag(); @@ -489,6 +487,7 @@ FixATC::FixATC(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), extscalar = atc_->extscalar(); extvector = atc_->extvector(); extlist = atc_->extlist(); + energy_global_flag = 1; thermo_energy = atc_->thermo_energy_flag(); // set pointer for output @@ -496,7 +495,6 @@ FixATC::FixATC(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), size_peratom_cols = atc_->size_peratom_cols(); peratom_freq = atc_->peratom_freq(); - // set comm size needed by this fix comm_forward = atc_->comm_forward(); @@ -527,7 +525,6 @@ int FixATC::setmask() mask |= MIN_PRE_NEIGHBOR; mask |= MIN_PRE_FORCE; mask |= MIN_POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_RUN; mask |= END_OF_STEP; return mask; diff --git a/src/USER-BOCS/compute_pressure_bocs.cpp b/src/USER-BOCS/compute_pressure_bocs.cpp index f97edfeaa1..a84442e658 100644 --- a/src/USER-BOCS/compute_pressure_bocs.cpp +++ b/src/USER-BOCS/compute_pressure_bocs.cpp @@ -158,9 +158,12 @@ void ComputePressureBocs::init() if (dihedralflag && force->dihedral) nvirial++; if (improperflag && force->improper) nvirial++; } - if (fixflag) - for (int i = 0; i < modify->nfix; i++) - if (modify->fix[i]->virial_flag) nvirial++; + if (fixflag) { + Fix **fix = modify->fix; + int nfix = modify->nfix; + for (int i = 0; i < nfix; i++) + if (fix[i]->thermo_virial) nvirial++; + } if (nvirial) { vptr = new double*[nvirial]; @@ -174,7 +177,7 @@ void ComputePressureBocs::init() vptr[nvirial++] = force->improper->virial; if (fixflag) for (int i = 0; i < modify->nfix; i++) - if (modify->fix[i]->virial_flag) + if (modify->fix[i]->virial_global_flag && modify->fix[i]->thermo_virial) vptr[nvirial++] = modify->fix[i]->virial; } @@ -184,26 +187,24 @@ void ComputePressureBocs::init() else kspace_virial = nullptr; } -/* Extra functions added for BOCS */ - /* ---------------------------------------------------------------------- Compute the pressure correction for the analytical basis set ------------------------------------------------------------------------- */ + double ComputePressureBocs::get_cg_p_corr(int N_basis, double *phi_coeff, int N_mol, double vavg, double vCG) { double correction = 0.0; for (int i = 1; i <= N_basis; ++i) - { correction -= phi_coeff[i-1] * ( N_mol * i / vavg ) * - pow( ( 1 / vavg ) * ( vCG - vavg ),i-1); - } + pow( ( 1 / vavg ) * ( vCG - vavg ),i-1); return correction; } /* ---------------------------------------------------------------------- Find the relevant index position if using a spline basis set ------------------------------------------------------------------------- */ + double ComputePressureBocs::find_index(double * grid, double value) { int i; @@ -230,7 +231,7 @@ double ComputePressureBocs::find_index(double * grid, double value) ------------------------------------------------------------------------- */ double ComputePressureBocs::get_cg_p_corr(double ** grid, int basis_type, - double vCG) + double vCG) { int i = find_index(grid[0],vCG); double correction, deltax = vCG - grid[0][i]; @@ -256,8 +257,10 @@ double ComputePressureBocs::get_cg_p_corr(double ** grid, int basis_type, send cg info from fix_bocs to compute_pressure_bocs for the analytical basis set ------------------------------------------------------------------------- */ + void ComputePressureBocs::send_cg_info(int basis_type, int sent_N_basis, - double *sent_phi_coeff, int sent_N_mol, double sent_vavg) + double *sent_phi_coeff, int sent_N_mol, + double sent_vavg) { if (basis_type == BASIS_ANALYTIC) { p_basis_type = BASIS_ANALYTIC; } else @@ -280,8 +283,9 @@ void ComputePressureBocs::send_cg_info(int basis_type, int sent_N_basis, send cg info from fix_bocs to compute_pressure_bocs for a spline basis set ------------------------------------------------------------------------- */ + void ComputePressureBocs::send_cg_info(int basis_type, - double ** in_splines, int gridsize) + double ** in_splines, int gridsize) { if (basis_type == BASIS_LINEAR_SPLINE) { p_basis_type = BASIS_LINEAR_SPLINE; } else if (basis_type == BASIS_CUBIC_SPLINE) { p_basis_type = BASIS_CUBIC_SPLINE; } @@ -299,6 +303,7 @@ void ComputePressureBocs::send_cg_info(int basis_type, /* ---------------------------------------------------------------------- compute total pressure, averaged over Pxx, Pyy, Pzz ------------------------------------------------------------------------- */ + double ComputePressureBocs::compute_scalar() { invoked_scalar = update->ntimestep; diff --git a/src/USER-BOCS/fix_bocs.cpp b/src/USER-BOCS/fix_bocs.cpp index 81bf3538df..28a0d6c01a 100644 --- a/src/USER-BOCS/fix_bocs.cpp +++ b/src/USER-BOCS/fix_bocs.cpp @@ -87,6 +87,7 @@ FixBocs::FixBocs(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 1; extvector = 0; + ecouple_flag = 1; // default values @@ -489,7 +490,6 @@ int FixBocs::setmask() int mask = 0; mask |= INITIAL_INTEGRATE; mask |= FINAL_INTEGRATE; - mask |= THERMO_ENERGY; mask |= INITIAL_INTEGRATE_RESPA; mask |= FINAL_INTEGRATE_RESPA; if (pre_exchange_flag) mask |= PRE_EXCHANGE; diff --git a/src/USER-COLVARS/fix_colvars.cpp b/src/USER-COLVARS/fix_colvars.cpp index c2150f32c2..74972a8076 100644 --- a/src/USER-COLVARS/fix_colvars.cpp +++ b/src/USER-COLVARS/fix_colvars.cpp @@ -282,6 +282,7 @@ int FixColvars::instances=0; tstat (label of thermostatting fix) ***************************************************************/ + FixColvars::FixColvars(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { @@ -297,6 +298,7 @@ FixColvars::FixColvars(LAMMPS *lmp, int narg, char **arg) : nevery = 1; extscalar = 1; restart_global = 1; + energy_global_flag = 1; me = comm->me; root2root = MPI_COMM_NULL; @@ -360,6 +362,7 @@ FixColvars::FixColvars(LAMMPS *lmp, int narg, char **arg) : /********************************* * Clean up on deleting the fix. * *********************************/ + FixColvars::~FixColvars() { memory->sfree(conf_file); @@ -386,7 +389,6 @@ FixColvars::~FixColvars() int FixColvars::setmask() { int mask = 0; - mask |= THERMO_ENERGY; mask |= MIN_POST_FORCE; mask |= POST_FORCE; mask |= POST_FORCE_RESPA; diff --git a/src/USER-DIFFRACTION/compute_xrd.cpp b/src/USER-DIFFRACTION/compute_xrd.cpp index 7c3cb28e49..a077df0183 100644 --- a/src/USER-DIFFRACTION/compute_xrd.cpp +++ b/src/USER-DIFFRACTION/compute_xrd.cpp @@ -524,7 +524,7 @@ void ComputeXRD::compute_array() double ComputeXRD::memory_usage() { - double bytes = size_array_rows * size_array_cols * sizeof(double); //array + double bytes = (double)size_array_rows * size_array_cols * sizeof(double); //array bytes += (double) 4.0 * size_array_rows * sizeof(double); //Fvec1 & 2, scratch1 & 2 bytes += (double)3.0 * nlocalgroup * sizeof(double); // xlocal bytes += (double)nlocalgroup * sizeof(int); // typelocal diff --git a/src/USER-DIFFRACTION/fix_saed_vtk.cpp b/src/USER-DIFFRACTION/fix_saed_vtk.cpp index 26bc4dc0a1..90eedb1127 100644 --- a/src/USER-DIFFRACTION/fix_saed_vtk.cpp +++ b/src/USER-DIFFRACTION/fix_saed_vtk.cpp @@ -343,7 +343,7 @@ void FixSAEDVTK::invoke_vector(bigint ntimestep) } irepeat = 0; - nvalid = ntimestep+nfreq - (nrepeat-1)*nevery; + nvalid = ntimestep+nfreq - ((bigint)nrepeat-1)*nevery; modify->addstep_compute(nvalid); // average the final result for the Nfreq timestep @@ -554,7 +554,7 @@ bigint FixSAEDVTK::nextvalid() if (nvalid-nfreq == update->ntimestep && nrepeat == 1) nvalid = update->ntimestep; else - nvalid -= (nrepeat-1)*nevery; + nvalid -= ((bigint)nrepeat-1)*nevery; if (nvalid < update->ntimestep) nvalid += nfreq; return nvalid; } diff --git a/src/USER-DPD/pair_multi_lucy.cpp b/src/USER-DPD/pair_multi_lucy.cpp index 11bc1c7ba5..70ea8b40ad 100644 --- a/src/USER-DPD/pair_multi_lucy.cpp +++ b/src/USER-DPD/pair_multi_lucy.cpp @@ -221,9 +221,9 @@ void PairMultiLucy::allocate() memory->create(cutsq,nt,nt,"pair:cutsq"); memory->create(tabindex,nt,nt,"pair:tabindex"); - memset(&setflag[0][0],0,nt*nt*sizeof(int)); - memset(&cutsq[0][0],0,nt*nt*sizeof(double)); - memset(&tabindex[0][0],0,nt*nt*sizeof(int)); + memset(&setflag[0][0],0,sizeof(int)*nt*nt); + memset(&cutsq[0][0],0,sizeof(double)*nt*nt); + memset(&tabindex[0][0],0,sizeof(int)*nt*nt); } /* ---------------------------------------------------------------------- diff --git a/src/USER-DPD/pair_multi_lucy_rx.cpp b/src/USER-DPD/pair_multi_lucy_rx.cpp index e1a263b7dc..bd720ae138 100644 --- a/src/USER-DPD/pair_multi_lucy_rx.cpp +++ b/src/USER-DPD/pair_multi_lucy_rx.cpp @@ -310,9 +310,9 @@ void PairMultiLucyRX::allocate() memory->create(cutsq,nt,nt,"pair:cutsq"); memory->create(tabindex,nt,nt,"pair:tabindex"); - memset(&setflag[0][0],0,nt*nt*sizeof(int)); - memset(&cutsq[0][0],0,nt*nt*sizeof(double)); - memset(&tabindex[0][0],0,nt*nt*sizeof(int)); + memset(&setflag[0][0],0,sizeof(int)*nt*nt); + memset(&cutsq[0][0],0,sizeof(double)*nt*nt); + memset(&tabindex[0][0],0,sizeof(int)*nt*nt); } /* ---------------------------------------------------------------------- diff --git a/src/USER-DRUDE/fix_tgnh_drude.cpp b/src/USER-DRUDE/fix_tgnh_drude.cpp index d660f16c4a..8185b9bcbb 100644 --- a/src/USER-DRUDE/fix_tgnh_drude.cpp +++ b/src/USER-DRUDE/fix_tgnh_drude.cpp @@ -66,6 +66,7 @@ FixTGNHDrude::FixTGNHDrude(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 1; extvector = 0; + ecouple_flag = 1; // default values @@ -585,7 +586,6 @@ int FixTGNHDrude::setmask() int mask = 0; mask |= INITIAL_INTEGRATE; mask |= FINAL_INTEGRATE; - mask |= THERMO_ENERGY; mask |= INITIAL_INTEGRATE_RESPA; mask |= FINAL_INTEGRATE_RESPA; if (pre_exchange_flag) mask |= PRE_EXCHANGE; diff --git a/src/USER-EFF/fix_langevin_eff.cpp b/src/USER-EFF/fix_langevin_eff.cpp index 1a49a203d9..9c4ec9024d 100644 --- a/src/USER-EFF/fix_langevin_eff.cpp +++ b/src/USER-EFF/fix_langevin_eff.cpp @@ -15,7 +15,6 @@ Contributing author: Andres Jaramillo-Botero ------------------------------------------------------------------------- */ - #include #include "fix_langevin_eff.h" diff --git a/src/USER-EFF/fix_temp_rescale_eff.cpp b/src/USER-EFF/fix_temp_rescale_eff.cpp index b8a614ae6e..f796c7cb02 100644 --- a/src/USER-EFF/fix_temp_rescale_eff.cpp +++ b/src/USER-EFF/fix_temp_rescale_eff.cpp @@ -46,6 +46,7 @@ FixTempRescaleEff::FixTempRescaleEff(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = nevery; extscalar = 1; + ecouple_flag = 1; t_start = utils::numeric(FLERR,arg[4],false,lmp); t_stop = utils::numeric(FLERR,arg[5],false,lmp); @@ -87,7 +88,6 @@ int FixTempRescaleEff::setmask() { int mask = 0; mask |= END_OF_STEP; - mask |= THERMO_ENERGY; return mask; } diff --git a/src/USER-FEP/pair_morse_soft.h b/src/USER-FEP/pair_morse_soft.h index f5be4de0b0..3a8d5a777f 100644 --- a/src/USER-FEP/pair_morse_soft.h +++ b/src/USER-FEP/pair_morse_soft.h @@ -29,7 +29,7 @@ namespace LAMMPS_NS { class PairMorseSoft : public PairMorse { public: - PairMorseSoft(class LAMMPS *lmp) : PairMorse(lmp) {}; + PairMorseSoft(class LAMMPS *lmp) : PairMorse(lmp), lambda(nullptr) {}; virtual ~PairMorseSoft(); virtual void compute(int, int); diff --git a/src/USER-INTEL/npair_skip_intel.cpp b/src/USER-INTEL/npair_skip_intel.cpp index 4f6648ddc1..53900f116f 100644 --- a/src/USER-INTEL/npair_skip_intel.cpp +++ b/src/USER-INTEL/npair_skip_intel.cpp @@ -55,8 +55,8 @@ void NPairSkipIntel::copy_neighbor_info() { NPair::copy_neighbor_info(); if (_full_props) delete []_full_props; - _full_props = new int[neighbor->nlist]; - for (int i = 0; i < neighbor->nlist; i++) + _full_props = new int[neighbor->nrequest]; + for (int i = 0; i < neighbor->nrequest; i++) _full_props[i] = neighbor->requests[i]->full; } diff --git a/src/USER-LB/fix_lb_rigid_pc_sphere.cpp b/src/USER-LB/fix_lb_rigid_pc_sphere.cpp index 9481c0d0f2..2d94a90246 100644 --- a/src/USER-LB/fix_lb_rigid_pc_sphere.cpp +++ b/src/USER-LB/fix_lb_rigid_pc_sphere.cpp @@ -32,7 +32,6 @@ #include "error.h" #include "fix_lb_fluid.h" - using namespace LAMMPS_NS; using namespace FixConst; @@ -48,7 +47,7 @@ FixLbRigidPCSphere::FixLbRigidPCSphere(LAMMPS *lmp, int narg, char **arg) : time_integrate = 1; rigid_flag = 1; create_attribute = 1; - virial_flag = 1; + virial_global_flag = virial_peratom_flag = 1; thermo_virial = 1; // perform initial allocation of atom-based arrays @@ -737,8 +736,7 @@ void FixLbRigidPCSphere::setup(int vflag) // virial setup before call to set_v - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // Set the velocities set_v(); @@ -938,14 +936,11 @@ void FixLbRigidPCSphere::initial_integrate(int vflag) } // virial setup before call to set_xv - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); set_xv(); - } - /* ---------------------------------------------------------------------- */ void FixLbRigidPCSphere::final_integrate() @@ -1188,8 +1183,6 @@ void FixLbRigidPCSphere::set_v() v_tally(1,&i,1.0,vr); } - - } } @@ -1310,11 +1303,9 @@ void FixLbRigidPCSphere::set_xv() v_tally(1,&i,1.0,vr); } - } - - } + /* ---------------------------------------------------------------------- remap xcm of each rigid body back into periodic simulation box done during pre_neighbor so will be after call to pbc() diff --git a/src/USER-MISC/angle_gaussian.cpp b/src/USER-MISC/angle_gaussian.cpp index 2150ef7a4b..ad311fdb5d 100644 --- a/src/USER-MISC/angle_gaussian.cpp +++ b/src/USER-MISC/angle_gaussian.cpp @@ -32,7 +32,9 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -AngleGaussian::AngleGaussian(LAMMPS *lmp) : Angle(lmp) +AngleGaussian::AngleGaussian(LAMMPS *lmp) + : Angle(lmp), nterms(nullptr), angle_temperature(nullptr), + alpha(nullptr), width(nullptr), theta0(nullptr) { } @@ -45,9 +47,9 @@ AngleGaussian::~AngleGaussian() memory->destroy(nterms); memory->destroy(angle_temperature); for (int i = 1; i <= atom->nangletypes; i++) { - if (alpha[i]) delete [] alpha[i]; - if (width[i]) delete [] width[i]; - if (theta0[i]) delete [] theta0[i]; + delete [] alpha[i]; + delete [] width[i]; + delete [] theta0[i]; } delete [] alpha; delete [] width; @@ -180,11 +182,9 @@ void AngleGaussian::allocate() alpha = new double *[n+1]; width = new double *[n+1]; theta0 = new double *[n+1]; - for (int i = 1; i <= n; i++) { - alpha[i] = 0; - width[i] = 0; - theta0[i] = 0; - } + memset(alpha,0,sizeof(double)*(n+1)); + memset(width,0,sizeof(double)*(n+1)); + memset(theta0,0,sizeof(double)*(n+1)); memory->create(setflag,n+1,"angle:setflag"); for (int i = 1; i <= n; i++) setflag[i] = 0; @@ -214,8 +214,11 @@ void AngleGaussian::coeff(int narg, char **arg) for (int i = ilo; i <= ihi; i++) { angle_temperature[i] = angle_temperature_one; nterms[i] = n; + delete[] alpha[i]; alpha[i] = new double [n]; + delete[] width[i]; width[i] = new double [n]; + delete[] theta0[i]; theta0[i] = new double [n]; for (int j = 0; j < n; j++) { alpha[i][j] = utils::numeric(FLERR,arg[3+3*j],false,lmp); diff --git a/src/USER-MISC/bond_gaussian.cpp b/src/USER-MISC/bond_gaussian.cpp index dcb8d7a4ad..e6460d808e 100644 --- a/src/USER-MISC/bond_gaussian.cpp +++ b/src/USER-MISC/bond_gaussian.cpp @@ -31,7 +31,9 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -BondGaussian::BondGaussian(LAMMPS *lmp) : Bond(lmp) +BondGaussian::BondGaussian(LAMMPS *lmp) + : Bond(lmp), nterms(nullptr), bond_temperature(nullptr), + alpha(nullptr), width(nullptr), r0(nullptr) { reinitflag = 1; } @@ -45,9 +47,9 @@ BondGaussian::~BondGaussian() memory->destroy(nterms); memory->destroy(bond_temperature); for (int i = 1; i <= atom->nbondtypes; i++) { - if (alpha[i]) delete [] alpha[i]; - if (width[i]) delete [] width[i]; - if (r0[i]) delete [] r0[i]; + delete [] alpha[i]; + delete [] width[i]; + delete [] r0[i]; } delete [] alpha; delete [] width; @@ -136,11 +138,9 @@ void BondGaussian::allocate() alpha = new double *[n+1]; width = new double *[n+1]; r0 = new double *[n+1]; - for (int i = 1; i <= n; i++) { - alpha[i] = 0; - width[i] = 0; - r0[i] = 0; - } + memset(alpha,0,sizeof(double)*(n+1)); + memset(width,0,sizeof(double)*(n+1)); + memset(r0,0,sizeof(double)*(n+1)); memory->create(setflag,n+1,"bond:setflag"); for (int i = 1; i <= n; i++) setflag[i] = 0; @@ -168,8 +168,11 @@ void BondGaussian::coeff(int narg, char **arg) for (int i = ilo; i <= ihi; i++) { bond_temperature[i] = bond_temp_one; nterms[i] = n; + delete[] alpha[i]; alpha[i] = new double [n]; + delete[] width[i]; width[i] = new double [n]; + delete[] r0[i]; r0[i] = new double [n]; for (int j = 0; j < n; j++) { alpha[i][j] = utils::numeric(FLERR,arg[3+3*j],false,lmp); diff --git a/src/USER-MISC/fix_addtorque.cpp b/src/USER-MISC/fix_addtorque.cpp index ce59676595..b19f51a10b 100644 --- a/src/USER-MISC/fix_addtorque.cpp +++ b/src/USER-MISC/fix_addtorque.cpp @@ -48,6 +48,7 @@ FixAddTorque::FixAddTorque(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 1; extvector = 1; + energy_global_flag = 1; dynamic_group_allow = 1; respa_level_support = 1; ilevel_respa = 0; @@ -92,7 +93,6 @@ int FixAddTorque::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; diff --git a/src/USER-MISC/fix_ave_correlate_long.cpp b/src/USER-MISC/fix_ave_correlate_long.cpp index 2aafe9bac0..deeec0f1c7 100644 --- a/src/USER-MISC/fix_ave_correlate_long.cpp +++ b/src/USER-MISC/fix_ave_correlate_long.cpp @@ -702,8 +702,8 @@ double FixAveCorrelateLong::memory_usage() { // f: npair x numcorrelators x p double bytes = (4*npair*numcorrelators*p + 2*npair*numcorrelators + numcorrelators*p)*sizeof(double) - + numcorrelators*p*sizeof(unsigned long int) - + 2*numcorrelators*sizeof(unsigned int); + + (double)numcorrelators*p*sizeof(unsigned long int) + + 2.0*numcorrelators*sizeof(unsigned int); return bytes; } diff --git a/src/USER-MISC/fix_ffl.cpp b/src/USER-MISC/fix_ffl.cpp index d07e211021..eb9f033afc 100644 --- a/src/USER-MISC/fix_ffl.cpp +++ b/src/USER-MISC/fix_ffl.cpp @@ -46,20 +46,17 @@ enum {NO_FLIP, FLIP_RESCALE, FLIP_HARD, FLIP_SOFT}; /* syntax for fix_ffl: * fix nfix id-group ffl tau Tstart Tstop seed [flip_type] - * * */ /* ---------------------------------------------------------------------- */ - -FixFFL::FixFFL(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg) { - - +FixFFL::FixFFL(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) +{ if (narg < 7) error->all(FLERR,"Illegal fix ffl command. Expecting: fix " " ffl "); + ecouple_flag = 1; restart_peratom = 1; time_integrate = 1; scalar_flag = 1; @@ -121,7 +118,6 @@ FixFFL::FixFFL(LAMMPS *lmp, int narg, char **arg) : energy = 0.0; } - /* --- Frees up memory used by temporaries and buffers ------------------ */ FixFFL::~FixFFL() { @@ -139,14 +135,10 @@ FixFFL::~FixFFL() { int FixFFL::setmask() { int mask = 0; - mask |= INITIAL_INTEGRATE; mask |= FINAL_INTEGRATE; mask |= INITIAL_INTEGRATE_RESPA; mask |= FINAL_INTEGRATE_RESPA; - mask |= THERMO_ENERGY; - - return mask; } @@ -181,12 +173,8 @@ void FixFFL::init_ffl() { c1 = exp ( - gamma * 0.5 * dtv ); c2 = sqrt( (1.0 - c1*c1)* kT ); //without the mass term - - } - - /* ---------------------------------------------------------------------- */ void FixFFL::setup(int vflag) { @@ -199,6 +187,8 @@ void FixFFL::setup(int vflag) { } } +/* ---------------------------------------------------------------------- */ + void FixFFL::ffl_integrate() { double **v = atom->v; double *rmass = atom->rmass, smi, ismi; @@ -287,9 +277,10 @@ void FixFFL::ffl_integrate() { } energy += deltae*0.5*force->mvv2e; - } +/* ---------------------------------------------------------------------- */ + void FixFFL::initial_integrate(int /* vflag */) { double dtfm; @@ -333,6 +324,8 @@ void FixFFL::initial_integrate(int /* vflag */) { } } +/* ---------------------------------------------------------------------- */ + void FixFFL::final_integrate() { double dtfm; @@ -381,6 +374,7 @@ void FixFFL::final_integrate() { } } + /* ---------------------------------------------------------------------- */ void FixFFL::initial_integrate_respa(int vflag, int ilevel, int /* iloop */) { @@ -398,6 +392,8 @@ void FixFFL::initial_integrate_respa(int vflag, int ilevel, int /* iloop */) { } } +/* ---------------------------------------------------------------------- */ + void FixFFL::final_integrate_respa(int ilevel, int /* iloop */) { dtv = step_respa[ilevel]; @@ -407,6 +403,7 @@ void FixFFL::final_integrate_respa(int ilevel, int /* iloop */) { if (ilevel==nlevels_respa-1) ffl_integrate(); } +/* ---------------------------------------------------------------------- */ double FixFFL::compute_scalar() { @@ -429,7 +426,6 @@ void *FixFFL::extract(const char *str, int &dim) { return nullptr; } - /* ---------------------------------------------------------------------- Called when a change to the target temperature is requested mid-run ------------------------------------------------------------------------- */ @@ -459,7 +455,6 @@ double FixFFL::memory_usage() { return bytes; } - /* ---------------------------------------------------------------------- allocate local atom-based arrays ------------------------------------------------------------------------- */ diff --git a/src/USER-MISC/fix_flow_gauss.cpp b/src/USER-MISC/fix_flow_gauss.cpp index b1b4174352..3c913f8039 100644 --- a/src/USER-MISC/fix_flow_gauss.cpp +++ b/src/USER-MISC/fix_flow_gauss.cpp @@ -46,6 +46,8 @@ static const char cite_flow_gauss[] = "pages = {189--207}\n" "}\n\n"; +/* ---------------------------------------------------------------------- */ + FixFlowGauss::FixFlowGauss(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { @@ -61,6 +63,7 @@ FixFlowGauss::FixFlowGauss(LAMMPS *lmp, int narg, char **arg) : extscalar = 1; extvector = 1; size_vector = 3; + energy_global_flag = 1; global_freq = 1; //data available every timestep respa_level_support = 1; //default respa level=outermost level is set in init() @@ -79,6 +82,7 @@ FixFlowGauss::FixFlowGauss(LAMMPS *lmp, int narg, char **arg) : } // by default, do not compute work done + workflag=0; // process optional keyword @@ -109,7 +113,6 @@ int FixFlowGauss::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; return mask; } @@ -133,11 +136,12 @@ void FixFlowGauss::init() ------------------------------------------------------------------------- */ void FixFlowGauss::setup(int vflag) { - //need to compute work done if set fix_modify energy yes - if (thermo_energy) - workflag=1; + // need to compute work done if fix_modify energy yes is set + + if (thermo_energy) workflag = 1; + + // get total mass of group - //get total mass of group mTot=group->mass(igroup); if (mTot <= 0.0) error->all(FLERR,"Invalid group mass in fix flow/gauss"); @@ -154,6 +158,7 @@ void FixFlowGauss::setup(int vflag) /* ---------------------------------------------------------------------- this is where Gaussian dynamics constraint is applied ------------------------------------------------------------------------- */ + void FixFlowGauss::post_force(int /*vflag*/) { double **f = atom->f; @@ -218,9 +223,10 @@ void FixFlowGauss::post_force(int /*vflag*/) MPI_Allreduce(&peAdded,&pe_tmp,1,MPI_DOUBLE,MPI_SUM,world); pe_tot += pe_tmp; } - } +/* ---------------------------------------------------------------------- */ + void FixFlowGauss::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); @@ -230,6 +236,7 @@ void FixFlowGauss::post_force_respa(int vflag, int ilevel, int /*iloop*/) negative of work done by this fix This is only computed if requested, either with fix_modify energy yes, or with the energy keyword. Otherwise returns 0. ------------------------------------------------------------------------- */ + double FixFlowGauss::compute_scalar() { return -pe_tot*dt; diff --git a/src/USER-MISC/fix_gle.cpp b/src/USER-MISC/fix_gle.cpp index 1f0fd70012..a83ab0f9ce 100644 --- a/src/USER-MISC/fix_gle.cpp +++ b/src/USER-MISC/fix_gle.cpp @@ -30,7 +30,6 @@ #include "memory.h" #include "error.h" - using namespace LAMMPS_NS; using namespace FixConst; @@ -186,6 +185,8 @@ void MatrixExp(int n, const double* M, double* EM, int j=8, int k=8) } } +/* ---------------------------------------------------------------------- */ + FixGLE::FixGLE(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { @@ -193,6 +194,7 @@ FixGLE::FixGLE(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal fix gle command. Expecting: fix " " gle "); + ecouple_flag = 1; restart_peratom = 1; time_integrate = 1; @@ -395,9 +397,6 @@ int FixGLE::setmask() mask |= FINAL_INTEGRATE; mask |= INITIAL_INTEGRATE_RESPA; mask |= FINAL_INTEGRATE_RESPA; - mask |= THERMO_ENERGY; - - return mask; } @@ -499,7 +498,6 @@ void FixGLE::init_gles() return; } - /* ---------------------------------------------------------------------- */ void FixGLE::setup(int vflag) @@ -513,6 +511,8 @@ void FixGLE::setup(int vflag) } } +/* ---------------------------------------------------------------------- */ + void FixGLE::gle_integrate() { double **v = atom->v; diff --git a/src/USER-MISC/fix_imd.cpp b/src/USER-MISC/fix_imd.cpp index 0da5b29b62..8796de289e 100644 --- a/src/USER-MISC/fix_imd.cpp +++ b/src/USER-MISC/fix_imd.cpp @@ -919,7 +919,7 @@ void FixIMD::post_force(int /*vflag*/) if (imd_forces < length) { /* grow holding space for forces, if needed. */ memory->destroy(force_buf); - force_buf = (void *) memory->smalloc(length*size_one, + force_buf = (void *) memory->smalloc((bigint)length*size_one, "imd:force_buf"); } imd_forces = length; @@ -960,7 +960,7 @@ void FixIMD::post_force(int /*vflag*/) if (old_imd_forces < imd_forces) { /* grow holding space for forces, if needed. */ if (force_buf != nullptr) memory->sfree(force_buf); - force_buf = memory->smalloc(imd_forces*size_one, "imd:force_buf"); + force_buf = memory->smalloc((bigint)imd_forces*size_one, "imd:force_buf"); } } MPI_Bcast(force_buf, imd_forces*size_one, MPI_BYTE, 0, world); diff --git a/src/USER-MISC/fix_npt_cauchy.cpp b/src/USER-MISC/fix_npt_cauchy.cpp index cb7ca713a1..5d51114262 100644 --- a/src/USER-MISC/fix_npt_cauchy.cpp +++ b/src/USER-MISC/fix_npt_cauchy.cpp @@ -61,6 +61,7 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : if (narg < 4) error->all(FLERR,"Illegal fix npt/cauchy command"); dynamic_group_allow = 1; + ecouple_flag = 1; time_integrate = 1; scalar_flag = 1; vector_flag = 1; @@ -686,7 +687,6 @@ int FixNPTCauchy::setmask() int mask = 0; mask |= INITIAL_INTEGRATE; mask |= FINAL_INTEGRATE; - mask |= THERMO_ENERGY; mask |= INITIAL_INTEGRATE_RESPA; mask |= FINAL_INTEGRATE_RESPA; if (pre_exchange_flag) mask |= PRE_EXCHANGE; diff --git a/src/USER-MISC/fix_orient_eco.cpp b/src/USER-MISC/fix_orient_eco.cpp index 1aab846597..ce412e6fc9 100644 --- a/src/USER-MISC/fix_orient_eco.cpp +++ b/src/USER-MISC/fix_orient_eco.cpp @@ -65,21 +65,20 @@ FixOrientECO::FixOrientECO(LAMMPS *lmp, int narg, char **arg) : { if (lmp->citeme) lmp->citeme->add(cite_fix_orient_eco); - // get rank of this processor MPI_Comm_rank(world, &me); - // check for illegal command if (narg != 7) error->all(FLERR, "Illegal fix orient/eco command"); - // set fix flags scalar_flag = 1; // computes scalar global_freq = 1; // values can be computed at every timestep extscalar = 1; // scalar scales with # of atoms peratom_flag = 1; // quantities are per atom quantities size_peratom_cols = 2; // # of per atom quantities - peratom_freq = 1; // + peratom_freq = 1; + energy_global_flag = 1; // parse input parameters + u_0 = utils::numeric(FLERR, arg[3],false,lmp); sign = (u_0 >= 0.0 ? 1 : -1); eta = utils::numeric(FLERR, arg[4],false,lmp); @@ -87,6 +86,7 @@ FixOrientECO::FixOrientECO(LAMMPS *lmp, int narg, char **arg) : // read reference orientations from file // work on rank 0 only + int n = strlen(arg[6]) + 1; dir_filename = new char[n]; strcpy(dir_filename, arg[6]); @@ -151,7 +151,6 @@ FixOrientECO::~FixOrientECO() { int FixOrientECO::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; return mask; } diff --git a/src/USER-MISC/fix_pimd.cpp b/src/USER-MISC/fix_pimd.cpp index 5571f1cf35..1a48738cbe 100644 --- a/src/USER-MISC/fix_pimd.cpp +++ b/src/USER-MISC/fix_pimd.cpp @@ -121,7 +121,6 @@ FixPIMD::FixPIMD(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) peratom_freq = 1; global_freq = 1; - thermo_energy = 1; vector_flag = 1; size_vector = 2; extvector = 1; @@ -726,9 +725,7 @@ void FixPIMD::unpack_forward_comm(int n, int first, double *buf) double FixPIMD::memory_usage() { - double bytes = 0; - bytes = atom->nmax * size_peratom_cols * sizeof(double); - return bytes; + return (double)atom->nmax * size_peratom_cols * sizeof(double); } /* ---------------------------------------------------------------------- */ diff --git a/src/USER-MISC/fix_rhok.cpp b/src/USER-MISC/fix_rhok.cpp index 416adc2165..f546b9a814 100644 --- a/src/USER-MISC/fix_rhok.cpp +++ b/src/USER-MISC/fix_rhok.cpp @@ -48,21 +48,19 @@ static const char cite_fix_rhok[] = FixRhok::FixRhok( LAMMPS* inLMP, int inArgc, char** inArgv ) : Fix( inLMP, inArgc, inArgv ) { - if (lmp->citeme) lmp->citeme->add(cite_fix_rhok); // Check arguments - if (inArgc != 8) - error->all(FLERR,"Illegal fix rhoKUmbrella command" ); + if (inArgc != 8) error->all(FLERR,"Illegal fix rhoKUmbrella command" ); // Set up fix flags scalar_flag = 1; // have compute_scalar vector_flag = 1; // have compute_vector... size_vector = 3; // ...with this many components global_freq = 1; // whose value can be computed at every timestep - thermo_energy = 1; // this fix changes system's potential energy extscalar = 0; // but the deltaPE might not scale with # of atoms extvector = 0; // neither do the components of the vector + energy_global_flag = 1; // Parse fix options int n[3]; @@ -79,29 +77,22 @@ FixRhok::FixRhok( LAMMPS* inLMP, int inArgc, char** inArgv ) mRhoK0 = utils::numeric(FLERR,inArgv[7],false,lmp); } -// Methods that this fix implements -// -------------------------------- +/* ---------------------------------------------------------------------- */ // Tells LAMMPS where this fix should act -int -FixRhok::setmask() +int FixRhok::setmask() { int mask = 0; - - // This fix modifies forces... mask |= POST_FORCE; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; - - // ...and potential energies - mask |= THERMO_ENERGY; - return mask; } +/* ---------------------------------------------------------------------- */ + // Initializes the fix at the beginning of a run -void -FixRhok::init() +void FixRhok::init() { // RESPA boilerplate if (strcmp( update->integrate_style, "respa" ) == 0) @@ -121,9 +112,10 @@ FixRhok::init() mSqrtNThis = sqrt( mNThis ); } +/* ---------------------------------------------------------------------- */ + // Initial application of the fix to a system (when doing MD) -void -FixRhok::setup( int inVFlag ) +void FixRhok::setup( int inVFlag ) { if (strcmp( update->integrate_style, "verlet" ) == 0) post_force( inVFlag ); @@ -135,16 +127,20 @@ FixRhok::setup( int inVFlag ) } } +/* ---------------------------------------------------------------------- */ + // Initial application of the fix to a system (when doing minimization) -void -FixRhok::min_setup( int inVFlag ) + +void FixRhok::min_setup( int inVFlag ) { post_force( inVFlag ); } +/* ---------------------------------------------------------------------- */ + // Modify the forces calculated in the main force loop of ordinary MD -void -FixRhok::post_force( int /*inVFlag*/ ) + +void FixRhok::post_force( int /*inVFlag*/ ) { double **x = atom->x; double **f = atom->f; @@ -204,24 +200,27 @@ FixRhok::post_force( int /*inVFlag*/ ) } } +/* ---------------------------------------------------------------------- */ + // Forces in RESPA loop -void -FixRhok::post_force_respa( int inVFlag, int inILevel, int /*inILoop*/ ) +void FixRhok::post_force_respa( int inVFlag, int inILevel, int /*inILoop*/ ) { if (inILevel == mNLevelsRESPA - 1) post_force( inVFlag ); } +/* ---------------------------------------------------------------------- */ + // Forces in minimization loop -void -FixRhok::min_post_force( int inVFlag ) +void FixRhok::min_post_force( int inVFlag ) { post_force( inVFlag ); } +/* ---------------------------------------------------------------------- */ + // Compute the change in the potential energy induced by this fix -double -FixRhok::compute_scalar() +double FixRhok::compute_scalar() { double rhoK = sqrt( mRhoKGlobal[0]*mRhoKGlobal[0] + mRhoKGlobal[1]*mRhoKGlobal[1] ); @@ -229,9 +228,10 @@ FixRhok::compute_scalar() return 0.5 * mKappa * (rhoK - mRhoK0) * (rhoK - mRhoK0); } +/* ---------------------------------------------------------------------- */ + // Compute the ith component of the vector -double -FixRhok::compute_vector( int inI ) +double FixRhok::compute_vector( int inI ) { if (inI == 0) return mRhoKGlobal[0]; // Real part diff --git a/src/USER-MISC/fix_smd.cpp b/src/USER-MISC/fix_smd.cpp index 828ceda0ed..8ea1beac71 100644 --- a/src/USER-MISC/fix_smd.cpp +++ b/src/USER-MISC/fix_smd.cpp @@ -58,7 +58,7 @@ FixSMD::FixSMD(LAMMPS *lmp, int narg, char **arg) : extvector = 1; respa_level_support = 1; ilevel_respa = 0; - virial_flag = 1; + virial_global_flag = virial_peratom_flag = 1; int argoffs=3; if (strcmp(arg[argoffs],"cvel") == 0) { @@ -182,10 +182,9 @@ void FixSMD::setup(int vflag) void FixSMD::post_force(int vflag) { - // energy and virial setup + // virial setup - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); if (styleflag & SMD_TETHER) smd_tether(); else smd_couple(); @@ -276,7 +275,7 @@ void FixSMD::smd_tether() v[3] = -fx*massfrac*unwrap[1]; v[4] = -fx*massfrac*unwrap[2]; v[5] = -fy*massfrac*unwrap[2]; - v_tally(i, v); + v_tally(i,v); } } } else { @@ -297,7 +296,7 @@ void FixSMD::smd_tether() v[3] = -fx*massfrac*unwrap[1]; v[4] = -fx*massfrac*unwrap[2]; v[5] = -fy*massfrac*unwrap[2]; - v_tally(i, v); + v_tally(i,v); } } } diff --git a/src/USER-MISC/fix_ti_spring.cpp b/src/USER-MISC/fix_ti_spring.cpp index ce30497295..766b9df5eb 100644 --- a/src/USER-MISC/fix_ti_spring.cpp +++ b/src/USER-MISC/fix_ti_spring.cpp @@ -64,6 +64,7 @@ FixTISpring::FixTISpring(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 1; extvector = 1; + energy_global_flag = 1; // disallow resetting the time step, while this fix is defined time_depend = 1; @@ -133,7 +134,6 @@ int FixTISpring::setmask() mask |= POST_FORCE; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; - mask |= THERMO_ENERGY; return mask; } diff --git a/src/USER-MISC/fix_ttm_mod.cpp b/src/USER-MISC/fix_ttm_mod.cpp index 9cac1c02b2..7056ad6a00 100644 --- a/src/USER-MISC/fix_ttm_mod.cpp +++ b/src/USER-MISC/fix_ttm_mod.cpp @@ -136,7 +136,7 @@ FixTTMMod::FixTTMMod(LAMMPS *lmp, int narg, char **arg) : gfactor1 = new double[atom->ntypes+1]; gfactor2 = new double[atom->ntypes+1]; // allocate 3d grid variables - total_nnodes = nxnodes*nynodes*nznodes; + total_nnodes = (bigint)nxnodes*nynodes*nznodes; memory->create(nsum,nxnodes,nynodes,nznodes,"ttm/mod:nsum"); memory->create(nsum_all,nxnodes,nynodes,nznodes,"ttm/mod:nsum_all"); memory->create(sum_vsq,nxnodes,nynodes,nznodes,"ttm/mod:sum_vsq"); diff --git a/src/USER-MISC/fix_wall_ees.cpp b/src/USER-MISC/fix_wall_ees.cpp index e8e307224f..8adac48263 100644 --- a/src/USER-MISC/fix_wall_ees.cpp +++ b/src/USER-MISC/fix_wall_ees.cpp @@ -84,14 +84,12 @@ void FixWallEES::wall_particle(int m, int which, double coord) double **f = atom->f; double **tor = atom->torque; - avec = (AtomVecEllipsoid *) atom->style_match("ellipsoid"); AtomVecEllipsoid::Bonus *bonus = avec->bonus; int *ellipsoid = atom->ellipsoid; int *mask = atom->mask; int nlocal = atom->nlocal; - int dim = which / 2; int side = which % 2; if (side == 0) side = -1; diff --git a/src/USER-MISC/fix_wall_region_ees.cpp b/src/USER-MISC/fix_wall_region_ees.cpp index ab475ffb9b..44067b0742 100644 --- a/src/USER-MISC/fix_wall_region_ees.cpp +++ b/src/USER-MISC/fix_wall_region_ees.cpp @@ -38,12 +38,14 @@ FixWallRegionEES::FixWallRegionEES(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { if (narg != 7) error->all(FLERR,"Illegal fix wall/region/ees command"); + scalar_flag = 1; vector_flag = 1; size_vector = 3; global_freq = 1; extscalar = 1; extvector = 1; + energy_global_flag = 1; // parse args @@ -77,7 +79,6 @@ int FixWallRegionEES::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; diff --git a/src/USER-MISC/pair_agni.h b/src/USER-MISC/pair_agni.h index 58adc2002d..6fba506d04 100644 --- a/src/USER-MISC/pair_agni.h +++ b/src/USER-MISC/pair_agni.h @@ -50,7 +50,7 @@ class PairAGNI : public Pair { int *elem2param; // mapping from element pairs to parameters int *map; // mapping from atom types to elements int nparams; // # of stored parameter sets - int atomic_feature_version; // version of fingerprint + int atomic_feature_version; // version of fingerprint Param *params; // parameter set for an I-J interaction virtual void allocate(); void read_file(char *); diff --git a/src/USER-MISC/pair_cosine_squared.cpp b/src/USER-MISC/pair_cosine_squared.cpp index 1af0f00c32..684d405f2b 100644 --- a/src/USER-MISC/pair_cosine_squared.cpp +++ b/src/USER-MISC/pair_cosine_squared.cpp @@ -344,11 +344,8 @@ void PairCosineSquared::compute(int eflag, int vflag) double r, rsq, r2inv, r6inv; double factor_lj, force_lj, force_cos, cosone; + ev_init(eflag, vflag); evdwl = 0.0; - if (eflag || vflag) - ev_setup(eflag, vflag); - else - evflag = vflag_fdotr = 0; double **x = atom->x; double **f = atom->f; diff --git a/src/USER-MISC/pair_coul_slater_cut.cpp b/src/USER-MISC/pair_coul_slater_cut.cpp index b4f8bad191..bb32cf1c18 100644 --- a/src/USER-MISC/pair_coul_slater_cut.cpp +++ b/src/USER-MISC/pair_coul_slater_cut.cpp @@ -40,9 +40,8 @@ void PairCoulSlaterCut::compute(int eflag, int vflag) double rsq,r2inv,r,rinv,forcecoul,factor_coul,bracket_term; int *ilist,*jlist,*numneigh,**firstneigh; + ev_init(eflag,vflag); ecoul = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; double **x = atom->x; double **f = atom->f; diff --git a/src/USER-MISC/pair_coul_slater_long.cpp b/src/USER-MISC/pair_coul_slater_long.cpp index 497520a32d..9c2e9780df 100644 --- a/src/USER-MISC/pair_coul_slater_long.cpp +++ b/src/USER-MISC/pair_coul_slater_long.cpp @@ -59,7 +59,6 @@ PairCoulSlaterLong::~PairCoulSlaterLong() memory->destroy(scale); } - //if (ftable) free_tables(); } } @@ -69,17 +68,14 @@ void PairCoulSlaterLong::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,ecoul,fpair; -// double fraction,table; double r,r2inv,forcecoul,factor_coul; double grij,expm2,prefactor,t,erfc; int *ilist,*jlist,*numneigh,**firstneigh; double rsq; double slater_term; -// int itable; + ev_init(eflag,vflag); ecoul = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; double **x = atom->x; double **f = atom->f; diff --git a/src/USER-MISC/pair_e3b.cpp b/src/USER-MISC/pair_e3b.cpp index ae65d68d89..419cd29a2b 100644 --- a/src/USER-MISC/pair_e3b.cpp +++ b/src/USER-MISC/pair_e3b.cpp @@ -97,13 +97,12 @@ void PairE3B::compute(int eflag, int vflag) if (natoms != atom->natoms) error->all(FLERR,"pair E3B requires a fixed number of atoms"); + ev_init(eflag,vflag); //clear sumExp array memset(sumExp,0.0,nbytes); evdwl = 0.0; pvector[0]=pvector[1]=pvector[2]=pvector[3]=0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; double **x = atom->x; double **f = atom->f; diff --git a/src/USER-MISC/pair_edip_multi.cpp b/src/USER-MISC/pair_edip_multi.cpp index 312b829ede..c0969831b9 100644 --- a/src/USER-MISC/pair_edip_multi.cpp +++ b/src/USER-MISC/pair_edip_multi.cpp @@ -72,7 +72,7 @@ static inline void costheta_d(const double *dr_ij, const double r_ij, /* ---------------------------------------------------------------------- */ -PairEDIPMulti::PairEDIPMulti(LAMMPS *lmp) : Pair(lmp) +PairEDIPMulti::PairEDIPMulti(LAMMPS *lmp) : Pair(lmp), preForceCoord(nullptr) { if (lmp->citeme) lmp->citeme->add(cite_pair_edip); @@ -105,9 +105,8 @@ PairEDIPMulti::~PairEDIPMulti() memory->destroy(setflag); memory->destroy(cutsq); delete [] map; - - deallocatePreLoops(); } + deallocatePreLoops(); } /* ---------------------------------------------------------------------- */ @@ -603,8 +602,9 @@ void PairEDIPMulti::coeff(int narg, char **arg) if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); - // allocate tables and internal structures + // (re-)allocate tables and internal structures + deallocatePreLoops(); allocatePreLoops(); } diff --git a/src/USER-MISC/pair_gauss_cut.cpp b/src/USER-MISC/pair_gauss_cut.cpp index 80101b8f97..85f4446358 100644 --- a/src/USER-MISC/pair_gauss_cut.cpp +++ b/src/USER-MISC/pair_gauss_cut.cpp @@ -392,8 +392,8 @@ double PairGaussCut::memory_usage() double bytes = Pair::memory_usage(); - bytes += (double)7*((n+1)*(n+1) * sizeof(double) + (n+1)*sizeof(double *)); - bytes += (double)1*((n+1)*(n+1) * sizeof(int) + (n+1)*sizeof(int *)); + bytes += 7.0*((n+1.0)*(n+1.0) * sizeof(double) + (n+1.0)*sizeof(double *)); + bytes += 1.0*((n+1.0)*(n+1.0) * sizeof(int) + (n+1.0)*sizeof(int *)); return bytes; } diff --git a/src/USER-MISC/pair_local_density.cpp b/src/USER-MISC/pair_local_density.cpp index ec3c41a47b..3e5af5f7c3 100644 --- a/src/USER-MISC/pair_local_density.cpp +++ b/src/USER-MISC/pair_local_density.cpp @@ -139,11 +139,9 @@ void PairLocalDensity::compute(int eflag, int vflag) double p, *coeff; int *ilist,*jlist,*numneigh,**firstneigh; + ev_init(eflag,vflag); phi = uLD = evdwl = fpair = rsqinv = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = eflag_global = eflag_atom = 0; - /* localrho = LD at each atom fp = derivative of embedding energy at each atom for each LD potential uLD = embedding energy of each atom due to each LD potential*/ diff --git a/src/USER-MISC/pair_wf_cut.cpp b/src/USER-MISC/pair_wf_cut.cpp index d29ae2a4fe..e62217aad1 100644 --- a/src/USER-MISC/pair_wf_cut.cpp +++ b/src/USER-MISC/pair_wf_cut.cpp @@ -70,9 +70,8 @@ void PairWFCut::compute(int eflag, int vflag) double forcenm,rminv, rm, rn; int *ilist,*jlist,*numneigh,**firstneigh; + ev_init(eflag,vflag); evdwl = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; double **x = atom->x; double **f = atom->f; diff --git a/src/USER-OMP/fix_rigid_nh_omp.cpp b/src/USER-OMP/fix_rigid_nh_omp.cpp index 8a8b649d92..5a1e6ca25e 100644 --- a/src/USER-OMP/fix_rigid_nh_omp.cpp +++ b/src/USER-OMP/fix_rigid_nh_omp.cpp @@ -201,8 +201,7 @@ void FixRigidNHOMP::initial_integrate(int vflag) // virial setup before call to set_xv - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // remap simulation box by 1/2 step diff --git a/src/USER-OMP/fix_rigid_omp.cpp b/src/USER-OMP/fix_rigid_omp.cpp index 07ddb06233..99e967f472 100644 --- a/src/USER-OMP/fix_rigid_omp.cpp +++ b/src/USER-OMP/fix_rigid_omp.cpp @@ -86,8 +86,7 @@ void FixRigidOMP::initial_integrate(int vflag) // virial setup before call to set_xv - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // set coords/orient and velocity/rotation of atoms in rigid bodies // from quarternion and omega diff --git a/src/USER-OMP/fix_rigid_small_omp.cpp b/src/USER-OMP/fix_rigid_small_omp.cpp index bc09aa101a..9da8958305 100644 --- a/src/USER-OMP/fix_rigid_small_omp.cpp +++ b/src/USER-OMP/fix_rigid_small_omp.cpp @@ -25,7 +25,6 @@ #include "comm.h" #include "domain.h" - #if defined(_OPENMP) #include #endif @@ -85,8 +84,7 @@ void FixRigidSmallOMP::initial_integrate(int vflag) // virial setup before call to set_xv - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // forward communicate updated info of all bodies diff --git a/src/USER-OMP/pair_buck_long_coul_long_omp.cpp b/src/USER-OMP/pair_buck_long_coul_long_omp.cpp index 15fb9e69f9..1da7c6db60 100644 --- a/src/USER-OMP/pair_buck_long_coul_long_omp.cpp +++ b/src/USER-OMP/pair_buck_long_coul_long_omp.cpp @@ -367,9 +367,7 @@ void PairBuckLongCoulLongOMP::compute_middle() void PairBuckLongCoulLongOMP::compute_outer(int eflag, int vflag) { - if (eflag || vflag) { - ev_setup(eflag,vflag); - } else evflag = vflag_fdotr = 0; + ev_init(eflag,vflag); const int order1 = ewald_order&(1<<1); const int order6 = ewald_order&(1<<6); diff --git a/src/USER-OMP/pair_lj_long_coul_long_omp.cpp b/src/USER-OMP/pair_lj_long_coul_long_omp.cpp index ca66f3c1c0..980efb7c84 100644 --- a/src/USER-OMP/pair_lj_long_coul_long_omp.cpp +++ b/src/USER-OMP/pair_lj_long_coul_long_omp.cpp @@ -366,9 +366,7 @@ void PairLJLongCoulLongOMP::compute_middle() void PairLJLongCoulLongOMP::compute_outer(int eflag, int vflag) { - if (eflag || vflag) { - ev_setup(eflag,vflag); - } else evflag = vflag_fdotr = 0; + ev_init(eflag,vflag); const int order1 = ewald_order&(1<<1); const int order6 = ewald_order&(1<<6); diff --git a/src/USER-OMP/pair_lj_long_tip4p_long_omp.cpp b/src/USER-OMP/pair_lj_long_tip4p_long_omp.cpp index 4dadd0a1ea..bf8ac76740 100644 --- a/src/USER-OMP/pair_lj_long_tip4p_long_omp.cpp +++ b/src/USER-OMP/pair_lj_long_tip4p_long_omp.cpp @@ -425,9 +425,7 @@ void PairLJLongTIP4PLongOMP::compute_middle() void PairLJLongTIP4PLongOMP::compute_outer(int eflag, int vflag) { - if (eflag || vflag) { - ev_setup(eflag,vflag); - } else evflag = vflag_fdotr = 0; + ev_init(eflag,vflag); const int order1 = ewald_order&(1<<1); const int order6 = ewald_order&(1<<6); diff --git a/src/USER-OMP/reaxc_forces_omp.cpp b/src/USER-OMP/reaxc_forces_omp.cpp index 7fe6a41e9d..5eb939cf8c 100644 --- a/src/USER-OMP/reaxc_forces_omp.cpp +++ b/src/USER-OMP/reaxc_forces_omp.cpp @@ -145,7 +145,7 @@ void Compute_Total_ForceOMP( reax_system *system, control_params *control, int natoms = system->N; int nthreads = control->nthreads; - long totalReductionSize = system->N * nthreads; + long totalReductionSize = (bigint)system->N * nthreads; reax_list *bonds = (*lists) + BONDS; #if defined(_OPENMP) @@ -381,8 +381,8 @@ void Init_Forces_noQEq_OMP( reax_system *system, control_params *control, #else int tid = 0; #endif - long reductionOffset = system->N * tid; - long totalReductionSize = system->N * nthreads; + long reductionOffset = (bigint)system->N * tid; + long totalReductionSize = (bigint)system->N * nthreads; #if defined(_OPENMP) #pragma omp for schedule(dynamic,50) reduction(+:num_bonds) diff --git a/src/USER-PHONON/fix_phonon.cpp b/src/USER-PHONON/fix_phonon.cpp index 455ca80b12..30fb7baad5 100644 --- a/src/USER-PHONON/fix_phonon.cpp +++ b/src/USER-PHONON/fix_phonon.cpp @@ -723,7 +723,7 @@ void FixPhonon::postprocess( ) fwrite(&nucell, sizeof(int), 1, fp_bin); fwrite(&boltz, sizeof(double), 1, fp_bin); - fwrite(Phi_all[0],sizeof(double),ntotal*fft_dim2*2,fp_bin); + fwrite(Phi_all[0],sizeof(double),(bigint)ntotal*fft_dim2*2,fp_bin); fwrite(&TempAve, sizeof(double),1, fp_bin); fwrite(&basevec[0], sizeof(double),9, fp_bin); diff --git a/src/USER-PLUMED/fix_plumed.cpp b/src/USER-PLUMED/fix_plumed.cpp index 779a9b93d8..1217237e19 100644 --- a/src/USER-PLUMED/fix_plumed.cpp +++ b/src/USER-PLUMED/fix_plumed.cpp @@ -209,9 +209,9 @@ FixPlumed::FixPlumed(LAMMPS *lmp, int narg, char **arg) : double dt=update->dt; p->cmd("setTimestep",&dt); - virial_flag=1; - thermo_virial=1; scalar_flag = 1; + energy_global_flag = virial_global_flag = 1; + thermo_energy = thermo_virial = 1; // This is the real initialization: @@ -287,7 +287,6 @@ int FixPlumed::setmask() // set with a bitmask how and when apply the force from plumed int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; diff --git a/src/USER-QTB/fix_qbmsst.cpp b/src/USER-QTB/fix_qbmsst.cpp index b1a4f39382..b221ecbca8 100644 --- a/src/USER-QTB/fix_qbmsst.cpp +++ b/src/USER-QTB/fix_qbmsst.cpp @@ -21,7 +21,6 @@ #include #include - #include "atom.h" #include "force.h" #include "update.h" @@ -35,8 +34,6 @@ #include "kspace.h" #include "math_const.h" - - using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; @@ -44,8 +41,8 @@ using namespace MathConst; /* ---------------------------------------------------------------------- read parameters ------------------------------------------------------------------------- */ -FixQBMSST::FixQBMSST(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg) + +FixQBMSST::FixQBMSST(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { if (narg < 5) error->all(FLERR,"Illegal fix qbmsst command"); @@ -66,6 +63,7 @@ FixQBMSST::FixQBMSST(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Illegal fix qbmsst command"); // default parameters + global_freq = 1; extscalar = 1; extvector = 0; @@ -75,6 +73,7 @@ FixQBMSST::FixQBMSST(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; vector_flag = 1; size_vector = 5; + ecouple_flag = 1; qmass = 1.0e1; mu = 0.0; @@ -96,6 +95,7 @@ FixQBMSST::FixQBMSST(LAMMPS *lmp, int narg, char **arg) : qtb_set = 0; // reading parameters + int iarg = 5; while (iarg < narg) { if (strcmp(arg[iarg],"q") == 0) { @@ -282,6 +282,7 @@ FixQBMSST::FixQBMSST(LAMMPS *lmp, int narg, char **arg) : /* ---------------------------------------------------------------------- release memories ------------------------------------------------------------------------- */ + FixQBMSST::~FixQBMSST() { delete [] rfix; @@ -309,18 +310,19 @@ FixQBMSST::~FixQBMSST() /* ---------------------------------------------------------------------- setmask ------------------------------------------------------------------------- */ + int FixQBMSST::setmask() { int mask = 0; mask |= INITIAL_INTEGRATE; mask |= FINAL_INTEGRATE; - mask |= THERMO_ENERGY; return mask; } /* ---------------------------------------------------------------------- fix initiation ------------------------------------------------------------------------- */ + void FixQBMSST::init() { // copy parameters from other classes @@ -929,6 +931,7 @@ int FixQBMSST::modify_param(int narg, char **arg) /* ---------------------------------------------------------------------- compute scalar ------------------------------------------------------------------------- */ + double FixQBMSST::compute_scalar() { // compute new pressure and volume. @@ -1045,7 +1048,6 @@ double FixQBMSST::compute_etotal() { double epot,ekin,etot; epot = pe->compute_scalar(); - if (thermo_energy) epot -= compute_scalar(); ekin = temperature->compute_scalar(); ekin *= 0.5 * temperature->dof * force->boltz; etot = epot+ekin; @@ -1057,12 +1059,12 @@ double FixQBMSST::compute_etotal() ------------------------------------------------------------------------- */ double FixQBMSST::compute_egrand() { - double epot,ekin,etot; + double epot,ekin,ecouple,etot; epot = pe->compute_scalar(); - if (!thermo_energy) epot += compute_scalar(); ekin = temperature->compute_scalar(); ekin *= 0.5 * temperature->dof * force->boltz; - etot = epot+ekin; + ecouple = compute_scalar(); + etot = epot + ekin + ecouple; return etot; } diff --git a/src/USER-QTB/fix_qtb.cpp b/src/USER-QTB/fix_qtb.cpp index f97d142099..4c79fbeaae 100644 --- a/src/USER-QTB/fix_qtb.cpp +++ b/src/USER-QTB/fix_qtb.cpp @@ -33,8 +33,6 @@ #include "memory.h" #include "error.h" - - using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; @@ -48,9 +46,6 @@ FixQTB::FixQTB(LAMMPS *lmp, int narg, char **arg) : if (narg < 3) error->all(FLERR,"Illegal fix qtb command"); // default parameters - global_freq = 1; - extscalar = 1; - nevery = 1; t_target = 300.0; t_period = 1.0; @@ -147,7 +142,6 @@ int FixQTB::setmask() int mask = 0; mask |= POST_FORCE; mask |= POST_FORCE_RESPA; - mask |= THERMO_ENERGY; return mask; } diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 86e7977d9b..3098a1bd67 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -88,6 +88,9 @@ enum{ATOM,FRAG}; // keyword values that accept variables as input enum{NEVERY,RMIN,RMAX,PROB}; +// flag for one-proc vs shared reaction sites +enum{LOCAL,GLOBAL}; + // values for molecule_keyword enum{OFF,INTER,INTRA}; @@ -208,6 +211,9 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : memory->create(limit_duration,nreacts,"bond/react:limit_duration"); memory->create(stabilize_steps_flag,nreacts,"bond/react:stabilize_steps_flag"); memory->create(custom_charges_fragid,nreacts,"bond/react:custom_charges_fragid"); + memory->create(create_atoms_flag,nreacts,"bond/react:create_atoms_flag"); + memory->create(modify_create_fragid,nreacts,"bond/react:modify_create_fragid"); + memory->create(overlapsq,nreacts,"bond/react:overlapsq"); memory->create(molecule_keyword,nreacts,"bond/react:molecule_keyword"); memory->create(nconstraints,nreacts,"bond/react:nconstraints"); memory->create(constraintstr,nreacts,MAXLINE,"bond/react:constraintstr"); @@ -231,6 +237,9 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : max_rxn[i] = INT_MAX; stabilize_steps_flag[i] = 0; custom_charges_fragid[i] = -1; + create_atoms_flag[i] = 0; + modify_create_fragid[i] = -1; + overlapsq[i] = 0; molecule_keyword[i] = OFF; nconstraints[i] = 0; // set default limit duration to 60 timesteps @@ -396,6 +405,28 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : else if (strcmp(arg[iarg+1],"intra") == 0) molecule_keyword[rxn] = INTRA; else error->one(FLERR,"Bond/react: Illegal option for 'molecule' keyword"); iarg += 2; + } else if (strcmp(arg[iarg],"modify_create") == 0) { + if (iarg++ > narg) error->all(FLERR,"Illegal fix bond/react command: " + "'modify_create' has too few arguments"); + while (iarg < narg && strcmp(arg[iarg],"react") != 0 ) { + if (strcmp(arg[iarg],"fit") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " + "'modify_create' has too few arguments"); + if (strcmp(arg[iarg+1],"all") == 0) modify_create_fragid[rxn] = -1; //default + else { + modify_create_fragid[rxn] = atom->molecules[reacted_mol[rxn]]->findfragment(arg[iarg+1]); + if (modify_create_fragid[rxn] < 0) error->one(FLERR,"Bond/react: Molecule fragment for " + "'modify_create' keyword does not exist"); + } + iarg += 2; + } else if (strcmp(arg[iarg],"overlap") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " + "'modify_create' has too few arguments"); + overlapsq[rxn] = utils::numeric(FLERR,arg[iarg+1],false,lmp); + overlapsq[rxn] *= overlapsq[rxn]; + iarg += 2; + } else break; + } } else error->all(FLERR,"Illegal fix bond/react command: unknown keyword"); } } @@ -412,6 +443,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : memory->create(landlocked_atoms,max_natoms,nreacts,"bond/react:landlocked_atoms"); memory->create(custom_charges,max_natoms,nreacts,"bond/react:custom_charges"); memory->create(delete_atoms,max_natoms,nreacts,"bond/react:delete_atoms"); + memory->create(create_atoms,max_natoms,nreacts,"bond/react:create_atoms"); memory->create(chiral_atoms,max_natoms,6,nreacts,"bond/react:chiral_atoms"); for (int j = 0; j < nreacts; j++) @@ -419,9 +451,15 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : edge[i][j] = 0; custom_charges[i][j] = 1; // update all partial charges by default delete_atoms[i][j] = 0; + create_atoms[i][j] = 0; for (int k = 0; k < 6; k++) { chiral_atoms[i][k][j] = 0; } + // default equivalences to their own mol index + // all but created atoms will be updated + for (int m = 0; m < 2; m++) { + equivalences[i][m][j] = i+1; + } } // read all map files afterward @@ -431,11 +469,13 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : twomol = atom->molecules[reacted_mol[i]]; onemol->check_attributes(0); twomol->check_attributes(0); - if (onemol->natoms != twomol->natoms) - error->all(FLERR,"Bond/react: Reaction templates must contain the same number of atoms"); get_molxspecials(); read(i); fclose(fp); + if (ncreate == 0 && onemol->natoms != twomol->natoms) + error->all(FLERR,"Bond/react: Reaction templates must contain the same number of atoms"); + else if (ncreate > 0 && onemol->natoms + ncreate != twomol->natoms) + error->all(FLERR,"Bond/react: Incorrect number of created atoms"); iatomtype[i] = onemol->type[ibonding[i]-1]; jatomtype[i] = onemol->type[jbonding[i]-1]; find_landlocked_atoms(i); @@ -498,10 +538,10 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : partner = finalpartner = nullptr; distsq = nullptr; probability = nullptr; - maxcreate = 0; - created = nullptr; - ncreate = nullptr; - allncreate = 0; + maxattempt = 0; + attempt = nullptr; + nattempt = nullptr; + allnattempt = 0; local_num_mega = 0; ghostly_num_mega = 0; restore = nullptr; @@ -543,18 +583,20 @@ FixBondReact::~FixBondReact() memory->destroy(partner); memory->destroy(finalpartner); - memory->destroy(ncreate); + memory->destroy(nattempt); memory->destroy(distsq); memory->destroy(probability); - memory->destroy(created); + memory->destroy(attempt); memory->destroy(edge); memory->destroy(equivalences); memory->destroy(reverse_equiv); memory->destroy(landlocked_atoms); memory->destroy(custom_charges); memory->destroy(delete_atoms); + memory->destroy(create_atoms); memory->destroy(chiral_atoms); + memory->destroy(rxn_name); memory->destroy(nevery); memory->destroy(cutsq); memory->destroy(unreacted_mol); @@ -572,7 +614,10 @@ FixBondReact::~FixBondReact() memory->destroy(molecule_keyword); memory->destroy(constraints); memory->destroy(nconstraints); - // need to delete rxn_name and constraintstr + memory->destroy(constraintstr); + memory->destroy(create_atoms_flag); + memory->destroy(modify_create_fragid); + memory->destroy(overlapsq); memory->destroy(iatomtype); memory->destroy(jatomtype); @@ -777,7 +822,7 @@ void FixBondReact::init() // check cutoff for iatomtype,jatomtype for (int i = 0; i < nreacts; i++) { - if (closeneigh[i] == -1) // indicates will search for non-bonded bonding atoms + if (!utils::strmatch(force->pair_style,"^hybrid")) if (force->pair == nullptr || cutsq[i][1] > force->pair->cutsq[iatomtype[i]][jatomtype[i]]) error->all(FLERR,"Bond/react: Fix bond/react cutoff is longer than pairwise cutoff"); } @@ -844,19 +889,19 @@ void FixBondReact::post_integrate() memory->destroy(partner); memory->destroy(finalpartner); memory->destroy(distsq); - memory->destroy(ncreate); + memory->destroy(nattempt); memory->destroy(probability); nmax = atom->nmax; memory->create(partner,nmax,"bond/react:partner"); memory->create(finalpartner,nmax,"bond/react:finalpartner"); memory->create(distsq,nmax,2,"bond/react:distsq"); - memory->create(ncreate,nreacts,"bond/react:ncreate"); + memory->create(nattempt,nreacts,"bond/react:nattempt"); memory->create(probability,nmax,"bond/react:probability"); } // reset create counts for (int i = 0; i < nreacts; i++) { - ncreate[i] = 0; + nattempt[i] = 0; } int nlocal = atom->nlocal; @@ -938,7 +983,7 @@ void FixBondReact::post_integrate() // and probability constraint is satisfied // if other atom is owned by another proc, it should do same thing - int temp_ncreate = 0; + int temp_nattempt = 0; for (int i = 0; i < nlocal; i++) { if (partner[i] == 0) { continue; @@ -959,17 +1004,17 @@ void FixBondReact::post_integrate() } } - // store final created bond partners and count the rxn possibility once + // store final bond partners and count the rxn possibility once finalpartner[i] = tag[j]; finalpartner[j] = tag[i]; - if (tag[i] < tag[j]) temp_ncreate++; + if (tag[i] < tag[j]) temp_nattempt++; } // cycle loop if no even eligible bonding atoms were found (on any proc) int some_chance; - MPI_Allreduce(&temp_ncreate,&some_chance,1,MPI_INT,MPI_SUM,world); + MPI_Allreduce(&temp_nattempt,&some_chance,1,MPI_INT,MPI_SUM,world); if (!some_chance) continue; // communicate final partner @@ -977,7 +1022,7 @@ void FixBondReact::post_integrate() commflag = 3; comm->forward_comm_fix(this); - // add instance to 'created' only if this processor + // add instance to 'attempt' only if this processor // owns the atoms with smaller global ID // NOTE: we no longer care about ghost-ghost instances as bond/create did // this is because we take care of updating topology later (and differently) @@ -988,21 +1033,21 @@ void FixBondReact::post_integrate() j = atom->map(finalpartner[i]); // if (j < 0 || tag[i] < tag[j]) { if (tag[i] < tag[j]) { //atom->map(std::min(tag[i],tag[j])) <= nlocal && - if (ncreate[rxnID] == maxcreate) { - maxcreate += DELTA; - // third column of 'created': bond/react integer ID - memory->grow(created,maxcreate,2,nreacts,"bond/react:created"); + if (nattempt[rxnID] == maxattempt) { + maxattempt += DELTA; + // third column of 'attempt': bond/react integer ID + memory->grow(attempt,maxattempt,2,nreacts,"bond/react:attempt"); } // to ensure types remain in same order // unnecessary now taken from reaction map file if (iatomtype[rxnID] == type[i]) { - created[ncreate[rxnID]][0][rxnID] = tag[i]; - created[ncreate[rxnID]][1][rxnID] = finalpartner[i]; + attempt[nattempt[rxnID]][0][rxnID] = tag[i]; + attempt[nattempt[rxnID]][1][rxnID] = finalpartner[i]; } else { - created[ncreate[rxnID]][0][rxnID] = finalpartner[i]; - created[ncreate[rxnID]][1][rxnID] = tag[i]; + attempt[nattempt[rxnID]][0][rxnID] = finalpartner[i]; + attempt[nattempt[rxnID]][1][rxnID] = tag[i]; } - ncreate[rxnID]++; + nattempt[rxnID]++; } } } @@ -1010,11 +1055,11 @@ void FixBondReact::post_integrate() // break loop if no even eligible bonding atoms were found (on any proc) int some_chance; - allncreate = 0; + allnattempt = 0; for (int i = 0; i < nreacts; i++) - allncreate += ncreate[i]; + allnattempt += nattempt[i]; - MPI_Allreduce(&allncreate,&some_chance,1,MPI_INT,MPI_SUM,world); + MPI_Allreduce(&allnattempt,&some_chance,1,MPI_INT,MPI_SUM,world); if (!some_chance) { unlimit_bond(); return; @@ -1242,13 +1287,13 @@ void FixBondReact::superimpose_algorithm() memory->create(restore_pt,MAXGUESS,4,"bond/react:restore_pt"); memory->create(pioneers,max_natoms,"bond/react:pioneers"); memory->create(restore,max_natoms,MAXGUESS*4,"bond/react:restore"); - memory->create(local_mega_glove,max_natoms+1,allncreate,"bond/react:local_mega_glove"); - memory->create(ghostly_mega_glove,max_natoms+1,allncreate,"bond/react:ghostly_mega_glove"); + memory->create(local_mega_glove,max_natoms+1,allnattempt,"bond/react:local_mega_glove"); + memory->create(ghostly_mega_glove,max_natoms+1,allnattempt,"bond/react:ghostly_mega_glove"); attempted_rxn = 1; for (int i = 0; i < max_natoms+1; i++) { - for (int j = 0; j < allncreate; j++) { + for (int j = 0; j < allnattempt; j++) { local_mega_glove[i][j] = 0; ghostly_mega_glove[i][j] = 0; } @@ -1256,7 +1301,7 @@ void FixBondReact::superimpose_algorithm() // let's finally begin the superimpose loop for (rxnID = 0; rxnID < nreacts; rxnID++) { - for (lcl_inst = 0; lcl_inst < ncreate[rxnID]; lcl_inst++) { + for (lcl_inst = 0; lcl_inst < nattempt[rxnID]; lcl_inst++) { onemol = atom->molecules[unreacted_mol[rxnID]]; twomol = atom->molecules[reacted_mol[rxnID]]; @@ -1279,10 +1324,10 @@ void FixBondReact::superimpose_algorithm() int myjbonding = jbonding[rxnID]; glove[myibonding-1][0] = myibonding; - glove[myibonding-1][1] = created[lcl_inst][0][rxnID]; + glove[myibonding-1][1] = attempt[lcl_inst][0][rxnID]; glove_counter++; glove[myjbonding-1][0] = myjbonding; - glove[myjbonding-1][1] = created[lcl_inst][1][rxnID]; + glove[myjbonding-1][1] = attempt[lcl_inst][1][rxnID]; glove_counter++; // special case, only two atoms in reaction templates @@ -1353,7 +1398,7 @@ void FixBondReact::superimpose_algorithm() global_megasize = 0; ghost_glovecast(); // consolidate all mega_gloves to all processors - dedup_mega_gloves(0); // make sure atoms aren't added to more than one reaction + dedup_mega_gloves(LOCAL); // make sure atoms aren't added to more than one reaction MPI_Allreduce(&local_rxn_count[0],&reaction_count[0],nreacts,MPI_INT,MPI_SUM,world); @@ -1405,8 +1450,8 @@ void FixBondReact::superimpose_algorithm() next_reneighbor = update->ntimestep; // call limit_bond in 'global_mega_glove mode.' oh, and local mode - limit_bond(0); // add reacting atoms to nve/limit - limit_bond(1); + limit_bond(LOCAL); // add reacting atoms to nve/limit + limit_bond(GLOBAL); update_everything(); // change topology } @@ -1912,7 +1957,7 @@ int FixBondReact::check_constraints() } if (ANDgate != 1) satisfied[i] = 0; } else if (constraints[i][rxnID].type == ARRHENIUS) { - t = get_temperature(); + t = get_temperature(glove,0,1); prrhob = constraints[i][rxnID].par[1]*pow(t,constraints[i][rxnID].par[2])* exp(-constraints[i][rxnID].par[3]/(force->boltz*t)); if (prrhob < rrhandom[(int) constraints[i][rxnID].par[0]]->uniform()) satisfied[i] = 0; @@ -2044,7 +2089,7 @@ void FixBondReact::get_IDcoords(int mode, int myID, double *center) compute local temperature: average over all atoms in reaction template ------------------------------------------------------------------------- */ -double FixBondReact::get_temperature() +double FixBondReact::get_temperature(tagint **myglove, int row_offset, int col) { int i,ilocal; double adof = domain->dimension; @@ -2058,13 +2103,13 @@ double FixBondReact::get_temperature() if (rmass) { for (i = 0; i < onemol->natoms; i++) { - ilocal = atom->map(glove[i][1]); + ilocal = atom->map(myglove[i+row_offset][col]); t += (v[ilocal][0]*v[ilocal][0] + v[ilocal][1]*v[ilocal][1] + v[ilocal][2]*v[ilocal][2]) * rmass[ilocal]; } } else { for (i = 0; i < onemol->natoms; i++) { - ilocal = atom->map(glove[i][1]); + ilocal = atom->map(myglove[i+row_offset][col]); t += (v[ilocal][0]*v[ilocal][0] + v[ilocal][1]*v[ilocal][1] + v[ilocal][2]*v[ilocal][2]) * mass[type[ilocal]]; } @@ -2169,7 +2214,8 @@ void FixBondReact::find_landlocked_atoms(int myrxn) // always remove edge atoms from landlocked list for (int i = 0; i < twomol->natoms; i++) { - if (edge[equivalences[i][1][myrxn]-1][myrxn] == 1) landlocked_atoms[i][myrxn] = 0; + if (create_atoms[i][myrxn] == 0 && edge[equivalences[i][1][myrxn]-1][myrxn] == 1) + landlocked_atoms[i][myrxn] = 0; else landlocked_atoms[i][myrxn] = 1; } int nspecial_limit = -1; @@ -2193,44 +2239,48 @@ void FixBondReact::find_landlocked_atoms(int myrxn) // bad molecule templates check // if atoms change types, but aren't landlocked, that's bad for (int i = 0; i < twomol->natoms; i++) { - if (twomol->type[i] != onemol->type[equivalences[i][1][myrxn]-1] && landlocked_atoms[i][myrxn] == 0) { - char str[128]; - snprintf(str,128,"Bond/react: Atom type affected by reaction %s too close to template edge",rxn_name[myrxn]); - error->all(FLERR,str); + if (create_atoms[i][myrxn] == 0) { + if (twomol->type[i] != onemol->type[equivalences[i][1][myrxn]-1] && landlocked_atoms[i][myrxn] == 0) { + char str[128]; + snprintf(str,128,"Bond/react: Atom type affected by reaction %s too close to template edge",rxn_name[myrxn]); + error->all(FLERR,str); + } } } // additionally, if a bond changes type, but neither involved atom is landlocked, bad // would someone want to change an angle type but not bond or atom types? (etc.) ...hopefully not yet for (int i = 0; i < twomol->natoms; i++) { - if (landlocked_atoms[i][myrxn] == 0) { - for (int j = 0; j < twomol->num_bond[i]; j++) { - int twomol_atomj = twomol->bond_atom[i][j]; - if (landlocked_atoms[twomol_atomj-1][myrxn] == 0) { - int onemol_atomi = equivalences[i][1][myrxn]; - int onemol_batom; - for (int m = 0; m < onemol->num_bond[onemol_atomi-1]; m++) { - onemol_batom = onemol->bond_atom[onemol_atomi-1][m]; - if (onemol_batom == equivalences[twomol_atomj-1][1][myrxn]) { - if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomi-1][m]) { - char str[128]; - snprintf(str,128,"Bond/react: Bond type affected by reaction %s too close to template edge",rxn_name[myrxn]); - error->all(FLERR,str); - } - } - } - if (newton_bond) { - int onemol_atomj = equivalences[twomol_atomj-1][1][myrxn]; - for (int m = 0; m < onemol->num_bond[onemol_atomj-1]; m++) { - onemol_batom = onemol->bond_atom[onemol_atomj-1][m]; - if (onemol_batom == equivalences[i][1][myrxn]) { - if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomj-1][m]) { + if (create_atoms[i][myrxn] == 0) { + if (landlocked_atoms[i][myrxn] == 0) { + for (int j = 0; j < twomol->num_bond[i]; j++) { + int twomol_atomj = twomol->bond_atom[i][j]; + if (landlocked_atoms[twomol_atomj-1][myrxn] == 0) { + int onemol_atomi = equivalences[i][1][myrxn]; + int onemol_batom; + for (int m = 0; m < onemol->num_bond[onemol_atomi-1]; m++) { + onemol_batom = onemol->bond_atom[onemol_atomi-1][m]; + if (onemol_batom == equivalences[twomol_atomj-1][1][myrxn]) { + if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomi-1][m]) { char str[128]; snprintf(str,128,"Bond/react: Bond type affected by reaction %s too close to template edge",rxn_name[myrxn]); error->all(FLERR,str); } } } + if (newton_bond) { + int onemol_atomj = equivalences[twomol_atomj-1][1][myrxn]; + for (int m = 0; m < onemol->num_bond[onemol_atomj-1]; m++) { + onemol_batom = onemol->bond_atom[onemol_atomj-1][m]; + if (onemol_batom == equivalences[i][1][myrxn]) { + if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomj-1][m]) { + char str[128]; + snprintf(str,128,"Bond/react: Bond type affected by reaction %s too close to template edge",rxn_name[myrxn]); + error->all(FLERR,str); + } + } + } + } } } } @@ -2252,13 +2302,22 @@ void FixBondReact::find_landlocked_atoms(int myrxn) // also, if atoms change number of bonds, but aren't landlocked, that could be bad if (me == 0) for (int i = 0; i < twomol->natoms; i++) { - if (twomol_nxspecial[i][0] != onemol_nxspecial[equivalences[i][1][myrxn]-1][0] && landlocked_atoms[i][myrxn] == 0) { - char str[128]; - snprintf(str,128,"Bond/react: Atom affected by reaction %s too close to template edge",rxn_name[myrxn]); - error->warning(FLERR,str); - break; + if (create_atoms[i][myrxn] == 0) { + if (twomol_nxspecial[i][0] != onemol_nxspecial[equivalences[i][1][myrxn]-1][0] && landlocked_atoms[i][myrxn] == 0) { + char str[128]; + snprintf(str,128,"Bond/react: Atom affected by reaction %s too close to template edge",rxn_name[myrxn]); + error->warning(FLERR,str); + break; + } } } + + // finally, if a created atom is not landlocked, bad! + for (int i = 0; i < twomol->natoms; i++) { + if (create_atoms[i][myrxn] == 1 && landlocked_atoms[i][myrxn] == 0) { + error->one(FLERR,"Bond/react: Created atom too close to template edge"); + } + } } /* ---------------------------------------------------------------------- @@ -2268,30 +2327,30 @@ allows for same site undergoing different pathways, in parallel void FixBondReact::dedup_mega_gloves(int dedup_mode) { - // dedup_mode == 0 for local_dedup - // dedup_mode == 1 for global_mega_glove + // dedup_mode == LOCAL for local_dedup + // dedup_mode == GLOBAL for global_mega_glove for (int i = 0; i < nreacts; i++) { - if (dedup_mode == 0) local_rxn_count[i] = 0; - if (dedup_mode == 1) ghostly_rxn_count[i] = 0; + if (dedup_mode == LOCAL) local_rxn_count[i] = 0; + if (dedup_mode == GLOBAL) ghostly_rxn_count[i] = 0; } int dedup_size = 0; - if (dedup_mode == 0) { + if (dedup_mode == LOCAL) { dedup_size = local_num_mega; - } else if (dedup_mode == 1) { + } else if (dedup_mode == GLOBAL) { dedup_size = global_megasize; } tagint **dedup_glove; memory->create(dedup_glove,max_natoms+1,dedup_size,"bond/react:dedup_glove"); - if (dedup_mode == 0) { + if (dedup_mode == LOCAL) { for (int i = 0; i < dedup_size; i++) { for (int j = 0; j < max_natoms+1; j++) { dedup_glove[j][i] = local_mega_glove[j][i]; } } - } else if (dedup_mode == 1) { + } else if (dedup_mode == GLOBAL) { for (int i = 0; i < dedup_size; i++) { for (int j = 0; j < max_natoms+1; j++) { dedup_glove[j][i] = global_mega_glove[j][i]; @@ -2371,7 +2430,7 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode) // we must update local_mega_glove and local_megasize // we can simply overwrite local_mega_glove column by column - if (dedup_mode == 0) { + if (dedup_mode == LOCAL) { int new_local_megasize = 0; for (int i = 0; i < local_num_mega; i++) { if (dedup_mask[i] == 0) { @@ -2388,7 +2447,7 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode) // we must update global_mega_glove and global_megasize // we can simply overwrite global_mega_glove column by column - if (dedup_mode == 1) { + if (dedup_mode == GLOBAL) { int new_global_megasize = 0; for (int i = 0; i < global_megasize; i++) { if (dedup_mask[i] == 0) { @@ -2425,7 +2484,7 @@ void FixBondReact::limit_bond(int limit_bond_mode) int nlocal = atom->nlocal; int temp_limit_num = 0; tagint *temp_limit_glove; - if (limit_bond_mode == 0) { + if (limit_bond_mode == LOCAL) { int max_temp = local_num_mega * (max_natoms + 1); temp_limit_glove = new tagint[max_temp]; for (int j = 0; j < local_num_mega; j++) { @@ -2436,7 +2495,7 @@ void FixBondReact::limit_bond(int limit_bond_mode) } } - } else if (limit_bond_mode == 1) { + } else if (limit_bond_mode == GLOBAL) { int max_temp = global_megasize * (max_natoms + 1); temp_limit_glove = new tagint[max_temp]; for (int j = 0; j < global_megasize; j++) { @@ -2532,11 +2591,15 @@ void FixBondReact::glove_ghostcheck() int ghostly = 0; #if !defined(MPI_STUBS) if (comm->style == 0) { - for (int i = 0; i < onemol->natoms; i++) { - int ilocal = atom->map(glove[i][1]); - if (ilocal >= atom->nlocal || localsendlist[ilocal] == 1) { - ghostly = 1; - break; + if (create_atoms_flag[rxnID] == 1) { + ghostly = 1; + } else { + for (int i = 0; i < onemol->natoms; i++) { + int ilocal = atom->map(glove[i][1]); + if (ilocal >= atom->nlocal || localsendlist[ilocal] == 1) { + ghostly = 1; + break; + } } } } else { @@ -2624,7 +2687,7 @@ void FixBondReact::ghost_glovecast() column, 0, world); } - if (me == 0) dedup_mega_gloves(1); // global_mega_glove mode + if (me == 0) dedup_mega_gloves(GLOBAL); // global_mega_glove mode MPI_Bcast(&global_megasize,1,MPI_INT,0,world); MPI_Bcast(&(global_mega_glove[0][0]), global_megasize, column, 0, world); @@ -2642,9 +2705,8 @@ update molecule IDs, charges, types, special lists and all topology void FixBondReact::update_everything() { + int nlocal; // must be defined after create_atoms int *type = atom->type; - - int nlocal = atom->nlocal; int **nspecial = atom->nspecial; tagint **special = atom->special; @@ -2654,8 +2716,7 @@ void FixBondReact::update_everything() // used when deleting atoms int ndel,ndelone; - int *mark = new int[nlocal]; - for (int i = 0; i < nlocal; i++) mark[i] = 0; + int *mark; tagint *tag = atom->tag; AtomVec *avec = atom->avec; @@ -2694,6 +2755,20 @@ void FixBondReact::update_everything() rxnID = global_mega_glove[0][i]; // reactions already shuffled from dedup procedure, so can skip first N if (iskip[rxnID]++ < nghostlyskips[rxnID]) continue; + + // we can insert atoms here, now that reactions are finalized + // can't do it any earlier, due to skipped reactions (max_rxn) + // reactions that create atoms are always treated as 'global' + if (create_atoms_flag[rxnID] == 1) { + onemol = atom->molecules[unreacted_mol[rxnID]]; + twomol = atom->molecules[reacted_mol[rxnID]]; + if (insert_atoms(global_mega_glove,i)) + ; else { // create aborted + reaction_count_total[rxnID]--; + continue; + } + } + for (int j = 0; j < max_natoms+1; j++) update_mega_glove[j][update_num_mega] = global_mega_glove[j][i]; update_num_mega++; @@ -2702,6 +2777,9 @@ void FixBondReact::update_everything() delete [] iskip; // mark to-delete atoms + nlocal = atom->nlocal; + mark = new int[nlocal]; + for (int i = 0; i < nlocal; i++) mark[i] = 0; for (int i = 0; i < update_num_mega; i++) { rxnID = update_mega_glove[0][i]; onemol = atom->molecules[unreacted_mol[rxnID]]; @@ -2731,25 +2809,6 @@ void FixBondReact::update_everything() } } - //maybe add check that all 1-3 neighbors of a local atoms are at least ghosts -> unneeded --jg - //okay, here goes: - for (int i = 0; i < update_num_mega; i++) { - rxnID = update_mega_glove[0][i]; - twomol = atom->molecules[reacted_mol[rxnID]]; - for (int j = 0; j < twomol->natoms; j++) { - int jj = equivalences[j][1][rxnID]-1; - if (atom->map(update_mega_glove[jj+1][i]) < nlocal && atom->map(update_mega_glove[jj+1][i]) >= 0) { - if (landlocked_atoms[j][rxnID] == 1) { - for (int k = 0; k < nspecial[atom->map(update_mega_glove[jj+1][i])][2]; k++) { - if (atom->map(special[atom->map(update_mega_glove[jj+1][i])][k]) < 0) { - error->all(FLERR,"Bond/react: Fix bond/react needs ghost atoms from further away - most likely too many processors"); - } - } - } - } - } - } - int insert_num; // very nice and easy to completely overwrite special bond info for landlocked atoms for (int i = 0; i < update_num_mega; i++) { @@ -3205,6 +3264,279 @@ void FixBondReact::update_everything() } } +/* ---------------------------------------------------------------------- +insert created atoms +------------------------------------------------------------------------- */ + +int FixBondReact::insert_atoms(tagint **my_mega_glove, int iupdate) +{ + // inserting atoms based off fix_deposit->pre_exchange + int flag; + imageint *imageflags; + double **coords,lamda[3],rotmat[3][3]; + double *newcoord; + double **v = atom->v; + double t,delx,dely,delz,rsq; + + memory->create(coords,twomol->natoms,3,"bond/react:coords"); + memory->create(imageflags,twomol->natoms,"bond/react:imageflags"); + + double *sublo,*subhi; + if (domain->triclinic == 0) { + sublo = domain->sublo; + subhi = domain->subhi; + } else { + sublo = domain->sublo_lamda; + subhi = domain->subhi_lamda; + } + + // find current max atom and molecule IDs + tagint *tag = atom->tag; + double **x = atom->x; + tagint *molecule = atom->molecule; + int nlocal = atom->nlocal; + + tagint maxtag_all,maxmol_all; + tagint max = 0; + for (int i = 0; i < nlocal; i++) max = MAX(max,tag[i]); + MPI_Allreduce(&max,&maxtag_all,1,MPI_LMP_TAGINT,MPI_MAX,world); + + max = 0; + for (int i = 0; i < nlocal; i++) max = MAX(max,molecule[i]); + MPI_Allreduce(&max,&maxmol_all,1,MPI_LMP_TAGINT,MPI_MAX,world); + + int dimension = domain->dimension; + + // only proc that owns reacting atom (use ibonding), + // fits post-reaction template to reaction site, for creating atoms + int n2superpose = 0; + for (int j = 0; j < twomol->natoms; j++) { + if (modify_create_fragid[rxnID] >= 0) + if (!twomol->fragmentmask[modify_create_fragid[rxnID]][j]) continue; + if (!create_atoms[j][rxnID] && !delete_atoms[equivalences[j][1][rxnID]][rxnID]) + n2superpose++; + } + + int ifit = atom->map(my_mega_glove[ibonding[rxnID]+1][iupdate]); // use this local ID to find fitting proc + Superpose3D superposer(n2superpose); + int fitroot = 0; + if (ifit >= 0 && ifit < atom->nlocal) { + fitroot = me; + + // get 'temperatere' averaged over site, used for created atoms' vels + t = get_temperature(my_mega_glove,1,iupdate); + + double **xfrozen; // coordinates for the "frozen" target molecule + double **xmobile; // coordinates for the "mobile" molecule + memory->create(xfrozen,n2superpose,3,"bond/react:xfrozen"); + memory->create(xmobile,n2superpose,3,"bond/react:xmobile"); + tagint iatom; + tagint iref = -1; // choose first atom as reference + int fit_incr = 0; + for (int j = 0; j < twomol->natoms; j++) { + if (modify_create_fragid[rxnID] >= 0) + if (!twomol->fragmentmask[modify_create_fragid[rxnID]][j]) continue; + int ipre = equivalences[j][1][rxnID]-1; // equiv pre-reaction template index + if (!create_atoms[j][rxnID] && !delete_atoms[ipre][rxnID]) { + if (atom->map(my_mega_glove[ipre+1][iupdate]) < 0) { + printf("WARNING: eligible atoms skipped for created-atoms fit on %d\n",me); + continue; + } + iatom = atom->map(my_mega_glove[ipre+1][iupdate]); + if (iref == -1) iref = iatom; + iatom = domain->closest_image(iref,iatom); + for (int k = 0; k < 3; k++) { + xfrozen[fit_incr][k] = x[iatom][k]; + xmobile[fit_incr][k] = twomol->x[j][k]; + } + fit_incr++; + } + } + superposer.Superpose(xfrozen, xmobile); + for (int i = 0; i < 3; i++) + for (int j = 0; j < 3; j++) + rotmat[i][j] = superposer.R[i][j]; + memory->destroy(xfrozen); + memory->destroy(xmobile); + } + MPI_Allreduce(MPI_IN_PLACE,&fitroot,1,MPI_INT,MPI_SUM,world); + MPI_Bcast(&t,1,MPI_DOUBLE,fitroot,world); + + // get coordinates and image flags + for (int m = 0; m < twomol->natoms; m++) { + if (create_atoms[m][rxnID] == 1) { + // apply optimal rotation/translation for created atom coords + // also map coords back into simulation box + if (fitroot == me) { + MathExtra::matvec(rotmat,twomol->x[m],coords[m]); + for (int i = 0; i < 3; i++) coords[m][i] += superposer.T[i]; + imageflags[m] = atom->image[ifit]; + domain->remap(coords[m],imageflags[m]); + } + MPI_Bcast(&imageflags[m],1,MPI_LMP_IMAGEINT,fitroot,world); + MPI_Bcast(coords[m],3,MPI_DOUBLE,fitroot,world); + } + } + + // check distance between any existing atom and inserted atom + // if less than near, abort + if (overlapsq[rxnID] > 0) { + int abortflag = 0; + for (int m = 0; m < twomol->natoms; m++) { + if (create_atoms[m][rxnID] == 1) { + for (int i = 0; i < nlocal; i++) { + delx = coords[m][0] - x[i][0]; + dely = coords[m][1] - x[i][1]; + delz = coords[m][2] - x[i][2]; + domain->minimum_image(delx,dely,delz); + rsq = delx*delx + dely*dely + delz*delz; + if (rsq < overlapsq[rxnID]) { + abortflag = 1; + break; + } + } + if (abortflag) break; + } + } + MPI_Allreduce(MPI_IN_PLACE,&abortflag,1,MPI_INT,MPI_MAX,world); + if (abortflag) { + memory->destroy(coords); + memory->destroy(imageflags); + return 0; + } + } + + // clear ghost count and any ghost bonus data internal to AtomVec + // same logic as beginning of Comm::exchange() + // do it now b/c inserting atoms will overwrite ghost atoms + atom->nghost = 0; + atom->avec->clear_bonus(); + + // check if new atoms are in my sub-box or above it if I am highest proc + // if so, add atom to my list via create_atom() + // initialize additional info about the atoms + // set group mask to "all" plus fix group + int preID; // new equivalences index + int add_count = 0; + for (int m = 0; m < twomol->natoms; m++) { + if (create_atoms[m][rxnID] == 1) { + // increase atom count + add_count++; + preID = onemol->natoms+add_count; + + if (domain->triclinic) { + domain->x2lamda(coords[m],lamda); + newcoord = lamda; + } else newcoord = coords[m]; + + flag = 0; + if (newcoord[0] >= sublo[0] && newcoord[0] < subhi[0] && + newcoord[1] >= sublo[1] && newcoord[1] < subhi[1] && + newcoord[2] >= sublo[2] && newcoord[2] < subhi[2]) flag = 1; + else if (dimension == 3 && newcoord[2] >= domain->boxhi[2]) { + if (comm->layout != Comm::LAYOUT_TILED) { + if (comm->myloc[2] == comm->procgrid[2]-1 && + newcoord[0] >= sublo[0] && newcoord[0] < subhi[0] && + newcoord[1] >= sublo[1] && newcoord[1] < subhi[1]) flag = 1; + } else { + if (comm->mysplit[2][1] == 1.0 && + newcoord[0] >= sublo[0] && newcoord[0] < subhi[0] && + newcoord[1] >= sublo[1] && newcoord[1] < subhi[1]) flag = 1; + } + } else if (dimension == 2 && newcoord[1] >= domain->boxhi[1]) { + if (comm->layout != Comm::LAYOUT_TILED) { + if (comm->myloc[1] == comm->procgrid[1]-1 && + newcoord[0] >= sublo[0] && newcoord[0] < subhi[0]) flag = 1; + } else { + if (comm->mysplit[1][1] == 1.0 && + newcoord[0] >= sublo[0] && newcoord[0] < subhi[0]) flag = 1; + } + } + + int root = 0; + if (flag) { + root = me; + + atom->avec->create_atom(twomol->type[m],coords[m]); + int n = atom->nlocal - 1; + atom->tag[n] = maxtag_all + add_count; + + // locally update mega_glove + my_mega_glove[preID][iupdate] = atom->tag[n]; + + if (atom->molecule_flag) { + if (twomol->moleculeflag) { + atom->molecule[n] = maxmol_all + twomol->molecule[m]; + } else { + atom->molecule[n] = maxmol_all + 1; + } + } + + atom->mask[n] = 1 | groupbit; + atom->image[n] = imageflags[m]; + + // guess a somewhat reasonable initial velocity based on reaction site + // further control is possible using bond_react_MASTER_group + // compute |velocity| corresponding to a given temperature t, using specific atom's mass + double vtnorm = sqrt(t / (force->mvv2e / (dimension * force->boltz)) / atom->mass[twomol->type[m]]); + v[n][0] = random[rxnID]->uniform(); + v[n][1] = random[rxnID]->uniform(); + v[n][2] = random[rxnID]->uniform(); + double vnorm = sqrt(v[n][0]*v[n][0] + v[n][1]*v[n][1] + v[n][2]*v[n][2]); + v[n][0] = v[n][0]/vnorm*vtnorm; + v[n][1] = v[n][1]/vnorm*vtnorm; + v[n][2] = v[n][2]/vnorm*vtnorm; + modify->create_attribute(n); + + // initialize group statuses + // why aren't these more global... + int flag; + int index1 = atom->find_custom("limit_tags",flag); + int *i_limit_tags = atom->ivector[index1]; + + int *i_statted_tags; + if (stabilization_flag == 1) { + int index2 = atom->find_custom(statted_id,flag); + i_statted_tags = atom->ivector[index2]; + } + + int index3 = atom->find_custom("react_tags",flag); + int *i_react_tags = atom->ivector[index3]; + + i_limit_tags[n] = update->ntimestep + 1; + if (stabilization_flag == 1) i_statted_tags[n] = 0; + i_react_tags[n] = rxnID; + } + // globally update mega_glove and equivalences + MPI_Allreduce(MPI_IN_PLACE,&root,1,MPI_INT,MPI_SUM,world); + MPI_Bcast(&my_mega_glove[preID][iupdate],1,MPI_LMP_TAGINT,root,world); + equivalences[m][0][rxnID] = m+1; + equivalences[m][1][rxnID] = preID; + reverse_equiv[preID-1][0][rxnID] = preID; + reverse_equiv[preID-1][1][rxnID] = m+1; + } + } + + // reset global natoms + // if global map exists, reset it now instead of waiting for comm + // since other pre-exchange fixes may use it + // invoke map_init() b/c atom count has grown + atom->natoms += add_count; + if (atom->natoms < 0) + error->all(FLERR,"Too many total atoms"); + maxtag_all += add_count; + if (maxtag_all >= MAXTAGINT) + error->all(FLERR,"New atom IDs exceed maximum allowed ID"); + if (atom->map_style != Atom::MAP_NONE) { + atom->map_init(); + atom->map_set(); + } + // atom creation successful + memory->destroy(coords); + memory->destroy(imageflags); + return 1; +} + /* ---------------------------------------------------------------------- read superimpose file ------------------------------------------------------------------------- */ @@ -3222,6 +3554,7 @@ void FixBondReact::read(int myrxn) // skip blank lines or lines that start with "#" // stop when read an unrecognized line + ncreate = 0; while (1) { readline(line); @@ -3240,6 +3573,7 @@ void FixBondReact::read(int myrxn) "equal number of atoms in reaction templates"); } else if (strstr(line,"deleteIDs")) sscanf(line,"%d",&ndelete); + else if (strstr(line,"createIDs")) sscanf(line,"%d",&ncreate); else if (strstr(line,"chiralIDs")) sscanf(line,"%d",&nchiral); else if (strstr(line,"constraints")) { sscanf(line,"%d",&nconstraints[myrxn]); @@ -3276,6 +3610,8 @@ void FixBondReact::read(int myrxn) Equivalences(line, myrxn); } else if (strcmp(keyword,"DeleteIDs") == 0) { DeleteAtoms(line, myrxn); + } else if (strcmp(keyword,"CreateIDs") == 0) { + CreateAtoms(line, myrxn); } else if (strcmp(keyword,"ChiralIDs") == 0) { ChiralCenters(line, myrxn); } else if (strcmp(keyword,"Constraints") == 0) { @@ -3312,7 +3648,7 @@ void FixBondReact::Equivalences(char *line, int myrxn) for (int i = 0; i < nequivalent; i++) { readline(line); sscanf(line,"%d %d",&tmp1,&tmp2); - if (tmp1 > onemol->natoms || tmp2 > onemol->natoms) + if (tmp1 > onemol->natoms || tmp2 > twomol->natoms) error->one(FLERR,"Bond/react: Invalid template atom ID in map file"); //equivalences is-> clmn 1: post-reacted, clmn 2: pre-reacted equivalences[tmp2-1][0][myrxn] = tmp2; @@ -3335,6 +3671,17 @@ void FixBondReact::DeleteAtoms(char *line, int myrxn) } } +void FixBondReact::CreateAtoms(char *line, int myrxn) +{ + create_atoms_flag[myrxn] = 1; + int tmp; + for (int i = 0; i < ncreate; i++) { + readline(line); + sscanf(line,"%d",&tmp); + create_atoms[tmp-1][myrxn] = 1; + } +} + void FixBondReact::CustomCharges(int ifragment, int myrxn) { for (int i = 0; i < onemol->natoms; i++) diff --git a/src/USER-REACTION/fix_bond_react.h b/src/USER-REACTION/fix_bond_react.h index b5922de327..87a5945d45 100644 --- a/src/USER-REACTION/fix_bond_react.h +++ b/src/USER-REACTION/fix_bond_react.h @@ -67,6 +67,9 @@ class FixBondReact : public Fix { int custom_exclude_flag; int *stabilize_steps_flag; int *custom_charges_fragid; + int *create_atoms_flag; + int *modify_create_fragid; + double *overlapsq; int *molecule_keyword; int maxnconstraints; int *nconstraints; @@ -84,10 +87,10 @@ class FixBondReact : public Fix { int max_natoms; // max natoms in a molecule template tagint *partner,*finalpartner; double **distsq,*probability; - int *ncreate; - int maxcreate; - int allncreate; - tagint ***created; + int *nattempt; + int maxattempt; + int allnattempt; + tagint ***attempt; class Molecule *onemol; // pre-reacted molecule template class Molecule *twomol; // post-reacted molecule template @@ -117,7 +120,7 @@ class FixBondReact : public Fix { int *ibonding,*jbonding; int *closeneigh; // indicates if bonding atoms of a rxn are 1-2, 1-3, or 1-4 neighbors - int nedge,nequivalent,ndelete,nchiral; // # edge, equivalent atoms in mapping file + int nedge,nequivalent,ndelete,ncreate,nchiral; // # edge, equivalent atoms in mapping file int attempted_rxn; // there was an attempt! int *local_rxn_count; int *ghostly_rxn_count; @@ -133,6 +136,7 @@ class FixBondReact : public Fix { int **landlocked_atoms; // all atoms at least three bonds away from edge atoms int **custom_charges; // atoms whose charge should be updated int **delete_atoms; // atoms in pre-reacted templates to delete + int **create_atoms; // atoms in post-reacted templates to create int ***chiral_atoms; // pre-react chiral atoms. 1) flag 2) orientation 3-4) ordered atom types int **nxspecial,**onemol_nxspecial,**twomol_nxspecial; // full number of 1-4 neighbors @@ -156,6 +160,7 @@ class FixBondReact : public Fix { void EdgeIDs(char *, int); void Equivalences(char *, int); void DeleteAtoms(char *, int); + void CreateAtoms(char *,int); void CustomCharges(int, int); void ChiralCenters(char *, int); void ReadConstraints(char *, int); @@ -169,7 +174,7 @@ class FixBondReact : public Fix { void ring_check(); int check_constraints(); void get_IDcoords(int, int, double *); - double get_temperature(); + double get_temperature(tagint **, int, int); int get_chirality(double[12]); // get handedness given an ordered set of coordinates void open(char *); @@ -185,6 +190,7 @@ class FixBondReact : public Fix { void glove_ghostcheck(); void ghost_glovecast(); void update_everything(); + int insert_atoms(tagint **, int); void unlimit_bond(); void limit_bond(int); void dedup_mega_gloves(int); //dedup global mega_glove diff --git a/src/USER-REAXC/fix_qeq_reax.cpp b/src/USER-REAXC/fix_qeq_reax.cpp index dd978c7582..355cbbb770 100644 --- a/src/USER-REAXC/fix_qeq_reax.cpp +++ b/src/USER-REAXC/fix_qeq_reax.cpp @@ -899,7 +899,7 @@ double FixQEqReax::memory_usage() { double bytes; - bytes = atom->nmax*nprev*2 * sizeof(double); // s_hist & t_hist + bytes = (double)atom->nmax*nprev*2 * sizeof(double); // s_hist & t_hist bytes += (double)atom->nmax*11 * sizeof(double); // storage bytes += (double)n_cap*2 * sizeof(int); // matrix... bytes += (double)m_cap * sizeof(int); diff --git a/src/USER-REAXC/reaxc_allocate.cpp b/src/USER-REAXC/reaxc_allocate.cpp index f043dc85d6..9ba92b9dfa 100644 --- a/src/USER-REAXC/reaxc_allocate.cpp +++ b/src/USER-REAXC/reaxc_allocate.cpp @@ -302,10 +302,10 @@ int Allocate_Workspace( reax_system * /*system*/, control_params * control, // storage for reductions with multiple threads #ifdef LMP_USER_OMP - workspace->CdDeltaReduction = (double *) scalloc(control->error_ptr, sizeof(double), total_cap*control->nthreads, + workspace->CdDeltaReduction = (double *) scalloc(control->error_ptr, sizeof(double), (rc_bigint)total_cap*control->nthreads, "cddelta_reduce"); - workspace->forceReduction = (rvec *) scalloc(control->error_ptr, sizeof(rvec), total_cap*control->nthreads, + workspace->forceReduction = (rvec *) scalloc(control->error_ptr, sizeof(rvec), (rc_bigint)total_cap*control->nthreads, "forceReduction"); workspace->valence_angle_atom_myoffset = (int *) scalloc(control->error_ptr, sizeof(int), total_cap, "valence_angle_atom_myoffset"); diff --git a/src/USER-SDPD/fix_rigid_meso.cpp b/src/USER-SDPD/fix_rigid_meso.cpp index 35fb89aee7..6847c4e2e5 100644 --- a/src/USER-SDPD/fix_rigid_meso.cpp +++ b/src/USER-SDPD/fix_rigid_meso.cpp @@ -40,9 +40,11 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ FixRigidMeso::FixRigidMeso (LAMMPS *lmp, int narg, char **arg) : -FixRigid (lmp, narg, arg) { + FixRigid (lmp, narg, arg) +{ scalar_flag = 0; size_array_cols = 28; + if ((atom->esph_flag != 1) || (atom->rho_flag != 1)) error->all (FLERR, "fix rigid/meso command requires atom_style with" " both energy and density"); @@ -160,8 +162,7 @@ void FixRigidMeso::initial_integrate (int vflag) { // virial setup before call to set_xv - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // set coords/orient and velocity/rotation of atoms in rigid bodies // from quarternion and omega diff --git a/src/angle.h b/src/angle.h index ffed437743..c8af8202f0 100644 --- a/src/angle.h +++ b/src/angle.h @@ -26,7 +26,7 @@ class Angle : protected Pointers { int *setflag; int writedata; // 1 if writes coeffs to data file double energy; // accumulated energies - double virial[6]; // accumulated virial + double virial[6]; // accumulated virial: xx,yy,zz,xy,xz,yz double *eatom,**vatom; // accumulated per-atom energy/virial double **cvatom; // accumulated per-atom centroid virial diff --git a/src/angle_hybrid.cpp b/src/angle_hybrid.cpp index 1e4ade3ca8..d7e3051b90 100644 --- a/src/angle_hybrid.cpp +++ b/src/angle_hybrid.cpp @@ -113,7 +113,7 @@ void AngleHybrid::compute(int eflag, int vflag) const int nthreads = comm->nthreads; if (comm->nthreads > 1) { - const int nall = atom->nlocal + atom->nghost; + const bigint nall = atom->nlocal + atom->nghost; if (eflag_atom) memset(&eatom[0],0,nall*nthreads*sizeof(double)); if (vflag_atom) diff --git a/src/atom_vec_tri.cpp b/src/atom_vec_tri.cpp index e9477a7d41..44a0986cb8 100644 --- a/src/atom_vec_tri.cpp +++ b/src/atom_vec_tri.cpp @@ -539,7 +539,7 @@ void AtomVecTri::data_atom_bonus(int m, char **values) double area = 0.5 * MathExtra::len3(norm); rmass[m] *= area; - // inertia = inertia tensor of triangle as 6-vector in Voigt notation + // inertia = inertia tensor of triangle as 6-vector in Voigt ordering double inertia[6]; MathExtra::inertia_triangle(c1,c2,c3,rmass[m],inertia); diff --git a/src/bond.h b/src/bond.h index 5406aa3f02..74f38ad455 100644 --- a/src/bond.h +++ b/src/bond.h @@ -26,7 +26,7 @@ class Bond : protected Pointers { int *setflag; int writedata; // 1 if writes coeffs to data file double energy; // accumulated energies - double virial[6]; // accumulated virial + double virial[6]; // accumulated virial: xx,yy,zz,xy,xz,yz double *eatom,**vatom; // accumulated per-atom energy/virial int reinitflag; // 1 if compatible with fix adapt and alike diff --git a/src/bond_hybrid.cpp b/src/bond_hybrid.cpp index 3a6bb4b7de..f1debc0676 100644 --- a/src/bond_hybrid.cpp +++ b/src/bond_hybrid.cpp @@ -113,7 +113,7 @@ void BondHybrid::compute(int eflag, int vflag) const int nthreads = comm->nthreads; if (nthreads > 1) { - const int nall = atom->nlocal + atom->nghost; + const bigint nall = atom->nlocal + atom->nghost; if (eflag_atom) memset(&eatom[0],0,nall*nthreads*sizeof(double)); if (vflag_atom) diff --git a/src/citeme.cpp b/src/citeme.cpp index 4b1b627298..fdd1ee867d 100644 --- a/src/citeme.cpp +++ b/src/citeme.cpp @@ -12,64 +12,118 @@ ------------------------------------------------------------------------- */ #include "citeme.h" +#include "comm.h" #include "universe.h" using namespace LAMMPS_NS; -static const char cite_header[] = - "This LAMMPS simulation made specific use of work described in the\n" - "following references. See https://lammps.sandia.gov/cite.html\n" - "for details.\n\n"; +static const char cite_separator[] = + "CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE\n\n"; -static const char cite_nagline[] = "\nPlease see the log.cite file " - "for references relevant to this simulation\n\n"; +static const char cite_nagline[] = + "Your simulation uses code contributions which should be cited:\n"; + +static const char cite_file[] = "The {} {} lists these citations in " + "BibTeX format.\n\n"; /* ---------------------------------------------------------------------- */ -CiteMe::CiteMe(LAMMPS *lmp) : Pointers(lmp) +CiteMe::CiteMe(LAMMPS *lmp, int _screen, int _logfile, const char *_file) + : Pointers(lmp) { fp = nullptr; cs = new citeset(); + + screen_flag = _screen; + scrbuffer.clear(); + logfile_flag = _logfile; + logbuffer.clear(); + + if (_file && universe->me == 0) { + citefile = _file; + fp = fopen(_file,"w"); + if (fp) { + fputs(cite_nagline,fp); + fflush(fp); + } else { + utils::logmesg(lmp, "Unable to open citation file '" + citefile + + "': " + utils::getsyserror() + "\n"); + } + } } /* ---------------------------------------------------------------------- - write out nag-line at the end of the regular output and clean up + write out remaining citations at end of the regular output and clean up ------------------------------------------------------------------------- */ CiteMe::~CiteMe() { - if (universe->me || cs->size() == 0) { - delete cs; - return; - } - + flush(); delete cs; - if (fp) { - if (screen) fprintf(screen,cite_nagline); - if (logfile) fprintf(logfile,cite_nagline); - - fclose(fp); - } + if (fp) fclose(fp); } /* ---------------------------------------------------------------------- - write out and register a citation so it will be written only once + process an added citation so it will be shown only once and as requested ------------------------------------------------------------------------- */ void CiteMe::add(const char *ref) { - if (universe->me) return; + if (comm->me != 0) return; if (cs->find(ref) != cs->end()) return; cs->insert(ref); - if (!fp) { - fp = fopen("log.cite","w"); - if (!fp) return; - fputs(cite_header,fp); + if (fp) { + fputs(ref,fp); fflush(fp); } - fputs(ref,fp); - fflush(fp); + if (scrbuffer.empty()) { + scrbuffer += "\n"; + scrbuffer += cite_separator; + scrbuffer += cite_nagline; + if (screen_flag == VERBOSE) scrbuffer += "\n"; + } + + if (logbuffer.empty()) { + logbuffer += "\n"; + logbuffer += cite_separator; + logbuffer += cite_nagline; + if (logfile_flag == VERBOSE) logbuffer += "\n"; + } + + std::string reference = ref; + std::size_t found = reference.find_first_of("\n"); + std::string header = reference.substr(0,found+1); + if (screen_flag == VERBOSE) scrbuffer += "- " + reference; + if (screen_flag == TERSE) scrbuffer += "- " + header; + if (logfile_flag == VERBOSE) logbuffer += "- " + reference; + if (logfile_flag == TERSE) logbuffer += "- " + header; } + +void CiteMe::flush() +{ + if (comm->me == 0) { + if (!scrbuffer.empty()) { + if (!citefile.empty()) + scrbuffer += fmt::format(cite_file,"file",citefile); + if (logfile_flag == VERBOSE) + scrbuffer += fmt::format(cite_file,"log","file"); + scrbuffer += cite_separator; + if (screen) fputs(scrbuffer.c_str(),screen); + scrbuffer.clear(); + } + if (!logbuffer.empty()) { + if (!citefile.empty()) + logbuffer += fmt::format(cite_file,"file",citefile); + if (screen_flag == VERBOSE) + scrbuffer += fmt::format(cite_file,"screen","output"); + logbuffer += cite_separator; + if (logfile) fputs(logbuffer.c_str(),logfile); + logbuffer.clear(); + } + } + return; +} + diff --git a/src/citeme.h b/src/citeme.h index c383ec2227..dd54268a3b 100644 --- a/src/citeme.h +++ b/src/citeme.h @@ -21,27 +21,33 @@ namespace LAMMPS_NS { class CiteMe : protected Pointers { public: - CiteMe(class LAMMPS *); + CiteMe(class LAMMPS *, int, int, const char *); virtual ~CiteMe(); - void add(const char *); // print out and register publication + void add(const char *); // register publication for output + void flush(); // flush buffers to screen and logfile + enum {VERBOSE, TERSE}; private: - FILE *fp; // opaque pointer to log.cite file object + FILE *fp; // explicit citation file pointer or NULL + std::string citefile; // name of the explicit citation file. + int screen_flag; // determine whether verbose or terse output + int logfile_flag; // determine whether verbose or terse output + std::string scrbuffer; // output buffer for screen + std::string logbuffer; // output buffer for logfile typedef std::set citeset; citeset *cs; // registered set of publications }; - } #endif /* ERROR/WARNING messages: -E: Cannot open log.cite file +E: Cannot open citation file This file is created when you use some LAMMPS features, to indicate what paper you should cite on behalf of those who implemented -the feature. Check that you have write privileges into the directory +the feature. Check that you have write privileges in the directory you are running in. */ diff --git a/src/comm.cpp b/src/comm.cpp index 77d1ade148..8e119744fc 100644 --- a/src/comm.cpp +++ b/src/comm.cpp @@ -979,7 +979,7 @@ rendezvous_all2all(int n, char *inbuf, int insize, int inorder, int *procs, offsets[0] = 0; for (int i = 1; i < nprocs; i++) - offsets[i] = offsets[i-1] + insize*procs_a2a[i-1]; + offsets[i] = offsets[i-1] + (bigint)insize*procs_a2a[i-1]; bigint offset = 0; for (int i = 0; i < n; i++) { @@ -989,7 +989,8 @@ rendezvous_all2all(int n, char *inbuf, int insize, int inorder, int *procs, offset += insize; } - all2all1_bytes = nprocs*sizeof(int) + nprocs*sizeof(bigint) + n*insize; + all2all1_bytes = nprocs*sizeof(int) + nprocs*sizeof(bigint) + + (bigint)n*insize; } else { procs_a2a = procs; @@ -1085,7 +1086,7 @@ rendezvous_all2all(int n, char *inbuf, int insize, int inorder, int *procs, offsets[0] = 0; for (int i = 1; i < nprocs; i++) - offsets[i] = offsets[i-1] + outsize*procs_a2a[i-1]; + offsets[i] = offsets[i-1] + (bigint)outsize*procs_a2a[i-1]; bigint offset = 0; for (int i = 0; i < nrvous_out; i++) { @@ -1096,7 +1097,7 @@ rendezvous_all2all(int n, char *inbuf, int insize, int inorder, int *procs, } all2all2_bytes = nprocs*sizeof(int) + nprocs*sizeof(bigint) + - nrvous_out*outsize; + (bigint)nrvous_out*outsize; } else { procs_a2a = procs_rvous; diff --git a/src/compute_centroid_stress_atom.cpp b/src/compute_centroid_stress_atom.cpp index cf3a308190..9ad871382c 100644 --- a/src/compute_centroid_stress_atom.cpp +++ b/src/compute_centroid_stress_atom.cpp @@ -149,7 +149,7 @@ void ComputeCentroidStressAtom::init() if (fixflag) { for (int ifix = 0; ifix < modify->nfix; ifix++) - if (modify->fix[ifix]->virial_flag && + if (modify->fix[ifix]->virial_peratom_flag && modify->fix[ifix]->centroidstressflag == CENTROID_NOTAVAIL) error->all(FLERR, "Fix style does not support compute centroid/stress/atom"); } @@ -273,9 +273,11 @@ void ComputeCentroidStressAtom::compute_peratom() // fix styles are CENTROID_SAME or CENTROID_NOTAVAIL if (fixflag) { - for (int ifix = 0; ifix < modify->nfix; ifix++) - if (modify->fix[ifix]->virial_flag) { - double **vatom = modify->fix[ifix]->vatom; + Fix **fix = modify->fix; + int nfix = modify->nfix; + for (int ifix = 0; ifix < nfix; ifix++) + if (fix[ifix]->virial_peratom_flag && fix[ifix]->thermo_virial) { + double **vatom = fix[ifix]->vatom; if (vatom) for (i = 0; i < nlocal; i++) { for (j = 0; j < 6; j++) diff --git a/src/compute_orientorder_atom.cpp b/src/compute_orientorder_atom.cpp index eb5a96b706..8a836a97b8 100644 --- a/src/compute_orientorder_atom.cpp +++ b/src/compute_orientorder_atom.cpp @@ -258,7 +258,7 @@ void ComputeOrientOrderAtom::compute_peratom() double **x = atom->x; int *mask = atom->mask; - memset(&qnarray[0][0],0,nmax*ncol*sizeof(double)); + memset(&qnarray[0][0],0,sizeof(double)*nmax*ncol); for (ii = 0; ii < inum; ii++) { i = ilist[ii]; diff --git a/src/compute_pe.cpp b/src/compute_pe.cpp index f10f1eb344..b7078675e5 100644 --- a/src/compute_pe.cpp +++ b/src/compute_pe.cpp @@ -99,7 +99,8 @@ double ComputePE::compute_scalar() scalar += force->pair->etail / volume; } - if (fixflag && modify->n_thermo_energy) scalar += modify->thermo_energy(); + if (fixflag && modify->n_energy_global) + scalar += modify->energy_global(); return scalar; } diff --git a/src/compute_pe_atom.cpp b/src/compute_pe_atom.cpp index 7c8f786397..48172f19b5 100644 --- a/src/compute_pe_atom.cpp +++ b/src/compute_pe_atom.cpp @@ -152,8 +152,8 @@ void ComputePEAtom::compute_peratom() // add in per-atom contributions from relevant fixes // always only for owned atoms, not ghost - if (fixflag && modify->n_thermo_energy_atom) - modify->thermo_energy_atom(nlocal,energy); + if (fixflag && modify->n_energy_atom) + modify->energy_atom(nlocal,energy); // communicate ghost energy between neighbor procs diff --git a/src/compute_pressure.cpp b/src/compute_pressure.cpp index 7acf92ea2e..82ddbbb5c5 100644 --- a/src/compute_pressure.cpp +++ b/src/compute_pressure.cpp @@ -217,7 +217,7 @@ void ComputePressure::init() vptr[nvirial++] = force->improper->virial; if (fixflag) for (int i = 0; i < modify->nfix; i++) - if (modify->fix[i]->thermo_virial) + if (modify->fix[i]->virial_global_flag && modify->fix[i]->thermo_virial) vptr[nvirial++] = modify->fix[i]->virial; } diff --git a/src/compute_pressure.h b/src/compute_pressure.h index 8d0ec4aa04..235ccbe1eb 100644 --- a/src/compute_pressure.h +++ b/src/compute_pressure.h @@ -40,7 +40,7 @@ class ComputePressure : public Compute { double *kspace_virial; Compute *temperature; char *id_temp; - double virial[6]; + double virial[6]; // ordering: xx,yy,zz,xy,xz,yz int pairhybridflag; class Pair *pairhybrid; int keflag,pairflag,bondflag,angleflag,dihedralflag,improperflag; diff --git a/src/compute_stress_atom.cpp b/src/compute_stress_atom.cpp index b7cee8957d..28abc13453 100644 --- a/src/compute_stress_atom.cpp +++ b/src/compute_stress_atom.cpp @@ -219,9 +219,11 @@ void ComputeStressAtom::compute_peratom() // and fix ave/spatial uses a per-atom stress from this compute as input if (fixflag) { - for (int ifix = 0; ifix < modify->nfix; ifix++) - if (modify->fix[ifix]->virial_flag) { - double **vatom = modify->fix[ifix]->vatom; + Fix **fix = modify->fix; + int nfix = modify->nfix; + for (int ifix = 0; ifix < nfix; ifix++) + if (fix[ifix]->virial_peratom_flag && fix[ifix]->thermo_virial) { + double **vatom = fix[ifix]->vatom; if (vatom) for (i = 0; i < nlocal; i++) for (j = 0; j < 6; j++) diff --git a/src/create_atoms.cpp b/src/create_atoms.cpp index 4abb2c4696..46aff081d9 100644 --- a/src/create_atoms.cpp +++ b/src/create_atoms.cpp @@ -52,7 +52,7 @@ enum{NONE,RATIO,SUBSET}; /* ---------------------------------------------------------------------- */ -CreateAtoms::CreateAtoms(LAMMPS *lmp) : Pointers(lmp) {} +CreateAtoms::CreateAtoms(LAMMPS *lmp) : Pointers(lmp), basistype(nullptr) {} /* ---------------------------------------------------------------------- */ @@ -573,7 +573,7 @@ void CreateAtoms::command(int narg, char **arg) delete ranmol; delete ranlatt; - if (domain->lattice) delete [] basistype; + delete [] basistype; delete [] vstr; delete [] xstr; delete [] ystr; diff --git a/src/create_bonds.cpp b/src/create_bonds.cpp index 7ee17bcfcc..e5274d2cf8 100644 --- a/src/create_bonds.cpp +++ b/src/create_bonds.cpp @@ -233,7 +233,7 @@ void CreateBonds::many() // build neighbor list this command needs based on earlier request NeighList *list = neighbor->lists[irequest]; - neighbor->build_one(list); + neighbor->build_one(list,1); // loop over all neighs of each atom // compute distance between two atoms consistently on both procs diff --git a/src/dihedral.h b/src/dihedral.h index c571a74dd4..c7fd459f1e 100644 --- a/src/dihedral.h +++ b/src/dihedral.h @@ -26,7 +26,7 @@ class Dihedral : protected Pointers { int *setflag; int writedata; // 1 if writes coeffs to data file double energy; // accumulated energy - double virial[6]; // accumulated virial + double virial[6]; // accumulated virial: xx,yy,zz,xy,xz,yz double *eatom,**vatom; // accumulated per-atom energy/virial double **cvatom; // accumulated per-atom centroid virial diff --git a/src/domain.h b/src/domain.h index d807463bf3..c3ea9e2bea 100644 --- a/src/domain.h +++ b/src/domain.h @@ -75,7 +75,8 @@ class Domain : protected Pointers { // triclinic box double xy,xz,yz; // 3 tilt factors - double h[6],h_inv[6]; // shape matrix in Voigt notation + double h[6],h_inv[6]; // shape matrix in Voigt ordering + // Voigt = xx,yy,zz,yz,xz,xy double h_rate[6],h_ratelo[3]; // rate of box size/shape change int box_change; // 1 if any of next 3 flags are set, else 0 diff --git a/src/fix.cpp b/src/fix.cpp index 573d8ae1a1..8cf13f6f1d 100644 --- a/src/fix.cpp +++ b/src/fix.cpp @@ -63,9 +63,10 @@ Fix::Fix(LAMMPS *lmp, int /*narg*/, char **arg) : box_change = NO_BOX_CHANGE; thermo_energy = 0; thermo_virial = 0; + energy_global_flag = energy_peratom_flag = 0; + virial_global_flag = virial_peratom_flag = 0; + ecouple_flag = 0; rigid_flag = 0; - peatom_flag = 0; - virial_flag = 0; no_change_box = 0; time_integrate = 0; time_depend = 0; @@ -150,7 +151,7 @@ void Fix::modify_params(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal fix_modify command"); if (strcmp(arg[iarg+1],"no") == 0) thermo_energy = 0; else if (strcmp(arg[iarg+1],"yes") == 0) { - if (!(THERMO_ENERGY & setmask())) + if (energy_global_flag == 0 && energy_peratom_flag == 0) error->all(FLERR,"Illegal fix_modify command"); thermo_energy = 1; } else error->all(FLERR,"Illegal fix_modify command"); @@ -159,7 +160,7 @@ void Fix::modify_params(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal fix_modify command"); if (strcmp(arg[iarg+1],"no") == 0) thermo_virial = 0; else if (strcmp(arg[iarg+1],"yes") == 0) { - if (virial_flag == 0) + if (virial_global_flag == 0 && virial_peratom_flag == 0) error->all(FLERR,"Illegal fix_modify command"); thermo_virial = 1; } else error->all(FLERR,"Illegal fix_modify command"); @@ -180,9 +181,12 @@ void Fix::modify_params(int narg, char **arg) } /* ---------------------------------------------------------------------- - setup for energy, virial computation + setup for peratom energy and global/peratom virial computation see integrate::ev_set() for values of eflag (0-3) and vflag (0-6) - fixes call this if they use ev_tally() + fixes call Fix::ev_init() if tally energy and virial values + if thermo_energy is not set, energy tallying is disabled + if thermo_virial is not set, virial tallying is disabled + global energy is tallied separately, output by compute_scalar() method ------------------------------------------------------------------------- */ void Fix::ev_setup(int eflag, int vflag) @@ -191,13 +195,19 @@ void Fix::ev_setup(int eflag, int vflag) evflag = 1; - eflag_either = eflag; - eflag_global = eflag & ENERGY_GLOBAL; - eflag_atom = eflag & ENERGY_ATOM; + if (!thermo_energy) eflag_either = eflag_global = eflag_atom = 0; + else { + eflag_either = eflag; + eflag_global = eflag & ENERGY_GLOBAL; + eflag_atom = eflag & ENERGY_ATOM; + } - vflag_either = vflag; - vflag_global = vflag & (VIRIAL_PAIR | VIRIAL_FDOTR); - vflag_atom = vflag & (VIRIAL_ATOM | VIRIAL_CENTROID); + if (!thermo_virial) vflag_either = vflag_global = vflag_atom = 0; + else { + vflag_either = vflag; + vflag_global = vflag & (VIRIAL_PAIR | VIRIAL_FDOTR); + vflag_atom = vflag & (VIRIAL_ATOM | VIRIAL_CENTROID); + } // reallocate per-atom arrays if necessary @@ -235,24 +245,17 @@ void Fix::ev_setup(int eflag, int vflag) } /* ---------------------------------------------------------------------- - if thermo_virial is on: - setup for virial computation - see integrate::ev_set() for values of vflag - fixes call this if use v_tally() - else: set evflag=0 + setup for global/peratom virial computation + see integrate::ev_set() for values of vflag (0-6) + fixes call Fix::v_init() if tally virial values but not energy + if thermo_virial is not set, virial tallying is disabled ------------------------------------------------------------------------- */ void Fix::v_setup(int vflag) { int i,n; - if (!thermo_virial) { - evflag = 0; - return; - } - evflag = 1; - vflag_global = vflag & (VIRIAL_PAIR | VIRIAL_FDOTR); vflag_atom = vflag & (VIRIAL_ATOM | VIRIAL_CENTROID); @@ -304,7 +307,6 @@ void Fix::ev_tally(int n, int *list, double total, double eng, double *v) v_tally(n,list,total,v); } - /* ---------------------------------------------------------------------- tally virial into global and per-atom accumulators n = # of local owned atoms involved, with local indices in list diff --git a/src/fix.h b/src/fix.h index ec951e3bb2..7092b56c8f 100644 --- a/src/fix.h +++ b/src/fix.h @@ -40,14 +40,18 @@ class Fix : protected Pointers { }; bigint next_reneighbor; // next timestep to force a reneighboring - int thermo_energy; // 1 if fix_modify enabled ThEng, 0 if not - int thermo_virial; // 1 if fix_modify enabled ThVir, 0 if not int nevery; // how often to call an end_of_step fix - int rigid_flag; // 1 if Fix integrates rigid bodies, 0 if not - int peatom_flag; // 1 if Fix contributes per-atom eng, 0 if not - int virial_flag; // 1 if Fix contributes to virial, 0 if not + int thermo_energy; // 1 if fix_modify energy enabled, 0 if not + int thermo_virial; // 1 if fix_modify virial enabled, 0 if not + int energy_global_flag; // 1 if contributes to global eng + int energy_peratom_flag; // 1 if contributes to peratom eng + int virial_global_flag; // 1 if contributes to global virial + int virial_peratom_flag; // 1 if contributes to peratom virial + int ecouple_flag; // 1 if thermostat fix outputs cumulative + // reservoir energy via compute_scalar() + int time_integrate; // 1 if performs time integration, 0 if no + int rigid_flag; // 1 if integrates rigid bodies, 0 if not int no_change_box; // 1 if cannot swap ortho <-> triclinic - int time_integrate; // 1 if fix performs time integration, 0 if no int time_depend; // 1 if requires continuous timestepping int create_attribute; // 1 if fix stores attributes that need // setting when a new atom is created @@ -99,8 +103,8 @@ class Fix : protected Pointers { int comm_reverse; // size of reverse communication (0 if none) int comm_border; // size of border communication (0 if none) - double virial[6]; // accumulated virial - double *eatom,**vatom; // accumulated per-atom energy/virial + double virial[6]; // virial for this timestep + double *eatom,**vatom; // per-atom energy/virial for this timestep int centroidstressflag; // centroid stress compared to two-body stress // CENTROID_SAME = same as two-body stress @@ -239,11 +243,17 @@ class Fix : protected Pointers { int dynamic; // recount atoms for temperature computes void ev_init(int eflag, int vflag) { - if (eflag||vflag) ev_setup(eflag, vflag); - else evflag = eflag_either = eflag_global = eflag_atom = vflag_either = vflag_global = vflag_atom = 0; + if ((eflag && thermo_energy) || (vflag && thermo_virial)) ev_setup(eflag, vflag); + else evflag = eflag_either = eflag_global = eflag_atom = + vflag_either = vflag_global = vflag_atom = 0; } void ev_setup(int, int); void ev_tally(int, int *, double, double, double *); + + void v_init(int vflag) { + if (vflag && thermo_virial) v_setup(vflag); + else evflag = vflag_either = vflag_global = vflag_atom = 0; + } void v_setup(int); void v_tally(int, int *, double, double *); void v_tally(int, double *); @@ -263,19 +273,18 @@ namespace FixConst { FINAL_INTEGRATE = 1<<8, END_OF_STEP = 1<<9, POST_RUN = 1<<10, - THERMO_ENERGY = 1<<11, - INITIAL_INTEGRATE_RESPA = 1<<12, - POST_INTEGRATE_RESPA = 1<<13, - PRE_FORCE_RESPA = 1<<14, - POST_FORCE_RESPA = 1<<15, - FINAL_INTEGRATE_RESPA = 1<<16, - MIN_PRE_EXCHANGE = 1<<17, - MIN_PRE_NEIGHBOR = 1<<18, - MIN_POST_NEIGHBOR = 1<<19, - MIN_PRE_FORCE = 1<<20, - MIN_PRE_REVERSE = 1<<21, - MIN_POST_FORCE = 1<<22, - MIN_ENERGY = 1<<23 + INITIAL_INTEGRATE_RESPA = 1<<11, + POST_INTEGRATE_RESPA = 1<<12, + PRE_FORCE_RESPA = 1<<13, + POST_FORCE_RESPA = 1<<14, + FINAL_INTEGRATE_RESPA = 1<<15, + MIN_PRE_EXCHANGE = 1<<16, + MIN_PRE_NEIGHBOR = 1<<17, + MIN_POST_NEIGHBOR = 1<<18, + MIN_PRE_FORCE = 1<<19, + MIN_PRE_REVERSE = 1<<20, + MIN_POST_FORCE = 1<<21, + MIN_ENERGY = 1<<22 }; } diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index ff634ba298..c09b6481f6 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -328,7 +328,7 @@ void FixAdapt::init() // strip it for pstyle arg to pair_match() and set nsub = N // this should work for appended suffixes as well - char *pstyle = strdup(ad->pstyle); + char *pstyle = utils::strdup(ad->pstyle); char *cptr; int nsub = 0; if ((cptr = strchr(pstyle,':'))) { diff --git a/src/fix_addforce.cpp b/src/fix_addforce.cpp index 28b8a23e3c..a06544e268 100644 --- a/src/fix_addforce.cpp +++ b/src/fix_addforce.cpp @@ -36,8 +36,8 @@ enum{NONE,CONSTANT,EQUAL,ATOM}; FixAddForce::FixAddForce(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), - xstr(nullptr), ystr(nullptr), zstr(nullptr), estr(nullptr), idregion(nullptr), sforce(nullptr) - + xstr(nullptr), ystr(nullptr), zstr(nullptr), estr(nullptr), + idregion(nullptr), sforce(nullptr) { if (narg < 6) error->all(FLERR,"Illegal fix addforce command"); @@ -48,9 +48,10 @@ FixAddForce::FixAddForce(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 1; extvector = 1; + energy_global_flag = 1; + virial_global_flag = virial_peratom_flag = 1; respa_level_support = 1; ilevel_respa = 0; - virial_flag = 1; xstr = ystr = zstr = nullptr; @@ -128,7 +129,6 @@ int FixAddForce::setmask() int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; @@ -232,10 +232,9 @@ void FixAddForce::post_force(int vflag) if (update->ntimestep % nevery) return; - // energy and virial setup + // virial setup - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); if (lmp->kokkos) atom->sync_modify(Host, (unsigned int) (F_MASK | MASK_MASK), @@ -342,7 +341,7 @@ void FixAddForce::post_force(int vflag) v[3] = xstyle ? xvalue*unwrap[1] : 0.0; v[4] = xstyle ? xvalue*unwrap[2] : 0.0; v[5] = ystyle ? yvalue*unwrap[2] : 0.0; - v_tally(i, v); + v_tally(i,v); } } } diff --git a/src/fix_ave_atom.cpp b/src/fix_ave_atom.cpp index 7182855766..affdf001f9 100644 --- a/src/fix_ave_atom.cpp +++ b/src/fix_ave_atom.cpp @@ -374,7 +374,7 @@ void FixAveAtom::end_of_step() } irepeat = 0; - nvalid = ntimestep+peratom_freq - (nrepeat-1)*nevery; + nvalid = ntimestep+peratom_freq - ((bigint)nrepeat-1)*nevery; modify->addstep_compute(nvalid); if (array == nullptr) return; @@ -394,7 +394,7 @@ void FixAveAtom::end_of_step() double FixAveAtom::memory_usage() { double bytes; - bytes = atom->nmax*nvalues * sizeof(double); + bytes = (double)atom->nmax*nvalues * sizeof(double); return bytes; } @@ -452,7 +452,7 @@ bigint FixAveAtom::nextvalid() if (nvalid-peratom_freq == update->ntimestep && nrepeat == 1) nvalid = update->ntimestep; else - nvalid -= (nrepeat-1)*nevery; + nvalid -= ((bigint)nrepeat-1)*nevery; if (nvalid < update->ntimestep) nvalid += peratom_freq; return nvalid; } diff --git a/src/fix_ave_chunk.cpp b/src/fix_ave_chunk.cpp index c65e0030c5..d13d46fc20 100644 --- a/src/fix_ave_chunk.cpp +++ b/src/fix_ave_chunk.cpp @@ -583,7 +583,7 @@ void FixAveChunk::end_of_step() } allocate(); if (nrepeat > 1 && ave == ONE) - cchunk->lock(this,ntimestep,ntimestep+(nrepeat-1)*nevery); + cchunk->lock(this,ntimestep,ntimestep+((bigint)nrepeat-1)*nevery); else if ((ave == RUNNING || ave == WINDOW) && !lockforever) { cchunk->lock(this,update->ntimestep,-1); lockforever = 1; @@ -841,7 +841,7 @@ void FixAveChunk::end_of_step() } irepeat = 0; - nvalid = ntimestep+nfreq - (nrepeat-1)*nevery; + nvalid = ntimestep+nfreq - ((bigint)nrepeat-1)*nevery; modify->addstep_compute(nvalid); // unlock compute chunk/atom at end of Nfreq epoch @@ -1120,7 +1120,7 @@ bigint FixAveChunk::nextvalid() if (nvalid-nfreq == update->ntimestep && nrepeat == 1) nvalid = update->ntimestep; else - nvalid -= (nrepeat-1)*nevery; + nvalid -= ((bigint)nrepeat-1)*nevery; if (nvalid < update->ntimestep) nvalid += nfreq; return nvalid; } diff --git a/src/fix_ave_correlate.cpp b/src/fix_ave_correlate.cpp index de0cc0da6f..efd06a182a 100644 --- a/src/fix_ave_correlate.cpp +++ b/src/fix_ave_correlate.cpp @@ -74,7 +74,7 @@ FixAveCorrelate::FixAveCorrelate(LAMMPS * lmp, int narg, char **arg): int iarg = 0; while (iarg < nargnew) { ArgInfo argi(arg[iarg]); - + if (argi.get_type() == ArgInfo::NONE) break; if ((argi.get_type() == ArgInfo::UNKNOWN) || (argi.get_dim() > 1)) error->all(FLERR,"Invalid fix ave/correlate command"); diff --git a/src/fix_ave_histo.cpp b/src/fix_ave_histo.cpp index cad509e165..0d82fd6b04 100644 --- a/src/fix_ave_histo.cpp +++ b/src/fix_ave_histo.cpp @@ -152,17 +152,15 @@ FixAveHisto::FixAveHisto(LAMMPS *lmp, int narg, char **arg) : ids[i] = nullptr; } else { - ArgInfo argi(arg[iarg]); + ArgInfo argi(arg[i]); if (argi.get_type() == ArgInfo::NONE) break; if ((argi.get_type() == ArgInfo::UNKNOWN) || (argi.get_dim() > 1)) error->all(FLERR,"Invalid fix ave/histo command"); - which[nvalues] = argi.get_type(); - argindex[nvalues] = argi.get_index1(); - ids[nvalues] = argi.copy_name(); - - nvalues++; + which[i] = argi.get_type(); + argindex[i] = argi.get_index1(); + ids[i] = argi.copy_name(); } } diff --git a/src/fix_box_relax.cpp b/src/fix_box_relax.cpp index 0200f8ed03..ef3032fe0c 100644 --- a/src/fix_box_relax.cpp +++ b/src/fix_box_relax.cpp @@ -738,7 +738,7 @@ void FixBoxRelax::couple() if (!std::isfinite(p_current[0]) || !std::isfinite(p_current[1]) || !std::isfinite(p_current[2])) error->all(FLERR,"Non-numeric pressure - simulation unstable"); - // switch order from xy-xz-yz to Voigt + // switch order from xy-xz-yz to Voigt ordering if (pstyle == TRICLINIC) { p_current[3] = tensor[5]; diff --git a/src/fix_external.cpp b/src/fix_external.cpp index 81ab1ec36a..c2bd447a47 100644 --- a/src/fix_external.cpp +++ b/src/fix_external.cpp @@ -35,9 +35,10 @@ FixExternal::FixExternal(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = 1; - virial_flag = 1; - thermo_virial = 1; extscalar = 1; + energy_global_flag = energy_peratom_flag = 1; + virial_global_flag = virial_peratom_flag = 1; + thermo_energy = thermo_virial = 1; if (strcmp(arg[3],"pf/callback") == 0) { if (narg != 6) error->all(FLERR,"Illegal fix external command"); @@ -89,7 +90,6 @@ int FixExternal::setmask() if (mode == PF_CALLBACK || mode == PF_ARRAY) { mask |= PRE_REVERSE; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= MIN_POST_FORCE; } return mask; @@ -195,7 +195,6 @@ void FixExternal::set_energy_global(double caller_energy) void FixExternal::set_virial_global(double *caller_virial) { - if (!evflag) return; if (!vflag_global) return; for (int i = 0; i < 6; i++) @@ -223,7 +222,6 @@ void FixExternal::set_virial_peratom(double **caller_virial) { int i,j; - if (!evflag) return; if (!vflag_atom) return; int nlocal = atom->nlocal; diff --git a/src/fix_gravity.cpp b/src/fix_gravity.cpp index f9f1dc317f..194f5731bc 100644 --- a/src/fix_gravity.cpp +++ b/src/fix_gravity.cpp @@ -46,6 +46,7 @@ FixGravity::FixGravity(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = 1; extscalar = 1; + energy_global_flag = 1; respa_level_support = 1; ilevel_respa = 0; @@ -60,7 +61,7 @@ FixGravity::FixGravity(LAMMPS *lmp, int narg, char **arg) : mstyle = CONSTANT; } - int iarg=4; + int iarg = 4; if (strcmp(arg[4],"chute") == 0) { if (narg < 6) error->all(FLERR,"Illegal fix gravity command"); @@ -172,7 +173,6 @@ int FixGravity::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; return mask; } diff --git a/src/fix_indent.cpp b/src/fix_indent.cpp index 8040cf10d1..48355446d1 100644 --- a/src/fix_indent.cpp +++ b/src/fix_indent.cpp @@ -47,6 +47,7 @@ FixIndent::FixIndent(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; vector_flag = 1; size_vector = 3; + energy_global_flag = 1; global_freq = 1; extscalar = 1; extvector = 1; @@ -107,7 +108,6 @@ int FixIndent::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; diff --git a/src/fix_langevin.cpp b/src/fix_langevin.cpp index 6f870b9138..66da7a9633 100644 --- a/src/fix_langevin.cpp +++ b/src/fix_langevin.cpp @@ -54,7 +54,8 @@ enum{CONSTANT,EQUAL,ATOM}; FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), gjfflag(0), gfactor1(nullptr), gfactor2(nullptr), ratio(nullptr), tstr(nullptr), - flangevin(nullptr), tforce(nullptr), franprev(nullptr), lv(nullptr), id_temp(nullptr), random(nullptr) + flangevin(nullptr), tforce(nullptr), franprev(nullptr), + lv(nullptr), id_temp(nullptr), random(nullptr) { if (narg < 7) error->all(FLERR,"Illegal fix langevin command"); @@ -62,6 +63,7 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = 1; extscalar = 1; + ecouple_flag = 1; nevery = 1; if (utils::strmatch(arg[3],"^v_")) { @@ -190,7 +192,6 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) : lv[i][2] = 0.0; } } - } /* ---------------------------------------------------------------------- */ @@ -222,7 +223,6 @@ int FixLangevin::setmask() mask |= POST_FORCE; mask |= POST_FORCE_RESPA; mask |= END_OF_STEP; - mask |= THERMO_ENERGY; return mask; } diff --git a/src/fix_nh.cpp b/src/fix_nh.cpp index 674cda4529..46afe7b2d7 100644 --- a/src/fix_nh.cpp +++ b/src/fix_nh.cpp @@ -51,7 +51,8 @@ enum{ISO,ANISO,TRICLINIC}; FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), - rfix(nullptr), id_dilate(nullptr), irregular(nullptr), id_temp(nullptr), id_press(nullptr), + rfix(nullptr), id_dilate(nullptr), irregular(nullptr), + id_temp(nullptr), id_press(nullptr), eta(nullptr), eta_dot(nullptr), eta_dotdot(nullptr), eta_mass(nullptr), etap(nullptr), etap_dot(nullptr), etap_dotdot(nullptr), etap_mass(nullptr) @@ -66,6 +67,7 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 1; extvector = 0; + ecouple_flag = 1; // default values @@ -632,7 +634,6 @@ int FixNH::setmask() int mask = 0; mask |= INITIAL_INTEGRATE; mask |= FINAL_INTEGRATE; - mask |= THERMO_ENERGY; mask |= INITIAL_INTEGRATE_RESPA; mask |= FINAL_INTEGRATE_RESPA; if (pre_exchange_flag) mask |= PRE_EXCHANGE; @@ -784,7 +785,8 @@ void FixNH::setup(int /*vflag*/) } else { t0 = temperature->compute_scalar(); if (t0 < EPSILON) - error->all(FLERR, "Current temperature too close to zero, consider using ptemp setting"); + error->all(FLERR,"Current temperature too close to zero, " + "consider using ptemp setting"); } } t_target = t0; @@ -1061,7 +1063,7 @@ void FixNH::couple() if (!std::isfinite(p_current[0]) || !std::isfinite(p_current[1]) || !std::isfinite(p_current[2])) error->all(FLERR,"Non-numeric pressure - simulation unstable"); - // switch order from xy-xz-yz to Voigt + // switch order from xy-xz-yz to Voigt ordering if (pstyle == TRICLINIC) { p_current[3] = tensor[5]; @@ -1116,7 +1118,7 @@ void FixNH::remap() // h_dot = omega_dot * h // // where h_dot, omega_dot and h are all upper-triangular - // 3x3 tensors. In Voigt notation, the elements of the + // 3x3 tensors. In Voigt ordering, the elements of the // RHS product tensor are: // h_dot = [0*0, 1*1, 2*2, 1*3+3*2, 0*4+5*3+4*2, 0*5+5*1] // diff --git a/src/fix_restrain.cpp b/src/fix_restrain.cpp index d1a05c2aca..82e91c8289 100644 --- a/src/fix_restrain.cpp +++ b/src/fix_restrain.cpp @@ -30,7 +30,6 @@ #include "memory.h" #include "error.h" - using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; @@ -57,6 +56,7 @@ FixRestrain::FixRestrain(LAMMPS *lmp, int narg, char **arg) : vector_flag = 1; size_vector = 3; extvector = 1; + energy_global_flag = 1; respa_level_support = 1; ilevel_respa = 0; @@ -176,7 +176,6 @@ int FixRestrain::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; diff --git a/src/fix_spring.cpp b/src/fix_spring.cpp index d3f89ec97a..4bbaf594bd 100644 --- a/src/fix_spring.cpp +++ b/src/fix_spring.cpp @@ -47,6 +47,7 @@ FixSpring::FixSpring(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 1; extvector = 1; + energy_global_flag = 1; dynamic_group_allow = 1; respa_level_support = 1; ilevel_respa = 0; @@ -108,7 +109,6 @@ int FixSpring::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; diff --git a/src/fix_spring_chunk.cpp b/src/fix_spring_chunk.cpp index 130998dcd5..9ae4ee4632 100644 --- a/src/fix_spring_chunk.cpp +++ b/src/fix_spring_chunk.cpp @@ -43,6 +43,7 @@ FixSpringChunk::FixSpringChunk(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = 1; extscalar = 1; + energy_global_flag = 1; respa_level_support = 1; ilevel_respa = 0; @@ -86,7 +87,6 @@ int FixSpringChunk::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; diff --git a/src/fix_spring_self.cpp b/src/fix_spring_self.cpp index 79046e09f7..7a22cbd3f8 100644 --- a/src/fix_spring_self.cpp +++ b/src/fix_spring_self.cpp @@ -42,6 +42,7 @@ FixSpringSelf::FixSpringSelf(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = 1; extscalar = 1; + energy_global_flag = 1; respa_level_support = 1; k = utils::numeric(FLERR,arg[3],false,lmp); @@ -110,7 +111,6 @@ int FixSpringSelf::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; diff --git a/src/fix_store.cpp b/src/fix_store.cpp index 9df9fcd3bd..f979cf9da0 100644 --- a/src/fix_store.cpp +++ b/src/fix_store.cpp @@ -167,8 +167,8 @@ void FixStore::write_restart(FILE *fp) rbuf[0] = nrow; rbuf[1] = ncol; - if (vecflag) memcpy(&rbuf[2],vstore,nrow*sizeof(double)); - else memcpy(&rbuf[2],&astore[0][0],nrow*ncol*sizeof(double)); + if (vecflag) memcpy(&rbuf[2],vstore,sizeof(double)*nrow); + else memcpy(&rbuf[2],&astore[0][0],sizeof(double)*nrow*ncol); int n = nrow*ncol + 2; if (comm->me == 0) { diff --git a/src/fix_temp_berendsen.cpp b/src/fix_temp_berendsen.cpp index 403e43cd61..f951975937 100644 --- a/src/fix_temp_berendsen.cpp +++ b/src/fix_temp_berendsen.cpp @@ -45,10 +45,11 @@ FixTempBerendsen::FixTempBerendsen(LAMMPS *lmp, int narg, char **arg) : restart_global = 1; dynamic_group_allow = 1; - nevery = 1; scalar_flag = 1; - global_freq = nevery; extscalar = 1; + ecouple_flag = 1; + nevery = 1; + global_freq = nevery; tstr = nullptr; if (utils::strmatch(arg[3],"^v_")) { @@ -98,7 +99,6 @@ int FixTempBerendsen::setmask() { int mask = 0; mask |= END_OF_STEP; - mask |= THERMO_ENERGY; return mask; } diff --git a/src/fix_temp_csld.cpp b/src/fix_temp_csld.cpp index f8afdada97..2ee2044639 100644 --- a/src/fix_temp_csld.cpp +++ b/src/fix_temp_csld.cpp @@ -52,6 +52,7 @@ FixTempCSLD::FixTempCSLD(LAMMPS *lmp, int narg, char **arg) : restart_global = 1; nevery = 1; scalar_flag = 1; + ecouple_flag = 1; global_freq = nevery; dynamic_group_allow = 1; extscalar = 1; @@ -114,7 +115,6 @@ int FixTempCSLD::setmask() { int mask = 0; mask |= END_OF_STEP; - mask |= THERMO_ENERGY; return mask; } @@ -294,7 +294,6 @@ double FixTempCSLD::compute_scalar() return energy; } - /* ---------------------------------------------------------------------- pack entire state of Fix into one write ------------------------------------------------------------------------- */ diff --git a/src/fix_temp_csvr.cpp b/src/fix_temp_csvr.cpp index 3f71c211e5..cdce9175d6 100644 --- a/src/fix_temp_csvr.cpp +++ b/src/fix_temp_csvr.cpp @@ -39,82 +39,6 @@ using namespace FixConst; enum{NOBIAS,BIAS}; enum{CONSTANT,EQUAL}; -double FixTempCSVR::gamdev(const int ia) -{ - int j; - double am,e,s,v1,v2,x,y; - - if (ia < 1) return 0.0; - if (ia < 6) { - x=1.0; - for (j=1; j<=ia; j++) - x *= random->uniform(); - - // make certain, that -log() doesn't overflow. - if (x < 2.2250759805e-308) - x = 708.4; - else - x = -log(x); - } else { - restart: - do { - do { - do { - v1 = random->uniform(); - v2 = 2.0*random->uniform() - 1.0; - } while (v1*v1 + v2*v2 > 1.0); - - y=v2/v1; - am=ia-1; - s=sqrt(2.0*am+1.0); - x=s*y+am; - } while (x <= 0.0); - - if (am*log(x/am)-s*y < -700 || v1<0.00001) { - goto restart; - } - - e=(1.0+y*y)*exp(am*log(x/am)-s*y); - } while (random->uniform() > e); - } - return x; -} - -/* ------------------------------------------------------------------- - returns the sum of n independent gaussian noises squared - (i.e. equivalent to summing the square of the return values of nn - calls to gasdev) ----------------------------------------------------------------------- */ -double FixTempCSVR::sumnoises(int nn) { - if (nn == 0) { - return 0.0; - } else if (nn == 1) { - const double rr = random->gaussian(); - return rr*rr; - } else if (nn % 2 == 0) { - return 2.0 * gamdev(nn / 2); - } else { - const double rr = random->gaussian(); - return 2.0 * gamdev((nn-1) / 2) + rr*rr; - } -} - -/* ------------------------------------------------------------------- - returns the scaling factor for velocities to thermalize - the system so it samples the canonical ensemble ----------------------------------------------------------------------- */ - -double FixTempCSVR::resamplekin(double ekin_old, double ekin_new) { - const double tdof = temperature->dof; - const double c1 = exp(-update->dt/t_period); - const double c2 = (1.0-c1)*ekin_new/ekin_old/tdof; - const double r1 = random->gaussian(); - const double r2 = sumnoises(tdof - 1); - - const double scale = c1 + c2*(r1*r1+r2) + 2.0*r1*sqrt(c1*c2); - return sqrt(scale); -} - /* ---------------------------------------------------------------------- */ FixTempCSVR::FixTempCSVR(LAMMPS *lmp, int narg, char **arg) : @@ -128,6 +52,7 @@ FixTempCSVR::FixTempCSVR(LAMMPS *lmp, int narg, char **arg) : restart_global = 1; nevery = 1; scalar_flag = 1; + ecouple_flag = 1; global_freq = nevery; dynamic_group_allow = 1; extscalar = 1; @@ -187,7 +112,6 @@ int FixTempCSVR::setmask() { int mask = 0; mask |= END_OF_STEP; - mask |= THERMO_ENERGY; return mask; } @@ -195,7 +119,6 @@ int FixTempCSVR::setmask() void FixTempCSVR::init() { - // check variable if (tstr) { @@ -219,7 +142,6 @@ void FixTempCSVR::init() void FixTempCSVR::end_of_step() { - // set current t_target // if variable temp, evaluate variable, wrap with clear/add @@ -315,6 +237,85 @@ int FixTempCSVR::modify_param(int narg, char **arg) /* ---------------------------------------------------------------------- */ +double FixTempCSVR::gamdev(const int ia) +{ + int j; + double am,e,s,v1,v2,x,y; + + if (ia < 1) return 0.0; + if (ia < 6) { + x=1.0; + for (j=1; j<=ia; j++) + x *= random->uniform(); + + // make certain, that -log() doesn't overflow. + if (x < 2.2250759805e-308) + x = 708.4; + else + x = -log(x); + } else { + restart: + do { + do { + do { + v1 = random->uniform(); + v2 = 2.0*random->uniform() - 1.0; + } while (v1*v1 + v2*v2 > 1.0); + + y=v2/v1; + am=ia-1; + s=sqrt(2.0*am+1.0); + x=s*y+am; + } while (x <= 0.0); + + if (am*log(x/am)-s*y < -700 || v1<0.00001) { + goto restart; + } + + e=(1.0+y*y)*exp(am*log(x/am)-s*y); + } while (random->uniform() > e); + } + return x; +} + +/* ------------------------------------------------------------------- + returns the sum of n independent gaussian noises squared + (i.e. equivalent to summing the square of the return values of nn + calls to gasdev) +---------------------------------------------------------------------- */ + +double FixTempCSVR::sumnoises(int nn) { + if (nn == 0) { + return 0.0; + } else if (nn == 1) { + const double rr = random->gaussian(); + return rr*rr; + } else if (nn % 2 == 0) { + return 2.0 * gamdev(nn / 2); + } else { + const double rr = random->gaussian(); + return 2.0 * gamdev((nn-1) / 2) + rr*rr; + } +} + +/* ------------------------------------------------------------------- + returns the scaling factor for velocities to thermalize + the system so it samples the canonical ensemble +---------------------------------------------------------------------- */ + +double FixTempCSVR::resamplekin(double ekin_old, double ekin_new) { + const double tdof = temperature->dof; + const double c1 = exp(-update->dt/t_period); + const double c2 = (1.0-c1)*ekin_new/ekin_old/tdof; + const double r1 = random->gaussian(); + const double r2 = sumnoises(tdof - 1); + + const double scale = c1 + c2*(r1*r1+r2) + 2.0*r1*sqrt(c1*c2); + return sqrt(scale); +} + +/* ---------------------------------------------------------------------- */ + void FixTempCSVR::reset_target(double t_new) { t_target = t_start = t_stop = t_new; diff --git a/src/fix_temp_rescale.cpp b/src/fix_temp_rescale.cpp index 6ad0d705f6..fa4c87a256 100644 --- a/src/fix_temp_rescale.cpp +++ b/src/fix_temp_rescale.cpp @@ -48,6 +48,7 @@ FixTempRescale::FixTempRescale(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; global_freq = nevery; extscalar = 1; + ecouple_flag = 1; dynamic_group_allow = 1; tstr = nullptr; @@ -94,7 +95,6 @@ int FixTempRescale::setmask() { int mask = 0; mask |= END_OF_STEP; - mask |= THERMO_ENERGY; return mask; } diff --git a/src/fix_wall.cpp b/src/fix_wall.cpp index 26ea22db9d..677085854c 100644 --- a/src/fix_wall.cpp +++ b/src/fix_wall.cpp @@ -41,9 +41,10 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 1; extvector = 1; + energy_global_flag = 1; + virial_global_flag = virial_peratom_flag = 1; respa_level_support = 1; ilevel_respa = 0; - virial_flag = 1; // parse args @@ -225,7 +226,6 @@ int FixWall::setmask() if (fldflag) mask |= PRE_FORCE; else mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; @@ -302,12 +302,12 @@ void FixWall::pre_force(int vflag) void FixWall::post_force(int vflag) { + // virial setup - // energy and virial setup + v_init(vflag); + + // energy intialize - eflag = 0; - if (vflag) v_setup(vflag); - else evflag = 0; for (int m = 0; m <= nwall; m++) ewall[m] = 0.0; // coord = current position of wall diff --git a/src/fix_wall_harmonic.cpp b/src/fix_wall_harmonic.cpp index 864125d93f..ffd950262b 100644 --- a/src/fix_wall_harmonic.cpp +++ b/src/fix_wall_harmonic.cpp @@ -67,7 +67,7 @@ void FixWallHarmonic::wall_particle(int m, int which, double coord) if (evflag) { if (side < 0) vn = -fwall*delta; else vn = fwall*delta; - v_tally(dim, i, vn); + v_tally(dim,i,vn); } } diff --git a/src/fix_wall_region.cpp b/src/fix_wall_region.cpp index 3107f876de..4d976373a5 100644 --- a/src/fix_wall_region.cpp +++ b/src/fix_wall_region.cpp @@ -44,9 +44,10 @@ FixWallRegion::FixWallRegion(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extscalar = 1; extvector = 1; + energy_global_flag = 1; + virial_global_flag = virial_peratom_flag = 1; respa_level_support = 1; ilevel_respa = 0; - virial_flag = 1; // parse args @@ -104,7 +105,6 @@ int FixWallRegion::setmask() { int mask = 0; mask |= POST_FORCE; - mask |= THERMO_ENERGY; mask |= POST_FORCE_RESPA; mask |= MIN_POST_FORCE; return mask; @@ -234,11 +234,9 @@ void FixWallRegion::post_force(int vflag) int onflag = 0; - // energy and virial setup + // virial setup - eflag = 0; - if (vflag) v_setup(vflag); - else evflag = 0; + v_init(vflag); // region->match() insures particle is in region or on surface, else error // if returned contact dist r = 0, is on surface, also an error diff --git a/src/improper.h b/src/improper.h index 9e73be931c..1b3c9b6786 100644 --- a/src/improper.h +++ b/src/improper.h @@ -26,7 +26,7 @@ class Improper : protected Pointers { int *setflag; int writedata; // 1 if writes coeffs to data file double energy; // accumulated energies - double virial[6]; // accumulated virial + double virial[6]; // accumulated virial: xx,yy,zz,xy,xz,yz double *eatom,**vatom; // accumulated per-atom energy/virial double **cvatom; // accumulated per-atom centroid virial diff --git a/src/integrate.cpp b/src/integrate.cpp index 5c700527a1..f866840f1c 100644 --- a/src/integrate.cpp +++ b/src/integrate.cpp @@ -12,12 +12,14 @@ ------------------------------------------------------------------------- */ #include "integrate.h" -#include "update.h" + +#include "citeme.h" +#include "compute.h" #include "force.h" -#include "pair.h" #include "kspace.h" #include "modify.h" -#include "compute.h" +#include "pair.h" +#include "update.h" using namespace LAMMPS_NS; @@ -45,6 +47,7 @@ Integrate::~Integrate() void Integrate::init() { + if (lmp->citeme) lmp->citeme->flush(); update->atimestep = update->ntimestep; // allow pair and Kspace compute() to be turned off via modify flags diff --git a/src/irregular.cpp b/src/irregular.cpp index 330a96f514..c1c4ff44fb 100644 --- a/src/irregular.cpp +++ b/src/irregular.cpp @@ -930,11 +930,11 @@ void Irregular::exchange_data(char *sendbuf, int nbytes, char *recvbuf) // post all receives, starting after self copies - bigint offset = num_self*(bigint)nbytes; + bigint offset = (bigint)num_self*(bigint)nbytes; for (int irecv = 0; irecv < nrecv_proc; irecv++) { MPI_Irecv(&recvbuf[offset],num_recv[irecv]*nbytes,MPI_CHAR, proc_recv[irecv],0,world,&request[irecv]); - offset += num_recv[irecv]*nbytes; + offset += (bigint)num_recv[irecv]*nbytes; } // reallocate buf for largest send if necessary diff --git a/src/kspace.h b/src/kspace.h index 978daeace1..4777963d8a 100644 --- a/src/kspace.h +++ b/src/kspace.h @@ -32,7 +32,7 @@ class KSpace : protected Pointers { public: double energy; // accumulated energies double energy_1,energy_6; - double virial[6]; // accumulated virial + double virial[6]; // accumulated virial: xx,yy,zz,xy,xz,yz double *eatom,**vatom; // accumulated per-atom energy/virial double e2group; // accumulated group-group energy double f2group[3]; // accumulated group-group force diff --git a/src/lammps.cpp b/src/lammps.cpp index 0b38f09ef5..6734fbd209 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -171,6 +171,9 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) : int restart2dump = 0; int restartremap = 0; int citeflag = 1; + int citescreen = CiteMe::TERSE; + int citelogfile = CiteMe::VERBOSE; + char *citefile = nullptr; int helpflag = 0; suffix = suffix2 = suffixp = nullptr; @@ -190,7 +193,35 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) : iarg = 1; while (iarg < narg) { - if (strcmp(arg[iarg],"-echo") == 0 || + if (strcmp(arg[iarg],"-cite") == 0 || + strcmp(arg[iarg],"-c") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + + if (strcmp(arg[iarg+1],"both") == 0) { + citescreen = CiteMe::VERBOSE; + citelogfile = CiteMe::VERBOSE; + citefile = nullptr; + } else if (strcmp(arg[iarg+1],"none") == 0) { + citescreen = CiteMe::TERSE; + citelogfile = CiteMe::TERSE; + citefile = nullptr; + } else if (strcmp(arg[iarg+1],"screen") == 0) { + citescreen = CiteMe::VERBOSE; + citelogfile = CiteMe::TERSE; + citefile = nullptr; + } else if (strcmp(arg[iarg+1],"log") == 0) { + citescreen = CiteMe::TERSE; + citelogfile = CiteMe::VERBOSE; + citefile = nullptr; + } else { + citescreen = CiteMe::TERSE; + citelogfile = CiteMe::TERSE; + citefile = arg[iarg+1]; + } + iarg += 2; + + } else if (strcmp(arg[iarg],"-echo") == 0 || strcmp(arg[iarg],"-e") == 0) { if (iarg+2 > narg) error->universe_all(FLERR,"Invalid command-line argument"); @@ -605,7 +636,7 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) : // allocate CiteMe class if enabled - if (citeflag) citeme = new CiteMe(this); + if (citeflag) citeme = new CiteMe(this,citescreen,citelogfile,citefile); else citeme = nullptr; // allocate input class now that MPI is fully setup @@ -669,8 +700,8 @@ LAMMPS::~LAMMPS() { const int me = comm->me; - destroy(); delete citeme; + destroy(); if (num_package) { for (int i = 0; i < num_package; i++) { @@ -1111,7 +1142,8 @@ void _noopt LAMMPS::help() "-kokkos on/off ... : turn KOKKOS mode on or off (-k)\n" "-log none/filename : where to send log output (-l)\n" "-mpicolor color : which exe in a multi-exe mpirun cmd (-m)\n" - "-nocite : disable writing log.cite file (-nc)\n" + "-cite : select citation reminder style (-c)\n" + "-nocite : disable citation reminder (-nc)\n" "-package style ... : invoke package command (-pk)\n" "-partition size1 size2 ... : assign partition sizes (-p)\n" "-plog basename : basename for partition logs (-pl)\n" diff --git a/src/lammps.h b/src/lammps.h index 49d55d4e37..553db6597e 100644 --- a/src/lammps.h +++ b/src/lammps.h @@ -56,7 +56,6 @@ class LAMMPS { char *exename; // pointer to argv[0] char ***packargs; // arguments for cmdline package commands int num_package; // number of cmdline package commands - int cite_enable; // 1 if generating log.cite, 0 if disabled int clientserver; // 0 = neither, 1 = client, 2 = server void *cslib; // client/server messaging via CSlib @@ -66,9 +65,9 @@ class LAMMPS { class AtomKokkos *atomKK; // KOKKOS version of Atom class class MemoryKokkos *memoryKK; // KOKKOS version of Memory class - class Python * python; // Python interface + class Python *python; // Python interface - class CiteMe *citeme; // citation info + class CiteMe *citeme; // handle citation info const char *match_style(const char *style, const char *name); static const char * installed_packages[]; diff --git a/src/math_extra.cpp b/src/math_extra.cpp index 2116324494..df74ad5be2 100644 --- a/src/math_extra.cpp +++ b/src/math_extra.cpp @@ -396,7 +396,7 @@ void quat_to_mat_trans(const double *quat, double mat[3][3]) compute space-frame inertia tensor of an ellipsoid radii = 3 radii of ellipsoid quat = orientiation quaternion of ellipsoid - return symmetric inertia tensor as 6-vector in Voigt notation + return symmetric inertia tensor as 6-vector in Voigt ordering ------------------------------------------------------------------------- */ void inertia_ellipsoid(double *radii, double *quat, double mass, @@ -424,7 +424,7 @@ void inertia_ellipsoid(double *radii, double *quat, double mass, compute space-frame inertia tensor of a line segment in 2d length = length of line theta = orientiation of line - return symmetric inertia tensor as 6-vector in Voigt notation + return symmetric inertia tensor as 6-vector in Voigt ordering ------------------------------------------------------------------------- */ void inertia_line(double length, double theta, double mass, double *inertia) @@ -462,7 +462,7 @@ void inertia_line(double length, double theta, double mass, double *inertia) S = 1/24 [2 1 1] [1 2 1] [1 1 2] - return symmetric inertia tensor as 6-vector in Voigt notation + return symmetric inertia tensor as 6-vector in Voigt ordering ------------------------------------------------------------------------- */ void inertia_triangle(double *v0, double *v1, double *v2, @@ -503,7 +503,7 @@ void inertia_triangle(double *v0, double *v1, double *v2, compute space-frame inertia tensor of a triangle idiag = previously computed diagonal inertia tensor quat = orientiation quaternion of triangle - return symmetric inertia tensor as 6-vector in Voigt notation + return symmetric inertia tensor as 6-vector in Voigt ordering ------------------------------------------------------------------------- */ void inertia_triangle(double *idiag, double *quat, double /*mass*/, diff --git a/src/math_extra.h b/src/math_extra.h index 390538efdb..767ae3f531 100644 --- a/src/math_extra.h +++ b/src/math_extra.h @@ -95,7 +95,7 @@ namespace MathExtra { double dt); // shape matrix operations - // upper-triangular 3x3 matrix stored in Voigt notation as 6-vector + // upper-triangular 3x3 matrix stored in Voigt ordering as 6-vector inline void multiply_shape_shape(const double *one, const double *two, double *ans); @@ -593,7 +593,7 @@ inline void MathExtra::scalar_times3(const double f, double m[3][3]) /* ---------------------------------------------------------------------- multiply 2 shape matrices - upper-triangular 3x3, stored as 6-vector in Voigt notation + upper-triangular 3x3, stored as 6-vector in Voigt ordering ------------------------------------------------------------------------- */ inline void MathExtra::multiply_shape_shape(const double *one, diff --git a/src/memory.h b/src/memory.h index 64685feac0..d85eb64a36 100644 --- a/src/memory.h +++ b/src/memory.h @@ -410,18 +410,18 @@ class Memory : protected Pointers { nbytes = ((bigint) sizeof(TYPE ***)) * n1; array = (TYPE ****) smalloc(nbytes,name); - int i,j,k; + bigint i,j,k; bigint m1,m2; bigint n = 0; for (i = 0; i < n1; i++) { - m2 = ((bigint) i) * n2; + m2 = i * n2; array[i] = &plane[m2]; for (j = 0; j < n2; j++) { - m1 = ((bigint) i) * n2 + j; - m2 = ((bigint) i) * n2*n3 + j*n3; + m1 = i * n2 + j; + m2 = i * n2*n3 + j*n3; plane[m1] = &cube[m2]; for (k = 0; k < n3; k++) { - m1 = ((bigint) i) * n2*n3 + j*n3 + k; + m1 = i * n2*n3 + j*n3 + k; cube[m1] = &data[n]; n += n4; } diff --git a/src/minimize.cpp b/src/minimize.cpp index a909afdaa5..8e55d6e0ea 100644 --- a/src/minimize.cpp +++ b/src/minimize.cpp @@ -13,6 +13,7 @@ #include "minimize.h" +#include "citeme.h" #include "domain.h" #include "error.h" #include "finish.h" @@ -46,6 +47,7 @@ void Minimize::command(int narg, char **arg) if (update->etol < 0.0 || update->ftol < 0.0) error->all(FLERR,"Illegal minimize command"); + if (lmp->citeme) lmp->citeme->flush(); update->whichflag = 2; update->beginstep = update->firststep = update->ntimestep; update->endstep = update->laststep = update->firststep + update->nsteps; diff --git a/src/modify.cpp b/src/modify.cpp index b74b48dbad..0b6a6ca823 100644 --- a/src/modify.cpp +++ b/src/modify.cpp @@ -46,8 +46,8 @@ Modify::Modify(LAMMPS *lmp) : Pointers(lmp) n_initial_integrate = n_post_integrate = 0; n_pre_exchange = n_pre_neighbor = n_post_neighbor = 0; n_pre_force = n_pre_reverse = n_post_force = 0; - n_final_integrate = n_end_of_step = n_thermo_energy = 0; - n_thermo_energy_atom = 0; + n_final_integrate = n_end_of_step = 0; + n_energy_couple = n_energy_global = n_energy_atom = 0; n_initial_integrate_respa = n_post_integrate_respa = 0; n_pre_force_respa = n_post_force_respa = n_final_integrate_respa = 0; n_min_pre_exchange = n_min_pre_force = n_min_pre_reverse = 0; @@ -60,7 +60,7 @@ Modify::Modify(LAMMPS *lmp) : Pointers(lmp) list_pre_exchange = list_pre_neighbor = list_post_neighbor = nullptr; list_pre_force = list_pre_reverse = list_post_force = nullptr; list_final_integrate = list_end_of_step = nullptr; - list_thermo_energy = list_thermo_energy_atom = nullptr; + list_energy_couple = list_energy_global = list_energy_atom = nullptr; list_initial_integrate_respa = list_post_integrate_respa = nullptr; list_pre_force_respa = list_post_force_respa = nullptr; list_final_integrate_respa = nullptr; @@ -137,8 +137,9 @@ Modify::~Modify() delete [] list_post_force; delete [] list_final_integrate; delete [] list_end_of_step; - delete [] list_thermo_energy; - delete [] list_thermo_energy_atom; + delete [] list_energy_couple; + delete [] list_energy_global; + delete [] list_energy_atom; delete [] list_initial_integrate_respa; delete [] list_post_integrate_respa; delete [] list_pre_force_respa; @@ -218,8 +219,9 @@ void Modify::init() list_init(POST_FORCE,n_post_force,list_post_force); list_init(FINAL_INTEGRATE,n_final_integrate,list_final_integrate); list_init_end_of_step(END_OF_STEP,n_end_of_step,list_end_of_step); - list_init_thermo_energy(THERMO_ENERGY,n_thermo_energy,list_thermo_energy); - list_init_thermo_energy_atom(n_thermo_energy_atom,list_thermo_energy_atom); + list_init_energy_couple(n_energy_couple,list_energy_couple); + list_init_energy_global(n_energy_global,list_energy_global); + list_init_energy_atom(n_energy_atom,list_energy_atom); list_init(INITIAL_INTEGRATE_RESPA, n_initial_integrate_respa,list_initial_integrate_respa); @@ -486,31 +488,45 @@ void Modify::end_of_step() } /* ---------------------------------------------------------------------- - thermo energy call, only for relevant fixes - called by Thermo class - compute_scalar() is fix call to return energy + coupling energy call, only for relevant fixes + each thermostsat fix returns this via compute_scalar() + ecouple = cumulative energy added to reservoir by thermostatting ------------------------------------------------------------------------- */ -double Modify::thermo_energy() +double Modify::energy_couple() { double energy = 0.0; - for (int i = 0; i < n_thermo_energy; i++) - energy += fix[list_thermo_energy[i]]->compute_scalar(); + for (int i = 0; i < n_energy_couple; i++) + energy += fix[list_energy_couple[i]]->compute_scalar(); return energy; } /* ---------------------------------------------------------------------- - per-atom thermo energy call, only for relevant fixes + global energy call, only for relevant fixes + they return energy via compute_scalar() + called by compute pe +------------------------------------------------------------------------- */ + +double Modify::energy_global() +{ + double energy = 0.0; + for (int i = 0; i < n_energy_global; i++) + energy += fix[list_energy_global[i]]->compute_scalar(); + return energy; +} + +/* ---------------------------------------------------------------------- + peratom energy call, only for relevant fixes called by compute pe/atom ------------------------------------------------------------------------- */ -void Modify::thermo_energy_atom(int nlocal, double *energy) +void Modify::energy_atom(int nlocal, double *energy) { int i,j; double *eatom; - for (i = 0; i < n_thermo_energy_atom; i++) { - eatom = fix[list_thermo_energy_atom[i]]->eatom; + for (i = 0; i < n_energy_atom; i++) { + eatom = fix[list_energy_atom[i]]->eatom; if (!eatom) continue; for (j = 0; j < nlocal; j++) energy[j] += eatom[j]; } @@ -1632,43 +1648,60 @@ void Modify::list_init_end_of_step(int mask, int &n, int *&list) } /* ---------------------------------------------------------------------- - create list of fix indices for thermo energy fixes - only added to list if fix has THERMO_ENERGY mask set, - and its thermo_energy flag was set via fix_modify + create list of fix indices for fixes that compute reservoir coupling energy + only added to list if fix has ecouple_flag set ------------------------------------------------------------------------- */ -void Modify::list_init_thermo_energy(int mask, int &n, int *&list) +void Modify::list_init_energy_couple(int &n, int *&list) { delete [] list; n = 0; for (int i = 0; i < nfix; i++) - if (fmask[i] & mask && fix[i]->thermo_energy) n++; + if (fix[i]->ecouple_flag) n++; list = new int[n]; n = 0; for (int i = 0; i < nfix; i++) - if (fmask[i] & mask && fix[i]->thermo_energy) list[n++] = i; + if (fix[i]->ecouple_flag) list[n++] = i; } /* ---------------------------------------------------------------------- - create list of fix indices for peratom thermo energy fixes - only added to list if fix has its peatom_flag set, - and its thermo_energy flag was set via fix_modify + create list of fix indices for fixes that compute global energy + only added to list if fix has energy_global_flag and thermo_energy set ------------------------------------------------------------------------- */ -void Modify::list_init_thermo_energy_atom(int &n, int *&list) +void Modify::list_init_energy_global(int &n, int *&list) { delete [] list; n = 0; for (int i = 0; i < nfix; i++) - if (fix[i]->peatom_flag && fix[i]->thermo_energy) n++; + if (fix[i]->energy_global_flag && fix[i]->thermo_energy) n++; list = new int[n]; n = 0; for (int i = 0; i < nfix; i++) - if (fix[i]->peatom_flag && fix[i]->thermo_energy) list[n++] = i; + if (fix[i]->energy_global_flag && fix[i]->thermo_energy) list[n++] = i; +} + +/* ---------------------------------------------------------------------- + create list of fix indices for fixes that compute peratom energy + only added to list if fix has energy_peratom_flag and thermo_energy set +------------------------------------------------------------------------- */ + +void Modify::list_init_energy_atom(int &n, int *&list) +{ + delete [] list; + + n = 0; + for (int i = 0; i < nfix; i++) + if (fix[i]->energy_peratom_flag && fix[i]->thermo_energy) n++; + list = new int[n]; + + n = 0; + for (int i = 0; i < nfix; i++) + if (fix[i]->energy_peratom_flag && fix[i]->thermo_energy) list[n++] = i; } /* ---------------------------------------------------------------------- diff --git a/src/modify.h b/src/modify.h index a347e8486d..ba8efd6525 100644 --- a/src/modify.h +++ b/src/modify.h @@ -33,7 +33,8 @@ class Modify : protected Pointers { int n_initial_integrate,n_post_integrate,n_pre_exchange; int n_pre_neighbor,n_post_neighbor; int n_pre_force,n_pre_reverse,n_post_force; - int n_final_integrate,n_end_of_step,n_thermo_energy,n_thermo_energy_atom; + int n_final_integrate,n_end_of_step; + int n_energy_couple,n_energy_global,n_energy_atom; int n_initial_integrate_respa,n_post_integrate_respa; int n_pre_force_respa,n_post_force_respa,n_final_integrate_respa; int n_min_pre_exchange,n_min_pre_neighbor,n_min_post_neighbor; @@ -69,8 +70,9 @@ class Modify : protected Pointers { virtual void post_force(int); virtual void final_integrate(); virtual void end_of_step(); - virtual double thermo_energy(); - virtual void thermo_energy_atom(int, double *); + virtual double energy_couple(); + virtual double energy_global(); + virtual void energy_atom(int, double *); virtual void post_run(); virtual void create_attribute(int); @@ -135,8 +137,8 @@ class Modify : protected Pointers { int *list_initial_integrate,*list_post_integrate; int *list_pre_exchange,*list_pre_neighbor,*list_post_neighbor; int *list_pre_force,*list_pre_reverse,*list_post_force; - int *list_final_integrate,*list_end_of_step,*list_thermo_energy; - int *list_thermo_energy_atom; + int *list_final_integrate,*list_end_of_step; + int *list_energy_couple,*list_energy_global,*list_energy_atom; int *list_initial_integrate_respa,*list_post_integrate_respa; int *list_pre_force_respa,*list_post_force_respa; int *list_final_integrate_respa; @@ -163,8 +165,9 @@ class Modify : protected Pointers { void list_init(int, int &, int *&); void list_init_end_of_step(int, int &, int *&); - void list_init_thermo_energy(int, int &, int *&); - void list_init_thermo_energy_atom(int &, int *&); + void list_init_energy_couple(int &, int *&); + void list_init_energy_global(int &, int *&); + void list_init_energy_atom(int &, int *&); void list_init_dofflag(int &, int *&); void list_init_compute(); diff --git a/src/my_pool_chunk.cpp b/src/my_pool_chunk.cpp index 8bf40840fe..d866804adc 100644 --- a/src/my_pool_chunk.cpp +++ b/src/my_pool_chunk.cpp @@ -174,9 +174,9 @@ template void MyPoolChunk::allocate(int ibin) { int oldpage = npage; npage += pagedelta; - freelist = (int *) realloc(freelist,npage*chunkperpage*sizeof(int)); - pages = (T **) realloc(pages,npage*sizeof(T *)); - whichbin = (int *) realloc(whichbin,npage*sizeof(int)); + freelist = (int *) realloc(freelist,sizeof(int)*npage*chunkperpage); + pages = (T **) realloc(pages,sizeof(T *)*npage); + whichbin = (int *) realloc(whichbin,sizeof(int)*npage); if (!freelist || !pages) { errorflag = 2; return; @@ -189,11 +189,11 @@ void MyPoolChunk::allocate(int ibin) { #if defined(LAMMPS_MEMALIGN) void *ptr; if (posix_memalign(&ptr, LAMMPS_MEMALIGN, - chunkperpage*chunksize[ibin]*sizeof(T))) + sizeof(T)*chunkperpage*chunksize[ibin])) errorflag = 2; pages[i] = (T *) ptr; #else - pages[i] = (T *) malloc(chunkperpage*chunksize[ibin]*sizeof(T)); + pages[i] = (T *) malloc(sizeof(T)*chunkperpage*chunksize[ibin]); if (!pages[i]) errorflag = 2; #endif } diff --git a/src/neigh_request.cpp b/src/neigh_request.cpp index 0d4818fbe1..8c8168952e 100644 --- a/src/neigh_request.cpp +++ b/src/neigh_request.cpp @@ -225,6 +225,8 @@ void NeighRequest::copy_request(NeighRequest *other, int skipflag) int i,j; int ntypes = atom->ntypes; + skip = other->skip; + if (other->iskip) { iskip = new int[ntypes+1]; for (i = 1; i <= ntypes; i++) diff --git a/src/pair.h b/src/pair.h index 5801941458..9bca64fbf3 100644 --- a/src/pair.h +++ b/src/pair.h @@ -35,7 +35,7 @@ class Pair : protected Pointers { static int instance_total; // # of Pair classes ever instantiated double eng_vdwl,eng_coul; // accumulated energies - double virial[6]; // accumulated virial + double virial[6]; // accumulated virial: xx,yy,zz,xy,xz,yz double *eatom,**vatom; // accumulated per-atom energy/virial double **cvatom; // accumulated per-atom centroid virial diff --git a/src/pair_table.cpp b/src/pair_table.cpp index 124e9139ec..7e331a16a4 100644 --- a/src/pair_table.cpp +++ b/src/pair_table.cpp @@ -195,9 +195,9 @@ void PairTable::allocate() memory->create(cutsq,nt,nt,"pair:cutsq"); memory->create(tabindex,nt,nt,"pair:tabindex"); - memset(&setflag[0][0],0,nt*nt*sizeof(int)); - memset(&cutsq[0][0],0,nt*nt*sizeof(double)); - memset(&tabindex[0][0],0,nt*nt*sizeof(int)); + memset(&setflag[0][0],0,sizeof(int)*nt*nt); + memset(&cutsq[0][0],0,sizeof(double)*nt*nt); + memset(&tabindex[0][0],0,sizeof(int)*nt*nt); } /* ---------------------------------------------------------------------- diff --git a/src/thermo.cpp b/src/thermo.cpp index 649851c9e4..7e14fe37c0 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -55,13 +55,14 @@ using namespace MathConst; // step, elapsed, elaplong, dt, time, cpu, tpcpu, spcpu, cpuremain, // part, timeremain -// atoms, temp, press, pe, ke, etotal, enthalpy +// atoms, temp, press, pe, ke, etotal // evdwl, ecoul, epair, ebond, eangle, edihed, eimp, emol, elong, etail -// vol, density, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi, xy, xz, yz, +// enthalpy, ecouple, econserve +// vol, density, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi, xy, xz, yz // xlat, ylat, zlat -// bonds, angles, dihedrals, impropers, +// bonds, angles, dihedrals, impropers // pxx, pyy, pzz, pxy, pxz, pyz -// fmax, fnorm, nbuild, ndanger, +// fmax, fnorm, nbuild, ndanger // cella, cellb, cellc, cellalpha, cellbeta, cellgamma // customize a new thermo style by adding a DEFINE to this list @@ -752,11 +753,6 @@ void Thermo::parse_fields(char *str) addfield("TotEng",&Thermo::compute_etotal,FLOAT); index_temp = add_compute(id_temp,SCALAR); index_pe = add_compute(id_pe,SCALAR); - } else if (word == "enthalpy") { - addfield("Enthalpy",&Thermo::compute_enthalpy,FLOAT); - index_temp = add_compute(id_temp,SCALAR); - index_press_scalar = add_compute(id_press,SCALAR); - index_pe = add_compute(id_pe,SCALAR); } else if (word == "evdwl") { addfield("E_vdwl",&Thermo::compute_evdwl,FLOAT); @@ -789,6 +785,19 @@ void Thermo::parse_fields(char *str) addfield("E_tail",&Thermo::compute_etail,FLOAT); index_pe = add_compute(id_pe,SCALAR); + } else if (word == "enthalpy") { + addfield("Enthalpy",&Thermo::compute_enthalpy,FLOAT); + index_temp = add_compute(id_temp,SCALAR); + index_press_scalar = add_compute(id_press,SCALAR); + index_pe = add_compute(id_pe,SCALAR); + } else if (word == "ecouple") { + addfield("Ecouple",&Thermo::compute_ecouple,FLOAT); + index_pe = add_compute(id_pe,SCALAR); + } else if (word == "econserve") { + addfield("Econserve",&Thermo::compute_econserve,FLOAT); + index_temp = add_compute(id_temp,SCALAR); + index_pe = add_compute(id_pe,SCALAR); + } else if (word == "vol") { addfield("Volume",&Thermo::compute_vol,FLOAT); } else if (word == "density") { @@ -1219,42 +1228,6 @@ int Thermo::evaluate_keyword(const char *word, double *answer) } compute_etotal(); - } else if (strcmp(word,"enthalpy") == 0) { - if (!pe) - error->all(FLERR, - "Thermo keyword in variable requires thermo to use/init pe"); - if (update->whichflag == 0) { - if (pe->invoked_scalar != update->ntimestep) - error->all(FLERR,"Compute used in variable thermo keyword between runs " - "is not current"); - } else { - pe->compute_scalar(); - pe->invoked_flag |= Compute::INVOKED_SCALAR; - } - if (!temperature) - error->all(FLERR,"Thermo keyword in variable requires " - "thermo to use/init temp"); - if (update->whichflag == 0) { - if (temperature->invoked_scalar != update->ntimestep) - error->all(FLERR,"Compute used in variable thermo keyword between runs " - "is not current"); - } else if (!(temperature->invoked_flag & Compute::INVOKED_SCALAR)) { - temperature->compute_scalar(); - temperature->invoked_flag |= Compute::INVOKED_SCALAR; - } - if (!pressure) - error->all(FLERR,"Thermo keyword in variable requires " - "thermo to use/init press"); - if (update->whichflag == 0) { - if (pressure->invoked_scalar != update->ntimestep) - error->all(FLERR,"Compute used in variable thermo keyword between runs " - "is not current"); - } else if (!(pressure->invoked_flag & Compute::INVOKED_SCALAR)) { - pressure->compute_scalar(); - pressure->invoked_flag |= Compute::INVOKED_SCALAR; - } - compute_enthalpy(); - } else if (strcmp(word,"evdwl") == 0) { if (update->eflag_global != update->ntimestep) error->all(FLERR,"Energy was not tallied on needed timestep"); @@ -1341,6 +1314,69 @@ int Thermo::evaluate_keyword(const char *word, double *answer) error->all(FLERR,"Energy was not tallied on needed timestep"); compute_etail(); + } else if (strcmp(word,"enthalpy") == 0) { + if (!pe) + error->all(FLERR, + "Thermo keyword in variable requires thermo to use/init pe"); + if (update->whichflag == 0) { + if (pe->invoked_scalar != update->ntimestep) + error->all(FLERR,"Compute used in variable thermo keyword between runs " + "is not current"); + } else { + pe->compute_scalar(); + pe->invoked_flag |= Compute::INVOKED_SCALAR; + } + if (!temperature) + error->all(FLERR,"Thermo keyword in variable requires " + "thermo to use/init temp"); + if (update->whichflag == 0) { + if (temperature->invoked_scalar != update->ntimestep) + error->all(FLERR,"Compute used in variable thermo keyword between runs " + "is not current"); + } else if (!(temperature->invoked_flag & Compute::INVOKED_SCALAR)) { + temperature->compute_scalar(); + temperature->invoked_flag |= Compute::INVOKED_SCALAR; + } + if (!pressure) + error->all(FLERR,"Thermo keyword in variable requires " + "thermo to use/init press"); + if (update->whichflag == 0) { + if (pressure->invoked_scalar != update->ntimestep) + error->all(FLERR,"Compute used in variable thermo keyword between runs " + "is not current"); + } else if (!(pressure->invoked_flag & Compute::INVOKED_SCALAR)) { + pressure->compute_scalar(); + pressure->invoked_flag |= Compute::INVOKED_SCALAR; + } + compute_enthalpy(); + + } else if (strcmp(word,"ecouple") == 0) compute_ecouple(); + + else if (strcmp(word,"econserve") == 0) { + if (!pe) + error->all(FLERR, + "Thermo keyword in variable requires thermo to use/init pe"); + if (update->whichflag == 0) { + if (pe->invoked_scalar != update->ntimestep) + error->all(FLERR,"Compute used in variable thermo keyword between runs " + "is not current"); + } else { + pe->compute_scalar(); + pe->invoked_flag |= Compute::INVOKED_SCALAR; + } + if (!temperature) + error->all(FLERR,"Thermo keyword in variable requires " + "thermo to use/init temp"); + if (update->whichflag == 0) { + if (temperature->invoked_scalar != update->ntimestep) + error->all(FLERR,"Compute used in variable thermo keyword between runs " + "is not current"); + } else if (!(temperature->invoked_flag & Compute::INVOKED_SCALAR)) { + temperature->compute_scalar(); + temperature->invoked_flag |= Compute::INVOKED_SCALAR; + } + compute_econserve(); + } else if (strcmp(word,"vol") == 0) compute_vol(); else if (strcmp(word,"density") == 0) compute_density(); else if (strcmp(word,"lx") == 0) compute_lx(); @@ -1706,27 +1742,26 @@ void Thermo::compute_ke() void Thermo::compute_etotal() { compute_pe(); - double ke = temperature->scalar; - ke *= 0.5 * temperature->dof * force->boltz; - if (normflag) ke /= natoms; - dvalue += ke; + double dvalue_pe = dvalue; + compute_ke(); + dvalue += dvalue_pe; } /* ---------------------------------------------------------------------- */ -void Thermo::compute_enthalpy() +void Thermo::compute_ecouple() +{ + dvalue = modify->energy_couple(); +} + +/* ---------------------------------------------------------------------- */ + +void Thermo::compute_econserve() { compute_etotal(); - double etmp = dvalue; - - compute_vol(); - double vtmp = dvalue; - if (normflag) vtmp /= natoms; - - compute_press(); - double ptmp = dvalue; - - dvalue = etmp + ptmp*vtmp/(force->nktv2p); + double dvalue_etotal = dvalue; + compute_ecouple(); + dvalue += dvalue_etotal; } /* ---------------------------------------------------------------------- */ @@ -1852,6 +1887,24 @@ void Thermo::compute_etail() } else dvalue = 0.0; } +/* ---------------------------------------------------------------------- */ + +void Thermo::compute_enthalpy() +{ + compute_etotal(); + double etmp = dvalue; + + compute_vol(); + double vtmp = dvalue; + if (normflag) vtmp /= natoms; + + compute_press(); + double ptmp = dvalue; + + dvalue = etmp + ptmp*vtmp/(force->nktv2p); +} + + /* ---------------------------------------------------------------------- */ void Thermo::compute_vol() diff --git a/src/thermo.h b/src/thermo.h index def8cead65..90ce41c6e4 100644 --- a/src/thermo.h +++ b/src/thermo.h @@ -143,7 +143,6 @@ class Thermo : protected Pointers { void compute_pe(); void compute_ke(); void compute_etotal(); - void compute_enthalpy(); void compute_evdwl(); void compute_ecoul(); @@ -156,6 +155,10 @@ class Thermo : protected Pointers { void compute_elong(); void compute_etail(); + void compute_enthalpy(); + void compute_ecouple(); + void compute_econserve(); + void compute_vol(); void compute_density(); void compute_lx(); diff --git a/src/variable.cpp b/src/variable.cpp index 7cce6546bc..556633c4e0 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -3040,28 +3040,28 @@ double Variable::eval_tree(Tree *tree, int i) } if (tree->type == STAGGER) { - int ivalue1 = static_cast (eval_tree(tree->first,i)); - int ivalue2 = static_cast (eval_tree(tree->second,i)); + bigint ivalue1 = static_cast (eval_tree(tree->first,i)); + bigint ivalue2 = static_cast (eval_tree(tree->second,i)); if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue1 <= ivalue2) error->one(FLERR,"Invalid math function in variable formula"); - int lower = update->ntimestep/ivalue1 * ivalue1; - int delta = update->ntimestep - lower; + bigint lower = update->ntimestep/ivalue1 * ivalue1; + bigint delta = update->ntimestep - lower; if (delta < ivalue2) arg = lower+ivalue2; else arg = lower+ivalue1; return arg; } if (tree->type == LOGFREQ) { - int ivalue1 = static_cast (eval_tree(tree->first,i)); - int ivalue2 = static_cast (eval_tree(tree->second,i)); - int ivalue3 = static_cast (eval_tree(tree->extra[0],i)); + bigint ivalue1 = static_cast (eval_tree(tree->first,i)); + bigint ivalue2 = static_cast (eval_tree(tree->second,i)); + bigint ivalue3 = static_cast (eval_tree(tree->extra[0],i)); if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0 || ivalue2 >= ivalue3) error->one(FLERR,"Invalid math function in variable formula"); if (update->ntimestep < ivalue1) arg = ivalue1; else { - int lower = ivalue1; + bigint lower = ivalue1; while (update->ntimestep >= ivalue3*lower) lower *= ivalue3; - int multiple = update->ntimestep/lower; + bigint multiple = update->ntimestep/lower; if (multiple < ivalue2) arg = (multiple+1)*lower; else arg = lower*ivalue3; } @@ -3069,16 +3069,16 @@ double Variable::eval_tree(Tree *tree, int i) } if (tree->type == LOGFREQ2) { - int ivalue1 = static_cast (eval_tree(tree->first,i)); - int ivalue2 = static_cast (eval_tree(tree->second,i)); - int ivalue3 = static_cast (eval_tree(tree->extra[0],i)); + bigint ivalue1 = static_cast (eval_tree(tree->first,i)); + bigint ivalue2 = static_cast (eval_tree(tree->second,i)); + bigint ivalue3 = static_cast (eval_tree(tree->extra[0],i)); if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0 ) error->all(FLERR,"Invalid math function in variable formula"); if (update->ntimestep < ivalue1) arg = ivalue1; else { arg = ivalue1; double delta = ivalue1*(ivalue3-1.0)/ivalue2; - int count = 0; + bigint count = 0; while (update->ntimestep >= arg) { arg += delta; count++; @@ -3090,14 +3090,14 @@ double Variable::eval_tree(Tree *tree, int i) } if (tree->type == STRIDE) { - int ivalue1 = static_cast (eval_tree(tree->first,i)); - int ivalue2 = static_cast (eval_tree(tree->second,i)); - int ivalue3 = static_cast (eval_tree(tree->extra[0],i)); + bigint ivalue1 = static_cast (eval_tree(tree->first,i)); + bigint ivalue2 = static_cast (eval_tree(tree->second,i)); + bigint ivalue3 = static_cast (eval_tree(tree->extra[0],i)); if (ivalue1 < 0 || ivalue2 < 0 || ivalue3 <= 0 || ivalue1 > ivalue2) error->one(FLERR,"Invalid math function in variable formula"); if (update->ntimestep < ivalue1) arg = ivalue1; else if (update->ntimestep < ivalue2) { - int offset = update->ntimestep - ivalue1; + bigint offset = update->ntimestep - ivalue1; arg = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; if (arg > ivalue2) arg = (double) MAXBIGINT; } else arg = (double) MAXBIGINT; @@ -3105,12 +3105,12 @@ double Variable::eval_tree(Tree *tree, int i) } if (tree->type == STRIDE2) { - int ivalue1 = static_cast (eval_tree(tree->first,i)); - int ivalue2 = static_cast (eval_tree(tree->second,i)); - int ivalue3 = static_cast (eval_tree(tree->extra[0],i)); - int ivalue4 = static_cast (eval_tree(tree->extra[1],i)); - int ivalue5 = static_cast (eval_tree(tree->extra[2],i)); - int ivalue6 = static_cast (eval_tree(tree->extra[3],i)); + bigint ivalue1 = static_cast (eval_tree(tree->first,i)); + bigint ivalue2 = static_cast (eval_tree(tree->second,i)); + bigint ivalue3 = static_cast (eval_tree(tree->extra[0],i)); + bigint ivalue4 = static_cast (eval_tree(tree->extra[1],i)); + bigint ivalue5 = static_cast (eval_tree(tree->extra[2],i)); + bigint ivalue6 = static_cast (eval_tree(tree->extra[3],i)); if (ivalue1 < 0 || ivalue2 < 0 || ivalue3 <= 0 || ivalue1 > ivalue2) error->one(FLERR,"Invalid math function in variable formula"); if (ivalue4 < 0 || ivalue5 < 0 || ivalue6 <= 0 || ivalue4 > ivalue5) @@ -3121,15 +3121,15 @@ double Variable::eval_tree(Tree *tree, int i) if (update->ntimestep < ivalue1) istep = ivalue1; else if (update->ntimestep < ivalue2) { if (update->ntimestep < ivalue4 || update->ntimestep > ivalue5) { - int offset = update->ntimestep - ivalue1; + bigint offset = update->ntimestep - ivalue1; istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; if (update->ntimestep < ivalue2 && istep > ivalue4) tree->value = ivalue4; } else { - int offset = update->ntimestep - ivalue4; + bigint offset = update->ntimestep - ivalue4; istep = ivalue4 + (offset/ivalue6)*ivalue6 + ivalue6; if (istep > ivalue5) { - int offset = ivalue5 - ivalue1; + bigint offset = ivalue5 - ivalue1; istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; if (istep > ivalue2) istep = MAXBIGINT; } @@ -3571,12 +3571,12 @@ int Variable::math_function(char *word, char *contents, Tree **tree, print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (tree) newtree->type = STAGGER; else { - int ivalue1 = static_cast (value1); - int ivalue2 = static_cast (value2); + bigint ivalue1 = static_cast (value1); + bigint ivalue2 = static_cast (value2); if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue1 <= ivalue2) print_var_error(FLERR,"Invalid math function in variable formula",ivar); - int lower = update->ntimestep/ivalue1 * ivalue1; - int delta = update->ntimestep - lower; + bigint lower = update->ntimestep/ivalue1 * ivalue1; + bigint delta = update->ntimestep - lower; double value; if (delta < ivalue2) value = lower+ivalue2; else value = lower+ivalue1; @@ -3588,17 +3588,17 @@ int Variable::math_function(char *word, char *contents, Tree **tree, print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (tree) newtree->type = LOGFREQ; else { - int ivalue1 = static_cast (value1); - int ivalue2 = static_cast (value2); - int ivalue3 = static_cast (values[0]); + bigint ivalue1 = static_cast (value1); + bigint ivalue2 = static_cast (value2); + bigint ivalue3 = static_cast (values[0]); if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0 || ivalue2 >= ivalue3) print_var_error(FLERR,"Invalid math function in variable formula",ivar); double value; if (update->ntimestep < ivalue1) value = ivalue1; else { - int lower = ivalue1; + bigint lower = ivalue1; while (update->ntimestep >= ivalue3*lower) lower *= ivalue3; - int multiple = update->ntimestep/lower; + bigint multiple = update->ntimestep/lower; if (multiple < ivalue2) value = (multiple+1)*lower; else value = lower*ivalue3; } @@ -3610,9 +3610,9 @@ int Variable::math_function(char *word, char *contents, Tree **tree, print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (tree) newtree->type = LOGFREQ2; else { - int ivalue1 = static_cast (value1); - int ivalue2 = static_cast (value2); - int ivalue3 = static_cast (values[0]); + bigint ivalue1 = static_cast (value1); + bigint ivalue2 = static_cast (value2); + bigint ivalue3 = static_cast (values[0]); if (ivalue1 <= 0 || ivalue2 <= 0 || ivalue3 <= 0 ) print_var_error(FLERR,"Invalid math function in variable formula",ivar); double value; @@ -3620,7 +3620,7 @@ int Variable::math_function(char *word, char *contents, Tree **tree, else { value = ivalue1; double delta = ivalue1*(ivalue3-1.0)/ivalue2; - int count = 0; + bigint count = 0; while (update->ntimestep >= value) { value += delta; count++; @@ -3635,9 +3635,9 @@ int Variable::math_function(char *word, char *contents, Tree **tree, print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (tree) newtree->type = LOGFREQ3; else { - int ivalue1 = static_cast (value1); - int ivalue2 = static_cast (value2); - int ivalue3 = static_cast (values[0]); + bigint ivalue1 = static_cast (value1); + bigint ivalue2 = static_cast (value2); + bigint ivalue3 = static_cast (values[0]); if (ivalue1 <= 0 || ivalue2 <= 1 || ivalue3 <= 0 || ivalue3-ivalue1+1 < ivalue2 ) print_var_error(FLERR,"Invalid math function in variable formula",ivar); @@ -3648,12 +3648,12 @@ int Variable::math_function(char *word, char *contents, Tree **tree, value = ivalue1; double logsp = ivalue1; double factor = pow(((double)ivalue3)/ivalue1, 1.0/(ivalue2-1)); - int linsp = ivalue1; + bigint linsp = ivalue1; while (update->ntimestep >= value) { logsp *= factor; linsp++; if (linsp > logsp) value = linsp; - else value = ceil(logsp)-(((int)ceil(logsp)-1)/ivalue3); + else value = ceil(logsp)-(((bigint)ceil(logsp)-1)/ivalue3); } } if (update->ntimestep > ivalue3) @@ -3666,15 +3666,15 @@ int Variable::math_function(char *word, char *contents, Tree **tree, print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (tree) newtree->type = STRIDE; else { - int ivalue1 = static_cast (value1); - int ivalue2 = static_cast (value2); - int ivalue3 = static_cast (values[0]); + bigint ivalue1 = static_cast (value1); + bigint ivalue2 = static_cast (value2); + bigint ivalue3 = static_cast (values[0]); if (ivalue1 < 0 || ivalue2 < 0 || ivalue3 <= 0 || ivalue1 > ivalue2) error->one(FLERR,"Invalid math function in variable formula"); double value; if (update->ntimestep < ivalue1) value = ivalue1; else if (update->ntimestep < ivalue2) { - int offset = update->ntimestep - ivalue1; + bigint offset = update->ntimestep - ivalue1; value = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; if (value > ivalue2) value = (double) MAXBIGINT; } else value = (double) MAXBIGINT; @@ -3686,12 +3686,12 @@ int Variable::math_function(char *word, char *contents, Tree **tree, print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (tree) newtree->type = STRIDE2; else { - int ivalue1 = static_cast (value1); - int ivalue2 = static_cast (value2); - int ivalue3 = static_cast (values[0]); - int ivalue4 = static_cast (values[1]); - int ivalue5 = static_cast (values[2]); - int ivalue6 = static_cast (values[3]); + bigint ivalue1 = static_cast (value1); + bigint ivalue2 = static_cast (value2); + bigint ivalue3 = static_cast (values[0]); + bigint ivalue4 = static_cast (values[1]); + bigint ivalue5 = static_cast (values[2]); + bigint ivalue6 = static_cast (values[3]); if (ivalue1 < 0 || ivalue2 < 0 || ivalue3 <= 0 || ivalue1 > ivalue2) error->one(FLERR,"Invalid math function in variable formula"); if (ivalue4 < 0 || ivalue5 < 0 || ivalue6 <= 0 || ivalue4 > ivalue5) @@ -3702,14 +3702,14 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (update->ntimestep < ivalue1) istep = ivalue1; else if (update->ntimestep < ivalue2) { if (update->ntimestep < ivalue4 || update->ntimestep > ivalue5) { - int offset = update->ntimestep - ivalue1; + bigint offset = update->ntimestep - ivalue1; istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; if (update->ntimestep < ivalue4 && istep > ivalue4) istep = ivalue4; } else { - int offset = update->ntimestep - ivalue4; + bigint offset = update->ntimestep - ivalue4; istep = ivalue4 + (offset/ivalue6)*ivalue6 + ivalue6; if (istep > ivalue5) { - int offset = ivalue5 - ivalue1; + bigint offset = ivalue5 - ivalue1; istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; if (istep > ivalue2) istep = MAXBIGINT; } diff --git a/src/version.h b/src/version.h index f812b62821..84541d4456 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "24 Dec 2020" +#define LAMMPS_VERSION "10 Feb 2021" diff --git a/unittest/c-library/test_library_open.cpp b/unittest/c-library/test_library_open.cpp index d6234c1c04..377f3c53ef 100644 --- a/unittest/c-library/test_library_open.cpp +++ b/unittest/c-library/test_library_open.cpp @@ -72,6 +72,7 @@ TEST(lammps_open, with_args) output = ::testing::internal::GetCapturedStdout(); EXPECT_THAT(output, HasSubstr("Total wall time:")); if (verbose) std::cout << output; + MPI_Comm_free(&mycomm); } TEST(lammps_open, with_kokkos) @@ -195,4 +196,5 @@ TEST(lammps_open_fortran, no_args) output = ::testing::internal::GetCapturedStdout(); EXPECT_THAT(output, HasSubstr("Total wall time:")); if (verbose) std::cout << output; + MPI_Comm_free(&mycomm); } diff --git a/unittest/python/test_python_package.cpp b/unittest/python/test_python_package.cpp index d8ab860c26..cba77ee2b0 100644 --- a/unittest/python/test_python_package.cpp +++ b/unittest/python/test_python_package.cpp @@ -67,6 +67,7 @@ protected: void TearDown() override { if (!verbose) ::testing::internal::CaptureStdout(); + delete info; delete lmp; if (!verbose) ::testing::internal::GetCapturedStdout(); }