Merge branch 'master' into pair-potential-file-unit-convert
This commit is contained in:
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>`
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 |
|
||||
|
||||
@ -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
136
doc/src/pair_mliap.rst
Normal 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
|
||||
@ -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>` -
|
||||
|
||||
@ -1826,6 +1826,7 @@ Mj
|
||||
mK
|
||||
mkdir
|
||||
mkv
|
||||
mliap
|
||||
mlparks
|
||||
Mniszewski
|
||||
mnt
|
||||
@ -1995,6 +1996,7 @@ Neel
|
||||
Neelov
|
||||
Negre
|
||||
nelem
|
||||
nelems
|
||||
Nelement
|
||||
Nelements
|
||||
nemd
|
||||
|
||||
@ -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
|
||||
|
||||
@ -0,0 +1 @@
|
||||
../../../../../potentials/SiCGe.tersoff
|
||||
@ -16,4 +16,4 @@ mass ${Si} 28.08550
|
||||
###########################
|
||||
|
||||
pair_style tersoff
|
||||
pair_coeff * * Si.opt.tersoff Si(D)
|
||||
pair_coeff * * SiCGe.tersoff Si(D)
|
||||
|
||||
368
examples/USER/phonon/dynamical_matrix_command/Silicon/results/dynmat.dat
Executable file → Normal file
368
examples/USER/phonon/dynamical_matrix_command/Silicon/results/dynmat.dat
Executable file → Normal 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
|
||||
|
||||
47
examples/USER/phonon/dynamical_matrix_command/Silicon/results/out.silicon
Executable file → Normal file
47
examples/USER/phonon/dynamical_matrix_command/Silicon/results/out.silicon
Executable file → Normal 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
|
||||
|
||||
@ -0,0 +1 @@
|
||||
../../../../../potentials/SiCGe.tersoff
|
||||
@ -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)
|
||||
|
||||
@ -0,0 +1 @@
|
||||
../Silicon/ff-silicon.lmp
|
||||
@ -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
|
||||
@ -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
|
||||
@ -0,0 +1 @@
|
||||
../Silicon/silicon_input_file.lmp
|
||||
1
examples/mliap/InP_JCPA2020.mliap
Symbolic link
1
examples/mliap/InP_JCPA2020.mliap
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/InP_JCPA2020.mliap
|
||||
1
examples/mliap/InP_JCPA2020.mliap.descriptor
Symbolic link
1
examples/mliap/InP_JCPA2020.mliap.descriptor
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/InP_JCPA2020.mliap.descriptor
|
||||
1
examples/mliap/InP_JCPA2020.mliap.model
Symbolic link
1
examples/mliap/InP_JCPA2020.mliap.model
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/InP_JCPA2020.mliap.model
|
||||
1
examples/mliap/Ta06A.mliap
Symbolic link
1
examples/mliap/Ta06A.mliap
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/Ta06A.mliap
|
||||
1
examples/mliap/Ta06A.mliap.descriptor
Symbolic link
1
examples/mliap/Ta06A.mliap.descriptor
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/Ta06A.mliap.descriptor
|
||||
1
examples/mliap/Ta06A.mliap.model
Symbolic link
1
examples/mliap/Ta06A.mliap.model
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/Ta06A.mliap.model
|
||||
1
examples/mliap/W.quadratic.mliap
Symbolic link
1
examples/mliap/W.quadratic.mliap
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/W.quadratic.mliap
|
||||
1
examples/mliap/W.quadratic.mliap.descriptor
Symbolic link
1
examples/mliap/W.quadratic.mliap.descriptor
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/W.quadratic.mliap.descriptor
|
||||
1
examples/mliap/W.quadratic.mliap.model
Symbolic link
1
examples/mliap/W.quadratic.mliap.model
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/W.quadratic.mliap.model
|
||||
1
examples/mliap/WBe_Wood_PRB2019.mliap
Symbolic link
1
examples/mliap/WBe_Wood_PRB2019.mliap
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/WBe_Wood_PRB2019.mliap
|
||||
1
examples/mliap/WBe_Wood_PRB2019.mliap.descriptor
Symbolic link
1
examples/mliap/WBe_Wood_PRB2019.mliap.descriptor
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/WBe_Wood_PRB2019.mliap.descriptor
|
||||
1
examples/mliap/WBe_Wood_PRB2019.mliap.model
Symbolic link
1
examples/mliap/WBe_Wood_PRB2019.mliap.model
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/WBe_Wood_PRB2019.mliap.model
|
||||
53
examples/mliap/in.mliap.snap.Ta06A
Normal file
53
examples/mliap/in.mliap.snap.Ta06A
Normal 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}
|
||||
|
||||
56
examples/mliap/in.mliap.snap.WBe.PRB2019
Normal file
56
examples/mliap/in.mliap.snap.WBe.PRB2019
Normal 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}
|
||||
|
||||
46
examples/mliap/in.mliap.snap.chem
Normal file
46
examples/mliap/in.mliap.snap.chem
Normal 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}
|
||||
|
||||
55
examples/mliap/in.mliap.snap.quadratic
Normal file
55
examples/mliap/in.mliap.snap.quadratic
Normal 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}
|
||||
|
||||
156
examples/mliap/log.21Jun20.mliap.snap.Ta06A.g++.1
Normal file
156
examples/mliap/log.21Jun20.mliap.snap.Ta06A.g++.1
Normal 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
|
||||
156
examples/mliap/log.21Jun20.mliap.snap.Ta06A.g++.4
Normal file
156
examples/mliap/log.21Jun20.mliap.snap.Ta06A.g++.4
Normal 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
|
||||
165
examples/mliap/log.21Jun20.mliap.snap.WBe.PRB201.g++.1
Normal file
165
examples/mliap/log.21Jun20.mliap.snap.WBe.PRB201.g++.1
Normal 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
|
||||
165
examples/mliap/log.21Jun20.mliap.snap.WBe.PRB201.g++.4
Normal file
165
examples/mliap/log.21Jun20.mliap.snap.WBe.PRB201.g++.4
Normal 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
|
||||
158
examples/mliap/log.21Jun20.mliap.snap.chem.g++.1
Normal file
158
examples/mliap/log.21Jun20.mliap.snap.chem.g++.1
Normal 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
|
||||
158
examples/mliap/log.21Jun20.mliap.snap.chem.g++.4
Normal file
158
examples/mliap/log.21Jun20.mliap.snap.chem.g++.4
Normal 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
|
||||
151
examples/mliap/log.21Jun20.mliap.snap.quadratic.g++.1
Normal file
151
examples/mliap/log.21Jun20.mliap.snap.quadratic.g++.1
Normal 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
|
||||
151
examples/mliap/log.21Jun20.mliap.snap.quadratic.g++.4
Normal file
151
examples/mliap/log.21Jun20.mliap.snap.quadratic.g++.4
Normal 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
|
||||
154
examples/mliap/log.snap.Ta06A.ref
Normal file
154
examples/mliap/log.snap.Ta06A.ref
Normal 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
|
||||
19
potentials/InP_JCPA2020.mliap
Normal file
19
potentials/InP_JCPA2020.mliap
Normal 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
|
||||
|
||||
20
potentials/InP_JCPA2020.mliap.descriptor
Normal file
20
potentials/InP_JCPA2020.mliap.descriptor
Normal 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
|
||||
485
potentials/InP_JCPA2020.mliap.model
Normal file
485
potentials/InP_JCPA2020.mliap.model
Normal 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
|
||||
@ -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.
|
||||
|
||||
|
||||
@ -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
17
potentials/Ta06A.mliap
Normal 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
|
||||
|
||||
21
potentials/Ta06A.mliap.descriptor
Normal file
21
potentials/Ta06A.mliap.descriptor
Normal 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
|
||||
|
||||
37
potentials/Ta06A.mliap.model
Normal file
37
potentials/Ta06A.mliap.model
Normal 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
|
||||
15
potentials/W.quadratic.mliap
Normal file
15
potentials/W.quadratic.mliap
Normal 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
|
||||
|
||||
20
potentials/W.quadratic.mliap.descriptor
Normal file
20
potentials/W.quadratic.mliap.descriptor
Normal 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
|
||||
|
||||
502
potentials/W.quadratic.mliap.model
Normal file
502
potentials/W.quadratic.mliap.model
Normal 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
|
||||
16
potentials/WBe_Wood_PRB2019.mliap
Normal file
16
potentials/WBe_Wood_PRB2019.mliap
Normal 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
|
||||
|
||||
20
potentials/WBe_Wood_PRB2019.mliap.descriptor
Normal file
20
potentials/WBe_Wood_PRB2019.mliap.descriptor
Normal 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
|
||||
|
||||
117
potentials/WBe_Wood_PRB2019.mliap.model
Normal file
117
potentials/WBe_Wood_PRB2019.mliap.model
Normal 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]
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
31
src/MLIAP/mliap_descriptor.cpp
Normal file
31
src/MLIAP/mliap_descriptor.cpp
Normal 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(){}
|
||||
|
||||
43
src/MLIAP/mliap_descriptor.h
Normal file
43
src/MLIAP/mliap_descriptor.h
Normal 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
|
||||
|
||||
459
src/MLIAP/mliap_descriptor_snap.cpp
Normal file
459
src/MLIAP/mliap_descriptor_snap.cpp
Normal 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;
|
||||
}
|
||||
|
||||
50
src/MLIAP/mliap_descriptor_snap.h
Normal file
50
src/MLIAP/mliap_descriptor_snap.h
Normal 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
162
src/MLIAP/mliap_model.cpp
Normal 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
41
src/MLIAP/mliap_model.h
Normal 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
|
||||
|
||||
79
src/MLIAP/mliap_model_linear.cpp
Normal file
79
src/MLIAP/mliap_model_linear.cpp
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
33
src/MLIAP/mliap_model_linear.h
Normal file
33
src/MLIAP/mliap_model_linear.h
Normal 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
|
||||
|
||||
103
src/MLIAP/mliap_model_quadratic.cpp
Normal file
103
src/MLIAP/mliap_model_quadratic.cpp
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
33
src/MLIAP/mliap_model_quadratic.h
Normal file
33
src/MLIAP/mliap_model_quadratic.h
Normal 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
335
src/MLIAP/pair_mliap.cpp
Normal 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
59
src/MLIAP/pair_mliap.h
Normal 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
|
||||
|
||||
@ -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 \
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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];
|
||||
|
||||
@ -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++)
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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];
|
||||
|
||||
@ -239,7 +239,7 @@ void ComputeHexOrderAtom::compute_peratom()
|
||||
}
|
||||
qn[0] = usum/nnn;
|
||||
qn[1] = vsum/nnn;
|
||||
}
|
||||
} else qn[0] = qn[1] = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
101
src/pair_zbl.cpp
101
src/pair_zbl.cpp
@ -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,
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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]));
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
15
src/utils.h
15
src/utils.h
@ -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
|
||||
|
||||
74
tools/valgrind/OpenMP.supp
Normal file
74
tools/valgrind/OpenMP.supp
Normal 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
158
tools/valgrind/OpenMPI.supp
Normal 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
145
tools/valgrind/Python3.supp
Normal 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
|
||||
...
|
||||
}
|
||||
@ -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();
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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()
|
||||
@ -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) {
|
||||
|
||||
|
||||
157
unittest/force-styles/tests/manybody-pair-mliap_snap.yaml
Normal file
157
unittest/force-styles/tests/manybody-pair-mliap_snap.yaml
Normal 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
Reference in New Issue
Block a user