Merge pull request #2699 from yury-lysogorskiy/feature/user-pace
USER-PACE pair_style integration into LAMMPS
This commit is contained in:
@ -124,7 +124,7 @@ set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE
|
||||
USER-LB USER-MANIFOLD USER-MEAMC USER-MESONT USER-MGPT USER-MISC USER-MOFFF
|
||||
USER-MOLFILE USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB
|
||||
USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH
|
||||
USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM USER-YAFF)
|
||||
USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-PACE)
|
||||
|
||||
set(SUFFIX_PACKAGES CORESHELL GPU KOKKOS OPT USER-INTEL USER-OMP)
|
||||
|
||||
@ -387,7 +387,7 @@ else()
|
||||
endif()
|
||||
|
||||
foreach(PKG_WITH_INCL KSPACE PYTHON MLIAP VORONOI USER-COLVARS USER-MOLFILE USER-NETCDF USER-PLUMED USER-QMMM
|
||||
USER-QUIP USER-SCAFACOS USER-SMD USER-VTK KIM LATTE MESSAGE MSCG COMPRESS)
|
||||
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})
|
||||
endif()
|
||||
|
||||
26
cmake/Modules/Packages/USER-PACE.cmake
Normal file
26
cmake/Modules/Packages/USER-PACE.cmake
Normal file
@ -0,0 +1,26 @@
|
||||
|
||||
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.4.9.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
|
||||
set(PACELIB_MD5 "4db54962fbd6adcf8c18d46e1798ceb5" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
|
||||
mark_as_advanced(PACELIB_URL)
|
||||
mark_as_advanced(PACELIB_MD5)
|
||||
|
||||
# download library sources to build folder
|
||||
file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/libpace.tar.gz SHOW_PROGRESS EXPECTED_HASH MD5=${PACELIB_MD5})
|
||||
|
||||
# uncompress downloaded sources
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory lammps-user-pace*
|
||||
COMMAND ${CMAKE_COMMAND} -E tar xzf libpace.tar.gz
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
)
|
||||
|
||||
|
||||
file(GLOB PACE_EVALUATOR_INCLUDE_DIR ${CMAKE_BINARY_DIR}/lammps-user-pace-*/USER-PACE)
|
||||
file(GLOB PACE_EVALUATOR_SOURCES ${CMAKE_BINARY_DIR}/lammps-user-pace-*/USER-PACE/*.cpp)
|
||||
list(FILTER PACE_EVALUATOR_SOURCES EXCLUDE REGEX pair_pace.cpp)
|
||||
|
||||
add_library(pace STATIC ${PACE_EVALUATOR_SOURCES})
|
||||
set_target_properties(pace PROPERTIES OUTPUT_NAME pace${LAMMPS_MACHINE})
|
||||
target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR})
|
||||
target_link_libraries(lammps PRIVATE pace)
|
||||
|
||||
@ -52,6 +52,7 @@ This is the list of packages that may require additional steps.
|
||||
* :ref:`USER-MESONT <user-mesont>`
|
||||
* :ref:`USER-MOLFILE <user-molfile>`
|
||||
* :ref:`USER-NETCDF <user-netcdf>`
|
||||
* :ref:`USER-PACE <user-pace>`
|
||||
* :ref:`USER-PLUMED <user-plumed>`
|
||||
* :ref:`USER-OMP <user-omp>`
|
||||
* :ref:`USER-QMMM <user-qmmm>`
|
||||
@ -1247,6 +1248,46 @@ be built for the most part with all major versions of the C++ language.
|
||||
|
||||
----------
|
||||
|
||||
.. _user-pace:
|
||||
|
||||
USER-PACE package
|
||||
-----------------------------
|
||||
|
||||
This package requires a library that can be downloaded and built
|
||||
in lib/pace or somewhere else, which must be done before building
|
||||
LAMMPS with this package. The code for the library can be found
|
||||
at: `https://github.com/ICAMS/lammps-user-pace/ <https://github.com/ICAMS/lammps-user-pace/>`_
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: CMake build
|
||||
|
||||
By default the library will be downloaded from the git repository
|
||||
and built automatically when the USER-PACE package is enabled with
|
||||
``-D PKG_USER-PACE=yes``. The location for the sources may be
|
||||
customized by setting the variable ``PACELIB_URL`` when
|
||||
configuring with CMake (e.g. to use a local archive on machines
|
||||
without internet access). Since CMake checks the validity of the
|
||||
archive with ``md5sum`` you may also need to set ``PACELIB_MD5``
|
||||
if you provide a different library version than what is downloaded
|
||||
automatically.
|
||||
|
||||
|
||||
.. tab:: Traditional make
|
||||
|
||||
You can download and build the USER-PACE library
|
||||
in one step from the ``lammps/src`` dir, using these commands,
|
||||
which invoke the ``lib/pace/Install.py`` script.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ make lib-pace # print help message
|
||||
$ make lib-pace args="-b" # download and build the default version in lib/pace
|
||||
|
||||
You should not need to edit the ``lib/pace/Makefile.lammps`` file.
|
||||
|
||||
----------
|
||||
|
||||
.. _user-plumed:
|
||||
|
||||
USER-PLUMED package
|
||||
|
||||
@ -30,17 +30,17 @@ steps, as explained on the :doc:`Build extras <Build_extras>` page.
|
||||
These links take you to the extra instructions for those select
|
||||
packages:
|
||||
|
||||
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
| :ref:`COMPRESS <compress>` | :ref:`GPU <gpu>` | :ref:`KIM <kim>` | :ref:`KOKKOS <kokkos>` | :ref:`LATTE <latte>` | :ref:`MESSAGE <message>` |
|
||||
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
| :ref:`MSCG <mscg>` | :ref:`OPT <opt>` | :ref:`POEMS <poems>` | :ref:`PYTHON <python>` | :ref:`VORONOI <voronoi>` | :ref:`USER-ADIOS <user-adios>` |
|
||||
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
| :ref:`USER-ATC <user-atc>` | :ref:`USER-AWPMD <user-awpmd>` | :ref:`USER-COLVARS <user-colvars>` | :ref:`USER-H5MD <user-h5md>` | :ref:`USER-INTEL <user-intel>` | :ref:`USER-MOLFILE <user-molfile>` |
|
||||
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
| :ref:`USER-NETCDF <user-netcdf>` | :ref:`USER-PLUMED <user-plumed>` | :ref:`USER-OMP <user-omp>` | :ref:`USER-QMMM <user-qmmm>` | :ref:`USER-QUIP <user-quip>` | :ref:`USER-SCAFACOS <user-scafacos>` |
|
||||
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
| :ref:`USER-SMD <user-smd>` | :ref:`USER-VTK <user-vtk>` | | | | |
|
||||
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
+--------------------------------------+--------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
| :ref:`COMPRESS <compress>` | :ref:`GPU <gpu>` | :ref:`KIM <kim>` | :ref:`KOKKOS <kokkos>` | :ref:`LATTE <latte>` | :ref:`MESSAGE <message>` |
|
||||
+--------------------------------------+--------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
| :ref:`MSCG <mscg>` | :ref:`OPT <opt>` | :ref:`POEMS <poems>` | :ref:`PYTHON <python>` | :ref:`VORONOI <voronoi>` | :ref:`USER-ADIOS <user-adios>` |
|
||||
+--------------------------------------+--------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
| :ref:`USER-ATC <user-atc>` | :ref:`USER-AWPMD <user-awpmd>` | :ref:`USER-COLVARS <user-colvars>` | :ref:`USER-H5MD <user-h5md>` | :ref:`USER-INTEL <user-intel>` | :ref:`USER-MOLFILE <user-molfile>` |
|
||||
+--------------------------------------+--------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
| :ref:`USER-NETCDF <user-netcdf>` | :ref:`USER-PACE <user-pace>` | :ref:`USER-PLUMED <user-plumed>` | :ref:`USER-OMP <user-omp>` | :ref:`USER-QMMM <user-qmmm>` | :ref:`USER-QUIP <user-quip>` |
|
||||
+--------------------------------------+--------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
| :ref:`USER-SCAFACOS <user-scafacos>` | :ref:`USER-SMD <user-smd>` | :ref:`USER-VTK <user-vtk>` | | | |
|
||||
+--------------------------------------+--------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||
|
||||
The mechanism for including packages is simple but different for CMake
|
||||
versus make.
|
||||
|
||||
@ -216,6 +216,7 @@ OPT.
|
||||
* :doc:`oxrna2/stk <pair_oxrna2>`
|
||||
* :doc:`oxrna2/xstk <pair_oxrna2>`
|
||||
* :doc:`oxrna2/coaxstk <pair_oxrna2>`
|
||||
* :doc:`pace <pair_pace>`
|
||||
* :doc:`peri/eps <pair_peri>`
|
||||
* :doc:`peri/lps (o) <pair_peri>`
|
||||
* :doc:`peri/pmb (o) <pair_peri>`
|
||||
|
||||
@ -90,6 +90,7 @@ page gives those details.
|
||||
* :ref:`USER-MOLFILE <PKG-USER-MOLFILE>`
|
||||
* :ref:`USER-NETCDF <PKG-USER-NETCDF>`
|
||||
* :ref:`USER-OMP <PKG-USER-OMP>`
|
||||
* :ref:`USER-PACE <PKG-USER-PACE>`
|
||||
* :ref:`USER-PHONON <PKG-USER-PHONON>`
|
||||
* :ref:`USER-PLUMED <PKG-USER-PLUMED>`
|
||||
* :ref:`USER-PTM <PKG-USER-PTM>`
|
||||
@ -1349,6 +1350,46 @@ This package has :ref:`specific installation instructions <user-colvars>` on the
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-USER-PACE:
|
||||
|
||||
USER-PACE package
|
||||
-------------------
|
||||
|
||||
**Contents:**
|
||||
|
||||
A pair style for the Atomic Cluster Expansion potential (ACE).
|
||||
ACE is a methodology for deriving a highly accurate classical potential
|
||||
fit to a large archive of quantum mechanical (DFT) data. The USER-PACE
|
||||
package provides an efficient implementation for running simulations
|
||||
with ACE potentials.
|
||||
|
||||
**Authors:**
|
||||
|
||||
This package was written by Yury Lysogorskiy^1,
|
||||
Cas van der Oord^2, Anton Bochkarev^1,
|
||||
Sarath Menon^1, Matteo Rinaldi^1, Thomas Hammerschmidt^1, Matous Mrovec^1,
|
||||
Aidan Thompson^3, Gabor Csanyi^2, Christoph Ortner^4, Ralf Drautz^1.
|
||||
|
||||
^1: Ruhr-University Bochum, Bochum, Germany
|
||||
|
||||
^2: University of Cambridge, Cambridge, United Kingdom
|
||||
|
||||
^3: Sandia National Laboratories, Albuquerque, New Mexico, USA
|
||||
|
||||
^4: University of British Columbia, Vancouver, BC, Canada
|
||||
|
||||
**Install:**
|
||||
|
||||
This package has :ref:`specific installation instructions <user-pace>` on the :doc:`Build extras <Build_extras>` page.
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/USER-PACE: filenames -> commands
|
||||
* :doc:`pair_style pace <pair_pace>`
|
||||
* examples/USER/pace
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-USER-PLUMED:
|
||||
|
||||
USER-PLUMED package
|
||||
|
||||
@ -81,6 +81,8 @@ package:
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-OMP <PKG-USER-OMP>` | OpenMP-enabled styles | :doc:`Speed omp <Speed_omp>` | `Benchmarks <https://lammps.sandia.gov/bench.html>`_ | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-PACE <PKG-USER-PACE>` | Fast implementation of Atomic Cluster Expansion (ACE) potential | :doc:`pair pace <pair_pace>` | USER/pace | ext |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-PHONON <PKG-USER-PHONON>` | phonon dynamical matrix | :doc:`fix phonon <fix_phonon>` | USER/phonon | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-PLUMED <PKG-USER-PLUMED>` | :ref:`PLUMED <PLUMED>` free energy library | :doc:`fix plumed <fix_plumed>` | USER/plumed | ext |
|
||||
|
||||
114
doc/src/pair_pace.rst
Normal file
114
doc/src/pair_pace.rst
Normal file
@ -0,0 +1,114 @@
|
||||
.. index:: pair_style pace
|
||||
|
||||
pair_style pace command
|
||||
========================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style pace ... keyword values ...
|
||||
|
||||
* an optional keyword may be appended
|
||||
* keyword = *product* or *recursive*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*product* = use product algorithm for basis functions
|
||||
*recursive* = use recursive algorithm for basis functions
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style pace
|
||||
pair_style pace product
|
||||
pair_coeff * * Cu-PBE-core-rep.ace Cu
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Pair style *pace* computes interactions using the Atomic Cluster
|
||||
Expansion (ACE), which is a general expansion of the atomic energy in
|
||||
multi-body basis functions. :ref:`(Drautz) <Drautz20191>`.
|
||||
The *pace* pair style
|
||||
provides an efficient implementation that
|
||||
is described in this paper :ref:`(Lysogorskiy) <Lysogorskiy20211>`.
|
||||
|
||||
In ACE, the total energy is decomposed into a sum over
|
||||
atomic energies. The energy of atom *i* is expressed as a
|
||||
linear or non-linear function of one or more density functions.
|
||||
By projecting the
|
||||
density onto a local atomic base, the lowest order contributions
|
||||
to the energy can be expressed as a set of scalar polynomials in
|
||||
basis function contributions summed over neighbor atoms.
|
||||
|
||||
Only a single pair_coeff command is used with the *pace* style which
|
||||
specifies an ACE coefficient file followed by N additional arguments
|
||||
specifying the mapping of ACE elements to LAMMPS atom types,
|
||||
where N is the number of LAMMPS atom types:
|
||||
|
||||
* ACE coefficient file
|
||||
* N element names = mapping of ACE elements to atom types
|
||||
|
||||
Only a single pair_coeff command is used with the *pace* style which
|
||||
specifies an ACE file that fully defines the potential.
|
||||
Note that unlike for other potentials, cutoffs are
|
||||
not set in the pair_style or pair_coeff command; they are specified in
|
||||
the ACE file.
|
||||
|
||||
The pair_style *pace* command may be followed by an optional keyword
|
||||
*product* or *recursive*, which determines which of two algorithms
|
||||
is used for the calculation of basis functions and derivatives.
|
||||
The default is *recursive*.
|
||||
|
||||
See the :doc:`pair_coeff <pair_coeff>` doc page for alternate ways
|
||||
to specify the path for the ACE coefficient file.
|
||||
|
||||
Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
For atom type pairs I,J and I != J, where types I and J correspond to
|
||||
two different element types, mixing is performed by LAMMPS with
|
||||
user-specifiable parameters as described above. You never need to
|
||||
specify a pair_coeff command with I != J arguments for this style.
|
||||
|
||||
This pair style does not support the :doc:`pair_modify <pair_modify>`
|
||||
shift, table, and tail options.
|
||||
|
||||
This pair style does not write its information to :doc:`binary restart files <restart>`, 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 <run_style>` command. It does not support the
|
||||
*inner*\ , *middle*\ , *outer* keywords.
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This pair style is part of the USER-PACE package. It is only enabled if LAMMPS
|
||||
was built with that package.
|
||||
See the :doc:`Build package <Build_package>` doc page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_style snap <pair_snap>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
recursive
|
||||
|
||||
.. _Drautz20191:
|
||||
|
||||
**(Drautz)** Drautz, Phys Rev B, 99, 014104 (2019).
|
||||
|
||||
.. _Lysogorskiy20211:
|
||||
|
||||
**(Lysogorskiy)** Lysogorskiy, van der Oord, Bochkarev, Menon, Rinaldi, Hammerschmidt, Mrovec, Thompson, Csanyi, Ortner, Drautz, TBD (2021).
|
||||
@ -99,7 +99,7 @@ accelerated styles exist.
|
||||
* :doc:`zero <pair_zero>` - neighbor list but no interactions
|
||||
|
||||
* :doc:`adp <pair_adp>` - angular dependent potential (ADP) of Mishin
|
||||
* :doc:`agni <pair_agni>` - machine learned potential mapping atomic environment to forces
|
||||
* :doc:`agni <pair_agni>` - AGNI machine-learning potential
|
||||
* :doc:`airebo <pair_airebo>` - AIREBO potential of Stuart
|
||||
* :doc:`airebo/morse <pair_airebo>` - AIREBO with Morse instead of LJ
|
||||
* :doc:`atm <pair_atm>` - Axilrod-Teller-Muto potential
|
||||
@ -280,6 +280,7 @@ accelerated styles exist.
|
||||
* :doc:`oxrna2/hbond <pair_oxrna2>` -
|
||||
* :doc:`oxrna2/stk <pair_oxrna2>` -
|
||||
* :doc:`oxrna2/xstk <pair_oxrna2>` -
|
||||
* :doc:`pace <pair_pace>` - Atomic Cluster Expansion (ACE) machine-learning potential
|
||||
* :doc:`peri/eps <pair_peri>` - peridynamic EPS potential
|
||||
* :doc:`peri/lps <pair_peri>` - peridynamic LPS potential
|
||||
* :doc:`peri/pmb <pair_peri>` - peridynamic PMB potential
|
||||
@ -297,7 +298,7 @@ accelerated styles exist.
|
||||
* :doc:`smd/ulsph <pair_smd_ulsph>` -
|
||||
* :doc:`smtbq <pair_smtbq>` -
|
||||
* :doc:`mliap <pair_mliap>` - Multiple styles of machine-learning potential
|
||||
* :doc:`snap <pair_snap>` - SNAP quantum-accurate potential
|
||||
* :doc:`snap <pair_snap>` - SNAP machine-learning potential
|
||||
* :doc:`soft <pair_soft>` - Soft (cosine) potential
|
||||
* :doc:`sph/heatconduction <pair_sph_heatconduction>` -
|
||||
* :doc:`sph/idealgas <pair_sph_idealgas>` -
|
||||
|
||||
@ -268,6 +268,7 @@ blueviolet
|
||||
bn
|
||||
bni
|
||||
bo
|
||||
Bochkarev
|
||||
Bochum
|
||||
bocs
|
||||
bodyflag
|
||||
@ -343,6 +344,7 @@ Cao
|
||||
Capolungo
|
||||
Caro
|
||||
cartesian
|
||||
Cas
|
||||
CasP
|
||||
Caswell
|
||||
Cates
|
||||
@ -1069,6 +1071,7 @@ fuer
|
||||
fx
|
||||
fy
|
||||
fz
|
||||
Gabor
|
||||
Gahler
|
||||
gainsboro
|
||||
Galindo
|
||||
@ -1193,6 +1196,7 @@ Halperin
|
||||
Halver
|
||||
Hamaker
|
||||
Hamel
|
||||
Hammerschmidt
|
||||
haptic
|
||||
Hara
|
||||
Harpertown
|
||||
@ -1743,6 +1747,7 @@ lx
|
||||
ly
|
||||
Lybrand
|
||||
lyon
|
||||
Lysogorskiy
|
||||
Lyulin
|
||||
lz
|
||||
Maaravi
|
||||
@ -1801,8 +1806,10 @@ Materias
|
||||
mathbf
|
||||
mathjax
|
||||
matlab
|
||||
Matous
|
||||
matplotlib
|
||||
Matsubara
|
||||
Matteo
|
||||
Mattice
|
||||
Mattox
|
||||
Mattson
|
||||
@ -1863,6 +1870,7 @@ MEMALIGN
|
||||
membered
|
||||
memcheck
|
||||
Mendelev
|
||||
Menon
|
||||
mer
|
||||
Meremianin
|
||||
Mersenne
|
||||
@ -1986,6 +1994,7 @@ mpiio
|
||||
mpirun
|
||||
mplayer
|
||||
mps
|
||||
Mrovec
|
||||
Mryglod
|
||||
mscg
|
||||
MSCG
|
||||
@ -2311,6 +2320,7 @@ oneway
|
||||
onn
|
||||
ons
|
||||
OO
|
||||
Oord
|
||||
opencl
|
||||
openKIM
|
||||
openmp
|
||||
@ -2331,6 +2341,7 @@ Orsi
|
||||
ortho
|
||||
orthonormal
|
||||
orthorhombic
|
||||
Ortner
|
||||
oso
|
||||
Otype
|
||||
Ouldridge
|
||||
@ -2620,6 +2631,7 @@ radians
|
||||
Rafferty
|
||||
rahman
|
||||
Rahman
|
||||
Ralf
|
||||
Raman
|
||||
ramped
|
||||
ramping
|
||||
@ -2727,6 +2739,7 @@ Rij
|
||||
RIj
|
||||
Rik
|
||||
Rin
|
||||
Rinaldi
|
||||
Rino
|
||||
RiRj
|
||||
Risi
|
||||
@ -2815,6 +2828,7 @@ Sandia
|
||||
sandybrown
|
||||
sanitizer
|
||||
Sanyal
|
||||
Sarath
|
||||
sc
|
||||
scafacos
|
||||
SCAFACOS
|
||||
|
||||
1
examples/USER/pace/Cu-PBE-core-rep.ace
Symbolic link
1
examples/USER/pace/Cu-PBE-core-rep.ace
Symbolic link
@ -0,0 +1 @@
|
||||
../../../potentials/Cu-PBE-core-rep.ace
|
||||
38
examples/USER/pace/in.pace.product
Normal file
38
examples/USER/pace/in.pace.product
Normal file
@ -0,0 +1,38 @@
|
||||
# simple test of fcc Cu with ACE product
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify every 2 delay 10 check yes
|
||||
|
||||
variable a equal 3.597
|
||||
lattice fcc $a
|
||||
region box block 0 4 0 4 0 4
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
mass 1 26.98
|
||||
|
||||
group Al type 1
|
||||
|
||||
pair_style pace product
|
||||
pair_coeff * * Cu-PBE-core-rep.ace Cu
|
||||
|
||||
velocity all create 300 8728 loop geom
|
||||
timestep 0.0005
|
||||
fix 1 all nve
|
||||
|
||||
compute eatom all pe/atom
|
||||
compute energy all reduce sum c_eatom
|
||||
variable delenergy equal c_energy-pe
|
||||
|
||||
compute satom all stress/atom NULL
|
||||
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
|
||||
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp epair etotal press v_delenergy v_delpress
|
||||
|
||||
run 100
|
||||
|
||||
38
examples/USER/pace/in.pace.recursive
Normal file
38
examples/USER/pace/in.pace.recursive
Normal file
@ -0,0 +1,38 @@
|
||||
# simple test of fcc Cu with ACE recursive
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify every 2 delay 10 check yes
|
||||
|
||||
variable a equal 3.597
|
||||
lattice fcc $a
|
||||
region box block 0 4 0 4 0 4
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
mass 1 26.98
|
||||
|
||||
group Al type 1
|
||||
|
||||
pair_style pace recursive
|
||||
pair_coeff * * Cu-PBE-core-rep.ace Cu
|
||||
|
||||
velocity all create 300 8728 loop geom
|
||||
timestep 0.0005
|
||||
fix 1 all nve
|
||||
|
||||
compute eatom all pe/atom
|
||||
compute energy all reduce sum c_eatom
|
||||
variable delenergy equal c_energy-pe
|
||||
|
||||
compute satom all stress/atom NULL
|
||||
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
|
||||
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp epair etotal press v_delenergy v_delpress
|
||||
|
||||
run 100
|
||||
|
||||
108
examples/USER/pace/log.03Feb2021.pace.product.g++.1
Normal file
108
examples/USER/pace/log.03Feb2021.pace.product.g++.1
Normal file
@ -0,0 +1,108 @@
|
||||
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 test of fcc Cu with ACE product
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify every 2 delay 10 check yes
|
||||
|
||||
variable a equal 3.597
|
||||
lattice fcc $a
|
||||
lattice fcc 3.597
|
||||
Lattice spacing in x,y,z = 3.5970000 3.5970000 3.5970000
|
||||
region box block 0 4 0 4 0 4
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (14.388000 14.388000 14.388000)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 256 atoms
|
||||
create_atoms CPU = 0.000 seconds
|
||||
|
||||
mass 1 26.98
|
||||
|
||||
group Al type 1
|
||||
256 atoms in group Al
|
||||
|
||||
pair_style pace product
|
||||
ACE version: 2021.2.3
|
||||
Product evaluator is used
|
||||
pair_coeff * * Cu-PBE-core-rep.ace Cu
|
||||
Loading Cu-PBE-core-rep.ace
|
||||
Total number of basis functions
|
||||
Cu: 16 (r=1) 726 (r>1)
|
||||
Mapping LAMMPS atom type #1(Cu) -> ACE species type #0
|
||||
|
||||
velocity all create 300 8728 loop geom
|
||||
timestep 0.0005
|
||||
fix 1 all nve
|
||||
|
||||
compute eatom all pe/atom
|
||||
compute energy all reduce sum c_eatom
|
||||
variable delenergy equal c_energy-pe
|
||||
|
||||
compute satom all stress/atom NULL
|
||||
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
|
||||
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp epair etotal press v_delenergy v_delpress
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 2 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 7.7
|
||||
ghost atom cutoff = 7.7
|
||||
binsize = 3.85, bins = 4 4 4
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair pace, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 4.036 | 4.036 | 4.036 Mbytes
|
||||
Step Temp E_pair TotEng Press v_delenergy v_delpress
|
||||
0 300 -945.9873 -936.0989 45359.818 0 2.1827873e-11
|
||||
10 280.68558 -945.35055 -936.09878 46326.919 0 2.910383e-11
|
||||
20 228.73618 -943.63789 -936.09844 48903.598 0 -2.910383e-11
|
||||
30 160.53661 -941.38948 -936.09798 52222.083 0 -2.910383e-11
|
||||
40 97.732944 -939.31899 -936.09758 55176.875 0 2.1827873e-11
|
||||
50 59.165961 -938.04759 -936.0974 56850.103 0 2.910383e-11
|
||||
60 53.124678 -937.84857 -936.09751 56878.948 0 0
|
||||
70 74.623347 -938.5575 -936.09782 55565.237 0 4.3655746e-11
|
||||
80 109.4762 -939.70663 -936.09815 53665.652 0 2.910383e-11
|
||||
90 142.02657 -940.77975 -936.09837 52001.1 0 0
|
||||
100 161.73598 -941.42945 -936.09842 51114.997 0 1.4551915e-11
|
||||
Loop time of 11.4718 on 1 procs for 100 steps with 256 atoms
|
||||
|
||||
Performance: 0.377 ns/day, 63.732 hours/ns, 8.717 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 | 11.468 | 11.468 | 11.468 | 0.0 | 99.96
|
||||
Neigh | 0.001181 | 0.001181 | 0.001181 | 0.0 | 0.01
|
||||
Comm | 0.001207 | 0.001207 | 0.001207 | 0.0 | 0.01
|
||||
Output | 0.000876 | 0.000876 | 0.000876 | 0.0 | 0.01
|
||||
Modify | 0.000455 | 0.000455 | 0.000455 | 0.0 | 0.00
|
||||
Other | | 0.000397 | | | 0.00
|
||||
|
||||
Nlocal: 256.000 ave 256 max 256 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 2201.00 ave 2201 max 2201 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: 43118.0 ave 43118 max 43118 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 43118
|
||||
Ave neighs/atom = 168.42969
|
||||
Neighbor list builds = 1
|
||||
Dangerous builds = 0
|
||||
|
||||
Total wall time: 0:00:11
|
||||
108
examples/USER/pace/log.03Feb2021.pace.product.g++.4
Normal file
108
examples/USER/pace/log.03Feb2021.pace.product.g++.4
Normal file
@ -0,0 +1,108 @@
|
||||
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 test of fcc Cu with ACE product
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify every 2 delay 10 check yes
|
||||
|
||||
variable a equal 3.597
|
||||
lattice fcc $a
|
||||
lattice fcc 3.597
|
||||
Lattice spacing in x,y,z = 3.5970000 3.5970000 3.5970000
|
||||
region box block 0 4 0 4 0 4
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (14.388000 14.388000 14.388000)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 256 atoms
|
||||
create_atoms CPU = 0.000 seconds
|
||||
|
||||
mass 1 26.98
|
||||
|
||||
group Al type 1
|
||||
256 atoms in group Al
|
||||
|
||||
pair_style pace product
|
||||
ACE version: 2021.2.3
|
||||
Product evaluator is used
|
||||
pair_coeff * * Cu-PBE-core-rep.ace Cu
|
||||
Loading Cu-PBE-core-rep.ace
|
||||
Total number of basis functions
|
||||
Cu: 16 (r=1) 726 (r>1)
|
||||
Mapping LAMMPS atom type #1(Cu) -> ACE species type #0
|
||||
|
||||
velocity all create 300 8728 loop geom
|
||||
timestep 0.0005
|
||||
fix 1 all nve
|
||||
|
||||
compute eatom all pe/atom
|
||||
compute energy all reduce sum c_eatom
|
||||
variable delenergy equal c_energy-pe
|
||||
|
||||
compute satom all stress/atom NULL
|
||||
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
|
||||
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp epair etotal press v_delenergy v_delpress
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 2 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 7.7
|
||||
ghost atom cutoff = 7.7
|
||||
binsize = 3.85, bins = 4 4 4
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair pace, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 4.005 | 4.005 | 4.005 Mbytes
|
||||
Step Temp E_pair TotEng Press v_delenergy v_delpress
|
||||
0 300 -945.9873 -936.0989 45359.818 0 -1.4551915e-11
|
||||
10 280.68558 -945.35055 -936.09878 46326.919 0 2.910383e-11
|
||||
20 228.73618 -943.63789 -936.09844 48903.598 0 0
|
||||
30 160.53661 -941.38948 -936.09798 52222.083 0 -2.910383e-11
|
||||
40 97.732944 -939.31899 -936.09758 55176.875 0 2.1827873e-11
|
||||
50 59.165961 -938.04759 -936.0974 56850.103 0 -1.4551915e-11
|
||||
60 53.124678 -937.84857 -936.09751 56878.948 0 7.2759576e-12
|
||||
70 74.623347 -938.5575 -936.09782 55565.237 0 0
|
||||
80 109.4762 -939.70663 -936.09815 53665.652 0 2.1827873e-11
|
||||
90 142.02657 -940.77975 -936.09837 52001.1 0 -1.4551915e-11
|
||||
100 161.73598 -941.42945 -936.09842 51114.997 0 1.4551915e-11
|
||||
Loop time of 3.54317 on 4 procs for 100 steps with 256 atoms
|
||||
|
||||
Performance: 1.219 ns/day, 19.684 hours/ns, 28.223 timesteps/s
|
||||
98.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 | 3.1375 | 3.3058 | 3.469 | 6.5 | 93.30
|
||||
Neigh | 0.000284 | 0.00031975 | 0.000352 | 0.0 | 0.01
|
||||
Comm | 0.071607 | 0.23492 | 0.40336 | 24.6 | 6.63
|
||||
Output | 0.001189 | 0.0012315 | 0.001347 | 0.2 | 0.03
|
||||
Modify | 0.000311 | 0.00032725 | 0.000351 | 0.0 | 0.01
|
||||
Other | | 0.0005298 | | | 0.01
|
||||
|
||||
Nlocal: 64.0000 ave 71 max 57 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
Nghost: 1373.00 ave 1380 max 1366 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
Neighs: 0.00000 ave 0 max 0 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 10779.5 ave 11978 max 9604 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
|
||||
Total # of neighbors = 43118
|
||||
Ave neighs/atom = 168.42969
|
||||
Neighbor list builds = 1
|
||||
Dangerous builds = 0
|
||||
|
||||
Total wall time: 0:00:03
|
||||
108
examples/USER/pace/log.03Feb2021.pace.recursive.g++.1
Normal file
108
examples/USER/pace/log.03Feb2021.pace.recursive.g++.1
Normal file
@ -0,0 +1,108 @@
|
||||
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 test of fcc Cu with ACE recursive
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify every 2 delay 10 check yes
|
||||
|
||||
variable a equal 3.597
|
||||
lattice fcc $a
|
||||
lattice fcc 3.597
|
||||
Lattice spacing in x,y,z = 3.5970000 3.5970000 3.5970000
|
||||
region box block 0 4 0 4 0 4
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (14.388000 14.388000 14.388000)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 256 atoms
|
||||
create_atoms CPU = 0.000 seconds
|
||||
|
||||
mass 1 26.98
|
||||
|
||||
group Al type 1
|
||||
256 atoms in group Al
|
||||
|
||||
pair_style pace recursive
|
||||
ACE version: 2021.2.3
|
||||
Recursive evaluator is used
|
||||
pair_coeff * * Cu-PBE-core-rep.ace Cu
|
||||
Loading Cu-PBE-core-rep.ace
|
||||
Total number of basis functions
|
||||
Cu: 16 (r=1) 726 (r>1)
|
||||
Mapping LAMMPS atom type #1(Cu) -> ACE species type #0
|
||||
|
||||
velocity all create 300 8728 loop geom
|
||||
timestep 0.0005
|
||||
fix 1 all nve
|
||||
|
||||
compute eatom all pe/atom
|
||||
compute energy all reduce sum c_eatom
|
||||
variable delenergy equal c_energy-pe
|
||||
|
||||
compute satom all stress/atom NULL
|
||||
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
|
||||
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp epair etotal press v_delenergy v_delpress
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 2 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 7.7
|
||||
ghost atom cutoff = 7.7
|
||||
binsize = 3.85, bins = 4 4 4
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair pace, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 4.036 | 4.036 | 4.036 Mbytes
|
||||
Step Temp E_pair TotEng Press v_delenergy v_delpress
|
||||
0 300 -945.9873 -936.0989 45359.818 0 0
|
||||
10 280.68558 -945.35055 -936.09878 46326.919 0 5.8207661e-11
|
||||
20 228.73618 -943.63789 -936.09844 48903.598 0 1.4551915e-11
|
||||
30 160.53661 -941.38948 -936.09798 52222.083 0 7.2759576e-11
|
||||
40 97.732944 -939.31899 -936.09758 55176.875 0 -5.8207661e-11
|
||||
50 59.165961 -938.04759 -936.0974 56850.103 0 0
|
||||
60 53.124678 -937.84857 -936.09751 56878.948 0 8.7311491e-11
|
||||
70 74.623347 -938.5575 -936.09782 55565.237 0 -1.4551915e-11
|
||||
80 109.4762 -939.70663 -936.09815 53665.652 0 2.1827873e-11
|
||||
90 142.02657 -940.77975 -936.09837 52001.1 0 2.910383e-11
|
||||
100 161.73598 -941.42945 -936.09842 51114.997 0 0
|
||||
Loop time of 9.31437 on 1 procs for 100 steps with 256 atoms
|
||||
|
||||
Performance: 0.464 ns/day, 51.746 hours/ns, 10.736 timesteps/s
|
||||
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 9.3103 | 9.3103 | 9.3103 | 0.0 | 99.96
|
||||
Neigh | 0.001214 | 0.001214 | 0.001214 | 0.0 | 0.01
|
||||
Comm | 0.001176 | 0.001176 | 0.001176 | 0.0 | 0.01
|
||||
Output | 0.000827 | 0.000827 | 0.000827 | 0.0 | 0.01
|
||||
Modify | 0.000479 | 0.000479 | 0.000479 | 0.0 | 0.01
|
||||
Other | | 0.000363 | | | 0.00
|
||||
|
||||
Nlocal: 256.000 ave 256 max 256 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 2201.00 ave 2201 max 2201 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: 43118.0 ave 43118 max 43118 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 43118
|
||||
Ave neighs/atom = 168.42969
|
||||
Neighbor list builds = 1
|
||||
Dangerous builds = 0
|
||||
|
||||
Total wall time: 0:00:09
|
||||
108
examples/USER/pace/log.03Feb2021.pace.recursive.g++.4
Normal file
108
examples/USER/pace/log.03Feb2021.pace.recursive.g++.4
Normal file
@ -0,0 +1,108 @@
|
||||
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 test of fcc Cu with ACE recursive
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify every 2 delay 10 check yes
|
||||
|
||||
variable a equal 3.597
|
||||
lattice fcc $a
|
||||
lattice fcc 3.597
|
||||
Lattice spacing in x,y,z = 3.5970000 3.5970000 3.5970000
|
||||
region box block 0 4 0 4 0 4
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (14.388000 14.388000 14.388000)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 256 atoms
|
||||
create_atoms CPU = 0.000 seconds
|
||||
|
||||
mass 1 26.98
|
||||
|
||||
group Al type 1
|
||||
256 atoms in group Al
|
||||
|
||||
pair_style pace recursive
|
||||
ACE version: 2021.2.3
|
||||
Recursive evaluator is used
|
||||
pair_coeff * * Cu-PBE-core-rep.ace Cu
|
||||
Loading Cu-PBE-core-rep.ace
|
||||
Total number of basis functions
|
||||
Cu: 16 (r=1) 726 (r>1)
|
||||
Mapping LAMMPS atom type #1(Cu) -> ACE species type #0
|
||||
|
||||
velocity all create 300 8728 loop geom
|
||||
timestep 0.0005
|
||||
fix 1 all nve
|
||||
|
||||
compute eatom all pe/atom
|
||||
compute energy all reduce sum c_eatom
|
||||
variable delenergy equal c_energy-pe
|
||||
|
||||
compute satom all stress/atom NULL
|
||||
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
|
||||
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp epair etotal press v_delenergy v_delpress
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 2 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 7.7
|
||||
ghost atom cutoff = 7.7
|
||||
binsize = 3.85, bins = 4 4 4
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair pace, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 4.005 | 4.005 | 4.005 Mbytes
|
||||
Step Temp E_pair TotEng Press v_delenergy v_delpress
|
||||
0 300 -945.9873 -936.0989 45359.818 0 -5.0931703e-11
|
||||
10 280.68558 -945.35055 -936.09878 46326.919 0 1.4551915e-11
|
||||
20 228.73618 -943.63789 -936.09844 48903.598 0 0
|
||||
30 160.53661 -941.38948 -936.09798 52222.083 0 -2.910383e-11
|
||||
40 97.732944 -939.31899 -936.09758 55176.875 0 0
|
||||
50 59.165961 -938.04759 -936.0974 56850.103 0 -2.910383e-11
|
||||
60 53.124678 -937.84857 -936.09751 56878.948 0 1.4551915e-11
|
||||
70 74.623347 -938.5575 -936.09782 55565.237 0 3.6379788e-11
|
||||
80 109.4762 -939.70663 -936.09815 53665.652 0 -7.2759576e-12
|
||||
90 142.02657 -940.77975 -936.09837 52001.1 0 -2.910383e-11
|
||||
100 161.73598 -941.42945 -936.09842 51114.997 0 7.2759576e-12
|
||||
Loop time of 2.91339 on 4 procs for 100 steps with 256 atoms
|
||||
|
||||
Performance: 1.483 ns/day, 16.185 hours/ns, 34.324 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 | 2.5753 | 2.723 | 2.8656 | 6.3 | 93.46
|
||||
Neigh | 0.000308 | 0.000365 | 0.00046 | 0.0 | 0.01
|
||||
Comm | 0.045106 | 0.18792 | 0.33552 | 24.1 | 6.45
|
||||
Output | 0.001213 | 0.001259 | 0.001388 | 0.2 | 0.04
|
||||
Modify | 0.000304 | 0.00033 | 0.00037 | 0.0 | 0.01
|
||||
Other | | 0.0005595 | | | 0.02
|
||||
|
||||
Nlocal: 64.0000 ave 71 max 57 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
Nghost: 1373.00 ave 1380 max 1366 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
Neighs: 0.00000 ave 0 max 0 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 10779.5 ave 11978 max 9604 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
|
||||
Total # of neighbors = 43118
|
||||
Ave neighs/atom = 168.42969
|
||||
Neighbor list builds = 1
|
||||
Dangerous builds = 0
|
||||
|
||||
Total wall time: 0:00:03
|
||||
2
lib/pace/.gitignore
vendored
Normal file
2
lib/pace/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/src
|
||||
/libpace.a
|
||||
105
lib/pace/Install.py
Normal file
105
lib/pace/Install.py
Normal file
@ -0,0 +1,105 @@
|
||||
# TODO#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
Install.py tool to download, compile, and setup the pace library
|
||||
used to automate the steps described in the README file in this dir
|
||||
"""
|
||||
|
||||
from __future__ import print_function
|
||||
import sys, os, subprocess, shutil
|
||||
from argparse import ArgumentParser
|
||||
|
||||
sys.path.append('..')
|
||||
from install_helpers import fullpath, geturl, checkmd5sum
|
||||
|
||||
# settings
|
||||
|
||||
thisdir = fullpath('.')
|
||||
version = 'v.2021.4.9'
|
||||
|
||||
# known checksums for different PACE versions. used to validate the download.
|
||||
checksums = { \
|
||||
'v.2021.2.3.upd2' : '8fd1162724d349b930e474927197f20d',
|
||||
'v.2021.4.9' : '4db54962fbd6adcf8c18d46e1798ceb5',
|
||||
}
|
||||
|
||||
|
||||
parser = ArgumentParser(prog='Install.py',
|
||||
description="LAMMPS library build wrapper script")
|
||||
|
||||
|
||||
# help message
|
||||
|
||||
HELP = """
|
||||
Syntax from src dir: make lib-pace args="-b"
|
||||
or: make lib-pace args="-b -v version"
|
||||
Syntax from lib dir: python Install.py -b
|
||||
or: python Install.py -b -v version
|
||||
|
||||
Examples:
|
||||
|
||||
make lib-pace args="-b" # install default version of PACE lib
|
||||
make lib-pace args="-b -v version" # install specified version of PACE lib
|
||||
|
||||
|
||||
"""
|
||||
|
||||
pgroup = parser.add_mutually_exclusive_group()
|
||||
pgroup.add_argument("-b", "--build", action="store_true",
|
||||
help="download and build base PACE library")
|
||||
parser.add_argument("-v", "--version", default=version, choices=checksums.keys(),
|
||||
help="set version of PACE library to download and build (default: %s)" % version)
|
||||
parser.add_argument("-vv", "--verbose", action="store_true",
|
||||
help="be more verbose about is happening while this script runs")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# print help message and exit, if neither build nor path options are given
|
||||
if not args.build:
|
||||
parser.print_help()
|
||||
sys.exit(HELP)
|
||||
|
||||
buildflag = args.build
|
||||
|
||||
verboseflag = args.verbose
|
||||
version = args.version
|
||||
|
||||
|
||||
archive_extension = "tar.gz"
|
||||
url = "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/%s.%s" % (version, archive_extension)
|
||||
unarchived_folder_name = "lammps-user-pace-%s"%(version)
|
||||
|
||||
# download PACE tarball, unpack, build PACE
|
||||
if buildflag:
|
||||
|
||||
# download entire tarball
|
||||
|
||||
print("Downloading pace tarball ...")
|
||||
archive_filename = "%s.%s" % (version, archive_extension)
|
||||
download_filename = "%s/%s" % (thisdir, archive_filename)
|
||||
print("Downloading from ",url," to ",download_filename, end=" ")
|
||||
geturl(url, download_filename)
|
||||
print(" done")
|
||||
|
||||
# verify downloaded archive integrity via md5 checksum, if known.
|
||||
if version in checksums:
|
||||
if not checkmd5sum(checksums[version], archive_filename):
|
||||
sys.exit("Checksum for pace library does not match")
|
||||
|
||||
print("Unpacking pace tarball ...")
|
||||
src_folder = thisdir+"/src"
|
||||
cmd = 'cd "%s"; rm -rf "%s"; tar -xvf %s; mv %s %s' % (thisdir, src_folder, archive_filename, unarchived_folder_name, src_folder)
|
||||
subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
|
||||
|
||||
# build
|
||||
print("Building libpace ...")
|
||||
cmd = 'make lib -j2'
|
||||
txt = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
|
||||
if verboseflag:
|
||||
print(txt.decode("UTF-8"))
|
||||
|
||||
# remove source files
|
||||
|
||||
print("Removing pace build files and archive ...")
|
||||
cmd = 'rm %s; make clean-build' % (download_filename)
|
||||
subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
|
||||
37
lib/pace/Makefile
Normal file
37
lib/pace/Makefile
Normal file
@ -0,0 +1,37 @@
|
||||
SHELL = /bin/sh
|
||||
|
||||
# ------ FILES ------
|
||||
|
||||
SRC_FILES = $(wildcard src/USER-PACE/*.cpp)
|
||||
SRC = $(filter-out src/USER-PACE/pair_pace.cpp, $(SRC_FILES))
|
||||
|
||||
# ------ DEFINITIONS ------
|
||||
|
||||
LIB = libpace.a
|
||||
OBJ = $(SRC:.cpp=.o)
|
||||
|
||||
|
||||
# ------ SETTINGS ------
|
||||
CXXFLAGS = -O3 -fPIC -Isrc/USER-PACE
|
||||
|
||||
ARCHIVE = ar
|
||||
ARCHFLAG = -rc
|
||||
USRLIB =
|
||||
SYSLIB =
|
||||
|
||||
# ------ MAKE PROCEDURE ------
|
||||
|
||||
lib: $(OBJ)
|
||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
||||
|
||||
# ------ COMPILE RULES ------
|
||||
|
||||
%.o: %.cpp
|
||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
||||
|
||||
# ------ CLEAN ------
|
||||
clean-all:
|
||||
-rm -f *~ $(OBJ) $(LIB)
|
||||
|
||||
clean-build:
|
||||
-rm -f *~ $(OBJ)
|
||||
3
lib/pace/Makefile.lammps
Normal file
3
lib/pace/Makefile.lammps
Normal file
@ -0,0 +1,3 @@
|
||||
pace_SYSINC =-I../../lib/pace/src/USER-PACE
|
||||
pace_SYSLIB = -L../../lib/pace/ -lpace
|
||||
pace_SYSPATH =
|
||||
18
lib/pace/README
Normal file
18
lib/pace/README
Normal file
@ -0,0 +1,18 @@
|
||||
This directory contains files required to use the USER-PACE package,
|
||||
which provides the pace pair style, an efficient implementation of
|
||||
the Atomic Cluster Expansion potential (ACE).
|
||||
ACE is a methodology for deriving a highly accurate classical potential
|
||||
fit to a large archive of quantum mechanical (DFT) data.
|
||||
This package was written by Yury Lysogorskiy and others
|
||||
at ICAMS, the Interdisciplinary Centre for Advanced Materials Simulation,
|
||||
Ruhr University Bochum, Germany, http://www.icams.de
|
||||
|
||||
You can type "make lib-pace" from the src directory to see help on
|
||||
how to download and build this library via make commands, or you can
|
||||
do the same thing by typing "python Install.py" from within this
|
||||
directory.
|
||||
|
||||
More information about the USER-PACE implementation of ACE
|
||||
is available here:
|
||||
|
||||
https://github.com/ICAMS/lammps-user-pace
|
||||
8982
potentials/Cu-PBE-core-rep.ace
Normal file
8982
potentials/Cu-PBE-core-rep.ace
Normal file
File diff suppressed because it is too large
Load Diff
3
src/.gitignore
vendored
3
src/.gitignore
vendored
@ -32,6 +32,9 @@
|
||||
/pair_kim.cpp
|
||||
/pair_kim.h
|
||||
|
||||
/pair_pace.cpp
|
||||
/pair_pace.h
|
||||
|
||||
/superpose3d.h
|
||||
|
||||
/kokkos.cpp
|
||||
|
||||
@ -55,7 +55,7 @@ PACKUSER = user-adios user-atc user-awpmd user-bocs user-cgdna user-cgsdk user-c
|
||||
user-diffraction user-dpd user-drude user-eff user-fep user-h5md \
|
||||
user-intel user-lb user-manifold user-meamc user-mesodpd user-mesont \
|
||||
user-mgpt user-misc user-mofff user-molfile \
|
||||
user-netcdf user-omp user-phonon user-plumed user-ptm user-qmmm \
|
||||
user-netcdf user-omp user-phonon user-pace user-plumed user-ptm user-qmmm \
|
||||
user-qtb user-quip user-reaction user-reaxc user-scafacos user-smd user-smtbq \
|
||||
user-sdpd user-sph user-tally user-uef user-vtk user-yaff
|
||||
|
||||
@ -63,15 +63,15 @@ PACKLIB = compress gpu kim kokkos latte message mpiio mscg poems \
|
||||
python voronoi \
|
||||
user-adios user-atc user-awpmd user-colvars user-h5md user-lb user-molfile \
|
||||
user-netcdf user-plumed user-qmmm user-quip user-scafacos \
|
||||
user-smd user-vtk user-mesont
|
||||
user-smd user-vtk user-mesont user-pace
|
||||
|
||||
PACKSYS = compress mpiio python user-lb
|
||||
|
||||
PACKINT = gpu kokkos message poems user-atc user-awpmd user-colvars user-mesont
|
||||
|
||||
PACKEXT = kim latte mscg voronoi \
|
||||
user-adios user-h5md user-molfile user-netcdf user-plumed user-qmmm user-quip \
|
||||
user-smd user-vtk
|
||||
user-adios user-h5md user-molfile user-netcdf user-pace user-plumed \
|
||||
user-qmmm user-quip user-smd user-vtk
|
||||
|
||||
PACKALL = $(PACKAGE) $(PACKUSER)
|
||||
|
||||
|
||||
64
src/USER-PACE/Install.sh
Normal file
64
src/USER-PACE/Install.sh
Normal file
@ -0,0 +1,64 @@
|
||||
# Install/unInstall package files in LAMMPS
|
||||
# mode = 0/1/2 for uninstall/install/update
|
||||
|
||||
mode=$1
|
||||
|
||||
# enforce using portable C locale
|
||||
LC_ALL=C
|
||||
export LC_ALL
|
||||
|
||||
# arg1 = file, arg2 = file it depends on
|
||||
|
||||
action () {
|
||||
if (test $mode = 0) then
|
||||
rm -f ../$1
|
||||
elif (! cmp -s $1 ../$1) then
|
||||
if (test -z "$2" || test -e ../$2) then
|
||||
cp $1 ..
|
||||
if (test $mode = 2) then
|
||||
echo " updating src/$1"
|
||||
fi
|
||||
fi
|
||||
elif (test -n "$2") then
|
||||
if (test ! -e ../$2) then
|
||||
rm -f ../$1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# all package files with no dependencies
|
||||
|
||||
for file in *.cpp *.h; do
|
||||
test -f ${file} && action $file
|
||||
done
|
||||
|
||||
# edit 2 Makefile.package files to include/exclude package info
|
||||
|
||||
if (test $1 = 1) then
|
||||
|
||||
if (test -e ../Makefile.package) then
|
||||
sed -i -e 's/[^ \t]*pace[^ \t]* //' ../Makefile.package
|
||||
sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(pace_SYSINC) |' ../Makefile.package
|
||||
sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(pace_SYSLIB) |' ../Makefile.package
|
||||
sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(pace_SYSPATH) |' ../Makefile.package
|
||||
fi
|
||||
|
||||
if (test -e ../Makefile.package.settings) then
|
||||
sed -i -e '/^include.*pace.*$/d' ../Makefile.package.settings
|
||||
# multiline form needed for BSD sed on Macs
|
||||
sed -i -e '4 i \
|
||||
include ..\/..\/lib\/pace\/Makefile.lammps
|
||||
' ../Makefile.package.settings
|
||||
fi
|
||||
|
||||
elif (test $1 = 0) then
|
||||
|
||||
if (test -e ../Makefile.package) then
|
||||
sed -i -e 's/[^ \t]*pace[^ \t]* //' ../Makefile.package
|
||||
fi
|
||||
|
||||
if (test -e ../Makefile.package.settings) then
|
||||
sed -i -e '/^include.*pace.*$/d' ../Makefile.package.settings
|
||||
fi
|
||||
|
||||
fi
|
||||
23
src/USER-PACE/README
Normal file
23
src/USER-PACE/README
Normal file
@ -0,0 +1,23 @@
|
||||
The USER-PACE package provides the pace pair style,
|
||||
an efficient implementation of the Atomic Cluster Expansion
|
||||
potential (ACE).
|
||||
|
||||
ACE is a methodology for deriving a highly accurate classical
|
||||
potential fit to a large archive of quantum mechanical (DFT) data.
|
||||
This package was written by Yury Lysogorskiy and others
|
||||
at ICAMS, the Interdisciplinary Centre for Advanced Materials Simulation,
|
||||
Ruhr University Bochum, Germany (http://www.icams.de).
|
||||
|
||||
This package requires a library that can be downloaded and built
|
||||
in lib/pace or somewhere else, which must be done before building
|
||||
LAMMPS with this package. Details of the download, build, and
|
||||
install process for this package using traditional make (not CMake)
|
||||
are given in the lib/pace/README file, and scripts are
|
||||
provided to help automate the process. Also see the LAMMPS manual for
|
||||
general information on building LAMMPS with external libraries
|
||||
using either traditional make or CMake.
|
||||
|
||||
More information about the USER-PACE implementation of ACE
|
||||
is available here:
|
||||
|
||||
https://github.com/ICAMS/lammps-user-pace
|
||||
392
src/USER-PACE/pair_pace.cpp
Normal file
392
src/USER-PACE/pair_pace.cpp
Normal file
@ -0,0 +1,392 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://lammps.sandia.gov/, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
Copyright 2021 Yury Lysogorskiy^1, Cas van der Oord^2, Anton Bochkarev^1,
|
||||
Sarath Menon^1, Matteo Rinaldi^1, Thomas Hammerschmidt^1, Matous Mrovec^1,
|
||||
Aidan Thompson^3, Gabor Csanyi^2, Christoph Ortner^4, Ralf Drautz^1
|
||||
|
||||
^1: Ruhr-University Bochum, Bochum, Germany
|
||||
^2: University of Cambridge, Cambridge, United Kingdom
|
||||
^3: Sandia National Laboratories, Albuquerque, New Mexico, USA
|
||||
^4: University of British Columbia, Vancouver, BC, Canada
|
||||
*/
|
||||
|
||||
|
||||
//
|
||||
// Created by Lysogorskiy Yury on 27.02.20.
|
||||
//
|
||||
|
||||
#include "pair_pace.h"
|
||||
|
||||
#include "atom.h"
|
||||
#include "comm.h"
|
||||
#include "error.h"
|
||||
#include "force.h"
|
||||
#include "math_const.h"
|
||||
#include "memory.h"
|
||||
#include "neigh_list.h"
|
||||
#include "neigh_request.h"
|
||||
#include "neighbor.h"
|
||||
#include "update.h"
|
||||
|
||||
#include <cmath>
|
||||
#include <cstring>
|
||||
|
||||
#include "ace_evaluator.h"
|
||||
#include "ace_recursive.h"
|
||||
#include "ace_c_basis.h"
|
||||
#include "ace_version.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
struct ACEImpl {
|
||||
ACECTildeBasisSet *basis_set;
|
||||
ACERecursiveEvaluator *ace;
|
||||
};
|
||||
}
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace MathConst;
|
||||
|
||||
#define MAXLINE 1024
|
||||
#define DELTA 4
|
||||
|
||||
//added YL
|
||||
|
||||
//keywords for ACE evaluator style
|
||||
#define RECURSIVE_KEYWORD "recursive"
|
||||
#define PRODUCT_KEYWORD "product"
|
||||
|
||||
static int elements_num_pace = 104;
|
||||
static char const *const elements_pace[104] = {"X", "H", "He", "Li", "Be", "B", "C", "N", "O", "F", "Ne", "Na",
|
||||
"Mg", "Al", "Si", "P", "S", "Cl", "Ar", "K", "Ca", "Sc", "Ti", "V", "Cr", "Mn",
|
||||
"Fe", "Co", "Ni", "Cu", "Zn", "Ga", "Ge", "As", "Se", "Br", "Kr", "Rb", "Sr",
|
||||
"Y", "Zr", "Nb", "Mo", "Tc", "Ru", "Rh", "Pd", "Ag", "Cd", "In", "Sn", "Sb",
|
||||
"Te", "I", "Xe", "Cs", "Ba", "La", "Ce", "Pr", "Nd", "Pm", "Sm", "Eu", "Gd",
|
||||
"Tb", "Dy", "Ho", "Er", "Tm", "Yb", "Lu", "Hf", "Ta", "W", "Re", "Os", "Ir",
|
||||
"Pt", "Au", "Hg", "Tl", "Pb", "Bi", "Po", "At", "Rn", "Fr", "Ra", "Ac", "Th",
|
||||
"Pa", "U", "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm", "Md", "No", "Lr"
|
||||
};
|
||||
|
||||
static int AtomicNumberByName_pace(char *elname) {
|
||||
for (int i = 1; i < elements_num_pace; i++)
|
||||
if (strcmp(elname, elements_pace[i]) == 0)
|
||||
return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
PairPACE::PairPACE(LAMMPS *lmp) : Pair(lmp) {
|
||||
single_enable = 0;
|
||||
restartinfo = 0;
|
||||
one_coeff = 1;
|
||||
manybody_flag = 1;
|
||||
|
||||
aceimpl = new ACEImpl;
|
||||
aceimpl->ace = nullptr;
|
||||
aceimpl->basis_set = nullptr;
|
||||
recursive = false;
|
||||
|
||||
scale = nullptr;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
check if allocated, since class can be destructed when incomplete
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
PairPACE::~PairPACE() {
|
||||
if (copymode) return;
|
||||
|
||||
delete aceimpl->basis_set;
|
||||
delete aceimpl->ace;
|
||||
delete aceimpl;
|
||||
|
||||
if (allocated) {
|
||||
memory->destroy(setflag);
|
||||
memory->destroy(cutsq);
|
||||
memory->destroy(scale);
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void PairPACE::compute(int eflag, int vflag) {
|
||||
int i, j, ii, jj, inum, jnum;
|
||||
double delx, dely, delz, evdwl;
|
||||
double fij[3];
|
||||
int *ilist, *jlist, *numneigh, **firstneigh;
|
||||
|
||||
ev_init(eflag, vflag);
|
||||
|
||||
// downwards modified by YL
|
||||
|
||||
double **x = atom->x;
|
||||
double **f = atom->f;
|
||||
tagint *tag = atom->tag;
|
||||
int *type = atom->type;
|
||||
|
||||
// number of atoms in cell
|
||||
int nlocal = atom->nlocal;
|
||||
|
||||
int newton_pair = force->newton_pair;
|
||||
|
||||
// number of atoms including ghost atoms
|
||||
int nall = nlocal + atom->nghost;
|
||||
|
||||
// inum: length of the neighborlists list
|
||||
inum = list->inum;
|
||||
|
||||
// ilist: list of "i" atoms for which neighbor lists exist
|
||||
ilist = list->ilist;
|
||||
|
||||
//numneigh: the length of each these neigbor list
|
||||
numneigh = list->numneigh;
|
||||
|
||||
// the pointer to the list of neighbors of "i"
|
||||
firstneigh = list->firstneigh;
|
||||
|
||||
if (inum != nlocal)
|
||||
error->all(FLERR,fmt::format("inum: {} nlocal: {} are different",inum, nlocal));
|
||||
|
||||
// Aidan Thompson told RD (26 July 2019) that practically always holds:
|
||||
// inum = nlocal
|
||||
// i = ilist(ii) < inum
|
||||
// j = jlist(jj) < nall
|
||||
// neighborlist contains neighbor atoms plus skin atoms,
|
||||
// skin atoms can be removed by setting skin to zero but here
|
||||
// they are disregarded anyway
|
||||
|
||||
|
||||
//determine the maximum number of neighbours
|
||||
int max_jnum = -1;
|
||||
int nei = 0;
|
||||
for (ii = 0; ii < list->inum; ii++) {
|
||||
i = ilist[ii];
|
||||
jnum = numneigh[i];
|
||||
nei = nei + jnum;
|
||||
if (jnum > max_jnum)
|
||||
max_jnum = jnum;
|
||||
}
|
||||
|
||||
aceimpl->ace->resize_neighbours_cache(max_jnum);
|
||||
|
||||
//loop over atoms
|
||||
for (ii = 0; ii < list->inum; ii++) {
|
||||
i = list->ilist[ii];
|
||||
const int itype = type[i];
|
||||
|
||||
const double xtmp = x[i][0];
|
||||
const double ytmp = x[i][1];
|
||||
const double ztmp = x[i][2];
|
||||
|
||||
jlist = firstneigh[i];
|
||||
jnum = numneigh[i];
|
||||
|
||||
// checking if neighbours are actually within cutoff range is done inside compute_atom
|
||||
// mapping from LAMMPS atom types ('type' array) to ACE species is done inside compute_atom
|
||||
// by using 'aceimpl->ace->element_type_mapping' array
|
||||
// x: [r0 ,r1, r2, ..., r100]
|
||||
// i = 0 ,1
|
||||
// jnum(0) = 50
|
||||
// jlist(neigh ind of 0-atom) = [1,2,10,7,99,25, .. 50 element in total]
|
||||
|
||||
try {
|
||||
aceimpl->ace->compute_atom(i, x, type, jnum, jlist);
|
||||
} catch (exception &e) {
|
||||
error->one(FLERR, e.what());
|
||||
}
|
||||
// 'compute_atom' will update the `aceimpl->ace->e_atom` and `aceimpl->ace->neighbours_forces(jj, alpha)` arrays
|
||||
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
j = jlist[jj];
|
||||
const int jtype = type[j];
|
||||
j &= NEIGHMASK;
|
||||
delx = x[j][0] - xtmp;
|
||||
dely = x[j][1] - ytmp;
|
||||
delz = x[j][2] - ztmp;
|
||||
|
||||
fij[0] = scale[itype][jtype]*aceimpl->ace->neighbours_forces(jj, 0);
|
||||
fij[1] = scale[itype][jtype]*aceimpl->ace->neighbours_forces(jj, 1);
|
||||
fij[2] = scale[itype][jtype]*aceimpl->ace->neighbours_forces(jj, 2);
|
||||
|
||||
f[i][0] += fij[0];
|
||||
f[i][1] += fij[1];
|
||||
f[i][2] += fij[2];
|
||||
f[j][0] -= fij[0];
|
||||
f[j][1] -= fij[1];
|
||||
f[j][2] -= fij[2];
|
||||
|
||||
// tally per-atom virial contribution
|
||||
if (vflag)
|
||||
ev_tally_xyz(i, j, nlocal, newton_pair, 0.0, 0.0,
|
||||
fij[0], fij[1], fij[2],
|
||||
-delx, -dely, -delz);
|
||||
}
|
||||
|
||||
// tally energy contribution
|
||||
if (eflag) {
|
||||
// evdwl = energy of atom I
|
||||
evdwl = scale[1][1]*aceimpl->ace->e_atom;
|
||||
ev_tally_full(i, 2.0 * evdwl, 0.0, 0.0, 0.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
if (vflag_fdotr) virial_fdotr_compute();
|
||||
|
||||
// end modifications YL
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void PairPACE::allocate() {
|
||||
allocated = 1;
|
||||
int n = atom->ntypes;
|
||||
|
||||
memory->create(setflag, n + 1, n + 1, "pair:setflag");
|
||||
memory->create(cutsq, n + 1, n + 1, "pair:cutsq");
|
||||
memory->create(scale, n + 1, n + 1,"pair:scale");
|
||||
map = new int[n+1];
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
global settings
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void PairPACE::settings(int narg, char **arg) {
|
||||
if (narg > 1)
|
||||
error->all(FLERR,"Illegal pair_style command.");
|
||||
|
||||
// ACE potentials are parameterized in metal units
|
||||
if (strcmp("metal",update->unit_style) != 0)
|
||||
error->all(FLERR,"ACE potentials require 'metal' units");
|
||||
|
||||
recursive = true; // default evaluator style: RECURSIVE
|
||||
if (narg > 0) {
|
||||
if (strcmp(arg[0], RECURSIVE_KEYWORD) == 0)
|
||||
recursive = true;
|
||||
else if (strcmp(arg[0], PRODUCT_KEYWORD) == 0) {
|
||||
recursive = false;
|
||||
} else error->all(FLERR,"Illegal pair_style command");
|
||||
}
|
||||
|
||||
if (comm->me == 0) {
|
||||
utils::logmesg(lmp,fmt::format("ACE version: {}.{}.{}\n",
|
||||
VERSION_YEAR, VERSION_MONTH, VERSION_DAY));
|
||||
if (recursive) utils::logmesg(lmp,"Recursive evaluator is used\n");
|
||||
else utils::logmesg(lmp,"Product evaluator is used\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
set coeffs for one or more type pairs
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void PairPACE::coeff(int narg, char **arg) {
|
||||
|
||||
if (!allocated) allocate();
|
||||
|
||||
map_element2type(narg-3,arg+3);
|
||||
|
||||
auto potential_file_name = utils::get_potential_file_path(arg[2]);
|
||||
char **elemtypes = &arg[3];
|
||||
|
||||
//load potential file
|
||||
aceimpl->basis_set = new ACECTildeBasisSet();
|
||||
if (comm->me == 0)
|
||||
utils::logmesg(lmp,fmt::format("Loading {}\n", potential_file_name));
|
||||
aceimpl->basis_set->load(potential_file_name);
|
||||
|
||||
if (comm->me == 0) {
|
||||
utils::logmesg(lmp,"Total number of basis functions\n");
|
||||
|
||||
for (SPECIES_TYPE mu = 0; mu < aceimpl->basis_set->nelements; mu++) {
|
||||
int n_r1 = aceimpl->basis_set->total_basis_size_rank1[mu];
|
||||
int n = aceimpl->basis_set->total_basis_size[mu];
|
||||
utils::logmesg(lmp,fmt::format("\t{}: {} (r=1) {} (r>1)\n", aceimpl->basis_set->elements_name[mu], n_r1, n));
|
||||
}
|
||||
}
|
||||
|
||||
// read args that map atom types to pACE elements
|
||||
// map[i] = which element the Ith atom type is, -1 if not mapped
|
||||
// map[0] is not used
|
||||
|
||||
aceimpl->ace = new ACERecursiveEvaluator();
|
||||
aceimpl->ace->set_recursive(recursive);
|
||||
aceimpl->ace->element_type_mapping.init(atom->ntypes + 1);
|
||||
|
||||
const int n = atom->ntypes;
|
||||
for (int i = 1; i <= n; i++) {
|
||||
char *elemname = elemtypes[i - 1];
|
||||
int atomic_number = AtomicNumberByName_pace(elemname);
|
||||
if (atomic_number == -1)
|
||||
error->all(FLERR,fmt::format("'{}' is not a valid element\n", elemname));
|
||||
|
||||
SPECIES_TYPE mu = aceimpl->basis_set->get_species_index_by_name(elemname);
|
||||
if (mu != -1) {
|
||||
if (comm->me == 0)
|
||||
utils::logmesg(lmp,fmt::format("Mapping LAMMPS atom type #{}({}) -> "
|
||||
"ACE species type #{}\n", i, elemname, mu));
|
||||
map[i] = mu;
|
||||
aceimpl->ace->element_type_mapping(i) = mu; // set up LAMMPS atom type to ACE species mapping for ace evaluator
|
||||
} else {
|
||||
error->all(FLERR, fmt::format("Element {} is not supported by ACE-potential from file {}", elemname,potential_file_name));
|
||||
}
|
||||
}
|
||||
|
||||
// initialize scale factor
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int j = i; j <= n; j++) {
|
||||
scale[i][j] = 1.0;
|
||||
}
|
||||
}
|
||||
|
||||
aceimpl->ace->set_basis(*aceimpl->basis_set, 1);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
init specific to this pair style
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void PairPACE::init_style() {
|
||||
if (atom->tag_enable == 0)
|
||||
error->all(FLERR, "Pair style pACE requires atom IDs");
|
||||
if (force->newton_pair == 0)
|
||||
error->all(FLERR, "Pair style pACE requires newton pair on");
|
||||
|
||||
// request a full neighbor list
|
||||
int irequest = neighbor->request(this, instance_me);
|
||||
neighbor->requests[irequest]->half = 0;
|
||||
neighbor->requests[irequest]->full = 1;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
init for one type pair i,j and corresponding j,i
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
double PairPACE::init_one(int i, int j) {
|
||||
if (setflag[i][j] == 0) error->all(FLERR, "All pair coeffs are not set");
|
||||
//cutoff from the basis set's radial functions settings
|
||||
scale[j][i] = scale[i][j];
|
||||
return aceimpl->basis_set->radial_functions->cut(map[i], map[j]);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
extract method for extracting value of scale variable
|
||||
---------------------------------------------------------------------- */
|
||||
void *PairPACE::extract(const char *str, int &dim)
|
||||
{
|
||||
dim = 2;
|
||||
if (strcmp(str,"scale") == 0) return (void *) scale;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
65
src/USER-PACE/pair_pace.h
Normal file
65
src/USER-PACE/pair_pace.h
Normal file
@ -0,0 +1,65 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
This software is distributed under the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
Copyright 2021 Yury Lysogorskiy^1, Cas van der Oord^2, Anton Bochkarev^1,
|
||||
Sarath Menon^1, Matteo Rinaldi^1, Thomas Hammerschmidt^1, Matous Mrovec^1,
|
||||
Aidan Thompson^3, Gabor Csanyi^2, Christoph Ortner^4, Ralf Drautz^1
|
||||
|
||||
^1: Ruhr-University Bochum, Bochum, Germany
|
||||
^2: University of Cambridge, Cambridge, United Kingdom
|
||||
^3: Sandia National Laboratories, Albuquerque, New Mexico, USA
|
||||
^4: University of British Columbia, Vancouver, BC, Canada
|
||||
*/
|
||||
|
||||
|
||||
//
|
||||
// Created by Lysogorskiy Yury on 27.02.20.
|
||||
//
|
||||
|
||||
|
||||
#ifdef PAIR_CLASS
|
||||
|
||||
PairStyle(pace,PairPACE)
|
||||
|
||||
#else
|
||||
|
||||
#ifndef LMP_PAIR_PACE_H
|
||||
#define LMP_PAIR_PACE_H
|
||||
|
||||
#include "pair.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
class PairPACE : public Pair {
|
||||
public:
|
||||
PairPACE(class LAMMPS *);
|
||||
virtual ~PairPACE();
|
||||
|
||||
virtual void compute(int, int);
|
||||
void settings(int, char **);
|
||||
void coeff(int, char **);
|
||||
virtual void init_style();
|
||||
double init_one(int, int);
|
||||
|
||||
void *extract(const char *, int &);
|
||||
|
||||
protected:
|
||||
struct ACEImpl *aceimpl;
|
||||
|
||||
virtual void allocate();
|
||||
|
||||
double **scale;
|
||||
bool recursive; // "recursive" option for ACERecursiveEvaluator
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
156
unittest/force-styles/tests/manybody-pair-pace_product.yaml
Normal file
156
unittest/force-styles/tests/manybody-pair-pace_product.yaml
Normal file
@ -0,0 +1,156 @@
|
||||
---
|
||||
lammps_version: 10 Mar 2021
|
||||
date_generated: Wed Apr 7 19:29:52 2021
|
||||
epsilon: 5e-13
|
||||
skip_tests:
|
||||
prerequisites: ! |
|
||||
pair pace
|
||||
pre_commands: ! |
|
||||
variable newton_pair delete
|
||||
variable newton_pair index on
|
||||
post_commands: ! ""
|
||||
input_file: in.manybody
|
||||
pair_style: pace product
|
||||
pair_coeff: ! |
|
||||
* * Cu-PBE-core-rep.ace Cu Cu Cu Cu Cu Cu Cu Cu
|
||||
extract: ! ""
|
||||
natoms: 64
|
||||
init_vdwl: -161.633164433256
|
||||
init_coul: 0
|
||||
init_stress: ! |2-
|
||||
4.9972088100615499e+00 6.2044830913935627e+00 9.1051638867046787e+00 -3.5472278350778463e+00 1.6694265484458743e+01 1.2476127820340779e+00
|
||||
init_forces: ! |2
|
||||
1 -6.2219087614981250e-01 1.4663175178944543e+00 1.0137638901413766e+00
|
||||
2 -1.1376106569501299e+00 -4.6174763313965872e-01 -9.1065044746775559e-01
|
||||
3 2.1030321840370370e-01 -1.8491702608421043e-01 2.5692785978237719e-02
|
||||
4 -8.7721996834879601e-01 1.5265564953914739e+00 6.4946175447488763e-01
|
||||
5 -4.2522149043165169e-01 -3.7218018176382173e-01 -9.1663252333251566e-02
|
||||
6 3.7791326544489656e-01 1.2266089287989812e+00 2.9557107319921827e-01
|
||||
7 -5.3020873901893739e-01 -5.3124732660122731e-01 7.0401499321631211e-01
|
||||
8 -4.7453371627778157e-02 2.6914766341308627e-01 -3.4048361271920741e-01
|
||||
9 -1.5727338601129420e-01 -8.3756943998984656e-01 -1.0686980500960253e+00
|
||||
10 4.1485698120166843e-03 -4.7811767918434078e-01 -1.0586891580297206e+00
|
||||
11 1.5438259205363782e+00 -1.5050047785033229e+00 9.6197857985461699e-01
|
||||
12 -2.5123830465559287e+00 -1.7362105833106261e+00 -1.6289247068121975e+00
|
||||
13 -5.9061498165333037e-01 2.3625898287840648e+00 -3.1399719632578482e-01
|
||||
14 -5.5397546653775487e-01 1.8689085709447488e+00 -2.3086691928371150e-02
|
||||
15 -1.6265821570337315e+00 1.7928198829778783e+00 -1.7156140339072117e+00
|
||||
16 8.1679939937581825e-01 3.9772968007052850e-01 3.1004730854830331e+00
|
||||
17 1.0595934046175022e+00 1.1460004586855164e+00 -1.8847997843937443e+00
|
||||
18 2.0249462959828027e-01 2.6186197454749149e-01 1.4401663320550588e+00
|
||||
19 -5.4631311118700510e-01 -7.9893542481115554e-01 -3.9498484189193867e-01
|
||||
20 -2.7894722368446363e+00 3.3102350276296261e-01 1.9153108358696447e-01
|
||||
21 7.2621138168723165e-01 -6.2245359068793776e-02 -1.1867468416622704e+00
|
||||
22 -2.8699857742027954e+00 2.0263873921216695e+00 -2.5768047926156896e+00
|
||||
23 6.7173035813894433e-01 1.1304059874438197e+00 9.5707129936936708e-01
|
||||
24 8.1087520346689013e-01 9.3244931025572342e-01 1.2800553902585901e+00
|
||||
25 2.8247847798959724e-01 -1.2561285000275449e-01 5.0249723343582131e-01
|
||||
26 -1.2883224887965014e-01 -1.4823080811794720e-01 2.1451743731744269e-01
|
||||
27 8.7218773747963574e-01 -4.8694991909043589e-01 8.0838245267066877e-01
|
||||
28 -8.4108903261132240e-03 4.7660038551589268e-01 2.2692513770082767e+00
|
||||
29 -1.2657298236003225e+00 5.0651440211205545e-01 -4.8138238615461226e-01
|
||||
30 -4.9017825771987117e-01 4.3447662476279558e-01 -3.4664013847475933e-01
|
||||
31 -5.2051576149994172e-01 3.8596959394993430e-01 -3.4070818553119930e-01
|
||||
32 -1.3692783712259324e+00 1.9224558097577280e-01 -2.3226212734495302e-01
|
||||
33 2.0607521792189685e+00 -1.2673195197857356e+00 1.6670068237762361e+00
|
||||
34 -4.3444509217934746e-02 -3.3223620460414396e-02 1.7607017023404770e-01
|
||||
35 5.0753059936755485e-01 -3.2385224472005308e-01 1.0142288303361275e+00
|
||||
36 1.3677004996446801e-01 -9.3517724534410873e-01 2.4335569461986416e-02
|
||||
37 -7.4579131173355373e-01 8.8843839477814257e-01 -9.4789414920423842e-01
|
||||
38 3.9719539842505980e-02 -1.5258728344629927e-01 8.3622980382132700e-03
|
||||
39 8.1730755341737116e-01 -9.8384548843887609e-01 -1.6996132976225720e+00
|
||||
40 1.7801146130924872e+00 -1.1427274274008914e+00 -6.5983603408485103e-01
|
||||
41 5.2820539468557050e-03 -2.3421071155474642e-02 -2.2563348155755425e-01
|
||||
42 -1.5456364604619246e+00 -8.8225129116518508e-01 -5.8763735424108920e-01
|
||||
43 1.1131408674714505e-01 -2.2247577888201988e+00 9.9728168268816919e-02
|
||||
44 1.3854946872101335e+00 -1.5126948458101386e+00 9.7414222691400487e-01
|
||||
45 -4.5981549862059468e-01 8.1397756884858363e-01 -1.3541793681441523e+00
|
||||
46 -6.2619038173039365e-01 -8.2735236769680287e-01 2.2798662790638051e+00
|
||||
47 1.0779718530622200e+00 5.2605298038101200e-01 6.1701114081825081e-01
|
||||
48 3.8637284054399190e-01 3.0866805709781331e-01 -1.6028037248104018e-01
|
||||
49 -8.8513638517173976e-01 -2.2564795567224198e+00 -1.4543286189784184e+00
|
||||
50 4.0710335798111497e-01 1.0605235322146205e+00 -3.9752095773786261e-01
|
||||
51 -9.1955086227825678e-01 1.6763661105933092e+00 1.6016036592489016e+00
|
||||
52 2.4999859814585754e+00 -2.4516798161916005e+00 2.9455125031924960e+00
|
||||
53 1.3494715555333863e+00 1.5041935505267137e+00 1.1203406583029385e+00
|
||||
54 1.0781523968729976e+00 -1.1923649286227966e+00 -9.5279276661349610e-01
|
||||
55 8.9808463906224834e-01 -1.4591385038403597e+00 -1.5496340042814589e+00
|
||||
56 -1.6781965313765140e-01 2.7770530096449575e-01 -9.0012005317367583e-01
|
||||
57 8.4669616061380487e-02 -3.6858526486025139e-01 -5.9756791316798570e-02
|
||||
58 8.5722805697043558e-01 -4.6399147930805790e-01 3.6325830284450400e-01
|
||||
59 1.6110642872174779e+00 9.9355375331449325e-01 -9.4982017793350748e-01
|
||||
60 -1.3129344859566598e+00 -2.5250923468261077e+00 -1.6935614677383237e+00
|
||||
61 -4.4869257920465672e-02 6.9444242511398624e-01 -2.4196506339842316e-01
|
||||
62 -1.1637776716822190e+00 1.1834011745844724e+00 -9.3135952930487587e-01
|
||||
63 9.6457625131492997e-01 -1.4202510282595555e+00 -6.5977083749846954e-01
|
||||
64 1.3468893282796701e+00 1.5138254987169797e+00 2.7159451744492960e+00
|
||||
run_vdwl: -161.618480729195
|
||||
run_coul: 0
|
||||
run_stress: ! |2-
|
||||
4.9994648190802469e+00 6.2341889704204814e+00 9.1844870434928065e+00 -3.5139192287217877e+00 1.6660134035412678e+01 1.4298492052949148e+00
|
||||
run_forces: ! |2
|
||||
1 -6.2816679628833150e-01 1.4637637672487021e+00 1.0165317420170146e+00
|
||||
2 -1.1422624515775013e+00 -4.7321268150877716e-01 -9.1937052724928292e-01
|
||||
3 1.9863435270459309e-01 -1.8101272698051718e-01 3.8842917970335344e-02
|
||||
4 -8.6907185029044620e-01 1.5294385374560244e+00 6.4103701764704912e-01
|
||||
5 -4.3303851444525354e-01 -3.7930261859668579e-01 -8.2809410717883475e-02
|
||||
6 3.9940995017594572e-01 1.2286053601549636e+00 3.1250581709996106e-01
|
||||
7 -5.1887189298179548e-01 -5.1653500358989046e-01 6.9318256549563484e-01
|
||||
8 -5.4007672382228117e-02 2.6859183359408156e-01 -3.4042178338983115e-01
|
||||
9 -1.7074436045121943e-01 -8.5109770186947620e-01 -1.0773588492848072e+00
|
||||
10 3.0793973322678671e-04 -4.8186595253268472e-01 -1.0405155138263378e+00
|
||||
11 1.5283231048348811e+00 -1.4922676136398514e+00 9.5299400757773478e-01
|
||||
12 -2.5067070901167137e+00 -1.7260607993708745e+00 -1.6244790393474420e+00
|
||||
13 -5.6235790886570680e-01 2.3585631413137618e+00 -2.9127876443329359e-01
|
||||
14 -5.6548461211840872e-01 1.8653022429237700e+00 -3.3242294041994691e-02
|
||||
15 -1.6247793293987234e+00 1.7878424820880410e+00 -1.7100129080118776e+00
|
||||
16 8.1592475815211640e-01 3.9978815670043610e-01 3.0954281982865943e+00
|
||||
17 1.0568502301698139e+00 1.1454676964498280e+00 -1.8730495547882335e+00
|
||||
18 1.8424845063192019e-01 2.7392740222782286e-01 1.4489558473703783e+00
|
||||
19 -5.5999914801363948e-01 -8.1164618021764123e-01 -4.0693565170944346e-01
|
||||
20 -2.7796384097824927e+00 3.1873084687724579e-01 1.7813456086024190e-01
|
||||
21 7.3330693120564727e-01 -8.0395528722245327e-02 -1.2031927072203379e+00
|
||||
22 -2.8714070500131230e+00 2.0341709966821746e+00 -2.5868755001462174e+00
|
||||
23 6.7965142776034648e-01 1.1390245455901293e+00 9.6635789845676201e-01
|
||||
24 8.2281062435904495e-01 9.2819309753370116e-01 1.2754920796056943e+00
|
||||
25 2.8226519759590424e-01 -1.2226596891011678e-01 4.9537642544898125e-01
|
||||
26 -1.3183205688042435e-01 -1.4257647612047622e-01 2.1434508820007092e-01
|
||||
27 8.7792855239715339e-01 -4.9723350353286189e-01 8.1153570058578628e-01
|
||||
28 -2.0947861194287209e-02 4.8894215287088771e-01 2.2752551215641708e+00
|
||||
29 -1.2702068511884055e+00 5.1109069534141316e-01 -4.8571925387760806e-01
|
||||
30 -4.8291102543559505e-01 4.2805907218805661e-01 -3.4628363342745988e-01
|
||||
31 -5.1815876825981022e-01 3.8579011364491556e-01 -3.3978922486345037e-01
|
||||
32 -1.3608082901833720e+00 1.8827011193929857e-01 -2.3469836599399560e-01
|
||||
33 2.0529282523834711e+00 -1.2685983762091522e+00 1.6663497592278897e+00
|
||||
34 -4.5189243354727182e-02 -3.2736561856626163e-02 1.8030687445807031e-01
|
||||
35 5.0972119775588631e-01 -3.2015892710668520e-01 1.0138858093121164e+00
|
||||
36 1.2271707477597629e-01 -9.3118808111966556e-01 6.0812551409211574e-03
|
||||
37 -7.4244159178072111e-01 8.8563960698770794e-01 -9.5166206712247381e-01
|
||||
38 4.5283609418616089e-02 -1.5033288786816132e-01 1.0628470501896768e-02
|
||||
39 8.1272114808168361e-01 -9.7791747752504798e-01 -1.7007525281592790e+00
|
||||
40 1.8000478262438198e+00 -1.1538213789257317e+00 -6.7136411510679861e-01
|
||||
41 1.5499683265522783e-02 -1.3955600748288348e-02 -2.1744779416050455e-01
|
||||
42 -1.5503540998240530e+00 -8.9262908626198989e-01 -5.9864359763177577e-01
|
||||
43 1.0386261899746982e-01 -2.2234594365313654e+00 9.2443698220991327e-02
|
||||
44 1.3872759356889137e+00 -1.5127698142330404e+00 9.7258424666774057e-01
|
||||
45 -4.6739915218621014e-01 8.0388098835321042e-01 -1.3465943067485506e+00
|
||||
46 -6.2872500689429289e-01 -8.2458713276079976e-01 2.2958918389492728e+00
|
||||
47 1.0814994400034377e+00 5.2553860312232092e-01 6.1776419974193064e-01
|
||||
48 3.8751598752151462e-01 3.1426891660378731e-01 -1.6298137257439968e-01
|
||||
49 -9.0904275530250200e-01 -2.2873822047160863e+00 -1.4864379781792141e+00
|
||||
50 4.1358159051664400e-01 1.0570092137239000e+00 -4.0323250644756137e-01
|
||||
51 -9.4172195349527010e-01 1.6996496654949222e+00 1.6115119215552665e+00
|
||||
52 2.5097037619453455e+00 -2.4525324196081129e+00 2.9540058179786848e+00
|
||||
53 1.3720332798470005e+00 1.5342144442319867e+00 1.1653691882985184e+00
|
||||
54 1.0768101277470987e+00 -1.1921583386413552e+00 -9.4962490497040664e-01
|
||||
55 8.8736792497602746e-01 -1.4571034818051574e+00 -1.5335539060163184e+00
|
||||
56 -1.6630858341375376e-01 2.6605463886145830e-01 -8.9638200504290855e-01
|
||||
57 8.2311794363042881e-02 -3.7571896462749871e-01 -5.9456549563766878e-02
|
||||
58 8.5610205446436338e-01 -4.5532402871724648e-01 3.5240564373735805e-01
|
||||
59 1.6277722160751178e+00 1.0048795089638383e+00 -9.5389574412271805e-01
|
||||
60 -1.3396097925873200e+00 -2.5484866844918983e+00 -1.7252656664423354e+00
|
||||
61 -4.1356937053694531e-02 6.9831995565982619e-01 -2.3722369658580467e-01
|
||||
62 -1.1615014571620641e+00 1.1805918165226632e+00 -9.2596032516965732e-01
|
||||
63 9.6753599487408937e-01 -1.4353996747437299e+00 -6.7618187950266095e-01
|
||||
64 1.3730994742564451e+00 1.5481237027388630e+00 2.7374902138995694e+00
|
||||
...
|
||||
156
unittest/force-styles/tests/manybody-pair-pace_recursive.yaml
Normal file
156
unittest/force-styles/tests/manybody-pair-pace_recursive.yaml
Normal file
@ -0,0 +1,156 @@
|
||||
---
|
||||
lammps_version: 10 Mar 2021
|
||||
date_generated: Wed Apr 7 19:30:07 2021
|
||||
epsilon: 5e-13
|
||||
skip_tests:
|
||||
prerequisites: ! |
|
||||
pair pace
|
||||
pre_commands: ! |
|
||||
variable newton_pair delete
|
||||
variable newton_pair index on
|
||||
post_commands: ! ""
|
||||
input_file: in.manybody
|
||||
pair_style: pace recursive
|
||||
pair_coeff: ! |
|
||||
* * Cu-PBE-core-rep.ace Cu Cu Cu Cu Cu Cu Cu Cu
|
||||
extract: ! ""
|
||||
natoms: 64
|
||||
init_vdwl: -161.633164433261
|
||||
init_coul: 0
|
||||
init_stress: ! |2-
|
||||
4.9972088100713812e+00 6.2044830914039082e+00 9.1051638867151059e+00 -3.5472278350779094e+00 1.6694265484458967e+01 1.2476127820342575e+00
|
||||
init_forces: ! |2
|
||||
1 -6.2219087614976065e-01 1.4663175178944572e+00 1.0137638901413537e+00
|
||||
2 -1.1376106569501236e+00 -4.6174763313970757e-01 -9.1065044746784896e-01
|
||||
3 2.1030321840359212e-01 -1.8491702608427843e-01 2.5692785978129237e-02
|
||||
4 -8.7721996834878824e-01 1.5265564953915360e+00 6.4946175447490173e-01
|
||||
5 -4.2522149043160318e-01 -3.7218018176385625e-01 -9.1663252333276296e-02
|
||||
6 3.7791326544486292e-01 1.2266089287991140e+00 2.9557107319932868e-01
|
||||
7 -5.3020873901893451e-01 -5.3124732660126450e-01 7.0401499321635996e-01
|
||||
8 -4.7453371627832100e-02 2.6914766341310509e-01 -3.4048361271929112e-01
|
||||
9 -1.5727338601131144e-01 -8.3756943998987954e-01 -1.0686980500959902e+00
|
||||
10 4.1485698119566282e-03 -4.7811767918420989e-01 -1.0586891580297877e+00
|
||||
11 1.5438259205364635e+00 -1.5050047785034886e+00 9.6197857985467283e-01
|
||||
12 -2.5123830465558123e+00 -1.7362105833106412e+00 -1.6289247068123103e+00
|
||||
13 -5.9061498165326987e-01 2.3625898287840066e+00 -3.1399719632578593e-01
|
||||
14 -5.5397546653770346e-01 1.8689085709447653e+00 -2.3086691928354244e-02
|
||||
15 -1.6265821570337562e+00 1.7928198829776705e+00 -1.7156140339071948e+00
|
||||
16 8.1679939937577550e-01 3.9772968007061277e-01 3.1004730854830349e+00
|
||||
17 1.0595934046175248e+00 1.1460004586857007e+00 -1.8847997843938362e+00
|
||||
18 2.0249462959833447e-01 2.6186197454741122e-01 1.4401663320550206e+00
|
||||
19 -5.4631311118702253e-01 -7.9893542481102942e-01 -3.9498484189200239e-01
|
||||
20 -2.7894722368447864e+00 3.3102350276278353e-01 1.9153108358694923e-01
|
||||
21 7.2621138168723631e-01 -6.2245359068663686e-02 -1.1867468416622644e+00
|
||||
22 -2.8699857742029091e+00 2.0263873921216184e+00 -2.5768047926156705e+00
|
||||
23 6.7173035813885495e-01 1.1304059874438499e+00 9.5707129936933311e-01
|
||||
24 8.1087520346680431e-01 9.3244931025571798e-01 1.2800553902586222e+00
|
||||
25 2.8247847798945536e-01 -1.2561285000276420e-01 5.0249723343583008e-01
|
||||
26 -1.2883224887964320e-01 -1.4823080811799477e-01 2.1451743731744408e-01
|
||||
27 8.7218773747968470e-01 -4.8694991909036628e-01 8.0838245267060171e-01
|
||||
28 -8.4108903260151635e-03 4.7660038551579958e-01 2.2692513770083211e+00
|
||||
29 -1.2657298236002679e+00 5.0651440211208831e-01 -4.8138238615456286e-01
|
||||
30 -4.9017825771975698e-01 4.3447662476281140e-01 -3.4664013847486475e-01
|
||||
31 -5.2051576149983925e-01 3.8596959395000907e-01 -3.4070818553126514e-01
|
||||
32 -1.3692783712259216e+00 1.9224558097570044e-01 -2.3226212734480328e-01
|
||||
33 2.0607521792189862e+00 -1.2673195197858425e+00 1.6670068237762066e+00
|
||||
34 -4.3444509217972604e-02 -3.3223620460338277e-02 1.7607017023409030e-01
|
||||
35 5.0753059936748002e-01 -3.2385224472009999e-01 1.0142288303361040e+00
|
||||
36 1.3677004996441039e-01 -9.3517724534399915e-01 2.4335569462137843e-02
|
||||
37 -7.4579131173356694e-01 8.8843839477811493e-01 -9.4789414920418880e-01
|
||||
38 3.9719539842571261e-02 -1.5258728344628525e-01 8.3622980381342846e-03
|
||||
39 8.1730755341728512e-01 -9.8384548843884079e-01 -1.6996132976225846e+00
|
||||
40 1.7801146130923835e+00 -1.1427274274009283e+00 -6.5983603408481306e-01
|
||||
41 5.2820539467414857e-03 -2.3421071155573910e-02 -2.2563348155758098e-01
|
||||
42 -1.5456364604620965e+00 -8.8225129116507839e-01 -5.8763735424098651e-01
|
||||
43 1.1131408674736287e-01 -2.2247577888201659e+00 9.9728168268968409e-02
|
||||
44 1.3854946872102469e+00 -1.5126948458100051e+00 9.7414222691401664e-01
|
||||
45 -4.5981549862049609e-01 8.1397756884859851e-01 -1.3541793681441470e+00
|
||||
46 -6.2619038173035535e-01 -8.2735236769680376e-01 2.2798662790638025e+00
|
||||
47 1.0779718530621707e+00 5.2605298038103576e-01 6.1701114081812414e-01
|
||||
48 3.8637284054407789e-01 3.0866805709788758e-01 -1.6028037248101001e-01
|
||||
49 -8.8513638517169380e-01 -2.2564795567223652e+00 -1.4543286189782592e+00
|
||||
50 4.0710335798118663e-01 1.0605235322144930e+00 -3.9752095773780305e-01
|
||||
51 -9.1955086227837013e-01 1.6763661105933743e+00 1.6016036592489449e+00
|
||||
52 2.4999859814584600e+00 -2.4516798161916613e+00 2.9455125031925271e+00
|
||||
53 1.3494715555332963e+00 1.5041935505267034e+00 1.1203406583029645e+00
|
||||
54 1.0781523968730000e+00 -1.1923649286229243e+00 -9.5279276661359580e-01
|
||||
55 8.9808463906211189e-01 -1.4591385038403633e+00 -1.5496340042814931e+00
|
||||
56 -1.6781965313775016e-01 2.7770530096449070e-01 -9.0012005317363286e-01
|
||||
57 8.4669616061344807e-02 -3.6858526486015031e-01 -5.9756791316800374e-02
|
||||
58 8.5722805697030136e-01 -4.6399147930816353e-01 3.6325830284449651e-01
|
||||
59 1.6110642872176364e+00 9.9355375331453510e-01 -9.4982017793350770e-01
|
||||
60 -1.3129344859565715e+00 -2.5250923468261557e+00 -1.6935614677383823e+00
|
||||
61 -4.4869257920441788e-02 6.9444242511398635e-01 -2.4196506339840404e-01
|
||||
62 -1.1637776716821653e+00 1.1834011745845063e+00 -9.3135952930485300e-01
|
||||
63 9.6457625131507396e-01 -1.4202510282595464e+00 -6.5977083749854104e-01
|
||||
64 1.3468893282798624e+00 1.5138254987169519e+00 2.7159451744492755e+00
|
||||
run_vdwl: -161.618480729193
|
||||
run_coul: 0
|
||||
run_stress: ! |2-
|
||||
4.9994648190880460e+00 6.2341889704281970e+00 9.1844870435007469e+00 -3.5139192287216519e+00 1.6660134035412629e+01 1.4298492052947611e+00
|
||||
run_forces: ! |2
|
||||
1 -6.2816679628832128e-01 1.4637637672488530e+00 1.0165317420171567e+00
|
||||
2 -1.1422624515773547e+00 -4.7321268150894835e-01 -9.1937052724939328e-01
|
||||
3 1.9863435270447563e-01 -1.8101272698046844e-01 3.8842917970311100e-02
|
||||
4 -8.6907185029051970e-01 1.5294385374559754e+00 6.4103701764724941e-01
|
||||
5 -4.3303851444527064e-01 -3.7930261859680259e-01 -8.2809410717699622e-02
|
||||
6 3.9940995017606218e-01 1.2286053601548976e+00 3.1250581709979730e-01
|
||||
7 -5.1887189298196845e-01 -5.1653500358999127e-01 6.9318256549549417e-01
|
||||
8 -5.4007672382224883e-02 2.6859183359401456e-01 -3.4042178338972828e-01
|
||||
9 -1.7074436045121416e-01 -8.5109770186939693e-01 -1.0773588492847035e+00
|
||||
10 3.0793973323051810e-04 -4.8186595253265396e-01 -1.0405155138263271e+00
|
||||
11 1.5283231048349268e+00 -1.4922676136399666e+00 9.5299400757780717e-01
|
||||
12 -2.5067070901166972e+00 -1.7260607993709931e+00 -1.6244790393474351e+00
|
||||
13 -5.6235790886583970e-01 2.3585631413136179e+00 -2.9127876443333595e-01
|
||||
14 -5.6548461211843171e-01 1.8653022429237356e+00 -3.3242294041971987e-02
|
||||
15 -1.6247793293987416e+00 1.7878424820878918e+00 -1.7100129080120188e+00
|
||||
16 8.1592475815216303e-01 3.9978815670041690e-01 3.0954281982866050e+00
|
||||
17 1.0568502301698155e+00 1.1454676964498558e+00 -1.8730495547881063e+00
|
||||
18 1.8424845063197498e-01 2.7392740222789114e-01 1.4489558473704491e+00
|
||||
19 -5.5999914801367834e-01 -8.1164618021765156e-01 -4.0693565170939688e-01
|
||||
20 -2.7796384097825526e+00 3.1873084687730341e-01 1.7813456086038751e-01
|
||||
21 7.3330693120563484e-01 -8.0395528722151582e-02 -1.2031927072201976e+00
|
||||
22 -2.8714070500131141e+00 2.0341709966822590e+00 -2.5868755001463439e+00
|
||||
23 6.7965142776034937e-01 1.1390245455901691e+00 9.6635789845673215e-01
|
||||
24 8.2281062435890928e-01 9.2819309753390167e-01 1.2754920796057649e+00
|
||||
25 2.8226519759595764e-01 -1.2226596891014743e-01 4.9537642544899713e-01
|
||||
26 -1.3183205688038924e-01 -1.4257647612039717e-01 2.1434508820029102e-01
|
||||
27 8.7792855239706757e-01 -4.9723350353285928e-01 8.1153570058585001e-01
|
||||
28 -2.0947861194201500e-02 4.8894215287086157e-01 2.2752551215641588e+00
|
||||
29 -1.2702068511883076e+00 5.1109069534141138e-01 -4.8571925387763182e-01
|
||||
30 -4.8291102543552133e-01 4.2805907218813599e-01 -3.4628363342741275e-01
|
||||
31 -5.1815876825973306e-01 3.8579011364505383e-01 -3.3978922486349478e-01
|
||||
32 -1.3608082901834111e+00 1.8827011193937446e-01 -2.3469836599383653e-01
|
||||
33 2.0529282523835013e+00 -1.2685983762092712e+00 1.6663497592278267e+00
|
||||
34 -4.5189243354751718e-02 -3.2736561856755692e-02 1.8030687445809970e-01
|
||||
35 5.0972119775587099e-01 -3.2015892710665028e-01 1.0138858093119485e+00
|
||||
36 1.2271707477597758e-01 -9.3118808111974460e-01 6.0812551408806932e-03
|
||||
37 -7.4244159178063873e-01 8.8563960698757693e-01 -9.5166206712249257e-01
|
||||
38 4.5283609418585336e-02 -1.5033288786827403e-01 1.0628470501999519e-02
|
||||
39 8.1272114808181617e-01 -9.7791747752517932e-01 -1.7007525281592044e+00
|
||||
40 1.8000478262439097e+00 -1.1538213789257521e+00 -6.7136411510685423e-01
|
||||
41 1.5499683265592791e-02 -1.3955600748503419e-02 -2.1744779416054441e-01
|
||||
42 -1.5503540998240890e+00 -8.9262908626199444e-01 -5.9864359763176522e-01
|
||||
43 1.0386261899753707e-01 -2.2234594365314631e+00 9.2443698220934262e-02
|
||||
44 1.3872759356888453e+00 -1.5127698142329729e+00 9.7258424666771137e-01
|
||||
45 -4.6739915218619787e-01 8.0388098835315858e-01 -1.3465943067486295e+00
|
||||
46 -6.2872500689439892e-01 -8.2458713276081630e-01 2.2958918389493181e+00
|
||||
47 1.0814994400035058e+00 5.2553860312226619e-01 6.1776419974197272e-01
|
||||
48 3.8751598752146438e-01 3.1426891660371681e-01 -1.6298137257451450e-01
|
||||
49 -9.0904275530255685e-01 -2.2873822047160055e+00 -1.4864379781792907e+00
|
||||
50 4.1358159051644028e-01 1.0570092137240017e+00 -4.0323250644759429e-01
|
||||
51 -9.4172195349516652e-01 1.6996496654948405e+00 1.6115119215552218e+00
|
||||
52 2.5097037619454046e+00 -2.4525324196079747e+00 2.9540058179785182e+00
|
||||
53 1.3720332798469679e+00 1.5342144442320667e+00 1.1653691882983437e+00
|
||||
54 1.0768101277471369e+00 -1.1921583386412453e+00 -9.4962490497026519e-01
|
||||
55 8.8736792497605987e-01 -1.4571034818051218e+00 -1.5335539060162722e+00
|
||||
56 -1.6630858341372168e-01 2.6605463886156522e-01 -8.9638200504305587e-01
|
||||
57 8.2311794363030891e-02 -3.7571896462756421e-01 -5.9456549563895990e-02
|
||||
58 8.5610205446440457e-01 -4.5532402871718020e-01 3.5240564373727451e-01
|
||||
59 1.6277722160751129e+00 1.0048795089638642e+00 -9.5389574412266476e-01
|
||||
60 -1.3396097925873169e+00 -2.5484866844917313e+00 -1.7252656664424246e+00
|
||||
61 -4.1356937053699777e-02 6.9831995565994065e-01 -2.3722369658585374e-01
|
||||
62 -1.1615014571620197e+00 1.1805918165227427e+00 -9.2596032516965954e-01
|
||||
63 9.6753599487398723e-01 -1.4353996747436160e+00 -6.7618187950256603e-01
|
||||
64 1.3730994742563347e+00 1.5481237027388883e+00 2.7374902138994806e+00
|
||||
...
|
||||
Reference in New Issue
Block a user