Merge branch 'master' into pair-potential-file-unit-convert

This commit is contained in:
Axel Kohlmeyer
2020-06-24 20:24:51 -04:00
107 changed files with 6951 additions and 484 deletions

View File

@ -112,8 +112,8 @@ install(TARGETS lmp EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR})
option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE
GRANULAR KSPACE LATTE MANYBODY MC MESSAGE MISC MOLECULE PERI POEMS QEQ
REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI
GRANULAR KSPACE LATTE MANYBODY MC MESSAGE MISC MLIAP MOLECULE PERI POEMS
QEQ REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI
USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESODPD USER-CGSDK USER-COLVARS
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB
USER-MANIFOLD USER-MEAMC USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
@ -200,6 +200,7 @@ endif()
# "hard" dependencies between packages resulting
# in an error instead of skipping over files
pkg_depends(MLIAP SNAP)
pkg_depends(MPIIO MPI)
pkg_depends(USER-ATC MANYBODY)
pkg_depends(USER-LB MPI)
@ -256,9 +257,9 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
endif()
endif()
set(ENABLE_SANITIZER "none" CACHE STRING "Select a code sanitizer option (none (default), address, thread, undefined)")
set(ENABLE_SANITIZER "none" CACHE STRING "Select a code sanitizer option (none (default), address, leak, thread, undefined)")
mark_as_advanced(ENABLE_SANITIZER)
set(ENABLE_SANITIZER_VALUES none address thread undefined)
set(ENABLE_SANITIZER_VALUES none address leak thread undefined)
set_property(CACHE ENABLE_SANITIZER PROPERTY STRINGS ${ENABLE_SANITIZER_VALUES})
validate_option(ENABLE_SANITIZER ENABLE_SANITIZER_VALUES)
string(TOLOWER ${ENABLE_SANITIZER} ENABLE_SANITIZER)

View File

@ -3,6 +3,21 @@
###############################################################################
option(ENABLE_TESTING "Enable testing" OFF)
if(ENABLE_TESTING)
find_program(VALGRIND_BINARY NAMES valgrind)
# generate custom suppression file
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/lammps.supp "\n")
file(GLOB VALGRIND_SUPPRESSION_FILES ${LAMMPS_TOOLS_DIR}/valgrind/[^.]*.supp)
foreach(SUPP ${VALGRIND_SUPPRESSION_FILES})
file(READ ${SUPP} SUPPRESSIONS)
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/lammps.supp "${SUPPRESSIONS}")
endforeach()
set(VALGRIND_DEFAULT_OPTIONS "--leak-check=full --show-leak-kinds=all --track-origins=yes --suppressions=${CMAKE_BINARY_DIR}/lammps.supp")
set(MEMORYCHECK_COMMAND "${VALGRIND_BINARY}" CACHE FILEPATH "Memory Check Command")
set(MEMORYCHECK_COMMAND_OPTIONS "${VALGRIND_DEFAULT_OPTIONS}" CACHE STRING "Memory Check Command Options")
include(CTest)
enable_testing()
get_filename_component(LAMMPS_UNITTEST_DIR ${LAMMPS_SOURCE_DIR}/../unittest ABSOLUTE)
get_filename_component(LAMMPS_UNITTEST_BIN ${CMAKE_BINARY_DIR}/unittest ABSOLUTE)

View File

@ -1,6 +1,6 @@
set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
GRANULAR KSPACE LATTE MANYBODY MC MISC MOLECULE OPT PERI
POEMS QEQ REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI
GRANULAR KSPACE LATTE MANYBODY MC MISC MLIAP MOLECULE OPT
PERI POEMS QEQ REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI
USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF
USER-FEP USER-INTEL USER-MANIFOLD USER-MEAMC USER-MESODPD

View File

@ -2,8 +2,8 @@
# external libraries. Compared to all_on.cmake some more unusual packages
# are removed. The resulting binary should be able to run most inputs.
set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL
DIPOLE GRANULAR KSPACE MANYBODY MC MISC MOLECULE OPT PERI
set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE
GRANULAR KSPACE MANYBODY MC MISC MLIAP MOLECULE OPT PERI
POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI
USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION
USER-DPD USER-DRUDE USER-EFF USER-FEP USER-MEAMC USER-MESODPD

View File

@ -52,6 +52,7 @@ compilation and linking stages. This is done through setting the
-D ENABLE_SANITIZER=none # no sanitizer active (default)
-D ENABLE_SANITIZER=address # enable address sanitizer / memory leak checker
-D ENABLE_SANITIZER=leak # enable memory leak checker (only)
-D ENABLE_SANITIZER=undefined # enable undefined behavior sanitizer
-D ENABLE_SANITIZER=thread # enable thread sanitizer
@ -121,6 +122,8 @@ The ``ctest`` command has many options, the most important ones are:
- exclude subset of tests matching the regular expression <regex>
* - -N
- dry-run: display list of tests without running them
* - -T memcheck
- run tests with valgrind memory checker (if available)
In its full implementation, the unit test framework will consist of multiple
kinds of tests implemented in different programming languages (C++, C, Python,
@ -216,7 +219,7 @@ The force style test programs have a common set of options:
- verbose output: also print the executed LAMMPS commands
The ``ctest`` tool has no mechanism to directly pass flags to the individual
test programs, but a workaround has been implmented where these flags can be
test programs, but a workaround has been implemented where these flags can be
set in an environment variable ``TEST_ARGS``. Example:
.. code-block:: bash

View File

@ -183,6 +183,7 @@ OPT.
* :doc:`mesont/tpm <pair_mesont_tpm>`
* :doc:`mgpt <pair_mgpt>`
* :doc:`mie/cut (g) <pair_mie>`
* :doc:`mliap <pair_mliap>`
* :doc:`mm3/switch3/coulgauss/long <pair_mm3_switch3_coulgauss_long>`
* :doc:`momb <pair_momb>`
* :doc:`morse (gkot) <pair_morse>`
@ -228,7 +229,6 @@ OPT.
* :doc:`smd/ulsph <pair_smd_ulsph>`
* :doc:`smtbq <pair_smtbq>`
* :doc:`snap (k) <pair_snap>`
* :doc:`snap (k) <pair_snap>`
* :doc:`soft (go) <pair_soft>`
* :doc:`sph/heatconduction <pair_sph_heatconduction>`
* :doc:`sph/idealgas <pair_sph_idealgas>`

View File

@ -44,6 +44,7 @@ page gives those details.
* :ref:`MC <PKG-MC>`
* :ref:`MESSAGE <PKG-MESSAGE>`
* :ref:`MISC <PKG-MISC>`
* :ref:`MLIAP <PKG-MLIAP>`
* :ref:`MOLECULE <PKG-MOLECULE>`
* :ref:`MPIIO <PKG-MPIIO>`
* :ref:`MSCG <PKG-MSCG>`
@ -652,6 +653,29 @@ listing, "ls src/MISC", to see the list of commands.
----------
.. _PKG-MLIAP:
MLIAP package
-------------
**Contents:**
A general interface for machine-learning interatomic potentials.
**Install:**
To use this package, also the :ref:`SNAP package<PKG-SNAP>` needs to be installed.
**Author:** Aidan Thompson (Sandia).
**Supporting info:**
* src/MLIAP: filenames -> commands
* :doc:`pair_style mliap <pair_mliap>`
* examples/mliap
----------
.. _PKG-MOLECULE:
MOLECULE package

View File

@ -59,6 +59,8 @@ package:
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MISC <PKG-MISC>` | miscellaneous single-file commands | n/a | no | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MLIAP <PKG-MLIAP>` | multiple machine learning potentials | :doc:`pair_style mliap <pair_mliap>` | mliap | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MOLECULE <PKG-MOLECULE>` | molecular system force fields | :doc:`Howto bioFF <Howto_bioFF>` | peptide | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MPIIO <PKG-MPIIO>` | MPI parallel I/O dump and restart | :doc:`dump <dump>` | n/a | no |

View File

@ -431,7 +431,6 @@ available at `arXiv:1409.3880 <http://arxiv.org/abs/1409.3880>`_
**(Varshalovich)** Varshalovich, Moskalev, Khersonskii, Quantum Theory
of Angular Momentum, World Scientific, Singapore (1987).
.. _Varshalovich1987:
.. _Mason2009:

136
doc/src/pair_mliap.rst Normal file
View File

@ -0,0 +1,136 @@
.. index:: pair_style mliap
pair_style mliap command
========================
Syntax
""""""
.. code-block:: LAMMPS
pair_style mliap
Examples
""""""""
.. code-block:: LAMMPS
pair_style mliap model linear InP.mliap.model descriptor sna InP.mliap.descriptor
pair_style mliap model quadratic W.mliap.model descriptor sna W.mliap.descriptor
pair_coeff * * In P
Description
"""""""""""
Pair style *mliap* provides a general interface to families of
machine-learning interatomic potentials. It provides separate
definitions of the interatomic potential functional form (*model*)
and the geometric quantities that characterize the atomic positions
(*descriptor*). By defining *model* and *descriptor* separately,
it is possible to use many different models with a given descriptor,
or many different descriptors with a given model. Currently, the pair_style
supports just two models, *linear* and *quadratic*,
and one descriptor, *sna*, the SNAP descriptor used by :doc:`pair_style snap <pair_snap>`, including the linear, quadratic,
and chem variants. Work is currently underway to extend
the interface to handle neural network energy models,
and it is also straightforward to add new descriptor styles.
The pair_style *mliap* command must be followed by two keywords
*model* and *descriptor* in either order. A single
*pair_coeff* command is also required. The first 2 arguments
must be \* \* so as to span all LAMMPS atom types.
This is followed by a list of N arguments
that specify the mapping of MLIAP
element names to LAMMPS atom types,
where N is the number of LAMMPS atom types.
The *model* keyword is followed by a model style, currently limited to
either *linear* or *quadratic*. In both cases,
this is followed by a single argument specifying the model filename containing the
linear or quadratic coefficients for a set of elements.
The model filename usually ends in the *.mliap.model* extension.
It may contain coefficients for many elements. The only requirement is that it
contain at least those element names appearing in the
*pair_coeff* command.
The top of the model file can contain any number of blank and comment lines (start with #),
but follows a strict format after that. The first non-blank non-comment
line must contain two integers:
* nelems = Number of elements
* ncoeff = Number of coefficients
This is followed by one block for each of the *nelem* elements.
Each block consists of *ncoeff* coefficients, one per line.
Note that this format is similar, but not identical to that used
for the :doc:`pair_style snap <pair_snap>` coefficient file.
Specifically, the line containing the element weight and radius is omitted,
since these are handled by the *descriptor*.
The *descriptor* keyword is followed by a descriptor style, and additional arguments.
Currently the only descriptor style is *sna*, indicating the bispectrum component
descriptors used by the Spectral Neighbor Analysis Potential (SNAP) potentials of
:doc:`pair_style snap <pair_snap>`.
The \'p\' in SNAP is dropped, because keywords that match pair_styles are silently stripped
out by the LAMMPS command parser. A single additional argument specifies the descriptor filename
containing the parameters and setting used by the SNAP descriptor.
The descriptor filename usually ends in the *.mliap.descriptor* extension.
The SNAP descriptor file closely follows the format of the
:doc:`pair_style snap <pair_snap>` parameter file.
The file can contain blank and comment lines (start
with #) anywhere. Each non-blank non-comment line must contain one
keyword/value pair. The required keywords are *rcutfac* and
*twojmax*\ . There are many optional keywords that are described
on the :doc:`pair_style snap <pair_snap>` doc page.
In addition, the SNAP descriptor file must contain
the *nelems*, *elems*, *radelems*, and *welems* keywords.
The *nelems* keyword specifies the number of elements
provided in the other three keywords.
The *elems* keyword is followed by a list of *nelems*
element names that must include the element
names appearing in the *pair_coeff* command,
but can contain other names too.
Similarly, the *radelems* and *welems* keywords are
followed by lists of *nelems* numbers giving the element radius
and element weight of each element. Obviously, the order
in which the elements are listed must be consistent for all
three keywords.
See the :doc:`pair_coeff <pair_coeff>` doc page for alternate ways
to specify the path for these *model* and *descriptor* files.
**Mixing, shift, table, tail correction, restart, rRESPA info**\ :
For atom type pairs I,J and I != J, where types I and J correspond to
two different element types, mixing is performed by LAMMPS with
user-specifiable parameters as described above. You never need to
specify a pair_coeff command with I != J arguments for this style.
This pair style does not support the :doc:`pair_modify <pair_modify>`
shift, table, and tail options.
This pair style does not write its information to :doc:`binary restart files <restart>`, since it is stored in potential files. Thus, you
need to re-specify the pair_style and pair_coeff commands in an input
script that reads a restart file.
This pair style can only be used via the *pair* keyword of the
:doc:`run_style respa <run_style>` command. It does not support the
*inner*\ , *middle*\ , *outer* keywords.
----------
Restrictions
""""""""""""
This style is part of the MLIAP package. It is only enabled if LAMMPS
was built with that package. In addition, building LAMMPS with the MLIAP package
requires building LAMMPS with the SNAP package.
See the :doc:`Build package <Build_package>` doc page for more info.
Related commands
""""""""""""""""
:doc:`pair_style snap <pair_snap>`,
**Default:** none

View File

@ -291,6 +291,7 @@ accelerated styles exist.
* :doc:`smd/tri_surface <pair_smd_triangulated_surface>` -
* :doc:`smd/ulsph <pair_smd_ulsph>` -
* :doc:`smtbq <pair_smtbq>` -
* :doc:`mliap <pair_mliap>` - Multiple styles of machine-learning potential
* :doc:`snap <pair_snap>` - SNAP quantum-accurate potential
* :doc:`soft <pair_soft>` - Soft (cosine) potential
* :doc:`sph/heatconduction <pair_sph_heatconduction>` -

View File

@ -1826,6 +1826,7 @@ Mj
mK
mkdir
mkv
mliap
mlparks
Mniszewski
mnt
@ -1995,6 +1996,7 @@ Neel
Neelov
Negre
nelem
nelems
Nelement
Nelements
nemd

View File

@ -1,66 +0,0 @@
# Tersoff parameters for various elements and mixtures
# multiple entries can be added to this file, LAMMPS reads the ones it needs
# these entries are in LAMMPS "metal" units:
# A,B = eV; lambda1,lambda2,lambda3 = 1/Angstroms; R,D = Angstroms
# other quantities are unitless
# Aidan Thompson (athomps at sandia.gov) takes full blame for this
# file. It specifies various potentials published by J. Tersoff for
# silicon, carbon and germanium. Since Tersoff published several
# different silicon potentials, I refer to them using atom types
# Si(B), Si(C) and Si(D). The last two are almost almost identical but
# refer to two different publications. These names should be used in
# the LAMMPS command when the file is invoked. For example:
# pair_coeff * * SiCGe.tersoff Si(B). The Si(D), C and Ge potentials
# can be used pure silicon, pure carbon, pure germanium, binary SiC,
# and binary SiGe, but not binary GeC or ternary SiGeC. LAMMPS will
# generate an error if this file is used with any combination
# involving C and Ge, since there are no entries for the GeC
# interactions (Tersoff did not publish parameters for this
# cross-interaction.)
# format of a single entry (one or more lines):
# element 1, element 2, element 3,
# m, gamma, lambda3, c, d, costheta0, n, beta, lambda2, B, R, D, lambda1, A
# The original Tersoff potential for Silicon, Si(B)
# J. Tersoff, PRB, 37, 6991 (1988)
Si(B) Si(B) Si(B) 3.0 1.0 1.3258 4.8381 2.0417 0.0000 22.956
0.33675 1.3258 95.373 3.0 0.2 3.2394 3264.7
# The later Tersoff potential for Silicon, Si(C)
# J. Tersoff, PRB, 38, 9902 (1988)
Si(C) Si(C) Si(C) 3.0 1.0 1.7322 1.0039e5 16.218 -0.59826 0.78734
1.0999e-6 1.7322 471.18 2.85 0.15 2.4799 1830.8
# The later Tersoff potential for Carbon, Silicon, and Germanium
# J. Tersoff, PRB, 39, 5566 (1989) + errata (PRB 41, 3248)
# The Si and C parameters are very close to those in SiC.tersoff
C C C 3.0 1.0 0.0 3.8049e4 4.3484 -0.57058 0.72751 1.5724e-7 2.2119 346.74 1.95 0.15 3.4879 1393.6
Si(D) Si(D) Si(D) 3.0 1.0 0.0 1.0039e5 16.217 -0.59825 0.78734 1.1000e-6 1.7322 471.18 2.85 0.15 2.4799 1830.8
Ge Ge Ge 3.0 1.0 0.0 1.0643e5 15.652 -0.43884 0.75627 9.0166e-7 1.7047 419.23 2.95 0.15 2.4451 1769.0
C Si(D) Si(D) 3.0 1.0 0.0 3.8049e4 4.3484 -0.57058 0.72751 1.5724e-7 1.97205 395.1451 2.3573 0.1527 2.9839 1597.3111
C Si(D) C 3.0 1.0 0.0 3.8049e4 4.3484 -0.57058 0.72751 0.0 0.0 0.0 1.95 0.15 0.0 0.0
C C Si(D) 3.0 1.0 0.0 3.8049e4 4.3484 -0.57058 0.72751 0.0 0.0 0.0 2.3573 0.1527 0.0 0.0
Si(D) C C 3.0 1.0 0.0 1.0039e5 16.217 -0.59825 0.78734 1.1000e-6 1.97205 395.1451 2.3573 0.1527 2.9839 1597.3111
Si(D) Si(D) C 3.0 1.0 0.0 1.0039e5 16.217 -0.59825 0.78734 0.0 0.0 0.0 2.3573 0.1527 0.0 0.0
Si(D) C Si(D) 3.0 1.0 0.0 1.0039e5 16.217 -0.59825 0.78734 0.0 0.0 0.0 2.85 0.15 0.0 0.0
Si(D) Ge Ge 3.0 1.0 0.0 1.0039e5 16.217 -0.59825 0.78734 1.1000e-6 1.71845 444.7177 2.8996 0.1500 2.4625 1799.6347
Si(D) Si(D) Ge 3.0 1.0 0.0 1.0039e5 16.217 -0.59825 0.78734 0.0 0.0 0.0 2.8996 0.1500 0.0 0.0
Si(D) Ge Si(D) 3.0 1.0 0.0 1.0039e5 16.217 -0.59825 0.78734 0.0 0.0 0.0 2.85 0.15 0.0 0.0
Ge Si(D) Si(D) 3.0 1.0 0.0 1.0643e5 15.652 -0.43884 0.75627 9.0166e-7 1.71845 444.7177 2.8996 0.1500 2.4625 1799.6347
Ge Si(D) Ge 3.0 1.0 0.0 1.0643e5 15.652 -0.43884 0.75627 0.0 0.0 0.0 2.95 0.15 0.0 0.0
Ge Ge Si(D) 3.0 1.0 0.0 1.0643e5 15.652 -0.43884 0.75627 0.0 0.0 0.0 2.8996 0.1500 0.0 0.0
# Optimized Tersoff for Carbon: Lindsay and Broido PRB 81, 205441 (2010)
# element 1, element 2, element 3,
# m, gamma, lambda3, c, d, costheta0, n, beta, lambda2, B, R, D, lambda1, A
C(O) C(O) C(O) 3.0 1.0 0.0 3.8049e4 4.3484 -0.930 0.72751 1.5724e-7 2.2119 430.0 1.95 0.15 3.4879 1393.6

View File

@ -0,0 +1 @@
../../../../../potentials/SiCGe.tersoff

View File

@ -16,4 +16,4 @@ mass ${Si} 28.08550
###########################
pair_style tersoff
pair_coeff * * Si.opt.tersoff Si(D)
pair_coeff * * SiCGe.tersoff Si(D)

View File

@ -1,192 +1,192 @@
5409.83472486 3.05075234 0.00000214
-1277.48270695 -863.24917964 -862.95613831
-193.14095266 0.11071645 0.00000015
-1277.48270619 -863.24917934 862.95613793
-193.17613831 0.34066975 -0.00000031
-1276.01088244 861.54715125 -861.62537402
83.46959051 -0.09801326 0.00000000
-1276.01088167 861.54715064 861.62537387
3.05073556 5409.83419867 0.00000137
-863.13224993 -1277.34160622 -862.92133430
0.12865796 -193.14095472 -0.00000023
-863.13224825 -1277.34160485 862.92133392
-0.23661028 83.46934214 -0.00000046
861.66402909 -1276.15172701 861.66024333
-0.00634065 -193.17585981 -0.00000015
861.66402909 -1276.15172686 -861.66024394
0.00000031 0.00000031 5410.11037330
-862.89766079 -862.97973912 -1277.71823542
0.00000000 -0.00000008 83.84059083
862.89766018 862.97973851 -1277.71823557
0.00000015 0.00000015 -193.17558390
-861.60900269 861.52691291 -1276.08157137
-0.00000015 -0.00000031 -193.17573821
861.60900330 -861.52691284 -1276.08157236
-1277.48271824 -863.13225435 -862.89768596
5409.83567916 3.04882502 2.82007861
-1277.34161080 -863.24919475 862.97975804
-193.14089260 0.11950100 0.11994134
-1277.52243157 863.24943259 -863.11331046
-193.17597070 0.16713301 -0.02106496
-1274.64156872 859.96385388 860.17328202
83.46945758 -0.16730525 -0.06100253
-863.24919444 -1277.34161103 -862.97975804
3.04882666 5409.83567944 -2.82007731
-863.13225496 -1277.48271916 862.89768688
0.11950094 -193.14089255 -0.11994043
863.24943320 -1277.52243118 863.11331076
-0.16730522 83.46945778 0.06100314
859.96385365 -1274.64156819 -860.17328225
0.16713979 -193.17596607 0.02106008
-862.95611199 -862.92132598 -1277.71824411
2.82004085 -2.82004013 5410.11000835
862.92132743 862.95611344 -1277.71824587
-0.11994722 0.11994786 83.84083834
-862.88110757 862.88110699 -1277.34764097
0.02099713 0.06108924 -193.17561785
860.25587487 -860.25587502 -1274.81548840
-0.06108897 -0.02099687 -193.17561808
-193.14095465 0.12865765 0.00000015
-1277.34160508 -863.13224794 862.92133361
5409.83419867 3.05073968 0.00000092
-1277.34160584 -863.13224924 -862.92133483
83.46934214 -0.23660998 -0.00000076
-1276.15172724 861.66402917 861.66024325
-193.17585988 -0.00634042 -0.00000031
-1276.15172694 861.66402940 -861.66024325
0.11071645 -193.14095243 0.00000046
-863.24917949 -1277.48270718 862.95613831
3.05075524 5409.83472478 -0.00000046
-863.24918117 -1277.48270825 -862.95613923
0.34066922 -193.17613823 0.00000046
861.54715094 -1276.01088228 -861.62537295
-0.09801303 83.46959035 0.00000015
861.54713538 -1276.01088145 861.62537387
-0.00000046 -0.00000023 83.84059068
862.97973867 862.89766010 -1277.71823633
-0.00000214 -0.00000053 5410.11037574
-862.97973943 -862.89766079 -1277.71823633
0.00000015 0.00000008 -193.17558374
861.52691291 -861.60900269 -1276.08157198
-0.00000015 -0.00000015 -193.17573814
-861.52691368 861.60900261 -1276.08157243
-1277.48271855 -863.13225405 -862.89768612
-193.14095469 0.12865732 0.00000061
-1277.48271786 -863.13225450 862.89768520
-193.14089232 0.11950085 -0.11994115
-1277.34161255 -863.24919673 -862.97975957
5409.83568051 3.04882517 -2.82007644
-1277.52243110 863.24943259 863.11330990
83.46945732 -0.16730494 0.06100319
-1274.64156796 859.96385342 -860.17328103
-193.17597041 0.16713331 0.02106477
-863.24919482 -1277.34161057 862.97975774
0.11950077 -193.14089270 0.11994160
-863.13225473 -1277.48271839 -862.89768673
3.04882502 5409.83568081 2.82007903
863.24943084 -1277.52242966 -863.11330868
0.16713324 -193.17597064 -0.02106522
859.96385510 -1274.64156926 860.17328255
-0.16730411 83.46945641 -0.06100350
862.95611161 862.92132537 -1277.71824365
0.11994725 -0.11994740 83.84083859
-862.92132606 -862.95611207 -1277.71824548
-2.82003936 2.82004013 5410.11000806
862.88110509 -862.88110547 -1277.34764015
0.06108893 0.02099703 -193.17561792
-860.25587388 860.25587441 -1274.81548916
-0.02099726 -0.06108878 -193.17561777
-193.17613465 -0.23660693 0.00000015
-1277.52241409 863.24943328 -862.88111478
83.46934549 0.34066334 -0.00000015
-1277.52241425 863.24943335 862.88111508
5404.58897235 -9.71806749 0.00000015
-1273.31333522 -858.38273960 -858.96245956
-193.21062369 -0.11938368 0.00000000
-1273.31333598 -858.38273967 858.96245926
0.34066342 83.46934572 0.00000015
863.24943335 -1277.52241402 862.88111478
-0.23660723 -193.17613480 -0.00000046
863.24943320 -1277.52241425 -862.88111432
-9.71806582 5404.58897135 -0.00000183
-858.38273891 -1273.31333552 -858.96245926
-0.11938338 -193.21062369 0.00000000
-858.38273937 -1273.31333598 858.96245987
-0.00000031 -0.00000008 -193.17559595
-863.11328229 863.11328297 -1277.34763999
0.00000000 -0.00000015 -193.17559595
863.11328305 -863.11328282 -1277.34763984
0.00000122 -0.00000259 5404.30470550
-858.80486827 -858.80486866 -1273.17865241
-0.00000031 0.00000000 83.09905870
858.80486827 858.80486812 -1273.17865272
-193.17613450 -0.23660702 0.00000031
-1276.01089136 861.66402482 -861.60900483
-193.17596134 -0.16730494 0.02099535
-1276.15175745 861.54714988 861.52691337
83.46947097 0.16714109 0.06108436
-1273.31334651 -858.38273311 -858.80488185
5404.58493608 -3.04507687 -2.81778617
-1276.19187193 -861.66399965 861.74280750
-193.21058304 -0.11920641 -0.12012575
861.54714972 -1276.15175730 861.52691337
0.16714140 83.46947120 0.06108451
861.66402345 -1276.01089022 -861.60900330
-0.16730487 -193.17596164 0.02099489
-858.38273281 -1273.31334681 -858.80488063
-3.04507603 5404.58493554 -2.81778617
-861.66400079 -1276.19187270 861.74280887
-0.11920511 -193.21058281 -0.12012498
-861.62536929 861.66025668 -1276.08157121
-0.02106026 0.06099877 -193.17561197
861.66025752 -861.62537051 -1276.08157274
0.06099923 -0.02106049 -193.17561227
-858.96244980 -858.96244965 -1273.17866523
-2.81780608 -2.81780615 5404.30474272
861.58531232 861.58531248 -1275.71087663
0.12013467 0.12013460 83.09915619
83.46958166 -0.00634218 -0.00000023
-1274.64157002 859.96383191 860.25587098
-193.17585332 -0.09802844 0.00000023
-1274.64157155 859.96383290 -860.25587243
-193.21062064 -0.11939070 -0.00000008
-1276.19189573 -861.66398638 861.58531118
5404.58377546 3.62403097 0.00000015
-1276.19189558 -861.66398615 -861.58531103
-0.09802859 -193.17585355 -0.00000015
859.96383206 -1274.64156979 -860.25587113
-0.00634187 83.46958204 -0.00000008
859.96383282 -1274.64157132 860.25587212
-0.11939055 -193.21062041 0.00000000
-861.66398576 -1276.19189528 861.58531087
3.62402982 5404.58377698 -0.00000076
-861.66398927 -1276.19189772 -861.58531331
0.00000000 0.00000000 -193.17573654
860.17327676 -860.17327637 -1274.81551212
0.00000031 0.00000023 -193.17573676
-860.17327615 860.17327645 -1274.81551258
0.00000000 0.00000015 83.09907327
861.74281299 861.74281299 -1275.71086763
-0.00000046 -0.00000015 5404.30514861
-861.74281406 -861.74281421 -1275.71086938
83.46958227 -0.00634221 -0.00000026
-1276.01088968 861.66402284 861.60900330
83.46947136 0.16714109 -0.06108436
-1276.15175722 861.54714957 -861.52691391
-193.17596141 -0.16730510 -0.02099527
-1273.31334666 -858.38273281 858.80488124
-193.21058304 -0.11920641 0.12012636
-1276.19187285 -861.66400087 -861.74280773
5404.58493638 -3.04507565 2.81778602
3.05073556 5409.83419867 0.00000137
-863.24919414 -1277.34161118 -862.97975804
0.11071644 -193.14095221 0.00000015
-863.24919482 -1277.34161057 862.97975774
0.34066372 83.46934579 0.00000015
861.54714972 -1276.15175730 861.52691337
-0.09802844 -193.17585342 -0.00000005
861.54715133 -1276.15175913 -861.52691490
-0.16730502 -193.17596118 -0.02099497
861.66402314 -1276.01088976 861.60900383
0.16714125 83.46947151 -0.06108497
-858.38273296 -1273.31334681 858.80488139
-0.11920686 -193.21058311 0.12012605
-861.66400079 -1276.19187255 -861.74280811
-3.04506703 5404.58493432 2.81779319
0.00000031 0.00000031 5410.11037330
-862.95611222 -862.92132598 -1277.71824426
-0.00000027 -0.00000023 83.84059068
862.95611161 862.92132537 -1277.71824365
-0.00000015 0.00000006 -193.17559671
-861.62536929 861.66025668 -1276.08157121
0.00000031 -0.00000000 -193.17573662
861.62536952 -861.66025637 -1276.08157175
-1277.48270695 -863.24917964 -862.95613831
5409.83567791 3.04882503 2.82007909
-1277.34160500 -863.13224794 862.92133361
-193.14089232 0.11950085 -0.11994115
-1277.52241409 863.24943335 -862.88111478
-193.17596134 -0.16730494 0.02099535
-1274.64156987 859.96383191 860.25587098
83.46947136 0.16714109 -0.06108436
-863.13224993 -1277.34160622 -862.92133430
3.04882664 5409.83567981 -2.82007772
-863.24917934 -1277.48270718 862.95613862
0.11950077 -193.14089270 0.11994160
863.24943366 -1277.52241409 862.88111478
0.16714140 83.46947120 0.06108451
859.96383191 -1274.64156979 -860.25587113
-0.16730502 -193.17596118 -0.02099497
-862.89766079 -862.97973912 -1277.71823542
2.82004053 -2.82003977 5410.11000766
862.97973867 862.89766003 -1277.71823633
0.11994725 -0.11994740 83.84083859
-863.11328229 863.11328297 -1277.34763999
-0.02106026 0.06099877 -193.17561197
860.17327676 -860.17327637 -1274.81551212
-0.06099938 0.02106080 -193.17561235
-861.66025645 861.62536929 -1276.08157213
0.02106049 -0.06099862 -193.17561189
858.96245049 858.96245041 -1273.17866553
-0.12013444 -0.12013475 83.09915550
-193.14095266 0.11071661 0.00000023
-1277.34161164 -863.24919490 862.97975758
5409.83419895 3.05073908 0.00000031
-1277.34161248 -863.24919704 -862.97976018
83.46934641 0.34066377 0.00000031
-1276.15175798 861.54714988 861.52691307
-193.17585317 -0.09802854 0.00000018
-1276.15175745 861.54714957 -861.52691314
0.12865765 -193.14095472 0.00000000
-863.13225527 -1277.48271931 862.89768673
3.05075511 5409.83472469 -0.00000046
-863.13225489 -1277.48271839 -862.89768612
-0.23660723 -193.17613471 0.00000061
861.66402345 -1276.01089068 -861.60900391
-0.00634202 83.46958197 0.00000012
861.66402314 -1276.01088961 861.60900353
-0.00000015 -0.00000015 83.84059098
862.92132797 862.95611360 -1277.71824533
-0.00000145 -0.00000137 5410.11037498
-862.92132598 -862.95611222 -1277.71824426
-0.00000031 -0.00000009 -193.17559671
861.66025660 -861.62536929 -1276.08157182
0.00000015 0.00000014 -193.17573668
-861.66025615 861.62536929 -1276.08157190
-1277.48270619 -863.24917934 862.95613793
-193.14089264 0.11950070 0.11994149
-1277.34160589 -863.13224892 -862.92133438
5409.83568112 3.04882502 -2.82007598
-1277.52241409 863.24943313 862.88111386
83.46947128 0.16714155 0.06108420
-1274.64157216 859.96383297 -860.25587243
-193.17596164 -0.16730510 -0.02099535
-863.13224825 -1277.34160470 862.92133392
0.11950069 -193.14089248 -0.11994088
-863.24918118 -1277.48270824 -862.95613907
3.04882479 5409.83568081 2.82007857
863.24943366 -1277.52241409 -862.88111386
-0.16730494 -193.17596164 0.02099504
859.96383191 -1274.64157155 860.25587228
0.16714109 83.46947120 -0.06108481
862.89766018 862.97973836 -1277.71823542
-0.11994717 0.11994762 83.84083846
-862.97973940 -862.89766100 -1277.71823603
-2.82004089 2.82004165 5410.11001111
863.11328534 -863.11328473 -1277.34764213
0.06099900 -0.02106019 -193.17561197
-860.17327706 860.17327752 -1274.81551319
0.02106049 -0.06099877 -193.17561212
-193.17613831 0.34066975 0.00000000
-1277.52243217 863.24943252 -863.11331043
83.46934255 -0.23660983 0.00000046
-1277.52243126 863.24943229 863.11330975
5404.58897296 -9.71806756 0.00000046
-1273.31334689 -858.38273326 -858.80488185
-193.21062125 -0.11939087 -0.00000018
-1273.31334666 -858.38273265 858.80488124
-0.23661028 83.46934221 -0.00000038
863.24943259 -1277.52243133 863.11331043
0.34066924 -193.17613846 -0.00000015
863.24943168 -1277.52243072 -863.11330883
-9.71806704 5404.58897205 -0.00000107
-858.38273265 -1273.31334697 -858.80488063
-0.11939101 -193.21062043 0.00000006
-858.38273296 -1273.31334681 858.80488139
0.00000015 0.00000000 -193.17558413
-862.88110730 862.88110699 -1277.34764060
-0.00000001 -0.00000001 -193.17558374
862.88110539 -862.88110516 -1277.34764030
0.00000122 -0.00000264 5404.30470473
-858.96244965 -858.96244934 -1273.17866523
-0.00000046 0.00000006 83.09907322
858.96245026 858.96245041 -1273.17866553
-1276.01088335 861.54715186 -861.62537494
-193.17596632 0.16713991 -0.02106865
-1276.15172701 861.66401376 861.66024356
83.46945641 -0.16730418 0.06100182
-1273.31333507 -858.38273911 -858.96245926
5404.58493280 -3.04507046 -2.81778113
-1276.19189558 -861.66398654 861.58531085
-193.21058250 -0.11920503 0.12012704
861.66401292 -1276.15172617 861.66024257
-0.16730418 83.46945627 0.06100192
861.54715110 -1276.01088167 -861.62537387
0.16713972 -193.17596591 -0.02106965
-858.38273891 -1273.31333542 -858.96245910
-3.04506741 5404.58493142 -2.81778205
-861.66398683 -1276.19189578 861.58531200
-0.11920541 -193.21058250 0.12012674
-861.60900269 861.52691291 -1276.08157152
0.02099737 0.06108917 -193.17561785
861.52691246 -861.60900299 -1276.08157243
0.06108909 0.02099718 -193.17561746
-858.80486827 -858.80486867 -1273.17865256
-2.81780745 -2.81780722 5404.30474364
861.74281375 861.74281365 -1275.71086885
-0.12013460 -0.12013475 83.09915550
83.46959035 -0.09801326 0.00000000
-1274.64156874 859.96385402 860.17328225
-193.17585994 -0.00634034 0.00000031
-1274.64156789 859.96385357 -860.17328072
-193.21062369 -0.11938345 0.00000015
-1276.19187300 -861.66400056 861.74280857
5404.58377637 3.62403189 -0.00000071
-1276.19187285 -861.66400087 -861.74280780
-0.00634065 -193.17585981 -0.00000015
859.96385345 -1274.64156845 -860.17328227
-0.09801307 83.46959066 0.00000092
859.96385342 -1274.64156728 860.17328103
-0.11938399 -193.21062370 0.00000031
-861.66399988 -1276.19187163 861.74280780
3.62403013 5404.58377402 0.00000142
-861.66400079 -1276.19187255 -861.74280803
-0.00000031 -0.00000038 -193.17573821
860.25587448 -860.25587441 -1274.81548871
0.00000000 -0.00000026 -193.17573875
-860.25587388 860.25587456 -1274.81548916
0.00000015 -0.00000009 83.09905855
861.58531164 861.58531156 -1275.71087571
0.00000046 0.00000089 5404.30514766
-861.58531232 -861.58531217 -1275.71087655
2.81780737 2.81780753 5404.30474547
-1276.01088198 861.54713523 861.62537356
83.46945674 -0.16730402 -0.06100344
-1276.15172688 861.66402939 -861.66024402
-193.17596584 0.16713972 0.02106034
-1273.31333552 -858.38273940 858.96245956
-193.21058227 -0.11920503 -0.12012498
-1276.19189573 -861.66398605 -861.58531085
5404.58493188 -3.04506924 2.81779059
861.66402925 -1276.15172686 -861.66024394
0.16713982 -193.17596610 0.02106041
861.54713537 -1276.01088130 861.62537448
-0.16730426 83.46945625 -0.06100350
-858.38273967 -1273.31333570 858.96245987
-0.11920511 -193.21058281 -0.12012514
-861.66398958 -1276.19189780 -861.58531314
-3.04506687 5404.58493417 2.81779303
861.60900299 -861.52691253 -1276.08157236
-0.06108885 -0.02099714 -193.17561830
-861.52691343 861.60900260 -1276.08157198
-0.02099726 -0.06108848 -193.17561792
858.80486782 858.80486829 -1273.17865256
0.12013467 0.12013460 83.09915604
-861.74281406 -861.74281426 -1275.71086942
2.81780737 2.81780737 5404.30474524

View File

@ -1,7 +1,7 @@
LAMMPS (16 Jul 2018)
LAMMPS (15 Jun 2020)
Reading data file ...
orthogonal box = (0 0 0) to (5.431 5.431 5.431)
1 by 2 by 2 MPI processor grid
orthogonal box = (0.0 0.0 0.0) to (5.431 5.431 5.431)
1 by 1 by 1 MPI processor grid
reading atoms ...
8 atoms
Finding 1-2 1-3 1-4 neighbors ...
@ -11,6 +11,9 @@ Finding 1-2 1-3 1-4 neighbors ...
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 4.2e-05 secs
read_data CPU = 0.002 secs
Reading potential file ../../../../../potentials/SiCGe.tersoff with DATE: 2009-03-18
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
@ -23,36 +26,40 @@ Neighbor list info ...
pair build: full/bin
stencil: full/bin/3d
bin: standard
Calculating Dynamical Matrix...
Dynamical Matrix calculation took 0.001183 seconds
Calculating Dynamical Matrix ...
Total # of atoms = 8
Atoms in group = 8
Total dynamical matrix elements = 576
10% 20% 30% 50% 60% 70% 80%
Finished Calculating Dynamical Matrix
Loop time of 1.22396e+06 on 4 procs for 0 steps with 8 atoms
Loop time of 0.000775099 on 1 procs for 48 steps with 8 atoms
0.0% CPU use with 4 MPI tasks x no OpenMP threads
Performance: 5350.544 ns/day, 0.004 hours/ns, 61927.589 timesteps/s
91.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.00016781 | 0.00041345 | 0.00051464 | 0.0 | 0.00
Bond | 1.9255e-06 | 2.1775e-06 | 2.4787e-06 | 0.0 | 0.00
Pair | 0.00074148 | 0.00074148 | 0.00074148 | 0.0 | 95.66
Bond | 3.8147e-06 | 3.8147e-06 | 3.8147e-06 | 0.0 | 0.49
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00056143 | 0.00066602 | 0.00090865 | 0.0 | 0.00
Comm | 7.8678e-06 | 7.8678e-06 | 7.8678e-06 | 0.0 | 1.02
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.224e+06 | | |100.00
Modify | 9.5367e-07 | 9.5367e-07 | 9.5367e-07 | 0.0 | 0.12
Other | | 2.098e-05 | | | 2.71
Nlocal: 2 ave 3 max 1 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Nghost: 56 ave 57 max 55 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Nlocal: 8 ave 8 max 8 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 86 ave 86 max 86 min
Histogram: 1 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: 32 ave 48 max 16 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 128
Ave neighs/atom = 16
Ave special neighs/atom = 0
Neighbor list builds = 0
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1 @@
../../../../../potentials/SiCGe.tersoff

View File

@ -38,5 +38,5 @@ dynmat = dynmat.reshape((dynlen, dynlen))
eigvals, eigvecs = np.linalg.eig(dynmat)
# frequencies in THz
omegas = np.sqrt(np.abs(eigvals))
omegas = np.sqrt(np.abs(eigvals))/2/np.pi
print(omegas)

View File

@ -0,0 +1 @@
../Silicon/ff-silicon.lmp

View File

@ -0,0 +1,192 @@
5409.83472486 3.05075234 0.00000214
-1277.48271855 -863.13225405 -862.89768612
-193.14095469 0.12865732 0.00000061
-1277.48271786 -863.13225450 862.89768520
-193.17613450 -0.23660702 0.00000031
-1276.01089136 861.66402482 -861.60900483
83.46958227 -0.00634221 -0.00000026
-1276.01088968 861.66402284 861.60900330
3.05073556 5409.83419867 0.00000137
-863.24919414 -1277.34161118 -862.97975804
0.11071644 -193.14095221 0.00000015
-863.24919482 -1277.34161057 862.97975774
0.34066372 83.46934579 0.00000015
861.54714972 -1276.15175730 861.52691337
-0.09802844 -193.17585342 -0.00000005
861.54715133 -1276.15175913 -861.52691490
0.00000031 0.00000031 5410.11037330
-862.95611222 -862.92132598 -1277.71824426
-0.00000027 -0.00000023 83.84059068
862.95611161 862.92132537 -1277.71824365
-0.00000015 0.00000006 -193.17559671
-861.62536929 861.66025668 -1276.08157121
0.00000031 -0.00000000 -193.17573662
861.62536952 -861.66025637 -1276.08157175
-1277.48270695 -863.24917964 -862.95613831
5409.83567791 3.04882503 2.82007909
-1277.34160500 -863.13224794 862.92133361
-193.14089232 0.11950085 -0.11994115
-1277.52241409 863.24943335 -862.88111478
-193.17596134 -0.16730494 0.02099535
-1274.64156987 859.96383191 860.25587098
83.46947136 0.16714109 -0.06108436
-863.13224993 -1277.34160622 -862.92133430
3.04882664 5409.83567981 -2.82007772
-863.24917934 -1277.48270718 862.95613862
0.11950077 -193.14089270 0.11994160
863.24943366 -1277.52241409 862.88111478
0.16714140 83.46947120 0.06108451
859.96383191 -1274.64156979 -860.25587113
-0.16730502 -193.17596118 -0.02099497
-862.89766079 -862.97973912 -1277.71823542
2.82004053 -2.82003977 5410.11000766
862.97973867 862.89766003 -1277.71823633
0.11994725 -0.11994740 83.84083859
-863.11328229 863.11328297 -1277.34763999
-0.02106026 0.06099877 -193.17561197
860.17327676 -860.17327637 -1274.81551212
-0.06099938 0.02106080 -193.17561235
-193.14095266 0.11071661 0.00000023
-1277.34161164 -863.24919490 862.97975758
5409.83419895 3.05073908 0.00000031
-1277.34161248 -863.24919704 -862.97976018
83.46934641 0.34066377 0.00000031
-1276.15175798 861.54714988 861.52691307
-193.17585317 -0.09802854 0.00000018
-1276.15175745 861.54714957 -861.52691314
0.12865765 -193.14095472 0.00000000
-863.13225527 -1277.48271931 862.89768673
3.05075511 5409.83472469 -0.00000046
-863.13225489 -1277.48271839 -862.89768612
-0.23660723 -193.17613471 0.00000061
861.66402345 -1276.01089068 -861.60900391
-0.00634202 83.46958197 0.00000012
861.66402314 -1276.01088961 861.60900353
-0.00000015 -0.00000015 83.84059098
862.92132797 862.95611360 -1277.71824533
-0.00000145 -0.00000137 5410.11037498
-862.92132598 -862.95611222 -1277.71824426
-0.00000031 -0.00000009 -193.17559671
861.66025660 -861.62536929 -1276.08157182
0.00000015 0.00000014 -193.17573668
-861.66025615 861.62536929 -1276.08157190
-1277.48270619 -863.24917934 862.95613793
-193.14089264 0.11950070 0.11994149
-1277.34160589 -863.13224892 -862.92133438
5409.83568112 3.04882502 -2.82007598
-1277.52241409 863.24943313 862.88111386
83.46947128 0.16714155 0.06108420
-1274.64157216 859.96383297 -860.25587243
-193.17596164 -0.16730510 -0.02099535
-863.13224825 -1277.34160470 862.92133392
0.11950069 -193.14089248 -0.11994088
-863.24918118 -1277.48270824 -862.95613907
3.04882479 5409.83568081 2.82007857
863.24943366 -1277.52241409 -862.88111386
-0.16730494 -193.17596164 0.02099504
859.96383191 -1274.64157155 860.25587228
0.16714109 83.46947120 -0.06108481
862.89766018 862.97973836 -1277.71823542
-0.11994717 0.11994762 83.84083846
-862.97973940 -862.89766100 -1277.71823603
-2.82004089 2.82004165 5410.11001111
863.11328534 -863.11328473 -1277.34764213
0.06099900 -0.02106019 -193.17561197
-860.17327706 860.17327752 -1274.81551319
0.02106049 -0.06099877 -193.17561212
-193.17613831 0.34066975 0.00000000
-1277.52243217 863.24943252 -863.11331043
83.46934255 -0.23660983 0.00000046
-1277.52243126 863.24943229 863.11330975
5404.58897296 -9.71806756 0.00000046
-1273.31334689 -858.38273326 -858.80488185
-193.21062125 -0.11939087 -0.00000018
-1273.31334666 -858.38273265 858.80488124
-0.23661028 83.46934221 -0.00000038
863.24943259 -1277.52243133 863.11331043
0.34066924 -193.17613846 -0.00000015
863.24943168 -1277.52243072 -863.11330883
-9.71806704 5404.58897205 -0.00000107
-858.38273265 -1273.31334697 -858.80488063
-0.11939101 -193.21062043 0.00000006
-858.38273296 -1273.31334681 858.80488139
0.00000015 0.00000000 -193.17558413
-862.88110730 862.88110699 -1277.34764060
-0.00000001 -0.00000001 -193.17558374
862.88110539 -862.88110516 -1277.34764030
0.00000122 -0.00000264 5404.30470473
-858.96244965 -858.96244934 -1273.17866523
-0.00000046 0.00000006 83.09907322
858.96245026 858.96245041 -1273.17866553
-1276.01088335 861.54715186 -861.62537494
-193.17596632 0.16713991 -0.02106865
-1276.15172701 861.66401376 861.66024356
83.46945641 -0.16730418 0.06100182
-1273.31333507 -858.38273911 -858.96245926
5404.58493280 -3.04507046 -2.81778113
-1276.19189558 -861.66398654 861.58531085
-193.21058250 -0.11920503 0.12012704
861.66401292 -1276.15172617 861.66024257
-0.16730418 83.46945627 0.06100192
861.54715110 -1276.01088167 -861.62537387
0.16713972 -193.17596591 -0.02106965
-858.38273891 -1273.31333542 -858.96245910
-3.04506741 5404.58493142 -2.81778205
-861.66398683 -1276.19189578 861.58531200
-0.11920541 -193.21058250 0.12012674
-861.60900269 861.52691291 -1276.08157152
0.02099737 0.06108917 -193.17561785
861.52691246 -861.60900299 -1276.08157243
0.06108909 0.02099718 -193.17561746
-858.80486827 -858.80486867 -1273.17865256
-2.81780745 -2.81780722 5404.30474364
861.74281375 861.74281365 -1275.71086885
-0.12013460 -0.12013475 83.09915550
83.46959035 -0.09801326 0.00000000
-1274.64156874 859.96385402 860.17328225
-193.17585994 -0.00634034 0.00000031
-1274.64156789 859.96385357 -860.17328072
-193.21062369 -0.11938345 0.00000015
-1276.19187300 -861.66400056 861.74280857
5404.58377637 3.62403189 -0.00000071
-1276.19187285 -861.66400087 -861.74280780
-0.00634065 -193.17585981 -0.00000015
859.96385345 -1274.64156845 -860.17328227
-0.09801307 83.46959066 0.00000092
859.96385342 -1274.64156728 860.17328103
-0.11938399 -193.21062370 0.00000031
-861.66399988 -1276.19187163 861.74280780
3.62403013 5404.58377402 0.00000142
-861.66400079 -1276.19187255 -861.74280803
-0.00000031 -0.00000038 -193.17573821
860.25587448 -860.25587441 -1274.81548871
0.00000000 -0.00000026 -193.17573875
-860.25587388 860.25587456 -1274.81548916
0.00000015 -0.00000009 83.09905855
861.58531164 861.58531156 -1275.71087571
0.00000046 0.00000089 5404.30514766
-861.58531232 -861.58531217 -1275.71087655
-1276.01088198 861.54713523 861.62537356
83.46945674 -0.16730402 -0.06100344
-1276.15172688 861.66402939 -861.66024402
-193.17596584 0.16713972 0.02106034
-1273.31333552 -858.38273940 858.96245956
-193.21058227 -0.11920503 -0.12012498
-1276.19189573 -861.66398605 -861.58531085
5404.58493188 -3.04506924 2.81779059
861.66402925 -1276.15172686 -861.66024394
0.16713982 -193.17596610 0.02106041
861.54713537 -1276.01088130 861.62537448
-0.16730426 83.46945625 -0.06100350
-858.38273967 -1273.31333570 858.96245987
-0.11920511 -193.21058281 -0.12012514
-861.66398958 -1276.19189780 -861.58531314
-3.04506687 5404.58493417 2.81779303
861.60900299 -861.52691253 -1276.08157236
-0.06108885 -0.02099714 -193.17561830
-861.52691343 861.60900260 -1276.08157198
-0.02099726 -0.06108848 -193.17561792
858.80486782 858.80486829 -1273.17865256
0.12013467 0.12013460 83.09915604
-861.74281406 -861.74281426 -1275.71086942
2.81780737 2.81780737 5404.30474524

View File

@ -0,0 +1,71 @@
LAMMPS (15 Jun 2020)
Reading data file ...
orthogonal box = (0.0 0.0 0.0) to (5.431 5.431 5.431)
1 by 1 by 1 MPI processor grid
reading atoms ...
8 atoms
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 4.2e-05 secs
read_data CPU = 0.001 secs
Reading potential file ../../../../../potentials/SiCGe.tersoff with DATE: 2009-03-18
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4
ghost atom cutoff = 4
binsize = 2, bins = 3 3 3
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair tersoff, perpetual
attributes: full, newton on
pair build: full/bin
stencil: full/bin/3d
bin: standard
Calculating Dynamical Matrix ...
Total # of atoms = 8
Atoms in group = 8
Total dynamical matrix elements = 576
10% 20% 30% 50% 60% 70% 80%[3.34264870e-05 6.09176101e-05 1.72068597e-04 1.60807822e+01
1.60807027e+01 1.60806903e+01 1.48964054e+01 1.49012648e+01
1.49129598e+01 1.49081641e+01 1.48999471e+01 1.49095175e+01
1.21983946e+01 1.21957091e+01 1.22010862e+01 1.22037817e+01
1.22037910e+01 1.22037868e+01 6.89648276e+00 6.89524412e+00
6.89619622e+00 6.89553366e+00 6.89615471e+00 6.89557491e+00]
Finished Calculating Dynamical Matrix
Loop time of 0.000677109 on 1 procs for 48 steps with 8 atoms
Performance: 6124.865 ns/day, 0.004 hours/ns, 70889.645 timesteps/s
91.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.00064349 | 0.00064349 | 0.00064349 | 0.0 | 95.04
Bond | 9.5367e-07 | 9.5367e-07 | 9.5367e-07 | 0.0 | 0.14
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 1.1683e-05 | 1.1683e-05 | 1.1683e-05 | 0.0 | 1.73
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 9.5367e-07 | 9.5367e-07 | 9.5367e-07 | 0.0 | 0.14
Other | | 2.003e-05 | | | 2.96
Nlocal: 8 ave 8 max 8 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 86 ave 86 max 86 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: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 128
Ave neighs/atom = 16
Ave special neighs/atom = 0
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1 @@
../Silicon/silicon_input_file.lmp

View File

@ -0,0 +1 @@
../../potentials/InP_JCPA2020.mliap

View File

@ -0,0 +1 @@
../../potentials/InP_JCPA2020.mliap.descriptor

View File

@ -0,0 +1 @@
../../potentials/InP_JCPA2020.mliap.model

1
examples/mliap/Ta06A.mliap Symbolic link
View File

@ -0,0 +1 @@
../../potentials/Ta06A.mliap

View File

@ -0,0 +1 @@
../../potentials/Ta06A.mliap.descriptor

View File

@ -0,0 +1 @@
../../potentials/Ta06A.mliap.model

View File

@ -0,0 +1 @@
../../potentials/W.quadratic.mliap

View File

@ -0,0 +1 @@
../../potentials/W.quadratic.mliap.descriptor

View File

@ -0,0 +1 @@
../../potentials/W.quadratic.mliap.model

View File

@ -0,0 +1 @@
../../potentials/WBe_Wood_PRB2019.mliap

View File

@ -0,0 +1 @@
../../potentials/WBe_Wood_PRB2019.mliap.descriptor

View File

@ -0,0 +1 @@
../../potentials/WBe_Wood_PRB2019.mliap.model

View File

@ -0,0 +1,53 @@
# Demonstrate MLIAP interface to kinear SNAP 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 ny equal ${nrep}
variable nz equal ${nrep}
boundary p p p
lattice bcc $a
region box block 0 ${nx} 0 ${ny} 0 ${nz}
create_box 1 box
create_atoms 1 box
mass 1 180.88
# choose potential
include Ta06A.mliap
# Setup output
compute eatom all pe/atom
compute energy all reduce sum c_eatom
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol)
thermo_style custom step temp epair c_energy etotal press v_press
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}

View File

@ -0,0 +1,56 @@
# Demonstrate MLIAP interface to SNAP W-Be potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.1803
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
lattice bcc $a
region box block 0 ${nx} 0 ${ny} 0 ${nz}
create_box 2 box
create_atoms 1 box
mass 1 183.84
mass 2 9.012182
set group all type/fraction 2 0.05 3590153 # Change 5% of W to He
group tungsten type 1
group beryllium type 2
# choose potential
include WBe_Wood_PRB2019.mliap
# Setup output
compute eatom all pe/atom
compute energy all reduce sum c_eatom
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol)
thermo_style custom step temp epair c_energy etotal press v_press
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}

View File

@ -0,0 +1,46 @@
# Demonstrate MLIAP interface to ChemSNAP potential
# 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 ny equal ${nrep}
variable nz equal ${nrep}
boundary p p p
lattice diamond $a
region box block 0 ${nx} 0 ${ny} 0 ${nz}
create_box 2 box
create_atoms 1 box basis 5 2 basis 6 2 basis 7 2 basis 8 2
mass 1 114.76
mass 2 30.98
# choose potential
include InP_JCPA2020.mliap
# 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}

View File

@ -0,0 +1,55 @@
# Demonstrate MLIAP interface to quadratic SNAP potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.1803
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
lattice bcc $a
region box block 0 ${nx} 0 ${ny} 0 ${nz}
create_box 1 box
create_atoms 1 box
displace_atoms all random 0.01 0.01 0.01 12345
mass 1 183.84
# choose potential
include W.quadratic.mliap
# Setup output
compute eatom all pe/atom
compute energy all reduce sum c_eatom
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol)
thermo_style custom step temp epair c_energy etotal press v_press
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 no
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}

View File

@ -0,0 +1,156 @@
LAMMPS (15 Jun 2020)
# Demonstrate MLIAP interface to kinear SNAP 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.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
create_atoms CPU = 0.000 seconds
mass 1 180.88
# choose potential
include Ta06A.mliap
# DATE: 2014-09-05 UNITS: metal CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: Thompson, Swiler, Trott, Foiles and Tucker, arxiv.org, 1409.3880 (2014)
# Definition of SNAP potential Ta_Cand06A
# Assumes 1 LAMMPS atom type
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 73
# Specify hybrid with SNAP, ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} mliap model linear Ta06A.mliap.model descriptor sna Ta06A.mliap.descriptor
pair_style hybrid/overlay zbl 4 ${zblcutouter} mliap model linear Ta06A.mliap.model descriptor sna Ta06A.mliap.descriptor
pair_style hybrid/overlay zbl 4 4.8 mliap model linear Ta06A.mliap.model descriptor sna Ta06A.mliap.descriptor
Reading potential file Ta06A.mliap.model with DATE: 2014-09-05
Reading potential file Ta06A.mliap.descriptor with DATE: 2014-09-05
SNAP keyword rcutfac 4.67637
SNAP keyword twojmax 6
SNAP keyword nelems 1
SNAP keyword elems Ta
SNAP keyword radelems 0.5
SNAP keyword welems 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword bzeroflag 0
pair_coeff 1 1 zbl ${zblz} ${zblz}
pair_coeff 1 1 zbl 73 ${zblz}
pair_coeff 1 1 zbl 73 73
pair_coeff * * mliap Ta
# Setup output
compute eatom all pe/atom
compute energy all reduce sum c_eatom
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol)
thermo_style custom step temp epair c_energy etotal press v_press
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 = 5.8
ghost atom cutoff = 5.8
binsize = 2.9, bins = 5 5 5
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair mliap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.592 | 6.592 | 6.592 Mbytes
Step Temp E_pair c_energy TotEng Press v_press
0 300 -11.85157 -11.85157 -11.813095 2717.1661 -2717.1661
10 296.01467 -11.851059 -11.851059 -11.813095 2697.4796 -2697.4796
20 284.53666 -11.849587 -11.849587 -11.813095 2289.1527 -2289.1527
30 266.51577 -11.847275 -11.847275 -11.813095 1851.7131 -1851.7131
40 243.05007 -11.844266 -11.844266 -11.813095 1570.684 -1570.684
50 215.51032 -11.840734 -11.840734 -11.813094 1468.1899 -1468.1899
60 185.48331 -11.836883 -11.836883 -11.813094 1524.8757 -1524.8757
70 154.6736 -11.832931 -11.832931 -11.813094 1698.3351 -1698.3351
80 124.79303 -11.829099 -11.829099 -11.813094 1947.0715 -1947.0715
90 97.448054 -11.825592 -11.825592 -11.813094 2231.9563 -2231.9563
100 74.035418 -11.822589 -11.822589 -11.813094 2515.8526 -2515.8526
Loop time of 0.931876 on 1 procs for 100 steps with 128 atoms
Performance: 4.636 ns/day, 5.177 hours/ns, 107.310 timesteps/s
99.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.93067 | 0.93067 | 0.93067 | 0.0 | 99.87
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.000377 | 0.000377 | 0.000377 | 0.0 | 0.04
Output | 0.000467 | 0.000467 | 0.000467 | 0.0 | 0.05
Modify | 0.000162 | 0.000162 | 0.000162 | 0.0 | 0.02
Other | | 0.000196 | | | 0.02
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: 3712 ave 3712 max 3712 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,156 @@
LAMMPS (15 Jun 2020)
# Demonstrate MLIAP interface to kinear SNAP 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.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
create_atoms CPU = 0.000 seconds
mass 1 180.88
# choose potential
include Ta06A.mliap
# DATE: 2014-09-05 UNITS: metal CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: Thompson, Swiler, Trott, Foiles and Tucker, arxiv.org, 1409.3880 (2014)
# Definition of SNAP potential Ta_Cand06A
# Assumes 1 LAMMPS atom type
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 73
# Specify hybrid with SNAP, ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} mliap model linear Ta06A.mliap.model descriptor sna Ta06A.mliap.descriptor
pair_style hybrid/overlay zbl 4 ${zblcutouter} mliap model linear Ta06A.mliap.model descriptor sna Ta06A.mliap.descriptor
pair_style hybrid/overlay zbl 4 4.8 mliap model linear Ta06A.mliap.model descriptor sna Ta06A.mliap.descriptor
Reading potential file Ta06A.mliap.model with DATE: 2014-09-05
Reading potential file Ta06A.mliap.descriptor with DATE: 2014-09-05
SNAP keyword rcutfac 4.67637
SNAP keyword twojmax 6
SNAP keyword nelems 1
SNAP keyword elems Ta
SNAP keyword radelems 0.5
SNAP keyword welems 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword bzeroflag 0
pair_coeff 1 1 zbl ${zblz} ${zblz}
pair_coeff 1 1 zbl 73 ${zblz}
pair_coeff 1 1 zbl 73 73
pair_coeff * * mliap Ta
# Setup output
compute eatom all pe/atom
compute energy all reduce sum c_eatom
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol)
thermo_style custom step temp epair c_energy etotal press v_press
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 = 5.8
ghost atom cutoff = 5.8
binsize = 2.9, bins = 5 5 5
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair mliap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.528 | 6.528 | 6.528 Mbytes
Step Temp E_pair c_energy TotEng Press v_press
0 300 -11.85157 -11.85157 -11.813095 2717.1661 -2717.1661
10 296.01467 -11.851059 -11.851059 -11.813095 2697.4796 -2697.4796
20 284.53666 -11.849587 -11.849587 -11.813095 2289.1527 -2289.1527
30 266.51577 -11.847275 -11.847275 -11.813095 1851.7131 -1851.7131
40 243.05007 -11.844266 -11.844266 -11.813095 1570.684 -1570.684
50 215.51032 -11.840734 -11.840734 -11.813094 1468.1899 -1468.1899
60 185.48331 -11.836883 -11.836883 -11.813094 1524.8757 -1524.8757
70 154.6736 -11.832931 -11.832931 -11.813094 1698.3351 -1698.3351
80 124.79303 -11.829099 -11.829099 -11.813094 1947.0715 -1947.0715
90 97.448054 -11.825592 -11.825592 -11.813094 2231.9563 -2231.9563
100 74.035418 -11.822589 -11.822589 -11.813094 2515.8526 -2515.8526
Loop time of 0.256886 on 4 procs for 100 steps with 128 atoms
Performance: 16.817 ns/day, 1.427 hours/ns, 389.278 timesteps/s
99.6% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.24436 | 0.24636 | 0.25027 | 0.5 | 95.90
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.005652 | 0.0095395 | 0.01154 | 2.4 | 3.71
Output | 0.000472 | 0.0005085 | 0.000617 | 0.0 | 0.20
Modify | 6.2e-05 | 6.75e-05 | 7.3e-05 | 0.0 | 0.03
Other | | 0.0004105 | | | 0.16
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: 928 ave 928 max 928 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

@ -0,0 +1,165 @@
LAMMPS (15 Jun 2020)
# Demonstrate MLIAP interface to SNAP W-Be potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.1803
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.1803
Lattice spacing in x,y,z = 3.1803 3.1803 3.1803
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.0 0.0) to (12.7212 12.7212 12.7212)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
create_atoms CPU = 0.000 seconds
mass 1 183.84
mass 2 9.012182
set group all type/fraction 2 0.05 3590153 # Change 5% of W to He
5 settings made for type/fractiongroup tungsten type 1
123 atoms in group tungsten
group beryllium type 2
5 atoms in group beryllium
# choose potential
include WBe_Wood_PRB2019.mliap
# DATE: 2019-09-18 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Wood, M.A. Cusentino, B.D. Wirth, and A.P. Thompson, "Data-driven material models for atomistic simulation", Physical Review B 99, 184305 (2019)
# Definition of SNAP+ZBL potential.
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz1 equal 74
variable zblz2 equal 4
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} mliap model linear WBe_Wood_PRB2019.mliap.model descriptor sna WBe_Wood_PRB2019.mliap.descriptor
pair_style hybrid/overlay zbl 4 ${zblcutouter} mliap model linear WBe_Wood_PRB2019.mliap.model descriptor sna WBe_Wood_PRB2019.mliap.descriptor
pair_style hybrid/overlay zbl 4 4.8 mliap model linear WBe_Wood_PRB2019.mliap.model descriptor sna WBe_Wood_PRB2019.mliap.descriptor
Reading potential file WBe_Wood_PRB2019.mliap.model with DATE: 2019-09-18
Reading potential file WBe_Wood_PRB2019.mliap.descriptor with DATE: 2019-09-18
SNAP keyword rcutfac 4.8123
SNAP keyword twojmax 8
SNAP keyword nelems 2
SNAP keyword elems W
SNAP keyword radelems 0.5
SNAP keyword welems 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword bzeroflag 1
pair_coeff 1 1 zbl ${zblz1} ${zblz1}
pair_coeff 1 1 zbl 74 ${zblz1}
pair_coeff 1 1 zbl 74 74
pair_coeff 1 2 zbl ${zblz1} ${zblz2}
pair_coeff 1 2 zbl 74 ${zblz2}
pair_coeff 1 2 zbl 74 4
pair_coeff 2 2 zbl ${zblz2} ${zblz2}
pair_coeff 2 2 zbl 4 ${zblz2}
pair_coeff 2 2 zbl 4 4
pair_coeff * * mliap W Be
# Setup output
compute eatom all pe/atom
compute energy all reduce sum c_eatom
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol)
thermo_style custom step temp epair c_energy etotal press v_press
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 = 5.8123
ghost atom cutoff = 5.8123
binsize = 2.90615, bins = 5 5 5
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair mliap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.893 | 6.893 | 6.893 Mbytes
Step Temp E_pair c_energy TotEng Press v_press
0 300 -8.5980876 -8.5980876 -8.5596125 -35284.855 35284.855
10 296.32664 -8.5976164 -8.5976164 -8.5596124 -35188.339 35188.339
20 282.41417 -8.595832 -8.595832 -8.5596123 -34782.293 34782.293
30 259.69014 -8.5929175 -8.5929175 -8.5596121 -34113.316 34113.316
40 230.50415 -8.5891741 -8.5891741 -8.5596119 -33260.777 33260.777
50 197.88816 -8.5849908 -8.5849908 -8.5596116 -32309.975 32309.975
60 165.27259 -8.5808076 -8.5808076 -8.5596113 -31365.766 31365.766
70 136.15697 -8.5770733 -8.5770733 -8.5596111 -30542.657 30542.657
80 113.58947 -8.5741788 -8.5741788 -8.5596109 -29939.23 29939.23
90 99.477916 -8.572369 -8.572369 -8.5596109 -29619.939 29619.939
100 94.121939 -8.5716822 -8.5716822 -8.559611 -29598.002 29598.002
Loop time of 2.95019 on 1 procs for 100 steps with 128 atoms
Performance: 1.464 ns/day, 16.390 hours/ns, 33.896 timesteps/s
99.8% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.9486 | 2.9486 | 2.9486 | 0.0 | 99.95
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.000379 | 0.000379 | 0.000379 | 0.0 | 0.01
Output | 0.000633 | 0.000633 | 0.000633 | 0.0 | 0.02
Modify | 0.000207 | 0.000207 | 0.000207 | 0.0 | 0.01
Other | | 0.000341 | | | 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: 3712 ave 3712 max 3712 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:03

View File

@ -0,0 +1,165 @@
LAMMPS (15 Jun 2020)
# Demonstrate MLIAP interface to SNAP W-Be potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.1803
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.1803
Lattice spacing in x,y,z = 3.1803 3.1803 3.1803
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.0 0.0) to (12.7212 12.7212 12.7212)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
create_atoms CPU = 0.000 seconds
mass 1 183.84
mass 2 9.012182
set group all type/fraction 2 0.05 3590153 # Change 5% of W to He
5 settings made for type/fractiongroup tungsten type 1
123 atoms in group tungsten
group beryllium type 2
5 atoms in group beryllium
# choose potential
include WBe_Wood_PRB2019.mliap
# DATE: 2019-09-18 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Wood, M.A. Cusentino, B.D. Wirth, and A.P. Thompson, "Data-driven material models for atomistic simulation", Physical Review B 99, 184305 (2019)
# Definition of SNAP+ZBL potential.
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz1 equal 74
variable zblz2 equal 4
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} mliap model linear WBe_Wood_PRB2019.mliap.model descriptor sna WBe_Wood_PRB2019.mliap.descriptor
pair_style hybrid/overlay zbl 4 ${zblcutouter} mliap model linear WBe_Wood_PRB2019.mliap.model descriptor sna WBe_Wood_PRB2019.mliap.descriptor
pair_style hybrid/overlay zbl 4 4.8 mliap model linear WBe_Wood_PRB2019.mliap.model descriptor sna WBe_Wood_PRB2019.mliap.descriptor
Reading potential file WBe_Wood_PRB2019.mliap.model with DATE: 2019-09-18
Reading potential file WBe_Wood_PRB2019.mliap.descriptor with DATE: 2019-09-18
SNAP keyword rcutfac 4.8123
SNAP keyword twojmax 8
SNAP keyword nelems 2
SNAP keyword elems W
SNAP keyword radelems 0.5
SNAP keyword welems 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword bzeroflag 1
pair_coeff 1 1 zbl ${zblz1} ${zblz1}
pair_coeff 1 1 zbl 74 ${zblz1}
pair_coeff 1 1 zbl 74 74
pair_coeff 1 2 zbl ${zblz1} ${zblz2}
pair_coeff 1 2 zbl 74 ${zblz2}
pair_coeff 1 2 zbl 74 4
pair_coeff 2 2 zbl ${zblz2} ${zblz2}
pair_coeff 2 2 zbl 4 ${zblz2}
pair_coeff 2 2 zbl 4 4
pair_coeff * * mliap W Be
# Setup output
compute eatom all pe/atom
compute energy all reduce sum c_eatom
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol)
thermo_style custom step temp epair c_energy etotal press v_press
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 = 5.8123
ghost atom cutoff = 5.8123
binsize = 2.90615, bins = 5 5 5
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair mliap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.793 | 6.793 | 6.793 Mbytes
Step Temp E_pair c_energy TotEng Press v_press
0 300 -8.5980876 -8.5980876 -8.5596125 -35284.855 35284.855
10 296.32664 -8.5976164 -8.5976164 -8.5596124 -35188.339 35188.339
20 282.41417 -8.595832 -8.595832 -8.5596123 -34782.293 34782.293
30 259.69014 -8.5929175 -8.5929175 -8.5596121 -34113.316 34113.316
40 230.50415 -8.5891741 -8.5891741 -8.5596119 -33260.777 33260.777
50 197.88816 -8.5849908 -8.5849908 -8.5596116 -32309.975 32309.975
60 165.27259 -8.5808076 -8.5808076 -8.5596113 -31365.766 31365.766
70 136.15697 -8.5770733 -8.5770733 -8.5596111 -30542.657 30542.657
80 113.58947 -8.5741788 -8.5741788 -8.5596109 -29939.23 29939.23
90 99.477916 -8.572369 -8.572369 -8.5596109 -29619.939 29619.939
100 94.121939 -8.5716822 -8.5716822 -8.559611 -29598.002 29598.002
Loop time of 0.897476 on 4 procs for 100 steps with 128 atoms
Performance: 4.813 ns/day, 4.986 hours/ns, 111.424 timesteps/s
99.7% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.84854 | 0.85737 | 0.87512 | 1.1 | 95.53
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.021045 | 0.038782 | 0.047601 | 5.3 | 4.32
Output | 0.00061 | 0.0006525 | 0.000774 | 0.0 | 0.07
Modify | 0.00011 | 0.00011375 | 0.000117 | 0.0 | 0.01
Other | | 0.0005625 | | | 0.06
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: 928 ave 928 max 928 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

@ -0,0 +1,158 @@
LAMMPS (15 Jun 2020)
# Demonstrate MLIAP interface to ChemSNAP potential
# 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.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
create_atoms CPU = 0.000 seconds
mass 1 114.76
mass 2 30.98
# choose potential
include InP_JCPA2020.mliap
# DATE: 2020-06-01 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Cusentino, M. A. Wood, and A.P. Thompson, "Explicit Multi-element Extension of the Spectral Neighbor Analysis Potential for Chemically Complex Systems", J. Phys. Chem. A, xxxxxx (2020)
# Definition of SNAP+ZBL potential.
variable zblcutinner index 4
variable zblcutouter index 4.2
variable zblz1 index 49
variable zblz2 index 15
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} mliap model linear InP_JCPA2020.mliap.model descriptor sna InP_JCPA2020.mliap.descriptor
pair_style hybrid/overlay zbl 4 ${zblcutouter} mliap model linear InP_JCPA2020.mliap.model descriptor sna InP_JCPA2020.mliap.descriptor
pair_style hybrid/overlay zbl 4 4.2 mliap model linear InP_JCPA2020.mliap.model descriptor sna InP_JCPA2020.mliap.descriptor
Reading potential file InP_JCPA2020.mliap.model with DATE: 2020-06-01
Reading potential file InP_JCPA2020.mliap.descriptor with DATE: 2020-06-01
SNAP keyword rcutfac 1.0
SNAP keyword twojmax 6
SNAP keyword nelems 2
SNAP keyword elems In
SNAP keyword radelems 3.81205
SNAP keyword welems 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0.0
SNAP keyword bzeroflag 1
SNAP keyword wselfallflag 1
SNAP keyword chemflag 1
SNAP keyword bnormflag 1
pair_coeff 1 1 zbl ${zblz1} ${zblz1}
pair_coeff 1 1 zbl 49 ${zblz1}
pair_coeff 1 1 zbl 49 49
pair_coeff 1 2 zbl ${zblz1} ${zblz2}
pair_coeff 1 2 zbl 49 ${zblz2}
pair_coeff 1 2 zbl 49 15
pair_coeff 2 2 zbl ${zblz2} ${zblz2}
pair_coeff 2 2 zbl 15 ${zblz2}
pair_coeff 2 2 zbl 15 15
pair_coeff * * mliap In P
# 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 = 8.6589
ghost atom cutoff = 8.6589
binsize = 4.32945, bins = 6 6 6
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair mliap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.03 | 6.03 | 6.03 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -3.4805794 0 -3.4418771 1353.5968
10 285.84677 -3.4787531 0 -3.4418766 1611.7131
20 248.14649 -3.4738884 0 -3.4418756 2312.0308
30 198.94136 -3.4675394 0 -3.4418744 3168.1543
40 152.74831 -3.4615791 0 -3.4418734 3903.5749
50 121.9796 -3.4576091 0 -3.4418728 4387.1254
60 113.27555 -3.4564863 0 -3.4418729 4556.3003
70 125.68089 -3.4580873 0 -3.4418735 4431.2083
80 151.47475 -3.4614159 0 -3.4418745 4107.2369
90 179.18708 -3.4649919 0 -3.4418754 3739.5881
100 197.50662 -3.4673559 0 -3.441876 3492.7778
Loop time of 16.748 on 1 procs for 100 steps with 512 atoms
Performance: 0.258 ns/day, 93.045 hours/ns, 5.971 timesteps/s
99.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 16.746 | 16.746 | 16.746 | 0.0 | 99.99
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.001033 | 0.001033 | 0.001033 | 0.0 | 0.01
Output | 0.000235 | 0.000235 | 0.000235 | 0.0 | 0.00
Modify | 0.000688 | 0.000688 | 0.000688 | 0.0 | 0.00
Other | | 0.000497 | | | 0.00
Nlocal: 512 ave 512 max 512 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1959 ave 1959 max 1959 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 31232 ave 31232 max 31232 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 62464 ave 62464 max 62464 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 62464
Ave neighs/atom = 122
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:17

View File

@ -0,0 +1,158 @@
LAMMPS (15 Jun 2020)
# Demonstrate MLIAP interface to ChemSNAP potential
# 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.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
create_atoms CPU = 0.000 seconds
mass 1 114.76
mass 2 30.98
# choose potential
include InP_JCPA2020.mliap
# DATE: 2020-06-01 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Cusentino, M. A. Wood, and A.P. Thompson, "Explicit Multi-element Extension of the Spectral Neighbor Analysis Potential for Chemically Complex Systems", J. Phys. Chem. A, xxxxxx (2020)
# Definition of SNAP+ZBL potential.
variable zblcutinner index 4
variable zblcutouter index 4.2
variable zblz1 index 49
variable zblz2 index 15
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} mliap model linear InP_JCPA2020.mliap.model descriptor sna InP_JCPA2020.mliap.descriptor
pair_style hybrid/overlay zbl 4 ${zblcutouter} mliap model linear InP_JCPA2020.mliap.model descriptor sna InP_JCPA2020.mliap.descriptor
pair_style hybrid/overlay zbl 4 4.2 mliap model linear InP_JCPA2020.mliap.model descriptor sna InP_JCPA2020.mliap.descriptor
Reading potential file InP_JCPA2020.mliap.model with DATE: 2020-06-01
Reading potential file InP_JCPA2020.mliap.descriptor with DATE: 2020-06-01
SNAP keyword rcutfac 1.0
SNAP keyword twojmax 6
SNAP keyword nelems 2
SNAP keyword elems In
SNAP keyword radelems 3.81205
SNAP keyword welems 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0.0
SNAP keyword bzeroflag 1
SNAP keyword wselfallflag 1
SNAP keyword chemflag 1
SNAP keyword bnormflag 1
pair_coeff 1 1 zbl ${zblz1} ${zblz1}
pair_coeff 1 1 zbl 49 ${zblz1}
pair_coeff 1 1 zbl 49 49
pair_coeff 1 2 zbl ${zblz1} ${zblz2}
pair_coeff 1 2 zbl 49 ${zblz2}
pair_coeff 1 2 zbl 49 15
pair_coeff 2 2 zbl ${zblz2} ${zblz2}
pair_coeff 2 2 zbl 15 ${zblz2}
pair_coeff 2 2 zbl 15 15
pair_coeff * * mliap In P
# 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 = 8.6589
ghost atom cutoff = 8.6589
binsize = 4.32945, bins = 6 6 6
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair mliap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.591 | 4.591 | 4.591 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -3.4805794 0 -3.4418771 1353.5968
10 285.84677 -3.4787531 0 -3.4418766 1611.7131
20 248.14649 -3.4738884 0 -3.4418756 2312.0308
30 198.94136 -3.4675394 0 -3.4418744 3168.1543
40 152.74831 -3.4615791 0 -3.4418734 3903.5749
50 121.9796 -3.4576091 0 -3.4418728 4387.1254
60 113.27555 -3.4564863 0 -3.4418729 4556.3003
70 125.68089 -3.4580873 0 -3.4418735 4431.2083
80 151.47475 -3.4614159 0 -3.4418745 4107.2369
90 179.18708 -3.4649919 0 -3.4418754 3739.5881
100 197.50662 -3.4673559 0 -3.441876 3492.7778
Loop time of 5.01913 on 4 procs for 100 steps with 512 atoms
Performance: 0.861 ns/day, 27.884 hours/ns, 19.924 timesteps/s
99.7% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 4.9328 | 4.9409 | 4.952 | 0.3 | 98.44
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.065669 | 0.076754 | 0.084728 | 2.5 | 1.53
Output | 0.000173 | 0.00028775 | 0.000617 | 0.0 | 0.01
Modify | 0.000256 | 0.00026675 | 0.000281 | 0.0 | 0.01
Other | | 0.0009633 | | | 0.02
Nlocal: 128 ave 128 max 128 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 1099 ave 1099 max 1099 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 7808 ave 7808 max 7808 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 15616 ave 15616 max 15616 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 62464
Ave neighs/atom = 122
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:05

View File

@ -0,0 +1,151 @@
LAMMPS (15 Jun 2020)
# Demonstrate MLIAP interface to quadratic SNAP potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.1803
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.1803
Lattice spacing in x,y,z = 3.1803 3.1803 3.1803
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.0 0.0) to (12.7212 12.7212 12.7212)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
create_atoms CPU = 0.000 seconds
displace_atoms all random 0.01 0.01 0.01 12345
mass 1 183.84
# choose potential
include W.quadratic.mliap
# Definition of SNAP+ZBL potential.
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 74
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} mliap model quadratic W.quadratic.mliap.model descriptor sna W.quadratic.mliap.descriptor
pair_style hybrid/overlay zbl 4 ${zblcutouter} mliap model quadratic W.quadratic.mliap.model descriptor sna W.quadratic.mliap.descriptor
pair_style hybrid/overlay zbl 4 4.8 mliap model quadratic W.quadratic.mliap.model descriptor sna W.quadratic.mliap.descriptor
SNAP keyword rcutfac 4.73442
SNAP keyword twojmax 6
SNAP keyword nelems 1
SNAP keyword elems W
SNAP keyword radelems 0.5
SNAP keyword welems 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword bzeroflag 1
pair_coeff 1 1 zbl ${zblz} ${zblz}
pair_coeff 1 1 zbl 74 ${zblz}
pair_coeff 1 1 zbl 74 74
pair_coeff * * mliap W
# Setup output
compute eatom all pe/atom
compute energy all reduce sum c_eatom
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol)
thermo_style custom step temp epair c_energy etotal press v_press
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 no
# 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 no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.8
ghost atom cutoff = 5.8
binsize = 2.9, bins = 5 5 5
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair mliap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.093 | 6.093 | 6.093 Mbytes
Step Temp E_pair c_energy TotEng Press v_press
0 300 -1.1602728 -1.1602728 -1.1217977 600047.3 -600047.3
10 288.46387 -1.1587932 -1.1587932 -1.1217976 600359.75 -600359.75
20 268.69718 -1.1562579 -1.1562579 -1.1217974 600870.22 -600870.22
30 243.19855 -1.1529874 -1.1529874 -1.1217971 601511.5 -601511.5
40 215.13122 -1.1493875 -1.1493875 -1.1217969 602202.36 -602202.36
50 187.82673 -1.1458855 -1.1458855 -1.1217966 602860.26 -602860.26
60 164.26822 -1.1428639 -1.1428639 -1.1217965 603413.25 -603413.25
70 146.65179 -1.1406045 -1.1406045 -1.1217964 603809.35 -603809.35
80 136.10769 -1.1392522 -1.1392522 -1.1217964 604022.32 -604022.32
90 132.62756 -1.138806 -1.138806 -1.1217964 604053.33 -604053.33
100 135.19841 -1.1391358 -1.1391358 -1.1217966 603928.48 -603928.48
Loop time of 1.69996 on 1 procs for 100 steps with 128 atoms
Performance: 2.541 ns/day, 9.444 hours/ns, 58.825 timesteps/s
99.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.6676 | 1.6676 | 1.6676 | 0.0 | 98.09
Neigh | 0.03029 | 0.03029 | 0.03029 | 0.0 | 1.78
Comm | 0.001238 | 0.001238 | 0.001238 | 0.0 | 0.07
Output | 0.000452 | 0.000452 | 0.000452 | 0.0 | 0.03
Modify | 0.000175 | 0.000175 | 0.000175 | 0.0 | 0.01
Other | | 0.000241 | | | 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: 3712 ave 3712 max 3712 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 = 100
Dangerous builds not checked
Total wall time: 0:00:01

View File

@ -0,0 +1,151 @@
LAMMPS (15 Jun 2020)
# Demonstrate MLIAP interface to quadratic SNAP potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.1803
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.1803
Lattice spacing in x,y,z = 3.1803 3.1803 3.1803
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.0 0.0) to (12.7212 12.7212 12.7212)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
create_atoms CPU = 0.000 seconds
displace_atoms all random 0.01 0.01 0.01 12345
mass 1 183.84
# choose potential
include W.quadratic.mliap
# Definition of SNAP+ZBL potential.
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 74
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} mliap model quadratic W.quadratic.mliap.model descriptor sna W.quadratic.mliap.descriptor
pair_style hybrid/overlay zbl 4 ${zblcutouter} mliap model quadratic W.quadratic.mliap.model descriptor sna W.quadratic.mliap.descriptor
pair_style hybrid/overlay zbl 4 4.8 mliap model quadratic W.quadratic.mliap.model descriptor sna W.quadratic.mliap.descriptor
SNAP keyword rcutfac 4.73442
SNAP keyword twojmax 6
SNAP keyword nelems 1
SNAP keyword elems W
SNAP keyword radelems 0.5
SNAP keyword welems 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword bzeroflag 1
pair_coeff 1 1 zbl ${zblz} ${zblz}
pair_coeff 1 1 zbl 74 ${zblz}
pair_coeff 1 1 zbl 74 74
pair_coeff * * mliap W
# Setup output
compute eatom all pe/atom
compute energy all reduce sum c_eatom
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol)
thermo_style custom step temp epair c_energy etotal press v_press
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 no
# 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 no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.8
ghost atom cutoff = 5.8
binsize = 2.9, bins = 5 5 5
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair mliap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.031 | 6.032 | 6.033 Mbytes
Step Temp E_pair c_energy TotEng Press v_press
0 300 -1.1602728 -1.1602728 -1.1217977 600047.3 -600047.3
10 288.46387 -1.1587932 -1.1587932 -1.1217976 600359.75 -600359.75
20 268.69718 -1.1562579 -1.1562579 -1.1217974 600870.22 -600870.22
30 243.19855 -1.1529874 -1.1529874 -1.1217971 601511.5 -601511.5
40 215.13122 -1.1493875 -1.1493875 -1.1217969 602202.36 -602202.36
50 187.82673 -1.1458855 -1.1458855 -1.1217966 602860.26 -602860.26
60 164.26822 -1.1428639 -1.1428639 -1.1217965 603413.25 -603413.25
70 146.65179 -1.1406045 -1.1406045 -1.1217964 603809.35 -603809.35
80 136.10769 -1.1392522 -1.1392522 -1.1217964 604022.32 -604022.32
90 132.62756 -1.138806 -1.138806 -1.1217964 604053.33 -604053.33
100 135.19841 -1.1391358 -1.1391358 -1.1217966 603928.48 -603928.48
Loop time of 0.520935 on 4 procs for 100 steps with 128 atoms
Performance: 8.293 ns/day, 2.894 hours/ns, 191.963 timesteps/s
99.7% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.4001 | 0.44784 | 0.49877 | 6.8 | 85.97
Neigh | 0.00728 | 0.0080255 | 0.008793 | 0.8 | 1.54
Comm | 0.012664 | 0.064342 | 0.11287 | 18.2 | 12.35
Output | 0.000511 | 0.00053725 | 0.000613 | 0.0 | 0.10
Modify | 7.3e-05 | 7.925e-05 | 8.3e-05 | 0.0 | 0.02
Other | | 0.0001087 | | | 0.02
Nlocal: 32 ave 35 max 29 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 431 ave 434 max 428 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 928 ave 1019 max 837 min
Histogram: 2 0 0 0 0 0 0 0 0 2
FullNghs: 1856 ave 2030 max 1682 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 100
Dangerous builds not checked
Total wall time: 0:00:00

View File

@ -0,0 +1,154 @@
LAMMPS (19 Mar 2020)
# Demonstrate SNAP 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
create_atoms CPU = 0.000254 secs
mass 1 180.88
# choose potential
include Ta06A.snap
# DATE: 2014-09-05 CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: Thompson, Swiler, Trott, Foiles and Tucker, arxiv.org, 1409.3880 (2014)
# Definition of SNAP potential Ta_Cand06A
# Assumes 1 LAMMPS atom type
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 73
# Specify hybrid with SNAP, ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} snap
pair_style hybrid/overlay zbl 4 ${zblcutouter} snap
pair_style hybrid/overlay zbl 4 4.8 snap
pair_coeff 1 1 zbl ${zblz} ${zblz}
pair_coeff 1 1 zbl 73 ${zblz}
pair_coeff 1 1 zbl 73 73
pair_coeff * * snap Ta06A.snapcoeff Ta06A.snapparam Ta
Reading potential file Ta06A.snapcoeff with DATE: 2014-09-05
SNAP Element = Ta, Radius 0.5, Weight 1
Reading potential file Ta06A.snapparam with DATE: 2014-09-05
SNAP keyword rcutfac 4.67637
SNAP keyword twojmax 6
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword bzeroflag 0
SNAP keyword quadraticflag 0
# Setup output
compute eatom all pe/atom
compute energy all reduce sum c_eatom
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable press equal (c_str[1]+c_str[2]+c_str[3])/(3*vol)
thermo_style custom step temp epair c_energy etotal press v_press
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
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 = 5.8
ghost atom cutoff = 5.8
binsize = 2.9, bins = 5 5 5
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair snap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.591 | 6.591 | 6.591 Mbytes
Step Temp E_pair c_energy TotEng Press v_press
0 300 -11.85157 -11.85157 -11.813095 2717.1661 -2717.1661
10 295.96579 -11.851053 -11.851053 -11.813095 2696.1559 -2696.1559
20 284.32535 -11.84956 -11.84956 -11.813095 2301.3713 -2301.3713
30 266.04602 -11.847215 -11.847215 -11.813095 1832.1745 -1832.1745
40 242.2862 -11.844168 -11.844168 -11.813095 1492.6765 -1492.6765
50 214.48968 -11.840603 -11.840603 -11.813094 1312.8908 -1312.8908
60 184.32523 -11.836734 -11.836734 -11.813094 1284.582 -1284.582
70 153.58055 -11.832791 -11.832791 -11.813094 1374.4457 -1374.4457
80 124.04276 -11.829003 -11.829003 -11.813094 1537.703 -1537.703
90 97.37622 -11.825582 -11.825582 -11.813094 1734.9662 -1734.9662
100 75.007873 -11.822714 -11.822714 -11.813094 1930.8005 -1930.8005
Loop time of 0.995328 on 1 procs for 100 steps with 128 atoms
Performance: 4.340 ns/day, 5.530 hours/ns, 100.469 timesteps/s
99.5% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.99426 | 0.99426 | 0.99426 | 0.0 | 99.89
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.000305 | 0.000305 | 0.000305 | 0.0 | 0.03
Output | 0.000413 | 0.000413 | 0.000413 | 0.0 | 0.04
Modify | 0.000159 | 0.000159 | 0.000159 | 0.0 | 0.02
Other | | 0.000191 | | | 0.02
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: 3712 ave 3712 max 3712 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

@ -0,0 +1,19 @@
# DATE: 2020-06-01 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Cusentino, M. A. Wood, and A.P. Thompson, "Explicit Multi-element Extension of the Spectral Neighbor Analysis Potential for Chemically Complex Systems", J. Phys. Chem. A, xxxxxx (2020)
# Definition of SNAP+ZBL potential.
variable zblcutinner index 4
variable zblcutouter index 4.2
variable zblz1 index 49
variable zblz2 index 15
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay &
zbl ${zblcutinner} ${zblcutouter} &
mliap model linear InP_JCPA2020.mliap.model descriptor sna InP_JCPA2020.mliap.descriptor
pair_coeff 1 1 zbl ${zblz1} ${zblz1}
pair_coeff 1 2 zbl ${zblz1} ${zblz2}
pair_coeff 2 2 zbl ${zblz2} ${zblz2}
pair_coeff * * mliap In P

View File

@ -0,0 +1,20 @@
# DATE: 2020-06-01 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Cusentino, M. A. Wood, and A.P. Thompson, "Explicit Multi-element Extension of the Spectral Neighbor Analysis Potential for Chemically Complex Systems", J. Phys. Chem. A, xxxxxx (2020)
# required
rcutfac 1.0
twojmax 6
# elements
nelems 2
elems In P
radelems 3.81205 3.82945
welems 1 0.929316
# optional
rfac0 0.99363
rmin0 0.0
bzeroflag 1
wselfallflag 1
chemflag 1
bnormflag 1

View File

@ -0,0 +1,485 @@
# DATE: 2020-06-01 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Cusentino, M. A. Wood, and A.P. Thompson, "Explicit Multi-element Extension of the Spectral Neighbor Analysis Potential for Chemically Complex Systems", J. Phys. Chem. A, xxxxxx (2020)
2 241
0.000000000000 # B[0] Block = 1 Type = In
-0.000666721868 # B[1, 0, 0, 0] Block = 1 Type = In
0.032408881964 # B[2, 1, 0, 1] Block = 1 Type = In
0.182277739455 # B[3, 1, 1, 2] Block = 1 Type = In
0.001455902168 # B[4, 2, 0, 2] Block = 1 Type = In
0.086259367737 # B[5, 2, 1, 3] Block = 1 Type = In
-0.044840628371 # B[6, 2, 2, 2] Block = 1 Type = In
-0.175973261191 # B[7, 2, 2, 4] Block = 1 Type = In
-0.052429169415 # B[8, 3, 0, 3] Block = 1 Type = In
0.195529228497 # B[9, 3, 1, 4] Block = 1 Type = In
0.078718744520 # B[10, 3, 2, 3] Block = 1 Type = In
-0.688127658121 # B[11, 3, 2, 5] Block = 1 Type = In
0.059084058400 # B[12, 3, 3, 4] Block = 1 Type = In
0.006795099274 # B[13, 3, 3, 6] Block = 1 Type = In
-0.043061553886 # B[14, 4, 0, 4] Block = 1 Type = In
-0.046619800530 # B[15, 4, 1, 5] Block = 1 Type = In
-0.117451659827 # B[16, 4, 2, 4] Block = 1 Type = In
-0.233615100720 # B[17, 4, 2, 6] Block = 1 Type = In
0.015358771114 # B[18, 4, 3, 5] Block = 1 Type = In
0.022474133984 # B[19, 4, 4, 4] Block = 1 Type = In
0.002165850235 # B[20, 4, 4, 6] Block = 1 Type = In
0.003458938546 # B[21, 5, 0, 5] Block = 1 Type = In
-0.053507775670 # B[22, 5, 1, 6] Block = 1 Type = In
0.120989101467 # B[23, 5, 2, 5] Block = 1 Type = In
0.092637875162 # B[24, 5, 3, 6] Block = 1 Type = In
0.071459233521 # B[25, 5, 4, 5] Block = 1 Type = In
0.086291858607 # B[26, 5, 5, 6] Block = 1 Type = In
0.006749966752 # B[27, 6, 0, 6] Block = 1 Type = In
0.144917284093 # B[28, 6, 2, 6] Block = 1 Type = In
0.055178211309 # B[29, 6, 4, 6] Block = 1 Type = In
-0.005619133266 # B[30, 6, 6, 6] Block = 1 Type = In
0.005430513632 # B[1, 0, 0, 0] Block = 2 Type = In
0.057269488101 # B[2, 1, 0, 1] Block = 2 Type = In
0.320412300575 # B[3, 1, 1, 2] Block = 2 Type = In
0.035481869944 # B[4, 2, 0, 2] Block = 2 Type = In
0.111076763087 # B[5, 2, 1, 3] Block = 2 Type = In
0.039770598731 # B[6, 2, 2, 2] Block = 2 Type = In
0.141315510383 # B[7, 2, 2, 4] Block = 2 Type = In
0.067792661762 # B[8, 3, 0, 3] Block = 2 Type = In
-0.080858457946 # B[9, 3, 1, 4] Block = 2 Type = In
0.258942062632 # B[10, 3, 2, 3] Block = 2 Type = In
0.061756985062 # B[11, 3, 2, 5] Block = 2 Type = In
-0.112424676196 # B[12, 3, 3, 4] Block = 2 Type = In
0.168376857205 # B[13, 3, 3, 6] Block = 2 Type = In
-0.029743698629 # B[14, 4, 0, 4] Block = 2 Type = In
-0.093967263289 # B[15, 4, 1, 5] Block = 2 Type = In
0.137229827290 # B[16, 4, 2, 4] Block = 2 Type = In
0.056897919200 # B[17, 4, 2, 6] Block = 2 Type = In
0.095137344320 # B[18, 4, 3, 5] Block = 2 Type = In
-0.008598816416 # B[19, 4, 4, 4] Block = 2 Type = In
0.038890602482 # B[20, 4, 4, 6] Block = 2 Type = In
-0.034624751006 # B[21, 5, 0, 5] Block = 2 Type = In
-0.282625695473 # B[22, 5, 1, 6] Block = 2 Type = In
0.103089891872 # B[23, 5, 2, 5] Block = 2 Type = In
-0.024380802146 # B[24, 5, 3, 6] Block = 2 Type = In
-0.063847809434 # B[25, 5, 4, 5] Block = 2 Type = In
-0.024896682749 # B[26, 5, 5, 6] Block = 2 Type = In
0.000464369553 # B[27, 6, 0, 6] Block = 2 Type = In
0.082229290277 # B[28, 6, 2, 6] Block = 2 Type = In
-0.008875503360 # B[29, 6, 4, 6] Block = 2 Type = In
-0.009039017094 # B[30, 6, 6, 6] Block = 2 Type = In
0.005430513686 # B[1, 0, 0, 0] Block = 3 Type = In
-0.004352445887 # B[2, 1, 0, 1] Block = 3 Type = In
0.149882860704 # B[3, 1, 1, 2] Block = 3 Type = In
-0.015528472583 # B[4, 2, 0, 2] Block = 3 Type = In
0.558662861756 # B[5, 2, 1, 3] Block = 3 Type = In
0.039770598731 # B[6, 2, 2, 2] Block = 3 Type = In
0.179060667136 # B[7, 2, 2, 4] Block = 3 Type = In
0.034759981675 # B[8, 3, 0, 3] Block = 3 Type = In
0.603083480153 # B[9, 3, 1, 4] Block = 3 Type = In
0.176946655350 # B[10, 3, 2, 3] Block = 3 Type = In
0.165639632803 # B[11, 3, 2, 5] Block = 3 Type = In
0.055627509305 # B[12, 3, 3, 4] Block = 3 Type = In
0.049782791218 # B[13, 3, 3, 6] Block = 3 Type = In
0.036078617029 # B[14, 4, 0, 4] Block = 3 Type = In
0.064493563641 # B[15, 4, 1, 5] Block = 3 Type = In
0.149250535822 # B[16, 4, 2, 4] Block = 3 Type = In
-0.060208330201 # B[17, 4, 2, 6] Block = 3 Type = In
0.105119833648 # B[18, 4, 3, 5] Block = 3 Type = In
-0.008598816416 # B[19, 4, 4, 4] Block = 3 Type = In
0.041210118888 # B[20, 4, 4, 6] Block = 3 Type = In
-0.002705345469 # B[21, 5, 0, 5] Block = 3 Type = In
0.170191392493 # B[22, 5, 1, 6] Block = 3 Type = In
0.226897293272 # B[23, 5, 2, 5] Block = 3 Type = In
0.013009034793 # B[24, 5, 3, 6] Block = 3 Type = In
-0.020734586320 # B[25, 5, 4, 5] Block = 3 Type = In
-0.018139074523 # B[26, 5, 5, 6] Block = 3 Type = In
-0.016001848874 # B[27, 6, 0, 6] Block = 3 Type = In
0.016663324316 # B[28, 6, 2, 6] Block = 3 Type = In
-0.024245533697 # B[29, 6, 4, 6] Block = 3 Type = In
-0.009039017094 # B[30, 6, 6, 6] Block = 3 Type = In
-0.005654800687 # B[1, 0, 0, 0] Block = 4 Type = In
-0.071064263981 # B[2, 1, 0, 1] Block = 4 Type = In
-0.009868049046 # B[3, 1, 1, 2] Block = 4 Type = In
-0.061297753855 # B[4, 2, 0, 2] Block = 4 Type = In
-0.239682636759 # B[5, 2, 1, 3] Block = 4 Type = In
0.015954956116 # B[6, 2, 2, 2] Block = 4 Type = In
0.176005610703 # B[7, 2, 2, 4] Block = 4 Type = In
-0.081125948095 # B[8, 3, 0, 3] Block = 4 Type = In
-0.170847987084 # B[9, 3, 1, 4] Block = 4 Type = In
0.242239715395 # B[10, 3, 2, 3] Block = 4 Type = In
0.082507688294 # B[11, 3, 2, 5] Block = 4 Type = In
0.247785108978 # B[12, 3, 3, 4] Block = 4 Type = In
-0.008194303016 # B[13, 3, 3, 6] Block = 4 Type = In
0.014786217107 # B[14, 4, 0, 4] Block = 4 Type = In
-0.096877379511 # B[15, 4, 1, 5] Block = 4 Type = In
0.164908528605 # B[16, 4, 2, 4] Block = 4 Type = In
0.151575252604 # B[17, 4, 2, 6] Block = 4 Type = In
0.099757230122 # B[18, 4, 3, 5] Block = 4 Type = In
0.035047662350 # B[19, 4, 4, 4] Block = 4 Type = In
0.007150552805 # B[20, 4, 4, 6] Block = 4 Type = In
0.019198319779 # B[21, 5, 0, 5] Block = 4 Type = In
-0.127113932870 # B[22, 5, 1, 6] Block = 4 Type = In
0.114478010571 # B[23, 5, 2, 5] Block = 4 Type = In
0.050915227324 # B[24, 5, 3, 6] Block = 4 Type = In
0.096853268510 # B[25, 5, 4, 5] Block = 4 Type = In
0.067894750884 # B[26, 5, 5, 6] Block = 4 Type = In
-0.002405537661 # B[27, 6, 0, 6] Block = 4 Type = In
0.058549926350 # B[28, 6, 2, 6] Block = 4 Type = In
0.009481237049 # B[29, 6, 4, 6] Block = 4 Type = In
-0.008649958571 # B[30, 6, 6, 6] Block = 4 Type = In
0.005430513686 # B[1, 0, 0, 0] Block = 5 Type = In
0.057269488102 # B[2, 1, 0, 1] Block = 5 Type = In
0.149882860704 # B[3, 1, 1, 2] Block = 5 Type = In
0.035481869944 # B[4, 2, 0, 2] Block = 5 Type = In
0.378916788823 # B[5, 2, 1, 3] Block = 5 Type = In
0.039770598731 # B[6, 2, 2, 2] Block = 5 Type = In
0.179060667136 # B[7, 2, 2, 4] Block = 5 Type = In
0.067792661762 # B[8, 3, 0, 3] Block = 5 Type = In
0.272613304171 # B[9, 3, 1, 4] Block = 5 Type = In
0.258942062632 # B[10, 3, 2, 3] Block = 5 Type = In
0.100130474069 # B[11, 3, 2, 5] Block = 5 Type = In
0.055627509305 # B[12, 3, 3, 4] Block = 5 Type = In
0.049782791218 # B[13, 3, 3, 6] Block = 5 Type = In
-0.029743698629 # B[14, 4, 0, 4] Block = 5 Type = In
-0.013420300314 # B[15, 4, 1, 5] Block = 5 Type = In
0.137229827290 # B[16, 4, 2, 4] Block = 5 Type = In
-0.034447269506 # B[17, 4, 2, 6] Block = 5 Type = In
-0.033847124314 # B[18, 4, 3, 5] Block = 5 Type = In
-0.008598816416 # B[19, 4, 4, 4] Block = 5 Type = In
0.041210118888 # B[20, 4, 4, 6] Block = 5 Type = In
-0.034624751006 # B[21, 5, 0, 5] Block = 5 Type = In
0.041662678638 # B[22, 5, 1, 6] Block = 5 Type = In
0.103089891872 # B[23, 5, 2, 5] Block = 5 Type = In
-0.044572198386 # B[24, 5, 3, 6] Block = 5 Type = In
-0.063847809434 # B[25, 5, 4, 5] Block = 5 Type = In
-0.018139074523 # B[26, 5, 5, 6] Block = 5 Type = In
0.000464369553 # B[27, 6, 0, 6] Block = 5 Type = In
0.082229290277 # B[28, 6, 2, 6] Block = 5 Type = In
-0.008875503360 # B[29, 6, 4, 6] Block = 5 Type = In
-0.009039017094 # B[30, 6, 6, 6] Block = 5 Type = In
-0.005654800687 # B[1, 0, 0, 0] Block = 6 Type = In
-0.001217874195 # B[2, 1, 0, 1] Block = 6 Type = In
-0.009868049046 # B[3, 1, 1, 2] Block = 6 Type = In
-0.092827766060 # B[4, 2, 0, 2] Block = 6 Type = In
0.439274283244 # B[5, 2, 1, 3] Block = 6 Type = In
0.015954956116 # B[6, 2, 2, 2] Block = 6 Type = In
0.176005610703 # B[7, 2, 2, 4] Block = 6 Type = In
0.102468480364 # B[8, 3, 0, 3] Block = 6 Type = In
0.674122225402 # B[9, 3, 1, 4] Block = 6 Type = In
0.072529538087 # B[10, 3, 2, 3] Block = 6 Type = In
0.330711171466 # B[11, 3, 2, 5] Block = 6 Type = In
0.247785108978 # B[12, 3, 3, 4] Block = 6 Type = In
-0.008194303016 # B[13, 3, 3, 6] Block = 6 Type = In
0.052250780232 # B[14, 4, 0, 4] Block = 6 Type = In
0.374231060518 # B[15, 4, 1, 5] Block = 6 Type = In
0.326667869620 # B[16, 4, 2, 4] Block = 6 Type = In
0.079031873518 # B[17, 4, 2, 6] Block = 6 Type = In
0.224004472527 # B[18, 4, 3, 5] Block = 6 Type = In
0.035047662350 # B[19, 4, 4, 4] Block = 6 Type = In
0.007150552805 # B[20, 4, 4, 6] Block = 6 Type = In
0.040682917098 # B[21, 5, 0, 5] Block = 6 Type = In
0.046855927526 # B[22, 5, 1, 6] Block = 6 Type = In
0.219695071346 # B[23, 5, 2, 5] Block = 6 Type = In
-0.001426581661 # B[24, 5, 3, 6] Block = 6 Type = In
0.028514699601 # B[25, 5, 4, 5] Block = 6 Type = In
0.067894750884 # B[26, 5, 5, 6] Block = 6 Type = In
-0.049888149225 # B[27, 6, 0, 6] Block = 6 Type = In
0.009259151039 # B[28, 6, 2, 6] Block = 6 Type = In
0.003868002128 # B[29, 6, 4, 6] Block = 6 Type = In
-0.008649958571 # B[30, 6, 6, 6] Block = 6 Type = In
-0.005654800692 # B[1, 0, 0, 0] Block = 7 Type = In
-0.071064263981 # B[2, 1, 0, 1] Block = 7 Type = In
-0.085085203640 # B[3, 1, 1, 2] Block = 7 Type = In
-0.061297753855 # B[4, 2, 0, 2] Block = 7 Type = In
0.223668616358 # B[5, 2, 1, 3] Block = 7 Type = In
0.015954956116 # B[6, 2, 2, 2] Block = 7 Type = In
0.033706085249 # B[7, 2, 2, 4] Block = 7 Type = In
-0.081125948095 # B[8, 3, 0, 3] Block = 7 Type = In
-0.005054494008 # B[9, 3, 1, 4] Block = 7 Type = In
0.242239715395 # B[10, 3, 2, 3] Block = 7 Type = In
-0.000886414104 # B[11, 3, 2, 5] Block = 7 Type = In
0.059178212190 # B[12, 3, 3, 4] Block = 7 Type = In
0.008498646326 # B[13, 3, 3, 6] Block = 7 Type = In
0.014786217107 # B[14, 4, 0, 4] Block = 7 Type = In
-0.178665293356 # B[15, 4, 1, 5] Block = 7 Type = In
0.164908528605 # B[16, 4, 2, 4] Block = 7 Type = In
-0.117717485069 # B[17, 4, 2, 6] Block = 7 Type = In
0.146739677531 # B[18, 4, 3, 5] Block = 7 Type = In
0.035047662350 # B[19, 4, 4, 4] Block = 7 Type = In
0.088770688382 # B[20, 4, 4, 6] Block = 7 Type = In
0.019198319779 # B[21, 5, 0, 5] Block = 7 Type = In
-0.148162265312 # B[22, 5, 1, 6] Block = 7 Type = In
0.114478010571 # B[23, 5, 2, 5] Block = 7 Type = In
0.114731400461 # B[24, 5, 3, 6] Block = 7 Type = In
0.096853268510 # B[25, 5, 4, 5] Block = 7 Type = In
0.031183854107 # B[26, 5, 5, 6] Block = 7 Type = In
-0.002405537661 # B[27, 6, 0, 6] Block = 7 Type = In
0.058549926350 # B[28, 6, 2, 6] Block = 7 Type = In
0.009481237049 # B[29, 6, 4, 6] Block = 7 Type = In
-0.008649958571 # B[30, 6, 6, 6] Block = 7 Type = In
0.017733403092 # B[1, 0, 0, 0] Block = 8 Type = In
0.015168905151 # B[2, 1, 0, 1] Block = 8 Type = In
-0.212358294308 # B[3, 1, 1, 2] Block = 8 Type = In
0.115608035432 # B[4, 2, 0, 2] Block = 8 Type = In
0.128621845177 # B[5, 2, 1, 3] Block = 8 Type = In
-0.055682216710 # B[6, 2, 2, 2] Block = 8 Type = In
0.168986321733 # B[7, 2, 2, 4] Block = 8 Type = In
-0.087186888529 # B[8, 3, 0, 3] Block = 8 Type = In
0.378810692322 # B[9, 3, 1, 4] Block = 8 Type = In
0.036128510376 # B[10, 3, 2, 3] Block = 8 Type = In
0.179888488204 # B[11, 3, 2, 5] Block = 8 Type = In
-0.001405954437 # B[12, 3, 3, 4] Block = 8 Type = In
0.010551104009 # B[13, 3, 3, 6] Block = 8 Type = In
-0.059381370200 # B[14, 4, 0, 4] Block = 8 Type = In
0.475432753620 # B[15, 4, 1, 5] Block = 8 Type = In
0.095868282640 # B[16, 4, 2, 4] Block = 8 Type = In
0.106524975238 # B[17, 4, 2, 6] Block = 8 Type = In
0.058941182257 # B[18, 4, 3, 5] Block = 8 Type = In
0.012512778321 # B[19, 4, 4, 4] Block = 8 Type = In
0.080549204239 # B[20, 4, 4, 6] Block = 8 Type = In
-0.068536821891 # B[21, 5, 0, 5] Block = 8 Type = In
0.089459777664 # B[22, 5, 1, 6] Block = 8 Type = In
0.163187761880 # B[23, 5, 2, 5] Block = 8 Type = In
0.139719330200 # B[24, 5, 3, 6] Block = 8 Type = In
0.145095171389 # B[25, 5, 4, 5] Block = 8 Type = In
0.074157391376 # B[26, 5, 5, 6] Block = 8 Type = In
0.018646775951 # B[27, 6, 0, 6] Block = 8 Type = In
0.035882498943 # B[28, 6, 2, 6] Block = 8 Type = In
0.050420424420 # B[29, 6, 4, 6] Block = 8 Type = In
0.009994821144 # B[30, 6, 6, 6] Block = 8 Type = In
0.000000000000 # B[0] Block = 1 Type = P
-0.002987589706 # B[1, 0, 0, 0] Block = 1 Type = P
-0.072158389412 # B[2, 1, 0, 1] Block = 1 Type = P
-0.025322250603 # B[3, 1, 1, 2] Block = 1 Type = P
-0.030241379192 # B[4, 2, 0, 2] Block = 1 Type = P
-0.676287334962 # B[5, 2, 1, 3] Block = 1 Type = P
-0.172216278028 # B[6, 2, 2, 2] Block = 1 Type = P
-0.246535097343 # B[7, 2, 2, 4] Block = 1 Type = P
-0.035782528462 # B[8, 3, 0, 3] Block = 1 Type = P
-0.560641780823 # B[9, 3, 1, 4] Block = 1 Type = P
-0.549579515296 # B[10, 3, 2, 3] Block = 1 Type = P
-0.016920837991 # B[11, 3, 2, 5] Block = 1 Type = P
-0.288447245376 # B[12, 3, 3, 4] Block = 1 Type = P
0.069076859372 # B[13, 3, 3, 6] Block = 1 Type = P
-0.052298717507 # B[14, 4, 0, 4] Block = 1 Type = P
-0.434250953671 # B[15, 4, 1, 5] Block = 1 Type = P
-0.322043860507 # B[16, 4, 2, 4] Block = 1 Type = P
-0.096837010372 # B[17, 4, 2, 6] Block = 1 Type = P
-0.213169352789 # B[18, 4, 3, 5] Block = 1 Type = P
-0.019566740546 # B[19, 4, 4, 4] Block = 1 Type = P
-0.029415128740 # B[20, 4, 4, 6] Block = 1 Type = P
-0.036591077655 # B[21, 5, 0, 5] Block = 1 Type = P
-0.300384511072 # B[22, 5, 1, 6] Block = 1 Type = P
-0.111126537447 # B[23, 5, 2, 5] Block = 1 Type = P
-0.000209831053 # B[24, 5, 3, 6] Block = 1 Type = P
-0.000023632674 # B[25, 5, 4, 5] Block = 1 Type = P
0.009497323905 # B[26, 5, 5, 6] Block = 1 Type = P
-0.042287705828 # B[27, 6, 0, 6] Block = 1 Type = P
-0.113311457350 # B[28, 6, 2, 6] Block = 1 Type = P
0.029574563913 # B[29, 6, 4, 6] Block = 1 Type = P
-0.027748295426 # B[30, 6, 6, 6] Block = 1 Type = P
-0.001747658243 # B[1, 0, 0, 0] Block = 2 Type = P
-0.026182047943 # B[2, 1, 0, 1] Block = 2 Type = P
0.089481157533 # B[3, 1, 1, 2] Block = 2 Type = P
-0.076525139004 # B[4, 2, 0, 2] Block = 2 Type = P
-0.107925591359 # B[5, 2, 1, 3] Block = 2 Type = P
-0.059117110271 # B[6, 2, 2, 2] Block = 2 Type = P
-0.256324252168 # B[7, 2, 2, 4] Block = 2 Type = P
-0.020755324452 # B[8, 3, 0, 3] Block = 2 Type = P
-0.337284108142 # B[9, 3, 1, 4] Block = 2 Type = P
-0.073956723908 # B[10, 3, 2, 3] Block = 2 Type = P
-0.149119927857 # B[11, 3, 2, 5] Block = 2 Type = P
0.047627781519 # B[12, 3, 3, 4] Block = 2 Type = P
0.061394929126 # B[13, 3, 3, 6] Block = 2 Type = P
-0.082660360252 # B[14, 4, 0, 4] Block = 2 Type = P
-0.183225932285 # B[15, 4, 1, 5] Block = 2 Type = P
-0.046981555049 # B[16, 4, 2, 4] Block = 2 Type = P
-0.046846685850 # B[17, 4, 2, 6] Block = 2 Type = P
-0.014388943769 # B[18, 4, 3, 5] Block = 2 Type = P
0.012133725790 # B[19, 4, 4, 4] Block = 2 Type = P
0.085321452425 # B[20, 4, 4, 6] Block = 2 Type = P
-0.034945525448 # B[21, 5, 0, 5] Block = 2 Type = P
-0.028326642109 # B[22, 5, 1, 6] Block = 2 Type = P
-0.085701075837 # B[23, 5, 2, 5] Block = 2 Type = P
0.108257997015 # B[24, 5, 3, 6] Block = 2 Type = P
0.045837409910 # B[25, 5, 4, 5] Block = 2 Type = P
-0.014180512722 # B[26, 5, 5, 6] Block = 2 Type = P
0.010756044042 # B[27, 6, 0, 6] Block = 2 Type = P
0.023429477590 # B[28, 6, 2, 6] Block = 2 Type = P
-0.007794133717 # B[29, 6, 4, 6] Block = 2 Type = P
0.002019828318 # B[30, 6, 6, 6] Block = 2 Type = P
-0.001747658242 # B[1, 0, 0, 0] Block = 3 Type = P
0.047070626642 # B[2, 1, 0, 1] Block = 3 Type = P
-0.126595340298 # B[3, 1, 1, 2] Block = 3 Type = P
0.022286899829 # B[4, 2, 0, 2] Block = 3 Type = P
-0.483695340547 # B[5, 2, 1, 3] Block = 3 Type = P
-0.059117110271 # B[6, 2, 2, 2] Block = 3 Type = P
-0.067694089340 # B[7, 2, 2, 4] Block = 3 Type = P
0.034974727122 # B[8, 3, 0, 3] Block = 3 Type = P
-0.226290583408 # B[9, 3, 1, 4] Block = 3 Type = P
-0.184699579267 # B[10, 3, 2, 3] Block = 3 Type = P
0.063122270285 # B[11, 3, 2, 5] Block = 3 Type = P
0.041271206739 # B[12, 3, 3, 4] Block = 3 Type = P
-0.004229157928 # B[13, 3, 3, 6] Block = 3 Type = P
0.050689134214 # B[14, 4, 0, 4] Block = 3 Type = P
-0.138276744014 # B[15, 4, 1, 5] Block = 3 Type = P
0.097985494164 # B[16, 4, 2, 4] Block = 3 Type = P
-0.083537235645 # B[17, 4, 2, 6] Block = 3 Type = P
0.098390585361 # B[18, 4, 3, 5] Block = 3 Type = P
0.012133725790 # B[19, 4, 4, 4] Block = 3 Type = P
-0.038067814334 # B[20, 4, 4, 6] Block = 3 Type = P
0.029636266108 # B[21, 5, 0, 5] Block = 3 Type = P
-0.157117938354 # B[22, 5, 1, 6] Block = 3 Type = P
-0.027712542047 # B[23, 5, 2, 5] Block = 3 Type = P
0.084730212710 # B[24, 5, 3, 6] Block = 3 Type = P
0.023437407693 # B[25, 5, 4, 5] Block = 3 Type = P
0.017747856995 # B[26, 5, 5, 6] Block = 3 Type = P
0.050161344183 # B[27, 6, 0, 6] Block = 3 Type = P
-0.098577816149 # B[28, 6, 2, 6] Block = 3 Type = P
-0.046997533090 # B[29, 6, 4, 6] Block = 3 Type = P
0.002019828318 # B[30, 6, 6, 6] Block = 3 Type = P
-0.003152987881 # B[1, 0, 0, 0] Block = 4 Type = P
0.014621850469 # B[2, 1, 0, 1] Block = 4 Type = P
0.098860641022 # B[3, 1, 1, 2] Block = 4 Type = P
0.069546644549 # B[4, 2, 0, 2] Block = 4 Type = P
0.180804700658 # B[5, 2, 1, 3] Block = 4 Type = P
0.034244852922 # B[6, 2, 2, 2] Block = 4 Type = P
0.044579888557 # B[7, 2, 2, 4] Block = 4 Type = P
0.001526239292 # B[8, 3, 0, 3] Block = 4 Type = P
0.203861850923 # B[9, 3, 1, 4] Block = 4 Type = P
0.021679218740 # B[10, 3, 2, 3] Block = 4 Type = P
0.185899872703 # B[11, 3, 2, 5] Block = 4 Type = P
-0.063472862380 # B[12, 3, 3, 4] Block = 4 Type = P
-0.015662648111 # B[13, 3, 3, 6] Block = 4 Type = P
0.076209869795 # B[14, 4, 0, 4] Block = 4 Type = P
-0.050213789331 # B[15, 4, 1, 5] Block = 4 Type = P
0.038175316256 # B[16, 4, 2, 4] Block = 4 Type = P
0.041946424186 # B[17, 4, 2, 6] Block = 4 Type = P
-0.023902281235 # B[18, 4, 3, 5] Block = 4 Type = P
0.008537822812 # B[19, 4, 4, 4] Block = 4 Type = P
0.039989757491 # B[20, 4, 4, 6] Block = 4 Type = P
0.022210126714 # B[21, 5, 0, 5] Block = 4 Type = P
0.010855258243 # B[22, 5, 1, 6] Block = 4 Type = P
0.021570527219 # B[23, 5, 2, 5] Block = 4 Type = P
-0.119983534986 # B[24, 5, 3, 6] Block = 4 Type = P
-0.019726935513 # B[25, 5, 4, 5] Block = 4 Type = P
-0.015720476443 # B[26, 5, 5, 6] Block = 4 Type = P
-0.024522109113 # B[27, 6, 0, 6] Block = 4 Type = P
-0.051478859538 # B[28, 6, 2, 6] Block = 4 Type = P
0.017216285614 # B[29, 6, 4, 6] Block = 4 Type = P
-0.003565797401 # B[30, 6, 6, 6] Block = 4 Type = P
-0.001747658242 # B[1, 0, 0, 0] Block = 5 Type = P
-0.026182047943 # B[2, 1, 0, 1] Block = 5 Type = P
-0.126595340298 # B[3, 1, 1, 2] Block = 5 Type = P
-0.076525139004 # B[4, 2, 0, 2] Block = 5 Type = P
-0.157814129312 # B[5, 2, 1, 3] Block = 5 Type = P
-0.059117110271 # B[6, 2, 2, 2] Block = 5 Type = P
-0.067694089340 # B[7, 2, 2, 4] Block = 5 Type = P
-0.020755324452 # B[8, 3, 0, 3] Block = 5 Type = P
-0.216746420586 # B[9, 3, 1, 4] Block = 5 Type = P
-0.073956723908 # B[10, 3, 2, 3] Block = 5 Type = P
-0.263593571569 # B[11, 3, 2, 5] Block = 5 Type = P
0.041271206739 # B[12, 3, 3, 4] Block = 5 Type = P
-0.004229157928 # B[13, 3, 3, 6] Block = 5 Type = P
-0.082660360252 # B[14, 4, 0, 4] Block = 5 Type = P
-0.305032662779 # B[15, 4, 1, 5] Block = 5 Type = P
-0.046981555049 # B[16, 4, 2, 4] Block = 5 Type = P
-0.187955078269 # B[17, 4, 2, 6] Block = 5 Type = P
-0.121808447372 # B[18, 4, 3, 5] Block = 5 Type = P
0.012133725790 # B[19, 4, 4, 4] Block = 5 Type = P
-0.038067814334 # B[20, 4, 4, 6] Block = 5 Type = P
-0.034945525448 # B[21, 5, 0, 5] Block = 5 Type = P
-0.226555787648 # B[22, 5, 1, 6] Block = 5 Type = P
-0.085701075837 # B[23, 5, 2, 5] Block = 5 Type = P
-0.121081797087 # B[24, 5, 3, 6] Block = 5 Type = P
0.045837409910 # B[25, 5, 4, 5] Block = 5 Type = P
0.017747856995 # B[26, 5, 5, 6] Block = 5 Type = P
0.010756044042 # B[27, 6, 0, 6] Block = 5 Type = P
0.023429477590 # B[28, 6, 2, 6] Block = 5 Type = P
-0.007794133717 # B[29, 6, 4, 6] Block = 5 Type = P
0.002019828318 # B[30, 6, 6, 6] Block = 5 Type = P
-0.003152987881 # B[1, 0, 0, 0] Block = 6 Type = P
-0.003431824919 # B[2, 1, 0, 1] Block = 6 Type = P
0.098860641022 # B[3, 1, 1, 2] Block = 6 Type = P
-0.049867192647 # B[4, 2, 0, 2] Block = 6 Type = P
0.130247785083 # B[5, 2, 1, 3] Block = 6 Type = P
0.034244852922 # B[6, 2, 2, 2] Block = 6 Type = P
0.044579888557 # B[7, 2, 2, 4] Block = 6 Type = P
0.051064338359 # B[8, 3, 0, 3] Block = 6 Type = P
-0.034769100897 # B[9, 3, 1, 4] Block = 6 Type = P
-0.055923569507 # B[10, 3, 2, 3] Block = 6 Type = P
0.101065442824 # B[11, 3, 2, 5] Block = 6 Type = P
-0.063472862380 # B[12, 3, 3, 4] Block = 6 Type = P
-0.015662648111 # B[13, 3, 3, 6] Block = 6 Type = P
-0.020942037301 # B[14, 4, 0, 4] Block = 6 Type = P
0.057686438719 # B[15, 4, 1, 5] Block = 6 Type = P
0.061281723131 # B[16, 4, 2, 4] Block = 6 Type = P
0.041003214284 # B[17, 4, 2, 6] Block = 6 Type = P
0.104968889582 # B[18, 4, 3, 5] Block = 6 Type = P
0.008537822812 # B[19, 4, 4, 4] Block = 6 Type = P
0.039989757491 # B[20, 4, 4, 6] Block = 6 Type = P
0.058310887739 # B[21, 5, 0, 5] Block = 6 Type = P
0.043642228702 # B[22, 5, 1, 6] Block = 6 Type = P
0.119827018636 # B[23, 5, 2, 5] Block = 6 Type = P
-0.017878741482 # B[24, 5, 3, 6] Block = 6 Type = P
0.013615249763 # B[25, 5, 4, 5] Block = 6 Type = P
-0.015720476443 # B[26, 5, 5, 6] Block = 6 Type = P
0.028210503571 # B[27, 6, 0, 6] Block = 6 Type = P
0.138982983531 # B[28, 6, 2, 6] Block = 6 Type = P
0.020848948259 # B[29, 6, 4, 6] Block = 6 Type = P
-0.003565797401 # B[30, 6, 6, 6] Block = 6 Type = P
-0.003152987876 # B[1, 0, 0, 0] Block = 7 Type = P
0.014621850469 # B[2, 1, 0, 1] Block = 7 Type = P
0.136917412546 # B[3, 1, 1, 2] Block = 7 Type = P
0.069546644549 # B[4, 2, 0, 2] Block = 7 Type = P
0.134471034367 # B[5, 2, 1, 3] Block = 7 Type = P
0.034244852922 # B[6, 2, 2, 2] Block = 7 Type = P
0.073714102880 # B[7, 2, 2, 4] Block = 7 Type = P
0.001526239292 # B[8, 3, 0, 3] Block = 7 Type = P
0.029314077312 # B[9, 3, 1, 4] Block = 7 Type = P
0.021679218740 # B[10, 3, 2, 3] Block = 7 Type = P
0.005384023182 # B[11, 3, 2, 5] Block = 7 Type = P
0.029912954139 # B[12, 3, 3, 4] Block = 7 Type = P
0.036308629380 # B[13, 3, 3, 6] Block = 7 Type = P
0.076209869795 # B[14, 4, 0, 4] Block = 7 Type = P
-0.095659211777 # B[15, 4, 1, 5] Block = 7 Type = P
0.038175316256 # B[16, 4, 2, 4] Block = 7 Type = P
-0.054559433157 # B[17, 4, 2, 6] Block = 7 Type = P
-0.079205893849 # B[18, 4, 3, 5] Block = 7 Type = P
0.008537822812 # B[19, 4, 4, 4] Block = 7 Type = P
0.072688459278 # B[20, 4, 4, 6] Block = 7 Type = P
0.022210126714 # B[21, 5, 0, 5] Block = 7 Type = P
0.032318678024 # B[22, 5, 1, 6] Block = 7 Type = P
0.021570527219 # B[23, 5, 2, 5] Block = 7 Type = P
0.038881258714 # B[24, 5, 3, 6] Block = 7 Type = P
-0.019726935513 # B[25, 5, 4, 5] Block = 7 Type = P
0.030961312127 # B[26, 5, 5, 6] Block = 7 Type = P
-0.024522109113 # B[27, 6, 0, 6] Block = 7 Type = P
-0.051478859538 # B[28, 6, 2, 6] Block = 7 Type = P
0.017216285614 # B[29, 6, 4, 6] Block = 7 Type = P
-0.003565797401 # B[30, 6, 6, 6] Block = 7 Type = P
0.000279543258 # B[1, 0, 0, 0] Block = 8 Type = P
0.031561006068 # B[2, 1, 0, 1] Block = 8 Type = P
0.164297477481 # B[3, 1, 1, 2] Block = 8 Type = P
0.020394103829 # B[4, 2, 0, 2] Block = 8 Type = P
-0.136924810031 # B[5, 2, 1, 3] Block = 8 Type = P
0.011488762740 # B[6, 2, 2, 2] Block = 8 Type = P
-0.174577132596 # B[7, 2, 2, 4] Block = 8 Type = P
-0.104272988787 # B[8, 3, 0, 3] Block = 8 Type = P
-0.126737159959 # B[9, 3, 1, 4] Block = 8 Type = P
0.006355291540 # B[10, 3, 2, 3] Block = 8 Type = P
-0.116847920709 # B[11, 3, 2, 5] Block = 8 Type = P
0.093716628094 # B[12, 3, 3, 4] Block = 8 Type = P
-0.015327516258 # B[13, 3, 3, 6] Block = 8 Type = P
-0.015071645969 # B[14, 4, 0, 4] Block = 8 Type = P
0.054380965184 # B[15, 4, 1, 5] Block = 8 Type = P
0.113826098444 # B[16, 4, 2, 4] Block = 8 Type = P
0.012970945123 # B[17, 4, 2, 6] Block = 8 Type = P
-0.047881183904 # B[18, 4, 3, 5] Block = 8 Type = P
-0.010520024430 # B[19, 4, 4, 4] Block = 8 Type = P
-0.077321883428 # B[20, 4, 4, 6] Block = 8 Type = P
-0.087378280220 # B[21, 5, 0, 5] Block = 8 Type = P
-0.221370705680 # B[22, 5, 1, 6] Block = 8 Type = P
0.004554405520 # B[23, 5, 2, 5] Block = 8 Type = P
-0.164836672985 # B[24, 5, 3, 6] Block = 8 Type = P
-0.015080843808 # B[25, 5, 4, 5] Block = 8 Type = P
-0.010907038616 # B[26, 5, 5, 6] Block = 8 Type = P
-0.022228801431 # B[27, 6, 0, 6] Block = 8 Type = P
-0.055154587470 # B[28, 6, 2, 6] Block = 8 Type = P
0.007347917376 # B[29, 6, 4, 6] Block = 8 Type = P
-0.009369956559 # B[30, 6, 6, 6] Block = 8 Type = P

View File

@ -1,4 +1,4 @@
# DATE: 2020-06-01 CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Cusentino, M. A. Wood, and A.P. Thompson, "Explicit Multi-element Extension of the Spectral Neighbor Analysis Potential for Chemically Complex Systems", J. Phys. Chem. A, xxxxxx (2020)
# DATE: 2020-06-01 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Cusentino, M. A. Wood, and A.P. Thompson, "Explicit Multi-element Extension of the Spectral Neighbor Analysis Potential for Chemically Complex Systems", J. Phys. Chem. A, xxxxxx (2020)
# Definition of SNAP+ZBL potential.

View File

@ -1,14 +1,14 @@
# DATE: 2020-06-01 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Cusentino, M. A. Wood, and A.P. Thompson, "Explicit Multi-element Extension of the Spectral Neighbor Analysis Potential for Chemically Complex Systems", J. Phys. Chem. A, xxxxxx (2020)
# required
rcutfac 1.0
twojmax 6
# required
rcutfac 1.0
twojmax 6
# optional
rfac0 0.99363
rmin0 0.0
bzeroflag 1
quadraticflag 0
wselfallflag 1
chemflag 1
bnormflag 1
# optional
rfac0 0.99363
rmin0 0.0
bzeroflag 1
quadraticflag 0
wselfallflag 1
chemflag 1
bnormflag 1

17
potentials/Ta06A.mliap Normal file
View File

@ -0,0 +1,17 @@
# DATE: 2014-09-05 UNITS: metal CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: Thompson, Swiler, Trott, Foiles and Tucker, arxiv.org, 1409.3880 (2014)
# Definition of SNAP potential Ta_Cand06A
# Assumes 1 LAMMPS atom type
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 73
# Specify hybrid with SNAP, ZBL
pair_style hybrid/overlay &
zbl ${zblcutinner} ${zblcutouter} &
mliap model linear Ta06A.mliap.model descriptor sna Ta06A.mliap.descriptor
pair_coeff 1 1 zbl ${zblz} ${zblz}
pair_coeff * * mliap Ta

View File

@ -0,0 +1,21 @@
# DATE: 2014-09-05 UNITS: metal CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: Thompson, Swiler, Trott, Foiles and Tucker, arxiv.org, 1409.3880 (2014)
# LAMMPS SNAP parameters for Ta_Cand06A
# required
rcutfac 4.67637
twojmax 6
# elements
nelems 1
elems Ta
radelems 0.5
welems 1
# optional
rfac0 0.99363
rmin0 0
bzeroflag 0

View File

@ -0,0 +1,37 @@
# DATE: 2014-09-05 UNITS: metal CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: Thompson, Swiler, Trott, Foiles and Tucker, arxiv.org, 1409.3880 (2014)
# LAMMPS SNAP coefficients for Ta_Cand06A
# nelements ncoeff
1 31
-2.92477
-0.01137
-0.00775
-0.04907
-0.15047
0.09157
0.05590
0.05785
-0.11615
-0.17122
-0.10583
0.03941
-0.11284
0.03939
-0.07331
-0.06582
-0.09341
-0.10587
-0.15497
0.04820
0.00205
0.00060
-0.04898
-0.05084
-0.03371
-0.01441
-0.01501
-0.00599
-0.06373
0.03965
0.01072

View File

@ -0,0 +1,15 @@
# DATE: 2020-06-21 UNITS: metal CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: none
# Definition of SNAP+ZBL potential.
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 74
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay &
zbl ${zblcutinner} ${zblcutouter} &
mliap model quadratic W.quadratic.mliap.model descriptor sna W.quadratic.mliap.descriptor
pair_coeff 1 1 zbl ${zblz} ${zblz}
pair_coeff * * mliap W

View File

@ -0,0 +1,20 @@
# DATE: 2020-06-21 UNITS: metal CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: none
# required
rcutfac 4.73442
twojmax 6
# elements
nelems 1
elems W
radelems 0.5
welems 1
# optional
rfac0 0.99363
rmin0 0
bzeroflag 1

View File

@ -0,0 +1,502 @@
# DATE: 2020-06-21 UNITS: metal CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: none
# LAMMPS SNAP coefficients for Quadratic W
# nelements ncoeff
1 496
0.000000000000
-0.000019342340
0.000039964908
-0.000450771142
-0.000233498664
-0.000519872659
-0.000089734174
-0.000106353291
-0.000035475344
-0.000254116041
-0.000520021242
0.000065038801
-0.000304498225
-0.000032230341
-0.000007420702
-0.000159369530
-0.000144907916
0.000078858361
-0.000238070583
-0.000050556167
-0.000008662153
0.000017439967
-0.000028764863
0.000022504717
0.000001821340
-0.000089967846
-0.000106392838
0.000013771852
0.000070228097
-0.000024152909
-0.000006036274
-4.2551325e-05
0.0001982986695
5.4994526e-05
0.0001760061375
0.0005287969295
-0.00045677476
-0.007136016296
0.0003868434375
-0.0006071085215
-0.000554512177
-0.0006596292555
-0.0007585367005
7.62333015e-05
0.0002137614635
0.000379897335
0.0005441952125
0.000128413515
5.74706545e-05
0.0002303380555
-0.0005759952885
-0.0001530888095
-0.0001614394285
-3.80386335e-05
-0.0006390699265
-2.44191e-05
-0.000627990564
-0.000199645294
-3.63524105e-05
-0.0004350939225
-0.000230192872
-0.000456462716
-0.00096561205
-0.0016793622125
0.008264605054
0.005768043843
0.0259523273965
0.002379667484
0.001798185681
0.001411261095
0.0046629902735
-0.001249069583
-0.003518728846
-0.00152218625
-0.0005803019955
-0.002443813614
0.003302653151
-0.0035163183225
0.005378221661
-0.0005157550285
0.0005802384085
-8.4625189e-05
-0.0003100449505
0.0016035457395
-0.006841896086
0.00327970803
0.000517873278
0.000462624598
0.001556398782
0.000629663951
0.004036847861
0.000410623118
0.0033671740175
0.0060744662315
0.0460285453095
0.0106979441315
0.006457375952
-0.0043000712405
-0.0196789547465
-0.009589713549
-0.0152983426785
0.003041488452
-0.0032366707575
-0.0119067345335
0.0049313311815
-0.0030034838505
8.7700383e-05
0.0007061505055
0.0097234329625
0.007217090323
0.000235882459
-0.0033595857445
-0.0168665065145
0.017786509719
0.001877013067
0.0006351836775
0.004600906728
0.012509628713
-0.003427408333
-0.0014640751665
-0.003888408385
-0.0062058291515
-0.001642104699
-0.00105774282
-0.0059780195505
-0.001753939287
0.000479345105
-0.0019904699045
4.98541965e-05
-0.0041212491675
-0.0042906641465
-0.002351418317
-0.0106697325275
-0.000648222198
-0.002286882867
-0.000626754824
-0.00073748291
0.0016922435575
0.0037496719655
0.004656851048
-0.0002176673305
-0.0006739876965
-0.0006208869175
7.61738615e-05
0.0019258401385
0.005690172208
0.007318906809
-0.035200169396
0.009167226287
-0.000404285392
-0.00348855982
-0.0024229238155
0.0022336200925
-0.012584737991
0.0016262069595
0.0048016592015
0.0004657340115
0.0025051890895
-0.0104101829395
0.016176490711
-0.0094539511845
-0.002289487018
-0.0002052188655
-0.007085549731
0.02162608233
-0.002238154953
0.0190676087705
0.0002139442795
0.0010403767345
0.003360683249
0.003153376576
-0.001249764819
-0.068537163077
0.0023354667295
0.001767860664
-0.0033006265215
0.0146223252485
-0.003180595809
0.0069092040305
0.0010583439885
-0.003447267898
-0.001106713702
0.00523272471
-0.010758599437
-0.001822397317
0.018487732527
-0.0024400507145
-0.007514714512
-0.003947742615
0.012413627732
0.003092235017
0.018069399047
-0.0035369320715
0.0011168541665
-0.0014980962775
-1.2944254e-05
-0.041955689351
0.0023033776335
-0.040725631204
-0.0693632023935
0.020674975135
-0.0341006922645
-0.006059344895
0.002385437006
-0.004177512167
-0.0146544701995
-0.0008310261785
-0.010934674355
0.006492824537
-0.014812643723
0.004033748718
-0.004155996547
-0.013113411806
-0.0088014221285
0.0037541341
-0.000805304258
0.006318190602
0.012552958042
0.004200553135
-0.00681355806
-0.001852228976
0.0017381476065
-0.002643779529
0.0049358851655
0.001522146164
0.002260955858
-0.000839707664
0.0008487292955
0.002671028789
-0.000193952538
0.003111368392
0.0007482047125
0.0020401970905
0.000530116057
-0.0022777656015
-0.0045238154695
0.0018290760485
-0.0003309336725
0.00293571563
0.000172269209
0.001414752092
0.0005614625055
0.000441310903
-0.002473120026
-0.015420836338
-0.0058494470115
-0.013440044608
-0.009774364656
-0.0019064948385
-1.70476245e-05
0.0049669399345
-0.0050880033155
0.001600486319
-0.0018417989075
-0.0111031210975
0.0007780738275
-0.004930202896
-0.002537539117
-0.0090246084865
-0.002694202287
-0.0062002945005
0.0031924710865
0.0021120090085
-0.003067483203
-0.0002847253785
-0.016407568729
-0.0012875748665
-0.0136223073595
-0.00152438356
0.0012803681485
-0.002216406572
-0.001518786423
-0.004453055438
-0.0078894618465
0.001421143537
-0.0050288776725
0.001199592632
-0.002661588749
-0.004357715347
0.009525078378
0.0026286979515
0.0043289788665
0.0004994005155
0.003791227565
0.0004056536255
0.0033347889035
-0.000464347336
-0.0069517390965
-0.0079588750315
-0.004154738239
0.006620101338
0.008608842617
0.0056131740625
0.0011860229985
0.007580086232
0.003260306951
0.000979553031
-0.0044626742655
-0.005235925737
-0.0161268610495
-0.0069229581565
0.003724916317
0.0023613845
0.0013633397005
0.001433661889
-0.0009859245845
-0.019516619562
-0.0051345232355
-0.0003792145305
-0.009160883563
-0.0052408213305
-0.000837343292
-0.010077898583
-0.000297970588
-0.000858261403
-0.0001092992995
-0.002443805024
-0.0025107490965
-0.0062944996435
0.0026546548665
0.0006955853785
0.000103592795
0.000708964143
0.0019193670325
-0.0001578612265
-0.005585721575
-0.000421551186
0.0022745774245
-0.004927140737
0.0004199419505
-0.0037407737345
0.002130170551
-0.0030979189135
-0.0019395201255
0.0067944948975
-0.000359694345
-0.0002144026575
0.0025529098515
0.0001917158465
-0.000540725939
0.001239653721
0.00159659403
-5.5652017e-05
4.5092483e-05
0.002495602056
-0.0035351180395
0.0009665743545
-0.0023236857675
-0.0014564171785
-0.0008165505935
-0.000118027852
0.002536872662
0.0009829535115
0.0019442113705
0.000664158062
0.000326715061
0.00019900621
0.0004767582395
0.000900303081
-2.91049685e-05
-0.004411179905
-0.004064521081
0.00692497271
-0.005195674108
-0.006544598492
0.0029896960935
0.000425073164
-8.0017505e-05
0.000846844414
0.003287511416
-0.009662064447
0.0014047560985
-0.0008689313915
0.0009517570465
0.000152017235
1.6514158e-05
0.00066355894
0.0067775973265
0.0021844858475
0.0056757292145
0.0054950676515
0.0002498690125
-0.006315915302
-0.0059966827865
-0.0034483171305
0.0073702392255
0.007591193081
0.0004062066825
0.000913827769
0.000622164767
0.0002438011115
0.01119218957
0.010457943327
-0.002352405766
-0.000761350789
0.000146360756
-0.00052151391
-0.001421163661
-0.0098259784665
-0.001387664408
-0.0010876399735
0.000794093996
0.003036965154
-0.0017118732635
-0.0015837318195
-0.006679253783
0.000882488727
0.0093074758655
0.0013319314085
-0.011547004122
-0.003864301947
-0.007112747006
-0.00330951085
-0.0007122545915
-0.001201815256
0.0041789351005
-0.0001805522685
-0.0007465084205
0.008838667361
0.0048153576585
-9.8403371e-05
-0.010102205467
-0.0090783851625
-0.0014465915755
0.0056402904815
0.004713889865
-0.000958685828
0.002844420936
0.000886932857
0.0002483938575
0.000144967791
-0.0012477036845
0.004783753466
-0.0076604636325
0.00091901227
0.0010552043375
0.0013117699705
-0.000302204736
0.002096120671
-0.0002417090715
0.0008896279815
8.3058685e-05
0.002360101467
0.003364314747
0.0008746445705
-0.0011215585125
-0.0003387424825
0.0005632970265
-0.0006617281215
0.0003733063965
0.0002623090815
0.004593469114
0.0040372304995
-0.001688451935
-0.003686908717
-0.004326202128
-0.000870929915
-0.0001854711995
0.0002189774835
0.00071865135
0.007416398218
0.0020460979
-0.008020256566
-0.016722806328
0.001376213073
0.000347513599
0.0016684763755
-0.000874786219
0.001891181919
-0.000534904311
0.000846430852
-0.000641433051
0.0007377551475
0.001358126396
-0.000866748663
0.011124487718
0.005228666165
-0.001490438881
-0.0008813532175
-0.0001303988565
0.0007163794045
0.004674505138
-0.000722641184
-0.002023585289
0.001547283689
0.000753938405
0.000470918236
-0.0003316097225
-0.0002293860925
6.90841455e-05
-0.001301344263
-0.0004029179255
6.69084325e-05
-0.000142497889
0.0002207077485
-0.000201523756

View File

@ -0,0 +1,16 @@
# DATE: 2019-09-18 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Wood, M.A. Cusentino, B.D. Wirth, and A.P. Thompson, "Data-driven material models for atomistic simulation", Physical Review B 99, 184305 (2019)
# Definition of SNAP+ZBL potential.
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz1 equal 74
variable zblz2 equal 4
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} &
mliap model linear WBe_Wood_PRB2019.mliap.model descriptor sna WBe_Wood_PRB2019.mliap.descriptor
pair_coeff 1 1 zbl ${zblz1} ${zblz1}
pair_coeff 1 2 zbl ${zblz1} ${zblz2}
pair_coeff 2 2 zbl ${zblz2} ${zblz2}
pair_coeff * * mliap W Be

View File

@ -0,0 +1,20 @@
# DATE: 2019-09-18 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Wood, M.A. Cusentino, B.D. Wirth, and A.P. Thompson, "Data-driven material models for atomistic simulation", Physical Review B 99, 184305 (2019)
# required
rcutfac 4.8123
twojmax 8
# elements
nelems 2
elems W Be
radelems 0.5 0.417932
welems 1 0.959049
# optional
rfac0 0.99363
rmin0 0
bzeroflag 1

View File

@ -0,0 +1,117 @@
# DATE: 2019-09-18 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Wood, M.A. Cusentino, B.D. Wirth, and A.P. Thompson, "Data-driven material models for atomistic simulation", Physical Review B 99, 184305 (2019)
# LAMMPS SNAP coefficients for WBe
# nelements ncoeff
2 56
-0.000000000000 # B[0]
-0.001487061994 # B[1, 0, 0, 0]
0.075808306870 # B[2, 1, 0, 1]
0.538735683870 # B[3, 1, 1, 2]
-0.074148039366 # B[4, 2, 0, 2]
0.602629813770 # B[5, 2, 1, 3]
-0.147022424344 # B[6, 2, 2, 2]
0.117756828488 # B[7, 2, 2, 4]
-0.026490439049 # B[8, 3, 0, 3]
-0.035162708767 # B[9, 3, 1, 4]
0.064315385091 # B[10, 3, 2, 3]
-0.131936948089 # B[11, 3, 2, 5]
-0.021272860272 # B[12, 3, 3, 4]
-0.091171134054 # B[13, 3, 3, 6]
-0.024396224398 # B[14, 4, 0, 4]
-0.059813132803 # B[15, 4, 1, 5]
0.069585393203 # B[16, 4, 2, 4]
-0.085344044181 # B[17, 4, 2, 6]
-0.155425254597 # B[18, 4, 3, 5]
-0.117031758367 # B[19, 4, 3, 7]
-0.040956258020 # B[20, 4, 4, 4]
-0.084465000389 # B[21, 4, 4, 6]
-0.020367513630 # B[22, 4, 4, 8]
-0.010730484318 # B[23, 5, 0, 5]
-0.054777575658 # B[24, 5, 1, 6]
0.050742893747 # B[25, 5, 2, 5]
-0.004686334611 # B[26, 5, 2, 7]
-0.116372907121 # B[27, 5, 3, 6]
0.005542497708 # B[28, 5, 3, 8]
-0.126526795635 # B[29, 5, 4, 5]
-0.080163926221 # B[30, 5, 4, 7]
-0.082426250179 # B[31, 5, 5, 6]
-0.010558777281 # B[32, 5, 5, 8]
-0.001939058038 # B[33, 6, 0, 6]
-0.027907949962 # B[34, 6, 1, 7]
0.049483908476 # B[35, 6, 2, 6]
0.005103754385 # B[36, 6, 2, 8]
-0.054751505141 # B[37, 6, 3, 7]
-0.055556071011 # B[38, 6, 4, 6]
-0.006026917619 # B[39, 6, 4, 8]
-0.060889030109 # B[40, 6, 5, 7]
-0.029977673973 # B[41, 6, 6, 6]
-0.014987527280 # B[42, 6, 6, 8]
-0.006697686658 # B[43, 7, 0, 7]
0.017369624409 # B[44, 7, 1, 8]
0.047864358817 # B[45, 7, 2, 7]
-0.001989812679 # B[46, 7, 3, 8]
0.000153530925 # B[47, 7, 4, 7]
-0.003862356345 # B[48, 7, 5, 8]
-0.009754314198 # B[49, 7, 6, 7]
0.000777958970 # B[50, 7, 7, 8]
-0.003031424287 # B[51, 8, 0, 8]
0.015612715209 # B[52, 8, 2, 8]
0.003210129646 # B[53, 8, 4, 8]
-0.013088799947 # B[54, 8, 6, 8]
0.001465970755 # B[55, 8, 8, 8]
0.000000000000 # B[0]
-0.000112143918 # B[1, 0, 0, 0]
0.002449805180 # B[2, 1, 0, 1]
0.189705916830 # B[3, 1, 1, 2]
-0.019967429692 # B[4, 2, 0, 2]
0.286015704682 # B[5, 2, 1, 3]
0.072864063124 # B[6, 2, 2, 2]
0.108748154196 # B[7, 2, 2, 4]
-0.005203284351 # B[8, 3, 0, 3]
0.043948598532 # B[9, 3, 1, 4]
0.105425889093 # B[10, 3, 2, 3]
0.060460134045 # B[11, 3, 2, 5]
-0.003406205141 # B[12, 3, 3, 4]
0.002306765306 # B[13, 3, 3, 6]
-0.003845115174 # B[14, 4, 0, 4]
0.029471162073 # B[15, 4, 1, 5]
0.054901130330 # B[16, 4, 2, 4]
0.010910192753 # B[17, 4, 2, 6]
0.033885210622 # B[18, 4, 3, 5]
0.008053439551 # B[19, 4, 3, 7]
-0.001432298168 # B[20, 4, 4, 4]
0.017478027729 # B[21, 4, 4, 6]
-0.003402034990 # B[22, 4, 4, 8]
-0.002655339820 # B[23, 5, 0, 5]
0.012668749892 # B[24, 5, 1, 6]
0.037521561888 # B[25, 5, 2, 5]
-0.000682693314 # B[26, 5, 2, 7]
0.008525913627 # B[27, 5, 3, 6]
0.008977936348 # B[28, 5, 3, 8]
0.006922732235 # B[29, 5, 4, 5]
0.003031883044 # B[30, 5, 4, 7]
-0.000345577975 # B[31, 5, 5, 6]
-0.001041600679 # B[32, 5, 5, 8]
-0.001407625493 # B[33, 6, 0, 6]
0.004211558640 # B[34, 6, 1, 7]
0.014450875461 # B[35, 6, 2, 6]
-0.007033326252 # B[36, 6, 2, 8]
0.004998742185 # B[37, 6, 3, 7]
-0.002824617682 # B[38, 6, 4, 6]
0.003831871934 # B[39, 6, 4, 8]
-0.005700892700 # B[40, 6, 5, 7]
0.000184422409 # B[41, 6, 6, 6]
0.001592696824 # B[42, 6, 6, 8]
-0.000804927645 # B[43, 7, 0, 7]
0.008465358642 # B[44, 7, 1, 8]
0.005460531160 # B[45, 7, 2, 7]
-0.000639605094 # B[46, 7, 3, 8]
-0.002403948393 # B[47, 7, 4, 7]
-0.001267042453 # B[48, 7, 5, 8]
0.003836940623 # B[49, 7, 6, 7]
0.002333141437 # B[50, 7, 7, 8]
-0.000665360637 # B[51, 8, 0, 8]
-0.003460637865 # B[52, 8, 2, 8]
-0.001598726043 # B[53, 8, 4, 8]
0.001478744304 # B[54, 8, 6, 8]
0.000806643203 # B[55, 8, 8, 8]

View File

@ -1,3 +1,4 @@
# DATE: 2019-09-18 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Wood, M.A. Cusentino, B.D. Wirth, and A.P. Thompson, "Data-driven material models for atomistic simulation", Physical Review B 99, 184305 (2019)
# LAMMPS SNAP coefficients for WBe
2 56

View File

@ -1,3 +1,5 @@
# DATE: 2019-09-18 UNITS: metal CONTRIBUTOR: Mary Alice Cusentino mcusent@sandia.gov CITATION: M.A. Wood, M.A. Cusentino, B.D. Wirth, and A.P. Thompson, "Data-driven material models for atomistic simulation", Physical Review B 99, 184305 (2019)
# required
rcutfac 4.8123
twojmax 8

View File

@ -0,0 +1,31 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "mliap_descriptor.h"
#include "atom.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MAXLINE 1024
#define MAXWORD 3
/* ---------------------------------------------------------------------- */
MLIAPDescriptor::MLIAPDescriptor(LAMMPS *lmp) : Pointers(lmp) {}
/* ---------------------------------------------------------------------- */
MLIAPDescriptor::~MLIAPDescriptor(){}

View File

@ -0,0 +1,43 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_MLIAP_DESCRIPTOR_H
#define LMP_MLIAP_DESCRIPTOR_H
#include "pointers.h"
namespace LAMMPS_NS {
class MLIAPDescriptor : protected Pointers {
public:
MLIAPDescriptor(LAMMPS*);
~MLIAPDescriptor();
virtual void forward(int*, class NeighList*, double**)=0;
virtual void backward(class PairMLIAP*, class NeighList*, double**, int)=0;
virtual void init()=0;
virtual double get_cutoff(int, int)=0;
virtual double get_cutmax()=0;
virtual double memory_usage()=0;
int ndescriptors; // number of descriptors
int nelements; // # of unique elements
char **elements; // names of unique elements
protected:
};
}
#endif

View File

@ -0,0 +1,459 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "mliap_descriptor_snap.h"
#include "pair_mliap.h"
#include <mpi.h>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include "atom.h"
#include "force.h"
#include "comm.h"
#include "utils.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "sna.h"
#include "memory.h"
#include "error.h"
#include "fmt/format.h"
using namespace LAMMPS_NS;
#define MAXLINE 1024
#define MAXWORD 3
/* ---------------------------------------------------------------------- */
MLIAPDescriptorSNAP::MLIAPDescriptorSNAP(LAMMPS *lmp, char *paramfilename):
MLIAPDescriptor(lmp)
{
nelements = 0;
elements = NULL;
radelem = NULL;
wjelem = NULL;
snaptr = NULL;
read_paramfile(paramfilename);
}
/* ---------------------------------------------------------------------- */
MLIAPDescriptorSNAP::~MLIAPDescriptorSNAP()
{
if (nelements) {
for (int i = 0; i < nelements; i++)
delete[] elements[i];
delete[] elements;
memory->destroy(radelem);
memory->destroy(wjelem);
}
delete snaptr;
}
/* ----------------------------------------------------------------------
compute descriptors for each atom
---------------------------------------------------------------------- */
void MLIAPDescriptorSNAP::forward(int* map, NeighList* list, double **descriptors)
{
int i,j,jnum,ninside;
double delx,dely,delz,rsq;
int *jlist;
double **x = atom->x;
int *type = atom->type;
for (int ii = 0; ii < list->inum; ii++) {
i = list->ilist[ii];
const double xtmp = x[i][0];
const double ytmp = x[i][1];
const double ztmp = x[i][2];
const int itype = type[i];
const int ielem = map[itype];
const double radi = radelem[ielem];
jlist = list->firstneigh[i];
jnum = list->numneigh[i];
// insure rij, inside, wj, and rcutij are of size jnum
snaptr->grow_rij(jnum);
// rij[][3] = displacements between atom I and those neighbors
// inside = indices of neighbors of I within cutoff
// wj = weights for neighbors of I within cutoff
// rcutij = cutoffs for neighbors of I within cutoff
// note Rij sign convention => dU/dRij = dU/dRj = -dU/dRi
ninside = 0;
for (int jj = 0; jj < jnum; jj++) {
j = jlist[jj];
j &= NEIGHMASK;
delx = x[j][0] - xtmp;
dely = x[j][1] - ytmp;
delz = x[j][2] - ztmp;
rsq = delx*delx + dely*dely + delz*delz;
int jtype = type[j];
int jelem = map[jtype];
// printf("i = %d j = %d itype = %d jtype = %d cutsq[i][j] = %g rsq = %g\n",i,j,itype,jtype,cutsq[itype][jtype],rsq);
double rcutsqtmp = get_cutoff(ielem, jelem);
if (rsq < rcutsqtmp*rcutsqtmp) {
snaptr->rij[ninside][0] = delx;
snaptr->rij[ninside][1] = dely;
snaptr->rij[ninside][2] = delz;
snaptr->inside[ninside] = j;
snaptr->wj[ninside] = wjelem[jelem];
snaptr->rcutij[ninside] = (radi + radelem[jelem])*rcutfac;
snaptr->element[ninside] = jelem; // element index for chem snap
ninside++;
}
}
if (chemflag)
snaptr->compute_ui(ninside, ielem);
else
snaptr->compute_ui(ninside, 0);
snaptr->compute_zi();
if (chemflag)
snaptr->compute_bi(ielem);
else
snaptr->compute_bi(0);
for (int icoeff = 0; icoeff < ndescriptors; icoeff++)
descriptors[ii][icoeff] = snaptr->blist[icoeff];
}
}
/* ----------------------------------------------------------------------
compute forces for each atom
---------------------------------------------------------------------- */
void MLIAPDescriptorSNAP::backward(PairMLIAP* pairmliap, NeighList* list, double **beta, int vflag)
{
int i,j,jnum,ninside;
double delx,dely,delz,evdwl,rsq;
double fij[3];
int *jlist,*numneigh,**firstneigh;
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
int newton_pair = force->newton_pair;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
for (int ii = 0; ii < list->inum; ii++) {
i = list->ilist[ii];
const double xtmp = x[i][0];
const double ytmp = x[i][1];
const double ztmp = x[i][2];
const int itype = type[i];
const int ielem = pairmliap->map[itype];
const double radi = radelem[ielem];
jlist = firstneigh[i];
jnum = numneigh[i];
// insure rij, inside, wj, and rcutij are of size jnum
snaptr->grow_rij(jnum);
// rij[][3] = displacements between atom I and those neighbors
// inside = indices of neighbors of I within cutoff
// wj = weights for neighbors of I within cutoff
// rcutij = cutoffs for neighbors of I within cutoff
// note Rij sign convention => dU/dRij = dU/dRj = -dU/dRi
ninside = 0;
for (int jj = 0; jj < jnum; jj++) {
j = jlist[jj];
j &= NEIGHMASK;
delx = x[j][0] - xtmp;
dely = x[j][1] - ytmp;
delz = x[j][2] - ztmp;
rsq = delx*delx + dely*dely + delz*delz;
int jtype = type[j];
int jelem = pairmliap->map[jtype];
if (rsq < pairmliap->cutsq[itype][jtype]&&rsq>1e-20) {
snaptr->rij[ninside][0] = delx;
snaptr->rij[ninside][1] = dely;
snaptr->rij[ninside][2] = delz;
snaptr->inside[ninside] = j;
snaptr->wj[ninside] = wjelem[jelem];
snaptr->rcutij[ninside] = (radi + radelem[jelem])*rcutfac;
snaptr->element[ninside] = jelem; // element index for chem snap
ninside++;
}
}
// compute Ui, Yi for atom I
if (chemflag)
snaptr->compute_ui(ninside, ielem);
else
snaptr->compute_ui(ninside, 0);
// for neighbors of I within cutoff:
// compute Fij = dEi/dRj = -dEi/dRi
// add to Fi, subtract from Fj
snaptr->compute_yi(beta[ii]);
//for (int q=0; q<snaptr->idxu_max*2; q++){
// fprintf(screen, "%i %f\n",q, snaptr->ylist_r[q]);
//}
for (int jj = 0; jj < ninside; jj++) {
int j = snaptr->inside[jj];
if(chemflag)
snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj],
snaptr->rcutij[jj],jj, snaptr->element[jj]);
else
snaptr->compute_duidrj(snaptr->rij[jj], snaptr->wj[jj],
snaptr->rcutij[jj],jj, 0);
snaptr->compute_deidrj(fij);
f[i][0] += fij[0];
f[i][1] += fij[1];
f[i][2] += fij[2];
f[j][0] -= fij[0];
f[j][1] -= fij[1];
f[j][2] -= fij[2];
// add in gloabl and per-atom virial contributions
// this is optional and has no effect on force calculation
if (vflag)
pairmliap->v_tally(i,j,
fij[0],fij[1],fij[2],
-snaptr->rij[jj][0],-snaptr->rij[jj][1],
-snaptr->rij[jj][2]);
}
}
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void MLIAPDescriptorSNAP::init()
{
snaptr = new SNA(lmp, rfac0, twojmax,
rmin0, switchflag, bzeroflag,
chemflag, bnormflag, wselfallflag, nelements);
snaptr->init();
ndescriptors = snaptr->ncoeff;
}
/* ---------------------------------------------------------------------- */
void MLIAPDescriptorSNAP::read_paramfile(char *paramfilename)
{
// set flags for required keywords
int rcutfacflag = 0;
int twojmaxflag = 0;
int nelementsflag = 0;
int elementsflag = 0;
int radelemflag = 0;
int wjelemflag = 0;
// Set defaults for optional keywords
rfac0 = 0.99363;
rmin0 = 0.0;
switchflag = 1;
bzeroflag = 1;
chemflag = 0;
bnormflag = 0;
wselfallflag = 0;
// open SNAP parameter file on proc 0
FILE *fpparam;
if (comm->me == 0) {
fpparam = force->open_potential(paramfilename);
if (fpparam == NULL) {
char str[128];
snprintf(str,128,"Cannot open SNAP parameter file %s",paramfilename);
error->one(FLERR,str);
}
}
char line[MAXLINE],*ptr;
int eof = 0;
int n,nwords;
while (1) {
if (comm->me == 0) {
ptr = fgets(line,MAXLINE,fpparam);
if (ptr == NULL) {
eof = 1;
fclose(fpparam);
} else n = strlen(line) + 1;
}
MPI_Bcast(&eof,1,MPI_INT,0,world);
if (eof) break;
MPI_Bcast(&n,1,MPI_INT,0,world);
MPI_Bcast(line,n,MPI_CHAR,0,world);
// strip comment, skip line if blank
if ((ptr = strchr(line,'#'))) *ptr = '\0';
nwords = utils::count_words(line);
if (nwords == 0) continue;
// words = ptrs to all words in line
// strip single and double quotes from words
char* keywd = strtok(line,"' \t\n\r\f");
char* keyval = strtok(NULL,"' \t\n\r\f");
if (comm->me == 0) {
utils::logmesg(lmp, fmt::format("SNAP keyword {} {} \n", keywd, keyval));
}
// check for keywords with one value per element
if (strcmp(keywd,"elems") == 0 ||
strcmp(keywd,"radelems") == 0 ||
strcmp(keywd,"welems") == 0) {
if (nelementsflag == 0 || nwords != nelements+1)
error->all(FLERR,"Incorrect SNAP parameter file");
if (strcmp(keywd,"elems") == 0) {
for (int ielem = 0; ielem < nelements; ielem++) {
char* elemtmp = keyval;
int n = strlen(elemtmp) + 1;
elements[ielem] = new char[n];
strcpy(elements[ielem],elemtmp);
keyval = strtok(NULL,"' \t\n\r\f");
}
elementsflag = 1;
} else if (strcmp(keywd,"radelems") == 0) {
for (int ielem = 0; ielem < nelements; ielem++) {
radelem[ielem] = atof(keyval);
keyval = strtok(NULL,"' \t\n\r\f");
}
radelemflag = 1;
} else if (strcmp(keywd,"welems") == 0) {
for (int ielem = 0; ielem < nelements; ielem++) {
wjelem[ielem] = atof(keyval);
keyval = strtok(NULL,"' \t\n\r\f");
}
wjelemflag = 1;
}
} else {
// all other keywords take one value
if (nwords != 2)
error->all(FLERR,"Incorrect SNAP parameter file");
if (strcmp(keywd,"nelems") == 0) {
nelements = atoi(keyval);
elements = new char*[nelements];
memory->create(radelem,nelements,"mliap_snap_descriptor:radelem");
memory->create(wjelem,nelements,"mliap_snap_descriptor:wjelem");
nelementsflag = 1;
} else if (strcmp(keywd,"rcutfac") == 0) {
rcutfac = atof(keyval);
rcutfacflag = 1;
} else if (strcmp(keywd,"twojmax") == 0) {
twojmax = atoi(keyval);
twojmaxflag = 1;
} else if (strcmp(keywd,"rfac0") == 0)
rfac0 = atof(keyval);
else if (strcmp(keywd,"rmin0") == 0)
rmin0 = atof(keyval);
else if (strcmp(keywd,"switchflag") == 0)
switchflag = atoi(keyval);
else if (strcmp(keywd,"bzeroflag") == 0)
bzeroflag = atoi(keyval);
else if (strcmp(keywd,"chemflag") == 0)
chemflag = atoi(keyval);
else if (strcmp(keywd,"bnormflag") == 0)
bnormflag = atoi(keyval);
else if (strcmp(keywd,"wselfallflag") == 0)
wselfallflag = atoi(keyval);
else
error->all(FLERR,"Incorrect SNAP parameter file");
}
}
if (!rcutfacflag || !twojmaxflag || !nelementsflag ||
!elementsflag || !radelemflag || !wjelemflag)
error->all(FLERR,"Incorrect SNAP parameter file");
}
/* ----------------------------------------------------------------------
provide cutoff distance for two elements
------------------------------------------------------------------------- */
double MLIAPDescriptorSNAP::get_cutoff(int ielem, int jelem)
{
return (radelem[ielem] + radelem[jelem])*rcutfac;
}
/* ----------------------------------------------------------------------
calculate maximum cutoff distance
------------------------------------------------------------------------- */
double MLIAPDescriptorSNAP::get_cutmax()
{
double cut;
double cutmax = 0.0;
for(int ielem = 0; ielem <= nelements; ielem++) {
cut = 2.0*radelem[ielem]*rcutfac;
if (cut > cutmax) cutmax = cut;
return cutmax;
}
return cutmax;
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double MLIAPDescriptorSNAP::memory_usage()
{
double bytes = 0;
bytes += snaptr->memory_usage(); // SNA object
return bytes;
}

View File

@ -0,0 +1,50 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_MLIAP_DESCRIPTOR_SNAP_H
#define LMP_MLIAP_DESCRIPTOR_SNAP_H
#include "mliap_descriptor.h"
namespace LAMMPS_NS {
class MLIAPDescriptorSNAP : public MLIAPDescriptor {
public:
MLIAPDescriptorSNAP(LAMMPS*, char*);
~MLIAPDescriptorSNAP();
virtual void forward(int*, class NeighList*, double**);
virtual void backward(class PairMLIAP*, class NeighList*, double**, int);
virtual void init();
virtual double get_cutoff(int, int);
virtual double get_cutmax();
virtual double memory_usage();
double rcutfac; // declared public to workaround gcc 4.9
// compiler bug, manifest in KOKKOS package
protected:
class SNA* snaptr;
void read_paramfile(char *);
inline int equal(double* x,double* y);
inline double dist2(double* x,double* y);
double *radelem; // element radii
double *wjelem; // elements weights
int twojmax, switchflag, bzeroflag;
int chemflag, bnormflag, wselfallflag;
double rfac0, rmin0;
};
}
#endif

162
src/MLIAP/mliap_model.cpp Normal file
View File

@ -0,0 +1,162 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "mliap_model.h"
#include "pair_mliap.h"
#include <cstring>
#include <cmath>
#include "atom.h"
#include "force.h"
#include "comm.h"
#include "utils.h"
#include "neigh_list.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MAXLINE 1024
#define MAXWORD 3
/* ---------------------------------------------------------------------- */
MLIAPModel::MLIAPModel(LAMMPS* lmp, char* coefffilename) : Pointers(lmp)
{
nelements = 0;
coeffelem = NULL;
read_coeffs(coefffilename);
nonlinearflag = 0;
}
/* ---------------------------------------------------------------------- */
MLIAPModel::~MLIAPModel()
{
memory->destroy(coeffelem);
}
/* ----------------------------------------------------------------------
placeholder
------------------------------------------------------------------------- */
void MLIAPModel::init()
{
}
/* ---------------------------------------------------------------------- */
void MLIAPModel::read_coeffs(char *coefffilename)
{
// open coefficient file on proc 0
FILE *fpcoeff;
if (comm->me == 0) {
fpcoeff = force->open_potential(coefffilename);
if (fpcoeff == NULL) {
char str[128];
snprintf(str,128,"Cannot open MLIAPModel coefficient file %s",coefffilename);
error->one(FLERR,str);
}
}
char line[MAXLINE],*ptr;
int eof = 0;
int n;
int nwords = 0;
while (nwords == 0) {
if (comm->me == 0) {
ptr = fgets(line,MAXLINE,fpcoeff);
if (ptr == NULL) {
eof = 1;
fclose(fpcoeff);
} else n = strlen(line) + 1;
}
MPI_Bcast(&eof,1,MPI_INT,0,world);
if (eof) break;
MPI_Bcast(&n,1,MPI_INT,0,world);
MPI_Bcast(line,n,MPI_CHAR,0,world);
// strip comment, skip line if blank
if ((ptr = strchr(line,'#'))) *ptr = '\0';
nwords = utils::count_words(line);
}
if (nwords != 2)
error->all(FLERR,"Incorrect format in MLIAPModel coefficient file");
// words = ptrs to all words in line
// strip single and double quotes from words
char* words[MAXWORD];
int iword = 0;
words[iword] = strtok(line,"' \t\n\r\f");
iword = 1;
words[iword] = strtok(NULL,"' \t\n\r\f");
nelements = atoi(words[0]);
nparams = atoi(words[1]);
// set up coeff lists
memory->create(coeffelem,nelements,nparams,"mliap_snap_model:coeffelem");
// Loop over nelements blocks in the coefficient file
for (int ielem = 0; ielem < nelements; ielem++) {
for (int icoeff = 0; icoeff < nparams; icoeff++) {
if (comm->me == 0) {
ptr = fgets(line,MAXLINE,fpcoeff);
if (ptr == NULL) {
eof = 1;
fclose(fpcoeff);
} else n = strlen(line) + 1;
}
MPI_Bcast(&eof,1,MPI_INT,0,world);
if (eof)
error->all(FLERR,"Incorrect format in coefficient file");
MPI_Bcast(&n,1,MPI_INT,0,world);
MPI_Bcast(line,n,MPI_CHAR,0,world);
nwords = utils::trim_and_count_words(line);
if (nwords != 1)
error->all(FLERR,"Incorrect format in coefficient file");
iword = 0;
words[iword] = strtok(line,"' \t\n\r\f");
coeffelem[ielem][icoeff] = atof(words[0]);
}
}
if (comm->me == 0) fclose(fpcoeff);
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double MLIAPModel::memory_usage()
{
double bytes = 0;
int n = atom->ntypes+1;
bytes += nelements*nparams*sizeof(double); // coeffelem
return bytes;
}

41
src/MLIAP/mliap_model.h Normal file
View File

@ -0,0 +1,41 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_MLIAP_MODEL_H
#define LMP_MLIAP_MODEL_H
#include "pointers.h"
namespace LAMMPS_NS {
class MLIAPModel : protected Pointers {
public:
MLIAPModel(LAMMPS*, char*);
~MLIAPModel();
virtual void gradient(class PairMLIAP*, class NeighList*, double**, double**, int)=0;
virtual void init();
virtual double memory_usage();
int nelements; // # of unique elements
int nonlinearflag; // 1 if gradient() requires escriptors
int ndescriptors; // number of descriptors
int nparams; // number of parameters per element
protected:
void read_coeffs(char *);
double **coeffelem; // element coefficients
};
}
#endif

View File

@ -0,0 +1,79 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "mliap_model_linear.h"
#include "pair_mliap.h"
#include <cmath>
#include "atom.h"
#include "force.h"
#include "comm.h"
#include "neigh_list.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MAXLINE 1024
#define MAXWORD 3
/* ---------------------------------------------------------------------- */
MLIAPModelLinear::MLIAPModelLinear(LAMMPS* lmp, char* coefffilename) :
MLIAPModel(lmp, coefffilename)
{
nonlinearflag = 0;
ndescriptors = nparams - 1;
}
/* ---------------------------------------------------------------------- */
MLIAPModelLinear::~MLIAPModelLinear(){}
/* ----------------------------------------------------------------------
Calculate model gradients w.r.t descriptors for each atom dE(B_i)/dB_i
---------------------------------------------------------------------- */
void MLIAPModelLinear::gradient(PairMLIAP* pairmliap, NeighList* list, double **descriptors, double **beta, int eflag)
{
int i;
int *type = atom->type;
for (int ii = 0; ii < list->inum; ii++) {
i = list->ilist[ii];
const int itype = type[i];
const int ielem = pairmliap->map[itype];
double* coeffi = coeffelem[ielem];
for (int icoeff = 0; icoeff < ndescriptors; icoeff++)
beta[ii][icoeff] = coeffi[icoeff+1];
// add in contributions to global and per-atom energy
// this is optional and has no effect on force calculation
if (eflag) {
// energy of atom I
double* coeffi = coeffelem[ielem];
double etmp = coeffi[0];
// E_i = beta.B_i
for (int icoeff = 0; icoeff < ndescriptors; icoeff++)
etmp += coeffi[icoeff+1]*descriptors[ii][icoeff];
pairmliap->e_tally(i,etmp);
}
}
}

View File

@ -0,0 +1,33 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_MLIAP_MODEL_LINEAR_H
#define LMP_MLIAP_MODEL_LINEAR_H
#include "mliap_model.h"
namespace LAMMPS_NS {
class MLIAPModelLinear : public MLIAPModel {
public:
MLIAPModelLinear(LAMMPS*, char*);
~MLIAPModelLinear();
virtual void gradient(class PairMLIAP*, class NeighList*, double**, double**, int);
protected:
};
}
#endif

View File

@ -0,0 +1,103 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "mliap_model_quadratic.h"
#include "pair_mliap.h"
#include <cmath>
#include "atom.h"
#include "force.h"
#include "comm.h"
#include "neigh_list.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
#define MAXLINE 1024
#define MAXWORD 3
/* ---------------------------------------------------------------------- */
MLIAPModelQuadratic::MLIAPModelQuadratic(LAMMPS* lmp, char* coefffilename) :
MLIAPModel(lmp, coefffilename)
{
nonlinearflag = 1;
ndescriptors = sqrt(2*nparams)-1;
}
/* ---------------------------------------------------------------------- */
MLIAPModelQuadratic::~MLIAPModelQuadratic(){}
/* ----------------------------------------------------------------------
Calculate model gradients w.r.t descriptors for each atom dE(B_i)/dB_i
---------------------------------------------------------------------- */
void MLIAPModelQuadratic::gradient(PairMLIAP* pairmliap, NeighList* list, double **descriptors, double **beta, int eflag)
{
int i;
int *type = atom->type;
for (int ii = 0; ii < list->inum; ii++) {
i = list->ilist[ii];
const int itype = type[i];
const int ielem = pairmliap->map[itype];
double* coeffi = coeffelem[ielem];
for (int icoeff = 0; icoeff < ndescriptors; icoeff++)
beta[ii][icoeff] = coeffi[icoeff+1];
int k = ndescriptors+1;
for (int icoeff = 0; icoeff < ndescriptors; icoeff++) {
double bveci = descriptors[ii][icoeff];
beta[ii][icoeff] += coeffi[k]*bveci;
k++;
for (int jcoeff = icoeff+1; jcoeff < ndescriptors; jcoeff++) {
double bvecj = descriptors[ii][jcoeff];
beta[ii][icoeff] += coeffi[k]*bvecj;
beta[ii][jcoeff] += coeffi[k]*bveci;
k++;
}
}
// add in contributions to global and per-atom energy
// this is optional and has no effect on force calculation
if (eflag) {
// energy of atom I
double* coeffi = coeffelem[ielem];
double etmp = coeffi[0];
// E_i = beta.B_i + 0.5*B_i^t.alpha.B_i
for (int icoeff = 0; icoeff < ndescriptors; icoeff++)
etmp += coeffi[icoeff+1]*descriptors[ii][icoeff];
// quadratic contributions
int k = ndescriptors+1;
for (int icoeff = 0; icoeff < ndescriptors; icoeff++) {
double bveci = descriptors[ii][icoeff];
etmp += 0.5*coeffi[k++]*bveci*bveci;
for (int jcoeff = icoeff+1; jcoeff < ndescriptors; jcoeff++) {
double bvecj = descriptors[ii][jcoeff];
etmp += coeffi[k++]*bveci*bvecj;
}
}
pairmliap->e_tally(i,etmp);
}
}
}

View File

@ -0,0 +1,33 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_MLIAP_MODEL_QUADRATIC_H
#define LMP_MLIAP_MODEL_QUADRATIC_H
#include "mliap_model.h"
namespace LAMMPS_NS {
class MLIAPModelQuadratic : public MLIAPModel {
public:
MLIAPModelQuadratic(LAMMPS*, char*);
~MLIAPModelQuadratic();
virtual void gradient(class PairMLIAP*, class NeighList*, double**, double**, int);
protected:
};
}
#endif

335
src/MLIAP/pair_mliap.cpp Normal file
View File

@ -0,0 +1,335 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <mpi.h>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include "mliap_model_linear.h"
#include "mliap_model_quadratic.h"
#include "mliap_descriptor_snap.h"
#include "pair_mliap.h"
#include "atom.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
PairMLIAP::PairMLIAP(LAMMPS *lmp) : Pair(lmp)
{
single_enable = 0;
restartinfo = 0;
one_coeff = 1;
manybody_flag = 1;
beta_max = 0;
beta = NULL;
descriptors = NULL;
model = NULL;
descriptor = NULL;
map = NULL;
}
/* ---------------------------------------------------------------------- */
PairMLIAP::~PairMLIAP()
{
if (copymode) return;
memory->destroy(beta);
memory->destroy(descriptors);
delete model;
delete descriptor;
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(map);
}
}
/* ----------------------------------------------------------------------
This version is a straightforward implementation
---------------------------------------------------------------------- */
void PairMLIAP::compute(int eflag, int vflag)
{
ev_init(eflag,vflag);
// resize lists
if (beta_max < list->inum) {
memory->grow(beta,list->inum,ndescriptors,"PairMLIAP:beta");
memory->grow(descriptors,list->inum,ndescriptors,"PairMLIAP:descriptors");
beta_max = list->inum;
}
// compute descriptors, if needed
if (model->nonlinearflag || eflag)
descriptor->forward(map, list, descriptors);
// compute E_i and beta_i = dE_i/dB_i for all i in list
model->gradient(this, list, descriptors, beta, eflag);
// calculate force contributions beta_i*dB_i/dR_j
descriptor->backward(this, list, beta, vflag);
// calculate stress
if (vflag_fdotr) virial_fdotr_compute();
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairMLIAP::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(map,n+1,"pair:map");
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairMLIAP::settings(int narg, char ** arg)
{
if (narg < 4)
error->all(FLERR,"Illegal pair_style command");
// set flags for required keywords
int modelflag = 0;
int descriptorflag = 0;
// process keywords
int iarg = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"model") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal pair_style mliap command");
if (strcmp(arg[iarg+1],"linear") == 0) {
if (iarg+3 > narg) error->all(FLERR,"Illegal pair_style mliap command");
model = new MLIAPModelLinear(lmp,arg[iarg+2]);
iarg += 3;
} else if (strcmp(arg[iarg+1],"quadratic") == 0) {
if (iarg+3 > narg) error->all(FLERR,"Illegal pair_style mliap command");
model = new MLIAPModelQuadratic(lmp,arg[iarg+2]);
iarg += 3;
} else error->all(FLERR,"Illegal pair_style mliap command");
modelflag = 1;
} else if (strcmp(arg[iarg],"descriptor") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal pair_style mliap command");
if (strcmp(arg[iarg+1],"sna") == 0) {
if (iarg+3 > narg) error->all(FLERR,"Illegal pair_style mliap command");
descriptor = new MLIAPDescriptorSNAP(lmp,arg[iarg+2]);
iarg += 3;
} else error->all(FLERR,"Illegal pair_style mliap command");
descriptorflag = 1;
} else
error->all(FLERR,"Illegal pair_style mliap command");
}
if (modelflag == 0 || descriptorflag == 0)
error->all(FLERR,"Illegal pair_style command");
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairMLIAP::coeff(int narg, char **arg)
{
if (narg < 3) error->all(FLERR,"Incorrect args for pair coefficients");
if (!allocated) allocate();
char* type1 = arg[0];
char* type2 = arg[1];
char** elemtypes = &arg[2];
// insure I,J args are * *
if (strcmp(type1,"*") != 0 || strcmp(type2,"*") != 0)
error->all(FLERR,"Incorrect args for pair coefficients");
// read args that map atom types to elements
// map[i] = which element the Ith atom type is, -1 if not mapped
// map[0] is not used
for (int i = 1; i <= atom->ntypes; i++) {
char* elemname = elemtypes[i-1];
int jelem;
for (jelem = 0; jelem < descriptor->nelements; jelem++)
if (strcmp(elemname,descriptor->elements[jelem]) == 0)
break;
if (jelem < descriptor->nelements)
map[i] = jelem;
else if (strcmp(elemname,"NULL") == 0) map[i] = -1;
else error->all(FLERR,"Incorrect args for pair coefficients");
}
// clear setflag since coeff() called once with I,J = * *
int n = atom->ntypes;
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
// set setflag i,j for type pairs where both are mapped to elements
int count = 0;
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
if (map[i] >= 0 && map[j] >= 0) {
setflag[i][j] = 1;
count++;
}
if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients");
model->init();
descriptor->init();
// consistency checks
ndescriptors = descriptor->ndescriptors;
if (ndescriptors != model->ndescriptors)
error->all(FLERR,"Incompatible model and descriptor definitions");
if (descriptor->nelements != model->nelements)
error->all(FLERR,"Incompatible model and descriptor definitions");
}
/* ----------------------------------------------------------------------
add energy of atom i to global and per-atom energy
this is called by MLIAPModel::gradient()
------------------------------------------------------------------------- */
void PairMLIAP::e_tally(int i, double evdwl)
{
if (eflag_global) eng_vdwl += evdwl;
if (eflag_atom) eatom[i] += evdwl;
}
/* ----------------------------------------------------------------------
add virial contribution into global and per-atom accumulators
this is called by MLIAPDescriptor::backward()
------------------------------------------------------------------------- */
void PairMLIAP::v_tally(int i, int j,
double fx, double fy, double fz,
double delx, double dely, double delz)
{
double v[6];
if (vflag_either) {
v[0] = delx*fx;
v[1] = dely*fy;
v[2] = delz*fz;
v[3] = delx*fy;
v[4] = delx*fz;
v[5] = dely*fz;
if (vflag_global) {
virial[0] += v[0];
virial[1] += v[1];
virial[2] += v[2];
virial[3] += v[3];
virial[4] += v[4];
virial[5] += v[5];
}
if (vflag_atom) {
vatom[i][0] += 0.5*v[0];
vatom[i][1] += 0.5*v[1];
vatom[i][2] += 0.5*v[2];
vatom[i][3] += 0.5*v[3];
vatom[i][4] += 0.5*v[4];
vatom[i][5] += 0.5*v[5];
vatom[j][0] += 0.5*v[0];
vatom[j][1] += 0.5*v[1];
vatom[j][2] += 0.5*v[2];
vatom[j][3] += 0.5*v[3];
vatom[j][4] += 0.5*v[4];
vatom[j][5] += 0.5*v[5];
}
}
}
/* ----------------------------------------------------------------------
init specific to this pair style
------------------------------------------------------------------------- */
void PairMLIAP::init_style()
{
if (force->newton_pair == 0)
error->all(FLERR,"Pair style MLIAP requires newton pair on");
// need a full neighbor list
int irequest = neighbor->request(this,instance_me);
neighbor->requests[irequest]->half = 0;
neighbor->requests[irequest]->full = 1;
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairMLIAP::init_one(int i, int j)
{
if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set");
return descriptor->get_cutoff(map[i],map[j]);
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double PairMLIAP::memory_usage()
{
double bytes = Pair::memory_usage();
int n = atom->ntypes+1;
bytes += n*n*sizeof(int); // setflag
bytes += n*n*sizeof(double); // cutsq
bytes += beta_max*ndescriptors*sizeof(double); // descriptors
bytes += beta_max*ndescriptors*sizeof(double); // beta
bytes += descriptor->memory_usage(); // Descriptor object
bytes += model->memory_usage(); // Model object
return bytes;
}

59
src/MLIAP/pair_mliap.h Normal file
View File

@ -0,0 +1,59 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
PairStyle(mliap,PairMLIAP)
#else
#ifndef LMP_PAIR_MLIAP_H
#define LMP_PAIR_MLIAP_H
#include "pair.h"
namespace LAMMPS_NS {
class PairMLIAP : public Pair {
public:
PairMLIAP(class LAMMPS *);
~PairMLIAP();
virtual void compute(int, int);
void settings(int, char **);
virtual void coeff(int, char **);
void e_tally(int, double);
void v_tally(int, int,
double, double, double,
double, double, double);
virtual void init_style();
virtual double init_one(int, int);
virtual double memory_usage();
int *map; // mapping from atom types to elements
protected:
virtual void allocate();
double** beta; // betas for all atoms in list
double** descriptors; // descriptors for all atoms in list
int ndescriptors; // number of descriptors
int beta_max; // number of atoms allocated for beta, descriptors
class MLIAPModel* model;
class MLIAPDescriptor* descriptor;
};
}
#endif
#endif

View File

@ -48,7 +48,7 @@ endif
PACKAGE = asphere body class2 colloid compress coreshell dipole gpu \
granular kim kokkos kspace latte manybody mc message misc \
molecule mpiio mscg opt peri poems \
mliap molecule mpiio mscg opt peri poems \
python qeq replica rigid shock snap spin srd voronoi
PACKUSER = user-adios user-atc user-awpmd user-bocs user-cgdna user-cgsdk user-colvars \

View File

@ -29,6 +29,7 @@ using namespace MathConst;
Angle::Angle(LAMMPS *lmp) : Pointers(lmp)
{
energy = 0.0;
virial[0] = virial[1] = virial[2] = virial[3] = virial[4] = virial[5] = 0.0;
writedata = 1;
allocated = 0;

View File

@ -33,6 +33,9 @@ AngleHybrid::AngleHybrid(LAMMPS *lmp) : Angle(lmp)
{
writedata = 0;
nstyles = 0;
nanglelist = nullptr;
maxangle = nullptr;
anglelist = nullptr;
}
/* ---------------------------------------------------------------------- */
@ -105,6 +108,18 @@ void AngleHybrid::compute(int eflag, int vflag)
ev_init(eflag,vflag);
// need to clear per-thread storage here, when using multiple threads
// with thread-enabled substyles to avoid uninitlialized data access.
const int nthreads = comm->nthreads;
if (comm->nthreads > 1) {
const int nall = atom->nlocal + atom->nghost;
if (eflag_atom)
memset(&eatom[0],0,nall*nthreads*sizeof(double));
if (vflag_atom)
memset(&vatom[0][0],0,6*nall*nthreads*sizeof(double));
}
for (m = 0; m < nstyles; m++) {
neighbor->nanglelist = nanglelist[m];
neighbor->anglelist = anglelist[m];

View File

@ -243,6 +243,14 @@ Atom::~Atom()
memory->destroy(next);
memory->destroy(permute);
memory->destroy(tag);
memory->destroy(type);
memory->destroy(mask);
memory->destroy(image);
memory->destroy(x);
memory->destroy(v);
memory->destroy(f);
// delete peratom data struct
for (int i = 0; i < nperatom; i++)

View File

@ -33,13 +33,12 @@ using namespace MathConst;
#define DELTA 16384
#define DELTA_BONUS 8192
int AtomVec::num_atom_vecs = 0;
/* ---------------------------------------------------------------------- */
AtomVec::AtomVec(LAMMPS *lmp) : Pointers(lmp)
{
nmax = 0;
ngrow = 0;
molecular = 0;
bonds_allow = angles_allow = dihedrals_allow = impropers_allow = 0;
@ -52,11 +51,14 @@ AtomVec::AtomVec(LAMMPS *lmp) : Pointers(lmp)
kokkosable = 0;
nargcopy = 0;
argcopy = NULL;
argcopy = nullptr;
threads = NULL;
tag = nullptr;
type = mask = nullptr;
image = nullptr;
x = v = f = nullptr;
++num_atom_vecs;
threads = nullptr;
// peratom variables auto-included in corresponding child style fields string
// these fields cannot be specified in the fields string
@ -97,48 +99,36 @@ AtomVec::~AtomVec()
int datatype,cols;
void *pdata;
--num_atom_vecs;
for (int i = 0; i < nargcopy; i++) delete [] argcopy[i];
delete [] argcopy;
if (num_atom_vecs == 0) {
memory->destroy(atom->tag);
memory->destroy(atom->type);
memory->destroy(atom->mask);
memory->destroy(atom->image);
memory->destroy(atom->x);
memory->destroy(atom->v);
memory->destroy(atom->f);
for (int i = 0; i < ngrow; i++) {
pdata = mgrow.pdata[i];
datatype = mgrow.datatype[i];
cols = mgrow.cols[i];
if (datatype == Atom::DOUBLE) {
if (cols == 0)
memory->destroy(*((double **) pdata));
else if (cols > 0)
memory->destroy(*((double ***) pdata));
else {
memory->destroy(*((double ***) pdata));
}
} else if (datatype == Atom::INT) {
if (cols == 0)
memory->destroy(*((int **) pdata));
else if (cols > 0)
memory->destroy(*((int ***) pdata));
else {
memory->destroy(*((int ***) pdata));
}
} else if (datatype == Atom::BIGINT) {
if (cols == 0)
memory->destroy(*((bigint **) pdata));
else if (cols > 0)
memory->destroy(*((bigint ***) pdata));
else {
memory->destroy(*((bigint ***) pdata));
}
for (int i = 0; i < ngrow; i++) {
pdata = mgrow.pdata[i];
datatype = mgrow.datatype[i];
cols = mgrow.cols[i];
if (datatype == Atom::DOUBLE) {
if (cols == 0)
memory->destroy(*((double **) pdata));
else if (cols > 0)
memory->destroy(*((double ***) pdata));
else {
memory->destroy(*((double ***) pdata));
}
} else if (datatype == Atom::INT) {
if (cols == 0)
memory->destroy(*((int **) pdata));
else if (cols > 0)
memory->destroy(*((int ***) pdata));
else {
memory->destroy(*((int ***) pdata));
}
} else if (datatype == Atom::BIGINT) {
if (cols == 0)
memory->destroy(*((bigint **) pdata));
else if (cols > 0)
memory->destroy(*((bigint ***) pdata));
else {
memory->destroy(*((bigint ***) pdata));
}
}
}
@ -194,7 +184,7 @@ void AtomVec::init()
deform_groupbit = domain->deform_groupbit;
h_rate = domain->h_rate;
if (lmp->kokkos != NULL && !kokkosable)
if (lmp->kokkos != nullptr && !kokkosable)
error->all(FLERR,"KOKKOS package requires a kokkos enabled atom_style");
}
@ -2492,8 +2482,8 @@ void AtomVec::setup_fields()
int AtomVec::process_fields(char *str, const char *default_str, Method *method)
{
if (str == NULL) {
method->index = NULL;
if (str == nullptr) {
method->index = nullptr;
return 0;
}
@ -2572,13 +2562,13 @@ void AtomVec::create_method(int nfield, Method *method)
void AtomVec::init_method(Method *method)
{
method->pdata = NULL;
method->datatype = NULL;
method->cols = NULL;
method->maxcols = NULL;
method->collength = NULL;
method->plength = NULL;
method->index = NULL;
method->pdata = nullptr;
method->datatype = nullptr;
method->cols = nullptr;
method->maxcols = nullptr;
method->collength = nullptr;
method->plength = nullptr;
method->index = nullptr;
}
/* ----------------------------------------------------------------------

View File

@ -209,10 +209,6 @@ class AtomVec : protected Pointers {
bool *threads;
// counter for atom vec instances
static int num_atom_vecs;
// local methods
void grow_nmax();

View File

@ -39,6 +39,7 @@ enum{NONE,LINEAR,SPLINE};
Bond::Bond(LAMMPS *lmp) : Pointers(lmp)
{
energy = 0.0;
virial[0] = virial[1] = virial[2] = virial[3] = virial[4] = virial[5] = 0.0;
writedata = 1;
allocated = 0;

View File

@ -34,6 +34,9 @@ BondHybrid::BondHybrid(LAMMPS *lmp) : Bond(lmp)
writedata = 0;
nstyles = 0;
has_quartic = -1;
nbondlist = nullptr;
maxbond = nullptr;
bondlist = nullptr;
}
/* ---------------------------------------------------------------------- */
@ -105,6 +108,18 @@ void BondHybrid::compute(int eflag, int vflag)
ev_init(eflag,vflag);
// need to clear per-thread storage once here, when using multiple threads
// with thread-enabled substyles to avoid uninitlialized data access.
const int nthreads = comm->nthreads;
if (nthreads > 1) {
const int nall = atom->nlocal + atom->nghost;
if (eflag_atom)
memset(&eatom[0],0,nall*nthreads*sizeof(double));
if (vflag_atom)
memset(&vatom[0][0],0,6*nall*nthreads*sizeof(double));
}
for (m = 0; m < nstyles; m++) {
neighbor->nbondlist = nbondlist[m];
neighbor->bondlist = bondlist[m];

View File

@ -239,7 +239,7 @@ void ComputeHexOrderAtom::compute_peratom()
}
qn[0] = usum/nnn;
qn[1] = vsum/nnn;
}
} else qn[0] = qn[1] = 0.0;
}
}

View File

@ -369,8 +369,8 @@ void PairHybrid::flags()
styles[m]->comm_reverse_off);
}
// single_enable = 1 if any sub-style is set
// respa_enable = 1 if any sub-style is set
// single_enable = 1 if all sub-styles are set
// respa_enable = 1 if all sub-styles are set
// manybody_flag = 1 if any sub-style is set
// no_virial_fdotr_compute = 1 if any sub-style is set
// ghostneigh = 1 if any sub-style is set
@ -380,9 +380,12 @@ void PairHybrid::flags()
single_enable = 0;
compute_flag = 0;
respa_enable = 0;
restartinfo = 0;
for (m = 0; m < nstyles; m++) {
if (styles[m]->single_enable) single_enable = 1;
if (styles[m]->respa_enable) respa_enable = 1;
if (styles[m]->single_enable) ++single_enable;
if (styles[m]->respa_enable) ++respa_enable;
if (styles[m]->restartinfo) ++restartinfo;
if (styles[m]->manybody_flag) manybody_flag = 1;
if (styles[m]->no_virial_fdotr_compute) no_virial_fdotr_compute = 1;
if (styles[m]->ghostneigh) ghostneigh = 1;
@ -396,6 +399,9 @@ void PairHybrid::flags()
if (styles[m]->compute_flag) compute_flag = 1;
if (styles[m]->centroidstressflag & 4) centroidstressflag |= 4;
}
single_enable = (single_enable == nstyles) ? 1 : 0;
respa_enable = (respa_enable == nstyles) ? 1 : 0;
restartinfo = (restartinfo == nstyles) ? 1 : 0;
init_svector();
}

View File

@ -18,11 +18,13 @@
#include "pair_zbl.h"
#include <cmath>
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "memory.h"
#include "error.h"
#include "utils.h"
// From J.F. Zeigler, J. P. Biersack and U. Littmark,
// "The Stopping and Range of Ions in Matter" volume 1, Pergamon, 1985.
@ -32,7 +34,9 @@ using namespace PairZBLConstants;
/* ---------------------------------------------------------------------- */
PairZBL::PairZBL(LAMMPS *lmp) : Pair(lmp) {}
PairZBL::PairZBL(LAMMPS *lmp) : Pair(lmp) {
writedata = 1;
}
/* ---------------------------------------------------------------------- */
@ -254,6 +258,101 @@ double PairZBL::init_one(int i, int j)
return cut_global;
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairZBL::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i;
for (i = 1; i <= atom->ntypes; i++) {
fwrite(&setflag[i][i],sizeof(int),1,fp);
if (setflag[i][i]) fwrite(&z[i],sizeof(double),1,fp);
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairZBL::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++) {
if (me == 0) utils::sfread(FLERR,&setflag[i][i],sizeof(int),1,fp,NULL,error);
MPI_Bcast(&setflag[i][i],1,MPI_INT,0,world);
if (setflag[i][i]) {
if (me == 0) utils::sfread(FLERR,&z[i],sizeof(double),1,fp,NULL,error);
MPI_Bcast(&z[i],1,MPI_DOUBLE,0,world);
}
}
for (i = 1; i <= atom->ntypes; i++)
for (j = 1; j <= atom->ntypes; j++)
set_coeff(i,j,z[i],z[j]);
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairZBL::write_restart_settings(FILE *fp)
{
fwrite(&cut_global,sizeof(double),1,fp);
fwrite(&cut_inner,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
fwrite(&tail_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairZBL::read_restart_settings(FILE *fp)
{
int me = comm->me;
if (me == 0) {
utils::sfread(FLERR,&cut_global,sizeof(double),1,fp,NULL,error);
utils::sfread(FLERR,&cut_inner,sizeof(double),1,fp,NULL,error);
utils::sfread(FLERR,&offset_flag,sizeof(int),1,fp,NULL,error);
utils::sfread(FLERR,&mix_flag,sizeof(int),1,fp,NULL,error);
utils::sfread(FLERR,&tail_flag,sizeof(int),1,fp,NULL,error);
}
MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut_inner,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
MPI_Bcast(&tail_flag,1,MPI_INT,0,world);
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void PairZBL::write_data(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
fprintf(fp,"%d %g\n",i,z[i]);
}
/* ----------------------------------------------------------------------
proc 0 writes all pairs to data file
------------------------------------------------------------------------- */
void PairZBL::write_data_all(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
for (int j = i; j <= atom->ntypes; j++)
fprintf(fp,"%d %d %g %g\n",i,j,z[i],z[j]);
}
/* ---------------------------------------------------------------------- */
double PairZBL::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq,

View File

@ -33,6 +33,12 @@ class PairZBL : public Pair {
void coeff(int, char **);
virtual void init_style();
virtual double init_one(int, int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_restart_settings(FILE *);
void read_restart_settings(FILE *);
void write_data(FILE *);
void write_data_all(FILE *);
double single(int, int, int, int, double, double, double, double &);
protected:

View File

@ -604,10 +604,10 @@ void Set::command(int narg, char **arg)
if (comm->me == 0) {
if (strcmp(arg[origarg],"cc") == 0)
utils::logmesg(lmp,fmt::format(" {} settings made for {} index {}",
utils::logmesg(lmp,fmt::format(" {} settings made for {} index {}\n",
allcount,arg[origarg],arg[origarg+1]));
else
utils::logmesg(lmp,fmt::format(" {} settings made for {}",
utils::logmesg(lmp,fmt::format(" {} settings made for {}\n",
allcount,arg[origarg]));
}
}

View File

@ -313,15 +313,9 @@ void Thermo::header()
{
if (lineflag == MULTILINE) return;
int loc = 0;
for (int i = 0; i < nfield; i++)
loc += sprintf(&line[loc],"%s ",keyword[i]);
sprintf(&line[loc],"\n");
if (me == 0) {
if (screen) fprintf(screen,"%s",line);
if (logfile) fprintf(logfile,"%s",line);
}
std::string hdr;
for (int i = 0; i < nfield; i++) hdr += keyword[i] + std::string(" ");
if (me == 0) utils::logmesg(lmp,hdr);
}
/* ---------------------------------------------------------------------- */
@ -385,11 +379,8 @@ void Thermo::compute(int flag)
// print line to screen and logfile
if (me == 0) {
if (screen) fprintf(screen,"%s",line);
if (logfile) {
fprintf(logfile,"%s",line);
if (flushflag) fflush(logfile);
}
utils::logmesg(lmp,line);
if (logfile && flushflag) fflush(logfile);
}
// set to 1, so that subsequent invocations of CPU time will be non-zero

View File

@ -430,6 +430,86 @@ size_t utils::trim_and_count_words(const std::string & text, const std::string &
return utils::count_words(utils::trim_comment(text), separators);
}
/* ----------------------------------------------------------------------
Convert string into words on whitespace while handling single and
double quotes.
------------------------------------------------------------------------- */
std::vector<std::string> utils::split_words(const std::string &text)
{
std::vector<std::string> list;
const char *buf = text.c_str();
std::size_t beg = 0;
std::size_t len = 0;
char c = *buf;
while (c) {
// leading whitespace
if (c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\f') {
c = *++buf;
++beg;
continue;
};
len = 0;
// handle escaped/quoted text.
quoted:
// handle single quote
if (c == '\'') {
c = *++buf;
++len;
while (((c != '\'') && (c != '\0'))
|| ((c == '\\') && (buf[1] == '\''))) {
if ((c == '\\') && (buf[1] == '\'')) {
++buf;
++len;
}
c = *++buf;
++len;
}
c = *++buf;
++len;
// handle double quote
} else if (c == '"') {
c = *++buf;
++len;
while (((c != '"') && (c != '\0'))
|| ((c == '\\') && (buf[1] == '"'))) {
if ((c == '\\') && (buf[1] == '"')) {
++buf;
++len;
}
c = *++buf;
++len;
}
c = *++buf;
++len;
}
// unquoted
while (1) {
if ((c == '\'') || (c == '"')) goto quoted;
// skip escaped quote
if ((c == '\\') && ((buf[1] == '\'') || (buf[1] == '"'))) {
++buf;
++len;
c = *++buf;
++len;
}
if ((c == ' ') || (c == '\t') || (c == '\r') || (c == '\n')
|| (c == '\f') || (c == '\0')) {
list.push_back(text.substr(beg,len));
beg += len;
break;
}
c = *++buf;
++len;
}
}
return list;
}
/* ----------------------------------------------------------------------
Return whether string is a valid integer number
------------------------------------------------------------------------- */

View File

@ -18,6 +18,7 @@
#include "lmptype.h"
#include <string>
#include <vector>
#include <cstdio>
namespace LAMMPS_NS {
@ -181,6 +182,20 @@ namespace LAMMPS_NS {
*/
size_t trim_and_count_words(const std::string & text, const std::string & separators = " \t\r\n\f");
/**
* \brief Take text and split into non-whitespace words.
*
* This can handle single and double quotes, escaped quotes,
* and escaped codes within quotes, but due to using an STL
* container and STL strings is rather slow because of making
* copies. Designed for parsing command lines and similar text
* and not for time critical processing. Use a tokenizer for that.
*
* \param text string that should be split
* \return STL vector with the words
*/
std::vector<std::string> split_words(const std::string &text);
/**
* \brief Check if string can be converted to valid integer
* \param text string that should be checked

View File

@ -0,0 +1,74 @@
{
OpenMP_cuda_init_part1
Memcheck:Leak
match-leak-kinds: reachable
fun:calloc
fun:_dlerror_run
fun:dlopen*
obj:*/lib*/libcuda.so.*
obj:*
...
fun:call_init.part.0
fun:_dl_init
obj:/usr/lib*/ld-2.*.so
}
{
OpenMP_init_part1
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
...
obj:/usr/lib*/libgomp.so.1*
fun:call_init.part.0
fun:_dl_init
}
{
OpenMP_init_part2
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
...
obj:/usr/lib*/libgomp.so.1*
fun:GOMP_parallel
...
fun:main
}
{
OpenMP_init_part3
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
...
obj:/usr/lib*/libgomp.so.1*
fun:omp_set_num_threads
...
fun:main
}
{
OpenMP_init_part4
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
...
fun:GOMP_parallel
...
}
{
OpenMP_init_part5
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
...
obj:/usr/lib*/libgomp.so.1*
fun:omp_set_num_threads
...
}
{
OpenMP_init_part6
Memcheck:Leak
match-leak-kinds: possible
fun:calloc
...
fun:GOMP_parallel
...
}

158
tools/valgrind/OpenMPI.supp Normal file
View File

@ -0,0 +1,158 @@
{
OpenMPI_MPI_init1
Memcheck:Leak
match-leak-kinds: indirect
fun:malloc
obj:*
...
fun:ompi_mpi_init
fun:PMPI_Init
fun:main
}
{
OpenMPI_MPI_init2
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
...
fun:mca_pml_base_select
}
{
OpenMPI_MPI_init3
Memcheck:Leak
match-leak-kinds: indirect
fun:malloc
...
fun:mca_pml_base_select
}
{
OpenMPI_MPI_init3
Memcheck:Leak
match-leak-kinds: definite
fun:?alloc
...
fun:ompi_mpi_init
fun:PMPI_Init
fun:main
}
{
OpenMPI_MPI_init4
Memcheck:Leak
match-leak-kinds: reachable
fun:?alloc
...
fun:ompi_mpi_init
fun:PMPI_Init
fun:main
}
{
OpenMPI_MPI_init5
Memcheck:Leak
match-leak-kinds: reachable
fun:?alloc
obj:*/libopen-pal.so.*
fun:mca_base_framework_components_open
fun:mca_base_framework_open
...
fun:ompi_mpi_init
fun:PMPI_Init
}
{
OpenMPI_MPI_init6
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:realloc
obj:*/libopen-pal.so.*
...
fun:opal_progress
fun:ompi_mpi_init
fun:PMPI_Init
fun:main
}
{
OpenMPI_MPI_init7
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:realloc
obj:*/libopen-pal.so.*
...
fun:orte_init
fun:ompi_mpi_init
}
{
OpenMPI_MPI_init8
Memcheck:Leak
match-leak-kinds: reachable
fun:?alloc
...
fun:orte_init
fun:ompi_mpi_init
}
{
OpenMPI_MPI_thread1
Memcheck:Leak
match-leak-kinds: definite
fun:?alloc
...
fun:start_thread
fun:clone
}
{
OpenMPI_MPI_thread2
Memcheck:Leak
match-leak-kinds: reachable
fun:?alloc
...
fun:start_thread
fun:clone
}
{
OpenMPI_comm_init1
Memcheck:Leak
match-leak-kinds: definite
fun:?alloc
...
fun:ompi_comm_enable
fun:mca_topo_base_cart_create
fun:PMPI_Cart_create
}
{
OpenMPI_comm_init2
Memcheck:Leak
match-leak-kinds: reachable
fun:?alloc
...
fun:ompi_comm_enable
fun:mca_topo_base_cart_create
fun:PMPI_Cart_create
}
{
OpenMPI_comm_init3
Memcheck:Leak
match-leak-kinds: reachable
fun:realloc
...
fun:mca_topo_base_comm_select
fun:PMPI_Cart_create
}
{
OpenMPI_comm_init4
Memcheck:Leak
match-leak-kinds: reachable
fun:?alloc
...
fun:mca_topo_base_comm_select
fun:PMPI_Cart_create
}
{
OpenMPI_dlopen_strdup1
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:strdup
obj:*
...
fun:dlopen*
}

145
tools/valgrind/Python3.supp Normal file
View File

@ -0,0 +1,145 @@
{
Python3_main_1
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:PyObject_Malloc
...
fun:_Py_UnixMain
}
{
Python3_main_2
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:PyObject_Malloc
fun:PyUnicode_New
...
fun:_Py_Init_posix
...
}
{
Python3_main_3
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:PyObject_Malloc
...
fun:_Py_UnixMain
...
}
{
Python3_main_4
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:PyObject_Malloc
fun:PyUnicode_New
...
fun:PyInit_posix
...
}
{
Python3_eval_1
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:PyObject_Malloc
...
fun:_PyEval_EvalFrameDefault
}
{
Python3_eval_2
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:PyObject_Malloc
...
fun:_PyEval_EvalFrameDefault
}
{
Python3_eval_3
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:PyObject_Malloc
...
fun:_PyEval_EvalCodeWithName
fun:PyEval_EvalCodeEx
}
{
Python3_call_1
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:PyObject_Malloc
fun:PyCode_New
...
fun:_PyCFunction_FastCallKeywords
}
{
Python3_call_2
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:PyObject_Malloc
fun:PyUnicode_New
...
fun:_PyMethodDef_RawFastCallKeywords
fun:_PyCFunction_FastCallKeywords
}
{
Python3_call_3
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:PyObject_Malloc
fun:PyBytes_FromStringAndSize
...
fun:_PyMethodDef_RawFastCallKeywords
}
{
Python3_call_4
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:PyObject_Malloc
fun:_PyObject_GC_Malloc
fun:PyType_GenericAlloc
...
fun:_PyMethodDef_RawFastCallKeywords
fun:_PyCFunction_FastCallKeywords
...
}
{
Python3_call_5
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:PyObject_Malloc
fun:_PyObject_GC_Malloc
fun:PyType_GenericAlloc
...
fun:_PyMethodDef_RawFastCallKeywords
}
{
Python3_tuple_1
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:PyObject_Malloc
fun:_PyObject_GC_Malloc
fun:_PyObject_GC_NewVar
fun:PyTuple_New
...
}
{
Python3_unicode_1
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:PyObject_Malloc
fun:PyUnicode_New
fun:PyUnicode_FromKindAndData
...
}

View File

@ -26,6 +26,8 @@
// whether to print verbose output (i.e. not capturing LAMMPS screen output).
bool verbose = false;
using LAMMPS_NS::utils::split_words;
namespace LAMMPS_NS {
using ::testing::Eq;
@ -127,6 +129,17 @@ int main(int argc, char **argv)
{
MPI_Init(&argc, &argv);
::testing::InitGoogleMock(&argc, argv);
// handle arguments passed via environment variable
if (const char *var = getenv("TEST_ARGS")) {
std::vector<std::string> env = split_words(var);
for (auto arg : env) {
if (arg == "-v") {
verbose = true;
}
}
}
if ((argc > 1) && (strcmp(argv[1], "-v") == 0)) verbose = true;
int rv = RUN_ALL_TESTS();

View File

@ -37,20 +37,15 @@ target_link_libraries(pair_style PRIVATE lammps style_tests)
file(GLOB MOL_PAIR_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/mol-pair-*.yaml)
foreach(TEST ${MOL_PAIR_TESTS})
string(REGEX REPLACE "^.*mol-pair-(.*)\.yaml" "MolPairStyle:\\1" TNAME ${TEST})
add_test(NAME ${TNAME}
COMMAND ${CMAKE_COMMAND} -DTEST_EXECUTABLE=$<TARGET_FILE:pair_style>
-DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME ${TNAME} COMMAND pair_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
endforeach()
# tests for metal-like atomic systems and related pair styles
file(GLOB ATOMIC_PAIR_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/atomic-pair-*.yaml)
foreach(TEST ${ATOMIC_PAIR_TESTS})
string(REGEX REPLACE "^.*atomic-pair-(.*)\.yaml" "AtomicPairStyle:\\1" TNAME ${TEST})
add_test(NAME ${TNAME}
COMMAND ${CMAKE_COMMAND} -DTEST_EXECUTABLE=$<TARGET_FILE:pair_style>
-DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME ${TNAME} COMMAND pair_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
endforeach()
@ -58,10 +53,7 @@ endforeach()
file(GLOB MANYBODY_PAIR_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/manybody-pair-*.yaml)
foreach(TEST ${MANYBODY_PAIR_TESTS})
string(REGEX REPLACE "^.*manybody-pair-(.*)\.yaml" "ManybodyPairStyle:\\1" TNAME ${TEST})
add_test(NAME ${TNAME}
COMMAND ${CMAKE_COMMAND} -DTEST_EXECUTABLE=$<TARGET_FILE:pair_style>
-DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME ${TNAME} COMMAND pair_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
endforeach()
@ -72,10 +64,8 @@ target_link_libraries(bond_style PRIVATE lammps style_tests)
file(GLOB BOND_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/bond-*.yaml)
foreach(TEST ${BOND_TESTS})
string(REGEX REPLACE "^.*bond-(.*)\.yaml" "BondStyle:\\1" TNAME ${TEST})
add_test(NAME ${TNAME}
COMMAND ${CMAKE_COMMAND} -DTEST_EXECUTABLE=$<TARGET_FILE:bond_style>
-DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME ${TNAME} COMMAND bond_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
endforeach()
# angle style tester
@ -85,8 +75,6 @@ target_link_libraries(angle_style PRIVATE lammps style_tests)
file(GLOB ANGLE_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/angle-*.yaml)
foreach(TEST ${ANGLE_TESTS})
string(REGEX REPLACE "^.*angle-(.*)\.yaml" "AngleStyle:\\1" TNAME ${TEST})
add_test(NAME ${TNAME}
COMMAND ${CMAKE_COMMAND} -DTEST_EXECUTABLE=$<TARGET_FILE:angle_style>
-DTEST_INPUT=${TEST} -DTEST_NAME=${TNAME} -P ${CMAKE_CURRENT_SOURCE_DIR}/TestRunner.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME ${TNAME} COMMAND angle_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
endforeach()

View File

@ -1,8 +0,0 @@
# workaround to allow passing extra arguments to test runs
# through ctest via a TEST_ARGS environment variable
# This can be used to, e.g. reset reference data for individual
# tests from the build folder with "env TEST_ARGS=-u ctest -R sometest"
execute_process(COMMAND ${TEST_EXECUTABLE} ${TEST_INPUT} $ENV{TEST_ARGS} RESULT_VARIABLE rv)
if(NOT "${rv}" STREQUAL "0")
message(FATAL_ERROR "Test ${TEST_NAME} failed with status ${rv}")
endif()

View File

@ -14,12 +14,17 @@
#include "test_main.h"
#include "test_config.h"
#include "test_config_reader.h"
#include "utils.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <mpi.h>
#include <vector>
using LAMMPS_NS::utils::split_words;
// common read_yaml_file function
bool read_yaml_file(const char *infile, TestConfig &config)
@ -76,6 +81,21 @@ int main(int argc, char **argv)
return 2;
}
// handle arguments passed via environment variable
if (const char *var = getenv("TEST_ARGS")) {
std::vector<std::string> env = split_words(var);
for (auto arg : env) {
if (arg == "-u") {
generate_yaml_file(argv[1], test_config);
return 0;
} else if (arg == "-s") {
print_stats = true;
} else if (arg == "-v") {
verbose = true;
}
}
}
int iarg = 2;
while (iarg < argc) {

View File

@ -0,0 +1,157 @@
---
lammps_version: 15 Jun 2020
date_generated: Tue Jun 23 06:48:10 202
epsilon: 5e-13
prerequisites: ! |
pair mliap
pair zbl
pre_commands: ! |
variable newton_pair delete
variable newton_pair index on
post_commands: ! ""
input_file: in.manybody
pair_style: hybrid/overlay zbl 4.0 4.8 mliap model linear Ta06A.mliap.model descriptor sna Ta06A.mliap.descriptor
pair_coeff: ! |
1*8 1*8 zbl 73 73
* * mliap Ta Ta Ta Ta Ta Ta Ta Ta
extract: ! ""
natoms: 64
init_vdwl: -473.569864629026
init_coul: 0
init_stress: ! |2-
3.9989504688551557e+02 4.0778136516737010e+02 4.3596322435184823e+02 -2.5242497284339528e+01 1.2811620806363672e+02 2.8644673361821371e+00
init_forces: ! |2
2 -7.6696525239232614e+00 -3.7674335682223381e-01 -5.7958054718422796e+00
4 -4.7103509354198474e+00 9.2783458784125976e+00 4.3108702582741394e+00
5 -2.0331946400488965e+00 -2.9593716047756224e+00 -1.6136351145373165e+00
9 5.2043326273130175e-01 -2.9340446386400014e+00 -7.6461969078455798e+00
10 -6.2786875145099574e-01 5.6606570005199780e-02 -5.3746300485699585e+00
13 -3.2260600618006539e+00 1.3854745225224621e+01 -1.8038061855949397e+00
11 8.1946917251451801e+00 -6.7267140406524657e+00 2.5930013855034550e+00
12 -1.4328402235895096e+01 -8.0774309292156143e+00 -7.6980199570965535e+00
19 -2.9132243097469304e+00 -1.1018213008189472e+00 -2.8349170179881722e+00
21 3.9250706073854151e+00 -1.0562396695052101e+00 -9.1632104209006702e+00
8 2.7148403621334438e-01 1.3063473238306025e+00 -1.1268098385676197e+00
29 -6.6151960592236190e+00 1.6410275382967952e+00 -1.0570398181017480e+00
16 3.7310502876344760e+00 1.9788328492752696e+00 1.5687925430243098e+01
17 5.0755393464331515e+00 6.1278868384113512e+00 -1.0750955741273687e+01
27 4.3406014531279222e+00 -2.9009678649007347e+00 5.2435008444617166e+00
3 -2.9221261341044469e-01 -1.2984917885683769e+00 2.2320440844884373e+00
18 1.7371660543384104e+00 3.0620693584379275e+00 7.2701166654624956e+00
24 3.1860163425620680e+00 4.7170150104555351e+00 6.3461114127051061e+00
26 -1.8170871697803483e+00 -3.7700946621068332e-01 6.2457161242681802e-01
1 -3.7538180163781281e+00 8.8612947043788459e+00 6.7712977816731925e+00
32 -7.8831496558114598e+00 4.7917666582558249e-01 8.5821461480120664e-01
36 1.7666626040313678e+00 -4.4698105712986056e+00 2.0563602888033050e-01
37 -3.8714388913204454e+00 5.6357721515897268e+00 -6.6078854304621739e+00
7 -3.0573043543220679e+00 -4.0575899915120344e+00 1.5283788878527855e+00
41 2.4000089474498232e-01 1.0045144396502841e+00 -2.3032449685213674e+00
45 -1.8910274064700999e-01 3.9137627573846210e+00 -7.4450993876429434e+00
15 -8.6349846297037978e+00 9.1996942753987128e+00 -9.5905201240122828e+00
33 1.0742815926879521e+01 -5.8142728701457003e+00 9.7282423280124668e+00
44 8.0196107396135172e+00 -8.1793730426384510e+00 3.5131695854462555e+00
6 1.8086748683348595e+00 4.6479727629048604e+00 3.0425695895914578e-01
49 -2.3978299788759889e+00 -1.2283692236805230e+01 -8.3755937565454222e+00
53 5.8389424736085607e+00 7.5295796786576119e+00 5.5403096028203374e+00
14 -2.9498732270039882e+00 8.5589611530655603e+00 2.0530716609447491e-01
23 2.8936071278420714e+00 5.3816164530412882e+00 7.4597216732837177e+00
40 9.5193696695210672e+00 -7.0213638399035494e+00 -1.5692669012530698e+00
57 2.1375440189893022e+00 -1.3001299791681298e+00 -8.9740026386466110e-01
61 9.6892046530363873e-01 3.6493959386458283e+00 -8.3809793809505218e-01
31 -3.1645464836586603e+00 3.4678442856970015e-01 -3.0903933004747017e+00
48 2.1755560727357048e+00 2.9996491762493229e+00 -9.9575511910098058e-01
22 -1.5634125465245702e+01 8.9090677007239911e+00 -1.2750204519006152e+01
52 1.2943573147098915e+01 -1.1745909799528659e+01 1.6522312348562515e+01
30 -3.6949627314218136e+00 2.0505225752289307e+00 -1.5676706969561185e+00
56 -3.5699586538972254e-02 1.5545384984529775e+00 -5.2139902048630420e+00
60 -5.1586404521695721e+00 -1.5178664164309573e+01 -9.8559725391425026e+00
64 7.5837965251215627e+00 7.5954689486766194e+00 1.6804021764142050e+01
35 2.5212001799950725e+00 -2.2938190564661243e+00 5.7029334689778004e+00
39 4.1718406489245954e+00 -6.3270387696640595e+00 -1.1208012916569130e+01
42 -9.4741999244791391e+00 -6.3134658287662759e+00 -3.6928028439517928e+00
34 -1.3523086688998043e+00 -1.1117518205645371e-01 1.6057041203339621e+00
43 2.7218639962411589e-01 -1.3813634477251094e+01 5.5147832931992469e-01
47 5.1131478665605368e+00 2.3800985688973464e+00 5.1348001359881970e+00
38 1.4632813171776620e+00 -3.3182377007830421e-01 -8.4412322782159954e-01
51 -3.0166275666360338e+00 1.1037977712957444e+01 8.8691052932904118e+00
25 8.8078411119651601e-01 -1.4554648001614772e+00 1.6812657581308250e+00
46 -3.5282857552811713e+00 -5.1713579630178099e+00 1.2477491203990516e+01
55 4.9846400582125172e+00 -8.4400769236810991e+00 -6.5776931744173242e+00
59 9.0343971306644413e+00 4.2302611807585278e+00 -1.8088550980511922e+00
63 5.8570431431678962e+00 -6.2896068000076291e+00 -3.8788666930728652e+00
20 -1.6464048708371493e+01 2.4791517492525514e+00 3.4072780064525776e-01
50 3.6161933080447870e+00 5.6291551969069200e+00 -6.9709721613230791e-01
54 4.6678942858445627e+00 -5.7948610984029827e+00 -4.7138910958393687e+00
58 5.2652486142639470e+00 -2.5529130533710904e+00 2.0016357749194574e-01
62 -6.2693637951458747e+00 5.5593866650560697e+00 -4.0417158962655790e+00
28 -7.0542478046176460e-01 1.0981989037209763e+00 1.3116499712117605e+01
run_vdwl: -489.468066110652
run_coul: 0
run_stress: ! |2-
3.7167872895847830e+02 3.7917710068041873e+02 4.0385320198584725e+02 -1.3691599706785620e+01 9.5517308985478394e+01 9.7589276560909521e+00
run_forces: ! |2
2 -6.0189354199893019e+00 -5.0918745113944830e-01 -5.3313245647285648e+00
4 -3.0213465402043487e+00 6.9725231357285153e+00 2.1167504663792407e+00
5 -1.7586848423194326e+00 -3.2933741468811117e+00 -9.3080751290254016e-01
9 8.0189242689618823e-01 -3.0847017825088363e+00 -6.9542340364711066e+00
10 -8.9128976791778891e-01 -6.7393019870597731e-02 -3.2723844475537320e+00
13 -4.8758021083011011e-01 1.0840591566757565e+01 1.4417301279067557e-01
11 4.5456393443054974e+00 -4.5148464719144279e+00 2.1620709337140723e-01
12 -1.0605260639103403e+01 -3.7437284480399842e+00 -4.2782571870680659e+00
19 -2.7367744247531327e+00 -8.2975485638465007e-01 -2.0790334392182368e+00
21 3.4454631697777542e+00 -7.8278081568080538e-01 -9.0435968147049799e+00
8 -5.4873779786283237e-02 1.5854566692139447e+00 -1.0066392618014397e+00
29 -6.1417582599413354e+00 3.9164321009856218e-01 9.7685688363946144e-02
16 2.6358192742443785e+00 1.7064832375902417e-01 1.0429654093017437e+01
17 2.6492424666949455e+00 4.1865915382220500e+00 -9.0595086171557959e+00
27 3.2706304707445777e+00 -1.9852603643313336e+00 4.2180376607986387e+00
3 -8.3868957617451234e-01 -8.8585183150041003e-01 2.9968107645220114e+00
18 1.1206473927094001e+00 2.2123081794070760e+00 5.8589201221087279e+00
24 2.9885018662472969e+00 2.9838762041792903e+00 4.3228545839763228e+00
26 -1.8763705008872573e+00 -1.2599849620161119e-01 6.2992383249895434e-01
1 -2.6200062192163260e+00 6.5895070779555445e+00 5.6608861291961485e+00
32 -6.1422237837124252e+00 -5.1210288634459333e-01 5.4514825686867274e-01
36 1.2821238454090340e+00 -3.9489216486981480e+00 -8.6269270447000523e-01
37 -2.7537235028447959e+00 4.6513692386669554e+00 -5.6290489372162806e+00
7 -2.0012695381122851e+00 -2.5159443018298582e+00 6.2116996571725824e-01
41 1.0342805569135010e+00 1.6523945993277342e+00 -1.5772104911433944e+00
45 3.0267523524516227e-01 2.2378774625062987e+00 -4.7768000279857130e+00
15 -5.6397727632249390e+00 5.8479631324846224e+00 -5.1195271857482370e+00
33 7.4141036509796736e+00 -2.7884535553661554e+00 6.2033448623898471e+00
44 6.9463399563146995e+00 -6.4872117822671029e+00 1.0874644094280221e+00
6 2.2991165379551060e+00 3.3795036971656316e+00 2.2660197467513185e-01
49 -1.1421201760383086e+00 -1.0752096896646723e+01 -6.5722133309475623e+00
53 3.4161226658911676e+00 5.7780690168335100e+00 4.1927204150859296e+00
14 -2.8043941505268619e+00 6.4438899074281046e+00 1.6101766369425701e+00
23 2.3598327627157203e+00 4.6653030563297317e+00 6.1390590162436585e+00
40 7.4374269075019397e+00 -4.3433135301581913e+00 -4.0455383168565001e-01
57 2.1690816717712806e+00 -1.3704555520632966e+00 -6.0759785348038831e-01
61 1.1003078657122041e+00 3.5366731859023495e+00 -1.4254057900337927e-01
31 -2.6098520190441916e+00 2.2795861569826048e-01 -2.7458401111959478e+00
48 2.2413400699812356e+00 3.3580569902180799e+00 -1.2661375290157366e+00
22 -9.9116182027989090e+00 3.7537117149502670e+00 -6.2041013601324995e+00
52 8.0098592133005599e+00 -5.9122394581044402e+00 1.0101406704527053e+01
30 -3.1388355174211191e+00 1.6122297260129153e+00 -1.1081505352088727e+00
56 5.1189498205615092e-01 1.1342419773973298e+00 -4.2814131693242929e+00
60 -2.3372986868253895e+00 -1.1397492261021370e+01 -7.3457073057764726e+00
64 4.3353125159604211e+00 4.7586391643778230e+00 1.2965475525931369e+01
35 1.5632007556515235e+00 -9.5418452153129252e-01 4.1257737822747229e+00
39 2.1765892902345456e+00 -3.8586421759387384e+00 -9.0645286263473448e+00
42 -8.1195815614370250e+00 -5.8763972130775572e+00 -3.1222551004416705e+00
34 -1.4244505798620775e+00 -3.3429770690754701e-02 1.9184700282588940e+00
43 -2.7912198462705029e-01 -1.1167330547751900e+01 -6.3698536543291662e-02
47 4.2785305080294629e+00 1.5325832230443761e+00 3.3589203411901534e+00
38 1.9992052623036145e+00 -4.2983333004702029e-01 -1.0733048030047021e+00
51 -1.7223504936880034e+00 9.2697024243389841e+00 7.0442106476591402e+00
25 6.1001404235466761e-01 -1.1881822928224532e+00 1.5040997261686671e+00
46 -2.2570016757486253e+00 -4.0040746828789366e+00 9.8689525243895222e+00
55 2.5539298626493867e+00 -5.6377686174334265e+00 -3.5151115361687300e+00
59 6.7962624211316438e+00 2.0240756728927010e+00 -8.0188277109815520e-01
63 4.4200660412946480e+00 -4.6975137723775253e+00 -2.5446183902678623e+00
20 -1.2201950287425831e+01 8.9293356122794254e-01 -6.4486216284158071e-01
50 3.4180454936299873e+00 5.0411589857253878e+00 -5.8332155561549115e-01
54 2.4972457061023641e+00 -3.7172022065563843e+00 -2.6131222195234560e+00
58 4.3539661764216335e+00 -1.4572581960607045e+00 -9.9173296914446007e-01
62 -5.1368600009373031e+00 3.5663926174152052e+00 -2.2708852648200208e+00
28 -3.1071530373299716e-01 1.5750530088540271e+00 9.6837465049814764e+00
...

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