diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index d84761de42..960bc69d2c 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -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) diff --git a/cmake/presets/mingw-cross.cmake b/cmake/presets/mingw-cross.cmake index 588ad04138..d187586df8 100644 --- a/cmake/presets/mingw-cross.cmake +++ b/cmake/presets/mingw-cross.cmake @@ -1,6 +1,6 @@ set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU - GRANULAR KSPACE LATTE MANYBODY MC MISC 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 diff --git a/cmake/presets/most.cmake b/cmake/presets/most.cmake index aa5b60d146..bddefc077b 100644 --- a/cmake/presets/most.cmake +++ b/cmake/presets/most.cmake @@ -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 diff --git a/doc/src/Build_development.rst b/doc/src/Build_development.rst index 09eca00c69..6b72a73cd0 100644 --- a/doc/src/Build_development.rst +++ b/doc/src/Build_development.rst @@ -219,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 diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 759c0bfbb3..fc5a49bf8a 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -183,6 +183,7 @@ OPT. * :doc:`mesont/tpm ` * :doc:`mgpt ` * :doc:`mie/cut (g) ` + * :doc:`mliap ` * :doc:`mm3/switch3/coulgauss/long ` * :doc:`momb ` * :doc:`morse (gkot) ` @@ -228,7 +229,6 @@ OPT. * :doc:`smd/ulsph ` * :doc:`smtbq ` * :doc:`snap (k) ` - * :doc:`snap (k) ` * :doc:`soft (go) ` * :doc:`sph/heatconduction ` * :doc:`sph/idealgas ` diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index cb5a014ede..1258f1a68f 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -44,6 +44,7 @@ page gives those details. * :ref:`MC ` * :ref:`MESSAGE ` * :ref:`MISC ` + * :ref:`MLIAP ` * :ref:`MOLECULE ` * :ref:`MPIIO ` * :ref:`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` needs to be installed. + +**Author:** Aidan Thompson (Sandia). + +**Supporting info:** + +* src/MLIAP: filenames -> commands +* :doc:`pair_style mliap ` +* examples/mliap + +---------- + .. _PKG-MOLECULE: MOLECULE package diff --git a/doc/src/Packages_standard.rst b/doc/src/Packages_standard.rst index 74a567e0b9..ca22515590 100644 --- a/doc/src/Packages_standard.rst +++ b/doc/src/Packages_standard.rst @@ -59,6 +59,8 @@ package: +----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ | :ref:`MISC ` | miscellaneous single-file commands | n/a | no | no | +----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ +| :ref:`MLIAP ` | multiple machine learning potentials | :doc:`pair_style mliap ` | mliap | no | ++----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ | :ref:`MOLECULE ` | molecular system force fields | :doc:`Howto bioFF ` | peptide | no | +----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ | :ref:`MPIIO ` | MPI parallel I/O dump and restart | :doc:`dump ` | n/a | no | diff --git a/doc/src/compute_sna_atom.rst b/doc/src/compute_sna_atom.rst index f051278842..4e42c4523b 100644 --- a/doc/src/compute_sna_atom.rst +++ b/doc/src/compute_sna_atom.rst @@ -431,7 +431,6 @@ available at `arXiv:1409.3880 `_ **(Varshalovich)** Varshalovich, Moskalev, Khersonskii, Quantum Theory of Angular Momentum, World Scientific, Singapore (1987). -.. _Varshalovich1987: .. _Mason2009: diff --git a/doc/src/pair_mliap.rst b/doc/src/pair_mliap.rst new file mode 100644 index 0000000000..b569a26910 --- /dev/null +++ b/doc/src/pair_mliap.rst @@ -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 `, 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 ` 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 `. +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 ` 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 ` 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 ` 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 ` +shift, table, and tail options. + +This pair style does not write its information to :doc:`binary restart files `, since it is stored in potential files. Thus, you +need to re-specify the pair_style and pair_coeff commands in an input +script that reads a restart file. + +This pair style can only be used via the *pair* keyword of the +:doc:`run_style respa ` 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 ` doc page for more info. + +Related commands +"""""""""""""""" + +:doc:`pair_style snap `, + +**Default:** none diff --git a/doc/src/pair_style.rst b/doc/src/pair_style.rst index 19983a19d9..443573743d 100644 --- a/doc/src/pair_style.rst +++ b/doc/src/pair_style.rst @@ -291,6 +291,7 @@ accelerated styles exist. * :doc:`smd/tri_surface ` - * :doc:`smd/ulsph ` - * :doc:`smtbq ` - +* :doc:`mliap ` - Multiple styles of machine-learning potential * :doc:`snap ` - SNAP quantum-accurate potential * :doc:`soft ` - Soft (cosine) potential * :doc:`sph/heatconduction ` - diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 7852d18961..2bc3c2a0f6 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1826,6 +1826,7 @@ Mj mK mkdir mkv +mliap mlparks Mniszewski mnt @@ -1995,6 +1996,7 @@ Neel Neelov Negre nelem +nelems Nelement Nelements nemd diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/Si.opt.tersoff b/examples/USER/phonon/dynamical_matrix_command/Silicon/Si.opt.tersoff deleted file mode 100755 index 3bc19f0581..0000000000 --- a/examples/USER/phonon/dynamical_matrix_command/Silicon/Si.opt.tersoff +++ /dev/null @@ -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 - diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/SiCGe.tersoff b/examples/USER/phonon/dynamical_matrix_command/Silicon/SiCGe.tersoff new file mode 120000 index 0000000000..74f53c4e75 --- /dev/null +++ b/examples/USER/phonon/dynamical_matrix_command/Silicon/SiCGe.tersoff @@ -0,0 +1 @@ +../../../../../potentials/SiCGe.tersoff \ No newline at end of file diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/ff-silicon.lmp b/examples/USER/phonon/dynamical_matrix_command/Silicon/ff-silicon.lmp index f3b895f168..d7ee38b175 100755 --- a/examples/USER/phonon/dynamical_matrix_command/Silicon/ff-silicon.lmp +++ b/examples/USER/phonon/dynamical_matrix_command/Silicon/ff-silicon.lmp @@ -16,4 +16,4 @@ mass ${Si} 28.08550 ########################### pair_style tersoff -pair_coeff * * Si.opt.tersoff Si(D) +pair_coeff * * SiCGe.tersoff Si(D) diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/results/dynmat.dat b/examples/USER/phonon/dynamical_matrix_command/Silicon/results/dynmat.dat old mode 100755 new mode 100644 index 676f897416..b6712ea4f9 --- a/examples/USER/phonon/dynamical_matrix_command/Silicon/results/dynmat.dat +++ b/examples/USER/phonon/dynamical_matrix_command/Silicon/results/dynmat.dat @@ -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 diff --git a/examples/USER/phonon/dynamical_matrix_command/Silicon/results/out.silicon b/examples/USER/phonon/dynamical_matrix_command/Silicon/results/out.silicon old mode 100755 new mode 100644 index 9920ddac51..1f39f3b830 --- a/examples/USER/phonon/dynamical_matrix_command/Silicon/results/out.silicon +++ b/examples/USER/phonon/dynamical_matrix_command/Silicon/results/out.silicon @@ -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 diff --git a/examples/USER/phonon/dynamical_matrix_command/python/SiCGe.tersoff b/examples/USER/phonon/dynamical_matrix_command/python/SiCGe.tersoff new file mode 120000 index 0000000000..74f53c4e75 --- /dev/null +++ b/examples/USER/phonon/dynamical_matrix_command/python/SiCGe.tersoff @@ -0,0 +1 @@ +../../../../../potentials/SiCGe.tersoff \ No newline at end of file diff --git a/examples/USER/phonon/dynamical_matrix_command/python/dynmat.py b/examples/USER/phonon/dynamical_matrix_command/python/dynmat.py index 2a3a0b5a2f..b628a96121 100644 --- a/examples/USER/phonon/dynamical_matrix_command/python/dynmat.py +++ b/examples/USER/phonon/dynamical_matrix_command/python/dynmat.py @@ -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) diff --git a/examples/USER/phonon/dynamical_matrix_command/python/ff-silicon.lmp b/examples/USER/phonon/dynamical_matrix_command/python/ff-silicon.lmp new file mode 120000 index 0000000000..8b025f7c2b --- /dev/null +++ b/examples/USER/phonon/dynamical_matrix_command/python/ff-silicon.lmp @@ -0,0 +1 @@ +../Silicon/ff-silicon.lmp \ No newline at end of file diff --git a/examples/USER/phonon/dynamical_matrix_command/python/results/dynmat.dat b/examples/USER/phonon/dynamical_matrix_command/python/results/dynmat.dat new file mode 100644 index 0000000000..b6712ea4f9 --- /dev/null +++ b/examples/USER/phonon/dynamical_matrix_command/python/results/dynmat.dat @@ -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 diff --git a/examples/USER/phonon/dynamical_matrix_command/python/results/out.dynamt b/examples/USER/phonon/dynamical_matrix_command/python/results/out.dynamt new file mode 100644 index 0000000000..812af4b2a5 --- /dev/null +++ b/examples/USER/phonon/dynamical_matrix_command/python/results/out.dynamt @@ -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 diff --git a/examples/USER/phonon/dynamical_matrix_command/python/silicon_input_file.lmp b/examples/USER/phonon/dynamical_matrix_command/python/silicon_input_file.lmp new file mode 120000 index 0000000000..fb12681042 --- /dev/null +++ b/examples/USER/phonon/dynamical_matrix_command/python/silicon_input_file.lmp @@ -0,0 +1 @@ +../Silicon/silicon_input_file.lmp \ No newline at end of file diff --git a/examples/mliap/InP_JCPA2020.mliap b/examples/mliap/InP_JCPA2020.mliap new file mode 120000 index 0000000000..18b103c85f --- /dev/null +++ b/examples/mliap/InP_JCPA2020.mliap @@ -0,0 +1 @@ +../../potentials/InP_JCPA2020.mliap \ No newline at end of file diff --git a/examples/mliap/InP_JCPA2020.mliap.descriptor b/examples/mliap/InP_JCPA2020.mliap.descriptor new file mode 120000 index 0000000000..c24708894d --- /dev/null +++ b/examples/mliap/InP_JCPA2020.mliap.descriptor @@ -0,0 +1 @@ +../../potentials/InP_JCPA2020.mliap.descriptor \ No newline at end of file diff --git a/examples/mliap/InP_JCPA2020.mliap.model b/examples/mliap/InP_JCPA2020.mliap.model new file mode 120000 index 0000000000..91c9324a53 --- /dev/null +++ b/examples/mliap/InP_JCPA2020.mliap.model @@ -0,0 +1 @@ +../../potentials/InP_JCPA2020.mliap.model \ No newline at end of file diff --git a/examples/mliap/Ta06A.mliap b/examples/mliap/Ta06A.mliap new file mode 120000 index 0000000000..c87007ce82 --- /dev/null +++ b/examples/mliap/Ta06A.mliap @@ -0,0 +1 @@ +../../potentials/Ta06A.mliap \ No newline at end of file diff --git a/examples/mliap/Ta06A.mliap.descriptor b/examples/mliap/Ta06A.mliap.descriptor new file mode 120000 index 0000000000..bbf88cc21a --- /dev/null +++ b/examples/mliap/Ta06A.mliap.descriptor @@ -0,0 +1 @@ +../../potentials/Ta06A.mliap.descriptor \ No newline at end of file diff --git a/examples/mliap/Ta06A.mliap.model b/examples/mliap/Ta06A.mliap.model new file mode 120000 index 0000000000..b6a8e09026 --- /dev/null +++ b/examples/mliap/Ta06A.mliap.model @@ -0,0 +1 @@ +../../potentials/Ta06A.mliap.model \ No newline at end of file diff --git a/examples/mliap/W.quadratic.mliap b/examples/mliap/W.quadratic.mliap new file mode 120000 index 0000000000..de204a2e79 --- /dev/null +++ b/examples/mliap/W.quadratic.mliap @@ -0,0 +1 @@ +../../potentials/W.quadratic.mliap \ No newline at end of file diff --git a/examples/mliap/W.quadratic.mliap.descriptor b/examples/mliap/W.quadratic.mliap.descriptor new file mode 120000 index 0000000000..1bae3391e3 --- /dev/null +++ b/examples/mliap/W.quadratic.mliap.descriptor @@ -0,0 +1 @@ +../../potentials/W.quadratic.mliap.descriptor \ No newline at end of file diff --git a/examples/mliap/W.quadratic.mliap.model b/examples/mliap/W.quadratic.mliap.model new file mode 120000 index 0000000000..f6864e175f --- /dev/null +++ b/examples/mliap/W.quadratic.mliap.model @@ -0,0 +1 @@ +../../potentials/W.quadratic.mliap.model \ No newline at end of file diff --git a/examples/mliap/WBe_Wood_PRB2019.mliap b/examples/mliap/WBe_Wood_PRB2019.mliap new file mode 120000 index 0000000000..c62bf7a337 --- /dev/null +++ b/examples/mliap/WBe_Wood_PRB2019.mliap @@ -0,0 +1 @@ +../../potentials/WBe_Wood_PRB2019.mliap \ No newline at end of file diff --git a/examples/mliap/WBe_Wood_PRB2019.mliap.descriptor b/examples/mliap/WBe_Wood_PRB2019.mliap.descriptor new file mode 120000 index 0000000000..bc231e383a --- /dev/null +++ b/examples/mliap/WBe_Wood_PRB2019.mliap.descriptor @@ -0,0 +1 @@ +../../potentials/WBe_Wood_PRB2019.mliap.descriptor \ No newline at end of file diff --git a/examples/mliap/WBe_Wood_PRB2019.mliap.model b/examples/mliap/WBe_Wood_PRB2019.mliap.model new file mode 120000 index 0000000000..a815d68a92 --- /dev/null +++ b/examples/mliap/WBe_Wood_PRB2019.mliap.model @@ -0,0 +1 @@ +../../potentials/WBe_Wood_PRB2019.mliap.model \ No newline at end of file diff --git a/examples/mliap/in.mliap.snap.Ta06A b/examples/mliap/in.mliap.snap.Ta06A new file mode 100644 index 0000000000..3d94d5c9fc --- /dev/null +++ b/examples/mliap/in.mliap.snap.Ta06A @@ -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} + diff --git a/examples/mliap/in.mliap.snap.WBe.PRB2019 b/examples/mliap/in.mliap.snap.WBe.PRB2019 new file mode 100644 index 0000000000..84d40d321f --- /dev/null +++ b/examples/mliap/in.mliap.snap.WBe.PRB2019 @@ -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} + diff --git a/examples/mliap/in.mliap.snap.chem b/examples/mliap/in.mliap.snap.chem new file mode 100644 index 0000000000..499601059e --- /dev/null +++ b/examples/mliap/in.mliap.snap.chem @@ -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} + diff --git a/examples/mliap/in.mliap.snap.quadratic b/examples/mliap/in.mliap.snap.quadratic new file mode 100644 index 0000000000..9f7d4d702d --- /dev/null +++ b/examples/mliap/in.mliap.snap.quadratic @@ -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} + diff --git a/examples/mliap/log.21Jun20.mliap.snap.Ta06A.g++.1 b/examples/mliap/log.21Jun20.mliap.snap.Ta06A.g++.1 new file mode 100644 index 0000000000..2a6d16a187 --- /dev/null +++ b/examples/mliap/log.21Jun20.mliap.snap.Ta06A.g++.1 @@ -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 diff --git a/examples/mliap/log.21Jun20.mliap.snap.Ta06A.g++.4 b/examples/mliap/log.21Jun20.mliap.snap.Ta06A.g++.4 new file mode 100644 index 0000000000..e2778b21ec --- /dev/null +++ b/examples/mliap/log.21Jun20.mliap.snap.Ta06A.g++.4 @@ -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 diff --git a/examples/mliap/log.21Jun20.mliap.snap.WBe.PRB201.g++.1 b/examples/mliap/log.21Jun20.mliap.snap.WBe.PRB201.g++.1 new file mode 100644 index 0000000000..b83422657c --- /dev/null +++ b/examples/mliap/log.21Jun20.mliap.snap.WBe.PRB201.g++.1 @@ -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 diff --git a/examples/mliap/log.21Jun20.mliap.snap.WBe.PRB201.g++.4 b/examples/mliap/log.21Jun20.mliap.snap.WBe.PRB201.g++.4 new file mode 100644 index 0000000000..53f9fc2a15 --- /dev/null +++ b/examples/mliap/log.21Jun20.mliap.snap.WBe.PRB201.g++.4 @@ -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 diff --git a/examples/mliap/log.21Jun20.mliap.snap.chem.g++.1 b/examples/mliap/log.21Jun20.mliap.snap.chem.g++.1 new file mode 100644 index 0000000000..ab9af08d8a --- /dev/null +++ b/examples/mliap/log.21Jun20.mliap.snap.chem.g++.1 @@ -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 diff --git a/examples/mliap/log.21Jun20.mliap.snap.chem.g++.4 b/examples/mliap/log.21Jun20.mliap.snap.chem.g++.4 new file mode 100644 index 0000000000..34f7dadb6a --- /dev/null +++ b/examples/mliap/log.21Jun20.mliap.snap.chem.g++.4 @@ -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 diff --git a/examples/mliap/log.21Jun20.mliap.snap.quadratic.g++.1 b/examples/mliap/log.21Jun20.mliap.snap.quadratic.g++.1 new file mode 100644 index 0000000000..e412df5404 --- /dev/null +++ b/examples/mliap/log.21Jun20.mliap.snap.quadratic.g++.1 @@ -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 diff --git a/examples/mliap/log.21Jun20.mliap.snap.quadratic.g++.4 b/examples/mliap/log.21Jun20.mliap.snap.quadratic.g++.4 new file mode 100644 index 0000000000..f8ebb89fc6 --- /dev/null +++ b/examples/mliap/log.21Jun20.mliap.snap.quadratic.g++.4 @@ -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 diff --git a/examples/mliap/log.snap.Ta06A.ref b/examples/mliap/log.snap.Ta06A.ref new file mode 100644 index 0000000000..8c89ac1957 --- /dev/null +++ b/examples/mliap/log.snap.Ta06A.ref @@ -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 diff --git a/potentials/InP_JCPA2020.mliap b/potentials/InP_JCPA2020.mliap new file mode 100644 index 0000000000..19d044df97 --- /dev/null +++ b/potentials/InP_JCPA2020.mliap @@ -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 + diff --git a/potentials/InP_JCPA2020.mliap.descriptor b/potentials/InP_JCPA2020.mliap.descriptor new file mode 100644 index 0000000000..287eac59c4 --- /dev/null +++ b/potentials/InP_JCPA2020.mliap.descriptor @@ -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 diff --git a/potentials/InP_JCPA2020.mliap.model b/potentials/InP_JCPA2020.mliap.model new file mode 100644 index 0000000000..7ef9039ba2 --- /dev/null +++ b/potentials/InP_JCPA2020.mliap.model @@ -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 diff --git a/potentials/InP_JCPA2020.snap b/potentials/InP_JCPA2020.snap index a1ba9e7a94..1af0008b6f 100644 --- a/potentials/InP_JCPA2020.snap +++ b/potentials/InP_JCPA2020.snap @@ -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. diff --git a/potentials/InP_JCPA2020.snapparam b/potentials/InP_JCPA2020.snapparam index 880ba6671c..0e764ac7ca 100644 --- a/potentials/InP_JCPA2020.snapparam +++ b/potentials/InP_JCPA2020.snapparam @@ -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 diff --git a/potentials/Ta06A.mliap b/potentials/Ta06A.mliap new file mode 100644 index 0000000000..21d3bab6e3 --- /dev/null +++ b/potentials/Ta06A.mliap @@ -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 + diff --git a/potentials/Ta06A.mliap.descriptor b/potentials/Ta06A.mliap.descriptor new file mode 100644 index 0000000000..481ebf7e44 --- /dev/null +++ b/potentials/Ta06A.mliap.descriptor @@ -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 + diff --git a/potentials/Ta06A.mliap.model b/potentials/Ta06A.mliap.model new file mode 100644 index 0000000000..a7e36f1648 --- /dev/null +++ b/potentials/Ta06A.mliap.model @@ -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 diff --git a/potentials/W.quadratic.mliap b/potentials/W.quadratic.mliap new file mode 100644 index 0000000000..36cb352f84 --- /dev/null +++ b/potentials/W.quadratic.mliap @@ -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 + diff --git a/potentials/W.quadratic.mliap.descriptor b/potentials/W.quadratic.mliap.descriptor new file mode 100644 index 0000000000..7db38ba7f5 --- /dev/null +++ b/potentials/W.quadratic.mliap.descriptor @@ -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 + diff --git a/potentials/W.quadratic.mliap.model b/potentials/W.quadratic.mliap.model new file mode 100644 index 0000000000..d16b535fb9 --- /dev/null +++ b/potentials/W.quadratic.mliap.model @@ -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 diff --git a/potentials/WBe_Wood_PRB2019.mliap b/potentials/WBe_Wood_PRB2019.mliap new file mode 100644 index 0000000000..9298bf8fdf --- /dev/null +++ b/potentials/WBe_Wood_PRB2019.mliap @@ -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 + diff --git a/potentials/WBe_Wood_PRB2019.mliap.descriptor b/potentials/WBe_Wood_PRB2019.mliap.descriptor new file mode 100644 index 0000000000..0ba762fcfa --- /dev/null +++ b/potentials/WBe_Wood_PRB2019.mliap.descriptor @@ -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 + diff --git a/potentials/WBe_Wood_PRB2019.mliap.model b/potentials/WBe_Wood_PRB2019.mliap.model new file mode 100644 index 0000000000..b25398e91a --- /dev/null +++ b/potentials/WBe_Wood_PRB2019.mliap.model @@ -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] diff --git a/potentials/WBe_Wood_PRB2019.snapcoeff b/potentials/WBe_Wood_PRB2019.snapcoeff index c72baabd74..965059f8b5 100644 --- a/potentials/WBe_Wood_PRB2019.snapcoeff +++ b/potentials/WBe_Wood_PRB2019.snapcoeff @@ -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 diff --git a/potentials/WBe_Wood_PRB2019.snapparam b/potentials/WBe_Wood_PRB2019.snapparam index e4fc4b4459..e96458651c 100644 --- a/potentials/WBe_Wood_PRB2019.snapparam +++ b/potentials/WBe_Wood_PRB2019.snapparam @@ -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 diff --git a/src/MLIAP/mliap_descriptor.cpp b/src/MLIAP/mliap_descriptor.cpp new file mode 100644 index 0000000000..d654b33008 --- /dev/null +++ b/src/MLIAP/mliap_descriptor.cpp @@ -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(){} + diff --git a/src/MLIAP/mliap_descriptor.h b/src/MLIAP/mliap_descriptor.h new file mode 100644 index 0000000000..cd42cb3be6 --- /dev/null +++ b/src/MLIAP/mliap_descriptor.h @@ -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 + diff --git a/src/MLIAP/mliap_descriptor_snap.cpp b/src/MLIAP/mliap_descriptor_snap.cpp new file mode 100644 index 0000000000..eedeeb4483 --- /dev/null +++ b/src/MLIAP/mliap_descriptor_snap.cpp @@ -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 +#include +#include +#include +#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; qidxu_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; +} + diff --git a/src/MLIAP/mliap_descriptor_snap.h b/src/MLIAP/mliap_descriptor_snap.h new file mode 100644 index 0000000000..15691fabfe --- /dev/null +++ b/src/MLIAP/mliap_descriptor_snap.h @@ -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 + diff --git a/src/MLIAP/mliap_model.cpp b/src/MLIAP/mliap_model.cpp new file mode 100644 index 0000000000..94aafc93a8 --- /dev/null +++ b/src/MLIAP/mliap_model.cpp @@ -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 +#include +#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; +} + diff --git a/src/MLIAP/mliap_model.h b/src/MLIAP/mliap_model.h new file mode 100644 index 0000000000..aeb16cb299 --- /dev/null +++ b/src/MLIAP/mliap_model.h @@ -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 + diff --git a/src/MLIAP/mliap_model_linear.cpp b/src/MLIAP/mliap_model_linear.cpp new file mode 100644 index 0000000000..fe3665938f --- /dev/null +++ b/src/MLIAP/mliap_model_linear.cpp @@ -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 +#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); + } + } +} + diff --git a/src/MLIAP/mliap_model_linear.h b/src/MLIAP/mliap_model_linear.h new file mode 100644 index 0000000000..53c7c36cef --- /dev/null +++ b/src/MLIAP/mliap_model_linear.h @@ -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 + diff --git a/src/MLIAP/mliap_model_quadratic.cpp b/src/MLIAP/mliap_model_quadratic.cpp new file mode 100644 index 0000000000..94d8972416 --- /dev/null +++ b/src/MLIAP/mliap_model_quadratic.cpp @@ -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 +#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); + } + } +} + diff --git a/src/MLIAP/mliap_model_quadratic.h b/src/MLIAP/mliap_model_quadratic.h new file mode 100644 index 0000000000..6ca0697919 --- /dev/null +++ b/src/MLIAP/mliap_model_quadratic.h @@ -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 + diff --git a/src/MLIAP/pair_mliap.cpp b/src/MLIAP/pair_mliap.cpp new file mode 100644 index 0000000000..b97dd51d67 --- /dev/null +++ b/src/MLIAP/pair_mliap.cpp @@ -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 +#include +#include +#include +#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; +} + diff --git a/src/MLIAP/pair_mliap.h b/src/MLIAP/pair_mliap.h new file mode 100644 index 0000000000..66bafab97a --- /dev/null +++ b/src/MLIAP/pair_mliap.h @@ -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 + diff --git a/src/Makefile b/src/Makefile index 0cf3a37d1d..4528c027cf 100644 --- a/src/Makefile +++ b/src/Makefile @@ -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 \ diff --git a/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml b/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml new file mode 100644 index 0000000000..f565eec3ca --- /dev/null +++ b/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml @@ -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 +... diff --git a/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml b/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml new file mode 100644 index 0000000000..2edfbaf3a4 --- /dev/null +++ b/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml @@ -0,0 +1,161 @@ +--- +lammps_version: 15 Jun 2020 +date_generated: Tue Jun 23 06:28:49 202 +epsilon: 5e-13 +prerequisites: ! | + pair mliap + pair zbl +pre_commands: ! | + variable newton_pair delete + variable newton_pair index on + variable zblz1 index 49 + variable zblz2 index 15 +post_commands: ! "" +input_file: in.manybody +pair_style: hybrid/overlay zbl 4.0 4.2 mliap model linear InP_JCPA2020.mliap.model descriptor sna InP_JCPA2020.mliap.descriptor +pair_coeff: ! | + 1*4 1*4 zbl ${zblz1} ${zblz1} + 1*4 5*8 zbl ${zblz1} ${zblz2} + 5*8 5*8 zbl ${zblz2} ${zblz2} + * * mliap In In In In P P P P +extract: ! "" +natoms: 64 +init_vdwl: -185.3871232982 +init_coul: 0 +init_stress: ! |2- + 2.1627572764873958e+02 2.1843973818802479e+02 2.2323704161405172e+02 -5.3476822166124478e+00 2.9965125280145408e+01 1.1801773510997722e+00 +init_forces: ! |2 + 2 -2.3497957616596601e+00 -7.0361817598817122e-01 -1.5634923191374748e+00 + 4 -2.0337936615474375e+00 2.9491894607511475e+00 9.8066478014365421e-01 + 5 -1.9807302026626257e+00 -4.1921845197040186e-01 -3.9514999290883601e-01 + 6 -1.0256636650331943e-01 2.3662295416638237e+00 9.0816298775387250e-01 + 7 -6.0657120592984948e-01 -8.0634286798072208e-01 2.1759740426498699e+00 + 8 6.0627276316788437e-01 1.0677577347039469e+00 -1.2887262448970853e+00 + 9 -3.0674852805674085e-01 -2.0605633540913710e+00 -2.5500662803249257e+00 + 10 -1.9428976574806139e-01 -1.4648835736857648e+00 -2.8490531930038245e+00 + 11 3.1532548864214434e+00 -2.9033258960601409e+00 2.2619034310429735e+00 + 12 -5.4038968585110823e+00 -3.2935652899479924e+00 -2.5707355493491781e+00 + 13 -6.1736753137043776e-01 5.1000477579656494e+00 -1.3304391624961633e+00 + 14 -1.4190543180546618e+00 3.3413841917147384e+00 4.6351390250498770e-01 + 15 -3.1131424694968604e+00 4.4700267996081555e+00 -3.2364337367424172e+00 + 16 1.7079914236492750e+00 -1.9995742761541913e-01 5.0185841295230240e+00 + 17 2.3724862536641012e+00 3.0987980523865000e+00 -3.4198379943456869e+00 + 27 1.9066785243503706e+00 -2.9510326328255049e-01 1.2119553206259739e+00 + 33 4.3597028481189959e+00 -2.6773596435480336e+00 3.1791467867699503e+00 + 44 3.0506037114469589e+00 -3.3226877009576863e+00 1.7796293414951667e+00 + 3 6.2372158338858497e-01 2.7149161557212964e-01 -4.8035793806964389e-01 + 18 -2.5111265055015947e-01 7.3348166166902828e-01 3.0622036193004099e+00 + 19 -1.2828262181283474e+00 -2.2345757410919127e+00 -3.3669351804164727e-01 + 21 1.3962036186373230e+00 3.9865506204929702e-01 -2.5893554970082704e+00 + 22 -5.1263732155413759e+00 3.6744897485626451e+00 -4.8303251395784246e+00 + 23 1.7617874308698238e+00 2.9253519141342759e+00 1.4679679444255609e+00 + 24 1.5937879337284910e+00 8.9992286487733819e-01 2.8087468575298824e+00 + 26 -3.5670456442877890e-01 -3.9811471877481980e-01 8.1854393579980245e-01 + 49 -2.3858202682345580e+00 -4.2223184267227767e+00 -2.7959407680025370e+00 + 1 -8.9407797360085417e-01 3.1174511790027033e+00 1.7848004756991056e+00 + 29 -2.7893073887365949e+00 7.8106446652879102e-01 -8.2039261846998079e-01 + 30 -1.8694503114341436e+00 7.0812686858708307e-01 -9.1751940639239338e-01 + 31 -7.0985766256762384e-01 8.6963471463259445e-01 -7.5188557225015273e-01 + 32 -2.4089849337056681e+00 4.0992982351371432e-01 -1.1381600041412421e-01 + 60 -2.2387715060954041e+00 -5.2442113310349816e+00 -2.6985516164859176e+00 + 25 1.0286448774492718e+00 -4.3669506584228501e-01 1.2594354985828644e+00 + 35 1.2413218618562072e+00 -4.1427608114771164e-01 2.5651243684278686e+00 + 36 -1.1152887975138681e-01 -2.3088354090108663e+00 -2.3687452176819115e-01 + 37 -2.1752322691080077e+00 1.9377327531750539e+00 -2.2419453197067281e+00 + 38 -9.9594979744324563e-01 -1.8147173502133507e-01 6.8832530755714350e-01 + 39 2.8779281856552128e+00 -1.7332955648283563e+00 -3.4260103364251724e+00 + 40 4.3351429466694649e+00 -2.2624572291840521e+00 -1.7065975882223487e+00 + 34 5.1607419486495609e-01 1.3141798772668922e-01 8.7023229642903210e-02 + 41 2.5124166305689100e-01 -4.2179260496370724e-01 -1.2503380336802215e+00 + 42 -3.5352439688397150e+00 -1.6053715846066683e+00 -6.7917775288119064e-01 + 43 8.4817996010401164e-01 -4.8899181684596407e+00 1.7369510897908452e-01 + 45 -1.8374092699066706e+00 1.5294723708757618e+00 -2.7502022232711760e+00 + 46 -9.1023563070749047e-01 -1.7778137773508695e+00 4.9843270240840001e+00 + 47 2.6124800260927614e+00 1.6175231582888077e+00 1.5805303054926736e+00 + 48 1.4743780750991404e+00 3.6707315780788008e-02 -2.9750115931287535e-01 + 59 2.9909449561888724e+00 2.1621928717215835e+00 -2.3820831167094303e+00 + 20 -5.9491949074906936e+00 3.2510448152978871e-01 6.8450449383664713e-01 + 50 2.4067134019907233e-01 2.8105796871762414e+00 -1.0687621004291805e+00 + 51 -1.7932456135513868e+00 2.6201558060481331e+00 3.7648454668413773e+00 + 52 4.6358669186214048e+00 -4.8660554435252061e+00 5.0894919019571017e+00 + 53 2.9898995132891715e+00 3.3216926541391611e+00 2.4227995842838892e+00 + 54 1.8732808586337415e+00 -3.0909639789911147e+00 -2.2880122319661975e+00 + 55 1.1426678804104569e+00 -2.5892472259617465e+00 -3.2449552890237303e+00 + 56 -1.1541931360327828e-01 -8.3260558816076080e-02 -1.7966753733604066e+00 + 58 2.4813755367140664e+00 -1.2765007868407994e+00 1.5628981219370055e+00 + 28 2.5221087546188337e-01 1.4370172575473001e+00 4.1039332214108235e+00 + 57 -1.2751171337205386e-01 -8.8899643643851600e-01 -5.0726814112212137e-02 + 61 -1.0184694703280139e+00 1.5256818152660501e+00 -1.0113329140640543e+00 + 62 -2.7862663394350529e+00 2.5876139756856724e+00 -1.7815179130043091e+00 + 63 2.4339134295594320e+00 -3.1961735689987627e+00 -4.7891394265908005e-01 + 64 3.0382364587319786e+00 3.0430454898558628e+00 5.3416679902175552e+00 +run_vdwl: -187.654391839485 +run_coul: 0 +run_stress: ! |2- + 2.1286434186597299e+02 2.1516140376524689e+02 2.2014270591458128e+02 -4.1189309434632548e+00 2.5671737667284461e+01 3.4094574165482725e+00 +run_forces: ! |2 + 2 -2.2299658853721507e+00 -7.5585568905659772e-01 -1.5309002377019625e+00 + 4 -1.6432999484262130e+00 2.7237882915593326e+00 4.6054246395477350e-01 + 5 -1.9915642544829777e+00 -5.0514454245912876e-01 -2.4023101827231486e-01 + 6 3.1580339744901054e-01 2.2624378988705449e+00 1.0700232878883553e+00 + 7 -4.3667900724171116e-01 -4.6326888074447586e-01 1.8815161287461819e+00 + 8 4.0891558557491903e-01 9.8444761132021974e-01 -1.1994011642190254e+00 + 9 -3.9943153478794785e-01 -2.2209279455737687e+00 -2.5915912103444536e+00 + 10 -1.9471351965318492e-01 -1.4496690804153829e+00 -2.2623893657434921e+00 + 11 2.4362905726150617e+00 -2.3810030225467420e+00 1.8905835689476449e+00 + 12 -4.8961713945288228e+00 -2.6394975897948645e+00 -2.0372233198924476e+00 + 13 1.3378868571704855e-01 4.5775961871578907e+00 -9.1227708328467871e-01 + 14 -1.5297526207810295e+00 3.0522662572662123e+00 4.9107580456119615e-01 + 15 -2.6765425425933334e+00 3.8247215679835032e+00 -2.5375795218582140e+00 + 16 1.5196290196835556e+00 -3.2914146438877845e-01 4.1849431488039270e+00 + 17 2.0043578760825422e+00 2.8234226231079971e+00 -2.9923076186199409e+00 + 27 1.9119897296615496e+00 -3.9246942513009608e-01 1.2080897134421995e+00 + 33 3.7351462993820155e+00 -2.1144175359802881e+00 2.6418390367829723e+00 + 44 2.9022254223989687e+00 -3.0658233607366552e+00 1.4095258293816753e+00 + 3 2.8912410060638449e-01 4.3705738858658072e-01 -2.1722808227079787e-01 + 18 -5.0347976264338157e-01 8.8149323898758825e-01 2.9370157524159088e+00 + 19 -1.4078018510609771e+00 -2.2820746919860460e+00 -3.7825546052718551e-01 + 21 1.4678310024890893e+00 1.7118675240828019e-01 -2.7319662502952085e+00 + 22 -4.2798753174007320e+00 3.0607656650226183e+00 -3.9192708818666397e+00 + 23 1.8070160916189471e+00 2.8893260418555005e+00 1.4715768249778427e+00 + 24 1.7943331384890664e+00 5.6727833662929228e-01 2.4453386937887518e+00 + 26 -4.7367357683059208e-01 -2.6670219998362554e-01 8.5910453505401185e-01 + 49 -2.4980250315840102e+00 -4.2937298563437452e+00 -2.7685866462265638e+00 + 1 -7.3369133823406019e-01 2.7667970855721902e+00 1.6328050345720770e+00 + 29 -2.7287724915818701e+00 7.5140952246304527e-01 -7.1978618410779327e-01 + 30 -1.6121881543481651e+00 4.7145279745822616e-01 -9.4382533006887137e-01 + 31 -6.9302105329787711e-01 8.6622808992775280e-01 -7.1688447301762670e-01 + 32 -2.1877722619109301e+00 3.1241022059139323e-01 -2.0363529214606668e-01 + 60 -2.2516089079595991e+00 -4.9525359014312302e+00 -2.6471467342704198e+00 + 25 9.4127417840102356e-01 -3.2082226320612112e-01 1.0317887157557417e+00 + 35 1.2481610501512823e+00 -1.4422631315933354e-01 2.3732508438175111e+00 + 36 -4.1515332308320341e-01 -2.0958691183365024e+00 -6.0782500168499043e-01 + 37 -1.8737832564668908e+00 1.5868160141680490e+00 -2.1502811274719473e+00 + 38 -8.3799314060680841e-01 -1.1168329368636565e-01 7.5420009101162666e-01 + 39 2.4623601668269171e+00 -1.3731570495025507e+00 -3.1300208221580808e+00 + 40 4.2396805048038306e+00 -1.9896514878251730e+00 -1.6439304927095406e+00 + 34 4.3814257629996445e-01 1.4381263658420362e-01 1.5892319607512650e-01 + 41 4.5291426717441718e-01 -2.1649648555890250e-01 -1.0103115219148269e+00 + 42 -3.4063198353809976e+00 -1.7197481999679383e+00 -7.1574757576947656e-01 + 43 6.7969745762235467e-01 -4.4139560697511886e+00 -7.1374160410194093e-02 + 45 -1.8021584516545357e+00 1.1139426059206683e+00 -2.3612665451280677e+00 + 46 -6.4055392057875782e-01 -1.5437936507527341e+00 4.7629947723944017e+00 + 47 2.4596732256156790e+00 1.3839195366764618e+00 1.4983351229907567e+00 + 48 1.4286951465559086e+00 2.5226997121024208e-01 -3.1703206977278198e-01 + 59 2.7939168112815249e+00 2.0644797911549686e+00 -2.2194096868290583e+00 + 20 -5.3044185428231110e+00 -5.5789399083649077e-02 4.5964111618433978e-01 + 50 2.3859148339052361e-01 2.5999038034992537e+00 -1.1882197967404982e+00 + 51 -1.8541927042572204e+00 2.5220449582545088e+00 3.6251170038994083e+00 + 52 4.0017526007315150e+00 -3.9563125820844296e+00 4.1997432909076826e+00 + 53 2.9944010593604045e+00 3.2831372076580529e+00 2.6928034831187961e+00 + 54 1.5871022597839053e+00 -2.8228944858891403e+00 -1.9576122929926121e+00 + 55 6.8049238759975206e-01 -2.2839449322075804e+00 -2.6675101357177620e+00 + 56 -1.1904103145926614e-01 -4.1523795497198490e-01 -1.6223721062486220e+00 + 58 2.4136361939725424e+00 -9.4464777619607587e-01 1.2128229032096640e+00 + 28 1.8999192393940767e-01 1.6499913470409551e+00 3.7514920356690027e+00 + 57 -1.3403241451059458e-01 -1.1130134152852698e+00 -1.0367473155144701e-01 + 61 -9.1969687435720449e-01 1.4906668816471547e+00 -9.1416116187656105e-01 + 62 -2.5974358252612548e+00 2.3448472464785857e+00 -1.4775087114289507e+00 + 63 2.3319640999455045e+00 -3.2577489670850390e+00 -4.7807587290002118e-01 + 64 2.9639114599347867e+00 3.0313370540601516e+00 5.0817272896875902e+00 +...