From e482502691feaedd0b206d41470e9925a773bc3c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 29 Jun 2021 11:06:59 -0400 Subject: [PATCH] rename SNAP package to ML-SNAP and fix up some remaining MLIAP to ML-IAP issues --- cmake/CMakeLists.txt | 8 +- .../Packages/{MLIAP.cmake => ML-IAP.cmake} | 10 +- cmake/presets/all_off.cmake | 4 +- cmake/presets/all_on.cmake | 4 +- cmake/presets/mingw-cross.cmake | 4 +- cmake/presets/most.cmake | 4 +- doc/src/Build_basics.rst | 2 +- doc/src/Build_extras.rst | 4 +- doc/src/Packages_details.rst | 14 +- doc/src/Packages_standard.rst | 2 +- doc/src/compute_mliap.rst | 7 +- doc/src/compute_sna_atom.rst | 306 +++++++++--------- doc/src/pair_mliap.rst | 6 +- doc/src/pair_snap.rst | 149 +++++---- potentials/README | 6 +- src/Depend.sh | 2 +- src/{SNAP => ML-SNAP}/compute_sna_atom.cpp | 0 src/{SNAP => ML-SNAP}/compute_sna_atom.h | 0 src/{SNAP => ML-SNAP}/compute_snad_atom.cpp | 0 src/{SNAP => ML-SNAP}/compute_snad_atom.h | 0 src/{SNAP => ML-SNAP}/compute_snap.cpp | 0 src/{SNAP => ML-SNAP}/compute_snap.h | 0 src/{SNAP => ML-SNAP}/compute_snav_atom.cpp | 0 src/{SNAP => ML-SNAP}/compute_snav_atom.h | 0 src/{SNAP => ML-SNAP}/pair_snap.cpp | 0 src/{SNAP => ML-SNAP}/pair_snap.h | 0 src/{SNAP => ML-SNAP}/sna.cpp | 0 src/{SNAP => ML-SNAP}/sna.h | 0 src/Makefile | 2 +- 29 files changed, 266 insertions(+), 268 deletions(-) rename cmake/Modules/Packages/{MLIAP.cmake => ML-IAP.cmake} (83%) rename src/{SNAP => ML-SNAP}/compute_sna_atom.cpp (100%) rename src/{SNAP => ML-SNAP}/compute_sna_atom.h (100%) rename src/{SNAP => ML-SNAP}/compute_snad_atom.cpp (100%) rename src/{SNAP => ML-SNAP}/compute_snad_atom.h (100%) rename src/{SNAP => ML-SNAP}/compute_snap.cpp (100%) rename src/{SNAP => ML-SNAP}/compute_snap.h (100%) rename src/{SNAP => ML-SNAP}/compute_snav_atom.cpp (100%) rename src/{SNAP => ML-SNAP}/compute_snav_atom.h (100%) rename src/{SNAP => ML-SNAP}/pair_snap.cpp (100%) rename src/{SNAP => ML-SNAP}/pair_snap.h (100%) rename src/{SNAP => ML-SNAP}/sna.cpp (100%) rename src/{SNAP => ML-SNAP}/sna.h (100%) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index ab1fd6bba6..5d8967adfa 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -139,8 +139,8 @@ install(TARGETS lmp EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR}) option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF) set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE - GRANULAR KSPACE LATTE MANYBODY MC MESSAGE MISC MLIAP MOLECULE PERI POEMS - PLUGIN QEQ REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI + GRANULAR KSPACE LATTE MANYBODY MC MESSAGE MISC ML-IAP MOLECULE PERI POEMS + PLUGIN QEQ REPLICA RIGID SHOCK SPIN ML-SNAP SRD KIM PYTHON MSCG MPIIO VORONOI USER-ADIOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESODPD USER-CGSDK USER-COLVARS USER-DIELECTRIC USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-HDNNP USER-LB USER-MANIFOLD USER-MDI USER-MEAMC USER-MESONT USER-MGPT @@ -229,7 +229,7 @@ endif() # "hard" dependencies between packages resulting # in an error instead of skipping over files -pkg_depends(MLIAP SNAP) +pkg_depends(ML-IAP ML-SNAP) pkg_depends(MPIIO MPI) pkg_depends(USER-ATC MANYBODY) pkg_depends(USER-LB MPI) @@ -350,7 +350,7 @@ else() set(CUDA_REQUEST_PIC) endif() -foreach(PKG_WITH_INCL KSPACE PYTHON MLIAP VORONOI USER-COLVARS USER-HDNNP USER-MDI USER-MOLFILE USER-NETCDF +foreach(PKG_WITH_INCL KSPACE PYTHON ML-IAP VORONOI USER-COLVARS USER-HDNNP USER-MDI USER-MOLFILE USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SCAFACOS USER-SMD USER-VTK KIM LATTE MESSAGE MSCG COMPRESS USER-PACE) if(PKG_${PKG_WITH_INCL}) include(Packages/${PKG_WITH_INCL}) diff --git a/cmake/Modules/Packages/MLIAP.cmake b/cmake/Modules/Packages/ML-IAP.cmake similarity index 83% rename from cmake/Modules/Packages/MLIAP.cmake rename to cmake/Modules/Packages/ML-IAP.cmake index 81bb10cb8f..cbffeebf80 100644 --- a/cmake/Modules/Packages/MLIAP.cmake +++ b/cmake/Modules/Packages/ML-IAP.cmake @@ -1,4 +1,4 @@ -# if PYTHON package is included we may also include Python support in MLIAP +# if PYTHON package is included we may also include Python support in ML-IAP set(MLIAP_ENABLE_PYTHON_DEFAULT OFF) if(PKG_PYTHON) find_package(Cythonize QUIET) @@ -7,20 +7,20 @@ if(PKG_PYTHON) endif() endif() -option(MLIAP_ENABLE_PYTHON "Build MLIAP package with Python support" ${MLIAP_ENABLE_PYTHON_DEFAULT}) +option(MLIAP_ENABLE_PYTHON "Build ML-IAP package with Python support" ${MLIAP_ENABLE_PYTHON_DEFAULT}) if(MLIAP_ENABLE_PYTHON) find_package(Cythonize REQUIRED) if(NOT PKG_PYTHON) - message(FATAL_ERROR "Must enable PYTHON package for including Python support in MLIAP") + message(FATAL_ERROR "Must enable PYTHON package for including Python support in ML-IAP") 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") + message(FATAL_ERROR "Python support in ML-IAP 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") + message(FATAL_ERROR "Python support in ML-IAP requires Python 3.6 or later") endif() endif() diff --git a/cmake/presets/all_off.cmake b/cmake/presets/all_off.cmake index 457750c690..2f22a09f2b 100644 --- a/cmake/presets/all_off.cmake +++ b/cmake/presets/all_off.cmake @@ -2,8 +2,8 @@ # an existing package selection without losing any other settings set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU - GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MESSAGE MISC MLIAP MOLECULE - MPIIO MSCG OPT PERI PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN + GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MESSAGE MISC ML-IAP MOLECULE + MPIIO MSCG OPT PERI PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK ML-SNAP SPIN SRD VORONOI USER-ADIOS USER-ATC USER-AWPMD USER-BROWNIAN USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD diff --git a/cmake/presets/all_on.cmake b/cmake/presets/all_on.cmake index ae40bb0809..ca714c3f0e 100644 --- a/cmake/presets/all_on.cmake +++ b/cmake/presets/all_on.cmake @@ -4,8 +4,8 @@ # with just a working C++ compiler and an MPI library. set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU - GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MESSAGE MISC MLIAP MOLECULE - MPIIO MSCG OPT PERI PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN + GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MESSAGE MISC ML-IAP MOLECULE + MPIIO MSCG OPT PERI PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK ML-SNAP SPIN SRD VORONOI USER-ADIOS USER-ATC USER-AWPMD USER-BROWNIAN USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD diff --git a/cmake/presets/mingw-cross.cmake b/cmake/presets/mingw-cross.cmake index e1a6c5cf79..94aef93f29 100644 --- a/cmake/presets/mingw-cross.cmake +++ b/cmake/presets/mingw-cross.cmake @@ -1,6 +1,6 @@ set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU - GRANULAR KSPACE LATTE MANYBODY MC MISC MLIAP MOLECULE OPT - PERI POEMS QEQ REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI + GRANULAR KSPACE LATTE MANYBODY MC MISC ML-IAP MOLECULE OPT + PERI POEMS QEQ REPLICA RIGID SHOCK ML-SNAP SPIN SRD VORONOI USER-ATC USER-AWPMD USER-BOCS USER-BROWNIAN USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-HDNNP USER-INTEL USER-MANIFOLD USER-MDI USER-MEAMC USER-MESODPD diff --git a/cmake/presets/most.cmake b/cmake/presets/most.cmake index e124b25d2b..4b7519923b 100644 --- a/cmake/presets/most.cmake +++ b/cmake/presets/most.cmake @@ -3,8 +3,8 @@ # are removed. The resulting binary should be able to run most inputs. set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE - GRANULAR KSPACE MANYBODY MC MISC MLIAP MOLECULE OPT PERI - PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI + GRANULAR KSPACE MANYBODY MC MISC ML-IAP MOLECULE OPT PERI + PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK ML-SNAP SPIN SRD VORONOI USER-BROWNIAN USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-MEAMC USER-MESODPD USER-MISC USER-MOFFF USER-OMP USER-PHONON USER-REACTION diff --git a/doc/src/Build_basics.rst b/doc/src/Build_basics.rst index 30e668a283..f9cf713d29 100644 --- a/doc/src/Build_basics.rst +++ b/doc/src/Build_basics.rst @@ -130,7 +130,7 @@ package can be compiled to include OpenMP threading. In addition, there are a few commands in LAMMPS that have native OpenMP support included as well. These are commands in the ``MPIIO``, -``SNAP``, ``USER-DIFFRACTION``, and ``USER-DPD`` packages. In addition +``ML-SNAP``, ``USER-DIFFRACTION``, and ``USER-DPD`` packages. In addition some packages support OpenMP threading indirectly through the libraries they interface to: e.g. ``LATTE``, ``KSPACE``, and ``USER-COLVARS``. See the :doc:`Packages details ` page for more diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index 4b7b7ad063..3e79883a12 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -814,8 +814,8 @@ be installed on your system. ML-IAP package --------------------------- -Building the ML-IAP package requires including the :ref:`SNAP -` package. There will be an error message if this requirement +Building the ML-IAP package requires including the :ref:`ML-SNAP +` package. There will be an error message if this requirement is not satisfied. Using the *mliappy* model also requires enabling Python support, which in turn requires to include the :ref:`PYTHON ` package **and** requires to have the `cython diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index 69eeca4fac..c75f45ee2a 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -57,7 +57,7 @@ page gives those details. * :ref:`REPLICA ` * :ref:`RIGID ` * :ref:`SHOCK ` - * :ref:`SNAP ` + * :ref:`ML-SNAP ` * :ref:`SPIN ` * :ref:`SRD ` * :ref:`VORONOI ` @@ -671,7 +671,7 @@ listing, "ls src/MISC", to see the list of commands. .. _PKG-ML-IAP: ML-IAP package -------------- +-------------- **Contents:** @@ -679,7 +679,7 @@ A general interface for machine-learning interatomic potentials, including PyTor **Install:** -To use this package, also the :ref:`SNAP package ` package needs +To use this package, also the :ref:`ML-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 @@ -1038,10 +1038,10 @@ a material. ---------- -.. _PKG-SNAP: +.. _PKG-ML-SNAP: -SNAP package ------------- +ML-SNAP package +--------------- **Contents:** @@ -1054,7 +1054,7 @@ computes which analyze attributes of the potential. **Supporting info:** -* src/SNAP: filenames -> commands +* src/ML-SNAP: filenames -> commands * :doc:`pair_style snap ` * :doc:`compute sna/atom ` * :doc:`compute snad/atom ` diff --git a/doc/src/Packages_standard.rst b/doc/src/Packages_standard.rst index da788a3200..edd4124911 100644 --- a/doc/src/Packages_standard.rst +++ b/doc/src/Packages_standard.rst @@ -85,7 +85,7 @@ package: +----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ | :ref:`SHOCK ` | shock loading methods | :doc:`fix msst ` | n/a | no | +----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ -| :ref:`SNAP ` | quantum-fitted potential | :doc:`pair_style snap ` | snap | no | +| :ref:`ML-SNAP ` | quantum-fitted potential | :doc:`pair_style snap ` | snap | no | +----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ | :ref:`SPIN ` | magnetic atomic spin dynamics | :doc:`Howto spins ` | SPIN | no | +----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ diff --git a/doc/src/compute_mliap.rst b/doc/src/compute_mliap.rst index de6a560c83..86dfe5a856 100644 --- a/doc/src/compute_mliap.rst +++ b/doc/src/compute_mliap.rst @@ -167,9 +167,10 @@ Restrictions This compute is part of the ML-IAP package. It is only enabled if LAMMPS was built with that package. In addition, building LAMMPS with -the ML-IAP package requires building LAMMPS with the SNAP package. The -*mliappy* model also requires building LAMMPS with the PYTHON package. -See the :doc:`Build package ` doc page for more info. +the ML-IAP package requires building LAMMPS with the ML-SNAP package. +The *mliappy* model also requires building LAMMPS with the PYTHON +package. See the :doc:`Build package ` doc page for more +info. Related commands """""""""""""""" diff --git a/doc/src/compute_sna_atom.rst b/doc/src/compute_sna_atom.rst index 08b06a32ec..4165c4e47a 100644 --- a/doc/src/compute_sna_atom.rst +++ b/doc/src/compute_sna_atom.rst @@ -72,64 +72,66 @@ Description """"""""""" Define a computation that calculates a set of quantities related to the -bispectrum components of the atoms in a group. These computes are -used primarily for calculating the dependence of energy, force, and -stress components on the linear coefficients in the -:doc:`snap pair_style `, which is useful when training a -SNAP potential to match target data. +bispectrum components of the atoms in a group. These computes are used +primarily for calculating the dependence of energy, force, and stress +components on the linear coefficients in the :doc:`snap pair_style +`, which is useful when training a SNAP potential to match +target data. -Bispectrum components of an atom are order parameters characterizing -the radial and angular distribution of neighbor atoms. The detailed +Bispectrum components of an atom are order parameters characterizing the +radial and angular distribution of neighbor atoms. The detailed mathematical definition is given in the paper by Thompson et al. :ref:`(Thompson) ` -The position of a neighbor atom *i'* relative to a central atom *i* is -a point within the 3D ball of radius :math:`R_{ii'}` = *rcutfac* :math:`(R_i + R_i')` +The position of a neighbor atom *i'* relative to a central atom *i* is a +point within the 3D ball of radius :math:`R_{ii'}` = *rcutfac* +:math:`(R_i + R_i')` -Bartok et al. :ref:`(Bartok) `, proposed mapping this 3D ball -onto the 3-sphere, the surface of the unit ball in a four-dimensional -space. The radial distance *r* within *R_ii'* is mapped on to a third -polar angle :math:`\theta_0` defined by, +Bartok et al. :ref:`(Bartok) `, proposed mapping this 3D +ball onto the 3-sphere, the surface of the unit ball in a +four-dimensional space. The radial distance *r* within *R_ii'* is +mapped on to a third polar angle :math:`\theta_0` defined by, .. math:: \theta_0 = {\sf rfac0} \frac{r-r_{min0}}{R_{ii'}-r_{min0}} \pi In this way, all possible neighbor positions are mapped on to a subset -of the 3-sphere. Points south of the latitude :math:`\theta_0` = *rfac0* :math:`\pi` -are excluded. +of the 3-sphere. Points south of the latitude :math:`\theta_0` = +*rfac0* :math:`\pi` are excluded. The natural basis for functions on the 3-sphere is formed by the -representatives of *SU(2)*, the matrices :math:`U^j_{m,m'}(\theta, \phi, \theta_0)`. -These functions are better known as :math:`D^j_{m,m'}`, the elements of the Wigner -*D*\ -matrices :ref:`(Meremianin `, -:ref:`Varshalovich `, :ref:`Mason) ` -The density of neighbors on the 3-sphere can be written as a sum of -Dirac-delta functions, one for each neighbor, weighted by species and -radial distance. Expanding this density function as a generalized -Fourier series in the basis functions, we can write each Fourier -coefficient as +representatives of *SU(2)*, the matrices :math:`U^j_{m,m'}(\theta, \phi, +\theta_0)`. These functions are better known as :math:`D^j_{m,m'}`, the +elements of the Wigner *D*\ -matrices :ref:`(Meremianin +`, :ref:`Varshalovich `, :ref:`Mason) +` The density of neighbors on the 3-sphere can be written as +a sum of Dirac-delta functions, one for each neighbor, weighted by +species and radial distance. Expanding this density function as a +generalized Fourier series in the basis functions, we can write each +Fourier coefficient as .. math:: u^j_{m,m'} = U^j_{m,m'}(0,0,0) + \sum_{r_{ii'} < R_{ii'}}{f_c(r_{ii'}) w_{\mu_{i'}} U^j_{m,m'}(\theta_0,\theta,\phi)} -The :math:`w_{\mu_{i'}}` neighbor weights are dimensionless numbers that depend on -:math:`\mu_{i'}`, the SNAP element of atom *i'*, while the central atom is -arbitrarily assigned a unit weight. The function :math:`f_c(r)` ensures that -the contribution of each neighbor atom goes smoothly to zero at -:math:`R_{ii'}`: +The :math:`w_{\mu_{i'}}` neighbor weights are dimensionless numbers that +depend on :math:`\mu_{i'}`, the SNAP element of atom *i'*, while the +central atom is arbitrarily assigned a unit weight. The function +:math:`f_c(r)` ensures that the contribution of each neighbor atom goes +smoothly to zero at :math:`R_{ii'}`: .. math:: f_c(r) = & \frac{1}{2}(\cos(\pi \frac{r-r_{min0}}{R_{ii'}-r_{min0}}) + 1), r \leq R_{ii'} \\ = & 0, r > R_{ii'} -The expansion coefficients :math:`u^j_{m,m'}` are complex-valued and they are -not directly useful as descriptors, because they are not invariant -under rotation of the polar coordinate frame. However, the following -scalar triple products of expansion coefficients can be shown to be -real-valued and invariant under rotation :ref:`(Bartok) `. +The expansion coefficients :math:`u^j_{m,m'}` are complex-valued and +they are not directly useful as descriptors, because they are not +invariant under rotation of the polar coordinate frame. However, the +following scalar triple products of expansion coefficients can be shown +to be real-valued and invariant under rotation :ref:`(Bartok) +`. .. math:: @@ -140,21 +142,20 @@ real-valued and invariant under rotation :ref:`(Bartok) `. {j_2} {m_2} {m'_2} \end{array}} u^{j_1}_{m_1,m'_1} u^{j_2}_{m_2,m'_2} -The constants :math:`H^{jmm'}_{j_1 m_1 m_{1'},j_2 m_ 2m_{2'}}` -are coupling coefficients, -analogous to Clebsch-Gordan coefficients for rotations on the -2-sphere. These invariants are the components of the bispectrum and -these are the quantities calculated by the compute *sna/atom*\ . They -characterize the strength of density correlations at three points on -the 3-sphere. The j2=0 subset form the power spectrum, which -characterizes the correlations of two points. The lowest-order -components describe the coarsest features of the density function, -while higher-order components reflect finer detail. Each bispectrum -component contains terms that depend on the positions of up to 4 -atoms (3 neighbors and the central atom). +The constants :math:`H^{jmm'}_{j_1 m_1 m_{1'},j_2 m_ 2m_{2'}}` are +coupling coefficients, analogous to Clebsch-Gordan coefficients for +rotations on the 2-sphere. These invariants are the components of the +bispectrum and these are the quantities calculated by the compute +*sna/atom*\ . They characterize the strength of density correlations at +three points on the 3-sphere. The j2=0 subset form the power spectrum, +which characterizes the correlations of two points. The lowest-order +components describe the coarsest features of the density function, while +higher-order components reflect finer detail. Each bispectrum component +contains terms that depend on the positions of up to 4 atoms (3 +neighbors and the central atom). -Compute *snad/atom* calculates the derivative of the bispectrum components -summed separately for each LAMMPS atom type: +Compute *snad/atom* calculates the derivative of the bispectrum +components summed separately for each LAMMPS atom type: .. math:: @@ -180,16 +181,16 @@ section below on output for a detailed explanation. Compute *snap* calculates a global array containing information related to all three of the above per-atom computes *sna/atom*\ , *snad/atom*\ , and *snav/atom*\ . The first row of the array contains the summation of -*sna/atom* over all atoms, but broken out by type. The last six rows -of the array contain the summation of *snav/atom* over all atoms, broken -out by type. In between these are 3\*\ *N* rows containing the same values -computed by *snad/atom* (these are already summed over all atoms and -broken out by type). The element in the last column of each row contains -the potential energy, force, or stress, according to the row. +*sna/atom* over all atoms, but broken out by type. The last six rows of +the array contain the summation of *snav/atom* over all atoms, broken +out by type. In between these are 3\*\ *N* rows containing the same +values computed by *snad/atom* (these are already summed over all atoms +and broken out by type). The element in the last column of each row +contains the potential energy, force, or stress, according to the row. These quantities correspond to the user-specified reference potential -that must be subtracted from the target data when fitting SNAP. -The potential energy calculation uses the built in compute *thermo_pe*. -The stress calculation uses a compute called *snap_press* that is +that must be subtracted from the target data when fitting SNAP. The +potential energy calculation uses the built in compute *thermo_pe*. The +stress calculation uses a compute called *snap_press* that is automatically created behind the scenes, according to the following command: @@ -225,36 +226,32 @@ The keyword *switchflag* can be used to turn off the switching function :math:`f_c(r)`. The keyword *bzeroflag* determines whether or not *B0*\ , the bispectrum -components of an atom with no neighbors, are subtracted from -the calculated bispectrum components. This optional keyword -normally only affects compute *sna/atom*\ . However, when -*quadraticflag* is on, it also affects *snad/atom* and *snav/atom*\ . +components of an atom with no neighbors, are subtracted from the +calculated bispectrum components. This optional keyword normally only +affects compute *sna/atom*\ . However, when *quadraticflag* is on, it +also affects *snad/atom* and *snav/atom*\ . -The keyword *quadraticflag* determines whether or not the -quadratic combinations of bispectrum quantities are generated. -These are formed by taking the outer product of the vector -of bispectrum components with itself. -See section below on output for a -detailed explanation of the number of quadratic terms and the -ordered in which they are listed. +The keyword *quadraticflag* determines whether or not the quadratic +combinations of bispectrum quantities are generated. These are formed +by taking the outer product of the vector of bispectrum components with +itself. See section below on output for a detailed explanation of the +number of quadratic terms and the ordered in which they are listed. -The keyword *chem* activates the explicit multi-element variant -of the SNAP bispectrum components. The argument *nelements* -specifies the number of SNAP elements that will be handled. -This is followed by *elementlist*, a list of integers of -length *ntypes*, with values in the range [0, *nelements* ), -which maps each LAMMPS type to one of the SNAP elements. -Note that multiple LAMMPS types can be mapped to the same element, -and some elements may be mapped by no LAMMPS type. However, in typical -use cases (training SNAP potentials) the mapping from LAMMPS types -to elements is one-to-one. +The keyword *chem* activates the explicit multi-element variant of the +SNAP bispectrum components. The argument *nelements* specifies the +number of SNAP elements that will be handled. This is followed by +*elementlist*, a list of integers of length *ntypes*, with values in the +range [0, *nelements* ), which maps each LAMMPS type to one of the SNAP +elements. Note that multiple LAMMPS types can be mapped to the same +element, and some elements may be mapped by no LAMMPS type. However, in +typical use cases (training SNAP potentials) the mapping from LAMMPS +types to elements is one-to-one. The explicit multi-element variant invoked by the *chem* keyword -partitions the density of neighbors into partial densities -for each chemical element. This is described in detail in the -paper by :ref:`Cusentino et al. ` -The bispectrum components are indexed on -ordered triplets of elements: +partitions the density of neighbors into partial densities for each +chemical element. This is described in detail in the paper by +:ref:`Cusentino et al. ` The bispectrum components are +indexed on ordered triplets of elements: .. math:: @@ -272,17 +269,19 @@ of element :math:`\mu` u^{\mu}_{j,m,m'} = w^{self}_{\mu_{i}\mu} U^{j,m,m'}(0,0,0) + \sum_{r_{ii'} < R_{ii'}}{\delta_{\mu\mu_{i'}}f_c(r_{ii'}) w_{\mu_{i'}} U^{j,m,m'}(\theta_0,\theta,\phi)} -where :math:`w^{self}_{\mu_{i}\mu}` is the self-contribution, which is either 1 or 0 -(see keyword *wselfallflag* below), :math:`\delta_{\mu\mu_{i'}}` indicates -that the sum is only over neighbor atoms of element :math:`\mu`, -and all other quantities are the same as those appearing in the -original equation for :math:`u^j_{m,m'}` given above. +where :math:`w^{self}_{\mu_{i}\mu}` is the self-contribution, which is +either 1 or 0 (see keyword *wselfallflag* below), +:math:`\delta_{\mu\mu_{i'}}` indicates that the sum is only over +neighbor atoms of element :math:`\mu`, and all other quantities are the +same as those appearing in the original equation for :math:`u^j_{m,m'}` +given above. -The keyword *wselfallflag* defines the rule used for the self-contribution. -If *wselfallflag* is on, then :math:`w^{self}_{\mu_{i}\mu}` = 1. If it is -off then :math:`w^{self}_{\mu_{i}\mu}` = 0, except in the case -of :math:`{\mu_{i}=\mu}`, when :math:`w^{self}_{\mu_{i}\mu}` = 1. -When the *chem* keyword is not used, this keyword has no effect. +The keyword *wselfallflag* defines the rule used for the +self-contribution. If *wselfallflag* is on, then +:math:`w^{self}_{\mu_{i}\mu}` = 1. If it is off then +:math:`w^{self}_{\mu_{i}\mu}` = 0, except in the case of +:math:`{\mu_{i}=\mu}`, when :math:`w^{self}_{\mu_{i}\mu}` = 1. When the +*chem* keyword is not used, this keyword has no effect. The keyword *bnormflag* determines whether or not the bispectrum component :math:`B_{j_1,j_2,j}` is divided by a factor of :math:`2j+1`. @@ -299,16 +298,16 @@ are not both set or not both unset. .. note:: - If you have a bonded system, then the settings of - :doc:`special_bonds ` command can remove pairwise - interactions between atoms in the same bond, angle, or dihedral. This - is the default setting for the :doc:`special_bonds ` - command, and means those pairwise interactions do not appear in the - neighbor list. Because this fix uses the neighbor list, it also means - those pairs will not be included in the calculation. One way to get - around this, is to write a dump file, and use the :doc:`rerun ` - command to compute the bispectrum components for snapshots in the dump - file. The rerun script can use a :doc:`special_bonds ` + If you have a bonded system, then the settings of :doc:`special_bonds + ` command can remove pairwise interactions between + atoms in the same bond, angle, or dihedral. This is the default + setting for the :doc:`special_bonds ` command, and + means those pairwise interactions do not appear in the neighbor list. + Because this fix uses the neighbor list, it also means those pairs + will not be included in the calculation. One way to get around this, + is to write a dump file, and use the :doc:`rerun ` command to + compute the bispectrum components for snapshots in the dump file. + The rerun script can use a :doc:`special_bonds ` command that includes all pairs in the neighbor list. ---------- @@ -317,10 +316,10 @@ Output info """"""""""" Compute *sna/atom* calculates a per-atom array, each column -corresponding to a particular bispectrum component. The total number -of columns and the identity of the bispectrum component contained in -each column depend of the value of *twojmax*\ , as -described by the following piece of python code: +corresponding to a particular bispectrum component. The total number of +columns and the identity of the bispectrum component contained in each +column depend of the value of *twojmax*\ , as described by the following +piece of python code: .. parsed-literal:: @@ -338,73 +337,72 @@ For even twojmax = 2(*m*\ -1), :math:`K = m(m+1)(2m+1)/6`, the *m*\ -th pyramida since all potentials use the value of 3, corresponding to the above set of bispectrum components. -Compute *snad/atom* evaluates a per-atom array. The columns are -arranged into *ntypes* blocks, listed in order of atom type *I*\ . Each -block contains three sub-blocks corresponding to the *x*\ , *y*\ , and *z* +Compute *snad/atom* evaluates a per-atom array. The columns are arranged +into *ntypes* blocks, listed in order of atom type *I*\ . Each block +contains three sub-blocks corresponding to the *x*\ , *y*\ , and *z* components of the atom position. Each of these sub-blocks contains *K* -columns for the *K* bispectrum components, the same as for compute *sna/atom* +columns for the *K* bispectrum components, the same as for compute +*sna/atom* -Compute *snav/atom* evaluates a per-atom array. The columns are -arranged into *ntypes* blocks, listed in order of atom type *I*\ . Each -block contains six sub-blocks corresponding to the *xx*\ , *yy*\ , *zz*\ , +Compute *snav/atom* evaluates a per-atom array. The columns are arranged +into *ntypes* blocks, listed in order of atom type *I*\ . Each block +contains six sub-blocks corresponding to the *xx*\ , *yy*\ , *zz*\ , *yz*\ , *xz*\ , and *xy* components of the virial tensor in Voigt -notation. Each of these sub-blocks contains *K* -columns for the *K* bispectrum components, the same as for compute *sna/atom* +notation. Each of these sub-blocks contains *K* columns for the *K* +bispectrum components, the same as for compute *sna/atom* -Compute *snap* evaluates a global array. -The columns are arranged into -*ntypes* blocks, listed in order of atom type *I*\ . Each block -contains one column for each bispectrum component, the same as for compute -*sna/atom*\ . A final column contains the corresponding energy, force component -on an atom, or virial stress component. The rows of the array appear -in the following order: +Compute *snap* evaluates a global array. The columns are arranged into +*ntypes* blocks, listed in order of atom type *I*\ . Each block contains +one column for each bispectrum component, the same as for compute +*sna/atom*\ . A final column contains the corresponding energy, force +component on an atom, or virial stress component. The rows of the array +appear in the following order: * 1 row: *sna/atom* quantities summed for all atoms of type *I* * 3\*\ *N* rows: *snad/atom* quantities, with derivatives w.r.t. x, y, and z coordinate of atom *i* appearing in consecutive rows. The atoms are sorted based on atom ID. * 6 rows: *snav/atom* quantities summed for all atoms of type *I* -For example, if *K* =30 and ntypes=1, the number of columns in the per-atom -arrays generated by *sna/atom*\ , *snad/atom*\ , and *snav/atom* -are 30, 90, and 180, respectively. With *quadratic* value=1, -the numbers of columns are 930, 2790, and 5580, respectively. -The number of columns in the global array generated by *snap* -are 31, and 931, respectively, while the number of rows is -1+3\*\ *N*\ +6, where *N* is the total number of atoms. +For example, if *K* =30 and ntypes=1, the number of columns in the +per-atom arrays generated by *sna/atom*\ , *snad/atom*\ , and +*snav/atom* are 30, 90, and 180, respectively. With *quadratic* value=1, +the numbers of columns are 930, 2790, and 5580, respectively. The +number of columns in the global array generated by *snap* are 31, and +931, respectively, while the number of rows is 1+3\*\ *N*\ +6, where *N* +is the total number of atoms. -If the *quadratic* keyword value is set to 1, then additional -columns are generated, corresponding to -the products of all distinct pairs of bispectrum components. If the -number of bispectrum components is *K*\ , then the number of distinct pairs -is *K*\ (\ *K*\ +1)/2. -For compute *sna/atom* these columns are appended to existing *K* columns. -The ordering of quadratic terms is upper-triangular, -(1,1),(1,2)...(1,\ *K*\ ),(2,1)...(\ *K*\ -1,\ *K*\ -1),(\ *K*\ -1,\ *K*\ ),(\ *K*\ ,\ *K*\ ). +If the *quadratic* keyword value is set to 1, then additional columns +are generated, corresponding to the products of all distinct pairs of +bispectrum components. If the number of bispectrum components is *K*\ , +then the number of distinct pairs is *K*\ (\ *K*\ +1)/2. For compute +*sna/atom* these columns are appended to existing *K* columns. The +ordering of quadratic terms is upper-triangular, (1,1),(1,2)...(1,\ *K*\ +),(2,1)...(\ *K*\ -1,\ *K*\ -1),(\ *K*\ -1,\ *K*\ ),(\ *K*\ ,\ *K*\ ). For computes *snad/atom* and *snav/atom* each set of *K*\ (\ *K*\ +1)/2 -additional columns is inserted directly after each of sub-block -of linear terms i.e. linear and quadratic terms are contiguous. -So the nesting order from inside to outside is bispectrum component, -linear then quadratic, vector/tensor component, type. +additional columns is inserted directly after each of sub-block of +linear terms i.e. linear and quadratic terms are contiguous. So the +nesting order from inside to outside is bispectrum component, linear +then quadratic, vector/tensor component, type. -If the *chem* keyword is used, then the data is arranged into :math:`N_{elem}^3` -sub-blocks, each sub-block corresponding to a particular chemical labeling -:math:`\kappa\lambda\mu` with the last label changing fastest. -Each sub-block contains *K* bispectrum components. For the purposes -of handling contributions to force, virial, and quadratic combinations, -these :math:`N_{elem}^3` sub-blocks are treated as a single block -of :math:`K N_{elem}^3` columns. +If the *chem* keyword is used, then the data is arranged into +:math:`N_{elem}^3` sub-blocks, each sub-block corresponding to a +particular chemical labeling :math:`\kappa\lambda\mu` with the last +label changing fastest. Each sub-block contains *K* bispectrum +components. For the purposes of handling contributions to force, virial, +and quadratic combinations, these :math:`N_{elem}^3` sub-blocks are +treated as a single block of :math:`K N_{elem}^3` columns. These values can be accessed by any command that uses per-atom values from a compute as input. See the :doc:`Howto output ` doc page for an overview of LAMMPS output options. To see how this command -can be used within a Python workflow to train SNAP potentials, -see the examples in `FitSNAP `_. +can be used within a Python workflow to train SNAP potentials, see the +examples in `FitSNAP `_. Restrictions """""""""""" -These computes are part of the SNAP package. They are only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` -doc page for more info. +These computes are part of the ML-SNAP package. They are 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/pair_mliap.rst b/doc/src/pair_mliap.rst index 8a43169c83..199f23e1b2 100644 --- a/doc/src/pair_mliap.rst +++ b/doc/src/pair_mliap.rst @@ -194,9 +194,9 @@ Restrictions This pair style is part of the ML-IAP package. It is only enabled if LAMMPS was built with that package. In addition, building LAMMPS with -the ML-IAP package requires building LAMMPS with the SNAP package. The -*mliappy* model requires building LAMMPS with the PYTHON package. See -the :doc:`Build package ` doc page for more info. +the ML-IAP package requires building LAMMPS with the ML-SNAP package. +The *mliappy* model requires building LAMMPS with the PYTHON package. +See the :doc:`Build package ` doc page for more info. Related commands diff --git a/doc/src/pair_snap.rst b/doc/src/pair_snap.rst index 2de1b59dd4..5638087d78 100644 --- a/doc/src/pair_snap.rst +++ b/doc/src/pair_snap.rst @@ -24,32 +24,28 @@ Examples Description """"""""""" -Pair style *snap* defines the spectral -neighbor analysis potential (SNAP), a machine-learning -interatomic potential :ref:`(Thompson) `. -Like the GAP framework of Bartok et al. :ref:`(Bartok2010) `, -SNAP uses bispectrum components -to characterize the local neighborhood of each atom -in a very general way. The mathematical definition of the -bispectrum calculation and its derivatives w.r.t. atom positions -is identical to that used by :doc:`compute snap `, -which is used to fit SNAP potentials to *ab initio* energy, force, -and stress data. -In SNAP, the total energy is decomposed into a sum over -atom energies. The energy of atom *i* is -expressed as a weighted sum over bispectrum components. +Pair style *snap* defines the spectral neighbor analysis potential +(SNAP), a machine-learning interatomic potential :ref:`(Thompson) +`. Like the GAP framework of Bartok et +al. :ref:`(Bartok2010) `, SNAP uses bispectrum components +to characterize the local neighborhood of each atom in a very general +way. The mathematical definition of the bispectrum calculation and its +derivatives w.r.t. atom positions is identical to that used by +:doc:`compute snap `, which is used to fit SNAP +potentials to *ab initio* energy, force, and stress data. In SNAP, the +total energy is decomposed into a sum over atom energies. The energy of +atom *i* is expressed as a weighted sum over bispectrum components. .. math:: E^i_{SNAP}(B_1^i,...,B_K^i) = \beta^{\mu_i}_0 + \sum_{k=1}^K \beta_k^{\mu_i} B_k^i where :math:`B_k^i` is the *k*\ -th bispectrum component of atom *i*\ , -and :math:`\beta_k^{\mu_i}` is the corresponding linear coefficient -that depends on :math:`\mu_i`, the SNAP element of atom *i*\ . The -number of bispectrum components used and their definitions -depend on the value of *twojmax* and other parameters -defined in the SNAP parameter file described below. -The bispectrum calculation is described in more detail +and :math:`\beta_k^{\mu_i}` is the corresponding linear coefficient that +depends on :math:`\mu_i`, the SNAP element of atom *i*\ . The number of +bispectrum components used and their definitions depend on the value of +*twojmax* and other parameters defined in the SNAP parameter file +described below. The bispectrum calculation is described in more detail in :doc:`compute sna/atom `. Note that unlike for other potentials, cutoffs for SNAP potentials are @@ -80,32 +76,28 @@ The two trailing 'In' arguments map LAMMPS atom types 1 and 2 to the SNAP 'In' element. The two trailing 'P' arguments map LAMMPS atom types 3 and 4 to the SNAP 'P' element. -If a SNAP mapping value is -specified as NULL, the mapping is not performed. -This can be used when a *snap* potential is used as part of the -*hybrid* pair style. The NULL values are placeholders for atom types -that will be used with other potentials. +If a SNAP mapping value is specified as NULL, the mapping is not +performed. This can be used when a *snap* potential is used as part of +the *hybrid* pair style. The NULL values are placeholders for atom +types that will be used with other potentials. -The name of the SNAP coefficient file usually ends in the -".snapcoeff" extension. It may contain coefficients -for many SNAP elements. The only requirement is that -each of the unique element names appearing in the -LAMMPS pair_coeff command appear exactly once in -the SNAP coefficient file. It is okay if the SNAP coefficient file -contains additional elements not in the pair_coeff command, -except when using *chemflag* (see below). -The name of the SNAP parameter file usually ends in the ".snapparam" -extension. It contains a small number -of parameters that define the overall form of the SNAP potential. -See the :doc:`pair_coeff ` doc page for alternate ways -to specify the path for these files. +The name of the SNAP coefficient file usually ends in the ".snapcoeff" +extension. It may contain coefficients for many SNAP elements. The only +requirement is that each of the unique element names appearing in the +LAMMPS pair_coeff command appear exactly once in the SNAP coefficient +file. It is okay if the SNAP coefficient file contains additional +elements not in the pair_coeff command, except when using *chemflag* +(see below). The name of the SNAP parameter file usually ends in the +".snapparam" extension. It contains a small number of parameters that +define the overall form of the SNAP potential. See the :doc:`pair_coeff +` doc page for alternate ways to specify the path for these +files. -Quite commonly, -SNAP potentials are combined with one or more other LAMMPS pair styles -using the *hybrid/overlay* pair style. As an example, the SNAP -tantalum potential provided in the LAMMPS potentials directory -combines the *snap* and *zbl* pair styles. It is invoked -by the following commands: +SNAP potentials are quite commonly combined with one or more other +LAMMPS pair styles using the *hybrid/overlay* pair style. As an +example, the SNAP tantalum potential provided in the LAMMPS potentials +directory combines the *snap* and *zbl* pair styles. It is invoked by +the following commands: .. code-block:: LAMMPS @@ -118,13 +110,13 @@ by the following commands: pair_coeff 1 1 zbl ${zblz} pair_coeff * * snap Ta06A.snapcoeff Ta06A.snapparam Ta -It is convenient to keep these commands in a separate file that can -be inserted in any LAMMPS input script using the :doc:`include ` +It is convenient to keep these commands in a separate file that can be +inserted in any LAMMPS input script using the :doc:`include ` command. -The top of the SNAP coefficient file can contain any number of blank and comment lines (start with #), but follows a strict -format after that. The first non-blank non-comment -line must contain two integers: +The top of the SNAP coefficient file can contain any number of blank and +comment lines (start with #), but follows a strict format after +that. The first non-blank non-comment line must contain two integers: * nelem = Number of elements * ncoeff = Number of coefficients @@ -157,39 +149,44 @@ The default values for these keywords are * *wselfallflag* = 0 * *chunksize* = 4096 -If *quadraticflag* is set to 1, then the SNAP energy expression includes additional quadratic terms -that have been shown to increase the overall accuracy of the potential without much increase -in computational cost :ref:`(Wood) `. +If *quadraticflag* is set to 1, then the SNAP energy expression includes +additional quadratic terms that have been shown to increase the overall +accuracy of the potential without much increase in computational cost +:ref:`(Wood) `. .. math:: E^i_{SNAP}(\mathbf{B}^i) = \beta^{\mu_i}_0 + \boldsymbol{\beta}^{\mu_i} \cdot \mathbf{B}_i + \frac{1}{2}\mathbf{B}^t_i \cdot \boldsymbol{\alpha}^{\mu_i} \cdot \mathbf{B}_i where :math:`\mathbf{B}_i` is the *K*-vector of bispectrum components, -:math:`\boldsymbol{\beta}^{\mu_i}` is the *K*-vector of linear coefficients -for element :math:`\mu_i`, and :math:`\boldsymbol{\alpha}^{\mu_i}` -is the symmetric *K* by *K* matrix of quadratic coefficients. -The SNAP coefficient file should contain *K*\ (\ *K*\ +1)/2 additional coefficients -in each element block, the upper-triangular elements of :math:`\boldsymbol{\alpha}^{\mu_i}`. +:math:`\boldsymbol{\beta}^{\mu_i}` is the *K*-vector of linear +coefficients for element :math:`\mu_i`, and +:math:`\boldsymbol{\alpha}^{\mu_i}` is the symmetric *K* by *K* matrix +of quadratic coefficients. The SNAP coefficient file should contain +*K*\ (\ *K*\ +1)/2 additional coefficients in each element block, the +upper-triangular elements of :math:`\boldsymbol{\alpha}^{\mu_i}`. -If *chemflag* is set to 1, then the energy expression is written in terms of explicit multi-element bispectrum -components indexed on ordered triplets of elements, which has been shown to increase the ability of the SNAP -potential to capture energy differences in chemically complex systems, -at the expense of a significant increase in computational cost :ref:`(Cusentino) `. +If *chemflag* is set to 1, then the energy expression is written in +terms of explicit multi-element bispectrum components indexed on ordered +triplets of elements, which has been shown to increase the ability of +the SNAP potential to capture energy differences in chemically complex +systems, at the expense of a significant increase in computational cost +:ref:`(Cusentino) `. .. math:: E^i_{SNAP}(\mathbf{B}^i) = \beta^{\mu_i}_0 + \sum_{\kappa,\lambda,\mu} \boldsymbol{\beta}^{\kappa\lambda\mu}_{\mu_i} \cdot \mathbf{B}^{\kappa\lambda\mu}_i -where :math:`\mathbf{B}^{\kappa\lambda\mu}_i` is the *K*-vector of bispectrum components -for neighbors of elements :math:`\kappa`, :math:`\lambda`, and :math:`\mu` and -:math:`\boldsymbol{\beta}^{\kappa\lambda\mu}_{\mu_i}` is the corresponding *K*-vector -of linear coefficients for element :math:`\mu_i`. The SNAP coefficient file should contain -a total of :math:`K N_{elem}^3` coefficients in each element block, -where :math:`N_{elem}` is the number of elements in the SNAP coefficient file, -which must equal the number of unique elements appearing in the -LAMMPS pair_coeff command, to avoid ambiguity in the -number of coefficients. +where :math:`\mathbf{B}^{\kappa\lambda\mu}_i` is the *K*-vector of +bispectrum components for neighbors of elements :math:`\kappa`, +:math:`\lambda`, and :math:`\mu` and +:math:`\boldsymbol{\beta}^{\kappa\lambda\mu}_{\mu_i}` is the +corresponding *K*-vector of linear coefficients for element +:math:`\mu_i`. The SNAP coefficient file should contain a total of +:math:`K N_{elem}^3` coefficients in each element block, where +:math:`N_{elem}` is the number of elements in the SNAP coefficient file, +which must equal the number of unique elements appearing in the LAMMPS +pair_coeff command, to avoid ambiguity in the number of coefficients. The keyword *chunksize* is only applicable when using the pair style *snap* with the KOKKOS package and is ignored otherwise. @@ -221,9 +218,10 @@ specify a pair_coeff command with I != J arguments for this style. This pair style does not support the :doc:`pair_modify ` shift, table, and tail options. -This pair style does not write its information to :doc:`binary restart files `, since it is stored in potential files. Thus, you -need to re-specify the pair_style and pair_coeff commands in an input -script that reads a restart file. +This pair style does not write its information to :doc:`binary restart +files `, since it is stored in potential files. Thus, you need +to re-specify the pair_style and pair_coeff commands in an input script +that reads a restart file. This pair style can only be used via the *pair* keyword of the :doc:`run_style respa ` command. It does not support the @@ -238,8 +236,9 @@ This pair style can only be used via the *pair* keyword of the Restrictions """""""""""" -This style is part of the SNAP package. It is only enabled if LAMMPS -was built with that package. See the :doc:`Build package ` doc page for more info. +This style is part of the ML-SNAP 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/potentials/README b/potentials/README index bd4ea89c4e..4df315a7f2 100644 --- a/potentials/README +++ b/potentials/README @@ -100,9 +100,9 @@ meam.spline modified EAM (MEAM) spline potential meam.sw.spline modified EAM (MEAM) Stillinger-Weber spline potential mesocnt mesoscopic carbon nanotube (CNT) potential mgpt model generalized pseudopotential theory (MGPT) potential -mliap ML-IAP potential -mliap.descriptor ML-IAP potential descriptor -mliap.model ML-IAP potential model +mliap MLIAP potential +mliap.descriptor MLIAP potential descriptor +mliap.model MLIAP potential model nb3b.harmonic nonbonded 3-body harmonic potential poly polymorphic 3-body potential reax ReaxFF potential (see README.reax for more info) diff --git a/src/Depend.sh b/src/Depend.sh index 7449a46ff5..c97321a9ef 100755 --- a/src/Depend.sh +++ b/src/Depend.sh @@ -116,7 +116,7 @@ if (test $1 = "RIGID") then depend USER-SDPD fi -if (test $1 = "SNAP") then +if (test $1 = "ML-SNAP") then depend KOKKOS depend ML-IAP fi diff --git a/src/SNAP/compute_sna_atom.cpp b/src/ML-SNAP/compute_sna_atom.cpp similarity index 100% rename from src/SNAP/compute_sna_atom.cpp rename to src/ML-SNAP/compute_sna_atom.cpp diff --git a/src/SNAP/compute_sna_atom.h b/src/ML-SNAP/compute_sna_atom.h similarity index 100% rename from src/SNAP/compute_sna_atom.h rename to src/ML-SNAP/compute_sna_atom.h diff --git a/src/SNAP/compute_snad_atom.cpp b/src/ML-SNAP/compute_snad_atom.cpp similarity index 100% rename from src/SNAP/compute_snad_atom.cpp rename to src/ML-SNAP/compute_snad_atom.cpp diff --git a/src/SNAP/compute_snad_atom.h b/src/ML-SNAP/compute_snad_atom.h similarity index 100% rename from src/SNAP/compute_snad_atom.h rename to src/ML-SNAP/compute_snad_atom.h diff --git a/src/SNAP/compute_snap.cpp b/src/ML-SNAP/compute_snap.cpp similarity index 100% rename from src/SNAP/compute_snap.cpp rename to src/ML-SNAP/compute_snap.cpp diff --git a/src/SNAP/compute_snap.h b/src/ML-SNAP/compute_snap.h similarity index 100% rename from src/SNAP/compute_snap.h rename to src/ML-SNAP/compute_snap.h diff --git a/src/SNAP/compute_snav_atom.cpp b/src/ML-SNAP/compute_snav_atom.cpp similarity index 100% rename from src/SNAP/compute_snav_atom.cpp rename to src/ML-SNAP/compute_snav_atom.cpp diff --git a/src/SNAP/compute_snav_atom.h b/src/ML-SNAP/compute_snav_atom.h similarity index 100% rename from src/SNAP/compute_snav_atom.h rename to src/ML-SNAP/compute_snav_atom.h diff --git a/src/SNAP/pair_snap.cpp b/src/ML-SNAP/pair_snap.cpp similarity index 100% rename from src/SNAP/pair_snap.cpp rename to src/ML-SNAP/pair_snap.cpp diff --git a/src/SNAP/pair_snap.h b/src/ML-SNAP/pair_snap.h similarity index 100% rename from src/SNAP/pair_snap.h rename to src/ML-SNAP/pair_snap.h diff --git a/src/SNAP/sna.cpp b/src/ML-SNAP/sna.cpp similarity index 100% rename from src/SNAP/sna.cpp rename to src/ML-SNAP/sna.cpp diff --git a/src/SNAP/sna.h b/src/ML-SNAP/sna.h similarity index 100% rename from src/SNAP/sna.h rename to src/ML-SNAP/sna.h diff --git a/src/Makefile b/src/Makefile index d084d84c5c..dc28e28261 100644 --- a/src/Makefile +++ b/src/Makefile @@ -49,7 +49,7 @@ endif PACKAGE = asphere body class2 colloid compress coreshell dipole gpu \ granular kim kokkos kspace latte manybody mc message misc \ ml-iap molecule mpiio mscg opt peri plugin poems \ - python qeq replica rigid shock snap spin srd voronoi + python qeq replica rigid shock ml-snap spin srd voronoi PACKUSER = user-adios user-atc user-awpmd user-brownian user-bocs user-cgdna \ user-cgsdk user-colvars user-dielectric user-diffraction user-dpd user-drude \