Merge branch 'develop' into rheo

This commit is contained in:
Axel Kohlmeyer
2024-07-03 03:42:44 -04:00
132 changed files with 18007 additions and 8270 deletions

3
.github/CODEOWNERS vendored
View File

@ -59,7 +59,8 @@ src/VTK/* @rbberger
# individual files in packages # individual files in packages
src/GPU/pair_vashishta_gpu.* @andeplane src/GPU/pair_vashishta_gpu.* @andeplane
src/KOKKOS/pair_vashishta_kokkos.* @andeplane src/KOKKOS/pair_vashishta_kokkos.* @andeplane @stanmoore1
src/KOSSOS/pair_pod_kokkos.* @exapde @stanmoore1
src/MANYBODY/pair_vashishta_table.* @andeplane src/MANYBODY/pair_vashishta_table.* @andeplane
src/MANYBODY/pair_atm.* @sergeylishchuk src/MANYBODY/pair_atm.* @sergeylishchuk
src/MANYBODY/pair_nb3b_screened.* @flodesani src/MANYBODY/pair_nb3b_screened.* @flodesani

11
.gitignore vendored
View File

@ -43,12 +43,12 @@ Thumbs.db
#cmake #cmake
/build* /build*
/CMakeCache.txt CMakeCache.txt
/CMakeFiles/ CMakeFiles
/Testing
/Makefile /Makefile
/Testing Testing
/cmake_install.cmake Temporary
cmake_install.cmake
/lmp /lmp
out/Debug out/Debug
out/RelWithDebInfo out/RelWithDebInfo
@ -60,3 +60,4 @@ src/Makefile.package.settings-e
/cmake/build/x64-Debug-Clang /cmake/build/x64-Debug-Clang
/install/x64-GUI-MSVC /install/x64-GUI-MSVC
/install /install
.Rhistory

View File

@ -23,6 +23,7 @@ project(lammps CXX)
set(SOVERSION 0) set(SOVERSION 0)
get_property(BUILD_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) get_property(BUILD_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
include(GNUInstallDirs)
get_filename_component(LAMMPS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/.. ABSOLUTE) get_filename_component(LAMMPS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/.. ABSOLUTE)
get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE) get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE)
# collect all executables and shared libs in the top level build folder # collect all executables and shared libs in the top level build folder
@ -208,7 +209,7 @@ else()
unset(CMAKE_CXX_CLANG_TIDY CACHE) unset(CMAKE_CXX_CLANG_TIDY CACHE)
endif() endif()
include(GNUInstallDirs)
file(GLOB ALL_SOURCES CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/[^.]*.cpp) file(GLOB ALL_SOURCES CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/[^.]*.cpp)
file(GLOB MAIN_SOURCES CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/main.cpp) file(GLOB MAIN_SOURCES CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/main.cpp)
list(REMOVE_ITEM ALL_SOURCES ${MAIN_SOURCES}) list(REMOVE_ITEM ALL_SOURCES ${MAIN_SOURCES})
@ -282,10 +283,10 @@ set(STANDARD_PACKAGES
ML-HDNNP ML-HDNNP
ML-IAP ML-IAP
ML-PACE ML-PACE
ML-POD
ML-QUIP ML-QUIP
ML-RANN ML-RANN
ML-SNAP ML-SNAP
ML-POD
ML-UF3 ML-UF3
MOFFF MOFFF
MOLECULE MOLECULE

View File

@ -26,8 +26,8 @@ set(ALL_PACKAGES
DPD-REACT DPD-REACT
DPD-SMOOTH DPD-SMOOTH
DRUDE DRUDE
ELECTRODE
EFF EFF
ELECTRODE
EXTRA-COMMAND EXTRA-COMMAND
EXTRA-COMPUTE EXTRA-COMPUTE
EXTRA-DUMP EXTRA-DUMP

View File

@ -28,8 +28,8 @@ set(ALL_PACKAGES
DPD-REACT DPD-REACT
DPD-SMOOTH DPD-SMOOTH
DRUDE DRUDE
ELECTRODE
EFF EFF
ELECTRODE
EXTRA-COMMAND EXTRA-COMMAND
EXTRA-COMPUTE EXTRA-COMPUTE
EXTRA-DUMP EXTRA-DUMP

View File

@ -22,8 +22,8 @@ set(WIN_PACKAGES
DPD-REACT DPD-REACT
DPD-SMOOTH DPD-SMOOTH
DRUDE DRUDE
ELECTRODE
EFF EFF
ELECTRODE
EXTRA-COMMAND EXTRA-COMMAND
EXTRA-COMPUTE EXTRA-COMPUTE
EXTRA-DUMP EXTRA-DUMP
@ -33,7 +33,6 @@ set(WIN_PACKAGES
FEP FEP
GPU GPU
GRANULAR GRANULAR
INTEL
INTERLAYER INTERLAYER
KSPACE KSPACE
LEPTON LEPTON

View File

@ -52,8 +52,8 @@ set(WIN_PACKAGES
ORIENT ORIENT
PERI PERI
PHONON PHONON
POEMS
PLUGIN PLUGIN
POEMS
PTM PTM
QEQ QEQ
QTB QTB

View File

@ -1,7 +1,7 @@
.TH LAMMPS "1" "17 April 2024" "2024-04-17" .TH LAMMPS "1" "27 June 2024" "2024-06-27"
.SH NAME .SH NAME
.B LAMMPS .B LAMMPS
\- Molecular Dynamics Simulator. Version 17 April 2024 \- Molecular Dynamics Simulator. Version 27 June 2024
.SH SYNOPSIS .SH SYNOPSIS
.B lmp .B lmp

View File

@ -108,6 +108,10 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`pe/mol/tally <compute_tally>` * :doc:`pe/mol/tally <compute_tally>`
* :doc:`pe/tally <compute_tally>` * :doc:`pe/tally <compute_tally>`
* :doc:`plasticity/atom <compute_plasticity_atom>` * :doc:`plasticity/atom <compute_plasticity_atom>`
* :doc:`pod/atom <compute_pod_atom>`
* :doc:`podd/atom <compute_pod_atom>`
* :doc:`pod/local <compute_pod_atom>`
* :doc:`pod/global <compute_pod_atom>`
* :doc:`pressure <compute_pressure>` * :doc:`pressure <compute_pressure>`
* :doc:`pressure/alchemy <compute_pressure_alchemy>` * :doc:`pressure/alchemy <compute_pressure_alchemy>`
* :doc:`pressure/uef <compute_pressure_uef>` * :doc:`pressure/uef <compute_pressure_uef>`

View File

@ -247,7 +247,7 @@ OPT.
* :doc:`pace (k) <pair_pace>` * :doc:`pace (k) <pair_pace>`
* :doc:`pace/extrapolation (k) <pair_pace>` * :doc:`pace/extrapolation (k) <pair_pace>`
* :doc:`pedone (o) <pair_pedone>` * :doc:`pedone (o) <pair_pedone>`
* :doc:`pod <pair_pod>` * :doc:`pod (k) <pair_pod>`
* :doc:`peri/eps <pair_peri>` * :doc:`peri/eps <pair_peri>`
* :doc:`peri/lps (o) <pair_peri>` * :doc:`peri/lps (o) <pair_peri>`
* :doc:`peri/pmb (o) <pair_peri>` * :doc:`peri/pmb (o) <pair_peri>`

View File

@ -151,10 +151,10 @@ and allow running LAMMPS with GPU acceleration.
i-PI tool i-PI tool
--------- ---------
.. versionchanged:: TBD .. versionchanged:: 27June2024
The i-PI tool has been removed from the LAMMPS distribution. Instead, The i-PI tool has been removed from the LAMMPS distribution. Instead,
instructions to install i-PI from PyPi via pip are provided. instructions to install i-PI from PyPI via pip are provided.
restart2data tool restart2data tool
----------------- -----------------

View File

@ -211,6 +211,9 @@ Argument processing
.. doxygenfunction:: bounds .. doxygenfunction:: bounds
:project: progguide :project: progguide
.. doxygenfunction:: bounds_typelabel
:project: progguide
.. doxygenfunction:: expand_args .. doxygenfunction:: expand_args
:project: progguide :project: progguide

View File

@ -50,6 +50,30 @@ We are looking at the following cases:
- `Case 3: a potential requiring communication`_ - `Case 3: a potential requiring communication`_
- `Case 4: potentials without a compute() function`_ - `Case 4: potentials without a compute() function`_
Package and build system considerations
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In general, new pair styles should be added to the :ref:`EXTRA-PAIR
package <PKG-EXTRA-PAIR>` unless they are an accelerated pair style and
then they should be added to the corresponding accelerator package
(:ref:`GPU <PKG-GPU>`, :ref:`INTEL <PKG-INTEL>`, :ref:`KOKKOS
<PKG-KOKKOS>`, :ref:`OPENMP <PKG-OPENMP>`, :ref:`OPT <PKG-OPT>`). If
you feel that your contribution should be added to a different package,
please consult with the LAMMPS developers first.
The contributed code needs to support the :doc:`traditional GNU make
build process <Build_make>` **and** the :doc:`CMake build process
<Build_cmake>`. For the GNU make process and if the package has an
``Install.sh`` file, most likely that file needs to be updated to
correctly copy the sources when installing the package and properly
delete them when uninstalling. This is particularly important when
added a new pair style that is a derived class from an existing pair
style in a package, so that its installation depends on the the
installation status of the package of the derived class. For the CMake
process, it is sometimes necessary to make changes to the package
specific CMake scripting in ``cmake/Modules/Packages``.
---- ----
Case 1: a pairwise additive model Case 1: a pairwise additive model

View File

@ -1,6 +1,10 @@
CHARMM, AMBER, COMPASS, and DREIDING force fields CHARMM, AMBER, COMPASS, and DREIDING force fields
================================================= =================================================
A compact summary of the concepts, definitions, and properties of
force fields with explicit bonded interactions (like the ones discussed
in this HowTo) is given in :ref:`(Gissinger) <Typelabel2>`.
A force field has 2 parts: the formulas that define it and the A force field has 2 parts: the formulas that define it and the
coefficients used for a particular system. Here we only discuss coefficients used for a particular system. Here we only discuss
formulas implemented in LAMMPS that correspond to formulas commonly used formulas implemented in LAMMPS that correspond to formulas commonly used
@ -11,12 +15,42 @@ commands like :doc:`pair_coeff <pair_coeff>` or :doc:`bond_coeff
<bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc page for <bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc page for
additional tools that can use CHARMM, AMBER, or Materials Studio additional tools that can use CHARMM, AMBER, or Materials Studio
generated files to assign force field coefficients and convert their generated files to assign force field coefficients and convert their
output into LAMMPS input. output into LAMMPS input. LAMMPS input scripts can also be generated by
`charmm-gui.org <https://charmm-gui.org/>`_.
See :ref:`(MacKerell) <howto-MacKerell>` for a description of the CHARMM CHARMM and AMBER
force field. See :ref:`(Cornell) <howto-Cornell>` for a description of ----------------
the AMBER force field. See :ref:`(Sun) <howto-Sun>` for a description
of the COMPASS force field. The `CHARMM force field
<https://mackerell.umaryland.edu/charmm_ff.shtml>`_ :ref:`(MacKerell)
<howto-MacKerell>` and `AMBER force field
<https://ambermd.org/AmberModels.php>`_ :ref:`(Cornell) <howto-Cornell>`
have potential energy function of the form
.. math::
V & = \sum_{bonds} E_b + \sum_{angles} \!E_a + \!\overbrace{\sum_{dihedral} \!\!E_d}^{\substack{
\text{charmm} \\
\text{charmmfsw}
}} +\!\!\! \sum_{impropers} \!\!\!E_i \\[.6em]
& \quad + \!\!\!\!\!\!\!\!\!\!\underbrace{~\sum_{pairs} \left(E_{LJ}+E_{coul}\right)}_{\substack{
\text{lj/charmm/coul/charmm} \\
\text{lj/charmm/coul/charmm/implicit} \\
\text{lj/charmm/coul/long} \\
\text{lj/charmm/coul/msm} \\
\text{lj/charmmfsw/coul/charmmfsh} \\
\text{lj/charmmfsw/coul/long}
}} \!\!\!\!\!\!\!\!+ \!\!\sum_{special}\! E_s + \!\!\!\!\sum_{residues} \!\!\!{\scriptstyle\mathrm{CMAP}(\phi,\psi)}
The terms are computed by bond styles (relationship between 2 atoms),
angle styles (between 3 atoms) , dihedral/improper styles (between 4
atoms), pair styles (non-covalently bonded pair interactions) and
special bonds. The CMAP term (see :doc:`fix cmap <fix_cmap>` command for
details) corrects for pairs of dihedral angles ("Correction MAP") to
significantly improve the structural and dynamic properties of proteins
in crystalline and solution environments :ref:`(Brooks)
<howto-Brooks>`. The AMBER force field does not include the CMAP term.
The interaction styles listed below compute force field formulas that The interaction styles listed below compute force field formulas that
are consistent with common options in CHARMM or AMBER. See each are consistent with common options in CHARMM or AMBER. See each
@ -31,10 +65,81 @@ command's documentation for the formula it computes.
* :doc:`pair_style <pair_charmm>` lj/charmm/coul/charmm * :doc:`pair_style <pair_charmm>` lj/charmm/coul/charmm
* :doc:`pair_style <pair_charmm>` lj/charmm/coul/charmm/implicit * :doc:`pair_style <pair_charmm>` lj/charmm/coul/charmm/implicit
* :doc:`pair_style <pair_charmm>` lj/charmm/coul/long * :doc:`pair_style <pair_charmm>` lj/charmm/coul/long
* :doc:`special_bonds <special_bonds>` charmm * :doc:`special_bonds <special_bonds>` charmm
* :doc:`special_bonds <special_bonds>` amber * :doc:`special_bonds <special_bonds>` amber
The pair styles compute Lennard Jones (LJ) and Coulombic interactions
with additional switching or shifting functions that ramp the energy
and/or force smoothly to zero between an inner :math:`(a)` and outer
:math:`(b)` cutoff. The older styles with *charmm* (not *charmmfsw* or
*charmmfsh*\ ) in their name compute the LJ and Coulombic interactions
with an energy switching function (esw) S(r) which ramps the energy
smoothly to zero between the inner and outer cutoff. This can cause
irregularities in pairwise forces (due to the discontinuous second
derivative of energy at the boundaries of the switching region), which
in some cases can result in complications in energy minimization and
detectable artifacts in MD simulations.
.. grid:: 1 1 2 2
.. grid-item::
.. math::
LJ(r) &= 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
\left(\frac{\sigma}{r}\right)^6 \right]\\[.6em]
C(r) &= \frac{C q_i q_j}{ \epsilon r}\\[.6em]
S(r) &= \frac{ \left(b^2 - r^2\right)^2 \left(b^2 + 2r^2 - 3{a^2}\right)}
{ \left(b^2 - a^2\right)^3 }\\[.6em]
E_{LJ}(r) &= \begin{cases}
LJ(r), & r \leq a \\
LJ(r) S(r), & a < r \leq b \\
0, &r > b
\end{cases} \\[.6em]
E_{coul}(r) &= \begin{cases}
C(r), & r \leq a \\
C(r) S(r), & a < r \leq b \\
0, & r > b
\end{cases}
.. grid-item::
.. image:: img/howto_charmm_ELJ.png
:align: center
The newer styles with *charmmfsw* or *charmmfsh* in their name replace
energy switching with force switching (fsw) for LJ interactions and
force shifting (fsh) functions for Coulombic interactions
:ref:`(Steinbach) <howto-Steinbach>`
.. grid:: 1 1 2 2
.. grid-item::
.. math::
E_{LJ}(r) = & \begin{cases}
4 \epsilon \sigma^6 \left(\frac{\displaystyle\sigma
^6-r^6}{\displaystyle r^{12}}-\frac{\displaystyle\sigma ^6}{\displaystyle a^6
b^6}+\frac{\displaystyle 1}{\displaystyle a^3 b^3}\right) & r\leq a \\
\frac{\displaystyle 4 \epsilon \sigma^6 \left(\sigma ^6
\left(b^6-r^6\right)^2-b^3 r^6 \left(a^3+b^3\right)
\left(b^3-r^3\right)^2\right)}{\displaystyle b^6 r^{12}
\left(b^6-a^6\right)} & a<r \leq b\\
0, & r>b
\end{cases}\\[.6em]
E_{coul}(r) & = \begin{cases}
C(r) \frac{\displaystyle (b-r)^2}{\displaystyle r b^2}, & r \leq b \\
0, & r > b
\end{cases}
.. grid-item::
.. image:: img/howto_charmmfsw_ELJ.png
:align: center
These styles are used by LAMMPS input scripts generated by
https://charmm-gui.org/ :ref:`(Brooks) <howto-Brooks>`.
.. note:: .. note::
For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released in For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released in
@ -43,17 +148,33 @@ command's documentation for the formula it computes.
<pair_charmm>` and :doc:`dihedral charmm <dihedral_charmm>` doc <pair_charmm>` and :doc:`dihedral charmm <dihedral_charmm>` doc
pages. pages.
.. note::
The TIP3P water model is strongly recommended for use with the CHARMM
force field. In fact, `"using the SPC model with CHARMM parameters is
a bad idea"
<https://matsci.org/t/using-spc-water-with-charmm-ff/24715>`_ and `"to
enable TIP4P style water in CHARMM, you would have to write a new pair
style"
<https://matsci.org/t/hybrid-pair-styles-for-charmm-and-tip4p-ew/32609>`_
. LAMMPS input scripts generated by Solution Builder on https://charmm-gui.org
use TIP3P molecules for solvation. Any other water model can and
probably will lead to false conclusions.
COMPASS
-------
COMPASS is a general force field for atomistic simulation of common COMPASS is a general force field for atomistic simulation of common
organic molecules, inorganic small molecules, and polymers which was organic molecules, inorganic small molecules, and polymers which was
developed using ab initio and empirical parameterization techniques. developed using ab initio and empirical parameterization techniques
See the :doc:`Tools <Tools>` page for the msi2lmp tool for creating :ref:`(Sun) <howto-Sun>`. See the :doc:`Tools <Tools>` page for the
LAMMPS template input and data files from BIOVIA's Materials Studio msi2lmp tool for creating LAMMPS template input and data files from
files. Please note that the msi2lmp tool is very old and largely BIOVIA's Materials Studio files. Please note that the msi2lmp tool is
unmaintained, so it does not support all features of Materials Studio very old and largely unmaintained, so it does not support all features
provided force field files, especially additions during the last decade. of Materials Studio provided force field files, especially additions
You should watch the output carefully and compare results, where during the last decade. You should watch the output carefully and
possible. See :ref:`(Sun) <howto-Sun>` for a description of the COMPASS force compare results, where possible. See :ref:`(Sun) <howto-Sun>` for a
field. description of the COMPASS force field.
These interaction styles listed below compute force field formulas that These interaction styles listed below compute force field formulas that
are consistent with the COMPASS force field. See each command's are consistent with the COMPASS force field. See each command's
@ -70,14 +191,21 @@ documentation for the formula it computes.
* :doc:`special_bonds <special_bonds>` lj/coul 0 0 1 * :doc:`special_bonds <special_bonds>` lj/coul 0 0 1
DREIDING is a generic force field developed by the `Goddard group <http://www.wag.caltech.edu>`_ at Caltech and is useful for DREIDING
predicting structures and dynamics of organic, biological and main-group --------
inorganic molecules. The philosophy in DREIDING is to use general force
constants and geometry parameters based on simple hybridization DREIDING is a generic force field developed by the `Goddard group
considerations, rather than individual force constants and geometric <http://www.wag.caltech.edu>`_ at Caltech and is useful for predicting
parameters that depend on the particular combinations of atoms involved structures and dynamics of organic, biological and main-group inorganic
in the bond, angle, or torsion terms. DREIDING has an :doc:`explicit hydrogen bond term <pair_hbond_dreiding>` to describe interactions involving a molecules. The philosophy in DREIDING is to use general force constants
hydrogen atom on very electronegative atoms (N, O, F). and geometry parameters based on simple hybridization considerations,
rather than individual force constants and geometric parameters that
depend on the particular combinations of atoms involved in the bond,
angle, or torsion terms. DREIDING has an :doc:`explicit hydrogen bond
term <pair_hbond_dreiding>` to describe interactions involving a
hydrogen atom on very electronegative atoms (N, O, F). Unlike CHARMM
or AMBER, the DREIDING force field has not been parameterized for
considering solvents (like water).
See :ref:`(Mayo) <howto-Mayo>` for a description of the DREIDING force field See :ref:`(Mayo) <howto-Mayo>` for a description of the DREIDING force field
@ -110,21 +238,31 @@ documentation for the formula it computes.
---------- ----------
.. _Typelabel2:
**(Gissinger)** J. R. Gissinger, I. Nikiforov, Y. Afshar, B. Waters, M. Choi, D. S. Karls, A. Stukowski, W. Im, H. Heinz, A. Kohlmeyer, and E. B. Tadmor, J Phys Chem B, 128, 3282-3297 (2024).
.. _howto-MacKerell: .. _howto-MacKerell:
**(MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field, **(MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field, Fischer, Gao, Guo, Ha, et al (1998). J Phys Chem, 102, 3586 . https://doi.org/10.1021/jp973084f
Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998).
.. _howto-Cornell: .. _howto-Cornell:
**(Cornell)** Cornell, Cieplak, Bayly, Gould, Merz, Ferguson, **(Cornell)** Cornell, Cieplak, Bayly, Gould, Merz, Ferguson, Spellmeyer, Fox, Caldwell, Kollman (1995). JACS 117, 5179-5197. https://doi.org/10.1021/ja00124a002
Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995).
.. _howto-Steinbach:
**(Steinbach)** Steinbach, Brooks (1994). J Comput Chem, 15, 667. https://doi.org/10.1002/jcc.540150702
.. _howto-Brooks:
**(Brooks)** Brooks, et al (2009). J Comput Chem, 30, 1545. https://onlinelibrary.wiley.com/doi/10.1002/jcc.21287
.. _howto-Sun: .. _howto-Sun:
**(Sun)** Sun, J. Phys. Chem. B, 102, 7338-7364 (1998). **(Sun)** Sun (1998). J. Phys. Chem. B, 102, 7338-7364. https://doi.org/10.1021/jp980939v
.. _howto-Mayo: .. _howto-Mayo:
**(Mayo)** Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909 **(Mayo)** Mayo, Olfason, Goddard III (1990). J Phys Chem, 94, 8897-8909. https://doi.org/10.1021/j100389a010
(1990).

View File

@ -379,7 +379,7 @@ See README file in the tools/fep directory.
i-PI tool i-PI tool
------------------- -------------------
.. versionchanged:: TBD .. versionchanged:: 27June2024
The tools/i-pi directory used to contain a bundled version of the i-PI The tools/i-pi directory used to contain a bundled version of the i-PI
software package for use with LAMMPS. This version, however, was software package for use with LAMMPS. This version, however, was
@ -389,7 +389,7 @@ The i-PI package was created and is maintained by Michele Ceriotti,
michele.ceriotti at gmail.com, to interface to a variety of molecular michele.ceriotti at gmail.com, to interface to a variety of molecular
dynamics codes. dynamics codes.
i-PI is now available via PyPi using the pip package manager at: i-PI is now available via PyPI using the pip package manager at:
https://pypi.org/project/ipi/ https://pypi.org/project/ipi/
Here are the commands to set up a virtual environment and install Here are the commands to set up a virtual environment and install
@ -839,7 +839,7 @@ and LAMMPS GUI can be launched from anywhere from the command line.
The standard CMake build procedure can be applied and the The standard CMake build procedure can be applied and the
``mingw-cross.cmake`` preset used. By using ``mingw64-cmake`` the CMake ``mingw-cross.cmake`` preset used. By using ``mingw64-cmake`` the CMake
command will automatically include a suitable CMake toolset file (the command will automatically include a suitable CMake toolchain file (the
regular cmake command can be used after that to modify the configuration regular cmake command can be used after that to modify the configuration
settings, if needed). After building the libraries and executables, settings, if needed). After building the libraries and executables,
you can build the target 'zip' (i.e. ``cmake --build <build dir> --target zip`` you can build the target 'zip' (i.e. ``cmake --build <build dir> --target zip``

View File

@ -71,11 +71,11 @@ all atoms, e.g. in a data or restart file.
atom IDs are required, due to how neighbor lists are built. atom IDs are required, due to how neighbor lists are built.
The *map* keyword determines how atoms with specific IDs are found The *map* keyword determines how atoms with specific IDs are found
when required. An example are the bond (angle, etc) methods which when required. For example, the bond (angle, etc) methods need to
need to find the local index of an atom with a specific global ID find the local index of an atom with a specific global ID which is a
which is a bond (angle, etc) partner. LAMMPS performs this operation bond (angle, etc) partner. LAMMPS performs this operation efficiently
efficiently by creating a "map", which is either an *array* or *hash* by creating a "map", which is either an *array* or *hash* table, as
table, as described below. described below.
When the *map* keyword is not specified in your input script, LAMMPS When the *map* keyword is not specified in your input script, LAMMPS
only creates a map for :doc:`atom_styles <atom_style>` for molecular only creates a map for :doc:`atom_styles <atom_style>` for molecular
@ -83,34 +83,39 @@ systems which have permanent bonds (angles, etc). No map is created
for atomic systems, since it is normally not needed. However some for atomic systems, since it is normally not needed. However some
LAMMPS commands require a map, even for atomic systems, and will LAMMPS commands require a map, even for atomic systems, and will
generate an error if one does not exist. The *map* keyword thus generate an error if one does not exist. The *map* keyword thus
allows you to force the creation of a map. The *yes* value will allows you to force the creation of a map.
create either an *array* or *hash* style map, as explained in the next
paragraph. The *array* and *hash* values create an array-style or
hash-style map respectively.
For an *array*\ -style map, each processor stores a lookup table of Specifying a value of *yes* will create either an array-style or
length N, where N is the largest atom ID in the system. This is a hash-style map, depending on the size of the system. If no atom ID is
fast, simple method for many simulations, but requires too much memory larger than 1 million, then an array-style map is used, otherwise a
for large simulations. For a *hash*\ -style map, a hash table is hash-style map is used. Specifying a value of *array* or *hash*
created on each processor, which finds an atom ID in constant time creates an array-style or hash-style map respectively, regardless of
(independent of the global number of atom IDs). It can be slightly the size of the system.
slower than the *array* map, but its memory cost is proportional to
the number of atoms owned by a processor, i.e. N/P when N is the total
number of atoms in the system and P is the number of processors.
The *first* keyword allows a :doc:`group <group>` to be specified whose For an array-style map, each processor stores a lookup table of length
atoms will be maintained as the first atoms in each processor's list N, where N is the largest atom ID in the system. This is a fast,
of owned atoms. This in only useful when the specified group is a simple method for many simulations, but requires too much memory for
small fraction of all the atoms, and there are other operations LAMMPS large simulations. For a hash-style map, a hash table is created on
is performing that will be sped-up significantly by being able to loop each processor, which finds an atom ID in constant time (independent
over the smaller set of atoms. Otherwise the reordering required by of the global number of atom IDs). It can be slightly slower than the
this option will be a net slow-down. The :doc:`neigh_modify include <neigh_modify>` and :doc:`comm_modify group <comm_modify>` *array* map, but its memory cost is proportional to the number of
commands are two examples of commands that require this setting to atoms owned by a processor, i.e. N/P when N is the total number of
work efficiently. Several :doc:`fixes <fix>`, most notably time atoms in the system and P is the number of processors.
integration fixes like :doc:`fix nve <fix_nve>`, also take advantage of
this setting if the group they operate on is the group specified by The *first* keyword allows a :doc:`group <group>` to be specified
this command. Note that specifying "all" as the group-ID effectively whose atoms will be maintained as the first atoms in each processor's
turns off the *first* option. list of owned atoms. This in only useful when the specified group is
a small fraction of all the atoms, and there are other operations
LAMMPS is performing that will be sped-up significantly by being able
to loop over the smaller set of atoms. Otherwise the reordering
required by this option will be a net slow-down. The
:doc:`neigh_modify include <neigh_modify>` and :doc:`comm_modify group
<comm_modify>` commands are two examples of commands that require this
setting to work efficiently. Several :doc:`fixes <fix>`, most notably
time integration fixes like :doc:`fix nve <fix_nve>`, also take
advantage of this setting if the group they operate on is the group
specified by this command. Note that specifying "all" as the group-ID
effectively turns off the *first* option.
It is OK to use the *first* keyword with a group that has not yet been It is OK to use the *first* keyword with a group that has not yet been
defined, e.g. to use the atom_modify first command at the beginning of defined, e.g. to use the atom_modify first command at the beginning of
@ -148,15 +153,16 @@ cache locality will be undermined.
.. note:: .. note::
Running a simulation with sorting on versus off should not Running a simulation with sorting on versus off should not change
change the simulation results in a statistical sense. However, a the simulation results in a statistical sense. However, a
different ordering will induce round-off differences, which will lead different ordering will induce round-off differences, which will
to diverging trajectories over time when comparing two simulations. lead to diverging trajectories over time when comparing two
Various commands, particularly those which use random numbers simulations. Various commands, particularly those which use random
(e.g. :doc:`velocity create <velocity>`, and :doc:`fix langevin <fix_langevin>`), may generate (statistically identical) numbers (e.g. :doc:`velocity create <velocity>`, and :doc:`fix
results which depend on the order in which atoms are processed. The langevin <fix_langevin>`), may generate (statistically identical)
order of atoms in a :doc:`dump <dump>` file will also typically change results which depend on the order in which atoms are processed.
if sorting is enabled. The order of atoms in a :doc:`dump <dump>` file will also typically
change if sorting is enabled.
.. note:: .. note::
@ -183,12 +189,13 @@ Default
By default, *id* is yes. By default, atomic systems (no bond topology By default, *id* is yes. By default, atomic systems (no bond topology
info) do not use a map. For molecular systems (with bond topology info) do not use a map. For molecular systems (with bond topology
info), a map is used. The default map style is array if no atom ID is info), the default is to use a map of either *array* or *hash* style
larger than 1 million, otherwise the default is hash. By default, a depending on the size of the sustem, as explained above for the *map
"first" group is not defined. By default, sorting is enabled with a yes* keyword/value option. By default, a *first* group is not
frequency of 1000 and a binsize of 0.0, which means the neighbor defined. By default, sorting is enabled with a frequency of 1000 and
cutoff will be used to set the bin size. If no neighbor cutoff is a binsize of 0.0, which means the neighbor cutoff will be used to set
defined, sorting will be turned off. the bin size. If no neighbor cutoff is defined, sorting will be turned
off.
---------- ----------

View File

@ -272,6 +272,10 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
* :doc:`pe/mol/tally <compute_tally>` - potential energy between two groups of atoms separated into intermolecular and intramolecular components via the tally callback mechanism * :doc:`pe/mol/tally <compute_tally>` - potential energy between two groups of atoms separated into intermolecular and intramolecular components via the tally callback mechanism
* :doc:`pe/tally <compute_tally>` - potential energy between two groups of atoms via the tally callback mechanism * :doc:`pe/tally <compute_tally>` - potential energy between two groups of atoms via the tally callback mechanism
* :doc:`plasticity/atom <compute_plasticity_atom>` - Peridynamic plasticity for each atom * :doc:`plasticity/atom <compute_plasticity_atom>` - Peridynamic plasticity for each atom
* :doc:`pod/atom <compute_pod_atom>` - POD descriptors for each atom
* :doc:`podd/atom <compute_pod_atom>` - derivative of POD descriptors for each atom
* :doc:`pod/local <compute_pod_atom>` - local POD descriptors and their derivatives
* :doc:`pod/global <compute_pod_atom>` - global POD descriptors and their derivatives
* :doc:`pressure <compute_pressure>` - total pressure and pressure tensor * :doc:`pressure <compute_pressure>` - total pressure and pressure tensor
* :doc:`pressure/alchemy <compute_pressure_alchemy>` - mixed system total pressure and pressure tensor for :doc:`fix alchemy <fix_alchemy>` runs * :doc:`pressure/alchemy <compute_pressure_alchemy>` - mixed system total pressure and pressure tensor for :doc:`fix alchemy <fix_alchemy>` runs
* :doc:`pressure/uef <compute_pressure_uef>` - pressure tensor in the reference frame of an applied flow field * :doc:`pressure/uef <compute_pressure_uef>` - pressure tensor in the reference frame of an applied flow field

View File

@ -0,0 +1,145 @@
.. index:: compute pod/atom
.. index:: compute podd/atom
.. index:: compute pod/local
.. index:: compute pod/global
compute pod/atom command
========================
compute podd/atom command
=========================
compute pod/local command
=========================
compute pod/global command
==========================
Syntax
""""""
.. code-block:: LAMMPS
compute ID group-ID pod/atom param.pod coefficients.pod
compute ID group-ID podd/atom param.pod coefficients.pod
compute ID group-ID pod/local param.pod coefficients.pod
compute ID group-ID pod/global param.pod coefficients.pod
* ID, group-ID are documented in :doc:`compute <compute>` command
* pod/atom = style name of this compute command
* param.pod = the parameter file specifies parameters of the POD descriptors
* coefficients.pod = the coefficient file specifies coefficients of the POD potential
Examples
""""""""
.. code-block:: LAMMPS
compute d all pod/atom Ta_param.pod
compute dd all podd/atom Ta_param.pod
compute ldd all pod/local Ta_param.pod
compute gdd all podd/global Ta_param.pod
compute d all pod/atom Ta_param.pod Ta_coefficients.pod
compute dd all podd/atom Ta_param.pod Ta_coefficients.pod
compute ldd all pod/local Ta_param.pod Ta_coefficients.pod
compute gdd all podd/global Ta_param.pod Ta_coefficients.pod
Description
"""""""""""
.. versionadded:: 27June2024
Define a computation that calculates a set of quantities related to the
POD descriptors of the atoms in a group. These computes are used
primarily for calculating the dependence of energy and force components
on the linear coefficients in the :doc:`pod pair_style <pair_pod>`,
which is useful when training a POD potential to match target data. POD
descriptors of an atom are characterized by the radial and angular
distribution of neighbor atoms. The detailed mathematical definition is
given in the papers by :ref:`(Nguyen and Rohskopf) <Nguyen20222c>`,
:ref:`(Nguyen2023) <Nguyen20232c>`, :ref:`(Nguyen2024) <Nguyen20242c>`,
and :ref:`(Nguyen and Sema) <Nguyen20243c>`.
Compute *pod/atom* calculates the per-atom POD descriptors.
Compute *podd/atom* calculates derivatives of the per-atom POD
descriptors with respect to atom positions.
Compute *pod/local* calculates the per-atom POD descriptors and their
derivatives with respect to atom positions.
Compute *pod/global* calculates the global POD descriptors and their
derivatives with respect to atom positions.
Examples how to use Compute POD commands are found in the directory
``examples/PACKAGES/pod``.
.. warning::
All of these compute styles produce *very* large per-atom output
arrays that scale with the total number of atoms in the system.
This will result in *very* large memory consumption for systems
with a large number of atoms.
----------
Output info
"""""""""""
Compute *pod/atom* produces an 2D array of size :math:`N \times M`,
where :math:`N` is the number of atoms and :math:`M` is the number of
descriptors. Each column corresponds to a particular POD descriptor.
Compute *podd/atom* produces an 2D array of size :math:`N \times (M * 3
N)`. Each column corresponds to a particular derivative of a POD
descriptor.
Compute *pod/local* produces an 2D array of size :math:`(1 + 3N) \times
(M * N)`. The first row contains the per-atom descriptors, and the last
3N rows contain the derivatives of the per-atom descriptors with respect
to atom positions.
Compute *pod/global* produces an 2D array of size :math:`(1 + 3N) \times
(M)`. The first row contains the global descriptors, and the last 3N
rows contain the derivatives of the global descriptors with respect to
atom positions.
Restrictions
""""""""""""
These computes are part of the ML-POD package. They are only enabled
if LAMMPS was built with that package. See the :doc:`Build package
<Build_package>` page for more info.
Related commands
""""""""""""""""
:doc:`fitpod <fitpod_command>`,
:doc:`pair_style pod <pair_pod>`
Default
"""""""
none
----------
.. _Nguyen20222c:
**(Nguyen and Rohskopf)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023).
.. _Nguyen20232c:
**(Nguyen2023)** Nguyen, Physical Review B, 107(14), 144103, (2023).
.. _Nguyen20242c:
**(Nguyen2024)** Nguyen, Journal of Computational Physics, 113102, (2024).
.. _Nguyen20243c:
**(Nguyen and Sema)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024).

View File

@ -1,18 +1,19 @@
.. index:: fitpod .. index:: fitpod
fitpod command fitpod command
====================== ==============
Syntax Syntax
"""""" """"""
.. code-block:: LAMMPS .. code-block:: LAMMPS
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod
* fitpod = style name of this command * fitpod = style name of this command
* Ta_param.pod = an input file that describes proper orthogonal descriptors (PODs) * Ta_param.pod = an input file that describes proper orthogonal descriptors (PODs)
* Ta_data.pod = an input file that specifies DFT data used to fit a POD potential * Ta_data.pod = an input file that specifies DFT data used to fit a POD potential
* Ta_coefficients.pod (optional) = an input file that specifies trainable coefficients of a POD potential
Examples Examples
"""""""" """"""""
@ -20,20 +21,26 @@ Examples
.. code-block:: LAMMPS .. code-block:: LAMMPS
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod
fitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod
Description Description
""""""""""" """""""""""
.. versionadded:: 22Dec2022 .. versionadded:: 22Dec2022
Fit a machine-learning interatomic potential (ML-IAP) based on proper Fit a machine-learning interatomic potential (ML-IAP) based on proper
orthogonal descriptors (POD). Two input files are required for this orthogonal descriptors (POD); please see :ref:`(Nguyen and Rohskopf)
command. The first input file describes a POD potential parameter <Nguyen20222a>`, :ref:`(Nguyen2023) <Nguyen20232a>`, :ref:`(Nguyen2024)
settings, while the second input file specifies the DFT data used for <Nguyen20242a>`, and :ref:`(Nguyen and Sema) <Nguyen20243a>` for details.
the fitting procedure. The fitted POD potential can be used to run MD simulations via
:doc:`pair_style pod <pair_pod>`.
The table below has one-line descriptions of all the keywords that can Two input files are required for this command. The first input file
be used in the first input file (i.e. ``Ta_param.pod`` in the example describes a POD potential parameter settings, while the second input
above): file specifies the DFT data used for the fitting procedure. All keywords
except *species* have default values. If a keyword is not set in the
input file, its default value is used. The table below has one-line
descriptions of all the keywords that can be used in the first input
file (i.e. ``Ta_param.pod``)
.. list-table:: .. list-table::
:header-rows: 1 :header-rows: 1
@ -52,7 +59,7 @@ above):
- INT - INT
- three integer constants specify boundary conditions - three integer constants specify boundary conditions
* - rin * - rin
- 1.0 - 0.5
- REAL - REAL
- a real number specifies the inner cut-off radius - a real number specifies the inner cut-off radius
* - rcut * - rcut
@ -60,46 +67,75 @@ above):
- REAL - REAL
- a real number specifies the outer cut-off radius - a real number specifies the outer cut-off radius
* - bessel_polynomial_degree * - bessel_polynomial_degree
- 3 - 4
- INT - INT
- the maximum degree of Bessel polynomials - the maximum degree of Bessel polynomials
* - inverse_polynomial_degree * - inverse_polynomial_degree
- 6 - 8
- INT - INT
- the maximum degree of inverse radial basis functions - the maximum degree of inverse radial basis functions
* - number_of_environment_clusters
- 1
- INT
- the number of clusters for environment-adaptive potentials
* - number_of_principal_components
- 2
- INT
- the number of principal components for dimensionality reduction
* - onebody * - onebody
- 1 - 1
- BOOL - BOOL
- turns on/off one-body potential - turns on/off one-body potential
* - twobody_number_radial_basis_functions * - twobody_number_radial_basis_functions
- 6 - 8
- INT - INT
- number of radial basis functions for two-body potential - number of radial basis functions for two-body potential
* - threebody_number_radial_basis_functions * - threebody_number_radial_basis_functions
- 5 - 6
- INT - INT
- number of radial basis functions for three-body potential - number of radial basis functions for three-body potential
* - threebody_number_angular_basis_functions * - threebody_angular_degree
- 5 - 5
- INT - INT
- number of angular basis functions for three-body potential - angular degree for three-body potential
* - fourbody_snap_twojmax * - fourbody_number_radial_basis_functions
- 4
- INT
- number of radial basis functions for four-body potential
* - fourbody_angular_degree
- 3
- INT
- angular degree for four-body potential
* - fivebody_number_radial_basis_functions
- 0 - 0
- INT - INT
- band limit for SNAP bispectrum components (0,2,4,6,8... allowed) - number of radial basis functions for five-body potential
* - fourbody_snap_chemflag * - fivebody_angular_degree
- 0 - 0
- BOOL - INT
- turns on/off the explicit multi-element variant of the SNAP bispectrum components - angular degree for five-body potential
* - quadratic_pod_potential * - sixbody_number_radial_basis_functions
- 0 - 0
- BOOL - INT
- turns on/off quadratic POD potential - number of radial basis functions for six-body potential
* - sixbody_angular_degree
- 0
- INT
- angular degree for six-body potential
* - sevenbody_number_radial_basis_functions
- 0
- INT
- number of radial basis functions for seven-body potential
* - sevenbody_angular_degree
- 0
- INT
- angular degree for seven-body potential
Note that both the number of radial basis functions and angular degree
must decrease as the body order increases. The next table describes all
keywords that can be used in the second input file (i.e. ``Ta_data.pod``
in the example above):
All keywords except *species* have default values. If a keyword is not
set in the input file, its default value is used. The next table
describes all keywords that can be used in the second input file
(i.e. ``Ta_data.pod`` in the example above):
.. list-table:: .. list-table::
:header-rows: 1 :header-rows: 1
@ -125,6 +161,10 @@ describes all keywords that can be used in the second input file
- "" - ""
- STRING - STRING
- specifies the path to test data files in double quotes - specifies the path to test data files in double quotes
* - path_to_environment_configuration_set
- ""
- STRING
- specifies the path to environment configuration files in double quotes
* - fraction_training_data_set * - fraction_training_data_set
- 1.0 - 1.0
- REAL - REAL
@ -133,6 +173,14 @@ describes all keywords that can be used in the second input file
- 0 - 0
- BOOL - BOOL
- turns on/off randomization of the training set - turns on/off randomization of the training set
* - fraction_test_data_set
- 1.0
- REAL
- a real number (<= 1.0) specifies the fraction of the test set used to validate POD
* - randomize_test_data_set
- 0
- BOOL
- turns on/off randomization of the test set
* - fitting_weight_energy * - fitting_weight_energy
- 100.0 - 100.0
- REAL - REAL
@ -161,6 +209,10 @@ describes all keywords that can be used in the second input file
- 8 - 8
- INT - INT
- number of digits after the decimal points for numbers in the coefficient file - number of digits after the decimal points for numbers in the coefficient file
* - group_weights
- global
- STRING
- ``table`` uses group weights defined for each group named by filename
All keywords except *path_to_training_data_set* have default values. If All keywords except *path_to_training_data_set* have default values. If
a keyword is not set in the input file, its default value is used. After a keyword is not set in the input file, its default value is used. After
@ -172,14 +224,44 @@ successful training, a number of output files are produced, if enabled:
* ``<basename>_test_analysis.pod`` reports detailed errors for all test configurations * ``<basename>_test_analysis.pod`` reports detailed errors for all test configurations
* ``<basename>_coefficients.pod`` contains the coefficients of the POD potential * ``<basename>_coefficients.pod`` contains the coefficients of the POD potential
After training the POD potential, ``Ta_param.pod`` and ``<basename>_coefficients.pod`` After training the POD potential, ``Ta_param.pod`` and
are the two files needed to use the POD potential in LAMMPS. See ``<basename>_coefficients.pod`` are the two files needed to use the POD
:doc:`pair_style pod <pair_pod>` for using the POD potential. Examples potential in LAMMPS. See :doc:`pair_style pod <pair_pod>` for using the
about training and using POD potentials are found in the directory POD potential. Examples about training and using POD potentials are
lammps/examples/PACKAGES/pod. found in the directory lammps/examples/PACKAGES/pod and the Github repo
https://github.com/cesmix-mit/pod-examples.
Parameterized Potential Energy Surface Loss Function Group Weights
"""""""""""""""""""""""""""""""""""""" ^^^^^^^^^^^^^^^^^^^^^^^^^^^
The *group_weights* keyword in the ``data.pod`` file is responsible for
weighting certain groups of configurations in the loss function. For
example:
.. code-block:: LAMMPS
group_weights table
Displaced_A15 100.0 1.0
Displaced_BCC 100.0 1.0
Displaced_FCC 100.0 1.0
Elastic_BCC 100.0 1.0
Elastic_FCC 100.0 1.0
GSF_110 100.0 1.0
GSF_112 100.0 1.0
Liquid 100.0 1.0
Surface 100.0 1.0
Volume_A15 100.0 1.0
Volume_BCC 100.0 1.0
Volume_FCC 100.0 1.0
This will apply an energy weight of ``100.0`` and a force weight of
``1.0`` for all groups in the ``Ta`` example. The groups are named by
their respective filename. If certain groups are left out of this table,
then the globally defined weights from the ``fitting_weight_energy`` and
``fitting_weight_force`` keywords will be used.
POD Potential
"""""""""""""
We consider a multi-element system of *N* atoms with :math:`N_{\rm e}` We consider a multi-element system of *N* atoms with :math:`N_{\rm e}`
unique elements. We denote by :math:`\boldsymbol r_n` and :math:`Z_n` unique elements. We denote by :math:`\boldsymbol r_n` and :math:`Z_n`
@ -187,535 +269,82 @@ position vector and type of an atom *n* in the system,
respectively. Note that we have :math:`Z_n \in \{1, \ldots, N_{\rm e} respectively. Note that we have :math:`Z_n \in \{1, \ldots, N_{\rm e}
\}`, :math:`\boldsymbol R = (\boldsymbol r_1, \boldsymbol r_2, \ldots, \}`, :math:`\boldsymbol R = (\boldsymbol r_1, \boldsymbol r_2, \ldots,
\boldsymbol r_N) \in \mathbb{R}^{3N}`, and :math:`\boldsymbol Z = (Z_1, \boldsymbol r_N) \in \mathbb{R}^{3N}`, and :math:`\boldsymbol Z = (Z_1,
Z_2, \ldots, Z_N) \in \mathbb{N}^{N}`. The potential energy surface Z_2, \ldots, Z_N) \in \mathbb{N}^{N}`. The total energy of the
(PES) of the system can be expressed as a many-body expansion of the POD potential is expressed as :math:`E(\boldsymbol R, \boldsymbol Z) =
form \sum_{i=1}^N E_i(\boldsymbol R_i, \boldsymbol Z_i)`, where
.. math:: .. math::
E(\boldsymbol R, \boldsymbol Z, \boldsymbol{\eta}, \boldsymbol{\mu}) \ = \ & \sum_{i} V^{(1)}(\boldsymbol r_i, Z_i, \boldsymbol \mu^{(1)} ) + \frac12 \sum_{i,j} V^{(2)}(\boldsymbol r_i, \boldsymbol r_j, Z_i, Z_j, \boldsymbol \eta, \boldsymbol \mu^{(2)}) \\ E_i(\boldsymbol R_i, \boldsymbol Z_i) \ = \ \sum_{m=1}^M c_m \mathcal{D}_{im}(\boldsymbol R_i, \boldsymbol Z_i)
& + \frac16 \sum_{i,j,k} V^{(3)}(\boldsymbol r_i, \boldsymbol r_j, \boldsymbol r_k, Z_i, Z_j, Z_k, \boldsymbol \eta, \boldsymbol \mu^{(3)}) + \ldots
where :math:`V^{(1)}` is the one-body potential often used for Here :math:`c_m` are trainable coefficients and
representing external field or energy of isolated elements, and the :math:`\mathcal{D}_{im}(\boldsymbol R_i, \boldsymbol Z_i)` are per-atom
higher-body potentials :math:`V^{(2)}, V^{(3)}, \ldots` are symmetric, POD descriptors. Summing the per-atom descriptors over :math:`i` yields
uniquely defined, and zero if two or more indices take identical values. the global descriptors :math:`d_m(\boldsymbol R, \boldsymbol Z) =
The superscript on each potential denotes its body order. Each *q*-body \sum_{i=1}^N \mathcal{D}_{im}(\boldsymbol R_i, \boldsymbol Z_i)`. It
potential :math:`V^{(q)}` depends on :math:`\boldsymbol \mu^{(q)}` which thus follows that :math:`E(\boldsymbol R, \boldsymbol Z) = \sum_{m=1}^M
are sets of parameters to fit the PES. Note that :math:`\boldsymbol \mu` c_m d_m(\boldsymbol R, \boldsymbol Z)`.
is a collection of all potential parameters :math:`\boldsymbol
\mu^{(1)}`, :math:`\boldsymbol \mu^{(2)}`, :math:`\boldsymbol The per-atom POD descriptors include one, two, three, four, five, six,
\mu^{(3)}`, etc, and that :math:`\boldsymbol \eta` is a set of and seven-body descriptors, which can be specified in the first input
hyper-parameters such as inner cut-off radius :math:`r_{\rm in}` and file. Furthermore, the per-atom POD descriptors also depend on the
outer cut-off radius :math:`r_{\rm cut}`. number of environment clusters specified in the first input file.
Please see :ref:`(Nguyen2024) <Nguyen20242a>` and :ref:`(Nguyen and Sema)
Interatomic potentials rely on parameters to learn relationship between <Nguyen20243a>` for the detailed description of the per-atom POD
atomic environments and interactions. Since interatomic potentials are descriptors.
approximations by nature, their parameters need to be set to some
reference values or fitted against data by necessity. Typically,
potential fitting finds optimal parameters, :math:`\boldsymbol \mu^*`,
to minimize a certain loss function of the predicted quantities and
data. Since the fitted potential depends on the data set used to fit it,
different data sets will yield different optimal parameters and thus
different fitted potentials. When fitting the same functional form on
*Q* different data sets, we would obtain *Q* different optimized
potentials, :math:`E(\boldsymbol R,\boldsymbol Z, \boldsymbol \eta,
\boldsymbol \mu_q^*), 1 \le q \le Q`. Consequently, there exist many
different sets of optimized parameters for empirical interatomic
potentials.
Instead of optimizing the potential parameters, inspired by the reduced
basis method :ref:`(Grepl) <Grepl20072>` for parameterized partial
differential equations, we view the parameterized PES as a parametric
manifold of potential energies
.. math::
\mathcal{M} = \{E(\boldsymbol R, \boldsymbol Z, \boldsymbol \eta, \boldsymbol \mu) \ | \ \boldsymbol \mu \in \Omega^{\boldsymbol \mu} \}
where :math:`\Omega^{\boldsymbol \mu}` is a parameter domain in which
:math:`\boldsymbol \mu` resides. The parametric manifold
:math:`\mathcal{M}` contains potential energy surfaces for all values of
:math:`\boldsymbol \mu \in \Omega^{\boldsymbol \mu}`. Therefore, the
parametric manifold yields a much richer and more transferable atomic
representation than any particular individual PES :math:`E(\boldsymbol
R, \boldsymbol Z, \boldsymbol \eta, \boldsymbol \mu^*)`.
We propose specific forms of the parameterized potentials for one-body,
two-body, and three-body interactions. We apply the Karhunen-Loeve
expansion to snapshots of the parameterized potentials to obtain sets of
orthogonal basis functions. These basis functions are aggregated
according to the chemical elements of atoms, thus leading to
multi-element proper orthogonal descriptors.
Proper Orthogonal Descriptors
"""""""""""""""""""""""""""""
Proper orthogonal descriptors are finger prints characterizing the
radial and angular distribution of a system of atoms. The detailed
mathematical definition is given in the paper by Nguyen and Rohskopf
:ref:`(Nguyen) <Nguyen20222>`.
The descriptors for the one-body interaction are used to capture energy
of isolated elements and defined as follows
.. math::
D_{ip}^{(1)} = \left\{
\begin{array}{ll}
1, & \mbox{if } Z_i = p \\
0, & \mbox{if } Z_i \neq p
\end{array}
\right.
for :math:`1 \le i \le N, 1 \le p \le N_{\rm e}`. The number of one-body
descriptors per atom is equal to the number of elements. The one-body
descriptors are independent of atom positions, but dependent on atom
types. The one-body descriptors are active only when the keyword
*onebody* is set to 1.
We adopt the usual assumption that the direct interaction between two
atoms vanishes smoothly when their distance is greater than the outer
cutoff distance :math:`r_{\rm cut}`. Furthermore, we assume that two
atoms can not get closer than the inner cutoff distance :math:`r_{\rm
in}` due to the Pauli repulsion principle. Let :math:`r \in (r_{\rm in},
r_{\rm cut})`, we introduce the following parameterized radial functions
.. math::
\phi(r, r_{\rm in}, r_{\rm cut}, \alpha, \beta) = \frac{\sin (\alpha \pi x) }{r - r_{\rm in}}, \qquad \varphi(r, \gamma) = \frac{1}{r^\gamma} ,
where the scaled distance function :math:`x` is defined below to enrich the two-body manifold
.. math::
x(r, r_{\rm in}, r_{\rm cut}, \beta) = \frac{e^{-\beta(r - r_{\rm in})/(r_{\rm cut} - r_{\rm in})} - 1}{e^{-\beta} - 1} .
We introduce the following function as a convex combination of the two functions
.. math::
\psi(r, r_{\rm in}, r_{\rm cut}, \alpha, \beta, \gamma, \kappa) = \kappa \phi(r, r_{\rm in}, r_{\rm cut}, \alpha, \beta) + (1- \kappa) \varphi(r, \gamma) .
We see that :math:`\psi` is a function of distance :math:`r`, cut-off
distances :math:`r_{\rm in}` and :math:`r_{\rm cut}`, and parameters
:math:`\alpha, \beta, \gamma, \kappa`. Together these parameters allow
the function :math:`\psi` to characterize a diverse spectrum of two-body
interactions within the cut-off interval :math:`(r_{\rm in}, r_{\rm
cut})`.
Next, we introduce the following parameterized potential
.. math::
W^{(2)}(r_{ij}, \boldsymbol \eta, \boldsymbol \mu^{(2)}) = f_{\rm c}(r_{ij}, \boldsymbol \eta) \psi(r_{ij}, \boldsymbol \eta, \boldsymbol \mu^{(2)})
where :math:`\eta_1 = r_{\rm in}, \eta_2 = r_{\rm cut}, \mu_1^{(2)} =
\alpha, \mu_2^{(2)} = \beta, \mu_3^{(2)} = \gamma`, and
:math:`\mu_4^{(2)} = \kappa`. Here the cut-off function :math:`f_{\rm
c}(r_{ij}, \boldsymbol \eta)` proposed in [refs] is used to ensure the
smooth vanishing of the potential and its derivative for :math:`r_{ij}
\ge r_{\rm cut}`:
.. math::
f_{\rm c}(r_{ij}, r_{\rm in}, r_{\rm cut}) = \exp \left(1 -\frac{1}{\sqrt{\left(1 - \frac{(r-r_{\rm in})^3}{(r_{\rm cut} - r_{\rm in})^3} \right)^2 + 10^{-6}}} \right)
Based on the parameterized potential, we form a set of snapshots as
follows. We assume that we are given :math:`N_{\rm s}` parameter tuples
:math:`\boldsymbol \mu^{(2)}_\ell, 1 \le \ell \le N_{\rm s}`. We
introduce the following set of snapshots on :math:`(r_{\rm in}, r_{\rm
cut})`:
.. math::
\xi_\ell(r_{ij}, \boldsymbol \eta) = W^{(2)}(r_{ij}, \boldsymbol \eta, \boldsymbol \mu^{(2)}_\ell), \quad \ell = 1, \ldots, N_{\rm s} .
To ensure adequate sampling of the PES for different parameters, we
choose :math:`N_{\rm s}` parameter points :math:`\boldsymbol
\mu^{(2)}_\ell = (\alpha_\ell, \beta_\ell, \gamma_\ell, \kappa_\ell), 1
\le \ell \le N_{\rm s}` as follows. The parameters :math:`\alpha \in [1,
N_\alpha]` and :math:`\gamma \in [1, N_\gamma]` are integers, where
:math:`N_\alpha` and :math:`N_\gamma` are the highest degrees for
:math:`\alpha` and :math:`\gamma`, respectively. We next choose
:math:`N_\beta` different values of :math:`\beta` in the interval
:math:`[\beta_{\min}, \beta_{\max}]`, where :math:`\beta_{\min} = 0` and
:math:`\beta_{\max} = 4`. The parameter :math:`\kappa` can be set either
0 or 1. Hence, the total number of parameter points is :math:`N_{\rm s}
= N_\alpha N_\beta + N_\gamma`. Although :math:`N_\alpha, N_\beta,
N_\gamma` can be chosen conservatively large, we find that
:math:`N_\alpha = 6, N_\beta = 3, N_\gamma = 8` are adequate for most
problems. Note that :math:`N_\alpha` and :math:`N_\gamma` correspond to
*bessel_polynomial_degree* and *inverse_polynomial_degree*,
respectively.
We employ the Karhunen-Loeve (KL) expansion to generate an orthogonal
basis set which is known to be optimal for representation of the
snapshot family :math:`\{\xi_\ell\}_{\ell=1}^{N_{\rm s}}`. The two-body
orthogonal basis functions are computed as follows
.. math::
U^{(2)}_m(r_{ij}, \boldsymbol \eta) = \sum_{\ell = 1}^{N_{\rm s}} A_{\ell m}(\boldsymbol \eta) \, \xi_\ell(r_{ij}, \boldsymbol \eta), \qquad m = 1, \ldots, N_{\rm 2b} ,
where the matrix :math:`\boldsymbol A \in \mathbb{R}^{N_{\rm s} \times
N_{\rm s}}` consists of eigenvectors of the eigenvalue problem
.. math::
\boldsymbol C \boldsymbol a = \lambda \boldsymbol a
with the entries of :math:`\boldsymbol C \in \mathbb{R}^{N_{\rm s} \times N_{\rm s}}` being given by
.. math::
C_{ij} = \frac{1}{N_{\rm s}} \int_{r_{\rm in}}^{r_{\rm cut}} \xi_i(x, \boldsymbol \eta) \xi_j(x, \boldsymbol \eta) dx, \quad 1 \le i, j \le N_{\rm s}
Note that the eigenvalues :math:`\lambda_\ell, 1 \le \ell \le N_{\rm
s}`, are ordered such that :math:`\lambda_1 \ge \lambda_2 \ge \ldots \ge
\lambda_{N_{\rm s}}`, and that the matrix :math:`\boldsymbol A` is
pe-computed and stored for any given :math:`\boldsymbol \eta`. Owing to
the rapid convergence of the KL expansion, only a small number of
orthogonal basis functions is needed to obtain accurate
approximation. The value of :math:`N_{\rm 2b}` corresponds to
*twobody_number_radial_basis_functions*.
The two-body proper orthogonal descriptors at each atom *i* are computed
by summing the orthogonal basis functions over the neighbors of atom *i*
and numerating on the atom types as follows
.. math::
D^{(2)}_{im l(p, q) }(\boldsymbol \eta) = \left\{
\begin{array}{ll}
\displaystyle \sum_{\{j | Z_j = q\}} U^{(2)}_m(r_{ij}, \boldsymbol \eta), & \mbox{if } Z_i = p \\
0, & \mbox{if } Z_i \neq p
\end{array}
\right.
for :math:`1 \le i \le N, 1 \le m \le N_{\rm 2b}, 1 \le q, p \le N_{\rm
e}`. Here :math:`l(p,q)` is a symmetric index mapping such that
.. math::
l(p,q) = \left\{
\begin{array}{ll}
q + (p-1) N_{\rm e} - p(p-1)/2, & \mbox{if } q \ge p \\
p + (q-1) N_{\rm e} - q(q-1)/2, & \mbox{if } q < p .
\end{array}
\right.
The number of two-body descriptors per atom is thus :math:`N_{\rm 2b}
N_{\rm e}(N_{\rm e}+1)/2`.
It is important to note that the orthogonal basis functions do not
depend on the atomic numbers :math:`Z_i` and :math:`Z_j`. Therefore, the
cost of evaluating the basis functions and their derivatives with
respect to :math:`r_{ij}` is independent of the number of elements
:math:`N_{\rm e}`. Consequently, even though the two-body proper
orthogonal descriptors depend on :math:`\boldsymbol Z`, their
computational complexity is independent of :math:`N_{\rm e}`.
In order to provide proper orthogonal descriptors for three-body
interactions, we need to introduce a three-body parameterized
potential. In particular, the three-body potential is defined as a
product of radial and angular functions as follows
.. math::
W^{(3)}(r_{ij}, r_{ik}, \theta_{ijk}, \boldsymbol \eta, \boldsymbol \mu^{(3)}) = \psi(r_{ij}, r_{\rm min}, r_{\rm max}, \alpha, \beta, \gamma, \kappa) f_{\rm c}(r_{ij}, r_{\rm min}, r_{\rm max}) \\
\psi(r_{ik}, r_{\rm min}, r_{\rm max}, \alpha, \beta, \gamma, \kappa) f_{\rm c}(r_{ik}, r_{\rm min}, r_{\rm max}) \\
\cos (\sigma \theta_{ijk} + \zeta)
where :math:`\sigma` is the periodic multiplicity, :math:`\zeta` is the
equilibrium angle, :math:`\boldsymbol \mu^{(3)} = (\alpha, \beta,
\gamma, \kappa, \sigma, \zeta)`. The three-body potential provides an
angular fingerprint of the atomic environment through the bond angles
:math:`\theta_{ijk}` formed with each pair of neighbors :math:`j` and
:math:`k`. Compared to the two-body potential, the three-body potential
has two extra parameters :math:`(\sigma, \zeta)` associated with the
angular component.
Let :math:`\boldsymbol \varrho = (\alpha, \beta, \gamma, \kappa)`. We
assume that we are given :math:`L_{\rm r}` parameter tuples
:math:`\boldsymbol \varrho_\ell, 1 \le \ell \le L_{\rm r}`. We
introduce the following set of snapshots on :math:`(r_{\min},
r_{\max})`:
.. math::
\zeta_\ell(r_{ij}, r_{\rm min}, r_{\rm max} ) = \psi(r_{ij}, r_{\rm min}, r_{\rm max}, \boldsymbol \varrho_\ell) f_{\rm c}(r_{ij}, r_{\rm min}, r_{\rm max}), \quad 1 \le \ell \le L_{\rm r} .
We apply the Karhunen-Loeve (KL) expansion to this set of snapshots to
obtain orthogonal basis functions as follows
.. math::
U^{r}_m(r_{ij}, r_{\rm min}, r_{\rm max} ) = \sum_{\ell = 1}^{L_{\rm r}} A_{\ell m} \, \zeta_\ell(r_{ij}, r_{\rm min}, r_{\rm max} ), \qquad m = 1, \ldots, N_{\rm r} ,
where the matrix :math:`\boldsymbol A \in \mathbb{R}^{L_{\rm r} \times L_{\rm r}}` consists
of eigenvectors of the eigenvalue problem. For the parameterized angular function,
we consider angular basis functions
.. math::
U^{a}_n(\theta_{ijk}) = \cos ((n-1) \theta_{ijk}), \qquad n = 1,\ldots, N_{\rm a},
where :math:`N_{\rm a}` is the number of angular basis functions. The orthogonal
basis functions for the parameterized potential are computed as follows
.. math::
U^{(3)}_{mn}(r_{ij}, r_{ik}, \theta_{ijk}, \boldsymbol \eta) = U^{r}_m(r_{ij}, \boldsymbol \eta) U^{r}_m(r_{ik}, \boldsymbol \eta) U^{a}_n(\theta_{ijk}),
for :math:`1 \le m \le N_{\rm r}, 1 \le n \le N_{\rm a}`. The number of three-body
orthogonal basis functions is equal to :math:`N_{\rm 3b} = N_{\rm r} N_{\rm a}` and
independent of the number of elements. The value of :math:`N_{\rm r}` corresponds to
*threebody_number_radial_basis_functions*, while that of :math:`N_{\rm a}` to
*threebody_number_angular_basis_functions*.
The three-body proper orthogonal descriptors at each atom *i*
are obtained by summing over the neighbors *j* and *k* of atom *i* as
.. math::
D^{(3)}_{imn \ell(p, q, s)}(\boldsymbol \eta) = \left\{
\begin{array}{ll}
\displaystyle \sum_{\{j | Z_j = q\}} \sum_{\{k | Z_k = s\}} U^{(3)}_{mn}(r_{ij}, r_{ik}, \theta_{ijk}, \boldsymbol \eta), & \mbox{if } Z_i = p \\
0, & \mbox{if } Z_i \neq p
\end{array}
\right.
for :math:`1 \le i \le N, 1 \le m \le N_{\rm r}, 1 \le n \le N_{\rm a}, 1 \le q, p, s \le N_{\rm e}`,
where
.. math::
\ell(p,q,s) = \left\{
\begin{array}{ll}
s + (q-1) N_{\rm e} - q(q-1)/2 + (p-1)N_{\rm e}(1+N_{\rm e})/2 , & \mbox{if } s \ge q \\
q + (s-1) N_{\rm e} - s(s-1)/2 + (p-1)N_{\rm e}(1+N_{\rm e})/2, & \mbox{if } s < q .
\end{array}
\right.
The number of three-body descriptors per atom is thus :math:`N_{\rm 3b} N_{\rm e}^2(N_{\rm e}+1)/2`.
While the number of three-body PODs is cubic function of the number of elements,
the computational complexity of the three-body PODs is independent of the number of elements.
Four-Body SNAP Descriptors
""""""""""""""""""""""""""
In addition to the proper orthogonal descriptors described above, we also employ
the spectral neighbor analysis potential (SNAP) descriptors. 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 described in
:doc:`compute snap <compute_sna_atom>`. 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^{\rm SNAP} = \sum_{k=1}^{N_{\rm 4b}} \sum_{p=1}^{N_{\rm e}} c_{kp}^{(4)} D_{ikp}^{(4)}
where the SNAP descriptors are related to the bispectrum components by
.. math::
D^{(4)}_{ikp} = \left\{
\begin{array}{ll}
\displaystyle B_{ik}, & \mbox{if } Z_i = p \\
0, & \mbox{if } Z_i \neq p
\end{array}
\right.
Here :math:`B_{ik}` is the *k*\ -th bispectrum component of atom *i*. The number of
bispectrum components :math:`N_{\rm 4b}` depends on the value of *fourbody_snap_twojmax* :math:`= 2 J_{\rm max}`
and *fourbody_snap_chemflag*. If *fourbody_snap_chemflag* = 0
then :math:`N_{\rm 4b} = (J_{\rm max}+1)(J_{\rm max}+2)(J_{\rm max}+1.5)/3`.
If *fourbody_snap_chemflag* = 1 then :math:`N_{\rm 4b} = N_{\rm e}^3 (J_{\rm max}+1)(J_{\rm max}+2)(J_{\rm max}+1.5)/3`.
The bispectrum calculation is described in more detail in :doc:`compute sna/atom <compute_sna_atom>`.
Linear Proper Orthogonal Descriptor Potentials
""""""""""""""""""""""""""""""""""""""""""""""
The proper orthogonal descriptors and SNAP descriptors are used to define the atomic energies
in the following expansion
.. math::
E_{i}(\boldsymbol \eta) = \sum_{p=1}^{N_{\rm e}} c^{(1)}_p D^{(1)}_{ip} + \sum_{m=1}^{N_{\rm 2b}} \sum_{l=1}^{N_{\rm e}(N_{\rm e}+1)/2} c^{(2)}_{ml} D^{(2)}_{iml}(\boldsymbol \eta) + \sum_{m=1}^{N_{\rm r}} \sum_{n=1}^{N_{\rm a}} \sum_{\ell=1}^{N_{\rm e}^2(N_{\rm e}+1)/2} c^{(3)}_{mn\ell} D^{(3)}_{imn\ell}(\boldsymbol \eta) + \sum_{k=1}^{N_{\rm 4b}} \sum_{p=1}^{N_{\rm e}} c_{kp}^{(4)} D_{ikp}^{(4)}(\boldsymbol \eta),
where :math:`D^{(1)}_{ip}, D^{(2)}_{iml}, D^{(3)}_{imn\ell}, D^{(4)}_{ikp}` are the one-body, two-body, three-body, four-body descriptors,
respectively, and :math:`c^{(1)}_p, c^{(2)}_{ml}, c^{(3)}_{mn\ell}, c^{(4)}_{kp}` are their respective expansion
coefficients. In a more compact notation that implies summation over descriptor indices
the atomic energies can be written as
.. math::
E_i(\boldsymbol \eta) = \sum_{m=1}^{N_{\rm e}} c^{(1)}_m D^{(1)}_{im} + \sum_{m=1}^{N_{\rm d}^{(2)}} c^{(2)}_k D^{(2)}_{im} + \sum_{m=1}^{N_{\rm d}^{(3)}} c^{(3)}_m D^{(3)}_{im} + \sum_{m=1}^{N_{\rm d}^{(4)}} c^{(4)}_m D^{(4)}_{im}
where :math:`N_{\rm d}^{(2)} = N_{\rm 2b} N_{\rm e} (N_{\rm e}+1)/2`,
:math:`N_{\rm d}^{(3)} = N_{\rm 3b} N_{\rm e}^2 (N_{\rm e}+1)/2`, and
:math:`N_{\rm d}^{(4)} = N_{\rm 4b} N_{\rm e}` are
the number of two-body, three-body, and four-body descriptors, respectively.
The potential energy is then obtained by summing local atomic energies :math:`E_i`
for all atoms :math:`i` in the system
.. math::
E(\boldsymbol \eta) = \sum_{i}^N E_{i}(\boldsymbol \eta)
Because the descriptors are one-body, two-body, and three-body terms,
the resulting POD potential is a three-body PES. We can express the potential
energy as a linear combination of the global descriptors as follows
.. math::
E(\boldsymbol \eta) = \sum_{m=1}^{N_{\rm e}} c^{(1)}_m d^{(1)}_{m} + \sum_{m=1}^{N_{\rm d}^{(2)}} c^{(2)}_m d^{(2)}_{m} + \sum_{m=1}^{N_{\rm d}^{(3)}} c^{(3)}_m d^{(3)}_{m} + \sum_{m=1}^{N_{\rm d}^{(4)}} c^{(4)}_m d^{(4)}_{m}
where the global descriptors are given by
.. math::
d_{m}^{(1)}(\boldsymbol \eta) = \sum_{i=1}^N D_{im}^{(1)}(\boldsymbol \eta), \quad d_{m}^{(2)}(\boldsymbol \eta) = \sum_{i=1}^N D_{im}^{(2)}(\boldsymbol \eta), \quad d_{m}^{(3)}(\boldsymbol \eta) = \sum_{i=1}^N D_{im}^{(3)}(\boldsymbol \eta), \quad d_{m}^{(4)}(\boldsymbol \eta) = \sum_{i=1}^N D_{im}^{(4)}(\boldsymbol \eta)
Hence, we obtain the atomic forces as
.. math::
\boldsymbol F = -\nabla E(\boldsymbol \eta) = - \sum_{m=1}^{N_{\rm d}^{(2)}} c^{(2)}_m \nabla d_m^{(2)} - \sum_{m=1}^{N_{\rm d}^{(3)}} c^{(3)}_m \nabla d_m^{(3)} - \sum_{m=1}^{N_{\rm d}^{(4)}} c^{(4)}_m \nabla d_m^{(4)}
where :math:`\nabla d_m^{(2)}`, :math:`\nabla d_m^{(3)}` and :math:`\nabla d_m^{(4)}` are derivatives of the two-body
three-body, and four-body global descriptors with respect to atom positions, respectively.
Note that since the first-body global descriptors are constant, their derivatives are zero.
Quadratic Proper Orthogonal Descriptor Potentials
"""""""""""""""""""""""""""""""""""""""""""""""""
We recall two-body PODs :math:`D^{(2)}_{ik}, 1 \le k \le N_{\rm d}^{(2)}`,
and three-body PODs :math:`D^{(3)}_{im}, 1 \le m \le N_{\rm d}^{(3)}`,
with :math:`N_{\rm d}^{(2)} = N_{\rm 2b} N_{\rm e} (N_{\rm e}+1)/2` and
:math:`N_{\rm d}^{(3)} = N_{\rm 3b} N_{\rm e}^2 (N_{\rm e}+1)/2` being
the number of descriptors per atom for the two-body PODs and three-body PODs,
respectively. We employ them to define a new set of atomic descriptors as follows
.. math::
D^{(2*3)}_{ikm} = \frac{1}{2N}\left( D^{(2)}_{ik} \sum_{j=1}^N D^{(3)}_{jm} + D^{(3)}_{im} \sum_{j=1}^N D^{(2)}_{jk} \right)
for :math:`1 \le i \le N, 1 \le k \le N_{\rm d}^{(2)}, 1 \le m \le N_{\rm d}^{(3)}`.
The new descriptors are four-body because they involve central atom :math:`i` together
with three neighbors :math:`j, k` and :math:`l`. The total number of new descriptors per atom is equal to
.. math::
N_{\rm d}^{(2*3)} = N_{\rm d}^{(2)} * N_{\rm d}^{(3)} = N_{\rm 2b} N_{\rm 3b} N_{\rm e}^3 (N_{\rm e}+1)^2/4 .
The new global descriptors are calculated as
.. math::
d^{(2*3)}_{km} = \sum_{i=1}^N D^{(2*3)}_{ikm} = \left( \sum_{i=1}^N D^{(2)}_{ik} \right) \left( \sum_{i=1}^N D^{(3)}_{im} \right) = d^{(2)}_{k} d^{(3)}_m,
for :math:`1 \le k \le N_{\rm d}^{(2)}, 1 \le m \le N_{\rm d}^{(3)}`. Hence, the gradient
of the new global descriptors with respect to atom positions is calculated as
.. math::
\nabla d^{(2*3)}_{km} = d^{(3)}_m \nabla d^{(2)}_{k} + d^{(2)}_{k} \nabla d^{(3)}_m, \quad 1 \le k \le N_{\rm d}^{(2)}, 1 \le m \le N_{\rm d}^{(3)} .
The quadratic POD potential is defined as a linear combination of the
original and new global descriptors as follows
.. math::
E^{(2*3)} = \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} c^{(2*3)}_{km} d^{(2*3)}_{km} .
It thus follows that
.. math::
E^{(2*3)} = 0.5 \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} \left( \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} c^{(2*3)}_{km} d_m^{(3)} \right) d_k^{(2)} + 0.5 \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} \left( \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} c^{(2*3)}_{km} d_k^{(2)} \right) d_m^{(3)} ,
which is simplified to
.. math::
E^{(2*3)} = 0.5 \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} b_k^{(2)} d_k^{(2)} + 0.5 \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} b_m^{(3)} d_m^{(3)}
where
.. math::
b_k^{(2)} & = \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} c^{(2*3)}_{km} d_m^{(3)}, \quad k = 1,\ldots, N_{\rm 2d}^{(2*3)}, \\
b_m^{(3)} & = \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} c^{(2*3)}_{km} d_k^{(2)}, \quad m = 1,\ldots, N_{\rm 3d}^{(2*3)} .
The quadratic POD potential results in the following atomic forces
.. math::
\boldsymbol F^{(2*3)} = - \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} c^{(2*3)}_{km} \nabla d^{(2*3)}_{km} .
It can be shown that
.. math::
\boldsymbol F^{(2*3)} = - \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} b^{(2)}_k \nabla d_k^{(2)} - \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} b^{(3)}_m \nabla d_m^{(3)} .
The calculation of the atomic forces for the quadratic POD potential
only requires the extra calculation of :math:`b_k^{(2)}` and :math:`b_m^{(3)}` which can be negligible.
As a result, the quadratic POD potential does not increase the computational complexity.
Training Training
"""""""" """"""""
POD potentials are trained using the least-squares regression against A POD potential is trained using the least-squares regression against
density functional theory (DFT) data. Let :math:`J` be the number of density functional theory (DFT) data. Let :math:`J` be the number of
training configurations, with :math:`N_j` being the number of atoms in training configurations, with :math:`N_j` being the number of atoms in
the j-th configuration. Let :math:`\{E^{\star}_j\}_{j=1}^{J}` and the j-th configuration. The training configurations are extracted from
:math:`\{\boldsymbol F^{\star}_j\}_{j=1}^{J}` be the DFT energies and the extended XYZ files located in a directory (i.e.,
forces for :math:`J` configurations. Next, we calculate the global path_to_training_data_set in the second input file). Let
descriptors and their derivatives for all training configurations. Let :math:`\{E^{\star}_j\}_{j=1}^{J}` and :math:`\{\boldsymbol
:math:`d_{jm}, 1 \le m \le M`, be the global descriptors associated with F^{\star}_j\}_{j=1}^{J}` be the DFT energies and forces for :math:`J`
the j-th configuration, where :math:`M` is the number of global configurations. Next, we calculate the global descriptors and their
descriptors. We then form a matrix :math:`\boldsymbol A \in derivatives for all training configurations. Let :math:`d_{jm}, 1 \le m
\mathbb{R}^{J \times M}` with entries :math:`A_{jm} = d_{jm}/ N_j` for \le M`, be the global descriptors associated with the j-th
:math:`j=1,\ldots,J` and :math:`m=1,\ldots,M`. Moreover, we form a configuration, where :math:`M` is the number of global descriptors. We
matrix :math:`\boldsymbol B \in \mathbb{R}^{\mathcal{N} \times M}` by then form a matrix :math:`\boldsymbol A \in \mathbb{R}^{J \times M}`
stacking the derivatives of the global descriptors for all training with entries :math:`A_{jm} = d_{jm}/ N_j` for :math:`j=1,\ldots,J` and
configurations from top to bottom, where :math:`\mathcal{N} = :math:`m=1,\ldots,M`. Moreover, we form a matrix :math:`\boldsymbol B
3\sum_{j=1}^{J} N_j`. \in \mathbb{R}^{\mathcal{N} \times M}` by stacking the derivatives of
the global descriptors for all training configurations from top to
bottom, where :math:`\mathcal{N} = 3\sum_{j=1}^{J} N_j`.
The coefficient vector :math:`\boldsymbol c` of the POD potential is The coefficient vector :math:`\boldsymbol c` of the POD potential is
found by solving the following least-squares problem found by solving the following least-squares problem
.. math:: .. math::
{\min}_{\boldsymbol c \in \mathbb{R}^{M}} \ w_E \|\boldsymbol A(\boldsymbol \eta) \boldsymbol c - \bar{\boldsymbol E}^{\star} \|^2 + w_F \|\boldsymbol B(\boldsymbol \eta) \boldsymbol c + \boldsymbol F^{\star} \|^2 + w_R \|\boldsymbol c \|^2, {\min}_{\boldsymbol c \in \mathbb{R}^{M}} \ w_E \|\boldsymbol A \boldsymbol c - \bar{\boldsymbol E}^{\star} \|^2 + w_F \|\boldsymbol B \boldsymbol c + \boldsymbol F^{\star} \|^2 + w_R \|\boldsymbol c \|^2,
where :math:`w_E` and :math:`w_F` are weights for the energy where :math:`w_E` and :math:`w_F` are weights for the energy
(*fitting_weight_energy*) and force (*fitting_weight_force*), (*fitting_weight_energy*) and force (*fitting_weight_force*),
respectively; and :math:`w_R` is the regularization parameter (*fitting_regularization_parameter*). Here :math:`\bar{\boldsymbol E}^{\star} \in respectively; and :math:`w_R` is the regularization parameter
\mathbb{R}^{J}` is a vector of with entries :math:`\bar{E}^{\star}_j = (*fitting_regularization_parameter*). Here :math:`\bar{\boldsymbol
E^{\star}_j/N_j` and :math:`\boldsymbol F^{\star}` is a vector of E}^{\star} \in \mathbb{R}^{J}` is a vector of with entries
:math:`\mathcal{N}` entries obtained by stacking :math:`\{\boldsymbol :math:`\bar{E}^{\star}_j = E^{\star}_j/N_j` and :math:`\boldsymbol
F^{\star}_j\}_{j=1}^{J}` from top to bottom. F^{\star}` is a vector of :math:`\mathcal{N}` entries obtained by
stacking :math:`\{\boldsymbol F^{\star}_j\}_{j=1}^{J}` from top to
bottom.
The training procedure is the same for both the linear and quadratic POD Validation
potentials. However, since the quadratic POD potential has a """"""""""
significantly larger number of the global descriptors, it is more
expensive to train the linear POD potential. This is because the
training of the quadratic POD potential still requires us to calculate
and store the quadratic global descriptors and their
gradient. Furthermore, the quadratic POD potential may require more
training data in order to prevent over-fitting. In order to reduce the
computational cost of fitting the quadratic POD potential and avoid
over-fitting, we can use subsets of two-body and three-body PODs for
constructing the new descriptors.
POD potential can be validated on a test dataset in a directory
specified by setting path_to_test_data_set in the second input file. It
is possible to validate the POD potential after the training is
complete. This is done by providing the coefficient file as an input to
:doc:`fitpod <fitpod_command>`, for example,
.. code-block:: LAMMPS
fitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod
Restrictions Restrictions
"""""""""""" """"""""""""
@ -727,7 +356,11 @@ LAMMPS was built with that package. See the :doc:`Build package
Related commands Related commands
"""""""""""""""" """"""""""""""""
:doc:`pair_style pod <pair_pod>` :doc:`pair_style pod <pair_pod>`,
:doc:`compute pod/atom <compute_pod_atom>`,
:doc:`compute podd/atom <compute_pod_atom>`,
:doc:`compute pod/local <compute_pod_atom>`,
:doc:`compute pod/global <compute_pod_atom>`
Default Default
""""""" """""""
@ -736,10 +369,20 @@ The keyword defaults are also given in the description of the input files.
---------- ----------
.. _Grepl20072: .. _Nguyen20222a:
**(Grepl)** Grepl, Maday, Nguyen, and Patera, ESAIM: Mathematical Modelling and Numerical Analysis 41(3), 575-605, (2007). **(Nguyen and Rohskopf)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023).
.. _Nguyen20232a:
**(Nguyen2023)** Nguyen, Physical Review B, 107(14), 144103, (2023).
.. _Nguyen20242a:
**(Nguyen2024)** Nguyen, Journal of Computational Physics, 113102, (2024).
.. _Nguyen20243a:
**(Nguyen and Sema)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024).
.. _Nguyen20222:
**(Nguyen)** Nguyen and Rohskopf, arXiv preprint arXiv:2209.02362 (2022).

View File

@ -80,7 +80,7 @@ Obtaining i-PI
"""""""""""""" """"""""""""""
Here are the commands to set up a virtual environment and install Here are the commands to set up a virtual environment and install
i-PI into it with all its dependencies via the PyPi repository and i-PI into it with all its dependencies via the PyPI repository and
the pip package manager. the pip package manager.
.. code-block:: sh .. code-block:: sh

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

@ -44,8 +44,8 @@ The label map can also be defined by the :doc:`read_data <read_data>`
command when it reads these sections in a data file: Atom Type Labels, command when it reads these sections in a data file: Atom Type Labels,
Bond Type Labels, etc. See the :doc:`Howto type labels Bond Type Labels, etc. See the :doc:`Howto type labels
<Howto_type_labels>` doc page for a general discussion of how type <Howto_type_labels>` doc page for a general discussion of how type
labels can be used. See :ref:`(Gissinger) <Typelabel>` for a discussion labels can be used. See :ref:`(Gissinger) <Typelabel1>` for a
of the type label implementation in LAMMPS and its uses. discussion of the type label implementation in LAMMPS and its uses.
Valid type labels can contain any alphanumeric character, but must not Valid type labels can contain any alphanumeric character, but must not
start with a number, a '#', or a '*' character. They can contain other start with a number, a '#', or a '*' character. They can contain other
@ -103,6 +103,6 @@ none
----------- -----------
.. _Typelabel: .. _Typelabel1:
**(Gissinger)** J. R. Gissinger, I. Nikiforov, Y. Afshar, B. Waters, M. Choi, D. S. Karls, A. Stukowski, W. Im, H. Heinz, A. Kohlmeyer, and E. B. Tadmor, J Phys Chem B, 128, 3282-3297 (2024). **(Gissinger)** J. R. Gissinger, I. Nikiforov, Y. Afshar, B. Waters, M. Choi, D. S. Karls, A. Stukowski, W. Im, H. Heinz, A. Kohlmeyer, and E. B. Tadmor, J Phys Chem B, 128, 3282-3297 (2024).

View File

@ -112,26 +112,22 @@ Description
These pair styles compute Lennard Jones (LJ) and Coulombic These pair styles compute Lennard Jones (LJ) and Coulombic
interactions with additional switching or shifting functions that ramp interactions with additional switching or shifting functions that ramp
the energy and/or force smoothly to zero between an inner and outer the energy and/or force smoothly to zero between an inner and outer
cutoff. They are implementations of the widely used CHARMM force cutoff. They implement the widely used CHARMM force field, see
field used in the `CHARMM <https://www.charmm.org>`_ MD code (and :doc:`Howto discussion on biomolecular force fields <Howto_bioFF>` for
others). See :ref:`(MacKerell) <pair-MacKerell>` for a description of the details.
CHARMM force field.
The styles with *charmm* (not *charmmfsw* or *charmmfsh*\ ) in their The styles with *charmm* (not *charmmfsw* or *charmmfsh*\ ) in their
name are the older, original LAMMPS implementations. They compute the name are the older, original LAMMPS implementations. They compute the
LJ and Coulombic interactions with an energy switching function (esw, LJ and Coulombic interactions with an energy switching function which
shown in the formula below as S(r)), which ramps the energy smoothly ramps the energy smoothly to zero between the inner and outer cutoff.
to zero between the inner and outer cutoff. This can cause This can cause irregularities in pairwise forces (due to the discontinuous
irregularities in pairwise forces (due to the discontinuous second second derivative of energy at the boundaries of the switching region),
derivative of energy at the boundaries of the switching region), which which in some cases can result in detectable artifacts in an MD simulation.
in some cases can result in detectable artifacts in an MD simulation.
The newer styles with *charmmfsw* or *charmmfsh* in their name replace The newer styles with *charmmfsw* or *charmmfsh* in their name replace
the energy switching with force switching (fsw) and force shifting the energy switching with force switching (fsw) and force shifting
(fsh) functions, for LJ and Coulombic interactions respectively. (fsh) functions, for LJ and Coulombic interactions respectively.
These follow the formulas and description given in
:ref:`(Steinbach) <Steinbach>` and :ref:`(Brooks) <Brooks1>` to minimize these
artifacts.
.. note:: .. note::
@ -152,26 +148,6 @@ artifacts.
the CHARMM force field energies and forces, when using one of these the CHARMM force field energies and forces, when using one of these
two CHARMM pair styles. two CHARMM pair styles.
.. math::
E = & LJ(r) \qquad \qquad \qquad r < r_{\rm in} \\
= & S(r) * LJ(r) \qquad \qquad r_{\rm in} < r < r_{\rm out} \\
= & 0 \qquad \qquad \qquad \qquad r > r_{\rm out} \\
E = & C(r) \qquad \qquad \qquad r < r_{\rm in} \\
= & S(r) * C(r) \qquad \qquad r_{\rm in} < r < r_{\rm out} \\
= & 0 \qquad \qquad \qquad \qquad r > r_{\rm out} \\
LJ(r) = & 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
\left(\frac{\sigma}{r}\right)^6 \right] \\
C(r) = & \frac{C q_i q_j}{ \epsilon r} \\
S(r) = & \frac{ \left[r_{\rm out}^2 - r^2\right]^2
\left[r_{\rm out}^2 + 2r^2 - 3{r_{\rm in}^2}\right]}
{ \left[r_{\rm out}^2 - {r_{\rm in}}^2\right]^3 }
where S(r) is the energy switching function mentioned above for the
*charmm* styles. See the :ref:`(Steinbach) <Steinbach>` paper for the
functional forms of the force switching and force shifting functions
used in the *charmmfsw* and *charmmfsh* styles.
When using the *lj/charmm/coul/charmm styles*, both the LJ and When using the *lj/charmm/coul/charmm styles*, both the LJ and
Coulombic terms require an inner and outer cutoff. They can be the Coulombic terms require an inner and outer cutoff. They can be the
same for both formulas or different depending on whether 2 or 4 same for both formulas or different depending on whether 2 or 4

View File

@ -13,16 +13,11 @@ Syntax
pair_style dpd/coul/slater/long T cutoff_DPD seed lambda cutoff_coul pair_style dpd/coul/slater/long T cutoff_DPD seed lambda cutoff_coul
pair_coeff I J a_IJ Gamma is_charged * T = temperature (temperature units)
* T = temperature (temperature units) (dpd only)
* cutoff_DPD = global cutoff for DPD interactions (distance units) * cutoff_DPD = global cutoff for DPD interactions (distance units)
* seed = random # seed (positive integer) * seed = random # seed (positive integer)
* lambda = decay length of the charge (distance units) * lambda = decay length of the charge (distance units)
* cutoff_coul = real part cutoff for Coulombic interactions (distance units) * cutoff_coul = global cutoff for Coulombic interactions (distance units)
* I,J = numeric atom types, or type labels
* Gamma = DPD Gamma coefficient
* is_charged (boolean) set to yes if I and J are charged beads
Examples Examples
"""""""" """"""""
@ -30,66 +25,90 @@ Examples
.. code-block:: LAMMPS .. code-block:: LAMMPS
pair_style dpd/coul/slater/long 1.0 2.5 34387 0.25 3.0 pair_style dpd/coul/slater/long 1.0 2.5 34387 0.25 3.0
pair_coeff 1 1 78.0 4.5 # not charged by default
pair_coeff 1 1 78.0 4.5 # not charged by default
pair_coeff 2 2 78.0 4.5 yes pair_coeff 2 2 78.0 4.5 yes
Description Description
""""""""""" """""""""""
.. versionadded:: TBD .. versionadded:: 27June2024
Style *dpd/coul/slater/long* computes a force field for dissipative particle dynamics Style *dpd/coul/slater/long* computes a force field for dissipative
(DPD) following the exposition in :ref:`(Groot) <Groot5>` with the addition of particle dynamics (DPD) following the exposition in :ref:`(Groot)
electrostatic interactions. The coulombic forces in mesoscopic models <Groot5>`. It also allows for the use of charged particles in the
employ potentials without explicit excluded-volume interactions. model by adding a long-range Coulombic term to the DPD interactions.
The goal is to prevent artificial ionic pair formation by including a charge The short-range portion of the Coulombics is calculated by this pair
distribution in the Coulomb potential, following the formulation of style. The long-range Coulombics are computed by use of the
:ref:`(Melchor) <Melchor1>`: :doc:`kspace_style <kspace_style>` command, e.g. using the Ewald or
PPPM styles.
The force on bead I due to bead J is given as a sum Coulombic forces in mesoscopic models such as DPD employ potentials
of 4 terms without explicit excluded-volume interactions. The goal is to prevent
artificial ionic pair formation by including a charge distribution in
the Coulomb potential, following the formulation in :ref:`(Melchor1)
<Melchor1>`.
.. note::
This pair style is effectively the combination of the
:doc:`pair_style dpd <pair_dpd>` and :doc:`pair_style
coul/slater/long <pair_coul_slater>` commands, but should be more
efficient (especially on GPUs) than using :doc:`pair_style
hybrid/overlay dpd coul/slater/long <pair_hybrid>`. That is
particularly true for the GPU package version of the pair style since
this version is compatible with computing neighbor lists on the GPU
instead of the CPU as is required for hybrid styles.
In the charged DPD model, the force on bead I due to bead J is given
as a sum of 4 terms:
.. math:: .. math::
\vec{f} = & (F^C + F^D + F^R + F^E) \hat{r_{ij}} \\ \vec{f} = & (F^C + F^D + F^R + F^E) \hat{r_{ij}} \\
F^C = & A w(r) \qquad \qquad \qquad \qquad \qquad r < r_c \\ F^C = & A w(r) \qquad \qquad \qquad \qquad \qquad r < r_{DPD} \\
F^D = & - \gamma w^2(r) (\hat{r_{ij}} \bullet \vec{v}_{ij}) \qquad \qquad r < r_c \\ F^D = & - \gamma w^2(r) (\hat{r_{ij}} \bullet \vec{v}_{ij}) \qquad \qquad r < r_{DPD} \\
F^R = & \sigma w(r) \alpha (\Delta t)^{-1/2} \qquad \qquad \qquad r < r_c \\ F^R = & \sigma w(r) \alpha (\Delta t)^{-1/2} \qquad \qquad \qquad r < r_{DPD} \\
w(r) = & 1 - \frac{r}{r_c} \\ w(r) = & 1 - \frac{r}{r_{DPD}} \\
F^E = & \frac{Cq_iq_j}{\epsilon r^2} \left( 1- exp\left( \frac{2r_{ij}}{\lambda} \right) \left( 1 + \frac{2r_{ij}}{\lambda} \left( 1 + \frac{r_{ij}}{\lambda} \right)\right) \right) F^E = & \frac{C q_iq_j}{\epsilon r^2} \left( 1- exp\left( \frac{2r_{ij}}{\lambda} \right) \left( 1 + \frac{2r_{ij}}{\lambda} \left( 1 + \frac{r_{ij}}{\lambda} \right)\right) \right)
where :math:`F^C` is a conservative force, :math:`F^D` is a dissipative where :math:`F^C` is a conservative force, :math:`F^D` is a
force, :math:`F^R` is a random force, and :math:`F^E` is an electrostatic force. dissipative force, :math:`F^R` is a random force, and :math:`F^E` is
:math:`\hat{r_{ij}}` is a unit vector in the direction an electrostatic force. :math:`\hat{r_{ij}}` is a unit vector in the
:math:`r_i - r_j`, :math:`\vec{v}_{ij}` is direction :math:`r_i - r_j`, :math:`\vec{v}_{ij}` is the vector
the vector difference in velocities of the two atoms :math:`\vec{v}_i - difference in velocities of the two atoms :math:`\vec{v}_i -
\vec{v}_j`, :math:`\alpha` is a Gaussian random number with zero mean \vec{v}_j`, :math:`\alpha` is a Gaussian random number with zero mean
and unit variance, *dt* is the timestep size, and :math:`w(r)` is a and unit variance, *dt* is the timestep size, and :math:`w(r)` is a
weighting factor that varies between 0 and 1. :math:`r_c` is the weighting factor that varies between 0 and 1.
pairwise cutoff. :math:`\sigma` is set equal to :math:`\sqrt{2 k_B T
\gamma}`, where :math:`k_B` is the Boltzmann constant and *T* is the
temperature parameter in the pair_style command.
C is the same Coulomb conversion factor as in the pair_styles
coul/cut and coul/long. In this way the Coulomb
interaction between ions is corrected at small distances r, and
the long-range interactions are computed either by the Ewald or the PPPM technique.
:math:`\sigma` is set equal to :math:`\sqrt{2 k_B T \gamma}`, where
:math:`k_B` is the Boltzmann constant and *T* is the temperature
parameter in the pair_style command.
The following parameters must be defined for each :math:`r_{DPD}` is the pairwise cutoff for the first 3 DPD terms in
pair of atoms types via the :doc:`pair_coeff <pair_coeff>` command as in the formula as specified by *cutoff_DPD*. For the :math:`F^E` term,
the examples above, or in the data file or restart files read by the pairwise interactions within the specified *cutoff_coul* distance are
computed directly; interactions beyond that distance are computed in
reciprocal space. *C* is the same Coulomb conversion factor used in
the Coulombic formulas described on the :doc:`pair_coul <pair_coul>`
doc page.
The following parameters must be defined for each pair of atoms types
via the :doc:`pair_coeff <pair_coeff>` command as in the examples
above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>` :doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands: commands:
* A (force units) * A (force units)
* :math:`\gamma` (force/velocity units) * :math:`\gamma` (force/velocity units)
* is_charged (boolean) * is_charged (optional boolean, default = no)
The *is_charged* parameter is optional and can be specified as *yes* or
.. note:: *no*. *Yes* should be used for interactions between two types of
charged particles. *No* is the default and should be used for
This style is the combination of :doc:`pair_style dpd <pair_dpd>` and :doc:`pair_style coul/slater/long <pair_coul_slater>`. interactions between two types of particles when one or both are
uncharged.
---------- ----------
@ -116,17 +135,17 @@ pressure.
This pair style writes its information to :doc:`binary restart files This pair style writes its information to :doc:`binary restart files
<restart>`, so pair_style and pair_coeff commands do not need to be <restart>`, so pair_style and pair_coeff commands do not need to be
specified in an input script that reads a restart file. Note that the specified in an input script that reads a restart file. Note that the
user-specified random number seed is stored in the restart file, so when user-specified random number seed is stored in the restart file, so
a simulation is restarted, each processor will re-initialize its random when a simulation is restarted, each processor will re-initialize its
number generator the same way it did initially. This means the random random number generator the same way it did initially. This means the
forces will be random, but will not be the same as they would have been random forces will be random, but will not be the same as they would
if the original simulation had continued past the restart time. have been if the original simulation had continued past the restart
time.
This pair style can only be used via the *pair* keyword of the This pair style can only be used via the *pair* keyword of the
:doc:`run_style respa <run_style>` command. They do not support the :doc:`run_style respa <run_style>` command. It does not support the
*inner*, *middle*, *outer* keywords. *inner*, *middle*, *outer* keywords.
---------- ----------
Restrictions Restrictions
@ -138,17 +157,17 @@ LAMMPS was built with that package. See the :doc:`Build package
The default frequency for rebuilding neighbor lists is every 10 steps The default frequency for rebuilding neighbor lists is every 10 steps
(see the :doc:`neigh_modify <neigh_modify>` command). This may be too (see the :doc:`neigh_modify <neigh_modify>` command). This may be too
infrequent since particles move rapidly and infrequent since particles move rapidly and can overlap by large
can overlap by large amounts. If this setting yields a non-zero number amounts. If this setting yields a non-zero number of "dangerous"
of "dangerous" reneighborings (printed at the end of a simulation), you reneighborings (printed at the end of a simulation), you should
should experiment with forcing reneighboring more often and see if experiment with forcing reneighboring more often and see if system
system energies/trajectories change. energies/trajectories change.
This pair style requires you to use the :doc:`comm_modify vel yes This pair style requires use of the :doc:`comm_modify vel yes
<comm_modify>` command so that velocities are stored by ghost atoms. <comm_modify>` command so that velocities are stored by ghost atoms.
This pair style also requires the long-range solvers included in the KSPACE package. This pair style also requires use of a long-range solvers from the
KSPACE package.
This pair style will not restart exactly when using the This pair style will not restart exactly when using the
:doc:`read_restart <read_restart>` command, though they should provide :doc:`read_restart <read_restart>` command, though they should provide
@ -160,13 +179,11 @@ Related commands
"""""""""""""""" """"""""""""""""
:doc:`pair_style dpd <pair_dpd>`, :doc:`pair_style coul/slater/long <pair_coul_slater>`, :doc:`pair_style dpd <pair_dpd>`, :doc:`pair_style coul/slater/long <pair_coul_slater>`,
:doc:`pair_coeff <pair_coeff>`, :doc:`fix nvt <fix_nh>`, :doc:`fix langevin <fix_langevin>`,
:doc:`pair_style srp <pair_srp>`, :doc:`fix mvv/dpd <fix_mvv_dpd>`.
Default Default
""""""" """""""
is_charged = no For the pair_coeff command, the default is is_charged = no.
---------- ----------

View File

@ -1,8 +1,11 @@
.. index:: pair_style pod .. index:: pair_style pod
.. index:: pair_style pod/kk
pair_style pod command pair_style pod command
======================== ========================
Accelerator Variants: *pod/kk*
Syntax Syntax
"""""" """"""
@ -24,29 +27,33 @@ Description
.. versionadded:: 22Dec2022 .. versionadded:: 22Dec2022
Pair style *pod* defines the proper orthogonal descriptor (POD) Pair style *pod* defines the proper orthogonal descriptor (POD)
potential :ref:`(Nguyen) <Nguyen20221>`. The mathematical definition of potential :ref:`(Nguyen and Rohskopf) <Nguyen20222b>`,
the POD potential is described from :doc:`fitpod <fitpod_command>`, which is :ref:`(Nguyen2023) <Nguyen20232b>`, :ref:`(Nguyen2024) <Nguyen20242b>`,
used to fit the POD potential to *ab initio* energy and force data. and :ref:`(Nguyen and Sema) <Nguyen20243b>`. The :doc:`fitpod
<fitpod_command>` is used to fit the POD potential.
Only a single pair_coeff command is used with the *pod* style which Only a single pair_coeff command is used with the *pod* style which
specifies a POD parameter file followed by a coefficient file. specifies a POD parameter file followed by a coefficient file, a
projection matrix file, and a centroid file.
The coefficient file (``Ta_coefficients.pod``) contains coefficients for the The POD parameter file (``Ta_param.pod``) can contain blank and comment
POD potential. The top of the coefficient file can contain any number of lines (start with #) anywhere. Each non-blank non-comment line must
blank and comment lines (start with #), but follows a strict format contain one keyword/value pair. See :doc:`fitpod <fitpod_command>` for
after that. The first non-blank non-comment line must contain: the description of all the keywords that can be assigned in the
parameter file.
* POD_coefficients: *ncoeff* The coefficient file (``Ta_coefficients.pod``) contains coefficients for
the POD potential. The top of the 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:
This is followed by *ncoeff* coefficients, one per line. The coefficient * model_coefficients: *ncoeff* *nproj* *ncentroid*
This is followed by *ncoeff* coefficients, *nproj* projection matrix entries,
and *ncentroid* centroid coordinates, one per line. The coefficient
file is generated after training the POD potential using :doc:`fitpod file is generated after training the POD potential using :doc:`fitpod
<fitpod_command>`. <fitpod_command>`.
The POD parameter file (``Ta_param.pod``) can contain blank and comment lines
(start with #) anywhere. Each non-blank non-comment line must contain
one keyword/value pair. See :doc:`fitpod <fitpod_command>` for the description
of all the keywords that can be assigned in the parameter file.
As an example, if a LAMMPS indium phosphide simulation has 4 atoms As an example, if a LAMMPS indium phosphide simulation has 4 atoms
types, with the first two being indium and the third and fourth being types, with the first two being indium and the third and fourth being
phophorous, the pair_coeff command would look like this: phophorous, the pair_coeff command would look like this:
@ -67,7 +74,33 @@ the *hybrid* pair style. The NULL values are placeholders for atom
types that will be used with other potentials. types that will be used with other potentials.
Examples about training and using POD potentials are found in the Examples about training and using POD potentials are found in the
directory lammps/examples/PACKAGES/pod. directory lammps/examples/PACKAGES/pod and the Github repo https://github.com/cesmix-mit/pod-examples.
----------
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.
----------
.. include:: accel_styles.rst
---------- ----------
@ -78,12 +111,14 @@ This style is part of the ML-POD package. It is only enabled if LAMMPS
was built with that package. See the :doc:`Build package was built with that package. See the :doc:`Build package
<Build_package>` page for more info. <Build_package>` page for more info.
This pair style does not compute per-atom energies and per-atom stresses.
Related commands Related commands
"""""""""""""""" """"""""""""""""
:doc:`fitpod <fitpod_command>`, :doc:`fitpod <fitpod_command>`,
:doc:`compute pod/atom <compute_pod_atom>`,
:doc:`compute podd/atom <compute_pod_atom>`,
:doc:`compute pod/local <compute_pod_atom>`,
:doc:`compute pod/global <compute_pod_atom>`
Default Default
""""""" """""""
@ -92,6 +127,20 @@ none
---------- ----------
.. _Nguyen20221: .. _Nguyen20222b:
**(Nguyen and Rohskopf)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023).
.. _Nguyen20232b:
**(Nguyen2023)** Nguyen, Physical Review B, 107(14), 144103, (2023).
.. _Nguyen20242b:
**(Nguyen2024)** Nguyen, Journal of Computational Physics, 113102, (2024).
.. _Nguyen20243b:
**(Nguyen and Sema)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024).
**(Nguyen)** Nguyen and Rohskopf, arXiv preprint arXiv:2209.02362 (2022).

View File

@ -36,7 +36,7 @@ Examples
Description Description
""""""""""" """""""""""
.. versionadded:: TBD .. versionadded:: 27June2024
The *uf3* style computes the :ref:`Ultra-Fast Force Fields (UF3) The *uf3* style computes the :ref:`Ultra-Fast Force Fields (UF3)
<Xie23>` potential, a machine-learning interatomic potential. In UF3, <Xie23>` potential, a machine-learning interatomic potential. In UF3,

View File

@ -67,7 +67,7 @@ Syntax
bound(group,dir,region), gyration(group,region), ke(group,reigon), bound(group,dir,region), gyration(group,region), ke(group,reigon),
angmom(group,dim,region), torque(group,dim,region), angmom(group,dim,region), torque(group,dim,region),
inertia(group,dimdim,region), omega(group,dim,region) inertia(group,dimdim,region), omega(group,dim,region)
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label), is_timeout()
feature functions = is_available(category,feature), is_active(category,feature), is_defined(category,id) feature functions = is_available(category,feature), is_active(category,feature), is_defined(category,id)
atom value = id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i] atom value = id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i]
atom vector = id, mass, type, mol, radius, q, x, y, z, vx, vy, vz, fx, fy, fz atom vector = id, mass, type, mol, radius, q, x, y, z, vx, vy, vz, fx, fy, fz
@ -547,7 +547,7 @@ variables.
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Region functions | count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR) | | Region functions | count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR) |
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) | | Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label), is_timeout() |
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Feature functions | is_available(category,feature), is_active(category,feature), is_defined(category,id) | | Feature functions | is_available(category,feature), is_active(category,feature), is_defined(category,id) |
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@ -957,7 +957,7 @@ of points, equally spaced by 1 in their x coordinate: (1,V1), (2,V2),
length N. The returned value is the slope of the line. If the line length N. The returned value is the slope of the line. If the line
has a single point or is vertical, it returns 1.0e20. has a single point or is vertical, it returns 1.0e20.
.. versionadded:: TBD .. versionadded:: 27June2024
The sort(x) and rsort(x) functions sort the data of the input vector by The sort(x) and rsort(x) functions sort the data of the input vector by
their numeric value: sort(x) sorts in ascending order, rsort(x) sorts their numeric value: sort(x) sorts in ascending order, rsort(x) sorts
@ -1042,6 +1042,20 @@ label2type(), but returns 1 if the type label has been assigned,
otherwise it returns 0. This function can be used to check if a otherwise it returns 0. This function can be used to check if a
particular type label already exists in the simulation. particular type label already exists in the simulation.
.. versionadded:: TBD
The is_timeout() function returns 1 when the :doc:`timer timeout
<timer>` has expired otherwise it returns 0. This function can be used
to check inputs in combination with the :doc:`if command <if>` to
execute commands after the timer has expired. Example:
.. code-block:: LAMMPS
variable timeout equal is_timeout()
timer timeout 0:10:00 every 10
run 10000
if ${timeout} then "print 'Timer has expired'"
---------- ----------
Feature Functions Feature Functions

View File

@ -1,6 +1,7 @@
Sphinx >= 5.3.0, <8.0 Sphinx >= 5.3.0, <8.0
sphinxcontrib-spelling sphinxcontrib-spelling
sphinxcontrib-jquery sphinxcontrib-jquery
sphinx-design
git+https://github.com/akohlmey/sphinx-fortran@parallel-read git+https://github.com/akohlmey/sphinx-fortran@parallel-read
sphinx-tabs>=3.4.1 sphinx-tabs>=3.4.1
breathe breathe

View File

@ -57,6 +57,7 @@ extensions = [
'table_from_list', 'table_from_list',
'tab_or_note', 'tab_or_note',
'breathe', 'breathe',
'sphinx_design'
] ]
images_config = { images_config = {

View File

@ -1173,6 +1173,7 @@ finitecutflag
Finnis Finnis
Fiorin Fiorin
fitpod fitpod
fivebody
fixID fixID
fj fj
Fji Fji
@ -2897,6 +2898,7 @@ Pmolrotate
Pmoltrans Pmoltrans
pN pN
png png
podd
Podhorszki Podhorszki
Poiseuille Poiseuille
poisson poisson
@ -3370,6 +3372,7 @@ setmask
Setmask Setmask
setpoint setpoint
setvel setvel
sevenbody
sfftw sfftw
sfree sfree
Sg Sg
@ -3420,6 +3423,7 @@ SiO
Siochi Siochi
Sirk Sirk
Sival Sival
sixbody
sizeI sizeI
sizeJ sizeJ
sizex sizex
@ -3735,7 +3739,6 @@ tokyo
tol tol
tomic tomic
toolchain toolchain
toolset
topologies topologies
Toporov Toporov
Torder Torder
@ -3813,6 +3816,7 @@ typeJ
typelabel typelabel
typeN typeN
typesafe typesafe
typestr
Tz Tz
Tzou Tzou
ub ub

View File

@ -0,0 +1,305 @@
model_coefficients: 304 0 0
-3.756301
914.674801
-370.747265
-141.227291
97.101196
-59.216907
9.975284
87.329406
-10.969150
14.411744
-2.270453
0.798817
-0.121719
114.805574
-2631.563672
-869.027988
-1038.286258
2431.480027
31.972558
139.437898
29.230520
39.179879
-189.998549
-16.358691
18.699184
13.386293
12.847911
7.310155
1.677341
-9.237073
-2.228285
0.137303
6.446888
-0.385837
0.272000
0.111052
-1.264342
-0.711451
450.463638
-499.339551
550.704146
-1638.278950
-1311.408792
-24.811632
-14.000684
-39.928838
44.690659
35.934791
-0.425535
16.810067
-1.951262
26.118670
28.549237
-1.779991
-1.907896
4.278671
-5.852529
-11.518503
0.285252
0.210939
-1.153276
0.744801
2.765281
-365.425648
892.154409
616.198109
-808.930752
-241.494545
60.329248
-50.220263
-89.366098
47.692144
12.376825
-11.304060
-0.465577
20.908593
0.768057
-0.296966
-1.434787
0.089423
-3.273582
1.085951
1.627005
0.063449
0.501713
-0.025247
-1.127277
-0.619276
-950.742997
11175.508296
1041.077100
-8713.542159
11.024588
-193.368092
-17.871650
193.000879
-1.221800
0.201038
-0.297456
10.197177
0.118306
-2.486775
0.340362
0.179573
2064.315112
11898.567992
-7130.614814
-2965.017905
-36.665484
-156.646217
112.838247
64.147104
-0.187677
8.822337
-2.516814
0.833110
-0.808597
-3.112898
2.172317
1.684634
-5.757502
4129.051881
-2191.420379
-5640.863432
2.123836
-34.024960
35.525113
106.884920
0.406772
6.365527
-0.015093
2.711538
-0.263692
-0.604293
0.790243
1.092726
593.864089
-2785.368577
-1100.723468
4424.744171
-20.023164
47.252092
34.797296
-101.504738
-1.911711
-0.110737
3.998625
-2.768303
-0.189524
0.793288
-0.405026
-1.116385
4.808874
86.919761
-10.887316
14.382398
-2.271034
0.710124
-0.114050
170.975102
-54.119757
-23.638119
28.153323
-15.183264
2.919447
-185.866164
-1165.581453
-1256.610349
1133.815010
814.761739
9.901474
31.315227
40.389531
-39.201068
-50.871475
3.268994
19.578821
12.684861
-13.440885
2.022633
1.483279
-4.388229
0.944679
3.110080
-2.163427
0.160512
-0.197641
-1.121333
1.023995
2.077494
-78.649494
15.740666
1379.998028
-267.931116
-631.685867
0.779724
-28.384680
-104.334909
40.727192
54.977623
4.534376
13.738711
2.994157
-10.950852
-4.057951
1.099589
-1.782453
3.174200
2.605193
-1.835511
0.063386
0.124447
-0.881517
-0.703873
0.712785
-567.114384
363.884433
-300.309621
-1421.591050
-1083.371637
45.559123
-7.797512
24.330267
71.829748
60.799510
-2.099976
-9.821055
-6.488823
9.426431
6.385231
-0.836215
3.533300
2.741734
-3.602311
-3.863372
-0.122980
-0.147120
-0.378902
-0.232987
0.445875
-237.448044
442.663085
2103.157345
-2382.920549
0.583996
-6.353184
-17.798247
72.320744
-0.422216
1.198193
3.257409
6.944903
0.255190
-0.887514
-0.316214
0.345565
-242.443134
4329.522091
534.487792
-4571.367114
-9.591790
-62.990215
20.323544
169.640829
-2.788146
2.114659
7.272737
21.210166
0.904969
-1.154060
-1.376235
-1.148246
129.689234
5953.209838
667.823321
-83.797221
3.417016
-126.968016
-14.909772
41.785404
1.415997
-5.278588
-0.463605
8.009232
0.030211
-0.765006
-0.826223
0.103515
147.565462
4404.556538
3774.833555
-2327.923578
-5.422196
-107.433002
-70.175719
74.887031
-0.424490
-6.620110
-2.179770
5.588150
-0.222514
-0.435209
0.034179
0.388588

View File

@ -1,20 +1,21 @@
file_format extxyz file_format extxyz
file_extension xyz file_extension xyz
path_to_training_data_set "../Ta/XYZ" path_to_training_data_set "XYZ"
path_to_test_data_set "../Ta/XYZ" path_to_test_data_set "XYZ"
path_to_environment_configuration_set "XYZ"
fitting_weight_energy 100.0 fitting_weight_energy 100.0
fitting_weight_force 1.0 fitting_weight_force 1.0
fitting_regularization_parameter 1e-10 fitting_regularization_parameter 1e-12
error_analysis_for_training_data_set 1 error_analysis_for_training_data_set 1
error_analysis_for_test_data_set 0 error_analysis_for_test_data_set 0
# Add the following basename to the name of output files # Add the following basename to the name of output files
basename_for_output_files Ta basename_for_output_files InP
# number of digits after the decimal point for pod coefficients # number of digits after the decimal point for pod coefficients
precision_for_pod_coefficients 5 precision_for_pod_coefficients 6

View File

@ -0,0 +1,48 @@
# chemical element symbols
species In P
# periodic boundary conditions
pbc 1 1 1
# inner cut-off radius
rin 0.8
# outer cut-off radius
rcut 5.0
# use only for enviroment-adaptive potentials
number_of_environment_clusters 1
# principal_components of local descriptors
number_of_principal_components 2
# polynomial degrees for radial basis functions
bessel_polynomial_degree 4
inverse_polynomial_degree 8
# one-body potential
onebody 1
# two-body linear POD potential
twobody_number_radial_basis_functions 6
# three-body linear POD potential
threebody_number_radial_basis_functions 5
threebody_angular_degree 4
# four-body linear POD potential
fourbody_number_radial_basis_functions 4
fourbody_angular_degree 2
# five-body linear POD potential
fivebody_number_radial_basis_functions 0
fivebody_angular_degree 0
# six-body linear POD potential
sixbody_number_radial_basis_functions 0
sixbody_angular_degree 0
# seven-body linear POD potential
sevenbody_number_radial_basis_functions 0
sevenbody_angular_degree 0

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
**************** Begin of Error Analysis for the Training Data Set ****************
--------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------
Bulk.xyz 1 8 0.001678 0.001678 0.000000 0.000000
EOS.xyz 268 2080 0.001463 0.001817 0.001107 0.015463
Shear.xyz 346 2768 0.000415 0.000640 0.008336 0.012865
Strain.xyz 163 1304 0.001129 0.001374 0.000021 0.000036
aIn.xyz 54 11664 0.000737 0.000796 0.007969 0.016112
aP.xyz 21 4536 0.001396 0.001407 0.019599 0.054174
aa.xyz 20 4320 0.001991 0.001991 0.016735 0.027955
iIn.xyz 41 8897 0.001548 0.001687 0.013910 0.025462
iP.xyz 100 21700 0.001090 0.001203 0.009692 0.018549
s_aIn.xyz 121 7744 0.000856 0.000889 0.011041 0.017399
s_aP.xyz 72 4608 0.002255 0.003587 0.032425 0.045878
s_aa.xyz 18 1152 0.001198 0.001200 0.037169 0.047713
s_iIn.xyz 144 9360 0.002014 0.002255 0.035374 0.050726
s_iP.xyz 337 21905 0.001655 0.002178 0.025130 0.038368
s_vIn.xyz 17 1071 0.007984 0.007992 0.023190 0.039575
s_vP.xyz 77 4851 0.000245 0.000281 0.018303 0.025819
s_vv.xyz 65 4030 0.001759 0.001986 0.039037 0.052667
vP.xyz 10 2150 0.000640 0.000640 0.005452 0.009834
vv.xyz 19 4066 0.001336 0.001403 0.020930 0.034386
--------------------------------------------------------------------------------------------
All files 1894 118214 0.001288 0.001855 0.018109 0.032649
--------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set ****************

View File

@ -0,0 +1,16 @@
### POD example for InP
We will fit a potential to the `InP` training data in the `XYZ` directory, which houses `.xyz` files
Please download the training data from [the repo](https://github.com/cesmix-mit/pod-examples/tree/main/JCP2023_InP/XYZ)
Fit POD with
lmp -in in.fitpod
This creates `InP_coefficients.pod` for the linear model, which we can use to run MD with
lmp -in in.pod

View File

@ -0,0 +1 @@
fitpod InP_param.pod InP_data.pod

View File

@ -1,13 +1,13 @@
# Demonstrate POD Ta potential # Demonstrate POD potential for InP
# Initialize simulation # Initialize simulation
variable nsteps index 100 variable nsteps index 100
variable nrep equal 4 variable nrep equal 4
variable a equal 3.316 variable a equal 5.83
units metal units metal
# generate the box and atom positions using a BCC lattice # generate the box and atom positions using a FCC lattice
variable nx equal ${nrep} variable nx equal ${nrep}
variable ny equal ${nrep} variable ny equal ${nrep}
@ -15,17 +15,17 @@ variable nz equal ${nrep}
boundary p p p boundary p p p
lattice bcc $a lattice diamond $a
region box block 0 ${nx} 0 ${ny} 0 ${nz} region box block 0 ${nx} 0 ${ny} 0 ${nz}
create_box 1 box create_box 2 box
create_atoms 1 box create_atoms 1 box basis 5 2 basis 6 2 basis 7 2 basis 8 2
mass 1 180.88
mass 1 114.76
mass 2 30.98
# POD potential # POD potential
pair_style pod pair_style pod
pair_coeff * * Ta_param.pod Ta_coefficients.pod Ta pair_coeff * * InP_param.pod InP_coefficients.pod In P
# Setup output # Setup output
@ -44,4 +44,3 @@ velocity all create 300.0 4928459 loop geom
fix 1 all nve fix 1 all nve
run ${nsteps} run ${nsteps}

View File

@ -0,0 +1,163 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-176-gc2e4ad220f-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
fitpod InP_param.pod InP_data.pod
**************** Begin of POD Potentials ****************
species: In P
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 0.8
outer cut-off radius: 5
bessel polynomial degree: 4
inverse polynomial degree: 8
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 4
four-body angular degree: 2
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 12
number of local descriptors per element for three-body potential: 75
number of local descriptors per element for four-body potential: 64
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 152
number of global descriptors: 304
**************** End of POD Potentials ****************
**************** Begin of Data File ****************
file format: extxyz
file extension: xyz
path to training data set: XYZ
path to test data set: XYZ
path to environment configuration set: XYZ
basename for output files: InP
training fraction: 1
test fraction: 1
randomize training data set: 1
randomize test data set: 1
error analysis for training data set: 1
error analysis for test data set: 0
energy/force calculation for training data set: 0
energy/force calculation for test data set: 0
fitting weight for energy: 100
fitting weight for force: 1
fitting weight for stress: 0
save pod descriptors: 0
compute pod descriptors: 0
**************** End of Data File ****************
**************** Begin of Training Data Set ****************
--------------------------------------------------------
data file | number of configurations | number of atoms
--------------------------------------------------------
Bulk.xyz | 1 | 8
EOS.xyz | 268 | 2080
Shear.xyz | 346 | 2768
Strain.xyz | 163 | 1304
aIn.xyz | 54 | 11664
aP.xyz | 21 | 4536
aa.xyz | 20 | 4320
iIn.xyz | 41 | 8897
iP.xyz | 100 | 21700
s_aIn.xyz | 121 | 7744
s_aP.xyz | 72 | 4608
s_aa.xyz | 18 | 1152
s_iIn.xyz | 144 | 9360
s_iP.xyz | 337 | 21905
s_vIn.xyz | 17 | 1071
s_vP.xyz | 77 | 4851
s_vv.xyz | 65 | 4030
vP.xyz | 10 | 2150
vv.xyz | 19 | 4066
--------------------------------------------------------
number of files: 19
number of configurations in all files: 1894
number of atoms in all files: 118214
minimum number of atoms: 4
maximum number of atoms: 217
**************** End of Training Data Set ****************
**************** Begin of Memory Allocation ****************
maximum number of atoms in periodic domain: 217
maximum number of atoms in extended domain: 5859
maximum number of neighbors in extended domain: 1271403
size of double memory: 5555904
size of descriptor matrix: 304 x 304
**************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
Configuration: # 401
Configuration: # 501
Configuration: # 601
Configuration: # 701
Configuration: # 801
Configuration: # 901
Configuration: # 1001
Configuration: # 1101
Configuration: # 1201
Configuration: # 1301
Configuration: # 1401
Configuration: # 1501
Configuration: # 1601
Configuration: # 1701
Configuration: # 1801
**************** Begin of Error Calculation ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
Configuration: # 401
Configuration: # 501
Configuration: # 601
Configuration: # 701
Configuration: # 801
Configuration: # 901
Configuration: # 1001
Configuration: # 1101
Configuration: # 1201
Configuration: # 1301
Configuration: # 1401
Configuration: # 1501
Configuration: # 1601
Configuration: # 1701
Configuration: # 1801
**************** End of Error Calculation ****************
**************** Begin of Error Analysis for the Training Data Set ****************
--------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------
Bulk.xyz 1 8 0.001678 0.001678 0.000000 0.000000
EOS.xyz 268 2080 0.001463 0.001817 0.001107 0.015464
Shear.xyz 346 2768 0.000415 0.000640 0.008335 0.012863
Strain.xyz 163 1304 0.001129 0.001374 0.000021 0.000036
aIn.xyz 54 11664 0.000737 0.000796 0.007969 0.016112
aP.xyz 21 4536 0.001396 0.001407 0.019599 0.054174
aa.xyz 20 4320 0.001991 0.001991 0.016735 0.027955
iIn.xyz 41 8897 0.001548 0.001687 0.013910 0.025462
iP.xyz 100 21700 0.001090 0.001203 0.009692 0.018549
s_aIn.xyz 121 7744 0.000856 0.000889 0.011041 0.017399
s_aP.xyz 72 4608 0.002255 0.003587 0.032425 0.045878
s_aa.xyz 18 1152 0.001198 0.001200 0.037169 0.047713
s_iIn.xyz 144 9360 0.002014 0.002255 0.035374 0.050726
s_iP.xyz 337 21905 0.001655 0.002178 0.025130 0.038368
s_vIn.xyz 17 1071 0.007984 0.007992 0.023190 0.039575
s_vP.xyz 77 4851 0.000245 0.000281 0.018303 0.025818
s_vv.xyz 65 4030 0.001759 0.001986 0.039037 0.052667
vP.xyz 10 2150 0.000640 0.000640 0.005452 0.009834
vv.xyz 19 4066 0.001336 0.001403 0.020930 0.034386
--------------------------------------------------------------------------------------------
All files 1894 118214 0.001288 0.001855 0.018109 0.032648
--------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:27

View File

@ -0,0 +1,163 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-176-gc2e4ad220f-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
fitpod InP_param.pod InP_data.pod
**************** Begin of POD Potentials ****************
species: In P
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 0.8
outer cut-off radius: 5
bessel polynomial degree: 4
inverse polynomial degree: 8
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 4
four-body angular degree: 2
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 12
number of local descriptors per element for three-body potential: 75
number of local descriptors per element for four-body potential: 64
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 152
number of global descriptors: 304
**************** End of POD Potentials ****************
**************** Begin of Data File ****************
file format: extxyz
file extension: xyz
path to training data set: XYZ
path to test data set: XYZ
path to environment configuration set: XYZ
basename for output files: InP
training fraction: 1
test fraction: 1
randomize training data set: 1
randomize test data set: 1
error analysis for training data set: 1
error analysis for test data set: 0
energy/force calculation for training data set: 0
energy/force calculation for test data set: 0
fitting weight for energy: 100
fitting weight for force: 1
fitting weight for stress: 0
save pod descriptors: 0
compute pod descriptors: 0
**************** End of Data File ****************
**************** Begin of Training Data Set ****************
--------------------------------------------------------
data file | number of configurations | number of atoms
--------------------------------------------------------
Bulk.xyz | 1 | 8
EOS.xyz | 268 | 2080
Shear.xyz | 346 | 2768
Strain.xyz | 163 | 1304
aIn.xyz | 54 | 11664
aP.xyz | 21 | 4536
aa.xyz | 20 | 4320
iIn.xyz | 41 | 8897
iP.xyz | 100 | 21700
s_aIn.xyz | 121 | 7744
s_aP.xyz | 72 | 4608
s_aa.xyz | 18 | 1152
s_iIn.xyz | 144 | 9360
s_iP.xyz | 337 | 21905
s_vIn.xyz | 17 | 1071
s_vP.xyz | 77 | 4851
s_vv.xyz | 65 | 4030
vP.xyz | 10 | 2150
vv.xyz | 19 | 4066
--------------------------------------------------------
number of files: 19
number of configurations in all files: 1894
number of atoms in all files: 118214
minimum number of atoms: 4
maximum number of atoms: 217
**************** End of Training Data Set ****************
**************** Begin of Memory Allocation ****************
maximum number of atoms in periodic domain: 217
maximum number of atoms in extended domain: 5859
maximum number of neighbors in extended domain: 1271403
size of double memory: 5555904
size of descriptor matrix: 304 x 304
**************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
Configuration: # 401
Configuration: # 501
Configuration: # 601
Configuration: # 701
Configuration: # 801
Configuration: # 901
Configuration: # 1001
Configuration: # 1101
Configuration: # 1201
Configuration: # 1301
Configuration: # 1401
Configuration: # 1501
Configuration: # 1601
Configuration: # 1701
Configuration: # 1801
**************** Begin of Error Calculation ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
Configuration: # 401
Configuration: # 501
Configuration: # 601
Configuration: # 701
Configuration: # 801
Configuration: # 901
Configuration: # 1001
Configuration: # 1101
Configuration: # 1201
Configuration: # 1301
Configuration: # 1401
Configuration: # 1501
Configuration: # 1601
Configuration: # 1701
Configuration: # 1801
**************** End of Error Calculation ****************
**************** Begin of Error Analysis for the Training Data Set ****************
--------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------
Bulk.xyz 1 8 0.001678 0.001678 0.000000 0.000000
EOS.xyz 268 2080 0.001463 0.001817 0.001107 0.015463
Shear.xyz 346 2768 0.000415 0.000640 0.008336 0.012865
Strain.xyz 163 1304 0.001129 0.001374 0.000021 0.000036
aIn.xyz 54 11664 0.000737 0.000796 0.007969 0.016112
aP.xyz 21 4536 0.001396 0.001407 0.019599 0.054174
aa.xyz 20 4320 0.001991 0.001991 0.016735 0.027955
iIn.xyz 41 8897 0.001548 0.001687 0.013910 0.025462
iP.xyz 100 21700 0.001090 0.001203 0.009692 0.018549
s_aIn.xyz 121 7744 0.000856 0.000889 0.011041 0.017399
s_aP.xyz 72 4608 0.002255 0.003587 0.032425 0.045878
s_aa.xyz 18 1152 0.001198 0.001200 0.037169 0.047713
s_iIn.xyz 144 9360 0.002014 0.002255 0.035374 0.050726
s_iP.xyz 337 21905 0.001655 0.002178 0.025130 0.038368
s_vIn.xyz 17 1071 0.007984 0.007992 0.023190 0.039575
s_vP.xyz 77 4851 0.000245 0.000281 0.018303 0.025819
s_vv.xyz 65 4030 0.001759 0.001986 0.039037 0.052667
vP.xyz 10 2150 0.000640 0.000640 0.005452 0.009834
vv.xyz 19 4066 0.001336 0.001403 0.020930 0.034386
--------------------------------------------------------------------------------------------
All files 1894 118214 0.001288 0.001855 0.018109 0.032649
--------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:10

View File

@ -0,0 +1,155 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-176-gc2e4ad220f-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD potential for InP
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 5.83
units metal
# generate the box and atom positions using a FCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice diamond $a
lattice diamond 5.83
Lattice spacing in x,y,z = 5.83 5.83 5.83
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 2 box
Created orthogonal box = (0 0 0) to (23.32 23.32 23.32)
1 by 1 by 1 MPI processor grid
create_atoms 1 box basis 5 2 basis 6 2 basis 7 2 basis 8 2
Created 512 atoms
using lattice units in orthogonal box = (0 0 0) to (23.32 23.32 23.32)
create_atoms CPU = 0.001 seconds
mass 1 114.76
mass 2 30.98
# POD potential
pair_style pod
pair_coeff * * InP_param.pod InP_coefficients.pod In P
**************** Begin of POD Potentials ****************
species: In P
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 0.8
outer cut-off radius: 5
bessel polynomial degree: 4
inverse polynomial degree: 8
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 4
four-body angular degree: 2
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 12
number of local descriptors per element for three-body potential: 75
number of local descriptors per element for four-body potential: 64
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 152
number of global descriptors: 304
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 304
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 8 8 8
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.244 | 3.244 | 3.244 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -4.8392777 0 -4.8005754 1561.0654
10 291.27079 -4.8381515 0 -4.8005753 1709.509
20 266.69372 -4.8349805 0 -4.8005749 2126.86
30 230.86163 -4.8303573 0 -4.8005744 2735.6894
40 190.64668 -4.8251686 0 -4.8005738 3416.9247
50 153.9516 -4.8204341 0 -4.8005732 4022.2533
60 127.93805 -4.8170778 0 -4.8005728 4405.9763
70 117.12501 -4.8156828 0 -4.8005727 4475.6131
80 122.09497 -4.8163242 0 -4.800573 4231.7934
90 139.42686 -4.8185607 0 -4.8005735 3766.8505
100 162.84813 -4.8215828 0 -4.8005741 3221.8605
Loop time of 2.18542 on 1 procs for 100 steps with 512 atoms
Performance: 1.977 ns/day, 12.141 hours/ns, 45.758 timesteps/s, 23.428 katom-step/s
97.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.1829 | 2.1829 | 2.1829 | 0.0 | 99.88
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00080748 | 0.00080748 | 0.00080748 | 0.0 | 0.04
Output | 0.00033584 | 0.00033584 | 0.00033584 | 0.0 | 0.02
Modify | 0.00071224 | 0.00071224 | 0.00071224 | 0.0 | 0.03
Other | | 0.000686 | | | 0.03
Nlocal: 512 ave 512 max 512 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1451 ave 1451 max 1451 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 17408 ave 17408 max 17408 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 17408
Ave neighs/atom = 34
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,155 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-176-gc2e4ad220f-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD potential for InP
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 5.83
units metal
# generate the box and atom positions using a FCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice diamond $a
lattice diamond 5.83
Lattice spacing in x,y,z = 5.83 5.83 5.83
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 2 box
Created orthogonal box = (0 0 0) to (23.32 23.32 23.32)
1 by 2 by 2 MPI processor grid
create_atoms 1 box basis 5 2 basis 6 2 basis 7 2 basis 8 2
Created 512 atoms
using lattice units in orthogonal box = (0 0 0) to (23.32 23.32 23.32)
create_atoms CPU = 0.001 seconds
mass 1 114.76
mass 2 30.98
# POD potential
pair_style pod
pair_coeff * * InP_param.pod InP_coefficients.pod In P
**************** Begin of POD Potentials ****************
species: In P
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 0.8
outer cut-off radius: 5
bessel polynomial degree: 4
inverse polynomial degree: 8
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 4
four-body angular degree: 2
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 12
number of local descriptors per element for three-body potential: 75
number of local descriptors per element for four-body potential: 64
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 152
number of global descriptors: 304
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 304
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 8 8 8
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.215 | 3.215 | 3.215 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -4.8392777 0 -4.8005754 1561.0654
10 291.27079 -4.8381515 0 -4.8005753 1709.509
20 266.69372 -4.8349805 0 -4.8005749 2126.86
30 230.86163 -4.8303573 0 -4.8005744 2735.6894
40 190.64668 -4.8251686 0 -4.8005738 3416.9247
50 153.9516 -4.8204341 0 -4.8005732 4022.2533
60 127.93805 -4.8170778 0 -4.8005728 4405.9763
70 117.12501 -4.8156828 0 -4.8005727 4475.6131
80 122.09497 -4.8163242 0 -4.800573 4231.7934
90 139.42686 -4.8185607 0 -4.8005735 3766.8505
100 162.84813 -4.8215828 0 -4.8005741 3221.8605
Loop time of 0.818141 on 4 procs for 100 steps with 512 atoms
Performance: 5.280 ns/day, 4.545 hours/ns, 122.228 timesteps/s, 62.581 katom-step/s
94.0% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.70717 | 0.7255 | 0.75748 | 2.2 | 88.68
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.05765 | 0.088203 | 0.10797 | 6.3 | 10.78
Output | 0.00030107 | 0.00039215 | 0.00055987 | 0.0 | 0.05
Modify | 0.00051915 | 0.00059064 | 0.00069306 | 0.0 | 0.07
Other | | 0.003452 | | | 0.42
Nlocal: 128 ave 128 max 128 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 783 ave 783 max 783 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 4352 ave 4352 max 4352 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 17408
Ave neighs/atom = 34
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -3,19 +3,36 @@
Go to `lammps` directory and build with the POD package: Go to `lammps` directory and build with the POD package:
cd path/to/lammps cd path/to/lammps
mkdir build-pod mkdir build
cd build-pod cd build
cmake -C ../cmake/presets/basic.cmake -D PKG_ML-POD=on ../cmake cmake -C ../cmake/presets/basic.cmake -D PKG_ML-POD=on ../cmake
cmake --build . cmake --build .
### Fit a POD potential for tantalum ### Compile LAMMPS/POD with Kokkos
cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake -D PKG_ML-POD=on ../cmake
### Fit a POD potential for Tantalum
Go to `lammps/examples/PACKAGES/pod/Ta` directory and run Go to `lammps/examples/PACKAGES/pod/Ta` directory and run
lmp -in in.podfit lmp -in Ta_fit.pod
See the README in `lammps/examples/PACKAGES/pod/Ta` for instructions on how to run MD with the potential. This creates `Ta_coefficients.pod` for the linear model, which we can use to run MD with
lmp -in Ta_mdrun.pod
### Fit a POD potential for Indium Phosphide
Go to `lammps/examples/PACKAGES/pod/InP` directory and run
lmp -in InP_fit.pod
This creates `InP_coefficients.pod` for the linear model, which we can use to run MD with
lmp -in InP_mdrun.pod
### Examples for other materials ### Examples for other materials
See [https://github.com/cesmix-mit/pod-examples](https://github.com/cesmix-mit/pod-examples) See [https://github.com/cesmix-mit/pod-examples](https://github.com/cesmix-mit/pod-examples)

View File

@ -1 +0,0 @@
../../../../potentials/Ta_coeff.pod

View File

@ -0,0 +1,33 @@
model_coefficients: 32 0 0
-4.45745
29.40034
-13.69439
-0.32907
-0.14786
-1.35221
-0.59315
-26.30409
-33.37233
162.42473
144.67248
-149.50021
1.78603
2.49026
-11.04768
-11.14333
12.40537
0.48284
0.39345
-2.25812
-1.38908
1.31551
0.02974
-0.05094
-0.21177
0.12127
0.23170
0.02426
-0.15305
-0.10803
0.25628
0.01291

View File

@ -1,33 +1,33 @@
POD_coefficients: 32 model_coefficients: 32 0 0
-4.44242 -4.45745
4.10219 29.40034
2.36987 -13.69439
3.92184 -0.32907
-0.83796 -0.14786
-0.79457 -1.35221
-0.26230 -0.59315
-21.24294 -26.30409
-15.38460 -33.37233
-38.44056 162.42473
8.29872 144.67248
-42.54514 -149.50021
2.79976 1.78603
3.76109 2.49026
5.23499 -11.04768
0.04878 -11.14333
2.96006 12.40537
0.09101 0.48284
-0.19257 0.39345
-0.24326 -2.25812
-0.16735 -1.38908
0.53738 1.31551
0.02236 0.02974
-0.00154 -0.05094
0.02488 -0.21177
-0.00565 0.12127
0.07672 0.23170
-0.05894 0.02426
-0.05604 -0.15305
-0.12664 -0.10803
0.11723 0.25628
0.00262 0.01291

View File

@ -3,10 +3,11 @@ file_extension xyz
path_to_training_data_set "XYZ" path_to_training_data_set "XYZ"
path_to_test_data_set "XYZ" path_to_test_data_set "XYZ"
path_to_environment_configuration_set "XYZ"
fitting_weight_energy 100.0 fitting_weight_energy 100.0
fitting_weight_force 1.0 fitting_weight_force 1.0
fitting_regularization_parameter 1e-10 fitting_regularization_parameter 1e-12
error_analysis_for_training_data_set 1 error_analysis_for_training_data_set 1
error_analysis_for_test_data_set 0 error_analysis_for_test_data_set 0
@ -17,4 +18,3 @@ basename_for_output_files Ta
# number of digits after the decimal point for pod coefficients # number of digits after the decimal point for pod coefficients
precision_for_pod_coefficients 5 precision_for_pod_coefficients 5

View File

@ -1,4 +1,3 @@
# DATE: 2022-11-30 UNITS: metal CONTRIBUTOR: Ngoc Cuong Nguyen, exapde@gmail.com CITATION: https://arxiv.org/abs/2209.02362
# chemical element symbols # chemical element symbols
species Ta species Ta
@ -11,22 +10,37 @@ rin 1.0
# outer cut-off radius # outer cut-off radius
rcut 5.0 rcut 5.0
# use only for enviroment-adaptive potentials
number_of_environment_clusters 1
# principal_components of local descriptors
number_of_principal_components 2
# polynomial degrees for radial basis functions # polynomial degrees for radial basis functions
bessel_polynomial_degree 3 bessel_polynomial_degree 3
inverse_polynomial_degree 6 inverse_polynomial_degree 6
# one-body potential
onebody 1
# two-body linear POD potential # two-body linear POD potential
twobody_number_radial_basis_functions 6 twobody_number_radial_basis_functions 6
# three-body linear POD potential # three-body linear POD potential
threebody_number_radial_basis_functions 5 threebody_number_radial_basis_functions 5
threebody_number_angular_basis_functions 5 threebody_angular_degree 4
# four-body linear POD potential
fourbody_number_radial_basis_functions 0
fourbody_angular_degree 0
# five-body linear POD potential
fivebody_number_radial_basis_functions 0
fivebody_angular_degree 0
# six-body linear POD potential
sixbody_number_radial_basis_functions 0
sixbody_angular_degree 0
# seven-body linear POD potential
sevenbody_number_radial_basis_functions 0
sevenbody_angular_degree 0
# four-body linear SNAP potential
fourbody_snap_twojmax 0
# quadratic POD potential
quadratic_pod_potential 0

View File

@ -1,387 +1,387 @@
# Displaced_A15.xyz # Displaced_A15.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
1 64 -753.4412087 -754.220443 0.01217553565 7.734608752 8.398670477 0.1147177501 1 64 1191.016129 -753.1698421 -754.220443 0.01641563835 7.40295037 8.398670477 0.1439758999
2 64 -752.99206 -753.865255 0.01364367179 8.845831302 9.134430545 0.128875643 2 64 1191.016129 -752.7395784 -753.865255 0.01758869658 8.280515739 9.134430545 0.1607787343
3 64 -753.3230789 -754.0221 0.01092220404 8.320493902 9.017261102 0.1155421197 3 64 1191.016129 -753.08785 -754.0221 0.01459765574 7.697535492 9.017261102 0.1420603113
4 64 -753.5972757 -754.279613 0.01066151964 7.709417684 8.381725092 0.1058659753 4 64 1191.016129 -753.3517402 -754.279613 0.01449801277 7.132364917 8.381725092 0.1340575727
5 64 -753.0554721 -753.777209 0.01127713895 8.89827564 9.478314477 0.1191609049 5 64 1191.016129 -752.7757043 -753.777209 0.01564851147 8.360253864 9.478314477 0.1513006151
6 64 -753.3515905 -754.048643 0.01089144564 7.808950564 8.465317938 0.1128142237 6 64 1191.016129 -753.0381763 -754.048643 0.01578854208 7.591838888 8.465317938 0.1285134018
7 64 -753.6515992 -754.317603 0.01040630929 7.441773668 8.127690491 0.1024025645 7 64 1191.016129 -753.3574797 -754.317603 0.01500192578 7.082010429 8.127690491 0.1223953112
8 64 -753.3305668 -753.969161 0.009978033993 8.524333384 9.425464952 0.1066300011 8 64 1191.016129 -753.1004299 -753.969161 0.01357392266 7.903578432 9.425464952 0.1365521197
9 64 -753.3982699 -754.141988 0.01162059588 8.165654685 8.821346913 0.1141641875 9 64 1191.016129 -753.1947122 -754.141988 0.01480118465 7.516622986 8.821346913 0.1457127007
# Displaced_BCC.xyz # Displaced_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
10 54 -631.72742 -631.019667 0.01310653789 15.42892812 16.625876 0.264811012 10 54 988.0479474 -631.5404329 -631.019667 0.009643812587 15.64136862 16.625876 0.2725503749
11 54 -632.2725892 -631.719595 0.01024063328 14.51788198 15.58666626 0.2236637006 11 54 988.0479474 -632.1993857 -631.719595 0.008885012437 14.51345042 15.58666626 0.2369926956
12 54 -631.9431698 -631.386255 0.01031323642 15.21539049 15.92378883 0.2259171686 12 54 988.0479474 -631.7954039 -631.386255 0.007576831115 15.20757603 15.92378883 0.2310810758
13 54 -633.0728554 -632.575826 0.00920424781 13.38472946 14.55977162 0.2050161952 13 54 988.0479474 -633.0131535 -632.575826 0.00809865759 13.46782392 14.55977162 0.2185066317
14 54 -630.8933737 -630.450212 0.008206698429 16.5539163 16.96340726 0.2366453149 14 54 988.0479474 -630.6309514 -630.450212 0.003347025529 17.00218411 16.96340726 0.2580441627
15 54 -632.0739208 -631.669379 0.007491515672 15.23887638 16.05757315 0.2280333831 15 54 988.0479474 -631.9637644 -631.669379 0.00545158078 15.32548025 16.05757315 0.2336752679
16 54 -632.8030856 -632.431277 0.006885343815 14.21127984 14.69810718 0.2026063598 16 54 988.0479474 -632.6507522 -632.431277 0.004064355464 14.35795151 14.69810718 0.2158812969
17 54 -631.6814096 -630.960068 0.01335817778 14.70924474 15.99073148 0.2283605143 17 54 988.0479474 -631.5521869 -630.960068 0.0109651643 14.75319251 15.99073148 0.2285673047
18 54 -625.0410285 -623.378198 0.03079315656 23.39224423 24.67640432 0.3504654115 18 54 988.0479474 -624.854495 -623.378198 0.02733883252 23.58927768 24.67640432 0.3545478911
# Displaced_FCC.xyz # Displaced_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
19 48 -555.9696753 -555.899463 0.001462755232 6.079460735 6.084617063 0.07083484607 19 48 889.0559462 -555.8989975 -555.899463 9.69792269e-06 6.387988875 6.084617063 0.07805905013
20 48 -555.9506355 -555.922478 0.0005866147697 6.28112122 6.297071211 0.09285822038 20 48 889.0559462 -555.8789297 -555.922478 0.000907256654 6.632232564 6.297071211 0.1040918647
21 48 -555.8344979 -555.800269 0.000713101184 6.153574445 6.021098636 0.08137696888 21 48 889.0559462 -555.7628778 -555.800269 0.0007789836645 6.45057814 6.021098636 0.09471102034
22 48 -556.2639568 -556.196151 0.00141262046 5.066504178 5.127955094 0.08649299664 22 48 889.0559462 -556.2253041 -556.196151 0.0006073561042 5.301350042 5.127955094 0.09123176401
23 48 -555.6269121 -555.488929 0.002874647697 6.848109843 7.050223459 0.08116202322 23 48 889.0559462 -555.5406596 -555.488929 0.001077721414 7.195160551 7.050223459 0.08747135986
24 48 -556.1089332 -556.027926 0.001687649405 5.662035842 5.611881174 0.07953916326 24 48 889.0559462 -556.0330633 -556.027926 0.0001070272218 6.009103539 5.611881174 0.08935441647
25 48 -556.0580873 -555.968399 0.001868505799 5.879931332 5.979217189 0.07470196865 25 48 889.0559462 -555.9945281 -555.968399 0.0005443553218 6.212902066 5.979217189 0.081244274
26 48 -556.0083267 -556.047132 0.0008084440258 5.752828608 5.544452585 0.08224848502 26 48 889.0559462 -555.9554151 -556.047132 0.001910769529 6.012019145 5.544452585 0.09545132709
27 48 -555.82441 -555.747848 0.001595040721 6.367423657 6.47892568 0.09497869851 27 48 889.0559462 -555.7366233 -555.747848 0.0002338482448 6.764939057 6.47892568 0.1011665243
# Elastic_BCC.xyz # Elastic_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
28 2 -23.68353253 -23.689367 0.002917237243 0.0006486347527 0.0006222748589 7.696560647e-06 28 2 36.40799882 -23.68590704 -23.689367 0.001729981765 0.0005857469375 0.0006222748589 9.806537327e-06
29 2 -23.68281295 -23.689888 0.003537526523 0.0006442481331 0.0006166052222 7.353613433e-06 29 2 36.47727251 -23.68481169 -23.689888 0.00253815708 0.0005821264542 0.0006166052222 8.797319207e-06
30 2 -23.68293438 -23.689996 0.00353080996 0.0009115876426 0.0008810425642 1.183334558e-05 30 2 36.47184897 -23.68494784 -23.689996 0.002524078869 0.0008240616654 0.0008810425642 2.037428468e-05
31 2 -23.68108003 -23.690957 0.004938485589 1.044193543e-06 0 4.166082999e-07 31 2 36.62078348 -23.68225087 -23.690957 0.004353065844 9.422546395e-07 0 3.770200667e-07
32 2 -23.67919793 -23.690521 0.005661535829 0.0006261455712 0.0005982273815 7.573309962e-06 32 2 36.71197042 -23.67989944 -23.690521 0.005310779451 0.000566950477 0.0005982273815 8.158760804e-06
33 2 -23.67785535 -23.69038 0.006262326378 0.0006219476538 0.0005925723585 8.098703345e-06 33 2 36.77593928 -23.67819051 -23.69038 0.00609474427 0.0005635032259 0.0005925723585 7.849374173e-06
34 2 -23.68415292 -23.689202 0.00252453823 0.0006520193214 0.0006279363025 7.128171197e-06 34 2 36.36547558 -23.68676383 -23.689202 0.001219083545 0.0005885128327 0.0006279363025 1.053580541e-05
35 2 -23.68169552 -23.690482 0.004393238412 0.0009021557258 0.0008640138888 1.329061297e-05 35 2 36.55974375 -23.68319963 -23.690482 0.003641183354 0.000815464884 0.0008640138888 1.662920456e-05
36 2 -23.68301023 -23.689902 0.003445886213 0.0006432418939 0.0006152154094 8.589463686e-06 36 2 36.46414346 -23.68507116 -23.689902 0.002415420054 0.0005812774047 0.0006152154094 9.669302107e-06
37 2 -23.68063814 -23.690563 0.004962429905 0.0006318669831 0.0006038725031 7.463726891e-06 37 2 36.63368821 -23.6817672 -23.690563 0.004397900334 0.0005717456253 0.0006038725031 8.311567538e-06
38 2 -23.68337588 -23.690207 0.003415557958 0.001118071502 0.00107369735 1.811741272e-05 38 2 36.45345189 -23.68547117 -23.690207 0.002367914312 0.001009744333 0.00107369735 2.610693709e-05
39 2 -23.68369233 -23.689285 0.00279633424 0.0009215683923 0.000890013483 1.127366011e-05 39 2 36.38484847 -23.68616091 -23.689285 0.001562044483 0.0008322058899 0.000890013483 1.991679691e-05
40 2 -23.68344234 -23.689768 0.003162828655 0.001120158205 0.001080249045 1.630224161e-05 40 2 36.43347895 -23.68567207 -23.689768 0.002047966899 0.001012061035 0.001080249045 2.782864008e-05
41 2 -23.68224173 -23.68968 0.003719136062 0.0009070521506 0.0008680034562 1.339908745e-05 41 2 36.50220719 -23.68411383 -23.68968 0.002783085738 0.0008199315614 0.0008680034562 1.637343483e-05
42 2 -23.68259685 -23.690074 0.003738573623 0.00143649564 0.001373818765 2.432187597e-05 42 2 36.50719109 -23.68445604 -23.690074 0.002808981302 0.001296718439 0.001373818765 2.64147971e-05
43 2 -23.68469428 -23.688108 0.001706858485 0.0006587619148 0.0006336134468 7.932733888e-06 43 2 36.28428565 -23.68777598 -23.688108 0.0001660085343 0.000594221946 0.0006336134468 1.099939509e-05
44 2 -23.68405177 -23.689241 0.002594615211 0.0009223784492 0.0008880101351 1.189350098e-05 44 2 36.3642236 -23.68663754 -23.689241 0.001301727662 0.0008329159633 0.0008880101351 1.874593476e-05
45 2 -23.68384626 -23.68952 0.002836868987 0.0009181252225 0.0008860011287 1.116431522e-05 45 2 36.40397469 -23.68626116 -23.68952 0.001629419996 0.0008297070704 0.0008860011287 1.917842744e-05
46 2 -23.68524763 -23.686278 0.0005151850613 0.0006668258323 0.0006406777661 8.58562287e-06 46 2 36.15958616 -23.68901859 -23.686278 0.001370293226 0.0006010646632 0.0006406777661 1.138305654e-05
47 2 -23.67629396 -23.690097 0.006901518594 0.0008737523828 0.0008410160522 1.125104926e-05 47 2 36.85012426 -23.6762264 -23.690097 0.006935298115 0.0007925625457 0.0008410160522 1.643998947e-05
48 2 -23.67835169 -23.690811 0.006229654604 0.0008814028122 0.0008500070588 1.103963422e-05 48 2 36.76983294 -23.67871264 -23.690811 0.006049181932 0.0007984019479 0.0008500070588 1.765059262e-05
49 2 -23.67981574 -23.690266 0.005225130991 0.001091936388 0.001044322747 1.944706281e-05 49 2 36.6630398 -23.68078335 -23.690266 0.004741323226 0.0009871892379 0.001044322747 2.331514572e-05
50 2 -23.68209703 -23.690597 0.004249983197 0.001105769275 0.001050833003 2.242828165e-05 50 2 36.55357619 -23.68366573 -23.690597 0.003465633435 0.0009975988347 0.001050833003 2.173210926e-05
51 2 -23.68050418 -23.690673 0.005084408246 0.000631172526 0.0006038907186 7.85857762e-06 51 2 36.65271066 -23.68154759 -23.690673 0.004562704504 0.0005710871669 0.0006038907186 8.900574077e-06
52 2 -23.68185505 -23.690551 0.00434797299 0.0009022813915 0.0008590064028 1.486707593e-05 52 2 36.56222224 -23.68337216 -23.690551 0.003589418943 0.0008144210952 0.0008590064028 1.523928952e-05
53 2 -23.68191508 -23.690693 0.004388958442 0.0009013677777 0.0008590110593 1.516503239e-05 53 2 36.56679849 -23.68340668 -23.690693 0.003643158311 0.0008137974304 0.0008590110593 1.595698248e-05
54 2 -23.68097184 -23.69021 0.004619081961 0.0009000307855 0.0008730051546 9.670733045e-06 54 2 36.59811665 -23.6823077 -23.69021 0.003951151804 0.0008145831598 0.0008730051546 2.003359235e-05
55 2 -23.68426495 -23.688943 0.002339025274 0.0009232115961 0.0008800306813 1.619629586e-05 55 2 36.34900278 -23.68697807 -23.688943 0.0009824644101 0.0008322110648 0.0008800306813 1.744870469e-05
56 2 -23.67842316 -23.690136 0.005856419419 0.0006239138245 0.000593996633 8.394193459e-06 56 2 36.74034826 -23.67898787 -23.690136 0.005574066484 0.0005652132989 0.000593996633 7.92587851e-06
57 2 -23.6849427 -23.687444 0.001250651312 0.0009347957747 0.000903059245 1.290489522e-05 57 2 36.23610366 -23.68828866 -23.687444 0.0004223293819 0.0008436278789 0.000903059245 2.177751265e-05
58 2 -23.6836322 -23.689801 0.003084401813 0.0009160470298 0.0008740011442 1.424271291e-05 58 2 36.42259639 -23.68591698 -23.689801 0.001942008249 0.0008265155784 0.0008740011442 1.602155127e-05
59 2 -23.6814842 -23.690408 0.00446190038 8.690218902e-07 0 3.245696976e-07 59 2 36.58194 -23.68291534 -23.690408 0.003746329075 7.853116414e-07 0 2.932806621e-07
60 2 -23.68115817 -23.690362 0.004601914896 0.0006345480975 0.0006067503605 9.377221838e-06 60 2 36.59950783 -23.68250113 -23.690362 0.003930433448 0.0005739954417 0.0006067503605 1.009250412e-05
61 2 -23.67229452 -23.688881 0.008293240443 0.0008566684404 0.0008250054545 1.108928728e-05 61 2 37.02589653 -23.67131384 -23.688881 0.008783582181 0.0007776878254 0.0008250054545 1.619373008e-05
62 2 -23.6791352 -23.690515 0.005689901939 0.001534883496 0.001475779794 2.124695951e-05 62 2 36.71189602 -23.67982686 -23.690515 0.005344069182 0.001390387166 0.001475779794 3.436613175e-05
63 2 -23.67786743 -23.690551 0.006341785918 0.0006228264143 0.0005996599036 7.295416678e-06 63 2 36.78962367 -23.67814275 -23.690551 0.006204123773 0.0005637977551 0.0005996599036 1.001095778e-05
64 2 -23.68316372 -23.689487 0.003161641446 0.0006469755816 0.0006194384554 7.530154689e-06 64 2 36.42642467 -23.68541088 -23.689487 0.002038057601 0.0005844344049 0.0006194384554 9.105178613e-06
65 2 -23.6834063 -23.68986 0.003226849907 0.0009142334935 0.0008860124153 1.052672488e-05 65 2 36.4423543 -23.68559418 -23.68986 0.002132908295 0.0008266682194 0.0008860124153 2.074533254e-05
66 2 -23.68377813 -23.689288 0.002754934411 0.00145229412 0.001396479144 1.702826801e-05 66 2 36.39164409 -23.68624726 -23.689288 0.001520371922 0.001312283722 0.001396479144 2.724122629e-05
67 2 -23.67700773 -23.690457 0.006724637324 0.0006187196638 0.0005939831647 7.080762895e-06 67 2 36.83059874 -23.67704953 -23.690457 0.006703736699 0.0005605067938 0.0005939831647 8.903855256e-06
68 2 -23.67552804 -23.689792 0.007131981721 0.0008698720997 0.0008340587509 1.418233126e-05 68 2 36.8936692 -23.67527599 -23.689792 0.007258002565 0.000787658236 0.0008340587509 1.727027889e-05
69 2 -23.67583966 -23.690006 0.007083167888 0.0006146073806 0.0005897694465 8.07065747e-06 69 2 36.88495742 -23.67562381 -23.690006 0.007191094218 0.0005570824127 0.0005897694465 9.526352044e-06
70 2 -23.6777397 -23.690571 0.006415648131 0.0006207500925 0.0005939781141 7.401996527e-06 70 2 36.7928657 -23.67798232 -23.690571 0.00629434147 0.0005623157716 0.0005939781141 8.388724073e-06
71 2 -23.68270064 -23.690213 0.003756180649 0.001112284016 0.001084315452 1.142137177e-05 71 2 36.50844234 -23.6845524 -23.690213 0.002830300186 0.001007417856 0.001084315452 3.13901245e-05
72 2 -23.67870666 -23.690617 0.005955171449 0.0006250314539 0.0006024682564 6.623275772e-06 72 2 36.74419477 -23.67922697 -23.690617 0.005695015742 0.0005656413796 0.0006024682564 9.800558604e-06
73 2 -23.68231586 -23.689761 0.00372256923 0.0009095463313 0.0008790688255 1.222939687e-05 73 2 36.49448266 -23.68420852 -23.689761 0.002776239615 0.0008225588858 0.0008790688255 2.057348461e-05
74 2 -23.67673328 -23.69027 0.006768359835 7.188704983e-07 0 2.129270726e-07 74 2 36.83933705 -23.67673911 -23.69027 0.006765442668 6.51984476e-07 0 1.932645324e-07
75 2 -23.68164707 -23.690599 0.004475963334 0.0006376044826 0.0006137752031 6.574310078e-06 75 2 36.5709148 -23.68309624 -23.690599 0.003751378046 0.0005763054751 0.0006137752031 9.640531893e-06
76 2 -23.67997815 -23.69061 0.00531592353 9.698202031e-07 0 3.95870452e-07 76 2 36.67683082 -23.68088394 -23.69061 0.004863030461 8.763722169e-07 0 3.577227741e-07
77 2 -23.68008634 -23.690603 0.005258328411 0.0008923489326 0.0008590331775 1.256831367e-05 77 2 36.66115635 -23.68104805 -23.690603 0.004777472809 0.0008071491031 0.0008590331775 1.853779451e-05
78 2 -23.68488966 -23.687908 0.001509170978 0.0009340324028 0.0009010105438 1.204104822e-05 78 2 36.25583797 -23.68810086 -23.687908 9.643173451e-05 0.0008433322094 0.0009010105438 2.010525612e-05
79 2 -23.6795094 -23.690688 0.005589299031 0.0008890828456 0.0008470064935 1.419626566e-05 79 2 36.69315685 -23.68027964 -23.690688 0.005204178753 0.0008040458508 0.0008470064935 1.442630316e-05
80 2 -23.68316126 -23.689988 0.003413372454 0.0006451612224 0.0006194465272 7.422528505e-06 80 2 36.46769977 -23.68522986 -23.689988 0.002379071717 0.0005827976437 0.0006194465272 9.763878015e-06
81 2 -23.68321956 -23.689613 0.003196718897 0.000912899593 0.0008740732235 1.539555522e-05 81 2 36.44434113 -23.68541392 -23.689613 0.00209953858 0.0008243238033 0.0008740732235 1.862099135e-05
82 2 -23.68181374 -23.690678 0.004432127652 0.0006373963006 0.0006123757017 7.454253265e-06 82 2 36.57453003 -23.68327227 -23.690678 0.003702863528 0.0005762034709 0.0006123757017 9.833686501e-06
83 2 -23.68196226 -23.69017 0.004103870298 0.0009041773842 0.0008750051428 9.854119736e-06 83 2 36.54218785 -23.68361157 -23.69017 0.003279215566 0.0008176791029 0.0008750051428 1.921467316e-05
84 2 -23.68483517 -23.687892 0.001528413806 0.001142179928 0.001112070142 1.229243027e-05 84 2 36.26350252 -23.68802292 -23.687892 6.545993121e-05 0.001032253376 0.001112070142 3.258468659e-05
85 2 -23.68271169 -23.690132 0.003710155487 0.0009085291666 0.000868018433 1.49999647e-05 85 2 36.49725495 -23.68460293 -23.690132 0.002764534398 0.0008196684225 0.000868018433 1.73736591e-05
86 2 -23.68018066 -23.690843 0.005331170668 0.0006305009468 0.0006081134763 5.90881572e-06 86 2 36.66468316 -23.68110857 -23.690843 0.004867214139 0.0005702307406 0.0006081134763 9.414220345e-06
87 2 -23.67957976 -23.690598 0.005509118787 0.001259431767 0.001217674833 1.243374729e-05 87 2 36.69098146 -23.68038294 -23.690598 0.005107529327 0.001139059342 0.001217674833 2.06566425e-05
88 2 -23.67869549 -23.690656 0.005980257091 0.0006251939788 0.0006024765556 7.13023928e-06 88 2 36.7498524 -23.67919254 -23.690656 0.005731731866 0.0005658199144 0.0006024765556 1.012824587e-05
89 2 -23.67884961 -23.690254 0.005702197143 0.001084797449 0.001043496047 1.68662339e-05 89 2 36.72620595 -23.67950048 -23.690254 0.005376762214 0.0009822281627 0.001043496047 2.500732518e-05
90 2 -23.67961701 -23.690694 0.005538492834 0.0006273834422 0.0006010740387 8.134278748e-06 90 2 36.7046344 -23.68037755 -23.690694 0.00515822503 0.0005678245812 0.0006010740387 9.481625137e-06
91 2 -23.68202458 -23.690097 0.004036211359 0.0009041492449 0.0008730234819 1.169617364e-05 91 2 36.53215524 -23.6837194 -23.690097 0.00318880242 0.0008183268201 0.0008730234819 1.936710758e-05
92 2 -23.68476212 -23.688402 0.001819942156 0.0006575509652 0.000632180354 7.7469499e-06 92 2 36.28988463 -23.68778953 -23.688402 0.000306233365 0.0005932101303 0.000632180354 1.068318322e-05
93 2 -23.68425036 -23.688669 0.002209320265 0.001133553123 0.001092474256 1.677033392e-05 93 2 36.330155 -23.68704981 -23.688669 0.0008095957127 0.001023514967 0.001092474256 2.815195409e-05
94 2 -23.68017683 -23.690538 0.005180583191 0.0008923392716 0.0008610145179 1.053989885e-05 94 2 36.65451876 -23.68118381 -23.690538 0.004677093696 0.0008073441427 0.0008610145179 1.797964322e-05
95 2 -23.68290142 -23.689722 0.003410287964 0.0006465597037 0.0006251287867 7.275875006e-06 95 2 36.46623662 -23.68497164 -23.689722 0.002375180903 0.0005838510966 0.0006251287867 1.162407198e-05
96 2 -23.6789537 -23.690581 0.005813649829 7.452601432e-07 0 2.355432868e-07 96 2 36.73431174 -23.67954699 -23.690581 0.005517005254 6.747207861e-07 0 2.132659501e-07
97 2 -23.6840847 -23.688755 0.002335150427 0.0006519723076 0.0006251143895 8.25078808e-06 97 2 36.34544239 -23.68680631 -23.688755 0.0009743455055 0.0005885973278 0.0006251143895 1.022234556e-05
98 2 -23.67367881 -23.689312 0.007816596299 0.0008618264365 0.0008290597083 1.323477647e-05 98 2 36.9736935 -23.67299367 -23.689312 0.008159162687 0.0007819742447 0.0008290597083 1.76069415e-05
99 2 -23.68489152 -23.687388 0.001248238956 0.001145929445 0.001120237475 1.049029355e-05 99 2 36.24487417 -23.68822174 -23.687388 0.0004168686754 0.001036416473 0.001120237475 3.421810783e-05
100 2 -23.68174648 -23.690664 0.004458761579 0.0006367386055 0.0006109402589 6.270984336e-06 100 2 36.57555586 -23.68319244 -23.690664 0.003735779019 0.0005756998982 0.0006109402589 8.460885317e-06
101 2 -23.67450636 -23.68941 0.007451817634 0.0006119997091 0.0005883553348 7.715800125e-06 101 2 36.94151938 -23.67402837 -23.68941 0.00769081595 0.0005547944898 0.0005883553348 9.667605875e-06
102 2 -23.68321442 -23.690035 0.003410290658 0.0009128748923 0.0008810062429 1.106310227e-05 102 2 36.45547212 -23.68530561 -23.690035 0.002364692981 0.0008249402484 0.0008810062429 1.906781709e-05
103 2 -23.67584952 -23.690015 0.007082738579 0.0008706222251 0.0008450195264 9.898495893e-06 103 2 36.88496132 -23.67563424 -23.690015 0.007190382353 0.000790172518 0.0008450195264 1.940915801e-05
104 2 -23.67856154 -23.690752 0.006095232174 0.0006245583967 0.0005996415596 7.033875201e-06 104 2 36.76103389 -23.67899294 -23.690752 0.005879529841 0.0005653529749 0.0005996415596 9.061380987e-06
105 2 -23.68297614 -23.689825 0.00342442945 0.0009134966073 0.0008800215906 1.147892484e-05 105 2 36.45404349 -23.68506744 -23.689825 0.002378779626 0.0008251854421 0.0008800215906 1.852267093e-05
106 2 -23.67876135 -23.690562 0.00590032283 0.0008849512172 0.0008560011682 1.005528708e-05 106 2 36.74654739 -23.67929575 -23.690562 0.005633127253 0.000801763107 0.0008560011682 1.842443236e-05
107 2 -23.67874342 -23.690622 0.005939288687 0.0008835043772 0.0008390017878 1.530603189e-05 107 2 36.74084732 -23.67927675 -23.690622 0.005672626415 0.0007986783077 0.0008390017878 1.383930455e-05
108 2 -23.6843441 -23.688764 0.002209950672 0.0009250850126 0.0008910185183 1.254407066e-05 108 2 36.33025646 -23.68714468 -23.688764 0.0008096596348 0.0008354959994 0.0008910185183 1.950545073e-05
109 2 -23.68340608 -23.690011 0.003302460748 0.0006464901241 0.0006194287691 7.216590251e-06 109 2 36.44122368 -23.68556667 -23.690011 0.002222166915 0.0005839138329 0.0006194287691 9.095263256e-06
110 2 -23.68476306 -23.687696 0.001466471271 0.001143422035 0.001087589996 2.279977174e-05 110 2 36.25348342 -23.68799518 -23.687696 0.0001495917205 0.001029561919 0.001087589996 2.368346819e-05
111 2 -23.67977853 -23.691019 0.005620235289 0.000888876189 0.0008540035129 1.1779733e-05 111 2 36.69693588 -23.68052902 -23.691019 0.005244990763 0.0008045111684 0.0008540035129 1.660792245e-05
112 2 -23.68440001 -23.689025 0.002312496017 6.723949094e-07 0 2.648676661e-07 112 2 36.3425194 -23.68713615 -23.689025 0.0009444242204 6.048393422e-07 0 2.391864739e-07
113 2 -23.68208689 -23.689952 0.003932553163 7.386833996e-07 0 2.88150653e-07 113 2 36.51656499 -23.68385666 -23.689952 0.003047669619 6.637963301e-07 0 2.603475835e-07
114 2 -23.67935439 -23.69061 0.005627806504 0.0008872685213 0.0008580011655 1.019979918e-05 114 2 36.71447816 -23.68006157 -23.69061 0.005274216197 0.0008035446124 0.0008580011655 1.851139775e-05
115 2 -23.68099138 -23.690595 0.004801812376 0.0008956193373 0.0008680069124 9.843191998e-06 115 2 36.62519495 -23.68220128 -23.690595 0.004196860391 0.0008113491541 0.0008680069124 1.944419979e-05
116 2 -23.67743565 -23.690231 0.006397673953 0.0006194343635 0.0005925892338 8.542917156e-06 116 2 36.80154127 -23.67766382 -23.690231 0.006283590712 0.0005612910408 0.0005925892338 9.235122707e-06
117 2 -23.67809541 -23.690469 0.006186797077 0.0008802359765 0.0008500294113 1.182654414e-05 117 2 36.77742539 -23.67845523 -23.690469 0.006006884644 0.0007980880228 0.0008500294113 1.88002833e-05
118 2 -23.68279142 -23.690482 0.003845288647 0.0009078436148 0.0008740102974 1.225600095e-05 118 2 36.50183296 -23.68462479 -23.690482 0.002928604258 0.0008206653147 0.0008740102974 1.862862483e-05
119 2 -23.67443144 -23.689613 0.007590778783 0.0008650318724 0.0008320192305 1.23538989e-05 119 2 36.93568763 -23.67391526 -23.689613 0.007848867984 0.0007836859568 0.0008320192305 1.723468539e-05
120 2 -23.68501591 -23.687426 0.001205043669 0.001145633567 0.00109577735 2.03694619e-05 120 2 36.23289183 -23.68838681 -23.687426 0.0004804048231 0.001032041797 0.00109577735 2.600453853e-05
121 2 -23.68302307 -23.689562 0.003269464306 0.0006474095532 0.0006265237426 6.532536015e-06 121 2 36.44295904 -23.68519521 -23.689562 0.002183395162 0.0005844757167 0.0006265237426 1.128889659e-05
122 2 -23.68134549 -23.6904 0.004527256823 4.272990756e-07 0 1.732352808e-07 122 2 36.59751671 -23.68271637 -23.6904 0.003841815485 3.610825174e-07 0 1.4665868e-07
123 2 -23.67843015 -23.690561 0.006065426647 0.0006235069318 0.0005982273815 6.816496585e-06 123 2 36.76766724 -23.67885647 -23.690561 0.005852264977 0.0005645533896 0.0005982273815 8.625051998e-06
124 2 -23.67292129 -23.689107 0.00809285397 0.0008589766346 0.0008180073349 1.439377155e-05 124 2 37.00025894 -23.67207453 -23.689107 0.008516233835 0.0007781106616 0.0008180073349 1.390580399e-05
125 2 -23.68123551 -23.690145 0.004454742608 0.0009009679944 0.0008740766557 1.132072203e-05 125 2 36.58722353 -23.68265657 -23.690145 0.00374421628 0.0008159137665 0.0008740766557 2.136045675e-05
126 2 -23.67777646 -23.690482 0.006352769316 0.0006215821083 0.0005939983165 8.362048689e-06 126 2 36.79405605 -23.67803714 -23.690482 0.006222430293 0.0005630702013 0.0005939983165 8.85354297e-06
127 2 -23.68318209 -23.689864 0.003340952886 0.0009142894487 0.0008860124153 1.044271435e-05 127 2 36.45320348 -23.68530353 -23.689864 0.002280236365 0.0008267100988 0.0008860124153 2.061923922e-05
# Elastic_FCC.xyz # Elastic_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
128 4 -46.449456 -46.437936 0.002880000611 0.0007088173441 0.001265949446 0.0001573706237 128 4 74.14589882 -46.45131085 -46.437936 0.003343711499 0.0008256456522 0.001265949446 0.0001479290162
129 4 -46.45317307 -46.438504 0.003667267825 0.0007210982328 0.001492549497 0.0002032393675 129 4 74.26852111 -46.45483689 -46.438504 0.00408322283 0.0008748833702 0.001492549497 0.0001669960806
130 4 -46.44686167 -46.436378 0.002620918523 0.0004870837365 0.000810592376 0.0001107544174 130 4 74.05957274 -46.44875622 -46.436378 0.00309455485 0.0005424811735 0.000810592376 0.0001015808542
131 4 -46.45357979 -46.441551 0.003007196305 0.0008634182131 0.001283675193 0.0001231453909 131 4 74.30647158 -46.45520791 -46.441551 0.003414228451 0.001024641 0.001283675193 8.610021967e-05
132 4 -46.42409677 -46.416957 0.001784942313 0.0007481922079 0.001186145859 0.0001205918882 132 4 73.40902276 -46.4265266 -46.416957 0.002392400067 0.0008639837782 0.001186145859 9.385948781e-05
133 4 -46.45078882 -46.440495 0.002573455911 0.0007289008721 0.001212440514 0.0001119490174 133 4 74.1804881 -46.45258342 -46.440495 0.003022104862 0.0008837693055 0.001212440514 7.54705377e-05
134 4 -46.4501363 -46.437972 0.003041076136 0.001116532125 0.002358226452 0.0003166808771 134 4 74.17596744 -46.45191353 -46.437972 0.00348538317 0.001290912634 0.002358226452 0.0002715207448
135 4 -46.46241981 -46.44586 0.004139951294 0.001077737689 0.002033949852 0.0002702964015 135 4 74.73528136 -46.46363987 -46.44586 0.004444967559 0.001259032014 0.002033949852 0.0002223899959
136 4 -46.44743429 -46.435744 0.002922571394 0.0008383971706 0.001690849491 0.0002711013554 136 4 74.0787509 -46.44925412 -46.435744 0.003377531217 0.0009337469328 0.001690849491 0.0002527015084
137 4 -46.45237555 -46.438209 0.003541637787 0.0007039962535 0.001160049999 0.0001096430557 137 4 74.24609528 -46.45412062 -46.438209 0.003977905441 0.0008183472184 0.001160049999 8.303212282e-05
138 4 -46.43645451 -46.42629 0.002541127472 0.0004839683449 0.0005297018029 1.480491546e-05 138 4 73.73005434 -46.43863377 -46.42629 0.003085943173 0.0005398665308 0.0005297018029 9.433755819e-06
139 4 -46.45466199 -46.443301 0.002840247268 0.0008590849412 0.001818421568 0.0002395191538 139 4 74.33993289 -46.45634184 -46.443301 0.003260209859 0.001019667847 0.001818421568 0.0002031714008
140 4 -46.4513559 -46.439002 0.003088474484 0.000980675092 0.001416973535 0.0001142710898 140 4 74.20715045 -46.45310823 -46.439002 0.003526557791 0.001120917878 0.001416973535 8.385490094e-05
141 4 -46.44224357 -46.432438 0.00245139227 0.0008958100898 0.001010469198 5.862303988e-05 141 4 73.89686848 -46.44426829 -46.432438 0.002957572572 0.001055104669 0.001010469198 5.761635655e-05
142 4 -46.41846428 -46.412654 0.001452568802 0.001104791425 0.001801959766 0.0001900084105 142 4 73.27773838 -46.42097352 -46.412654 0.002079881174 0.001288759108 0.001801959766 0.0001651013922
143 4 -46.45594552 -46.443231 0.003178629143 0.0006959928784 0.001691590967 0.0002104366356 143 4 74.40027968 -46.45756841 -46.443231 0.003584351835 0.0008139750432 0.001691590967 0.0002012572515
144 4 -46.44141177 -46.431513 0.00247469212 0.001149659372 0.001680544852 0.0001329997121 144 4 73.86123747 -46.44349423 -46.431513 0.002995306686 0.00134586635 0.001680544852 8.973225319e-05
145 4 -46.44458344 -46.435608 0.00224385943 0.000711021509 0.0009593039143 5.831382606e-05 145 4 73.96908649 -46.4465827 -46.435608 0.002743674619 0.0008335711035 0.0009593039143 3.003885348e-05
146 4 -46.45129649 -46.437689 0.003401871689 0.0007271142738 0.001217708504 0.0001414871092 146 4 74.18717232 -46.45311791 -46.437689 0.003857228017 0.0008866862425 0.001217708504 0.0001038986229
147 4 -46.43755262 -46.428447 0.002276404472 0.0008708378565 0.002060081552 0.0003082033743 147 4 73.76897316 -46.43964365 -46.428447 0.002799161691 0.0009977338004 0.002060081552 0.0002905770514
148 4 -46.44295113 -46.432255 0.00267403188 0.0005315813764 0.0006274201144 5.596270268e-05 148 4 73.9161373 -46.44497446 -46.432255 0.003179865353 0.0006398887096 0.0006274201144 6.119155431e-05
149 4 -46.45482154 -46.442315 0.003126635324 0.0008653689406 0.002424436842 0.0004107290683 149 4 74.36502962 -46.45637695 -46.442315 0.003515486518 0.001024758209 0.002424436842 0.0003681838217
150 4 -46.44918467 -46.436613 0.003142918309 0.0004839663128 0.0005321240457 3.890880543e-05 150 4 74.11860796 -46.45104156 -46.436613 0.003607139707 0.000542307804 0.0005321240457 4.066198978e-05
151 4 -46.44094809 -46.430825 0.002530772174 0.0007559646277 0.001399987143 0.0001669802678 151 4 73.86741001 -46.44297515 -46.430825 0.003037538607 0.0009095490857 0.001399987143 0.000130785128
152 4 -46.44335614 -46.43312 0.002559035587 0.0004859700309 0.0007272771136 6.315695513e-05 152 4 73.94132612 -46.44533403 -46.43312 0.003053507676 0.0005400988424 0.0007272771136 5.413031343e-05
153 4 -46.44518607 -46.434347 0.002709767129 0.0007148497795 0.001284451634 0.0001580665901 153 4 73.9811119 -46.44719039 -46.434347 0.003210848405 0.0008341122771 0.001284451634 0.0001304096221
154 4 -46.43969219 -46.430573 0.002279798333 0.00072875179 0.001315746176 0.000142372977 154 4 73.82698041 -46.441812 -46.430573 0.002809749316 0.0008428066075 0.001315746176 0.0001159814943
155 4 -46.46201856 -46.445665 0.004088390852 0.0008369246217 0.00180789159 0.0002715757049 155 4 74.70690467 -46.4633092 -46.445665 0.004411050207 0.001032736499 0.00180789159 0.0002150498129
156 4 -46.44738266 -46.435898 0.002871166201 0.0007118215897 0.001869300939 0.0002650888178 156 4 74.08446722 -46.44922009 -46.435898 0.003330522688 0.0008301151804 0.001869300939 0.0002469789922
157 4 -46.45279209 -46.442107 0.002671271631 0.0005099355574 0.0006020930161 3.155335447e-05 157 4 74.25274774 -46.45452028 -46.442107 0.003103319043 0.0006221716513 0.0006020930161 2.151286804e-05
158 4 -46.44687446 -46.434432 0.003110615714 0.0008364031703 0.001092982159 9.484366005e-05 158 4 74.05043726 -46.44881316 -46.434432 0.003595289303 0.0009353943426 0.001092982159 7.589096221e-05
159 4 -46.45033825 -46.436308 0.003507562522 0.0009954281391 0.001839150891 0.0002479613631 159 4 74.16653794 -46.45216046 -46.436308 0.003963116012 0.001165997488 0.001839150891 0.0002017849653
160 4 -46.43248168 -46.423938 0.002135919949 0.0007772193879 0.001463463016 0.0001986681069 160 4 73.62293094 -46.43471139 -46.423938 0.002693346975 0.0009282950076 0.001463463016 0.0001806433153
161 4 -46.43702199 -46.428115 0.002226747981 0.0005418219957 0.0008584497656 9.283863381e-05 161 4 73.74948122 -46.43915587 -46.428115 0.002760218433 0.000645515606 0.0008584497656 7.555218569e-05
162 4 -46.43553597 -46.4269 0.002158992752 0.001008467413 0.001845719914 0.00024455962 162 4 73.70731572 -46.4377108 -46.4269 0.002702698795 0.001146432571 0.001845719914 0.0002177014657
163 4 -46.43191737 -46.421142 0.00269384137 0.0009169914298 0.001309150106 9.335100097e-05 163 4 73.59054722 -46.43424497 -46.421142 0.003275743402 0.001070285015 0.001309150106 6.310130391e-05
164 4 -46.44107961 -46.432233 0.002211651338 0.0006944670911 0.0007253109678 2.446203898e-05 164 4 73.85798892 -46.44313986 -46.432233 0.002726715023 0.000770442732 0.0007253109678 2.477634456e-05
165 4 -46.44097784 -46.429408 0.002892459649 0.0007189999753 0.001068327665 9.331287519e-05 165 4 73.86179419 -46.44300648 -46.429408 0.003399620631 0.000833457346 0.001068327665 6.682329804e-05
166 4 -46.45970672 -46.445145 0.003640430606 0.0008323398895 0.001776038288 0.000241778013 166 4 74.58468636 -46.46113881 -46.445145 0.003998452755 0.0009654561253 0.001776038288 0.0002133574173
167 4 -46.44583143 -46.435868 0.002490857628 0.001007239475 0.002376074704 0.0003893124404 167 4 74.02247797 -46.44776713 -46.435868 0.002974783408 0.001172308278 0.002376074704 0.0003537233362
168 4 -46.4515773 -46.439663 0.002978574612 0.0004764710524 0.001119403413 0.0001156692402 168 4 74.20501804 -46.45335725 -46.439663 0.003423562793 0.0005357335948 0.001119403413 0.0001057861048
169 4 -46.43612447 -46.428287 0.00195936642 0.001036891264 0.001277000392 6.942055774e-05 169 4 73.72492498 -46.43827692 -46.428287 0.00249748019 0.001199172287 0.001277000392 3.442241395e-05
170 4 -46.4323966 -46.424584 0.001953149801 0.0005497544117 0.0008032957114 5.852281957e-05 170 4 73.62492908 -46.43462391 -46.424584 0.002509976491 0.0006543042024 0.0008032957114 4.113076772e-05
171 4 -46.41884421 -46.413045 0.001449803236 0.0009011718881 0.001248322074 7.333380516e-05 171 4 73.28647 -46.42133993 -46.413045 0.002073732867 0.001025290654 0.001248322074 5.004201967e-05
172 4 -46.44596985 -46.436994 0.002243961387 0.0008480487041 0.001331939188 0.0001689650386 172 4 74.01119894 -46.44792434 -46.436994 0.002732584481 0.0009408903639 0.001331939188 0.0001513955587
173 4 -46.45736434 -46.443604 0.003440085706 0.0007046835731 0.001177046303 0.000122309487 173 4 74.45838911 -46.45890245 -46.443604 0.003824612242 0.0008652237342 0.001177046303 0.0001036876632
174 4 -46.4531541 -46.439718 0.003359024693 6.718665563e-07 0 1.784212677e-07 174 4 74.29439096 -46.45481655 -46.439718 0.003774637959 7.937739607e-07 0 2.16900779e-07
175 4 -46.44922127 -46.435527 0.003423566396 0.0008698447035 0.0009338393866 5.635428662e-05 175 4 74.12581885 -46.45104078 -46.435527 0.003878446058 0.001033999404 0.0009338393866 5.850821011e-05
176 4 -46.44518705 -46.434787 0.002600012526 0.0008890985417 0.00117329195 6.906839261e-05 176 4 73.97170625 -46.44716581 -46.434787 0.003094701764 0.001051431266 0.00117329195 5.01747675e-05
177 4 -46.44789017 -46.434929 0.00324029173 0.001006522874 0.001349491756 8.807224523e-05 177 4 74.0799757 -46.44974298 -46.434929 0.003703495842 0.001176626647 0.001349491756 5.454636617e-05
178 4 -46.43673847 -46.426499 0.002559868692 0.0009134543992 0.001248937949 9.133606536e-05 178 4 73.74433679 -46.4388625 -46.426499 0.003090875895 0.001072266841 0.001248937949 5.553437534e-05
179 4 -46.44932495 -46.437025 0.003074986544 0.0006805240432 0.000938418883 7.446008431e-05 179 4 74.14770713 -46.45110145 -46.437025 0.003519111637 0.0007601929639 0.000938418883 6.871857646e-05
180 4 -46.43885209 -46.428937 0.002478772296 0.0009031344997 0.001286352984 0.0001081690229 180 4 73.80957625 -46.44091488 -46.428937 0.002994470545 0.001060607401 0.001286352984 7.2762261e-05
181 4 -46.45413306 -46.442516 0.002904263993 0.000506604563 0.00094855469 0.0001414866709 181 4 74.32407369 -46.45577946 -46.442516 0.003315864517 0.0006130126198 0.00094855469 0.0001237589752
182 4 -46.44060244 -46.428736 0.002966609134 0.0007579010233 0.001424321593 0.0001681832084 182 4 73.84764949 -46.44267435 -46.428736 0.003484586658 0.0009114051058 0.001424321593 0.0001319991106
183 4 -46.44430426 -46.433359 0.002736316202 0.0008950557387 0.001276381604 0.0001027241271 183 4 73.97111028 -46.44621408 -46.433359 0.003213769843 0.001054983475 0.001276381604 6.67936474e-05
184 4 -46.45260002 -46.438799 0.00345025532 0.0006868717473 0.0008186940821 3.675916237e-05 184 4 74.25298337 -46.45429983 -46.438799 0.003875207653 0.0007658804804 0.0008186940821 3.523360132e-05
185 4 -46.45478935 -46.441993 0.003199088629 0.000703010985 0.001887735151 0.0002666518851 185 4 74.36513571 -46.45635746 -46.441993 0.003591113969 0.0008209061886 0.001887735151 0.0002392272687
186 4 -46.44949137 -46.439033 0.002614591408 0.0006795560995 0.000821568013 5.214373405e-05 186 4 74.14572274 -46.45131062 -46.439033 0.003069403991 0.0007583547125 0.000821568013 4.304382184e-05
187 4 -46.44856954 -46.436967 0.002900635979 0.000860448627 0.001482323514 0.0001802503616 187 4 74.11964094 -46.45043541 -46.436967 0.003367101873 0.0009904274689 0.001482323514 0.0001528507492
188 4 -46.43759968 -46.427245 0.00258867094 0.0008795521813 0.001293885621 0.0001012099865 188 4 73.76706483 -46.43970043 -46.427245 0.003113856835 0.001008693047 0.001293885621 8.257978381e-05
189 4 -46.45133388 -46.438046 0.003321969731 0.0009940752633 0.001627288542 0.000174152867 189 4 74.21830016 -46.45309069 -46.438046 0.003761172827 0.00116354854 0.001627288542 0.0001286952583
190 4 -46.42813695 -46.420083 0.002013486722 0.001161998446 0.002395244873 0.0003650969018 190 4 73.51075683 -46.43047578 -46.420083 0.00259819585 0.001334826131 0.002395244873 0.0003392003683
191 4 -46.46060362 -46.445247 0.003839154837 0.0006909751141 0.001219330964 0.0001271217748 191 4 74.62704502 -46.46197961 -46.445247 0.004183151461 0.0008490345633 0.001219330964 8.984638543e-05
192 4 -46.45903895 -46.446044 0.003248736964 0.0006847065621 0.001305329077 0.0001398957152 192 4 74.54172989 -46.46048301 -46.446044 0.003609751612 0.0008018136666 0.001305329077 0.0001126246298
193 4 -46.44724817 -46.434472 0.003194042613 0.0007061519125 0.0008323340675 6.681050285e-05 193 4 74.05152275 -46.4491333 -46.434472 0.003665324806 0.0008288481706 0.0008323340675 5.797426995e-05
194 4 -46.45649776 -46.44458 0.002979439009 0.0004998748498 0.0009744208536 8.547729233e-05 194 4 74.415732 -46.45806324 -46.44458 0.003370810956 0.0006130004847 0.0009744208536 6.665443495e-05
195 4 -46.45403889 -46.441776 0.003065721535 0.0008652918641 0.001339231869 0.0001389938291 195 4 74.3298536 -46.45570744 -46.441776 0.003482860273 0.001025864906 0.001339231869 0.0001026437813
196 4 -46.44933689 -46.436389 0.003236972034 0.001007551549 0.001786741168 0.0002029508895 196 4 74.14951222 -46.45110489 -46.436389 0.003678973505 0.00117751644 0.001786741168 0.0001566147507
197 4 -46.459873 -46.446416 0.00336425035 0.0004914989987 0.0006588778339 6.549510811e-05 197 4 74.58621137 -46.46129862 -46.446416 0.003720653765 0.0006013410942 0.0006588778339 4.718503395e-05
198 4 -46.46569473 -46.449806 0.003972183676 0.000943305002 0.002135055034 0.0003137851731 198 4 74.93791818 -46.4668018 -46.449806 0.00424894914 0.001116402603 0.002135055034 0.0002754987197
199 4 -46.43467991 -46.427189 0.00187272638 0.0007726175275 0.001050788276 7.135568315e-05 199 4 73.6789527 -46.43686767 -46.427189 0.002419668309 0.0009202462101 0.001050788276 3.832148023e-05
200 4 -46.43621938 -46.427857 0.002090594118 0.0007686546978 0.001487666629 0.0001823668299 200 4 73.72666848 -46.43838466 -46.427857 0.002631914057 0.000916598926 0.001487666629 0.0001502215435
201 4 -46.45576365 -46.44004 0.003930912967 0.0005030079851 0.000757202747 5.770676907e-05 201 4 74.38554824 -46.45730744 -46.44004 0.004316858848 0.0006147077527 0.000757202747 3.915525299e-05
202 4 -46.4483913 -46.437214 0.002794325435 0.0007102028538 0.001505586265 0.000179529909 202 4 74.09024992 -46.45025082 -46.437214 0.003259204623 0.000823112906 0.001505586265 0.0001621804833
203 4 -46.43168209 -46.422628 0.002263521917 0.0007374332623 0.001601713458 0.0002609325883 203 4 73.60013606 -46.433967 -46.422628 0.002834751082 0.0008553071125 0.001601713458 0.000233732131
204 4 -46.45732644 -46.443535 0.00344786022 0.0009811025521 0.001590304373 0.0001690672254 204 4 74.47827164 -46.45874769 -46.443535 0.00380317303 0.001150644704 0.001590304373 0.0001312331936
205 4 -46.45144079 -46.439922 0.002879696366 0.0008698700101 0.001530493385 0.0001528171002 205 4 74.22558703 -46.45321801 -46.439922 0.003324001852 0.001030412749 0.001530493385 0.0001208769886
206 4 -46.44960522 -46.437675 0.002982555611 0.00112440729 0.002440246094 0.0004061057502 206 4 74.15291432 -46.45141844 -46.437675 0.003435859942 0.001323881965 0.002440246094 0.000351523644
207 4 -46.45839808 -46.445558 0.003210018941 0.0006780842253 0.00113392416 0.0001196075532 207 4 74.50981896 -46.45987915 -46.445558 0.003580287949 0.0008016583891 0.00113392416 9.087921501e-05
208 4 -46.45130112 -46.439106 0.003048781046 0.0009934671927 0.001830731002 0.000245168776 208 4 74.19814905 -46.45309789 -46.439106 0.003497972207 0.001159709328 0.001830731002 0.0002004464824
209 4 -46.45826105 -46.443073 0.003797013279 0.0004759445984 0.0005766870902 2.863834812e-05 209 4 74.51720313 -46.45968457 -46.443073 0.004152892794 0.0005327789399 0.0005766870902 1.911195046e-05
210 4 -46.4536082 -46.4397 0.003477049491 0.0006982622456 0.001204174406 0.0001154782847 210 4 74.29924604 -46.45529068 -46.4397 0.003897668752 0.0008203202583 0.001204174406 8.707934353e-05
211 4 -46.44819434 -46.436374 0.002955085327 0.0007363684621 0.001461656594 0.0002277550157 211 4 74.09425795 -46.45003681 -46.436374 0.003415701915 0.0008937039936 0.001461656594 0.0001906816478
212 4 -46.43668282 -46.426557 0.00253145389 0.0007326220467 0.001359624213 0.0001251472548 212 4 73.73717548 -46.43887502 -46.426557 0.003079503833 0.0008473432438 0.001359624213 0.0001078467328
213 4 -46.44485583 -46.434009 0.002711707903 0.000870647096 0.001391131194 0.0001541542453 213 4 73.99983876 -46.44675075 -46.434009 0.00318543858 0.0009993979373 0.001391131194 0.000126864771
214 4 -46.44732696 -46.436262 0.002766239028 0.001116549362 0.002503347159 0.0003211377445 214 4 74.07916779 -46.4492147 -46.436262 0.003238173905 0.0012911873 0.002503347159 0.0002946038716
215 4 -46.44414241 -46.434505 0.002409352177 0.0008685662223 0.001041637173 4.942106462e-05 215 4 73.94744484 -46.44611874 -46.434505 0.0029034362 0.0009930846846 0.001041637173 1.44560542e-05
216 4 -46.45095913 -46.438768 0.003047783488 0.0008482298138 0.001098285027 8.657909629e-05 216 4 74.2021224 -46.45267242 -46.438768 0.003476105557 0.0009790325482 0.001098285027 5.900684038e-05
217 4 -46.45111242 -46.440254 0.002714605501 0.0004892442432 0.0006069892915 5.824568303e-05 217 4 74.20389194 -46.45287404 -46.440254 0.003155011025 0.0005440222637 0.0006069892915 4.917760806e-05
218 4 -46.43463407 -46.42286 0.002943517186 0.0004976409931 0.0007365242698 7.564906264e-05 218 4 73.66782167 -46.43682196 -46.42286 0.003490490208 0.0005521691303 0.0007365242698 6.657586723e-05
219 4 -46.42611144 -46.418078 0.002008360417 0.001053243552 0.002028412187 0.0002473380313 219 4 73.46349993 -46.42843317 -46.418078 0.002588792975 0.001215695483 0.002028412187 0.0002117690174
220 4 -46.45344976 -46.440513 0.003234189608 0.0007024129954 0.001158189967 0.0001371889048 220 4 74.30307454 -46.45509879 -46.440513 0.003646448628 0.0008205757569 0.001158189967 0.000110036346
221 4 -46.41584187 -46.409824 0.001504467167 0.0007558580012 0.001759573812 0.0002386003087 221 4 73.21819832 -46.41838058 -46.409824 0.002139145869 0.000869266353 0.001759573812 0.0002125030952
222 4 -46.45494987 -46.440329 0.003655216631 0.0005034620022 0.0009534044263 0.0001064495091 222 4 74.35772636 -46.45658501 -46.440329 0.004064003047 0.0006179175264 0.0009534044263 8.737057714e-05
223 4 -46.45000759 -46.43773 0.003069396495 0.0006831478015 0.000926180328 7.390298375e-05 223 4 74.17615527 -46.45177345 -46.43773 0.003510862689 0.0007631781991 0.000926180328 6.446679043e-05
224 4 -46.42538863 -46.416525 0.002215907169 0.0005605993692 0.0007573664899 5.946405938e-05 224 4 73.43860935 -46.4277585 -46.416525 0.002808375906 0.0006623119965 0.0007573664899 4.251239635e-05
225 4 -46.45386072 -46.440293 0.003391930454 0.0006980795454 0.0007725386722 1.86450807e-05 225 4 74.31356506 -46.45553467 -46.440293 0.003810416894 0.0008201864367 0.0007725386722 1.244767351e-05
226 4 -46.4527969 -46.43839 0.003601726069 0.0005103417187 0.0005612022808 1.656002337e-05 226 4 74.25452523 -46.45450406 -46.43839 0.004028515986 0.000624431309 0.0005612022808 1.898088401e-05
227 4 -46.45374294 -46.438916 0.00370673382 0.0006956794369 0.001650878554 0.0002154167998 227 4 74.27331932 -46.45546024 -46.438916 0.004136060657 0.0008098609869 0.001650878554 0.0001889274693
# GSF_110.xyz # GSF_110.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
228 24 -278.7403996 -279.068761 0.01368172569 2.282668754 1.756353161 0.0474563559 228 24 828.0362386 -278.8410589 -279.068761 0.009487586046 2.726148177 1.756353161 0.06344241374
229 24 -279.902595 -279.784296 0.004929123882 0.9479314831 0.9057668891 0.02403120774 229 24 828.0362386 -280.0438878 -279.784296 0.01081632552 1.025836691 0.9057668891 0.03431923408
230 24 -279.9942014 -279.901657 0.003856015841 0.2795933118 0.001565946359 0.01120665859 230 24 828.0362386 -280.1389453 -279.901657 0.009887011104 0.3820870056 0.001565946359 0.02063932212
231 24 -279.6335344 -279.584238 0.002054016531 1.573004204 1.035572248 0.05514377891 231 24 828.0362386 -279.7578636 -279.584238 0.007234400289 1.646483877 1.035572248 0.06317254006
232 24 -279.9025974 -279.784283 0.004929767703 0.947921084 0.9056396189 0.02406018404 232 24 828.0362386 -280.0438905 -279.784283 0.01081698125 1.025825697 0.9056396189 0.03433377902
233 24 -279.1817177 -279.302158 0.005018345952 2.388096516 1.771965137 0.06275542538 233 24 828.0362386 -279.2779929 -279.302158 0.001006879708 2.597392642 1.771965137 0.07498219236
234 24 -279.5900705 -279.55564 0.001434605813 1.950503627 1.405626506 0.05370441115 234 24 828.0362386 -279.7119341 -279.55564 0.006512252548 2.085996302 1.405626506 0.06414553539
235 24 -279.0106063 -279.246939 0.00984719392 1.577003357 0.4813964151 0.08190583543 235 24 828.0362386 -279.1342144 -279.246939 0.004696857796 1.7145726 0.4813964151 0.09091186796
236 24 -279.1817217 -279.302157 0.005018138375 2.388094324 1.771953347 0.06275588675 236 24 828.0362386 -279.2779974 -279.302157 0.001006650079 2.59739139 1.771953347 0.07498197018
237 24 -279.0107548 -279.246935 0.009840841347 1.576191869 0.4809484798 0.0819682416 237 24 828.0362386 -279.1342234 -279.246935 0.004696316576 1.714140427 0.4809484798 0.09087969403
238 24 -279.9941671 -279.896025 0.004089255845 0.2809227604 0.01060549839 0.01118927817 238 24 828.0362386 -280.1388645 -279.896025 0.01011831143 0.3833172699 0.01060549839 0.0205724723
239 24 -279.6337951 -279.584237 0.002064919631 1.571895405 1.035836121 0.05510997377 239 24 828.0362386 -279.7581378 -279.584237 0.007245866604 1.645952103 1.035836121 0.06318595533
240 24 -278.8616595 -279.124427 0.0109486445 2.383512182 1.809545887 0.06232801199 240 24 828.0362386 -278.9562357 -279.124427 0.007007972259 2.699607205 1.809545887 0.07438804482
241 24 -279.2927133 -279.379366 0.003610531084 1.779238829 0.8982692706 0.07658702105 241 24 828.0362386 -279.4052861 -279.379366 0.00108000439 1.874556392 0.8982692706 0.08646596743
242 24 -279.292656 -279.37937 0.003613082676 1.779203263 0.898081355 0.0765940488 242 24 828.0362386 -279.4051598 -279.37937 0.001074574944 1.874858028 0.898081355 0.08649971418
243 24 -278.8616573 -279.124427 0.01094873842 2.383511745 1.809523374 0.06232387507 243 24 828.0362386 -278.9562334 -279.124427 0.007008065732 2.699608673 1.809523374 0.07438947193
244 24 -279.9942014 -279.901657 0.003856015842 0.27959331 0.001570374478 0.01120603916 244 24 828.0362386 -280.1389453 -279.901657 0.009887011104 0.382087008 0.001570374478 0.02063718463
245 24 -279.9072278 -279.79264 0.004774491325 0.8361247356 0.8392614852 0.02418251879 245 24 828.0362386 -280.0482205 -279.79264 0.01064918897 0.9069086057 0.8392614852 0.03243659951
246 24 -279.9941671 -279.896025 0.004089255843 0.2809227622 0.01060243293 0.01118973247 246 24 828.0362386 -280.1388645 -279.896025 0.01011831143 0.3833172675 0.01060243293 0.02057250032
247 24 -278.8973689 -279.206496 0.01288029691 1.390234609 0.005326518563 0.06648378416 247 24 828.0362386 -279.0366628 -279.206496 0.007076382361 1.638514407 0.005326518563 0.08048168704
248 24 -279.590075 -279.55564 0.001434791018 1.950495712 1.4056319 0.05370353355 248 24 828.0362386 -279.7119391 -279.55564 0.006512460902 2.085987992 1.4056319 0.06414586851
249 24 -279.9072386 -279.79264 0.004774943229 0.8361385582 0.8392625708 0.02418484015 249 24 828.0362386 -280.0482407 -279.79264 0.01065002958 0.9067922986 0.8392625708 0.03242814224
# GSF_112.xyz # GSF_112.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
250 30 -345.1428414 -345.175835 0.001099787279 2.717783384 1.057395322 0.1393371019 250 30 1075.650827 -344.9605863 -345.175835 0.007174958242 2.758670703 1.057395322 0.1516335449
251 30 -346.8213325 -346.361714 0.01532061701 1.6320981 1.220284939 0.1010819808 251 30 1075.650827 -346.7372372 -346.361714 0.01251744041 1.674795336 1.220284939 0.09596889278
252 30 -346.3061373 -345.795524 0.01702044399 2.435031121 2.112860875 0.1171529224 252 30 1075.650827 -346.1686186 -345.795524 0.0124364868 2.551456187 2.112860875 0.1075528655
253 30 -344.8834516 -345.164602 0.009371679668 3.314987489 1.765832199 0.1576958872 253 30 1075.650827 -344.7305027 -345.164602 0.01446997708 3.364761651 1.765832199 0.1653996104
254 30 -346.9668291 -346.593523 0.01244353764 1.327935537 0.01148867129 0.08670065177 254 30 1075.650827 -346.8954513 -346.593523 0.01006427628 1.339499001 0.01148867129 0.08728299447
255 30 -346.7938009 -346.396186 0.01325383111 1.743989434 0.9954683928 0.09783463277 255 30 1075.650827 -346.7069529 -346.396186 0.01035889705 1.846653887 0.9954683928 0.09979294451
256 30 -345.0939055 -345.319406 0.007516682784 3.756566851 1.772040852 0.1806000978 256 30 1075.650827 -344.9126927 -345.319406 0.01355711006 3.783666815 1.772040852 0.1835364962
257 30 -345.6468551 -345.594794 0.001735368441 3.432645857 1.516014157 0.1670589876 257 30 1075.650827 -345.4584504 -345.594794 0.004544785139 3.694055398 1.516014157 0.1747792869
258 30 -346.2843474 -345.98566 0.00995624537 2.709563559 1.406252265 0.1356658489 258 30 1075.650827 -346.1486771 -345.98566 0.005433903845 2.934925394 1.406252265 0.1397537934
259 30 -345.7058793 -345.383994 0.01072951129 2.464665654 0.963574308 0.13389942 259 30 1075.650827 -345.5181007 -345.383994 0.00447022439 2.558293398 0.963574308 0.1353120293
260 30 -346.9664564 -346.582564 0.01279641284 1.32870642 0.0126740587 0.08670344939 260 30 1075.650827 -346.8950741 -346.582564 0.01041700207 1.340303074 0.0126740587 0.08735503715
261 30 -345.3305431 -345.452139 0.004053195139 4.515828739 2.787719406 0.1519418929 261 30 1075.650827 -345.1232455 -345.452139 0.01096311715 4.843836394 2.787719406 0.158731815
262 30 -346.966836 -346.593523 0.01244376534 1.327919807 0.01148834 0.08669988209 262 30 1075.650827 -346.8954617 -346.593523 0.01006462208 1.339471584 0.01148834 0.08728175252
263 30 -345.5935851 -345.281949 0.01038786965 2.922665543 1.873142686 0.1300383724 263 30 1075.650827 -345.3878123 -345.281949 0.003528777779 3.04388336 1.873142686 0.1266226401
264 30 -346.157169 -345.928661 0.007616932828 3.42803556 2.100874472 0.1330089569 264 30 1075.650827 -346.0211337 -345.928661 0.003082422836 3.704012447 2.100874472 0.1385926656
265 30 -344.6836135 -345.111657 0.01426811685 4.87813643 3.358068319 0.1517605656 265 30 1075.650827 -344.4666474 -345.111657 0.0215003205 5.060940978 3.358068319 0.1556709723
266 30 -346.8140968 -346.367123 0.01489912587 1.700448289 1.335797131 0.1014030448 266 30 1075.650827 -346.731384 -346.367123 0.01214203185 1.743704774 1.335797131 0.0964003512
267 30 -346.9664062 -346.582565 0.0127947081 1.328695393 0.01254743735 0.08670444025 267 30 1075.650827 -346.8950084 -346.582565 0.0104147809 1.34025766 0.01254743735 0.08735400875
268 30 -344.5284456 -344.91356 0.012837147 4.30679737 3.441834403 0.1293440404 268 30 1075.650827 -344.3283906 -344.91356 0.01950564575 4.516603649 3.441834403 0.1385132929
269 30 -346.3471173 -345.836703 0.01701381162 2.177883948 1.608769148 0.1178087924 269 30 1075.650827 -346.2085633 -345.836703 0.01239534254 2.265804409 1.608769148 0.108126121
270 30 -344.9135302 -344.984307 0.002359225816 3.517317775 2.542628782 0.122092966 270 30 1075.650827 -344.700705 -344.984307 0.009453398382 3.625655349 2.542628782 0.1276641348
271 30 -346.7846048 -346.393931 0.01302245877 1.941770224 1.211680725 0.09898842713 271 30 1075.650827 -346.7005545 -346.393931 0.01022078221 2.065166442 1.211680725 0.1018842071
# Liquid.xyz # Liquid.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
272 100 -1104.74829 -1105.601723 0.008534329546 31.13590643 31.39853886 0.5826598142 272 100 2002.996789 -1105.503318 -1105.601723 0.0009840495195 33.67286942 31.39853886 0.5196524511
273 100 -1099.007356 -1099.673012 0.006656557481 34.30763539 32.03167218 0.6355970492 273 100 2002.996789 -1100.916702 -1099.673012 0.01243689799 34.89745034 32.03167218 0.569788481
274 100 -1123.744375 -1121.31506 0.0242931528 23.69463257 20.81076453 0.4843518851 274 100 2002.996789 -1125.248108 -1121.31506 0.03933048075 23.1042808 20.81076453 0.4236223924
# Surface.xyz # Surface.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
275 24 -279.9941674 -279.911828 0.003430809358 0.2809230274 0.002753093533 0.01155715982 275 24 828.0362197 -280.1388649 -279.911828 0.009459870394 0.3833165637 0.002753093533 0.0209958793
276 48 -551.0953781 -555.359452 0.08883487284 6.541312712 0.003020630398 0.1949601982 276 48 1756.536679 -551.9765065 -555.359452 0.07047803038 5.695770431 0.003020630398 0.1710474815
277 40 -458.209131 -459.216162 0.02517577443 5.605061426 5.0461364 0.1098503638 277 40 1394.433693 -457.8965908 -459.216162 0.03298927919 6.47605009 5.0461364 0.1141155284
278 40 -459.8554229 -461.144076 0.03221632783 2.691145822 0.005582740008 0.0817493 278 40 1394.433693 -459.4317427 -461.144076 0.04280833158 2.948762022 0.005582740008 0.1122771088
279 24 -279.8970746 -279.635146 0.01091369091 1.238573481 1.288799837 0.008644383713 279 24 828.0362197 -279.9357878 -279.635146 0.01252674323 2.282528363 1.288799837 0.0489285834
280 30 -346.9668295 -346.592525 0.01247681774 1.32793475 0.008446203407 0.08664452133 280 30 1075.65076 -346.8954518 -346.592525 0.01009756105 1.339498529 0.008446203407 0.08713647389
281 30 -345.8871537 -345.744506 0.004754921864 3.992236552 3.124961367 0.08594721633 281 30 1075.65076 -345.7511061 -345.744506 0.0002200037964 4.894457614 3.124961367 0.1246204459
# Volume_A15.xyz # Volume_A15.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
282 8 -66.46788051 -66.990732 0.06535643627 8.928342366e-15 0 1.501728429e-15 282 8 300.763 -66.50302875 -66.990732 0.06096290674 1.941277332e-14 0 3.37325783e-15
283 8 -72.67646146 -72.957807 0.03516819273 3.04869178e-14 0 5.1001593e-15 283 8 97.336 -72.75000964 -72.957807 0.0259746695 1.351006698e-13 0 2.177344384e-14
284 8 -94.20621366 -94.145745 0.00755858243 1.880283026e-14 0 2.444387059e-15 284 8 140.608 -94.15533163 -94.145745 0.001198328985 4.044529328e-14 0 6.693247629e-15
285 8 -94.43981933 -94.554682 0.01435783313 5.684495802e-15 0 8.992080697e-16 285 8 148.877 -94.40707977 -94.554682 0.01845027858 6.513916874e-14 0 1.052717644e-14
286 8 -79.39814886 -79.438363 0.005026767696 1.186991025e-14 0 1.998979685e-15 286 8 103.823 -79.45083178 -79.438363 0.001558598047 1.722214314e-13 0 2.77785865e-14
287 8 -69.38946962 -69.627817 0.02979342197 5.582708452e-15 0 9.058870552e-16 287 8 287.496 -69.43914664 -69.627817 0.02358379473 1.869801108e-14 0 2.486725909e-15
288 8 -83.05531805 -82.604907 0.05630138147 5.067400154e-15 0 8.060681752e-16 288 8 226.981 -83.07759076 -82.604907 0.05908546939 1.580586786e-14 0 2.506150792e-15
289 8 14.36690687 14.89048 0.0654466408 7.096605716e-14 0 9.778491674e-15 289 8 64 14.38834339 14.89048 0.06276707625 3.142551462e-13 0 4.611672661e-14
290 8 -94.13472519 -94.367599 0.02910922586 1.767991013e-14 0 2.1395518e-15 290 8 157.464 -94.121065 -94.367599 0.03081674996 4.627906691e-14 0 7.060581015e-15
291 8 -89.38757156 -89.248227 0.01741807051 8.884610804e-15 0 1.30769238e-15 291 8 195.112 -89.39236133 -89.248227 0.01801679107 2.992297744e-14 0 4.401789389e-15
292 8 -87.49741165 -87.211997 0.03567683079 8.006170389e-15 0 1.152290069e-15 292 8 205.379 -87.50415023 -87.211997 0.03651915426 2.29993221e-14 0 3.752044138e-15
293 8 -93.42285179 -93.66897 0.03076477666 2.280172604e-15 0 3.891032311e-16 293 8 166.375 -93.42125038 -93.66897 0.03096495278 2.907694533e-14 0 4.724788551e-15
294 8 -8.05187323 -7.989166 0.007838403785 7.482512497e-14 0 1.195728177e-14 294 8 68.921 -8.019333034 -7.989166 0.003770879216 3.356694228e-13 0 6.09434176e-14
295 8 -85.3779751 -84.982834 0.04939263793 3.220622406e-15 0 4.863008144e-16 295 8 216 -85.39060668 -84.982834 0.0509715856 9.263122354e-15 0 1.424782104e-15
296 8 -92.37490481 -92.536373 0.0201835236 1.673164165e-14 0 2.290124109e-15 296 8 175.616 -92.37850178 -92.536373 0.01973390211 3.567976799e-14 0 6.038472675e-15
297 8 -26.56925158 -26.77612 0.02585855302 4.751528484e-14 0 7.423756449e-15 297 8 74.088 -26.52314912 -26.77612 0.03162135966 2.830510779e-13 0 4.116147259e-14
298 8 -77.90929192 -77.544107 0.04564811452 4.617032687e-15 0 7.294873617e-16 298 8 250.047 -77.95455874 -77.544107 0.05130646772 1.722828231e-14 0 2.531351199e-15
299 8 -80.55632181 -80.114217 0.05526310126 8.324980615e-15 0 1.201946528e-15 299 8 238.328 -80.59031991 -80.114217 0.05951286389 1.790178605e-14 0 2.961270842e-15
300 8 -41.83202596 -42.143041 0.03887688062 3.384606082e-14 0 5.356279237e-15 300 8 79.507 -41.81723354 -42.143041 0.04072593188 2.017987815e-13 0 3.254206583e-14
301 8 -91.02235339 -91.040671 0.002289700675 3.337550263e-15 0 5.490399801e-16 301 8 185.193 -91.02736742 -91.040671 0.001662947812 2.413722535e-14 0 4.098218376e-15
302 8 -84.76781055 -84.499231 0.03357244376 3.246108052e-14 0 5.927694678e-15 302 8 110.592 -84.77992099 -84.499231 0.035086249 6.257383276e-14 0 9.730565054e-15
303 8 -60.71236154 -61.825173 0.1391014324 7.918599116e-15 0 1.30776466e-15 303 8 328.509 -60.69292469 -61.825173 0.1415310384 2.336487667e-14 0 4.192320181e-15
304 8 -91.5794594 -91.156873 0.05282330009 3.642169681e-15 0 5.988997276e-16 304 8 125 -91.53133052 -91.156873 0.04680718995 4.580314378e-14 0 7.417918736e-15
305 8 -54.28408457 -54.658744 0.04683242815 8.878350559e-14 0 1.511496461e-14 305 8 85.184 -54.31160005 -54.658744 0.04339299436 2.081820808e-13 0 3.494754179e-14
306 8 -72.29317827 -72.277255 0.00199040924 2.467731222e-15 0 3.339523392e-16 306 8 274.625 -72.34854762 -72.277255 0.008911577286 3.722472678e-15 0 6.21411631e-16
307 8 -75.14428628 -74.923334 0.02761903549 3.575872549e-15 0 5.510457542e-16 307 8 262.144 -75.19753913 -74.923334 0.03427564069 1.368884593e-14 0 2.258168709e-15
308 8 -64.41647714 -64.798066 0.04769860741 1.525236831e-14 0 2.48556962e-15 308 8 91.125 -64.47776048 -64.798066 0.04003818964 1.208370656e-13 0 1.995060684e-14
309 8 -93.29905733 -93.048342 0.03133941583 1.463792794e-14 0 2.408158856e-15 309 8 132.651 -93.2347704 -93.048342 0.02330355033 5.798970328e-14 0 9.670321353e-15
310 8 -63.56375833 -64.38702 0.1029077093 2.897725758e-15 0 5.108399236e-16 310 8 314.432 -63.5755377 -64.38702 0.1014352879 7.556804155e-15 0 1.29652209e-15
311 8 -88.81067445 -88.352871 0.05722543104 1.077500255e-14 0 1.707889472e-15 311 8 117.649 -88.79067694 -88.352871 0.05472574302 7.470145864e-14 0 1.29226998e-14
# Volume_BCC.xyz # Volume_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
312 2 -16.38936242 -16.763625 0.1871312901 5.164700352e-16 0 1.827242061e-16 312 2 74.088 -16.41904746 -16.763625 0.172288768 8.881784197e-16 0 2.960594732e-16
313 2 16.19675433 16.314145 0.05869533666 6.530646709e-14 0 1.921032777e-14 313 2 13.824 16.2292442 16.314145 0.04245040205 6.132313711e-13 0 2.290852693e-13
314 2 -21.24238574 -21.209071 0.01665736942 1.908874745e-15 0 7.170229344e-16 314 2 27 -21.2109771 -21.209071 0.0009530502432 1.123466673e-14 0 3.552712694e-15
315 2 -15.80560502 -15.780524 0.01254051029 3.122816732e-14 0 1.231252513e-14 315 2 21.952 -15.82599793 -15.780524 0.02273696393 2.538428743e-13 0 1.020665034e-13
316 2 -19.05526774 -19.002205 0.02653137194 7.555287577e-15 0 2.037557095e-15 316 2 24.389 -19.01309058 -19.002205 0.005442789013 7.306210466e-15 0 2.50031477e-15
317 2 -22.67434567 -22.620568 0.02688883674 1.349360652e-15 0 4.857225733e-16 317 2 29.791 -22.67048776 -22.620568 0.02495988117 2.031435111e-14 0 8.215650382e-15
318 2 4.04311049 4.096885 0.02688725502 1.772872048e-14 0 6.601201067e-15 318 2 15.625 4.095802366 4.096885 0.0005413171271 6.359497134e-14 0 2.069640755e-14
319 2 56.2105911 56.26276 0.02608445186 1.377801077e-13 0 4.795418557e-14 319 2 10.648 56.21520101 56.26276 0.0237794968 6.137452342e-13 0 2.262703913e-13
320 2 -22.55797904 -22.585113 0.01356697915 3.380715703e-15 0 1.276756478e-15 320 2 46.656 -22.54194179 -22.585113 0.02158560454 1.006819876e-14 0 3.996802889e-15
321 2 -21.75972417 -21.795501 0.0178884163 1.168374574e-15 0 4.533410684e-16 321 2 50.653 -21.73865048 -21.795501 0.0284252602 1.776356839e-15 0 5.921189465e-16
322 2 33.30678917 33.110078 0.09835558332 3.387360342e-14 0 9.173217741e-15 322 2 12.167 33.26085588 33.110078 0.0753889407 1.720476052e-13 0 4.707345624e-14
323 2 -20.82125169 -20.885998 0.0323731563 9.918492908e-16 0 3.654484123e-16 323 2 54.872 -20.80030783 -20.885998 0.04284508708 1.538370149e-15 0 5.921189465e-16
324 2 -23.55239721 -23.601336 0.02446939304 2.356479148e-15 0 7.090682208e-16 324 2 39.304 -23.54386901 -23.601336 0.02873349282 4.528839094e-15 0 1.480297366e-15
325 2 -23.17147126 -23.207313 0.01792086946 1.448170847e-15 0 4.901445524e-16 325 2 42.875 -23.16144784 -23.207313 0.02293258231 2.082963029e-15 0 7.401486831e-16
326 2 -19.78146338 -19.898089 0.05831281177 7.349099448e-15 0 2.984880861e-15 326 2 59.319 -19.76694674 -19.898089 0.06557112796 4.389974022e-14 0 1.776356839e-14
327 2 -23.45038238 -23.405474 0.02245418985 2.124472575e-15 0 7.6356745e-16 327 2 32.768 -23.46365391 -23.405474 0.0290899572 1.331156944e-14 0 5.403085387e-15
328 2 -4.653232293 -4.781324 0.06404585371 1.121589994e-14 0 3.980033895e-15 328 2 17.576 -4.6700202 -4.781324 0.05565189983 4.987657631e-14 0 1.465494393e-14
329 2 -18.67517238 -18.864936 0.09488180756 4.972820174e-16 0 1.896631e-16 329 2 64 -18.67254286 -18.864936 0.09619657243 8.881784197e-16 0 2.960594732e-16
330 2 -17.53439276 -17.813086 0.1393466189 8.350923499e-16 0 3.215020842e-16 330 2 68.921 -17.54726713 -17.813086 0.1329094363 1.371024298e-15 0 4.440892099e-16
331 2 -11.04889659 -11.197201 0.07415220345 1.822150476e-14 0 6.092637968e-15 331 2 19.683 -11.12327165 -11.197201 0.03696467615 4.343228798e-14 0 1.539509261e-14
332 2 -23.68489671 -23.696705 0.00590414498 1.240124986e-15 0 4.153217122e-16 332 2 35.937 -23.68985458 -23.696705 0.003425208911 8.588276581e-15 0 2.812564996e-15
# Volume_FCC.xyz # Volume_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
333 4 -19.13390887 -19.075994 0.01447871809 1.022152812e-14 0 2.293587909e-15 333 4 39.304 -19.04121551 -19.075994 0.008694621404 9.324046941e-14 0 2.550216982e-14
334 4 -35.26038882 -34.873619 0.0966924543 1.299038035e-15 0 3.09937261e-16 334 4 140.608 -35.2532829 -34.873619 0.09491597439 7.957989483e-17 0 1.134599845e-17
335 4 -43.93272346 -43.950003 0.004319884816 1.839067075e-15 0 3.483902981e-16 335 4 97.336 -43.90903851 -43.950003 0.01024112333 9.677895068e-15 0 2.24135791e-15
336 4 -41.03733831 -40.991909 0.01135732773 4.481141716e-15 0 9.930207698e-16 336 4 54.872 -41.05446227 -40.991909 0.01563831765 1.98280496e-14 0 4.875440329e-15
337 4 -43.4228254 -43.453929 0.007775899668 3.563251054e-14 0 1.025252039e-14 337 4 59.319 -43.40999789 -43.453929 0.01098277702 9.570074295e-14 0 2.719164593e-14
338 4 -42.67289278 -42.686077 0.003296053998 3.08362874e-15 0 8.245357522e-16 338 4 103.823 -42.63532355 -42.686077 0.01268836179 2.539930576e-15 0 4.806204543e-16
339 4 -33.58842759 -33.224653 0.09094364633 7.806891681e-16 0 2.054201716e-16 339 4 148.877 -33.58964546 -33.224653 0.09124811554 2.796923066e-17 0 3.296205444e-18
340 4 -27.01189372 -26.862709 0.03729618105 6.429823751e-15 0 1.469359846e-15 340 4 42.875 -26.8499756 -26.862709 0.003183350784 4.824942051e-14 0 1.148213469e-14
341 4 -25.59030438 -25.519883 0.01760534598 1.262126674e-15 0 3.031429274e-16 341 4 195.112 -25.5782856 -25.519883 0.01460065124 2.683808864e-16 0 5.477307421e-17
342 4 3.441093749 3.463071 0.005494312714 2.222300041e-14 0 5.686075706e-15 342 4 32.768 3.274215348 3.463071 0.04721391298 1.751484723e-13 0 4.608697683e-14
343 4 -31.9073245 -31.59595 0.07784362479 8.772505365e-16 0 2.178523565e-16 343 4 157.464 -31.91218763 -31.59595 0.07905940659 3.590442267e-17 0 4.231376791e-18
344 4 -45.06068744 -45.100466 0.009944641012 2.844345405e-15 0 6.141228113e-16 344 4 64 -45.05473725 -45.100466 0.01143218825 7.235555613e-15 0 1.620123306e-15
345 4 -46.03981427 -46.052258 0.0031109323 3.085311895e-15 0 7.534482297e-16 345 4 68.921 -46.04331302 -46.052258 0.002236244179 5.893206675e-15 0 1.299708229e-15
346 4 -30.24326213 -30.001189 0.06051828302 1.033301257e-15 0 2.648344507e-16 346 4 166.375 -30.2468098 -30.001189 0.06140519937 2.820758891e-16 0 5.580616674e-17
347 4 -22.957351 -22.8504 0.02673775024 1.649470508e-15 0 4.625206468e-16 347 4 216 -22.95485577 -22.8504 0.02611394167 1.164554524e-16 0 2.312964635e-17
348 4 -9.130654755 -9.164691 0.008509061334 1.441769296e-14 0 2.967949237e-15 348 4 35.937 -9.215415964 -9.164691 0.01268124103 4.893101434e-14 0 1.156092005e-14
349 4 -24.21746226 -24.150343 0.01677981454 9.080179666e-16 0 2.344767898e-16 349 4 205.379 -24.20645978 -24.150343 0.01402919404 2.781506505e-18 0 3.278036852e-19
350 4 -46.44761241 -46.426795 0.005204351765 1.356833237e-15 0 3.249715312e-16 350 4 74.088 -46.44951294 -46.426795 0.005679484598 2.411816735e-15 0 4.763070257e-16
351 4 -28.62111495 -28.451145 0.04249248833 8.73448718e-15 0 2.511662753e-15 351 4 175.616 -28.61960857 -28.451145 0.04211589328 1.078338842e-14 0 3.09506759e-15
352 4 40.31615798 40.341566 0.006352005142 4.072809775e-14 0 8.11641299e-15 352 4 27 40.45415396 40.341566 0.02814698887 1.556900619e-13 0 3.789568123e-14
353 4 19.51151427 19.617912 0.02659943252 2.395447746e-14 0 5.536534686e-15 353 4 29.791 19.42166568 19.617912 0.04906157941 1.398773649e-13 0 3.335786504e-14
354 4 -27.06356399 -26.954384 0.02729499736 7.989451601e-16 0 1.662443331e-16 354 4 185.193 -27.05578105 -26.954384 0.02534926276 2.758936733e-16 0 5.630535877e-17
355 4 -46.3678929 -46.323696 0.01104922394 3.225354336e-15 0 8.604228441e-16 355 4 79.507 -46.36425384 -46.323696 0.01013945879 2.152124725e-15 0 4.437884935e-16
356 4 -45.87221055 -45.828947 0.01081588677 3.654195723e-15 0 9.691321819e-16 356 4 85.184 -45.86352273 -45.828947 0.008643933117 3.448840532e-14 0 9.539924949e-15
357 4 -38.47076405 -38.16029 0.0776185126 1.743572283e-15 0 4.628820475e-16 357 4 125 -38.44027502 -38.16029 0.06999625463 1.884407826e-15 0 4.44194105e-16
358 4 -33.06813795 -32.919741 0.03709923634 1.476523661e-14 0 4.182418301e-15 358 4 46.656 -32.97168631 -32.919741 0.01298632653 1.142146022e-13 0 2.894877625e-14
359 4 -41.34431995 -41.272675 0.01791123821 3.354385367e-15 0 9.014870014e-16 359 4 110.592 -41.29864314 -41.272675 0.006492033936 3.342024128e-14 0 9.358862094e-15
360 4 -39.95757678 -39.753322 0.05106369446 1.803308855e-15 0 4.257287097e-16 360 4 117.649 -39.91686354 -39.753322 0.04088538603 7.303704341e-15 0 1.704201263e-15
361 4 -37.66252943 -37.547435 0.02877360828 4.901403086e-15 0 1.0480621e-15 361 4 50.653 -37.65718147 -37.547435 0.02743661628 2.105764443e-14 0 5.292352205e-15
362 4 -36.89659259 -36.52595 0.09266064636 2.659569984e-15 0 6.744460314e-16 362 4 132.651 -36.87810682 -36.52595 0.08803920465 3.379802923e-17 0 3.983135944e-18
363 4 -45.03250721 -45.016087 0.004105053075 1.580168365e-15 0 3.385601984e-16 363 4 91.125 -45.01844387 -45.016087 0.0005892174087 1.081458604e-14 0 2.513809578e-15

View File

@ -2,19 +2,19 @@
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.011286 0.011334 0.113353 0.141650 Displaced_A15.xyz 9 576 0.015324 0.015365 0.140594 0.184797
Displaced_BCC.xyz 9 486 0.012178 0.014005 0.240613 0.312191 Displaced_BCC.xyz 9 486 0.009486 0.011643 0.249983 0.320375
Displaced_FCC.xyz 9 432 0.001445 0.001591 0.082688 0.103800 Displaced_FCC.xyz 9 432 0.000686 0.000880 0.091420 0.113585
Elastic_BCC.xyz 100 200 0.004452 0.004783 0.000010 0.000013 Elastic_BCC.xyz 100 200 0.003796 0.004379 0.000015 0.000020
Elastic_FCC.xyz 100 400 0.002865 0.002923 0.000146 0.000207 Elastic_FCC.xyz 100 400 0.003332 0.003372 0.000122 0.000178
GSF_110.xyz 22 528 0.005804 0.006853 0.047276 0.097819 GSF_110.xyz 22 528 0.007027 0.007797 0.057637 0.115638
GSF_112.xyz 22 660 0.010588 0.011555 0.123342 0.191090 GSF_112.xyz 22 660 0.010396 0.011347 0.125237 0.198553
Liquid.xyz 3 300 0.013161 0.015355 0.567536 0.757847 Liquid.xyz 3 300 0.017584 0.023822 0.504354 0.660300
Surface.xyz 7 236 0.025400 0.037555 0.096121 0.295623 Surface.xyz 7 236 0.025511 0.034302 0.107190 0.285034
Volume_A15.xyz 30 240 0.039281 0.048678 0.000000 0.000000 Volume_A15.xyz 30 240 0.038624 0.048355 0.000000 0.000000
Volume_BCC.xyz 21 42 0.049766 0.067554 0.000000 0.000000 Volume_BCC.xyz 21 42 0.044423 0.061685 0.000000 0.000000
Volume_FCC.xyz 31 124 0.030056 0.041738 0.000000 0.000000 Volume_FCC.xyz 31 124 0.030062 0.041271 0.000000 0.000000
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
All files 363 4224 0.012917 0.025797 0.122473 0.260052 All files 363 4224 0.012618 0.024806 0.125879 0.247229
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set **************** **************** End of Error Analysis for the Training Data Set ****************

View File

@ -1,5 +1 @@
# Demonstrate fitpod for POD potential fitpod Ta_param.pod Ta_data.pod
units metal
fitpod Ta_param.pod Ta_data.pod

View File

@ -44,4 +44,3 @@ velocity all create 300.0 4928459 loop geom
fix 1 all nve fix 1 all nve
run ${nsteps} run ${nsteps}

View File

@ -0,0 +1,52 @@
# Demonstrate bispectrum computes
# initialize simulation
variable nsteps index 0
variable nrep equal 2
variable a equal 2.0
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable ny equal ${nrep}
variable nz equal ${nrep}
boundary p p p
atom_modify map hash
lattice bcc $a
region box block 0 ${nx} 0 ${ny} 0 ${nz}
create_box 2 box
create_atoms 2 box
mass * 180.88
displace_atoms all random 0.1 0.1 0.1 123456
# set up dummy potential to satisfy cutoff
variable rcutfac equal 6.0
pair_style zero ${rcutfac}
pair_coeff * *
# set up per-atom computes
compute ld all pod/atom Ta_param.pod Ta_coefficients.pod Ta Ta
compute dd all podd/atom Ta_param.pod Ta_coefficients.pod Ta Ta
# set up compute snap generating global array
compute gdd all pod/global Ta_param.pod Ta_coefficients.pod Ta Ta
#fix gdd all ave/time 1 1 1 c_gdd[*] file pod.gdd.dat mode vector
compute ldd all pod/local Ta_param.pod Ta_coefficients.pod Ta Ta
#fix ldd all ave/time 1 1 1 c_ldd[*] file pod.ldd.dat mode vector
#dump mydump_ld all custom 1000 dump_ld id c_ld[*]
#dump mydump_dd all custom 1000 dump_dd id c_dd[*]
variable sample_ld1 equal C_ld[1][10] # Arbitrary local descriptor
fix ldprint all print 1 "${sample_ld1}"
run ${nsteps}

View File

@ -1,32 +1,37 @@
LAMMPS (22 Dec 2022) LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-177-g86abf4f680-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task using 1 OpenMP thread(s) per MPI task
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials **************** **************** Begin of POD Potentials ****************
species: Ta species: Ta
periodic boundary conditions: 1 1 1 periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1 inner cut-off radius: 1
outer cut-off radius: 5 outer cut-off radius: 5
bessel polynomial degree: 3 bessel polynomial degree: 3
inverse polynomial degree: 6 inverse polynomial degree: 6
one-body potential: 1 one-body potential: 1
two-body potential: 3 6 6 two-body radial basis functions: 6
three-body potential: 3 6 5 5 three-body radial basis functions: 5
four-body SNAP potential: 0 0 three-body angular degree: 4
quadratic POD potential: 0 four-body radial basis functions: 0
number of basis functions for one-body potential: 1 four-body angular degree: 0
number of basis functions for two-body potential: 6 five-body radial basis functions: 0
number of basis functions for three-body potential: 25 five-body angular degree: 0
number of basis functions for four-body potential: 0 six-body radial basis functions: 0
number of descriptors for one-body potential: 1 six-body angular degree: 0
number of descriptors for two-body potential: 6 seven-body radial basis functions: 0
number of descriptors for three-body potential: 25 seven-body angular degree: 0
number of descriptors for four-body potential: 0 number of local descriptors per element for one-body potential: 1
number of descriptors for quadratic POD potential: 0 number of local descriptors per element for two-body potential: 6
total number of descriptors for all potentials: 32 number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials **************** **************** End of POD Potentials ****************
**************** Begin of Data File **************** **************** Begin of Data File ****************
@ -34,6 +39,8 @@ file format: extxyz
file extension: xyz file extension: xyz
path to training data set: XYZ path to training data set: XYZ
path to test data set: XYZ path to test data set: XYZ
path to environment configuration set: XYZ
basename for output files: Ta
training fraction: 1 training fraction: 1
test fraction: 1 test fraction: 1
randomize training data set: 1 randomize training data set: 1
@ -45,7 +52,8 @@ energy/force calculation for test data set: 0
fitting weight for energy: 100 fitting weight for energy: 100
fitting weight for force: 1 fitting weight for force: 1
fitting weight for stress: 0 fitting weight for stress: 0
fitting regularization parameter: 1e-10 save pod descriptors: 0
compute pod descriptors: 0
**************** End of Data File **************** **************** End of Data File ****************
**************** Begin of Training Data Set **************** **************** Begin of Training Data Set ****************
--------------------------------------------------------------- ---------------------------------------------------------------
@ -74,8 +82,7 @@ maximum number of atoms: 100
maximum number of atoms in periodic domain: 100 maximum number of atoms in periodic domain: 100
maximum number of atoms in extended domain: 2700 maximum number of atoms in extended domain: 2700
maximum number of neighbors in extended domain: 270000 maximum number of neighbors in extended domain: 270000
size of double memory: 223201 size of double memory: 232128
size of int memory: 14709
size of descriptor matrix: 32 x 32 size of descriptor matrix: 32 x 32
**************** End of Memory Allocation **************** **************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting **************** **************** Begin of Least-Squares Fitting ****************
@ -83,7 +90,6 @@ Configuration: # 1
Configuration: # 101 Configuration: # 101
Configuration: # 201 Configuration: # 201
Configuration: # 301 Configuration: # 301
**************** End of Least-Squares Fitting ****************
**************** Begin of Error Calculation **************** **************** Begin of Error Calculation ****************
Configuration: # 1 Configuration: # 1
Configuration: # 101 Configuration: # 101
@ -94,21 +100,20 @@ Configuration: # 301
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.011286 0.011334 0.113353 0.141650 Displaced_A15.xyz 9 576 0.015324 0.015365 0.140594 0.184797
Displaced_BCC.xyz 9 486 0.012178 0.014005 0.240613 0.312191 Displaced_BCC.xyz 9 486 0.009486 0.011643 0.249983 0.320375
Displaced_FCC.xyz 9 432 0.001445 0.001591 0.082688 0.103800 Displaced_FCC.xyz 9 432 0.000686 0.000880 0.091420 0.113585
Elastic_BCC.xyz 100 200 0.004452 0.004783 0.000010 0.000013 Elastic_BCC.xyz 100 200 0.003796 0.004379 0.000015 0.000020
Elastic_FCC.xyz 100 400 0.002865 0.002923 0.000146 0.000207 Elastic_FCC.xyz 100 400 0.003332 0.003372 0.000122 0.000178
GSF_110.xyz 22 528 0.005804 0.006853 0.047276 0.097819 GSF_110.xyz 22 528 0.007027 0.007797 0.057637 0.115638
GSF_112.xyz 22 660 0.010588 0.011555 0.123342 0.191090 GSF_112.xyz 22 660 0.010396 0.011347 0.125237 0.198553
Liquid.xyz 3 300 0.013161 0.015355 0.567536 0.757847 Liquid.xyz 3 300 0.017584 0.023822 0.504354 0.660300
Surface.xyz 7 236 0.025400 0.037555 0.096121 0.295623 Surface.xyz 7 236 0.025511 0.034302 0.107190 0.285034
Volume_A15.xyz 30 240 0.039281 0.048678 0.000000 0.000000 Volume_A15.xyz 30 240 0.038624 0.048355 0.000000 0.000000
Volume_BCC.xyz 21 42 0.049766 0.067554 0.000000 0.000000 Volume_BCC.xyz 21 42 0.044423 0.061685 0.000000 0.000000
Volume_FCC.xyz 31 124 0.030056 0.041738 0.000000 0.000000 Volume_FCC.xyz 31 124 0.030062 0.041271 0.000000 0.000000
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
All files 363 4224 0.012917 0.025797 0.122473 0.260052 All files 363 4224 0.012618 0.024806 0.125879 0.247229
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set **************** **************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:00 Total wall time: 0:00:00

View File

@ -1,32 +1,37 @@
LAMMPS (22 Dec 2022) LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-177-g86abf4f680-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task using 1 OpenMP thread(s) per MPI task
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials **************** **************** Begin of POD Potentials ****************
species: Ta species: Ta
periodic boundary conditions: 1 1 1 periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1 inner cut-off radius: 1
outer cut-off radius: 5 outer cut-off radius: 5
bessel polynomial degree: 3 bessel polynomial degree: 3
inverse polynomial degree: 6 inverse polynomial degree: 6
one-body potential: 1 one-body potential: 1
two-body potential: 3 6 6 two-body radial basis functions: 6
three-body potential: 3 6 5 5 three-body radial basis functions: 5
four-body SNAP potential: 0 0 three-body angular degree: 4
quadratic POD potential: 0 four-body radial basis functions: 0
number of basis functions for one-body potential: 1 four-body angular degree: 0
number of basis functions for two-body potential: 6 five-body radial basis functions: 0
number of basis functions for three-body potential: 25 five-body angular degree: 0
number of basis functions for four-body potential: 0 six-body radial basis functions: 0
number of descriptors for one-body potential: 1 six-body angular degree: 0
number of descriptors for two-body potential: 6 seven-body radial basis functions: 0
number of descriptors for three-body potential: 25 seven-body angular degree: 0
number of descriptors for four-body potential: 0 number of local descriptors per element for one-body potential: 1
number of descriptors for quadratic POD potential: 0 number of local descriptors per element for two-body potential: 6
total number of descriptors for all potentials: 32 number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials **************** **************** End of POD Potentials ****************
**************** Begin of Data File **************** **************** Begin of Data File ****************
@ -34,6 +39,8 @@ file format: extxyz
file extension: xyz file extension: xyz
path to training data set: XYZ path to training data set: XYZ
path to test data set: XYZ path to test data set: XYZ
path to environment configuration set: XYZ
basename for output files: Ta
training fraction: 1 training fraction: 1
test fraction: 1 test fraction: 1
randomize training data set: 1 randomize training data set: 1
@ -45,7 +52,8 @@ energy/force calculation for test data set: 0
fitting weight for energy: 100 fitting weight for energy: 100
fitting weight for force: 1 fitting weight for force: 1
fitting weight for stress: 0 fitting weight for stress: 0
fitting regularization parameter: 1e-10 save pod descriptors: 0
compute pod descriptors: 0
**************** End of Data File **************** **************** End of Data File ****************
**************** Begin of Training Data Set **************** **************** Begin of Training Data Set ****************
--------------------------------------------------------------- ---------------------------------------------------------------
@ -74,8 +82,7 @@ maximum number of atoms: 100
maximum number of atoms in periodic domain: 100 maximum number of atoms in periodic domain: 100
maximum number of atoms in extended domain: 2700 maximum number of atoms in extended domain: 2700
maximum number of neighbors in extended domain: 270000 maximum number of neighbors in extended domain: 270000
size of double memory: 223201 size of double memory: 232128
size of int memory: 14709
size of descriptor matrix: 32 x 32 size of descriptor matrix: 32 x 32
**************** End of Memory Allocation **************** **************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting **************** **************** Begin of Least-Squares Fitting ****************
@ -83,7 +90,6 @@ Configuration: # 1
Configuration: # 101 Configuration: # 101
Configuration: # 201 Configuration: # 201
Configuration: # 301 Configuration: # 301
**************** End of Least-Squares Fitting ****************
**************** Begin of Error Calculation **************** **************** Begin of Error Calculation ****************
Configuration: # 1 Configuration: # 1
Configuration: # 101 Configuration: # 101
@ -94,21 +100,20 @@ Configuration: # 301
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.011286 0.011334 0.113353 0.141650 Displaced_A15.xyz 9 576 0.015324 0.015365 0.140594 0.184797
Displaced_BCC.xyz 9 486 0.012178 0.014005 0.240613 0.312191 Displaced_BCC.xyz 9 486 0.009486 0.011643 0.249983 0.320375
Displaced_FCC.xyz 9 432 0.001445 0.001591 0.082688 0.103800 Displaced_FCC.xyz 9 432 0.000686 0.000880 0.091420 0.113585
Elastic_BCC.xyz 100 200 0.004452 0.004783 0.000010 0.000013 Elastic_BCC.xyz 100 200 0.003796 0.004379 0.000015 0.000020
Elastic_FCC.xyz 100 400 0.002865 0.002923 0.000146 0.000207 Elastic_FCC.xyz 100 400 0.003332 0.003372 0.000122 0.000178
GSF_110.xyz 22 528 0.005804 0.006853 0.047276 0.097819 GSF_110.xyz 22 528 0.007027 0.007797 0.057637 0.115638
GSF_112.xyz 22 660 0.010588 0.011555 0.123342 0.191090 GSF_112.xyz 22 660 0.010396 0.011347 0.125237 0.198553
Liquid.xyz 3 300 0.013161 0.015355 0.567536 0.757847 Liquid.xyz 3 300 0.017584 0.023822 0.504354 0.660300
Surface.xyz 7 236 0.025400 0.037555 0.096121 0.295623 Surface.xyz 7 236 0.025511 0.034302 0.107190 0.285034
Volume_A15.xyz 30 240 0.039281 0.048678 0.000000 0.000000 Volume_A15.xyz 30 240 0.038624 0.048355 0.000000 0.000000
Volume_BCC.xyz 21 42 0.049766 0.067554 0.000000 0.000000 Volume_BCC.xyz 21 42 0.044423 0.061685 0.000000 0.000000
Volume_FCC.xyz 31 124 0.030056 0.041738 0.000000 0.000000 Volume_FCC.xyz 31 124 0.030062 0.041271 0.000000 0.000000
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
All files 363 4224 0.012917 0.025797 0.122473 0.260052 All files 363 4224 0.012618 0.024806 0.125879 0.247229
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set **************** **************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:00
Total wall time: 0:00:01

View File

@ -0,0 +1,293 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-177-g86abf4f680-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate bispectrum computes
# initialize simulation
variable nsteps index 0
variable nrep equal 2
variable a equal 2.0
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 2
variable ny equal ${nrep}
variable ny equal 2
variable nz equal ${nrep}
variable nz equal 2
boundary p p p
atom_modify map hash
lattice bcc $a
lattice bcc 2
Lattice spacing in x,y,z = 2 2 2
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 2 0 ${ny} 0 ${nz}
region box block 0 2 0 2 0 ${nz}
region box block 0 2 0 2 0 2
create_box 2 box
Created orthogonal box = (0 0 0) to (4 4 4)
1 by 1 by 1 MPI processor grid
create_atoms 2 box
Created 16 atoms
using lattice units in orthogonal box = (0 0 0) to (4 4 4)
create_atoms CPU = 0.001 seconds
mass * 180.88
displace_atoms all random 0.1 0.1 0.1 123456
Displacing atoms ...
# set up dummy potential to satisfy cutoff
variable rcutfac equal 6.0
pair_style zero ${rcutfac}
pair_style zero 6
pair_coeff * *
# set up per-atom computes
compute ld all pod/atom Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
compute dd all podd/atom Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# set up compute snap generating global array
compute gdd all pod/gdd Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
#fix gdd all ave/time 1 1 1 c_gdd[*] file pod.gdd.dat mode vector
compute ldd all pod/ldd Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
#fix ldd all ave/time 1 1 1 c_ldd[*] file pod.ldd.dat mode vector
#dump mydump_ld all custom 1000 dump_ld id c_ld[*]
#dump mydump_dd all custom 1000 dump_dd id c_dd[*]
variable sample_ld1 equal C_ld[1][10] # Arbitrary local descriptor
fix ldprint all print 1 "${sample_ld1}"
run ${nsteps}
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
WARNING: More than one compute pod (src/ML-POD/compute_pod_atom.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_podd_atom.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_pod_global.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_pod_local.cpp:89)
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8
ghost atom cutoff = 8
binsize = 4, bins = 1 1 1
5 neighbor lists, perpetual/occasional/extra = 1 4 0
(1) pair zero, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
(2) compute pod/atom, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(3) compute podd/atom, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(4) compute pod/gdd, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(5) compute pod/ldd, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
0.344594831165384
Per MPI rank memory allocation (min/avg/max) = 6.326 | 6.326 | 6.326 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 0 0 0 0
Loop time of 1.207e-06 on 1 procs for 0 steps with 16 atoms
165.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.207e-06 | | |100.00
Nlocal: 16 ave 16 max 16 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1984 ave 1984 max 1984 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 4311 ave 4311 max 4311 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 8623 ave 8623 max 8623 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 8623
Ave neighs/atom = 538.9375
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,155 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-177-g86abf4f680-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.001 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coeff.pod Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.207 | 3.207 | 3.207 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.842971 0 -11.804496 -24843.054
10 296.87227 -11.84257 0 -11.804496 -24609.859
20 287.65971 -11.841388 0 -11.804496 -23926.722
30 272.87511 -11.839492 0 -11.804496 -22841.672
40 253.34724 -11.836988 0 -11.804496 -21429.268
50 230.17169 -11.834015 0 -11.804496 -19782.77
60 204.64408 -11.830741 0 -11.804496 -18004.755
70 178.17888 -11.827347 0 -11.804495 -16197.482
80 152.21769 -11.824017 0 -11.804495 -14454.425
90 128.13189 -11.820928 0 -11.804495 -12854.075
100 107.12666 -11.818234 0 -11.804495 -11456.437
Loop time of 0.394952 on 1 procs for 100 steps with 128 atoms
Performance: 10.938 ns/day, 2.194 hours/ns, 253.196 timesteps/s, 32.409 katom-step/s
97.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.39249 | 0.39249 | 0.39249 | 0.0 | 99.38
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00087496 | 0.00087496 | 0.00087496 | 0.0 | 0.22
Output | 0.00030885 | 0.00030885 | 0.00030885 | 0.0 | 0.08
Modify | 0.00053218 | 0.00053218 | 0.00053218 | 0.0 | 0.13
Other | | 0.0007481 | | | 0.19
Nlocal: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 727 ave 727 max 727 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 7424 ave 7424 max 7424 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,155 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-177-g86abf4f680-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.001 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coeff.pod Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.187 | 3.187 | 3.187 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.842971 0 -11.804496 -24843.054
10 296.87227 -11.84257 0 -11.804496 -24609.859
20 287.65971 -11.841388 0 -11.804496 -23926.722
30 272.87511 -11.839492 0 -11.804496 -22841.672
40 253.34724 -11.836988 0 -11.804496 -21429.268
50 230.17169 -11.834015 0 -11.804496 -19782.77
60 204.64408 -11.830741 0 -11.804496 -18004.755
70 178.17888 -11.827347 0 -11.804495 -16197.482
80 152.21769 -11.824017 0 -11.804495 -14454.425
90 128.13189 -11.820928 0 -11.804495 -12854.075
100 107.12666 -11.818234 0 -11.804495 -11456.437
Loop time of 0.153961 on 4 procs for 100 steps with 128 atoms
Performance: 28.059 ns/day, 0.855 hours/ns, 649.516 timesteps/s, 83.138 katom-step/s
96.2% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.1281 | 0.12977 | 0.1312 | 0.3 | 84.29
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.01967 | 0.021169 | 0.022796 | 0.8 | 13.75
Output | 0.00045049 | 0.00053796 | 0.00078459 | 0.0 | 0.35
Modify | 0.00039544 | 0.0004393 | 0.00048043 | 0.0 | 0.29
Other | | 0.002049 | | | 1.33
Nlocal: 32 ave 32 max 32 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 431 ave 431 max 431 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 1856 ave 1856 max 1856 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,39 +1,46 @@
LAMMPS (22 Dec 2022) LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-179-g353121c942-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task using 1 OpenMP thread(s) per MPI task
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials **************** **************** Begin of POD Potentials ****************
species: Ta species: Ta
periodic boundary conditions: 1 1 1 periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1 inner cut-off radius: 1
outer cut-off radius: 5 outer cut-off radius: 5
bessel polynomial degree: 3 bessel polynomial degree: 3
inverse polynomial degree: 6 inverse polynomial degree: 6
one-body potential: 1 one-body potential: 1
two-body potential: 3 6 6 two-body radial basis functions: 6
three-body potential: 3 6 5 5 three-body radial basis functions: 5
four-body SNAP potential: 0 0 three-body angular degree: 4
quadratic POD potential: 1 four-body radial basis functions: 0
number of basis functions for one-body potential: 1 four-body angular degree: 0
number of basis functions for two-body potential: 6 five-body radial basis functions: 0
number of basis functions for three-body potential: 25 five-body angular degree: 0
number of basis functions for four-body potential: 0 six-body radial basis functions: 0
number of descriptors for one-body potential: 1 six-body angular degree: 0
number of descriptors for two-body potential: 6 seven-body radial basis functions: 0
number of descriptors for three-body potential: 25 seven-body angular degree: 0
number of descriptors for four-body potential: 0 number of local descriptors per element for one-body potential: 1
number of descriptors for quadratic POD potential: 150 number of local descriptors per element for two-body potential: 6
total number of descriptors for all potentials: 182 number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials **************** **************** End of POD Potentials ****************
**************** Begin of Data File **************** **************** Begin of Data File ****************
file format: extxyz file format: extxyz
file extension: xyz file extension: xyz
path to training data set: ../Ta/XYZ path to training data set: XYZ
path to test data set: ../Ta/XYZ path to test data set: XYZ
path to environment configuration set: XYZ
basename for output files: Ta
training fraction: 1 training fraction: 1
test fraction: 1 test fraction: 1
randomize training data set: 1 randomize training data set: 1
@ -45,7 +52,8 @@ energy/force calculation for test data set: 0
fitting weight for energy: 100 fitting weight for energy: 100
fitting weight for force: 1 fitting weight for force: 1
fitting weight for stress: 0 fitting weight for stress: 0
fitting regularization parameter: 1e-10 save pod descriptors: 0
compute pod descriptors: 0
**************** End of Data File **************** **************** End of Data File ****************
**************** Begin of Training Data Set **************** **************** Begin of Training Data Set ****************
--------------------------------------------------------------- ---------------------------------------------------------------
@ -74,16 +82,14 @@ maximum number of atoms: 100
maximum number of atoms in periodic domain: 100 maximum number of atoms in periodic domain: 100
maximum number of atoms in extended domain: 2700 maximum number of atoms in extended domain: 2700
maximum number of neighbors in extended domain: 270000 maximum number of neighbors in extended domain: 270000
size of double memory: 223201 size of double memory: 232128
size of int memory: 14709 size of descriptor matrix: 32 x 32
size of descriptor matrix: 182 x 182
**************** End of Memory Allocation **************** **************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting **************** **************** Begin of Least-Squares Fitting ****************
Configuration: # 1 Configuration: # 1
Configuration: # 101 Configuration: # 101
Configuration: # 201 Configuration: # 201
Configuration: # 301 Configuration: # 301
**************** End of Least-Squares Fitting ****************
**************** Begin of Error Calculation **************** **************** Begin of Error Calculation ****************
Configuration: # 1 Configuration: # 1
Configuration: # 101 Configuration: # 101
@ -94,21 +100,20 @@ Configuration: # 301
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.000554 0.000680 0.066393 0.083014 Displaced_A15.xyz 9 576 0.015324 0.015365 0.140594 0.184797
Displaced_BCC.xyz 9 486 0.004724 0.005103 0.108253 0.139461 Displaced_BCC.xyz 9 486 0.009486 0.011643 0.249983 0.320375
Displaced_FCC.xyz 9 432 0.001704 0.001900 0.077531 0.097471 Displaced_FCC.xyz 9 432 0.000686 0.000880 0.091420 0.113585
Elastic_BCC.xyz 100 200 0.000444 0.000446 0.000001 0.000002 Elastic_BCC.xyz 100 200 0.003796 0.004379 0.000015 0.000020
Elastic_FCC.xyz 100 400 0.000273 0.000327 0.000110 0.000163 Elastic_FCC.xyz 100 400 0.003332 0.003372 0.000122 0.000178
GSF_110.xyz 22 528 0.001852 0.002260 0.027302 0.044765 GSF_110.xyz 22 528 0.007027 0.007797 0.057637 0.115638
GSF_112.xyz 22 660 0.001839 0.002404 0.051415 0.080350 GSF_112.xyz 22 660 0.010396 0.011347 0.125237 0.198553
Liquid.xyz 3 300 0.000674 0.000758 0.217921 0.276109 Liquid.xyz 3 300 0.017584 0.023822 0.504354 0.660300
Surface.xyz 7 236 0.009115 0.011661 0.047949 0.105123 Surface.xyz 7 236 0.025511 0.034302 0.107190 0.285034
Volume_A15.xyz 30 240 0.001407 0.001693 0.000000 0.000000 Volume_A15.xyz 30 240 0.038624 0.048355 0.000000 0.000000
Volume_BCC.xyz 21 42 0.001497 0.002077 0.000000 0.000000 Volume_BCC.xyz 21 42 0.044423 0.061685 0.000000 0.000000
Volume_FCC.xyz 31 124 0.000870 0.001139 0.000000 0.000000 Volume_FCC.xyz 31 124 0.030062 0.041271 0.000000 0.000000
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
All files 363 4224 0.001053 0.002171 0.059051 0.106960 All files 363 4224 0.012618 0.024806 0.125879 0.247229
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set **************** **************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:00 Total wall time: 0:00:00

View File

@ -0,0 +1,293 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-179-g353121c942-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate bispectrum computes
# initialize simulation
variable nsteps index 0
variable nrep equal 2
variable a equal 2.0
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 2
variable ny equal ${nrep}
variable ny equal 2
variable nz equal ${nrep}
variable nz equal 2
boundary p p p
atom_modify map hash
lattice bcc $a
lattice bcc 2
Lattice spacing in x,y,z = 2 2 2
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 2 0 ${ny} 0 ${nz}
region box block 0 2 0 2 0 ${nz}
region box block 0 2 0 2 0 2
create_box 2 box
Created orthogonal box = (0 0 0) to (4 4 4)
1 by 1 by 1 MPI processor grid
create_atoms 2 box
Created 16 atoms
using lattice units in orthogonal box = (0 0 0) to (4 4 4)
create_atoms CPU = 0.001 seconds
mass * 180.88
displace_atoms all random 0.1 0.1 0.1 123456
Displacing atoms ...
# set up dummy potential to satisfy cutoff
variable rcutfac equal 6.0
pair_style zero ${rcutfac}
pair_style zero 6
pair_coeff * *
# set up per-atom computes
compute ld all pod/atom Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
compute dd all podd/atom Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# set up compute snap generating global array
compute gdd all pod/global Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
#fix gdd all ave/time 1 1 1 c_gdd[*] file pod.gdd.dat mode vector
compute ldd all pod/local Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
#fix ldd all ave/time 1 1 1 c_ldd[*] file pod.ldd.dat mode vector
#dump mydump_ld all custom 1000 dump_ld id c_ld[*]
#dump mydump_dd all custom 1000 dump_dd id c_dd[*]
variable sample_ld1 equal C_ld[1][10] # Arbitrary local descriptor
fix ldprint all print 1 "${sample_ld1}"
run ${nsteps}
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
WARNING: More than one compute pod (src/ML-POD/compute_pod_atom.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_podd_atom.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_pod_global.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_pod_local.cpp:89)
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8
ghost atom cutoff = 8
binsize = 4, bins = 1 1 1
5 neighbor lists, perpetual/occasional/extra = 1 4 0
(1) pair zero, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
(2) compute pod/atom, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(3) compute podd/atom, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(4) compute pod/global, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(5) compute pod/local, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
0.344594831165384
Per MPI rank memory allocation (min/avg/max) = 6.326 | 6.326 | 6.326 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 0 0 0 0
Loop time of 1.23e-06 on 1 procs for 0 steps with 16 atoms
243.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.23e-06 | | |100.00
Nlocal: 16 ave 16 max 16 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1984 ave 1984 max 1984 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 4311 ave 4311 max 4311 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 8623 ave 8623 max 8623 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 8623
Ave neighs/atom = 538.9375
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,142 +0,0 @@
LAMMPS (22 Dec 2022)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.000 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coeff.pod Ta
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body potential: 3 6 6
three-body potential: 3 6 5 5
four-body SNAP potential: 0 0
quadratic POD potential: 0
number of basis functions for one-body potential: 1
number of basis functions for two-body potential: 6
number of basis functions for three-body potential: 25
number of basis functions for four-body potential: 0
number of descriptors for one-body potential: 1
number of descriptors for two-body potential: 6
number of descriptors for three-body potential: 25
number of descriptors for four-body potential: 0
number of descriptors for quadratic POD potential: 0
total number of descriptors for all potentials: 32
**************** End of POD Potentials ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.082 | 3.082 | 3.082 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.841512 0 -11.803037 -15933.622
10 296.91721 -11.841117 0 -11.803037 -15691.904
20 287.83555 -11.839952 0 -11.803037 -14982.977
30 273.25574 -11.838082 0 -11.803037 -13853.44
40 253.98821 -11.835611 0 -11.803037 -12375.459
50 231.10664 -11.832676 0 -11.803037 -10639.774
60 205.8844 -11.829441 0 -11.803037 -8747.2222
70 179.71599 -11.826085 0 -11.803037 -6799.8371
80 154.02711 -11.822791 0 -11.803037 -4892.7805
90 130.17821 -11.819732 0 -11.803036 -3108.1226
100 109.36842 -11.817063 0 -11.803036 -1510.9592
Loop time of 1.51641 on 1 procs for 100 steps with 128 atoms
Performance: 2.849 ns/day, 8.425 hours/ns, 65.945 timesteps/s, 8.441 katom-step/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.5158 | 1.5158 | 1.5158 | 0.0 | 99.96
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00023616 | 0.00023616 | 0.00023616 | 0.0 | 0.02
Output | 0.00010779 | 0.00010779 | 0.00010779 | 0.0 | 0.01
Modify | 9.7284e-05 | 9.7284e-05 | 9.7284e-05 | 0.0 | 0.01
Other | | 0.0001254 | | | 0.01
Nlocal: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 727 ave 727 max 727 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 7424 ave 7424 max 7424 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -1,142 +0,0 @@
LAMMPS (22 Dec 2022)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.000 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coeff.pod Ta
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body potential: 3 6 6
three-body potential: 3 6 5 5
four-body SNAP potential: 0 0
quadratic POD potential: 0
number of basis functions for one-body potential: 1
number of basis functions for two-body potential: 6
number of basis functions for three-body potential: 25
number of basis functions for four-body potential: 0
number of descriptors for one-body potential: 1
number of descriptors for two-body potential: 6
number of descriptors for three-body potential: 25
number of descriptors for four-body potential: 0
number of descriptors for quadratic POD potential: 0
total number of descriptors for all potentials: 32
**************** End of POD Potentials ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.062 | 3.062 | 3.062 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.841512 0 -11.803037 -15933.622
10 296.91721 -11.841117 0 -11.803037 -15691.904
20 287.83555 -11.839952 0 -11.803037 -14982.977
30 273.25574 -11.838082 0 -11.803037 -13853.44
40 253.98821 -11.835611 0 -11.803037 -12375.459
50 231.10664 -11.832676 0 -11.803037 -10639.774
60 205.8844 -11.829441 0 -11.803037 -8747.2222
70 179.71599 -11.826085 0 -11.803037 -6799.8371
80 154.02711 -11.822791 0 -11.803037 -4892.7805
90 130.17821 -11.819732 0 -11.803036 -3108.1226
100 109.36842 -11.817063 0 -11.803036 -1510.9592
Loop time of 0.437423 on 4 procs for 100 steps with 128 atoms
Performance: 9.876 ns/day, 2.430 hours/ns, 228.612 timesteps/s, 29.262 katom-step/s
98.0% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.41133 | 0.41882 | 0.42464 | 0.7 | 95.75
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.011279 | 0.017302 | 0.024975 | 3.7 | 3.96
Output | 0.00012956 | 0.00029493 | 0.00077991 | 0.0 | 0.07
Modify | 4.2093e-05 | 4.7838e-05 | 5.3039e-05 | 0.0 | 0.01
Other | | 0.0009598 | | | 0.22
Nlocal: 32 ave 32 max 32 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 431 ave 431 max 431 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 1856 ave 1856 max 1856 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,183 +0,0 @@
POD_coefficients: 182
-4.35182
3.57837
2.25497
4.84612
-2.06319
-1.17070
-0.23842
9.17160
36.02366
16.65304
-141.18403
37.17722
0.46028
-9.76148
-0.03681
15.64520
2.29791
0.02143
2.69735
-0.35336
0.51108
-2.36290
0.18617
-0.13079
1.02666
0.21514
0.08075
-0.28347
-0.45059
-0.24762
-1.13671
-0.30577
0.60504
0.31285
-0.10639
-0.06957
0.21961
-0.10426
0.80318
-11.41460
-10.26102
-0.03887
-18.86071
-4.47372
-1.76858
-0.92503
0.42654
0.35849
0.56611
-0.79354
5.65136
8.75283
-6.22283
-4.34623
10.20031
6.53360
7.16688
2.19236
5.90789
3.52173
7.97264
0.21104
-0.01015
0.01023
0.03088
0.10222
0.05366
-0.08037
-3.17612
-3.45669
-0.79282
-2.38323
-0.69797
-1.44780
-0.03351
-0.05645
0.01901
-0.01923
0.05401
-0.02095
1.45651
1.58812
1.41188
2.18122
3.04893
1.09294
3.03781
1.07249
0.50262
0.81150
0.35997
0.64602
-0.04245
0.00113
-0.02894
0.04382
-0.06556
0.00052
4.67541
0.11812
1.52428
-0.17075
0.20231
0.36857
0.61744
0.20190
-0.00816
0.16194
-0.12948
-0.02136
-2.19271
0.62510
0.20030
-0.27621
-0.58116
-0.21792
-1.82295
-0.32166
-0.64550
-0.11580
-0.02438
-0.08057
0.19538
0.04119
0.00323
0.06530
-0.02547
-0.01404
0.22336
-0.48191
-0.10715
-0.25685
-0.65069
-0.31428
-0.06947
0.11924
0.05467
0.12105
-0.03980
-0.00295
-2.14413
0.82345
0.23083
-0.24925
-0.36678
-0.16709
1.20410
-0.47756
-0.11104
0.09587
0.03722
0.00309
-0.29879
-0.06463
-0.10236
-0.02276
-0.06012
-0.02985
12.06876
-3.39995
0.85590
-0.77481
-1.13392
-0.40511
-0.08005
-0.07162
-0.05978
-0.02407
-0.06031
-0.02307
-10.24105
2.49356
-1.14052
0.70453
0.99988
0.33862
2.43469
-1.16557
-0.23708
0.03482
-0.05280
-0.02735

View File

@ -1,33 +0,0 @@
# DATE: 2022-11-30 UNITS: metal CONTRIBUTOR: Ngoc Cuong Nguyen, exapde@gmail.com CITATION: https://arxiv.org/abs/2209.02362
# chemical element symbols
species Ta
# periodic boundary conditions
pbc 1 1 1
# inner cut-off radius
rin 1.0
# outer cut-off radius
rcut 5.0
# polynomial degrees for radial basis functions
bessel_polynomial_degree 3
inverse_polynomial_degree 6
# one-body potential
onebody 1
# two-body linear POD potential
twobody_number_radial_basis_functions 6
# three-body linear POD potential
threebody_number_radial_basis_functions 5
threebody_number_angular_basis_functions 5
# four-body linear SNAP potential
fourbody_snap_twojmax 0
# quadratic POD potential
quadratic_pod_potential 1

View File

@ -1,387 +0,0 @@
# Displaced_A15.xyz
config # atoms energy DFT energy energy error force DFT force force error
1 64 -754.2481469 -754.220443 0.0004328739544 8.011514562 8.398670477 0.06376624845
2 64 -753.8045629 -753.865255 0.0009483144042 9.036674821 9.134430545 0.07283326238
3 64 -754.1013214 -754.0221 0.001237834258 8.637024088 9.017261102 0.06364800593
4 64 -754.2847414 -754.279613 8.013173542e-05 8.107730622 8.381725092 0.06510174353
5 64 -753.8382044 -753.777209 0.0009530527364 9.104258904 9.478314477 0.07200164536
6 64 -754.0793448 -754.048643 0.0004797149286 8.152198894 8.465317938 0.06707941365
7 64 -754.3310528 -754.317603 0.0002101531052 7.9440922 8.127690491 0.05987172107
8 64 -754.0070856 -753.969161 0.0005925720361 9.179443805 9.425464952 0.06695320222
9 64 -754.1450602 -754.141988 4.800358611e-05 8.574170786 8.821346913 0.06628506232
# Displaced_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
10 54 -630.8081935 -631.019667 0.003916175555 15.97497534 16.625876 0.1021118679
11 54 -631.4580134 -631.719595 0.004844103559 15.24068949 15.58666626 0.1043856792
12 54 -631.1667566 -631.386255 0.004064785931 15.46091788 15.92378883 0.1062824093
13 54 -632.3004944 -632.575826 0.005098733346 14.4261974 14.55977162 0.0983914465
14 54 -630.089475 -630.450212 0.006680315456 16.78432947 16.96340726 0.1085102316
15 54 -631.3402507 -631.669379 0.006094968558 15.8289421 16.05757315 0.1000888617
16 54 -632.0447348 -632.431277 0.007158189539 14.73098416 14.69810718 0.09621569386
17 54 -630.7186536 -630.960068 0.004470636457 15.62236511 15.99073148 0.1063789621
18 54 -623.3884977 -623.378198 0.0001907343232 23.9739298 24.67640432 0.1519105596
# Displaced_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
19 48 -556.0112403 -555.899463 0.002328692864 5.300795546 6.084617063 0.07215982294
20 48 -555.9884377 -555.922478 0.001374159425 5.509767245 6.297071211 0.08438730171
21 48 -555.8765558 -555.800269 0.001589309295 5.420812146 6.021098636 0.07404418561
22 48 -556.2511475 -556.196151 0.001145760427 4.541854917 5.127955094 0.06609455537
23 48 -555.6590668 -555.488929 0.003544536845 6.087063152 7.050223459 0.09107542897
24 48 -556.1020655 -556.027926 0.001544573067 5.048523277 5.611881174 0.06751584111
25 48 -556.0607474 -555.968399 0.001923924855 5.209756732 5.979217189 0.08024047849
26 48 -556.0598015 -556.047132 0.0002639485133 4.995519804 5.544452585 0.07745361595
27 48 -555.8256424 -555.747848 0.00162071731 5.762702675 6.47892568 0.08480576837
# Elastic_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
28 2 -23.69025375 -23.689367 0.0004433751768 0.0006229111456 0.0006222748589 9.850534294e-07
29 2 -23.690768 -23.689888 0.0004399996606 0.0006181832344 0.0006166052222 1.005063831e-06
30 2 -23.69082186 -23.689996 0.0004129292199 0.0008798076914 0.0008810425642 1.748431771e-06
31 2 -23.69166748 -23.690957 0.0003552395228 1.000599546e-06 0 4.011214433e-07
32 2 -23.69137648 -23.690521 0.0004277406839 0.0005992884516 0.0005982273815 7.219402767e-07
33 2 -23.69120607 -23.69038 0.000413036746 0.000594795449 0.0005925723585 9.949794864e-07
34 2 -23.6900782 -23.689202 0.000438099978 0.0006263336007 0.0006279363025 1.111474332e-06
35 2 -23.69121642 -23.690482 0.0003672088475 0.00086350893 0.0008640138888 1.400551425e-06
36 2 -23.69074792 -23.689902 0.0004229601404 0.0006176589245 0.0006152154094 9.894995842e-07
37 2 -23.6914111 -23.690563 0.0004240514006 0.0006052368582 0.0006038725031 4.148713688e-07
38 2 -23.69095105 -23.690207 0.0003720253444 0.001071999394 0.00107369735 7.195087511e-07
39 2 -23.69007856 -23.689285 0.0003967806815 0.0008875291033 0.000890013483 1.187797446e-06
40 2 -23.69061639 -23.689768 0.0004241940528 0.00107874486 0.001080249045 1.09850755e-06
41 2 -23.69064479 -23.68968 0.0004823957182 0.0008702114429 0.0008680034562 8.482668094e-07
42 2 -23.6910243 -23.690074 0.0004751495365 0.001368926593 0.001373818765 2.351835771e-06
43 2 -23.68910107 -23.688108 0.0004965341502 0.0006334704764 0.0006336134468 5.990110163e-07
44 2 -23.69003986 -23.689241 0.0003994287496 0.0008886654529 0.0008880101351 1.319380731e-06
45 2 -23.69042994 -23.68952 0.0004549677771 0.0008868888968 0.0008860011287 4.688590432e-07
46 2 -23.68738487 -23.686278 0.0005534329248 0.0006426681164 0.0006406777661 9.718938063e-07
47 2 -23.69095089 -23.690097 0.0004269463837 0.0008409065407 0.0008410160522 1.331153983e-06
48 2 -23.69158161 -23.690811 0.0003853032969 0.0008464480591 0.0008500070588 1.611890257e-06
49 2 -23.69114597 -23.690266 0.0004399838162 0.001039354626 0.001044322747 3.354760892e-06
50 2 -23.6914223 -23.690597 0.0004126524984 0.001045529019 0.001050833003 2.164890519e-06
51 2 -23.69157045 -23.690673 0.000448723371 0.0006045419676 0.0006038907186 7.138092253e-07
52 2 -23.69135377 -23.690551 0.0004013838132 0.0008554941993 0.0008590064028 1.199818147e-06
53 2 -23.6914855 -23.690693 0.0003962481391 0.0008561040807 0.0008590110593 1.062310127e-06
54 2 -23.69110782 -23.69021 0.0004489100066 0.0008699576152 0.0008730051546 1.100920756e-06
55 2 -23.68987142 -23.688943 0.0004642105928 0.0008789741194 0.0008800306813 8.92018913e-07
56 2 -23.69108099 -23.690136 0.0004724937378 0.0005971006713 0.000593996633 9.809423198e-07
57 2 -23.6884849 -23.687444 0.0005204491042 0.000904649919 0.000903059245 1.159812589e-06
58 2 -23.69061659 -23.689801 0.0004077963743 0.0008734822906 0.0008740011442 2.825876968e-07
59 2 -23.69129673 -23.690408 0.0004443659273 8.294238722e-07 0 3.094976672e-07
60 2 -23.69128183 -23.690362 0.0004599146039 0.0006083806397 0.0006067503605 7.610598464e-07
61 2 -23.68992958 -23.688881 0.0005242884644 0.000821029922 0.0008250054545 1.71686782e-06
62 2 -23.6913441 -23.690515 0.0004145518648 0.001475621399 0.001475779794 2.84677577e-06
63 2 -23.69141171 -23.690551 0.0004303564504 0.0005957866015 0.0005996599036 1.20514709e-06
64 2 -23.69029628 -23.689487 0.0004046403158 0.0006212225944 0.0006194384554 9.873937532e-07
65 2 -23.69072139 -23.68986 0.0004306945962 0.0008858828979 0.0008860124153 5.860284088e-07
66 2 -23.69018379 -23.689288 0.0004478949008 0.001400963016 0.001396479144 1.244329984e-06
67 2 -23.69129611 -23.690457 0.0004195546182 0.0005914019669 0.0005939831647 1.147186262e-06
68 2 -23.69084551 -23.689792 0.0005267528672 0.0008274902414 0.0008340587509 2.923475453e-06
69 2 -23.69101454 -23.690006 0.0005042723904 0.0005874526839 0.0005897694465 1.183912924e-06
70 2 -23.69137638 -23.690571 0.000402691994 0.0005935054979 0.0005939781141 8.884918862e-07
71 2 -23.69114123 -23.690213 0.0004641143201 0.001085937193 0.001084315452 6.623820068e-07
72 2 -23.69146017 -23.690617 0.0004215869658 0.0005980165481 0.0006024682564 1.268404944e-06
73 2 -23.69063494 -23.689761 0.0004369696294 0.0008787872001 0.0008790688255 2.274049375e-06
74 2 -23.69116059 -23.69027 0.0004452958397 6.913233052e-07 0 2.060281613e-07
75 2 -23.69134793 -23.690599 0.0003744660576 0.0006108390866 0.0006137752031 6.96527736e-07
76 2 -23.69149586 -23.69061 0.0004429283645 9.198413091e-07 0 3.754401369e-07
77 2 -23.69139951 -23.690603 0.0003982565418 0.0008543320292 0.0008590331775 1.578633627e-06
78 2 -23.68884519 -23.687908 0.0004685934904 0.0009053957054 0.0009010105438 1.657834627e-06
79 2 -23.69142551 -23.690688 0.0003687527847 0.0008461959647 0.0008470064935 1.246502358e-06
80 2 -23.69088798 -23.689988 0.0004499883039 0.0006191457459 0.0006194465272 7.974697206e-07
81 2 -23.69054504 -23.689613 0.0004660181693 0.0008740608763 0.0008740732235 7.595219281e-07
82 2 -23.69150291 -23.690678 0.0004124547512 0.000610815565 0.0006123757017 8.071847352e-07
83 2 -23.69107508 -23.69017 0.0004525405781 0.0008712164372 0.0008750051428 1.391960695e-06
84 2 -23.68888774 -23.687892 0.0004978720826 0.001115255323 0.001112070142 1.300271383e-06
85 2 -23.69100617 -23.690132 0.0004370853773 0.0008623539978 0.000868018433 1.989797184e-06
86 2 -23.69156961 -23.690843 0.0003633026522 0.0006034844173 0.0006081134763 1.367563513e-06
87 2 -23.6914135 -23.690598 0.0004077495027 0.001205622469 0.001217674833 4.139579599e-06
88 2 -23.69152569 -23.690656 0.0004348453461 0.0005982210923 0.0006024765556 1.339909066e-06
89 2 -23.69122964 -23.690254 0.00048782182 0.001039614512 0.001043496047 2.818899799e-06
90 2 -23.69160573 -23.690694 0.0004558641588 0.0006005238032 0.0006010740387 4.468144277e-07
91 2 -23.69097667 -23.690097 0.0004398327929 0.0008742196236 0.0008730234819 9.401054078e-07
92 2 -23.68931978 -23.688402 0.000458891277 0.0006323492378 0.000632180354 2.788895255e-07
93 2 -23.68957636 -23.688669 0.0004536814608 0.001093068336 0.001092474256 1.597403354e-06
94 2 -23.69136079 -23.690538 0.0004113951269 0.0008559692215 0.0008610145179 1.717480332e-06
95 2 -23.69064046 -23.689722 0.0004592296819 0.0006203235661 0.0006251287867 1.466428815e-06
96 2 -23.69148677 -23.690581 0.0004528827615 7.127210559e-07 0 2.255863159e-07
97 2 -23.68967251 -23.688755 0.0004587561741 0.0006269092047 0.0006251143895 8.456044924e-07
98 2 -23.69038245 -23.689312 0.0005352258985 0.0008260738577 0.0008290597083 1.434578094e-06
99 2 -23.6885155 -23.687388 0.000563750435 0.001127068066 0.001120237475 2.790106364e-06
100 2 -23.69147138 -23.690664 0.0004036883861 0.0006101343713 0.0006109402589 2.333308226e-07
101 2 -23.69059185 -23.68941 0.0005909264985 0.0005851627979 0.0005883553348 1.578359791e-06
102 2 -23.69082355 -23.690035 0.0003942730081 0.0008795919888 0.0008810062429 8.322915827e-07
103 2 -23.69101815 -23.690015 0.0005015766298 0.0008420116739 0.0008450195264 1.339928081e-06
104 2 -23.6915919 -23.690752 0.0004199497676 0.0005974770628 0.0005996415596 9.70808844e-07
105 2 -23.69060481 -23.689825 0.0003899065755 0.0008774617579 0.0008800215906 1.681761199e-06
106 2 -23.69149834 -23.690562 0.0004681676 0.0008527074936 0.0008560011682 1.11226924e-06
107 2 -23.69145561 -23.690622 0.0004168050595 0.0008363624298 0.0008390017878 8.930611273e-07
108 2 -23.68965306 -23.688764 0.0004445297309 0.0008936263738 0.0008910185183 1.309339573e-06
109 2 -23.69077552 -23.690011 0.0003822592712 0.0006203793746 0.0006194287691 3.133550229e-07
110 2 -23.68867102 -23.687696 0.0004875100015 0.001086068328 0.001087589996 1.327020171e-06
111 2 -23.69172933 -23.691019 0.0003551646935 0.000852013148 0.0008540035129 9.847230007e-07
112 2 -23.68991099 -23.689025 0.000442996005 6.46227386e-07 0 2.557212911e-07
113 2 -23.69080506 -23.689952 0.0004265318142 7.012777671e-07 0 2.758977769e-07
114 2 -23.69152793 -23.69061 0.0004589654148 0.0008542966264 0.0008580011655 1.338482046e-06
115 2 -23.69153556 -23.690595 0.0004702783823 0.000867974804 0.0008680069124 6.687384672e-07
116 2 -23.69117399 -23.690231 0.000471493636 0.0005924023762 0.0005925892338 1.259776007e-07
117 2 -23.69139497 -23.690469 0.0004629856458 0.0008486906688 0.0008500294113 6.344879116e-07
118 2 -23.69122801 -23.690482 0.0003730070077 0.0008734801582 0.0008740102974 2.172190141e-07
119 2 -23.69055118 -23.689613 0.0004690919274 0.0008237358825 0.0008320192305 2.927942421e-06
120 2 -23.68847553 -23.687426 0.0005247657372 0.001093739709 0.00109577735 8.307823424e-07
121 2 -23.69041353 -23.689562 0.000425762889 0.0006210724415 0.0006265237426 1.574752432e-06
122 2 -23.69137916 -23.6904 0.0004895814578 3.712921801e-07 0 1.509058252e-07
123 2 -23.69152029 -23.690561 0.0004796427403 0.0005964911748 0.0005982273815 1.201511775e-06
124 2 -23.69012377 -23.689107 0.0005083837539 0.0008124995989 0.0008180073349 1.97846325e-06
125 2 -23.69112303 -23.690145 0.000489014125 0.0008742245309 0.0008740766557 1.981010569e-06
126 2 -23.6913827 -23.690482 0.00045035056 0.0005944563316 0.0005939983165 2.227151791e-07
127 2 -23.69071568 -23.689864 0.0004258388591 0.0008855411376 0.0008860124153 7.974985004e-07
# Elastic_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
128 4 -46.43709855 -46.437936 0.0002093617328 0.0008950059332 0.001265949446 0.0001464529791
129 4 -46.4407039 -46.438504 0.0005499744469 0.0009975948265 0.001492549497 0.0001384062515
130 4 -46.43497365 -46.436378 0.0003510867184 0.0005521282525 0.000810592376 9.989141969e-05
131 4 -46.44077415 -46.441551 0.0001942123898 0.001132197907 0.001283675193 6.296966657e-05
132 4 -46.41517164 -46.416957 0.0004463408133 0.000917990147 0.001186145859 8.226324971e-05
133 4 -46.43849879 -46.440495 0.0004990529713 0.001000780113 0.001212440514 6.935590465e-05
134 4 -46.43777706 -46.437972 4.873595839e-05 0.001389269665 0.002358226452 0.0002414827518
135 4 -46.44772061 -46.44586 0.0004651524929 0.00136379307 0.002033949852 0.0001874009366
136 4 -46.43566097 -46.435744 2.075858871e-05 0.0009531675039 0.001690849491 0.0002499304712
137 4 -46.4397151 -46.438209 0.0003765248409 0.0008871611703 0.001160049999 6.827992039e-05
138 4 -46.42609455 -46.42629 4.886349894e-05 0.0005556350766 0.0005297018029 1.21651498e-05
139 4 -46.44149051 -46.443301 0.0004526223375 0.001132510738 0.001818421568 0.0001734412988
140 4 -46.43896893 -46.439002 8.267473937e-06 0.001179879164 0.001416973535 6.937478941e-05
141 4 -46.43123555 -46.432438 0.0003006112875 0.001147766739 0.001010469198 6.008540236e-05
142 4 -46.41017485 -46.412654 0.0006197883649 0.001371501311 0.001801959766 0.0001610014112
143 4 -46.44246774 -46.443231 0.0001908144167 0.0008879088126 0.001691590967 0.0001867981938
144 4 -46.43057135 -46.431513 0.0002354128564 0.001455115574 0.001680544852 7.970584502e-05
145 4 -46.43314849 -46.435608 0.0006148766383 0.000895665005 0.0009593039143 1.661569891e-05
146 4 -46.43895751 -46.437689 0.0003171270659 0.001001644887 0.001217708504 8.864745791e-05
147 4 -46.4271122 -46.428447 0.0003336990143 0.001053852574 0.002060081552 0.0002791878204
148 4 -46.43182739 -46.432255 0.000106902789 0.0007125255966 0.0006274201144 7.371627608e-05
149 4 -46.44177161 -46.442315 0.0001358463057 0.001140463867 0.002424436842 0.0003371037421
150 4 -46.43717254 -46.436613 0.000139884251 0.0005515470124 0.0005321240457 4.25980675e-05
151 4 -46.43004027 -46.430825 0.0001961823592 0.001008902912 0.001399987143 0.0001075255834
152 4 -46.43208405 -46.43312 0.0002589881882 0.0005518528033 0.0007272771136 5.274203147e-05
153 4 -46.43371444 -46.434347 0.000158140244 0.0008969169177 0.001284451634 0.000116451331
154 4 -46.42879982 -46.430573 0.0004432948912 0.0009069765322 0.001315746176 0.0001014266222
155 4 -46.44729799 -46.445665 0.0004082485341 0.001210137892 0.00180789159 0.0001638465464
156 4 -46.43544342 -46.435898 0.0001136447769 0.0008978231434 0.001869300939 0.0002335504461
157 4 -46.44021163 -46.442107 0.0004738424917 0.0007064270827 0.0006020930161 3.471655618e-05
158 4 -46.43498956 -46.434432 0.0001393896227 0.0009533481605 0.001092982159 7.242855265e-05
159 4 -46.43803608 -46.436308 0.0004320210529 0.001263659168 0.001839150891 0.0001727461868
160 4 -46.42268734 -46.423938 0.0003126642441 0.001014412719 0.001463463016 0.0001717552709
161 4 -46.42662921 -46.428115 0.0003714482928 0.0007136207063 0.0008584497656 6.405723837e-05
162 4 -46.42531434 -46.4269 0.0003964160099 0.001206355349 0.001845719914 0.0002046485876
163 4 -46.42224822 -46.421142 0.00027655517 0.001156356408 0.001309150106 4.994079618e-05
164 4 -46.4302643 -46.432233 0.0004921743842 0.0007882966199 0.0007253109678 2.466489974e-05
165 4 -46.43017473 -46.429408 0.0001916835518 0.000899021915 0.001068327665 6.208651635e-05
166 4 -46.44541887 -46.445145 6.846642975e-05 0.001028604344 0.001776038288 0.0001975509563
167 4 -46.43410132 -46.435868 0.0004416698523 0.00126629641 0.002376074704 0.0003279007933
168 4 -46.43919494 -46.439663 0.0001170158831 0.0005441672792 0.001119403413 0.0001039537827
169 4 -46.42584101 -46.428287 0.0006114968909 0.001286554794 0.001277000392 3.606396056e-05
170 4 -46.42254993 -46.424584 0.000508517271 0.0007166928246 0.0008032957114 3.058246984e-05
171 4 -46.41053526 -46.413045 0.0006274344802 0.001077488731 0.001248322074 4.395073797e-05
172 4 -46.43440112 -46.436994 0.0006482191497 0.0009567631962 0.001331939188 0.0001491134491
173 4 -46.44377744 -46.443604 4.335911262e-05 0.0009956173287 0.001177046303 8.761456142e-05
174 4 -46.44028269 -46.439718 0.0001411716593 9.067044161e-07 0 2.475504855e-07
175 4 -46.43723548 -46.435527 0.0004271206705 0.001133620344 0.0009338393866 8.014312499e-05
176 4 -46.43396161 -46.434787 0.0002063465503 0.001150111339 0.00117329195 4.934565354e-05
177 4 -46.43612253 -46.434929 0.0002983823621 0.001267526966 0.001349491756 5.093502218e-05
178 4 -46.42638491 -46.426499 2.852244117e-05 0.001164859691 0.001248937949 4.347949244e-05
179 4 -46.43717201 -46.437025 3.675245971e-05 0.0007725496777 0.000938418883 6.831038049e-05
180 4 -46.4281895 -46.428937 0.0001868757356 0.001151243959 0.001286352984 4.994282406e-05
181 4 -46.44116364 -46.442516 0.0003380892793 0.0007032387465 0.00094855469 0.0001088604201
182 4 -46.42978258 -46.428736 0.0002616440103 0.001009629916 0.001424321593 0.0001089615662
183 4 -46.43305551 -46.433359 7.587361447e-05 0.001156682853 0.001276381604 4.128766832e-05
184 4 -46.44006475 -46.438799 0.0003164382753 0.0007752996065 0.0008186940821 3.548756745e-05
185 4 -46.44169053 -46.441993 7.561864672e-05 0.0008970969052 0.001887735151 0.0002223397932
186 4 -46.43727222 -46.439033 0.0004401954936 0.0007708721088 0.000821568013 4.107007018e-05
187 4 -46.43632517 -46.436967 0.0001604574289 0.001052390296 0.001482323514 0.0001388091482
188 4 -46.42718259 -46.427245 1.560352526e-05 0.001072419721 0.001293885621 7.709435507e-05
189 4 -46.43874841 -46.438046 0.0001756024201 0.001260671216 0.001627288542 0.0001002074435
190 4 -46.41877429 -46.420083 0.0003271768634 0.00142160315 0.002395244873 0.0003233098312
191 4 -46.44621445 -46.445247 0.0002418615665 0.0009904374428 0.001219330964 5.687306262e-05
192 4 -46.44511464 -46.446044 0.0002323410927 0.0008790838348 0.001305329077 0.0001107509197
193 4 -46.43564394 -46.434472 0.0002929851777 0.000890378693 0.0008323340675 4.743679034e-05
194 4 -46.44317175 -46.44458 0.0003520619573 0.0007034014662 0.0009744208536 5.172015881e-05
195 4 -46.44087095 -46.441776 0.0002262624122 0.00113922313 0.001339231869 8.765052415e-05
196 4 -46.43719326 -46.436389 0.0002010659177 0.001277508928 0.001786741168 0.0001303767454
197 4 -46.44563996 -46.446416 0.0001940097871 0.0007007387602 0.0006588778339 5.645487424e-05
198 4 -46.44980864 -46.449806 6.606823266e-07 0.001232826529 0.002135055034 0.0002384857832
199 4 -46.42466674 -46.427189 0.0006305654832 0.001011828255 0.001050788276 2.797047454e-05
200 4 -46.42588993 -46.427857 0.000491766418 0.001010915484 0.001487666629 0.0001398462887
201 4 -46.44273693 -46.44004 0.0006742317456 0.0007050795233 0.000757202747 2.506458135e-05
202 4 -46.43659247 -46.437214 0.0001553829854 0.0008924045914 0.001505586265 0.0001475571029
203 4 -46.42189527 -46.422628 0.0001831835233 0.0009120248848 0.001601713458 0.0002207350143
204 4 -46.44387014 -46.443535 8.378431277e-05 0.001253187495 0.001590304373 0.0001006147174
205 4 -46.4386991 -46.439922 0.0003057254875 0.001138308324 0.001530493385 0.0001018467819
206 4 -46.43732669 -46.437675 8.707637653e-05 0.00144833639 0.002440246094 0.0003149341193
207 4 -46.44459348 -46.445558 0.0002411303465 0.0008716893522 0.00113392416 7.56134454e-05
208 4 -46.43888136 -46.439106 5.615896373e-05 0.001259801268 0.001830731002 0.0001709222499
209 4 -46.44452218 -46.443073 0.000362294488 0.0005355233492 0.0005766870902 1.79131844e-05
210 4 -46.44072829 -46.4397 0.0002570727366 0.0008912594074 0.001204174406 7.190949652e-05
211 4 -46.43632905 -46.436374 1.123701302e-05 0.00100454144 0.001461656594 0.0001640759619
212 4 -46.42622449 -46.426557 8.312836801e-05 0.0009090508417 0.001359624213 9.618645017e-05
213 4 -46.43334095 -46.434009 0.0001670117853 0.001064727099 0.001391131194 0.0001118380718
214 4 -46.43528491 -46.436262 0.0002442735765 0.001381671175 0.002503347159 0.0002862586192
215 4 -46.43302209 -46.434505 0.0003707286996 0.001050895795 0.001041637173 1.894959196e-05
216 4 -46.43866543 -46.438768 2.564354619e-05 0.001038218613 0.001098285027 4.514351427e-05
217 4 -46.43867092 -46.440254 0.000395771139 0.0005510961745 0.0006069892915 4.783705107e-05
218 4 -46.42481603 -46.42286 0.0004890086715 0.0005673661918 0.0007365242698 6.506184883e-05
219 4 -46.41707211 -46.418078 0.0002514715464 0.001292943265 0.002028412187 0.0002017017408
220 4 -46.44058128 -46.440513 1.706961588e-05 0.0008917162415 0.001158189967 9.459271337e-05
221 4 -46.40786735 -46.409824 0.000489161666 0.000915995593 0.001759573812 0.0002027400318
222 4 -46.44176165 -46.440329 0.0003581615225 0.0007050784001 0.0009534044263 7.330945846e-05
223 4 -46.43764613 -46.43773 2.096761683e-05 0.000774718051 0.000926180328 6.358620287e-05
224 4 -46.41646676 -46.416525 1.456068592e-05 0.0007183862165 0.0007573664899 3.367541267e-05
225 4 -46.44086814 -46.440293 0.0001437843048 0.0008909024924 0.0007725386722 2.803785114e-05
226 4 -46.44027213 -46.43839 0.0004705337314 0.000707862011 0.0005612022808 3.305821092e-05
227 4 -46.44117428 -46.438916 0.0005645706045 0.0008843758872 0.001650878554 0.0001728226219
# GSF_110.xyz
config # atoms energy DFT energy energy error force DFT force force error
228 24 -278.9717069 -279.068761 0.004043919984 1.716820818 1.756353161 0.02195804808
229 24 -279.8354387 -279.784296 0.002130947227 0.8360148085 0.9057668891 0.02306494198
230 24 -279.920921 -279.901657 0.0008026661363 0.2958425997 0.001565946359 0.01411644584
231 24 -279.6113309 -279.584238 0.001128870276 1.136927478 1.035572248 0.0268109436
232 24 -279.8354404 -279.784283 0.002131557004 0.8360112083 0.9056396189 0.02305363685
233 24 -279.302435 -279.302158 1.154096848e-05 1.736732738 1.771965137 0.03376130194
234 24 -279.5958843 -279.55564 0.001676844981 1.457718936 1.405626506 0.02601748107
235 24 -279.1575825 -279.246939 0.003723187357 0.7701803397 0.4813964151 0.04047323625
236 24 -279.3024375 -279.302157 1.168852836e-05 1.736736025 1.771953347 0.03376039536
237 24 -279.1575946 -279.246935 0.003722518226 0.7692677843 0.4809484798 0.04044520421
238 24 -279.9208868 -279.896025 0.001035907873 0.2963184571 0.01060549839 0.01410249844
239 24 -279.6115695 -279.584237 0.001138852664 1.13770573 1.035836121 0.02686761528
240 24 -279.064529 -279.124427 0.002495750967 1.76375665 1.809545887 0.03536482035
241 24 -279.3562359 -279.379366 0.000963755899 1.070359933 0.8982692706 0.03586365384
242 24 -279.3561337 -279.37937 0.0009681791432 1.070187041 0.898081355 0.03582334182
243 24 -279.0645273 -279.124427 0.002495818902 1.763753116 1.809523374 0.03536507377
244 24 -279.920921 -279.901657 0.0008026661364 0.295842601 0.001570374478 0.01411415473
245 24 -279.835369 -279.79264 0.001780376182 0.7694168746 0.8392614852 0.02365583077
246 24 -279.9208868 -279.896025 0.001035907873 0.2963184557 0.01060243293 0.01410273421
247 24 -279.0819585 -279.206496 0.005189061107 0.548788431 0.005326518563 0.03225764062
248 24 -279.5958869 -279.55564 0.001676956181 1.457719116 1.4056319 0.02601845486
249 24 -279.8353874 -279.79264 0.001781141415 0.7694021079 0.8392625708 0.0236575616
# GSF_112.xyz
config # atoms energy DFT energy energy error force DFT force force error
250 30 -345.1958147 -345.175835 0.0006659888828 1.417827685 1.057395322 0.04924259711
251 30 -346.4091654 -346.361714 0.001581712645 1.014644886 1.220284939 0.04659093523
252 30 -345.9623042 -345.795524 0.005559340233 1.678459906 2.112860875 0.06265040874
253 30 -345.1047773 -345.164602 0.001994157897 1.817583015 1.765832199 0.05258058387
254 30 -346.5687925 -346.593523 0.0008243492414 0.5266160053 0.01148867129 0.03755504848
255 30 -346.4165137 -346.396186 0.0006775885975 1.101956458 0.9954683928 0.04399110332
256 30 -345.2521553 -345.319406 0.00224168982 2.024011434 1.772040852 0.05936118376
257 30 -345.5898528 -345.594794 0.0001647082757 2.048144835 1.516014157 0.06040121307
258 30 -346.0297765 -345.98566 0.001470549283 1.767327791 1.406252265 0.05243702855
259 30 -345.5053828 -345.383994 0.004046292585 1.336428571 0.963574308 0.05104895348
260 30 -346.5686342 -346.582564 0.0004643258311 0.5264214865 0.0126740587 0.03760971825
261 30 -345.4208872 -345.452139 0.001041727499 3.011665478 2.787719406 0.06345649484
262 30 -346.5687922 -346.593523 0.000824358736 0.5266293188 0.01148834 0.03755660424
263 30 -345.4303122 -345.281949 0.004945440141 1.947208063 1.873142686 0.05337069289
264 30 -345.95932 -345.928661 0.001021967701 2.362723976 2.100874472 0.05002108374
265 30 -345.0137677 -345.111657 0.003262976998 3.19378163 3.358068319 0.06536423133
266 30 -346.4078756 -346.367123 0.001358420679 1.085591236 1.335797131 0.04639235845
267 30 -346.5685864 -346.582565 0.0004659529893 0.5264879505 0.01254743735 0.03760890253
268 30 -344.8663405 -344.91356 0.001573984549 2.930408919 3.441834403 0.06926998065
269 30 -345.9709087 -345.836703 0.004473521714 1.391835251 1.608769148 0.0557054003
270 30 -345.0229891 -344.984307 0.001289401895 2.372016819 2.542628782 0.05571749983
271 30 -346.4089445 -346.393931 0.0005004501598 1.297845976 1.211680725 0.04319349672
# Liquid.xyz
config # atoms energy DFT energy energy error force DFT force force error
272 100 -1105.559726 -1105.601723 0.0004199683753 30.70196346 31.39853886 0.2273901869
273 100 -1099.629534 -1099.673012 0.0004347802829 31.98646736 32.03167218 0.2226202775
274 100 -1121.43168 -1121.31506 0.001166195007 21.23863202 20.81076453 0.2037539309
# Surface.xyz
config # atoms energy DFT energy energy error force DFT force force error
275 24 -279.9208871 -279.911828 0.0003774634676 0.2963192975 0.002753093533 0.01433131958
276 48 -554.241479 -555.359452 0.02329110353 1.363109446 0.003020630398 0.0573825018
277 40 -459.5808398 -459.216162 0.009116945293 3.33149843 5.0461364 0.07877996461
278 40 -460.5932467 -461.144076 0.01377073163 0.8854479197 0.005582740008 0.03813349763
279 24 -279.8214986 -279.635146 0.007764693427 0.982012045 1.288799837 0.01857540863
280 30 -346.5687933 -346.592525 0.000791056775 0.5266154723 0.008446203407 0.03726637101
281 30 -346.0051971 -345.744506 0.008689702509 2.266739618 3.124961367 0.06591070739
# Volume_A15.xyz
config # atoms energy DFT energy energy error force DFT force force error
282 8 -67.00264003 -66.990732 0.001488503243 8.978495355e-15 0 1.554167674e-15
283 8 -72.95775645 -72.957807 6.318335608e-06 6.173563626e-14 0 9.086337007e-15
284 8 -94.15079079 -94.145745 0.0006307242955 1.257001279e-14 0 1.651353601e-15
285 8 -94.55576971 -94.554682 0.0001359640227 7.864226848e-15 0 1.351609702e-15
286 8 -79.41650989 -79.438363 0.002731638712 2.922311383e-14 0 4.6112564e-15
287 8 -69.6319055 -69.627817 0.0005110626381 3.131450246e-15 0 5.512083845e-16
288 8 -82.6140242 -82.604907 0.001139650038 1.015341342e-14 0 1.573105072e-15
289 8 14.8871533 14.89048 0.0004158371788 2.179622647e-13 0 3.718594804e-14
290 8 -94.35602701 -94.367599 0.001446498413 1.681327296e-14 0 2.430951383e-15
291 8 -89.2494361 -89.248227 0.0001511372198 1.602695388e-14 0 2.27566808e-15
292 8 -87.22359357 -87.211997 0.001449571359 5.891018761e-15 0 1.023486851e-15
293 8 -93.64917633 -93.66897 0.002474209194 1.737070481e-15 0 2.726891929e-16
294 8 -7.974970896 -7.989166 0.001774387948 5.346466786e-13 0 7.317740119e-14
295 8 -84.99735697 -84.982834 0.001815371577 1.628985705e-15 0 2.68014777e-16
296 8 -92.51696442 -92.536373 0.002426072159 3.702813287e-14 0 5.965135793e-15
297 8 -26.79883523 -26.77612 0.002839403163 2.314654929e-13 0 3.768467838e-14
298 8 -77.53738473 -77.544107 0.0008402842141 2.975839122e-15 0 5.1405639e-16
299 8 -80.11476757 -80.114217 6.882064461e-05 9.414427891e-15 0 1.325473296e-15
300 8 -42.12903262 -42.143041 0.001751047533 2.610061598e-13 0 3.565304919e-14
301 8 -91.02990946 -91.040671 0.001345192241 8.368513177e-15 0 1.310872707e-15
302 8 -84.50933121 -84.499231 0.001262526145 5.714110441e-14 0 1.066782658e-14
303 8 -61.79844789 -61.825173 0.003340638518 6.62953849e-15 0 1.015391475e-15
304 8 -91.13057644 -91.156873 0.003287069749 4.719369293e-15 0 6.76336609e-16
305 8 -54.64916677 -54.658744 0.001197153514 1.464956394e-13 0 2.113576767e-14
306 8 -72.27319255 -72.277255 0.0005078062019 8.658199332e-16 0 1.410908427e-16
307 8 -74.9147183 -74.923334 0.001076962465 4.434219242e-15 0 6.615078855e-16
308 8 -64.81833247 -64.798066 0.002533308735 3.748412002e-14 0 5.576268614e-15
309 8 -93.03489726 -93.048342 0.001680592822 1.857310674e-14 0 2.604235054e-15
310 8 -64.39098013 -64.38702 0.0004950167019 5.001001166e-15 0 5.722057666e-16
311 8 -88.36401125 -88.352871 0.001392531574 1.47982807e-14 0 2.645507511e-15
# Volume_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
312 2 -16.76594323 -16.763625 0.0011591154 3.058627912e-16 0 7.979727989e-17
313 2 16.31372699 16.314145 0.0002090027274 8.186542193e-13 0 2.624717573e-13
314 2 -21.21034402 -21.209071 0.000636508568 6.029606478e-15 0 1.688464572e-15
315 2 -15.7845968 -15.780524 0.002036397536 5.051396178e-14 0 1.863971217e-14
316 2 -18.99841038 -19.002205 0.001897311189 3.70201696e-14 0 1.247006253e-14
317 2 -22.6245193 -22.620568 0.001975650815 3.866866338e-15 0 1.424786215e-15
318 2 4.098164527 4.096885 0.0006397634862 6.334293648e-14 0 2.151519703e-14
319 2 56.26275599 56.26276 2.005221472e-06 2.247995559e-12 0 7.580021273e-13
320 2 -22.58944012 -22.585113 0.002163562406 1.113168148e-15 0 3.747002708e-16
321 2 -21.79724015 -21.795501 0.0008695760695 1.09344287e-15 0 3.700743415e-16
322 2 33.11015633 33.110078 3.916354612e-05 4.904232742e-13 0 1.492139745e-13
323 2 -20.88315873 -20.885998 0.001419634185 1.859416424e-15 0 7.401486831e-16
324 2 -23.59568898 -23.601336 0.002823509954 1.486164289e-15 0 4.916167932e-16
325 2 -23.20858071 -23.207313 0.0006338528204 8.900302643e-16 0 3.147520853e-16
326 2 -19.89310507 -19.898089 0.002491965758 8.784897284e-16 0 3.064678141e-16
327 2 -23.40543384 -23.405474 2.007854096e-05 9.04864091e-16 0 2.55004351e-16
328 2 -4.783890314 -4.781324 0.00128315718 1.026901322e-13 0 2.670433319e-14
329 2 -18.86311291 -18.864936 0.0009115426716 2.305551267e-16 0 7.864079758e-17
330 2 -17.81642588 -17.813086 0.001669937839 1.716587549e-16 0 6.245004514e-17
331 2 -11.19369732 -11.197201 0.001751842379 6.247077482e-14 0 2.245483891e-14
332 2 -23.6830862 -23.696705 0.006809399945 1.843658888e-15 0 7.087971703e-16
# Volume_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
333 4 -19.07363592 -19.075994 0.0005895202867 4.838977351e-14 0 1.162785146e-14
334 4 -34.87911157 -34.873619 0.001373142448 2.834773835e-16 0 5.955883934e-17
335 4 -43.95312208 -43.950003 0.0007797711561 2.246784353e-15 0 4.928060275e-16
336 4 -40.99484531 -40.991909 0.0007340763059 8.408019466e-15 0 2.017013582e-15
337 4 -43.44688587 -43.453929 0.001760782795 1.105978561e-14 0 2.960654589e-15
338 4 -42.69057259 -42.686077 0.001123896575 2.15077979e-15 0 5.053466326e-16
339 4 -33.22567657 -33.224653 0.0002558935333 6.71927174e-16 0 1.601728009e-16
340 4 -26.86518979 -26.862709 0.0006201969912 3.31529179e-14 0 7.652202346e-15
341 4 -25.52095377 -25.519883 0.0002676922193 3.655453829e-16 0 7.199102425e-17
342 4 3.462101367 3.463071 0.0002424081278 1.816025861e-13 0 4.023864575e-14
343 4 -31.5932268 -31.59595 0.0006807997919 3.628185658e-16 0 8.557969148e-17
344 4 -45.10086835 -45.100466 0.0001005873411 2.465692424e-15 0 5.323999453e-16
345 4 -46.05341345 -46.052258 0.0002888629271 8.511696107e-16 0 1.9963776e-16
346 4 -29.99832749 -30.001189 0.0007153784531 3.847020655e-16 0 1.014813233e-16
347 4 -22.85257327 -22.8504 0.0005433170403 7.603433695e-16 0 2.026735261e-16
348 4 -9.165925377 -9.164691 0.0003085942037 6.355991568e-14 0 1.496321874e-14
349 4 -24.14844545 -24.150343 0.0004743875843 4.762376771e-16 0 9.887923813e-17
350 4 -46.43546878 -46.426795 0.002168445654 2.389854689e-15 0 6.508104241e-16
351 4 -28.45126723 -28.451145 3.055783253e-05 7.811231556e-15 0 2.246466901e-15
352 4 40.34134283 40.341566 5.579164045e-05 4.392900751e-13 0 1.047052708e-13
353 4 19.618876 19.617912 0.0002409995917 2.653013854e-13 0 4.82657932e-14
354 4 -26.95747287 -26.954384 0.0007722170381 5.063966549e-16 0 1.225871256e-16
355 4 -46.33491981 -46.323696 0.002805953551 3.211950954e-15 0 8.731441496e-16
356 4 -45.83316791 -45.828947 0.001055227438 1.228572267e-14 0 3.512236798e-15
357 4 -38.16058675 -38.16029 7.418651586e-05 1.457184241e-15 0 3.625572065e-16
358 4 -32.91257363 -32.919741 0.001791843199 5.73065335e-14 0 1.529158744e-14
359 4 -41.2675262 -41.272675 0.001287199354 7.138843467e-15 0 2.027950471e-15
360 4 -39.74460494 -39.753322 0.002179265661 7.861049173e-16 0 1.651275908e-16
361 4 -37.55548161 -37.547435 0.002011652753 1.155947671e-14 0 2.497062164e-15
362 4 -36.53186908 -36.52595 0.001479769423 3.660718685e-16 0 9.51206706e-17
363 4 -45.01550153 -45.016087 0.0001463673621 1.766214736e-15 0 4.760370339e-16

View File

@ -1,20 +0,0 @@
**************** Begin of Error Analysis for the Training Data Set ****************
---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.000554 0.000680 0.066393 0.083014
Displaced_BCC.xyz 9 486 0.004724 0.005103 0.108253 0.139461
Displaced_FCC.xyz 9 432 0.001704 0.001900 0.077531 0.097471
Elastic_BCC.xyz 100 200 0.000444 0.000446 0.000001 0.000002
Elastic_FCC.xyz 100 400 0.000273 0.000327 0.000110 0.000163
GSF_110.xyz 22 528 0.001852 0.002260 0.027303 0.044765
GSF_112.xyz 22 660 0.001839 0.002404 0.051415 0.080350
Liquid.xyz 3 300 0.000674 0.000758 0.217921 0.276109
Surface.xyz 7 236 0.009115 0.011661 0.047949 0.105123
Volume_A15.xyz 30 240 0.001407 0.001693 0.000000 0.000000
Volume_BCC.xyz 21 42 0.001497 0.002077 0.000000 0.000000
Volume_FCC.xyz 31 124 0.000870 0.001139 0.000000 0.000000
---------------------------------------------------------------------------------------------------
All files 363 4224 0.001053 0.002171 0.059051 0.106960
---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set ****************

View File

@ -1,5 +0,0 @@
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod

View File

@ -1,114 +0,0 @@
LAMMPS (22 Dec 2022)
using 1 OpenMP thread(s) per MPI task
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body potential: 3 6 6
three-body potential: 3 6 5 5
four-body SNAP potential: 0 0
quadratic POD potential: 1
number of basis functions for one-body potential: 1
number of basis functions for two-body potential: 6
number of basis functions for three-body potential: 25
number of basis functions for four-body potential: 0
number of descriptors for one-body potential: 1
number of descriptors for two-body potential: 6
number of descriptors for three-body potential: 25
number of descriptors for four-body potential: 0
number of descriptors for quadratic POD potential: 150
total number of descriptors for all potentials: 182
**************** End of POD Potentials ****************
**************** Begin of Data File ****************
file format: extxyz
file extension: xyz
path to training data set: ../Ta/XYZ
path to test data set: ../Ta/XYZ
training fraction: 1
test fraction: 1
randomize training data set: 1
randomize test data set: 1
error analysis for training data set: 1
error analysis for test data set: 0
energy/force calculation for training data set: 0
energy/force calculation for test data set: 0
fitting weight for energy: 100
fitting weight for force: 1
fitting weight for stress: 0
fitting regularization parameter: 1e-10
**************** End of Data File ****************
**************** Begin of Training Data Set ****************
---------------------------------------------------------------
data file | number of configurations | number of atoms
---------------------------------------------------------------
Displaced_A15.xyz | 9 | 576
Displaced_BCC.xyz | 9 | 486
Displaced_FCC.xyz | 9 | 432
Elastic_BCC.xyz | 100 | 200
Elastic_FCC.xyz | 100 | 400
GSF_110.xyz | 22 | 528
GSF_112.xyz | 22 | 660
Liquid.xyz | 3 | 300
Surface.xyz | 7 | 236
Volume_A15.xyz | 30 | 240
Volume_BCC.xyz | 21 | 42
Volume_FCC.xyz | 31 | 124
---------------------------------------------------------------
number of files: 12
number of configurations in all files: 363
number of atoms in all files: 4224
minimum number of atoms: 2
maximum number of atoms: 100
**************** End of Training Data Set ****************
**************** Begin of Memory Allocation ****************
maximum number of atoms in periodic domain: 100
maximum number of atoms in extended domain: 2700
maximum number of neighbors in extended domain: 270000
size of double memory: 223201
size of int memory: 14709
size of descriptor matrix: 182 x 182
**************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
**************** End of Least-Squares Fitting ****************
**************** Begin of Error Calculation ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
**************** End of Error Calculation ****************
**************** Begin of Error Analysis for the Training Data Set ****************
---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.000554 0.000680 0.066393 0.083014
Displaced_BCC.xyz 9 486 0.004724 0.005103 0.108253 0.139461
Displaced_FCC.xyz 9 432 0.001704 0.001900 0.077531 0.097471
Elastic_BCC.xyz 100 200 0.000444 0.000446 0.000001 0.000002
Elastic_FCC.xyz 100 400 0.000273 0.000327 0.000110 0.000163
GSF_110.xyz 22 528 0.001852 0.002260 0.027303 0.044765
GSF_112.xyz 22 660 0.001839 0.002404 0.051415 0.080350
Liquid.xyz 3 300 0.000674 0.000758 0.217921 0.276109
Surface.xyz 7 236 0.009115 0.011661 0.047949 0.105123
Volume_A15.xyz 30 240 0.001407 0.001693 0.000000 0.000000
Volume_BCC.xyz 21 42 0.001497 0.002077 0.000000 0.000000
Volume_FCC.xyz 31 124 0.000870 0.001139 0.000000 0.000000
---------------------------------------------------------------------------------------------------
All files 363 4224 0.001053 0.002171 0.059051 0.106960
---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:01

View File

@ -1,142 +0,0 @@
LAMMPS (22 Dec 2022)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.000 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coefficients.pod Ta
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body potential: 3 6 6
three-body potential: 3 6 5 5
four-body SNAP potential: 0 0
quadratic POD potential: 1
number of basis functions for one-body potential: 1
number of basis functions for two-body potential: 6
number of basis functions for three-body potential: 25
number of basis functions for four-body potential: 0
number of descriptors for one-body potential: 1
number of descriptors for two-body potential: 6
number of descriptors for three-body potential: 25
number of descriptors for four-body potential: 0
number of descriptors for quadratic POD potential: 150
total number of descriptors for all potentials: 182
**************** End of POD Potentials ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.082 | 3.082 | 3.082 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.847697 0 -11.809222 13502.169
10 296.47494 -11.847245 0 -11.809222 13529.584
20 286.0918 -11.845913 0 -11.809222 13613.884
30 269.42275 -11.843776 0 -11.809222 13759.746
40 247.39423 -11.84095 0 -11.809222 13972.073
50 221.23976 -11.837596 0 -11.809222 14253.202
60 192.43252 -11.833901 0 -11.809222 14600.367
70 162.59874 -11.830075 0 -11.809221 15004.156
80 133.41531 -11.826332 0 -11.809221 15448.418
90 106.49785 -11.82288 0 -11.809221 15911.638
100 83.288219 -11.819903 0 -11.809221 16369.373
Loop time of 1.51781 on 1 procs for 100 steps with 128 atoms
Performance: 2.846 ns/day, 8.432 hours/ns, 65.884 timesteps/s, 8.433 katom-step/s
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.5172 | 1.5172 | 1.5172 | 0.0 | 99.96
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.0002542 | 0.0002542 | 0.0002542 | 0.0 | 0.02
Output | 0.00013308 | 0.00013308 | 0.00013308 | 0.0 | 0.01
Modify | 0.00012159 | 0.00012159 | 0.00012159 | 0.0 | 0.01
Other | | 0.0001446 | | | 0.01
Nlocal: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 727 ave 727 max 727 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 7424 ave 7424 max 7424 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -1,142 +0,0 @@
LAMMPS (22 Dec 2022)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.000 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coefficients.pod Ta
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body potential: 3 6 6
three-body potential: 3 6 5 5
four-body SNAP potential: 0 0
quadratic POD potential: 1
number of basis functions for one-body potential: 1
number of basis functions for two-body potential: 6
number of basis functions for three-body potential: 25
number of basis functions for four-body potential: 0
number of descriptors for one-body potential: 1
number of descriptors for two-body potential: 6
number of descriptors for three-body potential: 25
number of descriptors for four-body potential: 0
number of descriptors for quadratic POD potential: 150
total number of descriptors for all potentials: 182
**************** End of POD Potentials ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.062 | 3.062 | 3.062 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.847697 0 -11.809222 13502.169
10 296.47494 -11.847245 0 -11.809222 13529.584
20 286.0918 -11.845913 0 -11.809222 13613.884
30 269.42275 -11.843776 0 -11.809222 13759.746
40 247.39423 -11.84095 0 -11.809222 13972.073
50 221.23976 -11.837596 0 -11.809222 14253.202
60 192.43252 -11.833901 0 -11.809222 14600.367
70 162.59874 -11.830075 0 -11.809221 15004.156
80 133.41531 -11.826332 0 -11.809221 15448.418
90 106.49785 -11.82288 0 -11.809221 15911.638
100 83.288219 -11.819903 0 -11.809221 16369.373
Loop time of 0.427448 on 4 procs for 100 steps with 128 atoms
Performance: 10.106 ns/day, 2.375 hours/ns, 233.947 timesteps/s, 29.945 katom-step/s
97.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.40622 | 0.40946 | 0.419 | 0.9 | 95.79
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.0071192 | 0.016995 | 0.020439 | 4.4 | 3.98
Output | 0.00012904 | 0.0002071 | 0.00043132 | 0.0 | 0.05
Modify | 3.905e-05 | 4.8089e-05 | 5.5714e-05 | 0.0 | 0.01
Other | | 0.0007341 | | | 0.17
Nlocal: 32 ave 32 max 32 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 431 ave 431 max 431 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 1856 ave 1856 max 1856 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,33 +1,33 @@
POD_coefficients: 32 model_coefficients: 32 0 0
-4.44242 -4.45745
4.10219 29.40034
2.36987 -13.69439
3.92184 -0.32907
-0.83796 -0.14786
-0.79457 -1.35221
-0.26230 -0.59315
-21.24294 -26.30409
-15.38460 -33.37233
-38.44056 162.42473
8.29872 144.67248
-42.54514 -149.50021
2.79976 1.78603
3.76109 2.49026
5.23499 -11.04768
0.04878 -11.14333
2.96006 12.40537
0.09101 0.48284
-0.19257 0.39345
-0.24326 -2.25812
-0.16735 -1.38908
0.53738 1.31551
0.02236 0.02974
-0.00154 -0.05094
0.02488 -0.21177
-0.00565 0.12127
0.07672 0.23170
-0.05894 0.02426
-0.05604 -0.15305
-0.12664 -0.10803
0.11723 0.25628
0.00262 0.01291

View File

@ -1,4 +1,3 @@
# DATE: 2022-11-30 UNITS: metal CONTRIBUTOR: Ngoc Cuong Nguyen, exapde@gmail.com CITATION: https://arxiv.org/abs/2209.02362
# chemical element symbols # chemical element symbols
species Ta species Ta
@ -11,28 +10,37 @@ rin 1.0
# outer cut-off radius # outer cut-off radius
rcut 5.0 rcut 5.0
# use only for enviroment-adaptive potentials
number_of_environment_clusters 1
# principal_components of local descriptors
number_of_principal_components 2
# polynomial degrees for radial basis functions # polynomial degrees for radial basis functions
bessel_polynomial_degree 3 bessel_polynomial_degree 3
inverse_polynomial_degree 6 inverse_polynomial_degree 6
# one-body potential
onebody 1
# two-body linear POD potential # two-body linear POD potential
twobody_number_radial_basis_functions 6 twobody_number_radial_basis_functions 6
# three-body linear POD potential # three-body linear POD potential
threebody_number_radial_basis_functions 5 threebody_number_radial_basis_functions 5
threebody_number_angular_basis_functions 5 threebody_angular_degree 4
# four-body linear SNAP potential # four-body linear POD potential
fourbody_snap_twojmax 0 fourbody_number_radial_basis_functions 0
fourbody_angular_degree 0
# quadratic POD potential # five-body linear POD potential
quadratic_pod_potential 0 fivebody_number_radial_basis_functions 0
fivebody_angular_degree 0
# six-body linear POD potential
sixbody_number_radial_basis_functions 0
sixbody_angular_degree 0
# seven-body linear POD potential
sevenbody_number_radial_basis_functions 0
sevenbody_angular_degree 0
# Add the following basename to the name of output files
basename_for_output_files Ta
# number of digits after the decimal point
precision_for_pod_coefficients 5

10
src/.gitignore vendored
View File

@ -109,6 +109,8 @@
/pair_pod.cpp /pair_pod.cpp
/pair_pod.h /pair_pod.h
/eapod.cpp
/eapod.h
/fitpod_command.cpp /fitpod_command.cpp
/fitpod_command.h /fitpod_command.h
/mlpod.cpp /mlpod.cpp
@ -249,6 +251,14 @@
/compute_grid.h /compute_grid.h
/compute_grid_local.cpp /compute_grid_local.cpp
/compute_grid_local.h /compute_grid_local.h
/compute_pod_atom.cpp
/compute_pod_atom.h
/compute_pod_global.cpp
/compute_pod_global.h
/compute_pod_local.cpp
/compute_pod_local.h
/compute_podd_atom.cpp
/compute_podd_atom.h
/compute_sna_atom.cpp /compute_sna_atom.cpp
/compute_sna_atom.h /compute_sna_atom.h
/compute_snad_atom.cpp /compute_snad_atom.cpp

View File

@ -185,6 +185,10 @@ if (test $1 = "ML-PACE") then
depend KOKKOS depend KOKKOS
fi fi
if (test $1 = "ML-POD") then
depend KOKKOS
fi
if (test $1 = "ML-SNAP") then if (test $1 = "ML-SNAP") then
depend ML-IAP depend ML-IAP
depend KOKKOS depend KOKKOS

View File

@ -92,9 +92,9 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) :
adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]);
adapt[nadapt].pparam = utils::strdup(arg[iarg+2]); adapt[nadapt].pparam = utils::strdup(arg[iarg+2]);
utils::bounds_typelabel(FLERR, arg[iarg+3], 1, atom->ntypes, utils::bounds_typelabel(FLERR, arg[iarg+3], 1, atom->ntypes,
adapt[nadapt].ilo, adapt[nadapt].ihi, error, lmp, Atom::ATOM); adapt[nadapt].ilo, adapt[nadapt].ihi, lmp, Atom::ATOM);
utils::bounds_typelabel(FLERR, arg[iarg+4], 1, atom->ntypes, utils::bounds_typelabel(FLERR, arg[iarg+4], 1, atom->ntypes,
adapt[nadapt].jlo, adapt[nadapt].jhi, error, lmp, Atom::ATOM); adapt[nadapt].jlo, adapt[nadapt].jhi, lmp, Atom::ATOM);
// switch i,j if i > j, if wildcards were not used // switch i,j if i > j, if wildcards were not used
@ -131,7 +131,7 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) :
chgflag = 1; chgflag = 1;
} else error->all(FLERR,"Illegal fix adapt/fep command"); } else error->all(FLERR,"Illegal fix adapt/fep command");
utils::bounds_typelabel(FLERR, arg[iarg+2], 1, atom->ntypes, utils::bounds_typelabel(FLERR, arg[iarg+2], 1, atom->ntypes,
adapt[nadapt].ilo, adapt[nadapt].ihi, error, lmp, Atom::ATOM); adapt[nadapt].ilo, adapt[nadapt].ihi, lmp, Atom::ATOM);
if (utils::strmatch(arg[iarg+3],"^v_")) { if (utils::strmatch(arg[iarg+3],"^v_")) {
adapt[nadapt].var = utils::strdup(arg[iarg+3]+2); adapt[nadapt].var = utils::strdup(arg[iarg+3]+2);
} else error->all(FLERR,"Illegal fix adapt/fep command"); } else error->all(FLERR,"Illegal fix adapt/fep command");

View File

@ -703,7 +703,7 @@ void FixPour::pre_exchange()
// rebuild atom map // rebuild atom map
if (atom->map_style != Atom::MAP_NONE) { if (atom->map_style != Atom::MAP_NONE) {
if (success) atom->map_init(); atom->map_init();
atom->map_set(); atom->map_set();
} }

View File

@ -26,6 +26,7 @@
#include "memory.h" #include "memory.h"
#include "modify.h" #include "modify.h"
#include "neighbor.h" #include "neighbor.h"
#include "respa.h"
#include "update.h" #include "update.h"
#include <cmath> #include <cmath>
@ -335,8 +336,13 @@ void FixNHIntel::reset_dt()
// If using respa, then remap is performed in innermost level // If using respa, then remap is performed in innermost level
if (utils::strmatch(update->integrate_style,"^respa")) if (utils::strmatch(update->integrate_style,"^respa")) {
auto respa_ptr = dynamic_cast<Respa *>(update->integrate);
if (!respa_ptr) error->all(FLERR, "Failure to access Respa style {}", update->integrate_style);
nlevels_respa = respa_ptr->nlevels;
step_respa = respa_ptr->step;
dto = 0.5*step_respa[0]; dto = 0.5*step_respa[0];
}
if (pstat_flag) if (pstat_flag)
pdrag_factor = 1.0 - (update->dt * p_freq_max * drag / nc_pchain); pdrag_factor = 1.0 - (update->dt * p_freq_max * drag / nc_pchain);

View File

@ -358,6 +358,8 @@ action pair_multi_lucy_rx_kokkos.cpp pair_multi_lucy_rx.cpp
action pair_multi_lucy_rx_kokkos.h pair_multi_lucy_rx.h action pair_multi_lucy_rx_kokkos.h pair_multi_lucy_rx.h
action pair_pace_extrapolation_kokkos.cpp pair_pace_extrapolation.cpp action pair_pace_extrapolation_kokkos.cpp pair_pace_extrapolation.cpp
action pair_pace_extrapolation_kokkos.h pair_pace_extrapolation.h action pair_pace_extrapolation_kokkos.h pair_pace_extrapolation.h
action pair_pod_kokkos.cpp pair_pod.cpp
action pair_pod_kokkos.h pair_pod.h
action pair_pace_kokkos.cpp pair_pace.cpp action pair_pace_kokkos.cpp pair_pace.cpp
action pair_pace_kokkos.h pair_pace.h action pair_pace_kokkos.h pair_pace.h
action pair_reaxff_kokkos.cpp pair_reaxff.cpp action pair_reaxff_kokkos.cpp pair_reaxff.cpp

View File

@ -138,9 +138,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairBuckKokkos<DeviceType>:: F_FLOAT PairBuckKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_fpair(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const F_FLOAT r6inv = r2inv*r2inv*r2inv; const F_FLOAT r6inv = r2inv*r2inv*r2inv;
const F_FLOAT r = sqrt(rsq); const F_FLOAT r = sqrt(rsq);
@ -157,9 +155,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairBuckKokkos<DeviceType>:: F_FLOAT PairBuckKokkos<DeviceType>::
compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_evdwl(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const F_FLOAT r6inv = r2inv*r2inv*r2inv; const F_FLOAT r6inv = r2inv*r2inv*r2inv;
const F_FLOAT r = sqrt(rsq); const F_FLOAT r = sqrt(rsq);

View File

@ -155,10 +155,8 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairLJClass2CoulCutKokkos<DeviceType>:: F_FLOAT PairLJClass2CoulCutKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, compute_fpair(const F_FLOAT &rsq, const int &, const int &,
const int& itype, const int& jtype) const { const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const F_FLOAT rinv = sqrt(r2inv); const F_FLOAT rinv = sqrt(r2inv);
const F_FLOAT r3inv = r2inv*rinv; const F_FLOAT r3inv = r2inv*rinv;
@ -178,9 +176,9 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairLJClass2CoulCutKokkos<DeviceType>:: F_FLOAT PairLJClass2CoulCutKokkos<DeviceType>::
compute_fcoul(const F_FLOAT& rsq, const int& /*i*/, const int&j, compute_fcoul(const F_FLOAT &rsq, const int &/*i*/, const int &j,
const int& /*itype*/, const int& /*jtype*/, const int &/*itype*/, const int &/*jtype*/,
const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const { const F_FLOAT &factor_coul, const F_FLOAT &qtmp) const {
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const F_FLOAT rinv = sqrt(r2inv); const F_FLOAT rinv = sqrt(r2inv);
F_FLOAT forcecoul; F_FLOAT forcecoul;

View File

@ -160,10 +160,8 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairLJClass2CoulLongKokkos<DeviceType>:: F_FLOAT PairLJClass2CoulLongKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, compute_fpair(const F_FLOAT &rsq, const int &, const int &,
const int& itype, const int& jtype) const { const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const F_FLOAT rinv = sqrt(r2inv); const F_FLOAT rinv = sqrt(r2inv);
const F_FLOAT r3inv = r2inv*rinv; const F_FLOAT r3inv = r2inv*rinv;
@ -183,9 +181,9 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairLJClass2CoulLongKokkos<DeviceType>:: F_FLOAT PairLJClass2CoulLongKokkos<DeviceType>::
compute_fcoul(const F_FLOAT& rsq, const int& /*i*/, const int&j, compute_fcoul(const F_FLOAT &rsq, const int &/*i*/, const int &j,
const int& /*itype*/, const int& /*jtype*/, const int &/*itype*/, const int &/*jtype*/,
const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const { const F_FLOAT &factor_coul, const F_FLOAT &qtmp) const {
if (Specialisation::DoTable && rsq > tabinnersq) { if (Specialisation::DoTable && rsq > tabinnersq) {
union_int_float_t rsq_lookup; union_int_float_t rsq_lookup;
rsq_lookup.f = rsq; rsq_lookup.f = rsq;

View File

@ -139,9 +139,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairLJClass2Kokkos<DeviceType>:: F_FLOAT PairLJClass2Kokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_fpair(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const F_FLOAT rinv = sqrt(r2inv); const F_FLOAT rinv = sqrt(r2inv);
const F_FLOAT r3inv = r2inv*rinv; const F_FLOAT r3inv = r2inv*rinv;
@ -159,9 +157,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairLJClass2Kokkos<DeviceType>:: F_FLOAT PairLJClass2Kokkos<DeviceType>::
compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_evdwl(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const F_FLOAT rinv = sqrt(r2inv); const F_FLOAT rinv = sqrt(r2inv);
const F_FLOAT r3inv = r2inv*rinv; const F_FLOAT r3inv = r2inv*rinv;

View File

@ -133,9 +133,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairLJCutKokkos<DeviceType>:: F_FLOAT PairLJCutKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_fpair(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const F_FLOAT r6inv = r2inv*r2inv*r2inv; const F_FLOAT r6inv = r2inv*r2inv*r2inv;
@ -150,9 +148,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairLJCutKokkos<DeviceType>:: F_FLOAT PairLJCutKokkos<DeviceType>::
compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_evdwl(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const F_FLOAT r6inv = r2inv*r2inv*r2inv; const F_FLOAT r6inv = r2inv*r2inv*r2inv;

View File

@ -138,39 +138,13 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairLJSPICAKokkos<DeviceType>:: F_FLOAT PairLJSPICAKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_fpair(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const int ljt = (STACKPARAMS?m_params[itype][jtype].lj_type:params(itype,jtype).lj_type); const int ljt = (STACKPARAMS?m_params[itype][jtype].lj_type:params(itype,jtype).lj_type);
const F_FLOAT lj_1 = (STACKPARAMS?m_params[itype][jtype].lj1:params(itype,jtype).lj1); const F_FLOAT lj_1 = (STACKPARAMS?m_params[itype][jtype].lj1:params(itype,jtype).lj1);
const F_FLOAT lj_2 = (STACKPARAMS?m_params[itype][jtype].lj2:params(itype,jtype).lj2); const F_FLOAT lj_2 = (STACKPARAMS?m_params[itype][jtype].lj2:params(itype,jtype).lj2);
/*if (ljt == LJ12_4) {
const F_FLOAT r4inv=r2inv*r2inv;
return r4inv*(lj_1*r4inv*r4inv - lj_2) * r2inv;
} else if (ljt == LJ9_6) {
const F_FLOAT r3inv = r2inv*sqrt(r2inv);
const F_FLOAT r6inv = r3inv*r3inv;
return r6inv*(lj_1*r3inv - lj_2) * r2inv;
} else if (ljt == LJ12_6) {
const double r6inv = r2inv*r2inv*r2inv;
return r6inv*(lj_1*r6inv - lj_2) * r2inv;
} else if (ljt == LJ12_5) {
const F_FLOAT r5inv = r2inv*r2inv*sqrt(r2inv);
const F_FLOAT r7inv = r5inv*r2inv;
return r5inv*(lj_1*r7inv - lj_2) * r2inv;
}
if (ljt!=LJ12_4 && ljt!=LJ9_6 && ljt!=LJ12_6 && ljt!=LJ12_5) return 0.0;*/
const F_FLOAT r4inv=r2inv*r2inv; const F_FLOAT r4inv=r2inv*r2inv;
const F_FLOAT r6inv=r2inv*r4inv; const F_FLOAT r6inv=r2inv*r4inv;
const F_FLOAT a = ljt==LJ12_4?r4inv:(ljt==LJ12_5?r4inv*sqrt(r2inv):r6inv); const F_FLOAT a = ljt==LJ12_4?r4inv:(ljt==LJ12_5?r4inv*sqrt(r2inv):r6inv);
@ -182,9 +156,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairLJSPICAKokkos<DeviceType>:: F_FLOAT PairLJSPICAKokkos<DeviceType>::
compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_evdwl(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r2inv = 1.0/rsq; const F_FLOAT r2inv = 1.0/rsq;
const int ljt = (STACKPARAMS?m_params[itype][jtype].lj_type:params(itype,jtype).lj_type); const int ljt = (STACKPARAMS?m_params[itype][jtype].lj_type:params(itype,jtype).lj_type);

View File

@ -140,9 +140,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairMorseKokkos<DeviceType>:: F_FLOAT PairMorseKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_fpair(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT rr = sqrt(rsq); const F_FLOAT rr = sqrt(rsq);
const F_FLOAT r0 = STACKPARAMS ? m_params[itype][jtype].r0 : params(itype,jtype).r0; const F_FLOAT r0 = STACKPARAMS ? m_params[itype][jtype].r0 : params(itype,jtype).r0;
const F_FLOAT d0 = STACKPARAMS ? m_params[itype][jtype].d0 : params(itype,jtype).d0; const F_FLOAT d0 = STACKPARAMS ? m_params[itype][jtype].d0 : params(itype,jtype).d0;
@ -162,9 +160,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairMorseKokkos<DeviceType>:: F_FLOAT PairMorseKokkos<DeviceType>::
compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_evdwl(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT rr = sqrt(rsq); const F_FLOAT rr = sqrt(rsq);
const F_FLOAT r0 = STACKPARAMS ? m_params[itype][jtype].r0 : params(itype,jtype).r0; const F_FLOAT r0 = STACKPARAMS ? m_params[itype][jtype].r0 : params(itype,jtype).r0;
const F_FLOAT d0 = STACKPARAMS ? m_params[itype][jtype].d0 : params(itype,jtype).d0; const F_FLOAT d0 = STACKPARAMS ? m_params[itype][jtype].d0 : params(itype,jtype).d0;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,226 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
// clang-format off
PairStyle(pod/kk,PairPODKokkos<LMPDeviceType>);
PairStyle(pod/kk/device,PairPODKokkos<LMPDeviceType>);
PairStyle(pod/kk/host,PairPODKokkos<LMPHostType>);
// clang-format on
#else
// clang-format off
#ifndef LMP_PAIR_POD_KOKKOS_H
#define LMP_PAIR_POD_KOKKOS_H
#include "pair_pod.h"
#include "kokkos_type.h"
#include "pair_kokkos.h"
namespace LAMMPS_NS {
template<class DeviceType>
class PairPODKokkos : public PairPOD {
public:
typedef DeviceType device_type;
typedef ArrayTypes<DeviceType> AT;
PairPODKokkos(class LAMMPS *);
~PairPODKokkos() override;
void compute(int, int) override;
void coeff(int, char **) override;
void init_style() override;
double init_one(int, int) override;
int inum, maxneigh;
int host_flag;
int eflag, vflag;
int neighflag;
typename AT::t_neighbors_2d d_neighbors;
typename AT::t_int_1d d_ilist;
typename AT::t_int_1d d_numneigh;
DAT::tdual_efloat_1d k_eatom;
DAT::tdual_virial_array k_vatom;
typename AT::t_efloat_1d d_eatom;
typename AT::t_virial_array d_vatom;
typename AT::t_x_array_randomread x;
typename AT::t_f_array f;
typename AT::t_int_1d_randomread type;
typedef Kokkos::DualView<F_FLOAT**, DeviceType> tdual_fparams;
tdual_fparams k_cutsq, k_scale;
typedef Kokkos::View<F_FLOAT**, DeviceType> t_fparams;
t_fparams d_cutsq, d_scale;
typename AT::t_int_1d d_map;
friend void pair_virial_fdotr_compute<PairPODKokkos>(PairPODKokkos*);
void grow(int, int);
void copy_from_pod_class(EAPOD *podptr);
void divideInterval(int *intervals, int N, int M);
int calculateNumberOfIntervals(int N, int intervalSize);
void grow_atoms(int Ni);
void grow_pairs(int Nij);
void allocate() override;
double memory_usage() override;
typedef Kokkos::View<int*, DeviceType> t_pod_1i;
typedef Kokkos::View<double*, DeviceType> t_pod_1d;
// typedef Kokkos::View<int**, DeviceType> t_pod_2i;
// typedef Kokkos::View<double**, DeviceType> t_pod_2d;
// typedef Kokkos::View<double**[3], DeviceType> t_pod_3d3;
int atomBlockSize; // size of each atom block
int nAtomBlocks; // number of atoms blocks
int atomBlocks[101]; // atom blocks
double comptime[100];
int timing;
int ni; // number of atoms i in the current atom block
int nij; // number of pairs (i,j) in the current atom block
int nimax; // maximum number of atoms i
int nijmax; // maximum number of pairs (i,j)
int nelements; // number of elements
int onebody; // one-body descriptors
int besseldegree; // degree of Bessel functions
int inversedegree; // degree of inverse functions
int nbesselpars; // number of Bessel parameters
int nCoeffPerElement; // number of coefficients per element = (nl1 + Mdesc*nClusters)
int ns; // number of snapshots for radial basis functions
int nl1, nl2, nl3, nl4, nl23, nl33, nl34, nl44, nl; // number of local descriptors
int nrbf2, nrbf3, nrbf4, nrbfmax; // number of radial basis functions
int nabf3, nabf4; // number of angular basis functions
int K3, K4, Q4; // number of monomials
// environmental variables
int nClusters; // number of environment clusters
int nComponents; // number of principal components
int Mdesc; // number of base descriptors
double rin; // inner cut-off radius
double rcut; // outer cut-off radius
double rmax; // rcut - rin
double rcutsq;
t_pod_1d rij; // (xj - xi) for all pairs (I, J)
t_pod_1d fij; // force for all pairs (I, J)
t_pod_1d ei; // energy for each atom I
t_pod_1i typeai; // types of atoms I only
t_pod_1i numij; // number of pairs (I, J) for each atom I
t_pod_1i idxi; // storing linear indices of atom I for all pairs (I, J)
t_pod_1i ai; // IDs of atoms I for all pairs (I, J)
t_pod_1i aj; // IDs of atoms J for all pairs (I, J)
t_pod_1i ti; // types of atoms I for all pairs (I, J)
t_pod_1i tj; // types of atoms J for all pairs (I, J)
t_pod_1d besselparams;
t_pod_1d Phi; // eigenvectors matrix ns x ns
t_pod_1d rbf; // radial basis functions nij x nrbfmax
t_pod_1d rbfx; // x-derivatives of radial basis functions nij x nrbfmax
t_pod_1d rbfy; // y-derivatives of radial basis functions nij x nrbfmax
t_pod_1d rbfz; // z-derivatives of radial basis functions nij x nrbfmax
t_pod_1d abf; // angular basis functions nij x K3
t_pod_1d abfx; // x-derivatives of angular basis functions nij x K3
t_pod_1d abfy; // y-derivatives of angular basis functions nij x K3
t_pod_1d abfz; // z-derivatives of angular basis functions nij x K3
t_pod_1d sumU; // sum of radial basis functions ni x K3 x nrbfmax x nelements
t_pod_1d forcecoeff; // force coefficients ni x K3 x nrbfmax x nelements
t_pod_1d Proj; // PCA Projection matrix
t_pod_1d Centroids; // centroids of the clusters
t_pod_1d bd; // base descriptors ni x Mdesc
t_pod_1d cb; // force coefficients for base descriptors ni x Mdesc
t_pod_1d pd; // environment probability descriptors ni x (1 + nComponents + 3*nClusters)
t_pod_1d coefficients; // coefficients nCoeffPerElement x nelements
t_pod_1i pq3, pn3, pc3; // arrays to compute 3-body angular basis functions
t_pod_1i pa4, pb4, pc4; // arrays to compute 4-body angular basis functions
t_pod_1i ind33l, ind33r; // nl33
t_pod_1i ind34l, ind34r; // nl34
t_pod_1i ind44l, ind44r; // nl44
t_pod_1i elemindex;
void set_array_to_zero(t_pod_1d a, int N);
int NeighborCount(t_pod_1i, double, int, int);
void NeighborList(t_pod_1d l_rij, t_pod_1i l_numij, t_pod_1i l_typeai, t_pod_1i l_idxi,
t_pod_1i l_ai, t_pod_1i l_aj, t_pod_1i l_ti, t_pod_1i l_tj, double l_rcutsq, int gi1, int Ni);
void radialbasis(t_pod_1d rbft, t_pod_1d rbftx, t_pod_1d rbfty, t_pod_1d rbftz,
t_pod_1d rij, t_pod_1d l_besselparams, double l_rin, double l_rmax, int l_besseldegree,
int l_inversedegree, int l_nbesselpars, int Nij);
void matrixMultiply(t_pod_1d a, t_pod_1d b, t_pod_1d c, int r1, int c1, int c2);
void angularbasis(t_pod_1d l_abf, t_pod_1d l_abfx, t_pod_1d l_abfy, t_pod_1d l_abfz,
t_pod_1d l_rij, t_pod_1i l_pq3, int l_K3, int N);
void radialangularsum(t_pod_1d l_sumU, t_pod_1d l_rbf, t_pod_1d l_abf, t_pod_1i l_tj,
t_pod_1i l_numij, const int l_nelements, const int l_nrbf3, const int l_K3, const int Ni, const int Nij);
void twobodydesc(t_pod_1d d2, t_pod_1d l_rbf, t_pod_1i l_idxi, t_pod_1i l_tj, int l_nrbf2, const int Ni, const int Nij);
void threebodydesc(t_pod_1d d3, t_pod_1d l_sumU, t_pod_1i l_pc3, t_pod_1i l_pn3,
int l_nelements, int l_nrbf3, int l_nabf3, int l_K3, const int Ni);
void fourbodydesc(t_pod_1d d4, t_pod_1d l_sumU, t_pod_1i l_pa4, t_pod_1i l_pb4, t_pod_1i l_pc4,
int l_nelements, int l_nrbf3, int l_nrbf4, int l_nabf4, int l_K3, int l_Q4, int Ni);
void crossdesc(t_pod_1d d12, t_pod_1d d1, t_pod_1d d2, t_pod_1i ind1, t_pod_1i ind2, int n12, int Ni);
void crossdesc_reduction(t_pod_1d cb1, t_pod_1d cb2, t_pod_1d c12, t_pod_1d d1,
t_pod_1d d2, t_pod_1i ind1, t_pod_1i ind2, int n12, int Ni);
void blockatom_base_descriptors(t_pod_1d bd, int Ni, int Nij);
void blockatom_base_coefficients(t_pod_1d ei, t_pod_1d cb, t_pod_1d B, int Ni);
void blockatom_environment_descriptors(t_pod_1d ei, t_pod_1d cb, t_pod_1d B, int Ni);
void twobody_forces(t_pod_1d fij, t_pod_1d cb2, t_pod_1d l_rbfx, t_pod_1d l_rbfy, t_pod_1d l_rbfz,
t_pod_1i l_idxi, t_pod_1i l_tj, int l_nrbf2, const int Ni, const int Nij);
void threebody_forces(t_pod_1d fij, t_pod_1d cb3, t_pod_1d l_rbf, t_pod_1d l_rbfx,
t_pod_1d l_rbfy, t_pod_1d l_rbfz, t_pod_1d l_abf, t_pod_1d l_abfx, t_pod_1d l_abfy, t_pod_1d l_abfz,
t_pod_1d l_sumU, t_pod_1i l_idxi, t_pod_1i l_tj, t_pod_1i l_pc3, t_pod_1i l_pn3, t_pod_1i l_elemindex,
int l_nelements, int l_nrbf3, int l_nabf3, int l_K3, int Ni, int Nij);
void fourbody_forces(t_pod_1d fij, t_pod_1d cb4, t_pod_1d l_rbf, t_pod_1d l_rbfx, t_pod_1d l_rbfy,
t_pod_1d l_rbfz, t_pod_1d l_abf, t_pod_1d l_abfx, t_pod_1d l_abfy, t_pod_1d l_abfz, t_pod_1d l_sumU,
t_pod_1i l_idxi, t_pod_1i l_tj, t_pod_1i l_pa4, t_pod_1i l_pb4, t_pod_1i l_pc4,
int l_nelements, int l_nrbf3, int l_nrbf4, int l_nabf4, int l_K3, int l_Q4, int Ni, int Nij);
void threebody_forcecoeff(t_pod_1d fb3, t_pod_1d cb3, t_pod_1d l_sumU, t_pod_1i l_pc3,
t_pod_1i l_pn3, t_pod_1i l_elemindex, int l_nelements, int l_nrbf3, int l_nabf3, int l_K3, int Ni);
void fourbody_forcecoeff(t_pod_1d fb4, t_pod_1d cb4, t_pod_1d l_sumU, t_pod_1i l_pa4,
t_pod_1i l_pb4, t_pod_1i l_pc4, int l_nelements, int l_nrbf3, int l_nrbf4, int l_nabf4, int l_K3, int l_Q4, int Ni);
void allbody_forces(t_pod_1d fij, t_pod_1d l_forcecoeff, t_pod_1d l_rbf, t_pod_1d l_rbfx,
t_pod_1d l_rbfy, t_pod_1d l_rbfz, t_pod_1d l_abf, t_pod_1d l_abfx, t_pod_1d l_abfy, t_pod_1d l_abfz,
t_pod_1i l_idxi, t_pod_1i l_tj, int l_nelements, int l_nrbf3, int l_K3, int Nij);
void blockatom_energyforce(t_pod_1d l_ei, t_pod_1d l_fij, int Ni, int Nij);
void tallyenergy(t_pod_1d l_ei, int istart, int Ni);
void tallyforce(t_pod_1d l_fij, t_pod_1i l_ai, t_pod_1i l_aj, int Nij);
void tallystress(t_pod_1d l_fij, t_pod_1d l_rij, t_pod_1i l_ai, t_pod_1i l_aj, int Nij);
void savematrix2binfile(std::string filename, t_pod_1d d_A, int nrows, int ncols);
void saveintmatrix2binfile(std::string filename, t_pod_1i d_A, int nrows, int ncols);
void savedatafordebugging();
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -135,16 +135,14 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairSoftKokkos<DeviceType>:: F_FLOAT PairSoftKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_fpair(const F_FLOAT& rsq, const int &, const int &, const int& itype, const int& jtype) const {
(void) i;
const F_FLOAT r = sqrt(rsq); const F_FLOAT r = sqrt(rsq);
const F_FLOAT cut_ij = STACKPARAMS?m_params[itype][jtype].cut:params(itype,jtype).cut; const F_FLOAT cut_ij = STACKPARAMS?m_params[itype][jtype].cut:params(itype,jtype).cut;
const F_FLOAT prefactor_ij = STACKPARAMS?m_params[itype][jtype].prefactor:params(itype,jtype).prefactor; const F_FLOAT prefactor_ij = STACKPARAMS?m_params[itype][jtype].prefactor:params(itype,jtype).prefactor;
const F_FLOAT arg = MY_PI*r/cut_ij; const F_FLOAT arg = MY_PI*r/cut_ij;
F_FLOAT fpair = 0.0; F_FLOAT fpair = 0.0;
if (r > 0.0) fpair = prefactor_ij * if (r > 0.0) fpair = prefactor_ij * sin(arg) * MY_PI/cut_ij/r;
sin(arg) * MY_PI/cut_ij/r;
return fpair; return fpair;
} }
@ -153,8 +151,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairSoftKokkos<DeviceType>:: F_FLOAT PairSoftKokkos<DeviceType>::
compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_evdwl(const F_FLOAT& rsq, const int &, const int &, const int& itype, const int& jtype) const {
(void) i;
const F_FLOAT r = sqrt(rsq); const F_FLOAT r = sqrt(rsq);
const F_FLOAT cut_ij = STACKPARAMS?m_params[itype][jtype].cut:params(itype,jtype).cut; const F_FLOAT cut_ij = STACKPARAMS?m_params[itype][jtype].cut:params(itype,jtype).cut;
const F_FLOAT prefactor_ij = STACKPARAMS?m_params[itype][jtype].prefactor:params(itype,jtype).prefactor; const F_FLOAT prefactor_ij = STACKPARAMS?m_params[itype][jtype].prefactor:params(itype,jtype).prefactor;

View File

@ -202,9 +202,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairTableKokkos<DeviceType>:: F_FLOAT PairTableKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_fpair(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
union_int_float_t rsq_lookup; union_int_float_t rsq_lookup;
double fpair; double fpair;
const int tidx = d_table_const.tabindex(itype,jtype); const int tidx = d_table_const.tabindex(itype,jtype);
@ -236,9 +234,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairTableKokkos<DeviceType>:: F_FLOAT PairTableKokkos<DeviceType>::
compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_evdwl(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
double evdwl; double evdwl;
union_int_float_t rsq_lookup; union_int_float_t rsq_lookup;
const int tidx = d_table_const.tabindex(itype,jtype); const int tidx = d_table_const.tabindex(itype,jtype);

View File

@ -216,10 +216,8 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairYukawaColloidKokkos<DeviceType>:: F_FLOAT PairYukawaColloidKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, compute_fpair(const F_FLOAT &rsq, const int &i, const int &j,
const int& itype, const int& jtype) const { const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT radi = radius[i]; const F_FLOAT radi = radius[i];
const F_FLOAT radj = radius[j]; const F_FLOAT radj = radius[j];
const F_FLOAT rr = sqrt(rsq); const F_FLOAT rr = sqrt(rsq);
@ -242,10 +240,8 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairYukawaColloidKokkos<DeviceType>:: F_FLOAT PairYukawaColloidKokkos<DeviceType>::
compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, compute_evdwl(const F_FLOAT &rsq, const int &i, const int &j,
const int& itype, const int& jtype) const { const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT radi = radius[i]; const F_FLOAT radi = radius[i];
const F_FLOAT radj = radius[j]; const F_FLOAT radj = radius[j];
const F_FLOAT rr = sqrt(rsq); const F_FLOAT rr = sqrt(rsq);

View File

@ -215,10 +215,8 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairYukawaKokkos<DeviceType>:: F_FLOAT PairYukawaKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, compute_fpair(const F_FLOAT &rsq, const int &, const int &,
const int& itype, const int& jtype) const { const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT rr = sqrt(rsq); const F_FLOAT rr = sqrt(rsq);
// Fetch the params either off the stack or from some mapped memory? // Fetch the params either off the stack or from some mapped memory?
const F_FLOAT aa = STACKPARAMS ? m_params[itype][jtype].a const F_FLOAT aa = STACKPARAMS ? m_params[itype][jtype].a
@ -241,10 +239,8 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairYukawaKokkos<DeviceType>:: F_FLOAT PairYukawaKokkos<DeviceType>::
compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, compute_evdwl(const F_FLOAT &rsq, const int &, const int &,
const int& itype, const int& jtype) const { const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT rr = sqrt(rsq); const F_FLOAT rr = sqrt(rsq);
const F_FLOAT aa = STACKPARAMS ? m_params[itype][jtype].a const F_FLOAT aa = STACKPARAMS ? m_params[itype][jtype].a
: params(itype,jtype).a; : params(itype,jtype).a;

View File

@ -184,9 +184,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairZBLKokkos<DeviceType>:: F_FLOAT PairZBLKokkos<DeviceType>::
compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_fpair(const F_FLOAT& rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r = sqrt(rsq); const F_FLOAT r = sqrt(rsq);
F_FLOAT fpair = dzbldr(r, itype, jtype); F_FLOAT fpair = dzbldr(r, itype, jtype);
@ -205,9 +203,7 @@ template<class DeviceType>
template<bool STACKPARAMS, class Specialisation> template<bool STACKPARAMS, class Specialisation>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
F_FLOAT PairZBLKokkos<DeviceType>:: F_FLOAT PairZBLKokkos<DeviceType>::
compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { compute_evdwl(const F_FLOAT &rsq, const int &, const int &, const int &itype, const int &jtype) const {
(void) i;
(void) j;
const F_FLOAT r = sqrt(rsq); const F_FLOAT r = sqrt(rsq);
F_FLOAT evdwl = e_zbl(r, itype, jtype); F_FLOAT evdwl = e_zbl(r, itype, jtype);
evdwl += d_sw5(itype,jtype); evdwl += d_sw5(itype,jtype);

View File

@ -0,0 +1,277 @@
// clang-format off
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "compute_pod_atom.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "modify.h"
#include "neigh_list.h"
#include "neighbor.h"
#include "pair.h"
#include "update.h"
#include <cstring>
#include "eapod.h"
using namespace LAMMPS_NS;
enum { SCALAR, VECTOR, ARRAY };
ComputePODAtom::ComputePODAtom(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr),
rij(nullptr), elements(nullptr), map(nullptr)
{
int nargmin = 6;
if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style);
if (comm->nprocs > 1) error->all(FLERR, "compute command does not support multi processors");
std::string pod_file = std::string(arg[3]); // pod input file
std::string coeff_file = std::string(arg[4]); // coefficient input file
podptr = new EAPOD(lmp, pod_file, coeff_file);
int ntypes = atom->ntypes;
memory->create(map, ntypes + 1, "compute_pod_global:map");
map_element2type(narg - 5, arg + 5, podptr->nelements);
cutmax = podptr->rcut;
nmax = 0;
nijmax = 0;
pod = nullptr;
elements = nullptr;
size_peratom_cols = podptr->Mdesc * podptr->nClusters;
peratom_flag = 1;
}
/* ---------------------------------------------------------------------- */
ComputePODAtom::~ComputePODAtom()
{
memory->destroy(map);
memory->destroy(pod);
delete podptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODAtom::init()
{
if (force->pair == nullptr)
error->all(FLERR,"Compute pod requires a pair style be defined");
if (cutmax > force->pair->cutforce)
error->all(FLERR,"Compute pod cutoff is longer than pairwise cutoff");
// need an occasional full neighbor list
neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL);
if (modify->get_compute_by_style("pod").size() > 1 && comm->me == 0)
error->warning(FLERR,"More than one compute pod");
}
/* ---------------------------------------------------------------------- */
void ComputePODAtom::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODAtom::compute_peratom()
{
invoked_peratom = update->ntimestep;
// grow pod array if necessary
if (atom->natoms > nmax) {
memory->destroy(pod);
nmax = atom->natoms;
int numdesc = podptr->Mdesc * podptr->nClusters;
memory->create(pod, nmax, numdesc,"sna/atom:sna");
array_atom = pod;
}
for (int i = 0; i < atom->natoms; i++)
for (int icoeff = 0; icoeff < size_peratom_cols; icoeff++) {
pod[i][icoeff] = 0.0;
}
// invoke full neighbor list (will copy or build if necessary)
neighbor->build_one(list);
double **x = atom->x;
int **firstneigh = list->firstneigh;
int *numneigh = list->numneigh;
int *type = atom->type;
int *ilist = list->ilist;
int inum = list->inum;
int nClusters = podptr->nClusters;
int Mdesc = podptr->Mdesc;
double rcutsq = podptr->rcut*podptr->rcut;
for (int ii = 0; ii < inum; ii++) {
int i = ilist[ii];
int jnum = numneigh[i];
// allocate temporary memory
if (nijmax < jnum) {
nijmax = MAX(nijmax, jnum);
podptr->free_temp_memory();
podptr->allocate_temp_memory(nijmax);
}
rij = &podptr->tmpmem[0];
tmpmem = &podptr->tmpmem[3*nijmax];
ai = &podptr->tmpint[0];
aj = &podptr->tmpint[nijmax];
ti = &podptr->tmpint[2*nijmax];
tj = &podptr->tmpint[3*nijmax];
// get neighbor list for atom i
lammpsNeighborList(x, firstneigh, atom->tag, type, numneigh, rcutsq, i);
if (nij > 0) {
// peratom base descriptors
double *bd = &podptr->bd[0];
double *bdd = &podptr->bdd[0];
podptr->peratombase_descriptors(bd, bdd, rij, tmpmem, tj, nij);
if (nClusters>1) {
// peratom env descriptors
double *pd = &podptr->pd[0];
double *pdd = &podptr->pdd[0];
podptr->peratomenvironment_descriptors(pd, pdd, bd, bdd, tmpmem, ti[0] - 1, nij);
for (int k = 0; k < nClusters; k++)
for (int m = 0; m < Mdesc; m++) {
int mk = m + Mdesc*k;
pod[i][mk] = pd[k]*bd[m];
// for (int n=0; n<nij; n++) {
// int ain = 3*ai[n];
// int ajn = 3*aj[n];
// int nm = 3*n + 3*nij*m;
// int nk = 3*n + 3*nij*k;
// pod[1 + ain][imk] += bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
// pod[2 + ain][imk] += bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
// pod[3 + ain][imk] += bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
// pod[1 + ajn][imk] -= bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
// pod[2 + ajn][imk] -= bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
// pod[3 + ajn][imk] -= bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
// }
}
}
else {
for (int m = 0; m < Mdesc; m++) {
pod[i][m] = bd[m];
// for (int n=0; n<nij; n++) {
// int ain = 3*ai[n];
// int ajn = 3*aj[n];
// int nm = 3*n + 3*nij*m;
// pod[1 + ain][im] += bdd[0 + nm];
// pod[2 + ain][im] += bdd[1 + nm];
// pod[3 + ain][im] += bdd[2 + nm];
// pod[1 + ajn][im] -= bdd[0 + nm];
// pod[2 + ajn][im] -= bdd[1 + nm];
// pod[3 + ajn][im] -= bdd[2 + nm];
// }
}
}
}
}
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double ComputePODAtom::memory_usage()
{
double bytes = 0.0;
return bytes;
}
void ComputePODAtom::lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtypes,
int *numneigh, double rcutsq, int gi)
{
nij = 0;
int itype = map[atomtypes[gi]] + 1;
int m = numneigh[gi];
ti[nij] = itype;
for (int l = 0; l < m; l++) { // loop over each atom around atom i
int gj = firstneigh[gi][l]; // atom j
double delx = x[gj][0] - x[gi][0]; // xj - xi
double dely = x[gj][1] - x[gi][1]; // xj - xi
double delz = x[gj][2] - x[gi][2]; // xj - xi
double rsq = delx * delx + dely * dely + delz * delz;
if (rsq < rcutsq && rsq > 1e-20) {
rij[nij * 3 + 0] = delx;
rij[nij * 3 + 1] = dely;
rij[nij * 3 + 2] = delz;
ai[nij] = atomid[gi]-1;
aj[nij] = atomid[gj]-1;
ti[nij] = itype;
tj[nij] = map[atomtypes[gj]] + 1;
nij++;
}
}
}
void ComputePODAtom::map_element2type(int narg, char **arg, int nelements)
{
int i,j;
const int ntypes = atom->ntypes;
// read args that map atom types to elements in potential file
// map[i] = which element the Ith atom type is, -1 if "NULL"
// nelements = # of unique elements
// elements = list of element names
if (narg != ntypes)
error->all(FLERR, "Number of element to type mappings does not match number of atom types");
if (elements) {
for (i = 0; i < nelements; i++) delete[] elements[i];
delete[] elements;
}
elements = new char*[ntypes];
for (i = 0; i < ntypes; i++) elements[i] = nullptr;
nelements = 0;
map[0] = -1;
for (i = 1; i <= narg; i++) {
std::string entry = arg[i-1];
if (entry == "NULL") {
map[i] = -1;
continue;
}
for (j = 0; j < nelements; j++)
if (entry == elements[j]) break;
map[i] = j;
if (j == nelements) {
elements[j] = utils::strdup(entry);
nelements++;
}
}
}

View File

@ -0,0 +1,61 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef COMPUTE_CLASS
// clang-format off
ComputeStyle(pod/atom,ComputePODAtom);
// clang-format on
#else
#ifndef LMP_COMPUTE_POD_ATOM_H
#define LMP_COMPUTE_POD_ATOM_H
#include "compute.h"
namespace LAMMPS_NS {
class ComputePODAtom : public Compute {
public:
ComputePODAtom(class LAMMPS *, int, char **);
~ComputePODAtom() override;
void init() override;
void init_list(int, class NeighList *) override;
void compute_peratom() override;
double memory_usage() override;
void lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtype,
int *numneigh, double rcutsq, int i);
void map_element2type(int narg, char **arg, int nelements);
private:
class NeighList *list;
class EAPOD *podptr;
double **pod;
double cutmax;
int nmax;
int nij;
int nijmax;
double *tmpmem; // temporary memory
double *rij; // (xj - xi) for all pairs (I, J)
char **elements;
int *map;
int *ai; // IDs of atoms I for all pairs (I, J)
int *aj; // IDs of atoms J for all pairs (I, J)
int *ti; // types of atoms I for all pairs (I, J)
int *tj; // types of atoms J for all pairs (I, J)
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,283 @@
// clang-format off
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "compute_pod_global.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "modify.h"
#include "neigh_list.h"
#include "neighbor.h"
#include "pair.h"
#include "update.h"
#include <cstring>
#include "eapod.h"
using namespace LAMMPS_NS;
enum { SCALAR, VECTOR, ARRAY };
ComputePODGlobal::ComputePODGlobal(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr),
rij(nullptr), elements(nullptr), map(nullptr), ai(nullptr), aj(nullptr), ti(nullptr),
tj(nullptr)
{
array_flag = 1;
extarray = 0;
int nargmin = 6;
if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style);
if (comm->nprocs > 1) error->all(FLERR, "compute command does not support multi processors");
std::string pod_file = std::string(arg[3]); // pod input file
std::string coeff_file = std::string(arg[4]); // coefficient input file
podptr = new EAPOD(lmp, pod_file, coeff_file);
int ntypes = atom->ntypes;
memory->create(map, ntypes + 1, "compute_pod_global:map");
map_element2type(narg - 5, arg + 5, podptr->nelements);
size_array_rows = 1 + 3*atom->natoms;
size_array_cols = podptr->nCoeffAll;
cutmax = podptr->rcut;
nijmax = 0;
pod = nullptr;
elements = nullptr;
}
/* ---------------------------------------------------------------------- */
ComputePODGlobal::~ComputePODGlobal()
{
memory->destroy(map);
memory->destroy(pod);
delete podptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODGlobal::init()
{
if (force->pair == nullptr)
error->all(FLERR,"Compute pod requires a pair style be defined");
if (cutmax > force->pair->cutforce)
error->all(FLERR,"Compute pod cutoff is longer than pairwise cutoff");
// need an occasional full neighbor list
neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL);
if (modify->get_compute_by_style("pod").size() > 1 && comm->me == 0)
error->warning(FLERR,"More than one compute pod");
// allocate memory for global array
memory->create(pod,size_array_rows,size_array_cols,
"compute_pod_global:pod");
array = pod;
}
/* ---------------------------------------------------------------------- */
void ComputePODGlobal::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODGlobal::compute_array()
{
// int ntotal = atom->nlocal + atom->nghost;
invoked_peratom = update->ntimestep;
// clear global array
for (int irow = 0; irow < size_array_rows; irow++)
for (int icoeff = 0; icoeff < size_array_cols; icoeff++)
pod[irow][icoeff] = 0.0;
// invoke full neighbor list (will copy or build if necessary)
neighbor->build_one(list);
double **x = atom->x;
int **firstneigh = list->firstneigh;
int *numneigh = list->numneigh;
int *type = atom->type;
int *ilist = list->ilist;
int inum = list->inum;
int nClusters = podptr->nClusters;
int Mdesc = podptr->Mdesc;
int nCoeffPerElement = podptr->nCoeffPerElement;
double rcutsq = podptr->rcut*podptr->rcut;
for (int ii = 0; ii < inum; ii++) {
int i = ilist[ii];
int jnum = numneigh[i];
// allocate temporary memory
if (nijmax < jnum) {
nijmax = MAX(nijmax, jnum);
podptr->free_temp_memory();
podptr->allocate_temp_memory(nijmax);
}
rij = &podptr->tmpmem[0];
tmpmem = &podptr->tmpmem[3*nijmax];
ai = &podptr->tmpint[0];
aj = &podptr->tmpint[nijmax];
ti = &podptr->tmpint[2*nijmax];
tj = &podptr->tmpint[3*nijmax];
// get neighbor list for atom i
lammpsNeighborList(x, firstneigh, atom->tag, type, numneigh, rcutsq, i);
if (nij > 0) {
// peratom base descriptors
double *bd = &podptr->bd[0];
double *bdd = &podptr->bdd[0];
podptr->peratombase_descriptors(bd, bdd, rij, tmpmem, tj, nij);
pod[0][nCoeffPerElement*(ti[0]-1)] += 1.0; // one-body descriptor
if (nClusters>1) {
// peratom env descriptors
double *pd = &podptr->pd[0];
double *pdd = &podptr->pdd[0];
podptr->peratomenvironment_descriptors(pd, pdd, bd, bdd, tmpmem, ti[0] - 1, nij);
for (int j = 0; j < nClusters; j++) {
for (int m=0; m<Mdesc; m++) {
int k = nCoeffPerElement*(ti[0]-1) + 1 + m + j*Mdesc; // increment by 1 because of the one-body descriptor
pod[0][k] += pd[j]*bd[m];
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
int nm = 3*n + 3*nij*m;
int nj = 3*n + 3*nij*j;
pod[1+ain][k] += bdd[0 + nm]*pd[j] + bd[m]*pdd[0 + nj];
pod[2+ain][k] += bdd[1 + nm]*pd[j] + bd[m]*pdd[1 + nj];
pod[3+ain][k] += bdd[2 + nm]*pd[j] + bd[m]*pdd[2 + nj];
pod[1+ajn][k] -= bdd[0 + nm]*pd[j] + bd[m]*pdd[0 + nj];
pod[2+ajn][k] -= bdd[1 + nm]*pd[j] + bd[m]*pdd[1 + nj];
pod[3+ajn][k] -= bdd[2 + nm]*pd[j] + bd[m]*pdd[2 + nj];
}
}
}
}
else {
for (int m=0; m<Mdesc; m++) {
int k = nCoeffPerElement*(ti[0]-1) + 1 + m; // increment by 1 because of the one-body descriptor
pod[0][k] += bd[m];
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
int nm = 3*n + 3*nij*m;
pod[1+ain][k] += bdd[0 + nm];
pod[2+ain][k] += bdd[1 + nm];
pod[3+ain][k] += bdd[2 + nm];
pod[1+ajn][k] -= bdd[0 + nm];
pod[2+ajn][k] -= bdd[1 + nm];
pod[3+ajn][k] -= bdd[2 + nm];
}
}
}
}
}
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double ComputePODGlobal::memory_usage()
{
double bytes = 0.0;
return bytes;
}
void ComputePODGlobal::lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtypes,
int *numneigh, double rcutsq, int gi)
{
nij = 0;
int itype = map[atomtypes[gi]] + 1;
ti[nij] = itype;
int m = numneigh[gi];
for (int l = 0; l < m; l++) { // loop over each atom around atom i
int gj = firstneigh[gi][l]; // atom j
double delx = x[gj][0] - x[gi][0]; // xj - xi
double dely = x[gj][1] - x[gi][1]; // xj - xi
double delz = x[gj][2] - x[gi][2]; // xj - xi
double rsq = delx * delx + dely * dely + delz * delz;
if (rsq < rcutsq && rsq > 1e-20) {
rij[nij * 3 + 0] = delx;
rij[nij * 3 + 1] = dely;
rij[nij * 3 + 2] = delz;
ai[nij] = atomid[gi]-1;
aj[nij] = atomid[gj]-1;
ti[nij] = itype;
tj[nij] = map[atomtypes[gj]] + 1;
nij++;
}
}
}
void ComputePODGlobal::map_element2type(int narg, char **arg, int nelements)
{
int i,j;
const int ntypes = atom->ntypes;
// read args that map atom types to elements in potential file
// map[i] = which element the Ith atom type is, -1 if "NULL"
// nelements = # of unique elements
// elements = list of element names
if (narg != ntypes)
error->all(FLERR, "Number of element to type mappings does not match number of atom types");
if (elements) {
for (i = 0; i < nelements; i++) delete[] elements[i];
delete[] elements;
}
elements = new char*[ntypes];
for (i = 0; i < ntypes; i++) elements[i] = nullptr;
nelements = 0;
map[0] = -1;
for (i = 1; i <= narg; i++) {
std::string entry = arg[i-1];
if (entry == "NULL") {
map[i] = -1;
continue;
}
for (j = 0; j < nelements; j++)
if (entry == elements[j]) break;
map[i] = j;
if (j == nelements) {
elements[j] = utils::strdup(entry);
nelements++;
}
}
}

View File

@ -0,0 +1,60 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef COMPUTE_CLASS
// clang-format off
ComputeStyle(pod/global,ComputePODGlobal);
// clang-format on
#else
#ifndef LMP_COMPUTE_POD_GLOBAL_H
#define LMP_COMPUTE_POD_GLOBAL_H
#include "compute.h"
namespace LAMMPS_NS {
class ComputePODGlobal : public Compute {
public:
ComputePODGlobal(class LAMMPS *, int, char **);
~ComputePODGlobal() override;
void init() override;
void init_list(int, class NeighList *) override;
void compute_array() override;
double memory_usage() override;
void lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtype,
int *numneigh, double rcutsq, int i);
void map_element2type(int narg, char **arg, int nelements);
private:
class NeighList *list;
class EAPOD *podptr;
double **pod;
double cutmax;
int nij;
int nijmax;
double *tmpmem; // temporary memory
double *rij; // (xj - xi) for all pairs (I, J)
char **elements;
int *map;
int *ai; // IDs of atoms I for all pairs (I, J)
int *aj; // IDs of atoms J for all pairs (I, J)
int *ti; // types of atoms I for all pairs (I, J)
int *tj; // types of atoms J for all pairs (I, J)
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,280 @@
// clang-format off
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "compute_pod_local.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "modify.h"
#include "neigh_list.h"
#include "neighbor.h"
#include "pair.h"
#include "update.h"
#include <cstring>
#include "eapod.h"
using namespace LAMMPS_NS;
enum { SCALAR, VECTOR, ARRAY };
ComputePODLocal::ComputePODLocal(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr),
rij(nullptr), elements(nullptr), map(nullptr), ai(nullptr), aj(nullptr), ti(nullptr),
tj(nullptr)
{
array_flag = 1;
extarray = 0;
int nargmin = 6;
if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style);
if (comm->nprocs > 1) error->all(FLERR, "compute command does not support multi processors");
std::string pod_file = std::string(arg[3]); // pod input file
std::string coeff_file = std::string(arg[4]); // coefficient input file
podptr = new EAPOD(lmp, pod_file, coeff_file);
int ntypes = atom->ntypes;
memory->create(map, ntypes + 1, "compute_pod_local:map");
map_element2type(narg - 5, arg + 5, podptr->nelements);
int numdesc = podptr->Mdesc * podptr->nClusters;
size_array_rows = 1 + 3*atom->natoms;
size_array_cols = atom->natoms*numdesc;
cutmax = podptr->rcut;
nijmax = 0;
pod = nullptr;
elements = nullptr;
}
/* ---------------------------------------------------------------------- */
ComputePODLocal::~ComputePODLocal()
{
memory->destroy(map);
memory->destroy(pod);
delete podptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODLocal::init()
{
if (force->pair == nullptr)
error->all(FLERR,"Compute pod requires a pair style be defined");
if (cutmax > force->pair->cutforce)
error->all(FLERR,"Compute pod cutoff is longer than pairwise cutoff");
// need an occasional full neighbor list
neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL);
if (modify->get_compute_by_style("pod").size() > 1 && comm->me == 0)
error->warning(FLERR,"More than one compute pod");
// allocate memory for global array
memory->create(pod,size_array_rows,size_array_cols,
"compute_pod_local:pod");
array = pod;
}
/* ---------------------------------------------------------------------- */
void ComputePODLocal::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODLocal::compute_array()
{
// int ntotal = atom->nlocal + atom->nghost;
invoked_peratom = update->ntimestep;
// clear global array
for (int irow = 0; irow < size_array_rows; irow++)
for (int icoeff = 0; icoeff < size_array_cols; icoeff++)
pod[irow][icoeff] = 0.0;
// invoke full neighbor list (will copy or build if necessary)
neighbor->build_one(list);
double **x = atom->x;
int **firstneigh = list->firstneigh;
int *numneigh = list->numneigh;
int *type = atom->type;
int *ilist = list->ilist;
int inum = list->inum;
int nClusters = podptr->nClusters;
int Mdesc = podptr->Mdesc;
double rcutsq = podptr->rcut*podptr->rcut;
for (int ii = 0; ii < inum; ii++) {
int i = ilist[ii];
int jnum = numneigh[i];
// allocate temporary memory
if (nijmax < jnum) {
nijmax = MAX(nijmax, jnum);
podptr->free_temp_memory();
podptr->allocate_temp_memory(nijmax);
}
rij = &podptr->tmpmem[0];
tmpmem = &podptr->tmpmem[3*nijmax];
ai = &podptr->tmpint[0];
aj = &podptr->tmpint[nijmax];
ti = &podptr->tmpint[2*nijmax];
tj = &podptr->tmpint[3*nijmax];
// get neighbor list for atom i
lammpsNeighborList(x, firstneigh, atom->tag, type, numneigh, rcutsq, i);
if (nij > 0) {
// peratom base descriptors
double *bd = &podptr->bd[0];
double *bdd = &podptr->bdd[0];
podptr->peratombase_descriptors(bd, bdd, rij, tmpmem, tj, nij);
if (nClusters>1) {
// peratom env descriptors
double *pd = &podptr->pd[0];
double *pdd = &podptr->pdd[0];
podptr->peratomenvironment_descriptors(pd, pdd, bd, bdd, tmpmem, ti[0] - 1, nij);
for (int k = 0; k < nClusters; k++)
for (int m = 0; m < Mdesc; m++) {
int imk = m + Mdesc*k + Mdesc*nClusters*i;
pod[0][imk] = pd[k]*bd[m];
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
int nm = 3*n + 3*nij*m;
int nk = 3*n + 3*nij*k;
pod[1 + ain][imk] += bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
pod[2 + ain][imk] += bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
pod[3 + ain][imk] += bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
pod[1 + ajn][imk] -= bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
pod[2 + ajn][imk] -= bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
pod[3 + ajn][imk] -= bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
}
}
}
else {
for (int m = 0; m < Mdesc; m++) {
int im = m + Mdesc*i;
pod[0][im] = bd[m];
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
int nm = 3*n + 3*nij*m;
pod[1 + ain][im] += bdd[0 + nm];
pod[2 + ain][im] += bdd[1 + nm];
pod[3 + ain][im] += bdd[2 + nm];
pod[1 + ajn][im] -= bdd[0 + nm];
pod[2 + ajn][im] -= bdd[1 + nm];
pod[3 + ajn][im] -= bdd[2 + nm];
}
}
}
}
}
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double ComputePODLocal::memory_usage()
{
double bytes = 0.0;
return bytes;
}
void ComputePODLocal::lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtypes,
int *numneigh, double rcutsq, int gi)
{
nij = 0;
int itype = map[atomtypes[gi]] + 1;
ti[nij] = itype;
int m = numneigh[gi];
for (int l = 0; l < m; l++) { // loop over each atom around atom i
int gj = firstneigh[gi][l]; // atom j
double delx = x[gj][0] - x[gi][0]; // xj - xi
double dely = x[gj][1] - x[gi][1]; // xj - xi
double delz = x[gj][2] - x[gi][2]; // xj - xi
double rsq = delx * delx + dely * dely + delz * delz;
if (rsq < rcutsq && rsq > 1e-20) {
rij[nij * 3 + 0] = delx;
rij[nij * 3 + 1] = dely;
rij[nij * 3 + 2] = delz;
ai[nij] = atomid[gi]-1;
aj[nij] = atomid[gj]-1;
ti[nij] = itype;
tj[nij] = map[atomtypes[gj]] + 1;
nij++;
}
}
}
void ComputePODLocal::map_element2type(int narg, char **arg, int nelements)
{
int i,j;
const int ntypes = atom->ntypes;
// read args that map atom types to elements in potential file
// map[i] = which element the Ith atom type is, -1 if "NULL"
// nelements = # of unique elements
// elements = list of element names
if (narg != ntypes)
error->all(FLERR, "Number of element to type mappings does not match number of atom types");
if (elements) {
for (i = 0; i < nelements; i++) delete[] elements[i];
delete[] elements;
}
elements = new char*[ntypes];
for (i = 0; i < ntypes; i++) elements[i] = nullptr;
nelements = 0;
map[0] = -1;
for (i = 1; i <= narg; i++) {
std::string entry = arg[i-1];
if (entry == "NULL") {
map[i] = -1;
continue;
}
for (j = 0; j < nelements; j++)
if (entry == elements[j]) break;
map[i] = j;
if (j == nelements) {
elements[j] = utils::strdup(entry);
nelements++;
}
}
}

View File

@ -0,0 +1,60 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef COMPUTE_CLASS
// clang-format off
ComputeStyle(pod/local,ComputePODLocal);
// clang-format on
#else
#ifndef LMP_COMPUTE_POD_LOCAL_H
#define LMP_COMPUTE_POD_LOCAL_H
#include "compute.h"
namespace LAMMPS_NS {
class ComputePODLocal : public Compute {
public:
ComputePODLocal(class LAMMPS *, int, char **);
~ComputePODLocal() override;
void init() override;
void init_list(int, class NeighList *) override;
void compute_array() override;
double memory_usage() override;
void lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtype,
int *numneigh, double rcutsq, int i);
void map_element2type(int narg, char **arg, int nelements);
private:
class NeighList *list;
class EAPOD *podptr;
double **pod;
double cutmax;
int nij;
int nijmax;
double *tmpmem; // temporary memory
double *rij; // (xj - xi) for all pairs (I, J)
char **elements;
int *map;
int *ai; // IDs of atoms I for all pairs (I, J)
int *aj; // IDs of atoms J for all pairs (I, J)
int *ti; // types of atoms I for all pairs (I, J)
int *tj; // types of atoms J for all pairs (I, J)
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,282 @@
// clang-format off
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "compute_podd_atom.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "modify.h"
#include "neigh_list.h"
#include "neighbor.h"
#include "pair.h"
#include "update.h"
#include <cstring>
#include "eapod.h"
using namespace LAMMPS_NS;
enum { SCALAR, VECTOR, ARRAY };
ComputePODDAtom::ComputePODDAtom(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr),
rij(nullptr), elements(nullptr), map(nullptr), ai(nullptr), aj(nullptr), ti(nullptr),
tj(nullptr)
{
int nargmin = 6;
if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style);
if (comm->nprocs > 1) error->all(FLERR, "compute command does not support multi processors");
std::string pod_file = std::string(arg[3]); // pod input file
std::string coeff_file = std::string(arg[4]); // coefficient input file
podptr = new EAPOD(lmp, pod_file, coeff_file);
int ntypes = atom->ntypes;
memory->create(map, ntypes + 1, "compute_pod_global:map");
map_element2type(narg - 5, arg + 5, podptr->nelements);
cutmax = podptr->rcut;
nmax = 0;
nijmax = 0;
pod = nullptr;
elements = nullptr;
if (((((MAXBIGINT*3.0)*atom->natoms)*podptr->nClusters)*podptr->Mdesc) > (MAXSMALLINT*1.0))
error->all(FLERR, "Per-atom data too large");
size_peratom_cols = 3 * atom->natoms * podptr->Mdesc * podptr->nClusters;
peratom_flag = 1;
}
/* ---------------------------------------------------------------------- */
ComputePODDAtom::~ComputePODDAtom()
{
memory->destroy(map);
memory->destroy(pod);
delete podptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODDAtom::init()
{
if (force->pair == nullptr)
error->all(FLERR,"Compute pod requires a pair style be defined");
if (cutmax > force->pair->cutforce)
error->all(FLERR,"Compute pod cutoff is longer than pairwise cutoff");
// need an occasional full neighbor list
neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL);
if (modify->get_compute_by_style("pod").size() > 1 && comm->me == 0)
error->warning(FLERR,"More than one compute pod");
}
/* ---------------------------------------------------------------------- */
void ComputePODDAtom::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODDAtom::compute_peratom()
{
invoked_peratom = update->ntimestep;
// grow pod array if necessary
if (atom->natoms > nmax) {
memory->destroy(pod);
nmax = atom->natoms;
if (((((MAXBIGINT*3.0)*atom->natoms)*podptr->nClusters)*podptr->Mdesc) > (MAXSMALLINT*1.0))
error->all(FLERR, "Per-atom data too large");
int numdesc = 3 * atom->natoms * podptr->Mdesc * podptr->nClusters;
memory->create(pod, nmax, numdesc,"podd/atom:pod");
array_atom = pod;
}
for (int i = 0; i < atom->natoms; i++)
for (int icoeff = 0; icoeff < size_peratom_cols; icoeff++) {
pod[i][icoeff] = 0.0;
}
// invoke full neighbor list (will copy or build if necessary)
neighbor->build_one(list);
double **x = atom->x;
int **firstneigh = list->firstneigh;
int *numneigh = list->numneigh;
int *type = atom->type;
int *ilist = list->ilist;
int inum = list->inum;
int nClusters = podptr->nClusters;
int Mdesc = podptr->Mdesc;
double rcutsq = podptr->rcut*podptr->rcut;
for (int ii = 0; ii < inum; ii++) {
int i = ilist[ii];
int jnum = numneigh[i];
// allocate temporary memory
if (nijmax < jnum) {
nijmax = MAX(nijmax, jnum);
podptr->free_temp_memory();
podptr->allocate_temp_memory(nijmax);
}
rij = &podptr->tmpmem[0];
tmpmem = &podptr->tmpmem[3*nijmax];
ai = &podptr->tmpint[0];
aj = &podptr->tmpint[nijmax];
ti = &podptr->tmpint[2*nijmax];
tj = &podptr->tmpint[3*nijmax];
// get neighbor list for atom i
lammpsNeighborList(x, firstneigh, atom->tag, type, numneigh, rcutsq, i);
if (nij > 0) {
// peratom base descriptors
double *bd = &podptr->bd[0];
double *bdd = &podptr->bdd[0];
podptr->peratombase_descriptors(bd, bdd, rij, tmpmem, tj, nij);
if (nClusters>1) {
// peratom env descriptors
double *pd = &podptr->pd[0];
double *pdd = &podptr->pdd[0];
podptr->peratomenvironment_descriptors(pd, pdd, bd, bdd, tmpmem, ti[0] - 1, nij);
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
for (int k = 0; k < nClusters; k++) {
for (int m = 0; m < Mdesc; m++) {
int mk = m + Mdesc*k;
int nm = 3*n + 3*nij*m;
int nk = 3*n + 3*nij*k;
pod[i][mk + Mdesc*nClusters*0 + Mdesc*nClusters*ain] += bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
pod[i][mk + Mdesc*nClusters*1 + Mdesc*nClusters*ain] += bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
pod[i][mk + Mdesc*nClusters*2 + Mdesc*nClusters*ain] += bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
pod[i][mk + Mdesc*nClusters*0 + Mdesc*nClusters*ajn] -= bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
pod[i][mk + Mdesc*nClusters*1 + Mdesc*nClusters*ajn] -= bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
pod[i][mk + Mdesc*nClusters*2 + Mdesc*nClusters*ajn] -= bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
}
}
}
}
else {
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
for (int m = 0; m < Mdesc; m++) {
int nm = 3*n + 3*nij*m; // d D_im/ d R_j, m = 1, ..., M, i = 1, ..., N, j = 1, ..., N
pod[i][m + Mdesc*0 + Mdesc*ain] += bdd[0 + nm];
pod[i][m + Mdesc*1 + Mdesc*ain] += bdd[1 + nm];
pod[i][m + Mdesc*2 + Mdesc*ain] += bdd[2 + nm];
pod[i][m + Mdesc*0 + Mdesc*ajn] -= bdd[0 + nm];
pod[i][m + Mdesc*1 + Mdesc*ajn] -= bdd[1 + nm];
pod[i][m + Mdesc*2 + Mdesc*ajn] -= bdd[2 + nm];
}
}
}
}
}
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double ComputePODDAtom::memory_usage()
{
double bytes = 0.0;
return bytes;
}
void ComputePODDAtom::lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtypes,
int *numneigh, double rcutsq, int gi)
{
nij = 0;
int itype = map[atomtypes[gi]] + 1;
ti[nij] = itype;
int m = numneigh[gi];
for (int l = 0; l < m; l++) { // loop over each atom around atom i
int gj = firstneigh[gi][l]; // atom j
double delx = x[gj][0] - x[gi][0]; // xj - xi
double dely = x[gj][1] - x[gi][1]; // xj - xi
double delz = x[gj][2] - x[gi][2]; // xj - xi
double rsq = delx * delx + dely * dely + delz * delz;
if (rsq < rcutsq && rsq > 1e-20) {
rij[nij * 3 + 0] = delx;
rij[nij * 3 + 1] = dely;
rij[nij * 3 + 2] = delz;
ai[nij] = atomid[gi]-1;
aj[nij] = atomid[gj]-1;
ti[nij] = itype;
tj[nij] = map[atomtypes[gj]] + 1;
nij++;
}
}
}
void ComputePODDAtom::map_element2type(int narg, char **arg, int nelements)
{
int i,j;
const int ntypes = atom->ntypes;
// read args that map atom types to elements in potential file
// map[i] = which element the Ith atom type is, -1 if "NULL"
// nelements = # of unique elements
// elements = list of element names
if (narg != ntypes)
error->all(FLERR, "Number of element to type mappings does not match number of atom types");
if (elements) {
for (i = 0; i < nelements; i++) delete[] elements[i];
delete[] elements;
}
elements = new char*[ntypes];
for (i = 0; i < ntypes; i++) elements[i] = nullptr;
nelements = 0;
map[0] = -1;
for (i = 1; i <= narg; i++) {
std::string entry = arg[i-1];
if (entry == "NULL") {
map[i] = -1;
continue;
}
for (j = 0; j < nelements; j++)
if (entry == elements[j]) break;
map[i] = j;
if (j == nelements) {
elements[j] = utils::strdup(entry);
nelements++;
}
}
}

Some files were not shown because too many files have changed in this diff Show More