Merge pull request #2570 from kipbarrett/pair_rann
Add new Package USER-RANN with pair style rann for using a neural network to compute energies and forces
This commit is contained in:
@ -145,7 +145,7 @@ set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE
|
||||
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
|
||||
USER-HDNNP USER-LB USER-MANIFOLD USER-MDI USER-MEAMC USER-MESONT USER-MGPT USER-MISC
|
||||
USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB
|
||||
USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH
|
||||
USER-RANN USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH
|
||||
USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-PACE USER-BROWNIAN)
|
||||
|
||||
set(SUFFIX_PACKAGES CORESHELL GPU KOKKOS OPT USER-INTEL USER-OMP)
|
||||
|
||||
@ -9,7 +9,7 @@ set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
|
||||
USER-HDNNP USER-INTEL USER-LB USER-MANIFOLD USER-MDI USER-MEAMC USER-MESODPD
|
||||
USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
|
||||
USER-PACE USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP
|
||||
USER-PACE USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP USER-RANN
|
||||
USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH
|
||||
USER-TALLY USER-UEF USER-VTK USER-YAFF)
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
|
||||
USER-HDNNP USER-INTEL USER-LB USER-MANIFOLD USER-MDI USER-MEAMC USER-MESODPD
|
||||
USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
|
||||
USER-PACE USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP
|
||||
USER-PACE USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP USER-RANN
|
||||
USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH
|
||||
USER-TALLY USER-UEF USER-VTK USER-YAFF)
|
||||
|
||||
|
||||
@ -227,6 +227,7 @@ OPT.
|
||||
* :doc:`polymorphic <pair_polymorphic>`
|
||||
* :doc:`python <pair_python>`
|
||||
* :doc:`quip <pair_quip>`
|
||||
* :doc:`rann <pair_rann>`
|
||||
* :doc:`reax/c (ko) <pair_reaxc>`
|
||||
* :doc:`rebo (io) <pair_airebo>`
|
||||
* :doc:`resquared (go) <pair_resquared>`
|
||||
|
||||
@ -100,6 +100,7 @@ page gives those details.
|
||||
* :ref:`USER-QMMM <PKG-USER-QMMM>`
|
||||
* :ref:`USER-QTB <PKG-USER-QTB>`
|
||||
* :ref:`USER-QUIP <PKG-USER-QUIP>`
|
||||
* :ref:`USER-RANN <PKG-USER-RANN>`
|
||||
* :ref:`USER-REACTION <PKG-USER-REACTION>`
|
||||
* :ref:`USER-REAXC <PKG-USER-REAXC>`
|
||||
* :ref:`USER-SCAFACOS <PKG-USER-SCAFACOS>`
|
||||
@ -2277,6 +2278,31 @@ This package has :ref:`specific installation instructions <user-quip>` on the :d
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-USER-RANN:
|
||||
|
||||
USER-RANN package
|
||||
-----------------
|
||||
|
||||
**Contents:**
|
||||
|
||||
A pair style for using rapid atomistic neural network (RANN) potentials.
|
||||
These neural network potentials work by first generating a series of symmetry
|
||||
functions from the neighbor list and then using these values as the input layer
|
||||
of a neural network.
|
||||
|
||||
**Authors:**
|
||||
|
||||
This package was written by Christopher Barrett
|
||||
with contributions by Doyl Dickel, Mississippi State University.
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/USER-RANN: filenames -> commands
|
||||
* :doc:`pair_style rann <pair_rann>`
|
||||
* examples/USER/rann
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-USER-REACTION:
|
||||
|
||||
USER-REACTION package
|
||||
|
||||
@ -101,6 +101,8 @@ package:
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-QUIP <PKG-USER-QUIP>` | QUIP/libatoms interface | :doc:`pair_style quip <pair_quip>` | USER/quip | ext |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-RANN <PKG-USER-RANN>` | rapid atomistic neural network (RANN) potentials | :doc:`pair rann <pair_rann>` | USER/rann | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-REACTION <PKG-USER-REACTION>` | chemical reactions in classical MD | :doc:`fix bond/react <fix_bond_react>` | USER/reaction | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-REAXC <PKG-USER-REAXC>` | ReaxFF potential (C/C++) | :doc:`pair_style reaxc <pair_reaxc>` | reax | no |
|
||||
|
||||
412
doc/src/pair_rann.rst
Normal file
412
doc/src/pair_rann.rst
Normal file
@ -0,0 +1,412 @@
|
||||
.. index:: pair_style rann
|
||||
|
||||
pair_style rann command
|
||||
=======================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style rann
|
||||
pair_coeff file Type1_element Type2_element Type3_element...
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style rann
|
||||
pair_coeff ** Mg.rann Mg
|
||||
pair_coeff ** MgAlalloy.rann Mg Mg Al Mg
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Pair style *rann* computes pairwise interactions for a variety of
|
||||
materials using rapid atomistic neural network (RANN) potentials
|
||||
(:ref:`Dickel <Dickel>` , :ref:`Nitol <Nitol>`). Neural network
|
||||
potentials work by first generating a series of symmetry functions
|
||||
i.e. structural fingerprints from the neighbor list and then using these
|
||||
values as the input layer of a neural network. There is a single output
|
||||
neuron in the final layer which is the energy. Atomic forces are found
|
||||
by analytical derivatives computed via back-propagation. For alloy
|
||||
systems, each element has a unique network.
|
||||
|
||||
Potential file syntax
|
||||
"""""""""""""""""""""
|
||||
|
||||
The RANN potential is defined by a single text file which contains all
|
||||
the fitting parameters for the alloy system. The potential file also
|
||||
defines the active fingerprints, network architecture, activation
|
||||
functions, etc. The potential file is divided into several sections
|
||||
which are identified by one of the following keywords:
|
||||
|
||||
* atomtypes
|
||||
* mass
|
||||
* fingerprintsperelement
|
||||
* fingerprints
|
||||
* fingerprintconstants
|
||||
* screening (optional)
|
||||
* networklayers
|
||||
* layersize
|
||||
* weight
|
||||
* bias
|
||||
* activationfunctions
|
||||
* calibrationparameters (ignored)
|
||||
|
||||
The '#' character is treated as a comment marker, similar to LAMMPS
|
||||
input scripts. Sections are not required to follow a rigid ordering,
|
||||
but do require previous definition of prerequisite information. E.g.,
|
||||
fingerprintconstants for a particular fingerprint must follow the
|
||||
fingerprints definition; layersize for a particular layer must follow
|
||||
the declaration of network layers.
|
||||
|
||||
*atomtypes* are defined as follows using element keywords separated by spaces.
|
||||
|
||||
.. code-block::
|
||||
|
||||
atomtypes:
|
||||
Fe Mg Al etc.
|
||||
|
||||
*mass* must be specified for each element keyword as follows:
|
||||
|
||||
.. code-block::
|
||||
|
||||
mass:Mg:
|
||||
24.305
|
||||
mass:Fe:
|
||||
55.847
|
||||
mass:Al:
|
||||
26.982
|
||||
|
||||
*fingerprintsperelement* specifies how many fingerprints are active for
|
||||
computing the energy of a given atom. This number must be specified for
|
||||
each element keyword. Active elements for each fingerprint depend upon
|
||||
the type of the central atom and the neighboring atoms. Pairwise
|
||||
fingerprints may be defined for a Mg atom based exclusively on its Al
|
||||
neighbors, for example. Bond fingerprints may use two neighbor lists of
|
||||
different element types. In computing fingerprintsperelement from all
|
||||
defined fingerprints, only the fingerprints defined for atoms of a
|
||||
particular element should be considered, regardless of the elements used
|
||||
in its neighbor list. In the following code, for example, some
|
||||
fingerprints may compute pairwise fingerprints summing contributions
|
||||
about Fe atoms based on a neighbor list of exclusively Al atoms, but if
|
||||
there are no fingerprints summing contributions of all neighbors about a
|
||||
central Al atom, then fingerprintsperelement of Al is zero:
|
||||
|
||||
.. code-block::
|
||||
|
||||
fingerprintsperelement:Mg:
|
||||
5
|
||||
fingerprintsperelement:Fe:
|
||||
2
|
||||
fingerprintsperelement:Al:
|
||||
0
|
||||
|
||||
*fingerprints* specifies the active fingerprints for a certain element
|
||||
combination. Pair fingerprints are specified for two elements, while
|
||||
bond fingerprints are specified for three elements. Only one
|
||||
fingerprints header should be used for an individual combination of
|
||||
elements. The ordering of the fingerprints in the network input layer
|
||||
is determined by the order of element combinations specified by
|
||||
subsequent *fingerprints* lines, and the order of the fingerprints
|
||||
defined for each element combination. Multiple fingerprints of the same
|
||||
style or different ones may be specified. If the same style and element
|
||||
combination is used for multiple fingerprints, they should have
|
||||
different id numbers. The first element specifies the atoms for which
|
||||
this fingerprint is computed while the other(s) specify which atoms to
|
||||
use in the neighbor lists for the computation. Switching the second and
|
||||
third element type in bond fingerprints has no effect on the
|
||||
computation:
|
||||
|
||||
.. code-block::
|
||||
|
||||
fingerprints:Mg_Mg:
|
||||
radial_0 radialscreened_0 radial_1
|
||||
fingerprints:Mg_Al_Fe:
|
||||
bond_0 bondspin_0
|
||||
fingerprints:Mg_Al:
|
||||
radial_0 radialscreened_0
|
||||
|
||||
The following fingerprint styles are currently defined. See the
|
||||
:ref:`formulation section <fingerprints>` below for their definitions:
|
||||
|
||||
* radial
|
||||
* radialscreened
|
||||
* radialspin
|
||||
* radialscreenedspin
|
||||
* bond
|
||||
* bondscreened
|
||||
* bondspin
|
||||
* bondscreenedspin
|
||||
|
||||
*fingerprintconstants* specifies the meta-parameters for a defined fingerprint. For all radial styles, re, rc,
|
||||
alpha, dr, o, and n must be specified. re should usually be the stable interatomic distance, rc is the cutoff
|
||||
radius, dr is the cutoff smoothing distance, o is the lowest radial power term (which may be negative), and n
|
||||
is the highest power term. The total length of the fingerprint vector is (n-o+1). alpha is a list of decay parameters
|
||||
used for exponential decay of radial contributions. It may be set proportionally to the bulk modulus similarly
|
||||
to MEAM potentials, but other values may provided better fitting in special cases. Bond style fingerprints require
|
||||
specification of re, rc, alphak, dr, k, and m. Here m is the power of the bond cosines and k is the number of
|
||||
decay parameters. Cosine powers go from 0 to m-1 and are each computed for all values of alphak. Thus the total
|
||||
length of the fingerprint vector is m*k.
|
||||
|
||||
.. code-block::
|
||||
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:re:
|
||||
3.193592
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:rc:
|
||||
6.000000
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:alpha:
|
||||
5.520000 5.520000 5.520000 5.520000 5.520000
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:n:
|
||||
3
|
||||
|
||||
*screening* specifies the Cmax and Cmin values used in the screening
|
||||
fingerprints. Contributions form neighbors to the fingerprint are
|
||||
omitted if they are blocked by a closer neighbor, and reduced if they
|
||||
are partially blocked. Larger values of Cmin correspond to neighbors
|
||||
being blocked more easily. Cmax cannot be greater than 3, and Cmin
|
||||
cannot be greater than Cmax or less than zero. Screening may be omitted
|
||||
in which case the default values Cmax = 2.8, Cmin = 0.8 are used. Since
|
||||
screening is a bond computation, it is specified separately for each
|
||||
combination of three elements in which the latter two may be
|
||||
interchanged with no effect.
|
||||
|
||||
.. code-block::
|
||||
|
||||
screening:Mg_Mg_Mg:Cmax:
|
||||
2.700000
|
||||
screening:Mg_Mg_Mg:Cmin:
|
||||
0.400000
|
||||
|
||||
*networklayers* species the size of the neural network for each atom.
|
||||
It counts both the input and output layer and so is 2 + \<hidden layers\>.
|
||||
|
||||
.. code-block::
|
||||
|
||||
networklayers:Mg:
|
||||
3
|
||||
|
||||
*layersize* specifies the length of each layer, including the input
|
||||
layer and output layer. The input layer is layer 0. The size of the
|
||||
input layer size must match the summed length of all the fingerprints
|
||||
for that element, and the output layer size must be 1:
|
||||
|
||||
.. code-block::
|
||||
|
||||
layersize:Mg:0:
|
||||
14
|
||||
layersize:Mg:1:
|
||||
20
|
||||
layersize:Mg:2:
|
||||
1
|
||||
|
||||
|
||||
*weight* specifies the weight for a given element and layer. Weight
|
||||
cannot be specified for the output layer. The weight of layer i is a
|
||||
*m* x *n* matrix where *m* is the layer size of *i* and *n* is the layer size of
|
||||
*i*\ +1:
|
||||
|
||||
.. code-block::
|
||||
|
||||
weight:Mg:0:
|
||||
w11 w12 w13 ...
|
||||
w21 w22 w23 ...
|
||||
...
|
||||
|
||||
*bias* specifies the bias for a given element and layer. Bias cannot be
|
||||
specified for the output layer. The bias of layer i is a nx1 vector
|
||||
where n is the layer size of i+1:
|
||||
|
||||
.. code-block::
|
||||
|
||||
bias:Mg:0:
|
||||
b1
|
||||
b2
|
||||
b3
|
||||
...
|
||||
|
||||
*activationfunctions* specifies the activation function for a given
|
||||
element and layer. Activation functions cannot be specified for the
|
||||
output layer:
|
||||
|
||||
.. code-block::
|
||||
|
||||
activationfunctions:Mg:0:
|
||||
sigI
|
||||
activationfunctions:Mg:1:
|
||||
linear
|
||||
|
||||
The following activation styles are currently specified. See the
|
||||
:ref:`formulation section <activations>` below for their definitions.
|
||||
|
||||
* sigI
|
||||
|
||||
* linear
|
||||
|
||||
*calibrationparameters* specifies a number of parameters used to calibrate the potential. These are ignored
|
||||
by LAMMPS.
|
||||
|
||||
Formulation
|
||||
"""""""""""
|
||||
|
||||
In the RANN formulation, the total energy of a system of atoms
|
||||
is given by:
|
||||
|
||||
.. math::
|
||||
|
||||
E = \sum_{\alpha} E^{\alpha}\\\\
|
||||
E^{\alpha} = {}^{N}\!A^{\alpha}\\\\
|
||||
{}^{n+1}\!A_i^{\alpha} = {}^{n}\!F\left({}^{n}\!W_{ij}{\;}^{n}\!A_j^{\alpha}+{}^{n}\!B_i\right)\\\\
|
||||
{}^{0}\!A_i^{\alpha} = \left[\begin{array}{c} {}^1\!S\!f^\alpha\\ {}^2\!S\!f^\alpha \\...\\\end{array}\right]
|
||||
|
||||
Here :math:`E^\alpha` is the energy of atom :math:`\alpha`,
|
||||
:math:`{}^n\!F()`, :math:`{}^n\!W_{ij}` and :math:`{}^n\!B_i` are the
|
||||
activation function, weight matrix and bias vector of the n-th layer
|
||||
respectively. The inputs to the first layer are a collection of
|
||||
structural fingerprints which are collected and reshaped into a single
|
||||
long vector. The individual fingerprints may be defined in any order
|
||||
and have various shapes and sizes. Multiple fingerprints of the same
|
||||
type and varying parameters may also be defined in the input layer.
|
||||
|
||||
Eight types of structural fingerprints are currently defined. In the
|
||||
following, :math:`\beta` and :math:`\gamma` span the full neighbor list
|
||||
of atom :math:`\alpha`. :math:`\delta_i` are decay meta-parameters, and
|
||||
:math:`r_e` is a meta-parameter roughly proportional to the first
|
||||
neighbor distance. :math:`r_c` and :math:`dr` are the neighbor cutoff
|
||||
distance and cutoff smoothing distance respectively.
|
||||
:math:`S^{\alpha\beta}` is the MEAM screening function :ref:`(Baskes)
|
||||
<Baskes97>`, :math:`s_i^\alpha` and :math:`s_i^\beta` are the atom spin
|
||||
vectors :ref:`(Tranchida) <Tranchida7>`. :math:`r^{\alpha\beta}` is the
|
||||
distance from atom :math:`\alpha` to atom :math:`\beta`, and
|
||||
:math:`\theta^{\alpha\beta\gamma}` is the bond angle:
|
||||
|
||||
.. math ::
|
||||
|
||||
cos\left(\theta^{\alpha\beta\gamma}\right)=\frac{\mathbf{r}^{\alpha\beta} \cdot \mathbf{r}^{\alpha\gamma}}{r^{\alpha\beta}r^{\alpha\gamma}}
|
||||
|
||||
:math:`S^{\alpha\beta}` is defined as :ref:`(Baskes) <Baskes97>`:
|
||||
|
||||
.. math::
|
||||
|
||||
X^{\gamma\beta} = \left(\frac{r^{\gamma\beta}}{r^{\alpha\beta}}\right)^2\\
|
||||
\\
|
||||
X^{\alpha\gamma} = \left(\frac{r^{\alpha\gamma}}{r^{\alpha\beta}}\right)^2\\
|
||||
\\
|
||||
C = \frac{2\left(X^{\alpha\gamma}+X^{\gamma\beta}\right)-\left(X^{\alpha\gamma}-X^{\gamma\beta}\right)^2-1}{1-\left(X^{\alpha\gamma}-X^{\gamma\beta}\right)^2}\\
|
||||
\\
|
||||
f_c(x) = \left[\begin{array}{l} 1 \; \: x \geq 1\\ \left(1-\left(1-x\right)^4\right)^2 \; \: 0<x<1\\0\; \; x\leq0\end{array}\right.\\
|
||||
\\
|
||||
S^{\alpha\beta\gamma} = f_c\left(\frac{C-C_{min}}{C_{max}-C_{min}}\right)\\
|
||||
\\
|
||||
S^{\alpha\beta} = \prod_\gamma S^{\alpha\beta\gamma}\\
|
||||
|
||||
|
||||
The structural fingerprints are computed as follows:
|
||||
|
||||
.. _fingerprints:
|
||||
|
||||
* **radial**
|
||||
|
||||
.. math::
|
||||
|
||||
{}^r\!S\!f_i^\alpha = \sum_{\beta} \left(\frac{r^{\alpha\beta}}{r_e}\right)^ie^{-\delta_i \frac{r^{\alpha\beta}}{r_e}}f_c\left(\frac{r_c-r^{\alpha\beta}}{dr}\right)
|
||||
|
||||
* **bond**
|
||||
|
||||
.. math::
|
||||
|
||||
{}^b\!S\!f_{ij}^\alpha = \sum_{\beta}\sum_{\gamma} \left(cos(\theta_{\alpha\beta\gamma})\right)^ie^{-\delta_j \frac{r^{\alpha\beta}}{r_e}}e^{-\delta_j \frac{r^{\alpha\gamma}}{r_e}}f_c\left(\frac{r_c-r^{\alpha\beta}}{dr}\right)f_c\left(\frac{r_c-r^{\alpha\gamma}}{dr}\right)
|
||||
|
||||
* **radialscreened**
|
||||
|
||||
.. math::
|
||||
|
||||
{}^{rsc}\!S\!f_i^\alpha = \sum_{\beta} \left(\frac{r^{\alpha\beta}}{r_e}\right)^ie^{-\delta_i \frac{r^{\alpha\beta}}{r_e}}S^{\alpha\beta}f_c\left(\frac{r_c-r^{\alpha\beta}}{dr}\right)
|
||||
|
||||
* **bondscreened**
|
||||
|
||||
.. math::
|
||||
|
||||
{}^{bsc}\!S\!f_{ij}^\alpha = \sum_{\beta}\sum_{\gamma} \left(cos(\theta_{\alpha\beta\gamma})\right)^ie^{-\delta_j \frac{r^{\alpha\beta}}{r_e}}e^{-\delta_j \frac{r^{\alpha\gamma}}{r_e}}S^{\alpha\beta}S^{\alpha\gamma}f_c\left(\frac{r_c-r^{\alpha\beta}}{dr}\right)f_c\left(\frac{r_c-r^{\alpha\gamma}}{dr}\right)
|
||||
|
||||
* **radialspin**
|
||||
|
||||
.. math::
|
||||
|
||||
{}^{rsp}\!S\!f_i^\alpha = \sum_{\beta} \left(\frac{r^{\alpha\beta}}{r_e}\right)^ie^{-\delta_i \frac{r^{\alpha\beta}}{r_e}}\left(\mathbf{s^\alpha \cdot s^\beta}\right)f_c\left(\frac{r_c-r^{\alpha\beta}}{dr}\right)
|
||||
|
||||
* **bondspin**
|
||||
|
||||
.. math::
|
||||
|
||||
{}^{bsp}\!S\!f_{ij}^\alpha = \sum_{\beta}\sum_{\gamma} \left(cos(\theta_{\alpha\beta\gamma})\right)^ie^{-\delta_j \frac{r^{\alpha\beta}}{r_e}}e^{-\delta_j \frac{r^{\alpha\gamma}}{r_e}}\left(\mathbf{s^\alpha \cdot s^\beta}\right)\left(\mathbf{s^\alpha \cdot s^\gamma}\right)f_c\left(\frac{r_c-r^{\alpha\beta}}{dr}\right)f_c\left(\frac{r_c-r^{\alpha\gamma}}{dr}\right)
|
||||
|
||||
* **radialscreenedspin**
|
||||
|
||||
.. math::
|
||||
|
||||
{}^{rscsp}\!S\!f_i^\alpha = \sum_{\beta} \left(\frac{r^{\alpha\beta}}{r_e}\right)^ie^{-\delta_i \frac{r^{\alpha\beta}}{r_e}}S^{\alpha\beta}\left(\mathbf{s^\alpha \cdot s^\beta}\right)f_c\left(\frac{r_c-r^{\alpha\beta}}{dr}\right)
|
||||
|
||||
* **bondscreenedspin**
|
||||
|
||||
.. math::
|
||||
|
||||
{}^{bscsp}\!S\!f_{ij}^\alpha = \sum_{\beta}\sum_{\gamma} \left(cos(\theta_{\alpha\beta\gamma})\right)^ie^{-\delta_j \frac{r^{\alpha\beta}}{r_e}}e^{-\delta_j \frac{r^{\alpha\gamma}}{r_e}}S^{\alpha\beta}S^{\alpha\gamma}\left(\mathbf{s^\alpha \cdot s^\beta}\right)\left(\mathbf{s^\alpha \cdot s^\gamma}\right)f_c\left(\frac{r_c-r^{\alpha\beta}}{dr}\right)f_c\left(\frac{r_c-r^{\alpha\gamma}}{dr}\right)
|
||||
|
||||
The activation functions are computed as follows:
|
||||
|
||||
.. _activations:
|
||||
|
||||
* **sigI**
|
||||
|
||||
.. math::
|
||||
|
||||
F^{sigI}(x) = 0.1x+0.9ln\left(e^x+1\right)
|
||||
|
||||
* **linear**
|
||||
|
||||
.. math::
|
||||
|
||||
F^{linear}(x) = x
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
Pair style *rann* is part of the USER-RANN package. It is only enabled if LAMMPS was built with that
|
||||
package. Additionally, if any spin fingerprint styles are used LAMMPS must be built with the SPIN
|
||||
package as well.
|
||||
|
||||
Defaults
|
||||
""""""""""""
|
||||
|
||||
Cmin = 0.8, Cmax = 2.8.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
.. _Baskes97:
|
||||
|
||||
**(Baskes)** Baskes,
|
||||
Materials Chemistry and Physics, 50(2), 152-158, (1997).
|
||||
|
||||
.. _Dickel:
|
||||
|
||||
**(Dickel)** Dickel, Francis, and Barrett,
|
||||
Computational Materials Science 171 (2020): 109157.
|
||||
|
||||
.. _Nitol:
|
||||
|
||||
**(Nitol)** Nitol, Dickel, and Barrett,
|
||||
Computational Materials Science 188 (2021): 110207.
|
||||
|
||||
.. _Tranchida7:
|
||||
|
||||
**(Tranchida)** Tranchida, Plimpton, Thibaudeau and Thompson,
|
||||
Journal of Computational Physics, 372, 406-425, (2018).
|
||||
|
||||
@ -291,6 +291,7 @@ accelerated styles exist.
|
||||
* :doc:`polymorphic <pair_polymorphic>` - polymorphic 3-body potential
|
||||
* :doc:`python <pair_python>` -
|
||||
* :doc:`quip <pair_quip>` -
|
||||
* :doc:`rann <pair_rann>` -
|
||||
* :doc:`reax/c <pair_reaxc>` - ReaxFF potential in C
|
||||
* :doc:`rebo <pair_airebo>` - second generation REBO potential of Brenner
|
||||
* :doc:`resquared <pair_resquared>` - Everaers RE-Squared ellipsoidal potential
|
||||
|
||||
@ -23,6 +23,7 @@ acolor
|
||||
acos
|
||||
Acta
|
||||
actinide
|
||||
activationfunctions
|
||||
acylindricity
|
||||
addforce
|
||||
Addington
|
||||
@ -75,6 +76,7 @@ allocaters
|
||||
allosws
|
||||
AlO
|
||||
Alonso
|
||||
alphak
|
||||
alphashrink
|
||||
amap
|
||||
Amatrix
|
||||
@ -153,6 +155,7 @@ atomfile
|
||||
AtomicPairStyle
|
||||
atomID
|
||||
atomistic
|
||||
atomtypes
|
||||
attogram
|
||||
attograms
|
||||
attrac
|
||||
@ -288,6 +291,9 @@ BondAngle
|
||||
BondBond
|
||||
bondchk
|
||||
bondmax
|
||||
bondscreened
|
||||
bondscreenedspin
|
||||
bondspin
|
||||
bondtype
|
||||
Bonet
|
||||
Bonomi
|
||||
@ -340,6 +346,8 @@ bz
|
||||
cadetblue
|
||||
Cagin
|
||||
calc
|
||||
calibrationfunctions
|
||||
calibrationparameters
|
||||
calibre
|
||||
caltech
|
||||
Caltech
|
||||
@ -670,6 +678,7 @@ diagonalized
|
||||
diagonalizers
|
||||
diagonalizing
|
||||
Diallo
|
||||
Dickel
|
||||
diel
|
||||
differentiable
|
||||
diffusively
|
||||
@ -722,6 +731,7 @@ doxygenclass
|
||||
doxygenfunction
|
||||
downarrow
|
||||
Doye
|
||||
Doyl
|
||||
dpd
|
||||
DPD
|
||||
dpdTheta
|
||||
@ -1638,6 +1648,7 @@ Laupretre
|
||||
Lauriat
|
||||
lavenderblush
|
||||
lawngreen
|
||||
layersize
|
||||
lB
|
||||
lbfgs
|
||||
lbl
|
||||
@ -2164,6 +2175,7 @@ nemd
|
||||
netcdf
|
||||
netstat
|
||||
Nettleton
|
||||
networklayers
|
||||
Neumann
|
||||
Nevent
|
||||
nevery
|
||||
@ -2198,6 +2210,7 @@ Ninteger
|
||||
NiO
|
||||
Nissila
|
||||
nist
|
||||
Nitol
|
||||
nitride
|
||||
nitrides
|
||||
niu
|
||||
@ -2672,6 +2685,9 @@ qw
|
||||
qx
|
||||
qy
|
||||
qz
|
||||
radialscreened
|
||||
radialscreenedspin
|
||||
radialspin
|
||||
radian
|
||||
radians
|
||||
Rafferty
|
||||
@ -2684,6 +2700,8 @@ ramping
|
||||
Ramprasad
|
||||
Randisi
|
||||
randomizations
|
||||
rann
|
||||
RANN
|
||||
Raphson
|
||||
Rappe
|
||||
Ravelo
|
||||
@ -2960,6 +2978,7 @@ SiC
|
||||
Siegmund
|
||||
Siepmann
|
||||
Sievers
|
||||
sigI
|
||||
sigmoid
|
||||
Sij
|
||||
Sikandar
|
||||
@ -3661,6 +3680,8 @@ zz
|
||||
Zm
|
||||
PowerShell
|
||||
filesystems
|
||||
fingerprintconstants
|
||||
fingerprintsperelement
|
||||
zincblende
|
||||
Zstandard
|
||||
Zstd
|
||||
|
||||
277
examples/USER/rann/TiZr_2.nn
Normal file
277
examples/USER/rann/TiZr_2.nn
Normal file
@ -0,0 +1,277 @@
|
||||
#iter: 3957, evals: 6770, e_err: 1.2959304580e-05, e1: 1.2959304580e-05, ev_err 1.4570936792e-05, r_err: 1.0147937957e-06, lambda: 1.4986245485e+50
|
||||
atomtypes:
|
||||
Ti Zr
|
||||
mass:Ti:
|
||||
47.867000
|
||||
mass:Zr:
|
||||
91.224000
|
||||
fingerprintsperelement:Ti:
|
||||
3
|
||||
fingerprintsperelement:Zr:
|
||||
3
|
||||
fingerprints:Ti_Ti:
|
||||
radialscreened_0
|
||||
fingerprints:Ti_all_all:
|
||||
bondscreened_0
|
||||
fingerprints:Ti_Zr:
|
||||
radialscreened_0
|
||||
fingerprints:Zr_Zr:
|
||||
radialscreened_0
|
||||
fingerprints:Zr_all_all:
|
||||
bondscreened_0
|
||||
fingerprints:Zr_Ti:
|
||||
radialscreened_0
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:re:
|
||||
2.943843
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:alpha:
|
||||
4.720000 4.720000 4.720000 4.720000 4.720000
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:dr:
|
||||
5.056157
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:n:
|
||||
3
|
||||
fingerprintconstants:Ti_all_all:bondscreened_0:re:
|
||||
2.943843
|
||||
fingerprintconstants:Ti_all_all:bondscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Ti_all_all:bondscreened_0:alphak:
|
||||
1.000000 2.000000 4.000000 6.000000 9.000000
|
||||
fingerprintconstants:Ti_all_all:bondscreened_0:dr:
|
||||
5.056157
|
||||
fingerprintconstants:Ti_all_all:bondscreened_0:k:
|
||||
5
|
||||
fingerprintconstants:Ti_all_all:bondscreened_0:m:
|
||||
8
|
||||
fingerprintconstants:Ti_Zr:radialscreened_0:re:
|
||||
2.943843
|
||||
fingerprintconstants:Ti_Zr:radialscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Ti_Zr:radialscreened_0:alpha:
|
||||
4.720000 4.720000 4.720000 4.720000 4.720000
|
||||
fingerprintconstants:Ti_Zr:radialscreened_0:dr:
|
||||
5.056157
|
||||
fingerprintconstants:Ti_Zr:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Ti_Zr:radialscreened_0:n:
|
||||
3
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:re:
|
||||
3.234381
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:alpha:
|
||||
4.450000 4.450000 4.450000 4.450000 4.450000
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:dr:
|
||||
4.765619
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:n:
|
||||
3
|
||||
fingerprintconstants:Zr_all_all:bondscreened_0:re:
|
||||
3.234381
|
||||
fingerprintconstants:Zr_all_all:bondscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Zr_all_all:bondscreened_0:alphak:
|
||||
1.000000 2.000000 6.000000 9.000000
|
||||
fingerprintconstants:Zr_all_all:bondscreened_0:dr:
|
||||
4.765619
|
||||
fingerprintconstants:Zr_all_all:bondscreened_0:k:
|
||||
4
|
||||
fingerprintconstants:Zr_all_all:bondscreened_0:m:
|
||||
8
|
||||
fingerprintconstants:Zr_Ti:radialscreened_0:re:
|
||||
3.234381
|
||||
fingerprintconstants:Zr_Ti:radialscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Zr_Ti:radialscreened_0:alpha:
|
||||
4.450000 4.450000 4.450000 4.450000 4.450000
|
||||
fingerprintconstants:Zr_Ti:radialscreened_0:dr:
|
||||
4.765619
|
||||
fingerprintconstants:Zr_Ti:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Zr_Ti:radialscreened_0:n:
|
||||
3
|
||||
screening:Ti_Ti_Ti:Cmax:
|
||||
0.900000
|
||||
screening:Ti_Ti_Ti:Cmin:
|
||||
0.490000
|
||||
screening:Ti_Ti_Zr:Cmax:
|
||||
0.850000
|
||||
screening:Ti_Ti_Zr:Cmin:
|
||||
0.440000
|
||||
screening:Ti_Zr_Ti:Cmax:
|
||||
1.500000
|
||||
screening:Ti_Zr_Ti:Cmin:
|
||||
0.700000
|
||||
screening:Ti_Zr_Zr:Cmax:
|
||||
0.950000
|
||||
screening:Ti_Zr_Zr:Cmin:
|
||||
0.470000
|
||||
screening:Zr_Ti_Ti:Cmax:
|
||||
2.700000
|
||||
screening:Zr_Ti_Ti:Cmin:
|
||||
0.470000
|
||||
screening:Zr_Ti_Zr:Cmax:
|
||||
1.900000
|
||||
screening:Zr_Ti_Zr:Cmin:
|
||||
0.440000
|
||||
screening:Zr_Zr_Ti:Cmax:
|
||||
2.950000
|
||||
screening:Zr_Zr_Ti:Cmin:
|
||||
1.200000
|
||||
screening:Zr_Zr_Zr:Cmax:
|
||||
2.900000
|
||||
screening:Zr_Zr_Zr:Cmin:
|
||||
0.490000
|
||||
networklayers:Ti:
|
||||
3
|
||||
networklayers:Zr:
|
||||
3
|
||||
layersize:Ti:0:
|
||||
50
|
||||
layersize:Ti:1:
|
||||
20
|
||||
layersize:Ti:2:
|
||||
1
|
||||
layersize:Zr:0:
|
||||
42
|
||||
layersize:Zr:1:
|
||||
20
|
||||
layersize:Zr:2:
|
||||
1
|
||||
weight:Ti:0:
|
||||
2.959065631457990e+01 8.820178365370960e+00 3.567479250699050e+01 -9.520944737974550e+01 5.810216841766590e+01 9.002124484009080e-03 1.229243737965220e-01 8.308975217587410e-01 6.823375462445510e-01 -2.120116364747350e+00 -5.042944013969450e+00 8.888536859810211e-01 4.730113767902510e+00 -3.561046029798420e-01 -5.268119595319890e+00 -5.022196630576951e+00 1.408878320391390e+01 1.468387176035110e+01 3.760997999097570e+01 -6.917447867710290e+00 -5.365770859257360e+01 2.298166523864800e+01 3.868330833699280e+02 -1.716548340302800e+02 -1.893938251864540e+03 7.087497678108080e+01 6.758413925648071e+02 -1.879116886681510e+01 1.086082362821260e+03 -2.582591099463280e+03 -6.919949629103320e+03 6.653492220309850e+03 3.910779971401370e+04 -7.590339154383870e+03 -2.022471894606200e+04 5.146509910417540e+03 -1.785463453281940e+04 4.562627218960931e+04 1.101701455067090e+05 -3.084309856150380e+05 -9.971094440845660e+05 6.441995235572750e+05 6.416524220576230e+05 -5.569111763100200e+05 4.328915131668910e+05 5.428524342952564e+01 -4.807139553935529e+01 3.674056463489699e+01 -1.977223569852695e+01 1.398466060959636e+01
|
||||
1.115693858967680e+02 -5.209779939312010e+00 -1.092385668269330e+01 -7.571784442383159e+01 -1.662179555544060e+01 6.916594544622801e-02 3.413942491148800e+00 4.480188413646630e-01 -2.802071362110940e+00 4.856749991432370e-01 3.705116153321830e+00 -2.506064444643240e-01 4.559599774503270e-01 -1.221308069065120e+00 -1.641607115739850e+01 3.587904146265880e+00 -2.383416507477550e+01 -9.053907553863560e-01 -2.345767274757610e+00 2.209763752910380e+00 -2.673114428269780e+01 8.868866584244550e+00 -9.266724447503009e+02 1.276638625895970e+02 7.168919250618770e+02 3.363071672846350e+02 1.444136022401220e+03 3.037219474351350e+02 6.597654623185430e+02 -3.584719368857490e+03 1.436854292524340e+04 1.250649758704310e+02 -1.134443963945180e+04 -9.877927968886390e+03 -7.232548546930680e+03 -1.764631584481190e+01 -1.378082415237150e+04 5.896464207004850e+04 -9.422840447102470e+04 2.948993551487030e+04 2.008982788928040e+03 7.562262912574749e+04 -4.983163988565260e+04 -8.575889316913020e+04 2.236873807148270e+05 1.354471135914414e+02 -3.150983530345522e+01 -6.539829926937760e+00 -3.528134551545980e+01 -3.035896296858233e+01
|
||||
8.785785932652220e+01 -4.720301334844530e+01 -2.020078576639370e+01 -8.255733692970909e+01 1.178751057600940e+02 9.264406483588231e-02 -8.591966416908700e-01 -2.857387389805440e-01 3.015871584381770e+00 1.521919611154890e-01 -2.855075022109020e+00 -2.903254706936460e-01 -3.875576775518040e-01 -1.502710449510660e+00 1.520339443967300e+01 1.731954001149110e+00 -5.593960128660860e+01 -2.295786748665170e+00 5.184952484874350e+01 1.592105947138620e+01 1.044288938102470e+01 1.080112064482300e+02 -6.503242958941140e+02 5.126387212054780e+01 1.597542448224040e+03 5.525892218471130e+00 -2.044692134406340e+02 -4.378343406176560e+02 -1.365572260486900e+03 5.425057742978480e+02 1.300810235708670e+04 -4.023490852286060e+03 -1.988158982819950e+04 6.967310910979560e+03 -2.024171606454450e+04 -3.946519618937470e+03 3.272873458153340e+04 -6.329517027391020e+04 -6.758621346995250e+05 -8.901399431816940e+04 5.802311652874351e+05 2.469897516161080e+05 -2.953675934297680e+05 2.508985896982250e+05 3.461023887148230e+04 1.352813198749896e+02 -1.630380500385758e+02 -1.059726795027444e+02 -4.718842231531175e+01 2.097108477308344e+02
|
||||
-5.983315673949120e+01 -5.919307194682480e+01 -2.313899936627500e+01 -1.379967160974440e+01 -5.689633174295660e+00 2.558411500579730e-02 4.966535582181171e-01 -1.127104896784800e-01 6.616245113484800e-01 1.512024678970050e+00 1.261340306063010e-01 -8.939209739253280e-01 3.836435145531750e-01 -9.152933589729160e-01 -2.819515446321520e+00 2.370269820057920e-02 -3.518535110763860e+00 -5.912237597981070e+00 -4.743613153004790e+00 -9.646383685996600e+00 -1.251890320875510e+01 1.196420918486560e+02 -3.106534430102290e+01 1.234735282275300e+02 3.222034272429480e+02 -8.517391382048750e+01 -1.336644870819130e+02 2.301334896952550e+02 2.795984833086180e+02 -7.564031065509090e+02 4.407754317028220e+03 -7.773963274447460e+01 -1.013680532461270e+04 -2.137688884394740e+03 1.854556641011860e+03 4.584784172458900e+03 3.070062887959150e+03 -1.650713622650290e+04 -1.690054624853500e+05 -9.892176689015090e+04 4.202313825462020e+05 1.823855045104630e+05 -3.431732355464990e+05 -1.288820654713850e+05 1.153329116697660e+05 -9.512788431741470e+01 -1.083147074683482e+02 -1.401980252358567e+01 5.077341232589099e+01 1.611760202769135e+01
|
||||
6.043868296995040e+01 4.953730803784700e+01 7.444491996599690e+01 2.069602350040530e+01 2.885023876509890e+01 -1.819594904018430e-02 -3.848784799773810e-01 -1.481217043109310e-01 1.376200375927920e+00 -1.047720682285890e-02 -3.575729995777320e+00 -1.600916160440440e+00 1.794687661779280e-01 7.996111823895621e-01 -1.099747849865890e+01 8.461579059755990e-01 1.912020946657630e+01 -2.330922291393970e+00 -3.201760021603340e+00 5.967674495276551e+00 7.202403588231940e+00 -3.963009841931790e+01 1.232746458298290e+02 7.293629493154040e+01 9.070915000036319e+01 7.821017738799991e+01 1.030456292377630e+02 2.367832546260190e+01 7.465984980998800e+02 -2.222946622172020e+03 2.365811170850490e+03 -4.316665836652120e+03 -5.681650496185500e+03 -4.705610717173330e+03 -2.463533711738170e+03 4.277433987676700e+02 -1.340783803475190e+04 8.114394517862870e+04 -1.371771041031440e+05 7.645477649479060e+04 1.381604663006290e+05 -9.358182445605620e+04 1.497249059051430e+05 3.740090050028630e+04 -2.951225783430170e+04 7.899947268818528e+01 1.744184194432216e+01 7.251446838854935e+01 5.429577897804942e+01 7.807542695718272e+00
|
||||
7.336413357703550e+01 5.385735724250819e+01 -1.013025042673250e+02 -3.775215413344070e+01 3.856228680957000e+01 -2.774006629323010e-01 3.529706536044520e+00 1.051024631506050e+00 -9.126702013427540e+00 -3.036141107572870e-01 6.965836125304440e+00 2.370710254085180e-01 -2.453818030419200e+00 3.584431481868390e+00 -3.955211197897520e+01 -2.946319634169590e+01 1.075342223305780e+02 3.106469607072350e+01 -5.639364892412801e+01 -1.608059058708440e-01 5.568683573148920e+00 1.095331213085640e+02 7.356684893782630e+02 -1.953531461722100e+02 -2.290279364852280e+03 -7.626123846589050e+01 -1.093150014594480e+03 -4.785211317880390e+02 1.823212591707460e+03 -7.110275609460000e+03 -8.718444264025210e+02 2.761255219512280e+04 4.288711262044300e+04 7.873341657826530e+03 2.101411900064320e+04 -2.549447846479280e+04 -4.781367612174040e+04 3.798098289652220e+03 -1.231616040097590e+06 -1.636924466717420e+06 -8.535898658236240e+05 -1.069993108285150e+06 7.918258980567560e+04 2.785945734799830e+06 1.341027760457690e+06 3.999352207637106e+01 -2.084141902956322e+01 -5.860760267787311e+00 8.807230220822389e+01 -7.620161545548299e+01
|
||||
-5.454503514021350e+01 3.022937868044680e+00 1.036302323371130e+02 1.935381124326150e+01 -4.612595619827530e+01 8.792376998749740e-02 3.958336360908130e-01 -3.611972157525290e-01 -7.637152495511270e-01 3.653562740495300e-01 3.067551830757980e-01 -3.161256031699760e-01 4.744168004022800e-02 1.328386675030670e-02 -2.283213430935990e+00 -7.905546692629679e-02 -8.415206885898829e+00 3.763465287005150e+00 1.822358427888100e+01 -2.102569135625870e+00 -8.119986083501260e+00 -4.299383232184290e+01 -6.319797969630640e+01 1.364977306635730e+01 1.116474530878040e+03 6.481020621915920e+01 -1.135738338453160e+03 -1.755614422178900e+02 6.704888124888900e+01 8.115636002388160e+02 2.229292409804530e+03 4.152068637760440e+02 -2.300186571663850e+04 -8.991813724806230e+03 9.833563087692790e+03 1.007435440408350e+04 1.268059452291430e+04 -6.100360643113080e+04 -7.679226754674291e+04 -4.324234891085850e+04 5.104133002498230e+05 5.100622558505500e+05 5.687417836825640e+05 -4.065563558156510e+05 -1.061487530145130e+06 -5.003180676080586e+01 4.052841198873614e+01 7.087821421181067e+01 -4.393348440683287e+01 7.746042081722949e+00
|
||||
-1.716350791787660e+01 7.669125478653530e+01 3.361398252746390e+00 -1.823274223785960e+02 1.680571316955560e+02 5.044485048795341e-02 -1.554309491130320e+00 -1.040567622332270e-01 5.403793929246860e+00 -9.332473544329940e-01 -3.328691452127940e+00 7.276367356846971e-01 -1.466253850993270e+00 -2.049238235100090e+00 1.890511806957930e+01 -1.365603915317670e-01 -7.306887579902040e+01 1.804106245632960e+01 4.985504986813700e+01 -1.387868082177220e+01 1.509060210160700e+01 -4.283272769576120e+01 -5.638949573162710e+02 -1.147260037690820e+01 1.990318793808500e+03 -1.291052217409060e+02 -7.864632802727400e+02 1.714942131555120e+02 -9.047631218077070e+02 1.594135040047940e+03 5.057802021444400e+03 2.765903434357460e+03 -5.421551955012629e+03 -1.460714485552360e+04 -2.242060556352510e+04 9.175879529415230e+03 2.631222640155590e+04 -1.290337306291940e+05 3.174622597120970e+05 -3.531368075740880e+05 -9.863082748151441e+05 1.052808298304350e+06 2.019305533585840e+05 -5.362818651229400e+05 4.057391172423450e+05 6.166117974861679e+01 -1.733823613019336e+01 -3.276018836488415e+01 -1.102900890440716e+02 1.431606844789580e+02
|
||||
4.277587614028520e+01 -5.541473137759560e+01 -1.102024827305630e+01 5.257858445795200e+01 -3.425341040033230e+01 -5.103011537222040e-02 1.131369327308280e-01 -2.892417383021370e-01 -3.408892711180270e-01 4.987019733292620e-01 5.930401521399159e+00 3.573649251910180e-01 -6.196824517342410e+00 3.493614018252210e-02 4.466306254045950e+00 -2.141513647484160e+00 -1.643052132619940e+01 7.878931556659919e+00 -5.834432405562180e+01 -6.326641211588000e+00 7.387894467468740e+01 6.867106305603799e+01 -2.651950831795120e+02 -4.817891301084070e+01 1.714170745131860e+03 -1.662565378656220e+02 5.075078770601480e+02 3.532164567001380e+02 -1.688617047555710e+03 -2.348133577164790e+03 -3.835231374568170e+03 5.031215766012700e+03 -2.913252889346310e+04 -1.018714388790040e+04 1.131417862036770e+04 7.321582219471570e+03 2.002936335361840e+04 2.917068634474880e+05 1.116083541827690e+06 1.198457175470130e+05 -5.669370558466420e+05 -3.745999354981260e+05 7.447029070304430e+04 -1.889247408188940e+05 -2.017056816322920e+05 8.475147542077808e+01 -1.769890954110007e+02 5.862177082179904e+00 1.923396463667033e+02 -1.132367725685456e+02
|
||||
2.127944540103450e+01 -2.877490844198130e+01 5.903642848966370e+01 3.205853304780400e+00 6.690385675269400e+01 -1.550046529349520e-01 8.612501177660180e-01 2.451744371445420e-02 -2.418332147292460e+00 2.130934772577300e-01 3.602492255934550e-01 -6.336639965844749e-02 7.128735584523610e-01 5.204016397389720e-01 -1.428851379175280e-01 -1.098637221879920e+00 -1.514115944100120e+01 -3.997867152468980e+00 1.926736020692510e+01 3.182059523652050e+00 -1.878696122769460e+01 -2.037225647171810e+01 -2.525319448922870e+02 -6.541187163682530e+01 5.997373834256399e+02 2.676468877629580e+02 -2.162646066318250e+02 -4.122274734310440e+02 -3.584287388298700e+02 -6.287776493875820e+02 3.234653603322630e+03 1.708512593874380e+03 -2.727209058828810e+03 1.033810889939680e+03 -7.805596568289660e+03 -6.217798368030160e+03 5.313748576584260e+03 3.782843343209730e+04 -6.327484327593841e+04 -1.061552540069060e+05 -2.166129924583750e+04 1.334816983273110e+05 2.349340167555280e+05 -1.858449942928970e+03 -1.503039371950090e+05 3.974641964015988e+01 -6.098888036471162e+01 5.695862343246636e+01 3.662466881845616e+01 4.564119577544508e+01
|
||||
-1.809019814601920e+01 -6.318546075726380e+01 3.502313213382470e+01 2.537223513907520e+01 2.139592943381480e+01 6.497971721711360e-02 -2.541186757927500e-01 1.331003658270460e-01 -1.149611183868250e+00 7.191503838203580e-01 -7.984961611912481e-02 -3.034047471169860e-01 -3.752559589532610e-01 -1.459226938296720e+00 -8.074197858798611e+00 -1.749726257636480e+00 5.068428107922120e+01 1.870829404153490e+00 1.189599350957090e+01 1.056999138261870e+01 1.815394425479030e+01 -8.770611613711820e+01 4.766163355057220e+02 -5.835197574323640e+01 -6.412462403239050e+02 -5.534327678560210e+01 -5.714475346906891e+02 -1.916294922174240e+02 -2.059172424432570e+02 2.152982801219270e+03 -3.197765552742720e+03 1.214725535748060e+03 2.979752928144600e+03 -1.059319412352340e+03 4.010636576154850e+03 8.730065384619330e+01 1.416071470392590e+03 -2.480004127031560e+04 4.130113532056310e+03 2.696725909732280e+04 1.350230086967440e+05 -2.104408453509880e+04 -1.870080707984100e+05 9.258425664851280e+03 2.270199436544050e+04 3.874358737148040e-01 -9.538899256479260e+01 3.295543854351155e+01 5.880075690806045e+01 1.425146633849586e-01
|
||||
-6.287562290750431e+01 -1.256743566101110e+01 1.186515639771760e+02 4.448885777059110e+01 -8.655564354879640e+01 1.595312781983040e-01 1.110252834715520e+00 -6.728476391469840e-01 -4.767156094912900e+00 -5.684009350323000e-01 4.579771722243120e+00 -2.456192762060000e-01 -2.776347381266540e+00 2.020337937589390e+00 1.243352952853730e+01 -4.866495322917700e-01 -6.829757251604780e+00 3.109726419700340e+00 1.639409904201660e+00 5.336533994115300e+00 -3.830578054157360e+00 -1.581757722751310e+01 -1.395663345783050e+02 -9.372283713117540e+01 1.346416062603650e+02 5.310234552809910e+01 1.764352528448100e+02 -5.583382655188281e+02 -1.671614656241800e+02 -1.155396041321240e+03 4.943126679254260e+02 1.027179627044370e+03 1.635112143739060e+02 4.849942865254680e+03 -6.899574251683660e+03 6.643786277678040e+02 4.566027778907500e+03 5.214306944633080e+04 3.540346669080600e+04 7.892295323196100e+04 8.273562649930600e+04 -2.596956367011940e+05 -1.488814354406500e+05 9.783358918515230e+04 4.433509034746130e+04 -4.441209222489129e+01 -4.478147672621296e+01 1.165766141987243e+02 7.791327490368327e+01 -1.078098706882099e+02
|
||||
-1.129050987598760e+01 -1.064541855473100e+02 -7.128503516512480e+00 -6.453299364158001e+01 -1.211842272514140e+02 -1.432994958956060e-01 -4.920505992800340e-01 6.006413098366169e-01 3.461329088596560e+00 -2.998490277733280e+00 -7.466558029079150e+00 1.444037214220510e+00 2.664068255392900e+00 6.349796872002090e+00 -4.233220413417680e+00 1.174955929427830e+01 -1.296278332359900e+01 -1.212974652006810e+01 4.615816393256650e+01 1.222731370360360e+01 2.199633528849840e+00 1.197655633479170e+02 4.185118414251960e+02 -5.410074419928320e+02 -8.011246407469890e+02 6.864786471573329e+02 -6.262561405889981e+02 9.465933235349200e+01 9.927815158125890e+01 3.610725123550870e+03 -1.046068383906190e+04 -2.462571483744750e+03 3.209910271331160e+04 1.012499832057500e+04 4.447909159349940e+03 -1.430989259072110e+04 -1.323291979818500e+04 1.316261475411740e+04 2.834634933114450e+05 2.630501465736330e+05 -8.645569870102340e+04 -2.053856359685850e+04 -2.369991590369040e+05 -2.965843834083010e+05 -4.409599532396930e+04 1.347335082570862e+02 -1.666426990810843e+02 -8.727053995175037e+01 -7.345910633318029e+01 -1.069741498356160e+02
|
||||
1.320973530791700e+02 1.133744177141020e+02 6.187724893682460e+01 -1.036257536830240e+02 -6.711739425491170e+01 -2.361802771282950e-02 2.852818677612850e+00 -5.763113597522780e-02 -5.754645017157180e+00 1.040226353964420e+00 -7.188164230414800e+00 8.884067862570069e-01 -3.338922522957300e+00 -1.830898005699390e+00 6.420876673786810e+01 -4.093058268227900e+00 -2.624123626170260e+01 -6.070285210535170e+00 -4.136775103420210e+01 -3.106575523655030e+00 -1.170680617250370e+01 -8.932374517039530e+01 -8.795441283927320e+02 -1.694005532298300e+02 7.289997970841830e+01 1.274307640624960e+02 1.039711213416940e+03 5.500505833839030e+02 1.011388720913690e+03 -3.338045408785700e+03 1.459457972380790e+02 -1.093001969648530e+03 8.346012452448140e+03 3.942859030732620e+03 7.209887485535430e+03 2.063913337114790e+04 1.726277649630800e+04 -4.375686580512670e+05 -4.334965941900989e+05 2.520663302832980e+04 -1.975121234131820e+05 -6.972869237695930e+04 -3.958293518819950e+04 3.157469424712080e+05 1.469868050563580e+05 1.510297172571374e+02 8.174083334624558e+01 6.050773979909467e+01 -6.935968739127078e+01 -8.738587281474005e+01
|
||||
-7.680083713548920e+01 -2.885579283049770e+01 8.230918168172470e+01 -2.879211280721080e+00 -1.502918483015010e+02 1.724684493190230e-02 2.405636998267920e-01 -5.191089978005340e-01 -3.908004839649150e+00 -1.149104213600200e+00 5.623119733181780e+00 3.202891744101100e+00 -4.198194201255600e+00 3.434108485139931e+00 1.669727873396220e+01 1.843422989710170e+00 -1.778376425248270e+01 -8.848918908776380e+00 -2.820847151335140e+01 -5.555859896695160e+00 5.906172198123640e+01 -8.815749977758810e+01 -7.073641353278190e+02 1.361368756288440e+02 2.161766946802510e+03 4.319482649640560e+02 -1.345860454878010e+03 -1.651617448977750e+02 -7.951328420274290e+02 2.064063700098160e+03 5.963440573047770e+03 8.486607123360481e+02 -2.151883495306340e+04 -1.547872222331930e+04 -5.826866815020149e+02 8.289831536661310e+03 2.767385574431240e+04 -3.130380986270620e+04 1.432236375805380e+05 2.662252894939030e+05 -2.028384328729530e+05 -8.671824378835870e+05 3.489184006508940e+05 7.166138082697390e+05 -4.161462700086611e+05 -9.509749589540242e+01 -6.239116927882034e+01 1.355811944826567e+02 1.045509318465184e+02 -2.542652647320133e+02
|
||||
2.092015377584270e+01 -6.818146651595410e+01 -3.962051090650320e+01 6.298697276595180e+00 4.978455687558160e+01 -2.133167764421440e-03 -4.228408643390770e+00 -1.574679657025820e-01 4.652489412972160e+00 1.733331459289110e-01 9.950307502565490e+00 -1.837649610790410e-01 1.670753494312190e+00 -5.452686146305620e-01 -9.939087460650070e+00 -2.288461945407100e+00 5.371501324556300e+00 -1.030098894662700e+01 1.110409318938780e+01 -3.379978051391610e+00 -2.077708918933370e+01 -1.740409212661940e+01 6.179426972594830e+02 1.202112107144330e+01 -1.272542035621630e+03 -1.693409267633910e+02 -1.215662561898050e+03 -3.769491663120790e+02 -2.471368250515080e+02 2.460931072666510e+03 -6.112302974891570e+03 5.576028754777240e+03 1.494463766585660e+04 -5.844549337907069e+02 -4.023838198942170e+03 1.828075889404760e+03 -6.856904185154880e+01 1.472734042646860e+04 -2.422000894715169e+04 -1.750059740610240e+05 1.824411937467380e+05 -1.162243993332650e+05 -1.546180026284920e+05 1.457903320438880e+05 7.260952292331720e+04 3.943660694116207e+01 -1.003457748667055e+02 -4.164853601174104e+01 3.976746887667212e+01 2.857221230025209e+01
|
||||
5.549236330002110e+00 8.510464271612239e+00 1.499915930872850e+00 -5.718076776176819e+01 -1.073400737021230e+02 1.913734210571670e-02 -1.897976106885310e+00 9.474353027541720e-02 6.559895938589190e+00 3.847861539699660e-01 -1.197530597842370e+01 -2.502985321272610e-01 1.021236923490620e+01 2.075785921157220e+00 -6.506928209049970e+00 6.234279325535130e+00 1.752790175510280e+01 -9.361615516391020e-02 -3.637988402046640e+01 -1.035563439659020e+01 -2.104567867330320e+01 1.590829936726210e+02 1.463762464824570e+03 4.385982942807070e+02 -1.722479327485010e+03 -6.585308438558330e-01 1.139079783125020e+03 -8.350487082617450e+02 -7.343631692232960e+01 -4.728152000583490e+01 -9.143160143408950e+03 4.266010242928260e+03 -1.001379527078610e+04 -3.570221809676630e+03 2.321762918844290e+04 -1.378614329552220e+03 -1.252462675350270e+04 -9.977546699884468e+04 -2.165451322108980e+05 -1.244428306954970e+05 1.647110199826280e+05 -6.868788643158780e+04 5.939294657377000e+05 3.361439704050320e+05 -5.152691654531129e+05 7.005560538924354e-03 -2.994889224868999e+01 1.379153078197083e+01 -5.778826551302973e+00 -1.509172064436118e+02
|
||||
-7.916671728129339e+00 4.492823948998120e+01 -2.321361896168350e+00 -1.307990846578830e+02 8.765869130093630e+01 -9.432882458046210e-02 1.611005810242830e+00 -1.492405431125900e-02 -4.882611306436191e+00 1.355693318261030e+00 7.347697810758220e+00 -1.005947608673520e+00 -4.361056799092970e+00 9.247886198515159e-02 -2.009908475018450e+01 -8.766169433333260e+00 6.434501739699240e+01 5.061307399216700e+00 -8.580659555328150e+01 8.467487932199029e+00 4.795338088214070e+01 1.223215802782500e+02 2.099492630433860e+02 -1.899923297323580e+02 -8.744126753927590e+02 1.763805850118000e+02 1.138206840449200e+03 -5.264380804364580e+02 -9.034346921159790e+02 -4.059105563840720e+03 6.875493804896340e+03 1.735011124704730e+04 -4.579734146321170e+03 -9.297778126741820e+03 -2.341425160868980e+03 -1.554197660004220e+03 8.525873364765690e+03 1.618272281833870e+04 -1.029347626249580e+06 -1.377874758793990e+06 1.133230497940440e+06 1.535001290882850e+06 4.483416847289580e+05 -1.249958276970500e+05 -9.474144957910458e+05 -9.177308441563005e+01 1.716609154039195e+02 1.202551244452341e+00 -2.251239259883857e+02 1.329545258333232e+02
|
||||
-7.802632807816740e+01 -6.845340364662910e+01 1.356713670586950e+01 6.429559291889871e+01 5.969112686840559e+01 -1.476459646859460e-01 -9.014179718702729e-01 2.539243605349720e-01 6.578331994696370e-01 6.567788654511670e-01 2.672971790084560e+00 -4.045417196641020e-01 -2.480889831451430e+00 -2.173085187939530e+00 -6.149384313374290e-01 1.237555532875510e+00 3.398910583700700e+00 3.748468846399340e+00 -1.356194023597960e+01 3.576828207684910e-01 1.028514022166650e+01 -2.452974645090860e+01 1.472219899103320e+02 3.531820910869280e+01 -1.830872227158560e+02 -7.121290468102021e+01 -3.227075248363260e+02 -1.353082919292390e+02 2.733126427158990e+02 2.841383806359940e+03 -3.265593290646150e+03 -4.267522007397480e+02 1.466201562416410e+03 -2.517201653687010e+03 1.254021916995560e+04 1.578186339790410e+03 -1.196054098260550e+04 -5.449534436381410e+03 6.576862020272011e+04 -8.695350896731610e+04 -8.814270606378430e+04 4.587074072723950e+05 7.623642768318400e+04 -3.517609551203240e+05 -4.378004867922440e+04 -5.681797561372628e+01 -9.779539200282534e+01 1.443245457550560e+01 1.006885844130784e+02 4.141105727390936e+01
|
||||
-8.073601889023701e+01 -1.294665120866080e+02 5.945805590714150e+01 -2.898290131951680e+01 -1.137372595027620e+01 1.219346386197720e-01 -3.839491851396980e-02 -3.595476170701780e-01 8.224162070888551e-01 3.344070630946880e-01 -1.361143505206730e-01 6.625530309825680e-01 2.537011728158460e-01 -4.266564294031260e-01 -1.194978121256970e+01 1.737482385185800e+00 2.043919378151330e+01 -4.788563396789360e+00 -3.474946133830100e+01 -4.220943925467510e+00 2.517221961878410e+01 1.060184179513230e+01 1.781504656839610e+02 1.365399582956040e+01 -3.400000871925320e+02 4.642900563873431e+01 3.718217200852840e+02 1.563519292553870e+02 -4.059289015912770e+02 1.917350342938080e+03 -2.168254395331960e+03 -5.048353631651640e+02 7.841144679334910e+02 -1.920899103395900e+02 7.535043890794460e+03 -9.790152729192910e+02 -3.407548179745761e+03 -2.289116277601350e+04 2.424830526185240e+04 -1.711510685927520e+04 -3.676143854672500e+04 7.968742284328659e+04 -3.199123493424850e+04 -3.494703283466890e+04 3.043202096109460e+04 -6.209159849717116e+01 -1.614908073286566e+02 5.757761883838479e+01 4.637524166135631e+00 -3.243304600499138e+01
|
||||
weight:Ti:1:
|
||||
-1.900909743994830e+01 -7.578770479490130e+00 -3.218496428548700e+00 -4.236167744297790e+00 -1.186749689073690e+01 5.376081602840550e+00 -6.790956567542070e+00 -1.773830000868000e+01 -5.501967698076490e+00 -1.126457217402020e+01 -9.679843884554650e+00 -4.136760185943520e+00 -5.854885706629030e+00 -6.673888840718900e+00 -2.988839238536750e+00 -9.253564488744130e+00 -2.641721529732370e+00 -8.536185712280711e+00 -5.034707016809750e+00 -7.113274560516300e+00
|
||||
weight:Zr:0:
|
||||
2.533572249648930e+01 -3.104581412524160e+01 8.841104450754280e+01 -7.985007792792420e+01 1.105808295039840e+02 -2.253538179994260e-01 -1.217589435913240e+00 -3.123739899897850e-01 9.157750022278430e+00 -6.194932975999620e-01 1.805558285462210e+00 9.357252380200199e-01 -8.814314612982440e-01 -5.372602165349510e-01 -1.992290532411720e+00 -3.180677179120500e+00 -7.224133471766901e+01 1.155030255834780e+00 2.075891577317090e+01 -5.232664886315670e+00 1.524105164832800e+00 -1.458171074797400e+03 6.080706785724720e+03 2.667380590374640e+03 -2.816532409598860e+03 -2.266503801594660e+03 -3.497749759328590e+03 -1.121776586769620e+04 -7.879967440006579e+03 1.386491948216740e+05 -3.193806071289290e+05 3.308221046077160e+04 6.743087983549030e+05 1.806390176571200e+05 -3.207206812968620e+05 -1.175492428241280e+05 -2.019157932932850e+04 1.339548490080990e+01 -1.551532847085550e+01 9.935243320837451e+01 -9.381032226564771e+01 1.259985684965357e+02
|
||||
8.641356211895409e+01 2.926871756471990e+01 1.137002479624610e+02 -6.088770796726430e+01 6.856146552249691e+00 5.032351871125780e-01 8.187734713481200e+00 -3.476244749478940e-02 -7.683172824505160e+00 -8.962907555979780e-01 5.163687504426310e-01 -5.533027836530370e+00 5.380657254803910e+00 1.863276616282680e+00 -8.995095022460541e+01 -7.288066972238700e+00 8.405780166521951e+01 5.110412820173250e+00 -4.475402613800050e+01 3.056775458291590e-01 -1.966026700692910e+01 -6.044195576037370e+03 1.094040144482330e+03 3.434070247275919e+03 -4.324493055396300e+02 2.396835704792020e+03 -4.786326256678370e+03 -5.413992175022420e+03 -2.702704511838280e+03 1.394418979423900e+05 3.944325141044279e+04 -7.188166063628149e+04 1.418586533975730e+05 2.230081550297510e+05 -7.428337596593521e+04 -2.675348378012910e+05 -4.628800797585280e+04 1.130323785646560e+02 3.502541884152883e+01 8.823797097404974e+01 -1.180913281083844e+02 -1.029789795456498e+01
|
||||
8.182902023347150e+01 -8.502416465112761e+01 -2.763321450364950e+01 -1.313909805815120e+02 5.463117835242790e+01 -3.782161893922071e-01 3.335583887237500e+00 2.888202736469640e+00 -7.193511304589880e+00 -1.240613513989550e+00 -2.525794255058170e+00 -6.080916633394290e+00 3.079661108116500e+00 5.082544529122120e+00 -2.845369664618080e+01 -5.691066249022370e+00 5.831268688342400e+01 1.650423069905090e+00 4.340558836334050e+01 4.057624699330630e+01 -4.956388161707650e+01 2.471787602550810e+03 1.440741355003530e+04 2.241189533780660e+03 -2.903320384580420e+04 -7.600180707459649e+03 2.684462629754650e+04 -1.419309127842040e+03 -5.611970822069090e+03 -1.583688341174910e+05 -4.652870961930530e+05 -4.888759958784170e+05 3.488465566479620e+05 5.842197530580350e+05 -1.513214383617390e+05 9.028378709143749e+04 1.572594959847890e+05 1.317973513728643e+02 -3.183767987119257e+01 -1.043035336997356e+01 -1.788886889820495e+02 -1.339410350013497e+01
|
||||
-5.652441775088680e+02 -3.129914392467210e+01 5.776487271895490e+02 6.648560055409160e+01 -1.439142742809110e+03 7.303517222923140e-01 -1.986755880395500e+01 6.181443845570690e+00 3.085984797843680e+01 -8.283096136717610e+00 -3.660476730408280e+01 -2.524588834830200e+01 1.318575482677720e+01 4.176612923056790e+01 9.283533384778779e+01 -7.182594840793200e+01 -2.254176428654160e+02 -1.025976171903940e+02 1.611287027554690e+02 3.895800750604409e+02 6.426095247283079e+01 4.498850293159150e+03 -1.462349405161030e+04 -2.518915996673100e+04 -7.265862062220550e+04 4.172752544042370e+04 2.987993108002130e+05 -5.736070620427340e+04 -1.589440191723990e+05 -1.399372096816560e+06 -4.839223894563860e+04 2.825626450509210e+06 -1.687356257140730e+06 8.277560578207459e+06 -2.062383216276100e+06 -9.599817498706000e+06 3.392792196540230e+06 -3.264002378786422e+01 -6.629362463611876e+02 -1.919215048310130e+01 1.738528692222605e+02 -8.100975145711094e+02
|
||||
-5.431631319817260e+01 -3.628324047087360e+01 1.022210382717950e+02 -1.074838507269040e+02 -2.831943351413090e+00 -1.988238481861890e-01 -8.861289582437939e-01 -2.659934829782150e-01 -2.500791955145240e+00 -4.659806866606560e-01 3.926169295504710e+00 2.669166718326410e-01 -1.514094441740170e+00 1.034511626848980e+00 6.820065074437121e+00 7.932716071919410e+00 2.180195590260740e+01 1.978786508820320e+01 -2.732010728150630e+01 -9.474679834058371e+00 1.360591611527890e+01 -1.035706138546610e+03 7.017440123881720e+02 -6.953359657419940e+02 -5.295377159648910e+02 1.137939133817210e+03 -3.485970789141290e+02 -3.210992515023680e+03 -5.762571673570000e+01 2.747991946789470e+04 -5.128063482846500e+04 3.520300450792160e+04 4.437774556615860e+04 -1.709565787239910e+05 -1.757127494146750e+05 1.822865848646780e+05 1.322706507800000e+05 -6.823778558801978e+01 -2.250810945077585e+01 1.119819809206000e+02 -1.217369676067614e+02 1.346314014865552e+01
|
||||
-3.669941545939720e+01 -8.405586768963340e+01 8.692672852590420e+01 3.985890209828150e+01 8.319750257128629e+01 -7.887057799613520e-01 -5.520154317958050e+00 3.762045115966520e-01 2.773079096577780e+00 3.369996096451810e+00 9.292037353957291e+00 -5.032923222293260e-01 -6.373844844165419e+00 2.334757531809900e+00 5.619931100129070e+01 -4.453094727354520e+00 -2.306287892302360e+01 -2.595764677221580e+01 -9.529921264066989e+01 3.852844185321880e-01 5.783284185778750e+01 3.986431492895560e+03 -1.532710219721710e+04 -2.227510481912310e+04 2.046059979317870e+03 1.353745934057660e+04 -1.092753370052650e+03 5.584268784963220e+04 3.919881477473020e+04 -6.221728732152170e+05 -2.133437162841550e+05 -3.634587471619811e+05 1.106570454775120e+05 1.617775128979920e+05 -7.156897525130800e+05 2.336653838425920e+05 5.313218262254350e+05 -1.570427171455060e+02 -3.300252397580416e+01 2.032969299259227e+02 9.261314953642727e+01 -1.656667663289629e+01
|
||||
4.071084977766680e+01 -3.225883971466690e+02 -2.375031277591230e+02 -1.144178314279990e+02 3.949278167358970e+02 -2.327326862841910e+00 -1.997338673727920e+01 1.175739111677390e+01 4.996803588453490e+01 -2.194751719287660e+01 -5.309675785043421e+01 2.778685283616090e+00 1.911111627596840e+01 1.744384392108320e+01 1.322852126122420e+02 -1.391581651419830e+01 -1.950757677292500e+02 -1.134007478261480e+02 -9.985415441581139e+01 2.464424565825630e+02 2.542236329797270e+02 -1.110434420152410e+03 -3.040151344108270e+04 6.801164885510380e+03 -2.810289094479380e+03 8.192168112080690e+04 1.627059952332300e+05 -5.848126177715840e+04 -1.170526778773960e+05 -2.924793255307260e+05 5.657072556399970e+05 -1.160747035645160e+06 -1.037995892636170e+06 1.324813413756760e+06 5.914431119804890e+05 -5.122684826753260e+05 -2.212069483141570e+04 1.310701958000760e+02 -2.236101109794340e+02 -1.896886828639565e+02 -1.791410593088798e+02 2.135917914953256e+02
|
||||
-8.305346344791120e+01 -3.235620238557810e+01 1.540280898552070e+02 -8.505069184329680e+01 -8.864670528524121e+00 4.186669782715560e-01 2.167213368682270e+00 -3.963222117224930e-01 -4.180821628950010e+00 9.786501790988951e-01 2.759223243589140e+00 -2.376728776775800e+00 -2.207928709370440e+00 1.370561494773690e+00 -6.812936025730320e+00 -9.797735484929360e+00 4.795569195576270e+00 8.433143089998490e-01 1.755956390953760e+01 6.235057554831759e+00 -4.915300325225690e+00 4.386018681689310e+02 8.742558615017920e+02 -7.459525176599220e+02 -3.482673795419380e+03 9.701066633749530e+03 8.927499699024700e+03 -1.007378842613340e+04 -1.248205754978190e+04 2.137476925711530e+04 -3.846197532195120e+04 2.350862940428050e+04 1.889340182611190e+05 -1.613308006095720e+05 1.565764464358310e+04 1.305963361619490e+05 -5.881336805585201e+04 -7.360400305758367e+01 -2.839923413629685e+01 1.390331604361033e+02 -1.166881156667366e+02 2.122752542365443e+01
|
||||
8.510909239982939e+01 -1.050260911362220e+02 6.030975416867520e+00 -8.419401053125510e+01 7.324867679391581e+01 5.088133446817030e-01 -2.144620786387980e-01 1.505617320863300e-01 3.870175605355199e+00 -4.128049110812650e+00 -8.503334831034071e+00 -4.076570262352580e-01 8.337258283742670e-01 -1.656775376069380e+00 -4.081917850165220e+00 2.066031539450400e+01 -1.682683308594650e+01 1.213477846358850e+01 4.235722023829860e+01 8.311850485217191e+00 1.225552817962400e+01 -1.670858301911210e+03 1.548132226476110e+04 -2.792768805516890e+03 -2.310328624289540e+04 -1.229076194298200e+04 8.893642787684799e+03 3.620671322443900e+03 -6.958421306423869e+03 1.414849008530630e+05 -5.864480519843830e+05 4.968700870485260e+04 7.832729249462371e+05 3.148801691625880e+04 -2.353638238153300e+05 1.608464356260650e+05 -3.508851526595750e+04 6.689888434954611e+01 -9.563488361383232e+01 1.116335860897162e+01 -1.034659998054885e+02 8.399127754279677e+01
|
||||
-1.114570099991160e+01 -6.926243212951100e+01 9.386496431939491e+01 -2.295510931757380e+00 -6.046763404444400e+00 2.898642905444560e-01 -1.625310241796620e+00 -1.218170412307850e+00 7.489729742415911e+00 8.361561362691129e-01 -1.115938591585690e+01 6.679754821153540e-02 5.785064857006460e+00 -4.044742253368670e+00 1.073715686572580e+01 1.033453524594790e+01 -5.877278601248240e+01 -3.356635731688480e+00 8.570736512869060e+01 -1.239987551502300e+00 -4.267012445092090e+01 1.384890831540650e+03 -5.063147634513090e+03 -1.569683963456500e+03 2.129101312565610e+04 5.159650055402110e+01 -1.413253003623380e+04 -8.469153207531510e+02 -3.104436472061270e+02 -1.274776881436820e+05 2.958284670480920e+05 8.592025056220101e+04 -8.455860485870300e+05 -3.204900083786110e+05 -1.026291950041460e+06 3.318209425356080e+05 1.522454093638370e+06 -3.778296971893572e+01 -3.995218818506164e+01 1.081103567856049e+02 -8.891857970473525e+00 -1.566634417513517e+01
|
||||
-1.352697655693660e+02 -7.553260847079370e+01 1.786105945396520e+02 1.636313459349920e+00 -9.732920165993470e+01 -3.806781170792960e-01 -6.335260275640000e-01 1.096623130060620e+00 -8.604275384802211e+00 1.507234884406940e+00 1.212456310573770e+01 -3.268968127116560e+00 -5.992761003730370e+00 2.723683218198630e+00 6.223975209537880e+00 6.504645083849810e+00 7.333398035742310e+01 -2.631914631181600e+01 -1.147578612525850e+02 3.036217850565730e+01 5.857762112134800e+01 1.500014061192680e+03 -2.823171430138920e+03 4.200336833759470e+03 -8.499746884217300e+03 -7.399598459308570e+03 9.185462737591170e+03 1.140137183175320e+04 5.753186452408380e+03 2.023196157306570e+04 2.985571779456290e+05 -6.056963200121589e+05 -2.751624275131960e+04 7.414814251577060e+05 3.856959782321730e+05 -5.443630306958930e+05 -4.367232882232639e+05 -1.050676134248258e+02 -8.984025763253389e+01 9.379297081568865e+01 -7.472614286653091e+01 6.220076959430686e+01
|
||||
-3.615132092490310e+01 -3.858340262737140e+01 1.634387171920810e+02 -5.680771453886280e+01 2.380907581661240e+01 -7.055083207411091e-02 2.116798575043050e+00 -5.757518389320500e-02 2.062120025660740e+00 -4.427217969752861e-01 -4.587169063560870e+00 8.569009610394041e-01 5.586321813120700e+00 -5.247797129652870e-01 -1.963974356071750e+01 -8.708569850782829e-01 6.928543384793290e+00 -5.185002494593450e-01 -1.373621411619710e+01 -5.705775320716000e+00 -8.306890053043070e+00 -2.245413685718130e+02 2.755077502611750e+03 2.575808566495810e+03 -3.094664279216610e+03 -5.039940922691360e+03 4.097637156460780e+03 6.865879737984740e+02 -3.332723417658070e+03 1.047610726556520e+04 -5.811147047617920e+04 -1.266588731691560e+05 -1.061037605449640e+05 -2.815624151483800e+04 -6.291924571268640e+04 1.600516630465110e+05 1.994397826501680e+05 -5.240050768041203e+01 -2.732329896989961e+01 1.704830869255617e+02 -7.399627421789091e+01 3.693020881236266e+01
|
||||
7.226963234590970e+01 -1.131292657040380e+02 3.268696250613230e+00 5.627277170054580e+01 -3.427120227200370e+01 2.734003672029740e-03 -2.906310742205300e-01 -2.225861856268850e-01 6.586741206415870e-01 5.848937088477630e-01 -6.548934844319469e-01 -6.519043364624360e-01 9.562630677798431e-02 2.193083987055510e-01 2.315122669410550e+00 3.125822581201339e+00 -5.885061699930230e+00 -6.350385021559251e+00 4.197115414215730e+00 6.290329062273900e+00 6.565397925628610e-01 8.739910288604840e+02 -1.895228713772440e+03 -1.677744955179130e+03 7.062956153365851e+03 3.664908560289650e+03 -4.256519163487670e+03 -2.283625686598360e+03 -3.144907367753580e+02 -3.667040237896290e+04 1.673278305812640e+05 1.429250380308550e+05 -6.902302039536190e+05 -2.801116064591860e+05 5.949695690657950e+05 1.443847666529710e+05 -5.736033864491480e+04 4.653755433477311e+01 -6.274448840552078e+01 1.107281049566416e+01 -1.853146365973967e+01 8.876760616316000e+00
|
||||
-4.080642934953081e+01 -6.516640400179880e+01 2.484641241756290e+01 -7.823170980354840e+01 3.925038674887500e+01 -1.199200598880390e-01 -1.189389535467320e+00 -3.630313211277510e-01 6.026203559571330e+00 6.953669584012189e-03 -1.211331625001940e+01 -8.283560399191811e-01 5.862229443015400e+00 1.238628474245990e+00 9.194561117202550e+00 6.274293734474210e+00 -4.597991044277630e+01 -1.057632295744130e+01 8.567261031292701e+01 1.567821971324760e+01 -3.697704388358490e+01 2.702141318098890e+03 -4.013475832320740e+03 -1.823300815517460e+02 1.217734350465610e+04 2.903060891279720e+03 -1.450507323096950e+04 -1.677469333268600e+03 6.117578165518090e+03 4.462250140329540e+04 2.790494985020640e+05 -3.475435798661080e+05 -2.533266658411400e+05 4.209619921241840e+05 -2.367655556436450e+05 -1.996473301191440e+05 3.429295831952530e+05 -2.698119327323881e+01 -1.226503290831413e+02 4.004529089926289e+01 -9.204578406853539e+00 2.413184289179218e+00
|
||||
1.873285799630320e+01 -1.167334386914860e+02 2.206341383109620e+02 1.993026904498310e+02 -2.600559688160810e+02 2.507809313862140e-01 1.371977059217770e+00 -2.589674095079710e+00 -5.137241402607950e+00 7.102121862890379e+00 1.432424381160370e+01 2.358434606006580e-01 -7.431225192281209e+00 2.536280585420020e+00 -1.099315868597960e+01 -2.221065250728070e+00 3.639816831869160e+01 -1.087726459647240e+01 -9.234935903671770e+01 -3.548875423462670e+01 3.340327938565450e+01 -1.030326299001860e+03 -2.034101980394670e+03 4.992000555709520e+03 -2.296303896406780e+04 -1.162606232588940e+04 6.234539324912170e+04 1.529673701716010e+04 -3.617092876033260e+04 9.557403397150971e+04 3.038216250263159e+05 -2.176382559912470e+05 2.564076797401850e+05 -1.222746193955690e+05 6.685876473124009e+04 7.879165108633500e+04 -4.744603439128560e+05 3.291428128845545e+01 -8.585287104530059e+01 2.339440544796711e+02 1.725094379192837e+02 -2.748862509561272e+02
|
||||
9.845444206406150e+00 -2.415750770672310e+01 5.034391247360530e+01 -4.425497839507670e+01 2.735250906830970e+01 -8.370945088175161e-02 -2.471574962532890e+00 6.966916358946820e-01 6.756892242329070e-01 2.608941732570010e+00 4.265807029744230e+00 4.808373016046690e+00 -4.109588936109370e+00 -3.073745527963980e+00 3.039293463313370e+01 -9.337351059041030e+00 -1.023622691494740e+01 -4.466709596864100e-01 3.153921890443010e+01 -8.168954600867051e-01 -1.836802651802990e+01 -7.937674266264991e+02 -1.163123022283180e+04 -4.325923038500940e+03 -5.224164902633120e+03 -2.961725474125090e+03 -8.304411116361360e+03 -1.124142827178260e+03 1.642841535246150e+04 1.132620837658520e+05 3.368271807678040e+05 3.071118192248400e+05 4.628944159999200e+05 5.246782046822310e+04 -4.960772198359710e+05 -3.095590715698010e+05 -2.433691743004140e+05 -4.577295045811584e+00 -1.021606321873773e+01 6.093166505971111e+01 -5.700796564855787e+01 4.584992629845553e+01
|
||||
-6.675084179059741e+01 -5.319611005507720e+00 7.491875537438330e+01 -5.237096066083861e+01 3.717211864140010e+01 -1.409763988324450e-01 -1.521419828704840e+00 2.130185158959690e-01 -4.156290734829960e+00 -2.727335324009150e+00 6.699849182115780e+00 2.051772232537070e+00 -3.868040913321810e+00 3.463354324343020e-01 2.740797373496460e+00 2.860277490234231e+00 3.262103918360760e+01 5.009000163850530e+00 -3.901916736240690e+01 -7.145170617094230e+00 1.542786044384030e+01 7.154011856241409e+01 1.299020043306170e+03 -2.029247496088070e+02 -9.094679091607150e+03 -1.309859707266300e+03 7.295831527249220e+03 -1.406740322771730e+03 -3.634412782314169e+03 2.799416361678240e+04 -6.686518973624610e+04 -5.325166001392089e+04 2.057682253131430e+05 1.596981733699540e+04 -2.558655388800600e+05 5.472623514840820e+04 1.509683891199390e+05 -7.955180069688193e+01 9.319937153787935e+00 8.528410039045046e+01 -6.628391842334683e+01 5.353816593201972e+01
|
||||
1.552251191146970e+02 2.926168344795230e+01 -1.975963221781200e+01 -1.767123937750160e+02 -4.064599841989800e+01 -4.061069620099700e-02 3.102679823058760e+00 1.562394981650100e-01 -8.991948619788200e+00 3.036354312209300e+00 -4.560676602938530e+00 -2.121975314751200e-01 4.260683318184590e-01 -2.284711567035990e+00 2.630899015700080e+01 -1.377247327115220e+01 4.121986751814490e+01 1.555293878059420e+01 -1.526606696261670e+01 -2.150435607700940e+00 2.034345473156460e+01 -1.314812987963530e+03 -6.655539714447120e+03 5.876087935861181e+03 5.460882669941640e+03 6.319618759495910e+03 8.953514047677760e+03 9.670636612518680e+03 1.501097343014040e+04 -3.197182430829710e+05 -4.059529176635650e+04 2.069408059291140e+05 5.714902553126360e+05 -2.165961111026020e+05 -3.394478504822790e+05 -2.206524231481800e+05 -3.721550556458730e+05 1.484236100637929e+02 4.837861034425413e+01 -1.034516753470562e+01 -2.021774280076698e+02 -5.296186530802704e+01
|
||||
-1.296586666798590e+01 -9.126528123641710e+01 1.114857831083380e+01 -6.728714614183200e+01 8.612466627553160e+01 1.889118996778360e-01 2.258019271133150e+00 3.929291837353300e-01 -2.467956398573290e+00 -8.006567452709210e-01 3.878406343686240e+00 3.512346206158590e+00 -4.753836015830060e-01 -2.161700050088120e+00 8.009353797204399e+00 -1.225645636759810e+01 -5.899202175307560e+00 -2.130163905959490e+00 1.453550632648960e+01 4.167032623664090e+00 -1.450518723354680e+01 2.572283568219910e+03 -4.272923240955890e+02 2.832332706192290e+03 9.810424981300040e+02 1.836452288374570e+03 -1.869428532828810e+02 -3.878513276928310e+03 1.427922634890410e+03 -9.326818311252800e+04 3.157656622121350e+03 -2.687783976236190e+04 8.793991398604171e+04 8.123241501170451e+04 -6.418348147866150e+04 -2.985051950682400e+04 -2.920583833894430e+04 -3.228022285917200e+01 -7.906163904779172e+01 2.073573536270432e+01 -8.040165986006356e+01 1.061998645840528e+02
|
||||
9.959709062534900e+01 1.087502667955940e+01 6.436094130202110e+01 -3.606892523904480e+01 5.290601532225030e+01 -4.193056943169590e-02 -3.898885751261870e+00 3.949896656482370e-01 3.662370941675750e+00 -1.778355788278790e+00 2.930598927783389e+00 5.714011717804970e-01 -2.466140683777800e+00 -4.174264058702390e-01 -3.039258956469940e+00 -8.248792926836001e-01 -1.852127217208240e+01 3.803546859375490e+00 -1.847726641274240e+01 -2.560674697863870e+01 9.995432341534119e+00 -2.340208868175690e+03 5.297835251929640e+03 4.320759148084090e+03 1.167588258688800e+04 -5.817161570754710e+03 -1.725326860015780e+04 -7.965064390236350e+03 -7.323066834087200e+03 9.620006625259769e+04 -9.591248324384430e+04 7.421213722488130e+04 1.119510461026150e+05 2.931552681902420e+04 -2.000404269113050e+05 -5.578042521727410e+04 1.908442441085770e+05 8.322641687128646e+01 2.198679825560096e+01 7.123296439417778e+01 -5.345105172984309e+01 6.581547611099977e+01
|
||||
weight:Zr:1:
|
||||
-8.449402603952080e+00 -6.338794008660490e+00 -3.646475639589930e+00 -4.568817240756670e-02 -7.486395335332810e+00 -3.785050765188870e+00 -3.485773491732340e-01 -5.538686152537460e+00 -7.433810976865260e+00 -5.821849208003560e+00 -3.395190456952280e+00 -8.333672632254331e+00 -3.029331386730920e+01 -8.956537722110630e+00 -3.920136298332350e+00 -6.736243977919150e+00 -9.649168312913330e+00 -8.048165313887120e+00 -6.960447300715590e+00 -9.643037059291860e+00
|
||||
bias:Ti:0:
|
||||
-1.956139686368849e+00
|
||||
2.316102584868799e+00
|
||||
-5.873577280820660e+00
|
||||
2.540633238613090e+01
|
||||
2.169586324610206e+00
|
||||
-6.132550222727400e-01
|
||||
6.490063401842909e-01
|
||||
-2.951927218533048e+00
|
||||
-8.218012457375847e-01
|
||||
1.774990864410230e+01
|
||||
1.988342296137330e+01
|
||||
1.990921933487670e+01
|
||||
1.131818275713660e+01
|
||||
1.317146636683290e+01
|
||||
1.234521162759310e+01
|
||||
4.176334634524130e+01
|
||||
7.732436210630709e+00
|
||||
2.952926382581680e+00
|
||||
1.848343983326470e+01
|
||||
3.602895726219770e+01
|
||||
bias:Ti:1:
|
||||
-2.511965921735320e+01
|
||||
bias:Zr:0:
|
||||
1.370501580095990e+01
|
||||
2.772761128809670e+00
|
||||
5.124080364684149e+00
|
||||
9.604164800454713e+01
|
||||
2.052952479827250e+01
|
||||
-3.172235149688250e+00
|
||||
-5.149625266581623e+00
|
||||
1.816107898644540e+01
|
||||
1.763964253937473e-01
|
||||
4.436246684052568e+00
|
||||
1.092585291778570e+01
|
||||
1.491088913020820e+01
|
||||
-2.483576459966645e-01
|
||||
1.297333763833140e+01
|
||||
-3.864339565119073e+00
|
||||
4.631895807524710e+00
|
||||
2.375195292636960e+01
|
||||
1.209498628860100e+01
|
||||
2.227387923911460e+01
|
||||
8.401986227903949e+00
|
||||
bias:Zr:1:
|
||||
-1.947972075332220e+01
|
||||
activationfunctions:Ti:0:
|
||||
sigI
|
||||
activationfunctions:Ti:1:
|
||||
linear
|
||||
activationfunctions:Zr:0:
|
||||
sigI
|
||||
activationfunctions:Zr:1:
|
||||
linear
|
||||
calibrationparameters:algorithm:
|
||||
LM_ch
|
||||
calibrationparameters:dumpdirectory:
|
||||
.
|
||||
calibrationparameters:doforces:
|
||||
0
|
||||
calibrationparameters:normalizeinput:
|
||||
1
|
||||
calibrationparameters:tolerance:
|
||||
1.0000000000e-07
|
||||
calibrationparameters:regularizer:
|
||||
1.0000000000e-04
|
||||
calibrationparameters:logfile:
|
||||
TiZr.log
|
||||
calibrationparameters:potentialoutputfile:
|
||||
TiZr_output_2.nn
|
||||
calibrationparameters:potentialoutputfreq:
|
||||
10
|
||||
calibrationparameters:maxepochs:
|
||||
10000000
|
||||
calibrationparameters:dimsreserved:Ti:0:
|
||||
45
|
||||
calibrationparameters:dimsreserved:Ti:1:
|
||||
20
|
||||
calibrationparameters:dimsreserved:Ti:2:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Zr:0:
|
||||
37
|
||||
calibrationparameters:dimsreserved:Zr:1:
|
||||
20
|
||||
calibrationparameters:dimsreserved:Zr:2:
|
||||
0
|
||||
calibrationparameters:validation:
|
||||
0.100000
|
||||
45
examples/USER/rann/in.lammps
Normal file
45
examples/USER/rann/in.lammps
Normal file
@ -0,0 +1,45 @@
|
||||
units metal
|
||||
dimension 3
|
||||
boundary p p p
|
||||
atom_style atomic
|
||||
|
||||
|
||||
lattice hcp 2.9962594
|
||||
region whole block 0 10 0 10 0 10 units lattice
|
||||
create_box 2 whole
|
||||
create_atoms 2 box
|
||||
timestep 0.001
|
||||
set group all type 1
|
||||
set group all type/fraction 2 0.10 486
|
||||
|
||||
pair_style rann
|
||||
pair_coeff * * TiZr_2.nn Ti Zr
|
||||
|
||||
|
||||
|
||||
compute peratom all pe/atom
|
||||
shell mkdir ovito_files2
|
||||
dump 1 all custom 10 ovito_files2/dump.*.gz id type x y z c_peratom
|
||||
dump_modify 1 element Ti Zr
|
||||
|
||||
thermo 1
|
||||
thermo_style custom step lx ly lz press pxx pyy pzz pxy pxz pyz pe temp
|
||||
|
||||
variable etol equal 1.0e-32
|
||||
variable ftol equal 1.0e-32
|
||||
variable maxiter equal 1.0e+9
|
||||
variable maxeval equal 1.0e+9
|
||||
variable dmax equal 1.0e-2
|
||||
|
||||
fix 1 all box/relax aniso 0.0
|
||||
min_style cg
|
||||
minimize ${etol} ${ftol} ${maxiter} ${maxeval}
|
||||
unfix 1
|
||||
write_restart TiZr.min
|
||||
|
||||
#-------------------------EQUILIBRATION--------------------------------
|
||||
|
||||
velocity all create 300 12345 mom yes rot no
|
||||
fix 1 all npt temp 300 300 0.1 aniso 0 0 1
|
||||
run 100
|
||||
unfix 1
|
||||
420
potentials/MgAl.rann
Normal file
420
potentials/MgAl.rann
Normal file
@ -0,0 +1,420 @@
|
||||
atomtypes:
|
||||
Mg Al
|
||||
mass:Mg:
|
||||
24.500000
|
||||
mass:Al:
|
||||
26.500000
|
||||
fingerprintsperelement:Mg:
|
||||
5
|
||||
fingerprintsperelement:Al:
|
||||
5
|
||||
fingerprints:Mg_Mg:
|
||||
radialscreened_0
|
||||
fingerprints:Mg_Mg_Mg:
|
||||
bondscreened_0
|
||||
fingerprints:Mg_Al:
|
||||
radialscreened_0
|
||||
fingerprints:Mg_Al_Al:
|
||||
bondscreened_0
|
||||
fingerprints:Mg_Al_Mg:
|
||||
bondscreened_0
|
||||
fingerprints:Al_Al:
|
||||
radialscreened_0
|
||||
fingerprints:Al_Al_Al:
|
||||
bondscreened_0
|
||||
fingerprints:Al_Mg:
|
||||
radialscreened_0
|
||||
fingerprints:Al_Al_Mg:
|
||||
bondscreened_0
|
||||
fingerprints:Al_Mg_Mg:
|
||||
bondscreened_0
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:re:
|
||||
3.193592
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:rc:
|
||||
9.000000
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:alpha:
|
||||
5.520000 5.520000 5.520000 5.520000 5.520000
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Mg_Mg:radialscreened_0:n:
|
||||
3
|
||||
fingerprintconstants:Mg_Mg_Mg:bondscreened_0:re:
|
||||
3.193592
|
||||
fingerprintconstants:Mg_Mg_Mg:bondscreened_0:rc:
|
||||
9.000000
|
||||
fingerprintconstants:Mg_Mg_Mg:bondscreened_0:alphak:
|
||||
1.000000 2.000000 6.000000 9.000000
|
||||
fingerprintconstants:Mg_Mg_Mg:bondscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Mg_Mg_Mg:bondscreened_0:k:
|
||||
4
|
||||
fingerprintconstants:Mg_Mg_Mg:bondscreened_0:m:
|
||||
4
|
||||
fingerprintconstants:Mg_Al:radialscreened_0:re:
|
||||
3.193592
|
||||
fingerprintconstants:Mg_Al:radialscreened_0:rc:
|
||||
9.000000
|
||||
fingerprintconstants:Mg_Al:radialscreened_0:alpha:
|
||||
5.520000 5.520000 5.520000 5.520000 5.520000
|
||||
fingerprintconstants:Mg_Al:radialscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Mg_Al:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Mg_Al:radialscreened_0:n:
|
||||
3
|
||||
fingerprintconstants:Mg_Al_Al:bondscreened_0:re:
|
||||
3.193592
|
||||
fingerprintconstants:Mg_Al_Al:bondscreened_0:rc:
|
||||
9.000000
|
||||
fingerprintconstants:Mg_Al_Al:bondscreened_0:alphak:
|
||||
1.000000 2.000000 6.000000 9.000000
|
||||
fingerprintconstants:Mg_Al_Al:bondscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Mg_Al_Al:bondscreened_0:k:
|
||||
4
|
||||
fingerprintconstants:Mg_Al_Al:bondscreened_0:m:
|
||||
4
|
||||
fingerprintconstants:Mg_Al_Mg:bondscreened_0:re:
|
||||
3.193592
|
||||
fingerprintconstants:Mg_Al_Mg:bondscreened_0:rc:
|
||||
9.000000
|
||||
fingerprintconstants:Mg_Al_Mg:bondscreened_0:alphak:
|
||||
1.000000 2.000000 6.000000 9.000000
|
||||
fingerprintconstants:Mg_Al_Mg:bondscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Mg_Al_Mg:bondscreened_0:k:
|
||||
4
|
||||
fingerprintconstants:Mg_Al_Mg:bondscreened_0:m:
|
||||
4
|
||||
fingerprintconstants:Al_Al:radialscreened_0:re:
|
||||
2.863780
|
||||
fingerprintconstants:Al_Al:radialscreened_0:rc:
|
||||
9.000000
|
||||
fingerprintconstants:Al_Al:radialscreened_0:alpha:
|
||||
4.640000 4.640000 4.640000 4.640000 4.640000
|
||||
fingerprintconstants:Al_Al:radialscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Al_Al:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Al_Al:radialscreened_0:n:
|
||||
3
|
||||
fingerprintconstants:Al_Al_Al:bondscreened_0:re:
|
||||
2.806408
|
||||
fingerprintconstants:Al_Al_Al:bondscreened_0:rc:
|
||||
9.000000
|
||||
fingerprintconstants:Al_Al_Al:bondscreened_0:alphak:
|
||||
1.000000 2.000000 6.000000 9.000000
|
||||
fingerprintconstants:Al_Al_Al:bondscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Al_Al_Al:bondscreened_0:k:
|
||||
4
|
||||
fingerprintconstants:Al_Al_Al:bondscreened_0:m:
|
||||
4
|
||||
fingerprintconstants:Al_Mg:radialscreened_0:re:
|
||||
2.863780
|
||||
fingerprintconstants:Al_Mg:radialscreened_0:rc:
|
||||
9.000000
|
||||
fingerprintconstants:Al_Mg:radialscreened_0:alpha:
|
||||
4.640000 4.640000 4.640000 4.640000 4.640000
|
||||
fingerprintconstants:Al_Mg:radialscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Al_Mg:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Al_Mg:radialscreened_0:n:
|
||||
3
|
||||
fingerprintconstants:Al_Al_Mg:bondscreened_0:re:
|
||||
2.863780
|
||||
fingerprintconstants:Al_Al_Mg:bondscreened_0:rc:
|
||||
9.000000
|
||||
fingerprintconstants:Al_Al_Mg:bondscreened_0:alphak:
|
||||
1.000000 2.000000 6.000000 9.000000
|
||||
fingerprintconstants:Al_Al_Mg:bondscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Al_Al_Mg:bondscreened_0:k:
|
||||
4
|
||||
fingerprintconstants:Al_Al_Mg:bondscreened_0:m:
|
||||
4
|
||||
fingerprintconstants:Al_Mg_Mg:bondscreened_0:re:
|
||||
2.863780
|
||||
fingerprintconstants:Al_Mg_Mg:bondscreened_0:rc:
|
||||
11.000000
|
||||
fingerprintconstants:Al_Mg_Mg:bondscreened_0:alphak:
|
||||
1.000000 2.000000 6.000000 9.000000
|
||||
fingerprintconstants:Al_Mg_Mg:bondscreened_0:dr:
|
||||
2.806408
|
||||
fingerprintconstants:Al_Mg_Mg:bondscreened_0:k:
|
||||
4
|
||||
fingerprintconstants:Al_Mg_Mg:bondscreened_0:m:
|
||||
4
|
||||
screening:Mg_Mg_Mg:Cmax:
|
||||
2.900000
|
||||
screening:Mg_Mg_Mg:Cmin:
|
||||
0.490000
|
||||
screening:Mg_Mg_Al:Cmax:
|
||||
2.900000
|
||||
screening:Mg_Mg_Al:Cmin:
|
||||
0.490000
|
||||
screening:Mg_Al_Al:Cmax:
|
||||
2.900000
|
||||
screening:Mg_Al_Al:Cmin:
|
||||
0.490000
|
||||
screening:Al_Mg_Mg:Cmax:
|
||||
2.900000
|
||||
screening:Al_Mg_Mg:Cmin:
|
||||
0.490000
|
||||
screening:Al_Mg_Al:Cmax:
|
||||
2.900000
|
||||
screening:Al_Mg_Al:Cmin:
|
||||
0.490000
|
||||
screening:Al_Al_Al:Cmax:
|
||||
2.900000
|
||||
screening:Al_Al_Al:Cmin:
|
||||
0.490000
|
||||
networklayers:Mg:
|
||||
4
|
||||
networklayers:Al:
|
||||
4
|
||||
layersize:Mg:0:
|
||||
58
|
||||
layersize:Mg:1:
|
||||
20
|
||||
layersize:Mg:2:
|
||||
20
|
||||
layersize:Mg:3:
|
||||
1
|
||||
layersize:Al:0:
|
||||
58
|
||||
layersize:Al:1:
|
||||
20
|
||||
layersize:Al:2:
|
||||
20
|
||||
layersize:Al:3:
|
||||
1
|
||||
weight:Mg:0:
|
||||
-1.785709637141698e+00 -2.371331163952699e+00 -3.584666446035055e-01 -3.994433541292258e-01 -3.474264138268926e-01 -8.381743360502992e-01 6.290413047627712e-01 -5.646601130458131e-01 -5.364061550950701e-01 -1.420156935100460e+00 -2.816583819554435e+00 -1.494210880082622e+00 -2.951756069400571e+00 -4.056376487273200e+00 -4.878726596441286e+00 -1.919851021890410e+00 -1.040933359344202e+00 -1.912164145788669e+00 3.582828089435102e+01 -4.267173909417400e+00 -6.073492346374423e+01 -1.607220925670398e-01 -1.719640989485931e-01 -5.649704843356557e-01 1.646854362247616e-01 9.226352576765787e-01 -1.510449197387298e+00 -5.880715677047327e-01 -4.644240538486470e-01 -1.806294357203167e+00 -1.091128419087364e+00 -8.228279168644904e-01 -1.649720523253538e+00 7.072598136485905e-02 -1.073496895419296e-01 3.320321961475337e+00 -2.547682785422520e+00 -1.290055452330559e+00 1.430839408291663e-01 1.999754445059562e+01 -4.972915253338146e+00 6.208169152968830e+00 3.472185560305259e-02 -3.599451946554959e-02 1.046983976380782e-01 -1.694934642255984e-01 -1.294106101219921e+00 -3.274114430854418e-01 -4.747836733460055e-01 8.296459354302431e-02 -5.639484222062460e-01 6.591804413161815e+00 -1.443877461097912e+00 3.870638814650015e+00 9.999345057385436e-01 1.440698787682816e+01 -2.757151858789724e+00 7.584676150455445e+00
|
||||
-1.516123250662651e+00 -1.889482637400315e+00 -8.845136034875191e-01 -1.768081476547574e+00 -4.944738947512313e-01 -1.539847337564832e+00 3.579604433064165e-01 -7.328663859063962e-01 -7.577813442716000e-01 9.565861327587108e-02 8.453058400993022e-01 -8.294539765971408e-01 6.148647179847951e-01 -9.768006368808708e-01 4.366809359226592e+00 -1.111644839699821e+00 -1.309930309373545e+00 -1.414575276229275e+00 -3.678183236986850e+01 3.464630282863912e+00 5.865608837071269e+01 8.679084311160959e-01 1.771023159259409e+00 -2.074962144113289e-01 1.236538330236955e+00 -6.947842423978178e-01 5.261597058141348e-01 7.312115571035712e-01 5.872212540509701e-01 2.329576421085782e-01 -4.054636819359206e-01 1.548668586152546e+00 9.234094464501965e-01 1.534166807735957e-01 -9.703966105167389e-01 -1.261822800509360e+01 3.430765282553199e+00 -2.166411434623481e+01 -1.734867333237623e+00 -4.849650293621495e+01 3.609583973481238e+00 -5.898071561915224e+01 1.271431259060009e-01 -1.587574442499559e-01 -9.108624394784862e-02 2.157346586330218e-01 1.371638960931185e+00 3.197845474224496e-01 8.102353388832680e-02 -5.438324250447317e-01 -1.374618240214261e+00 -1.098822687968962e+01 -8.980012911691826e-01 -6.859907883157475e+00 -6.000857886012690e+00 -3.182678105931556e+01 -5.309281873382854e+00 -1.099113141972782e+01
|
||||
-1.595948299400713e+00 -9.917357012461063e-01 3.289330499748370e-02 -1.082482821580614e+00 -1.254500180940821e+00 -1.512946254495855e+00 -4.807750350668318e-01 -1.636683797306628e+00 -1.447406382731868e-02 -2.606128047694211e+00 -1.151000304617074e+00 -2.251392163542068e+00 -2.825456228048855e-01 -5.590089894162079e-01 -9.809469334321716e-02 1.523487901335693e-01 1.109775319138070e+00 1.599120510968118e+00 3.806208494958453e+01 -1.824568529302817e+00 -6.026898076177336e+01 -1.645931841175404e+00 -1.142472808402406e+00 1.732520209244453e-01 -9.802189137231041e-01 1.021020494977193e+00 -7.974296633990253e-01 7.987563605865354e-01 -1.325348310611384e+00 -3.306950717367093e-01 -4.197399091732549e-01 -1.923423889030254e-01 -1.087078691840971e+00 6.130016250913731e-02 -3.043680836177625e-01 3.249073856734301e+00 -3.494282750607797e+00 -2.787348580664225e+00 2.532233131252668e-01 2.132700744535062e+01 -3.891945294376054e+00 4.984721944290221e+00 -8.591074010436380e-03 1.389729557632992e+00 5.820152538904340e-01 4.845241737098689e-01 -1.784868565802203e+00 6.828170919600101e-01 -3.186308431534978e-01 3.313210512199288e-01 3.726994961108279e-01 5.937319354054387e+00 -2.176709520995805e+00 3.783167240088523e+00 1.156316375146520e+00 1.327963604026587e+01 -1.813351918146697e+00 7.169806893937777e+00
|
||||
9.440812872077139e-02 5.302564997698384e-02 1.117978520676761e-02 8.308306593439836e-01 8.217071183559771e-01 8.554924651718659e-01 1.050313049065129e-01 2.687441622967747e-01 1.586282967066217e-01 2.388443897891485e-01 3.072278974606370e-01 1.143764756485686e+00 -8.102687224829047e-01 1.222516372244420e+00 5.221051147689456e-01 2.889680122542625e+00 1.757581330390175e+00 1.536322075513476e+00 4.017976500975776e+01 4.517217388196067e-01 -6.013656349193640e+01 -2.160735963472632e+00 -1.957673626977379e+00 -1.973886617808031e+00 -1.062492073960987e+00 -8.350366929906329e-01 -6.358123655911271e-01 -4.212662774602451e-01 -4.227809085813911e-02 9.521215462528613e-01 6.663462625985257e-01 -2.835635162897592e+00 -6.247022383796982e-01 -2.010753621924918e+00 4.838781227389280e+00 -3.562077608755666e+01 -1.853468424313148e+00 -1.796001032953733e+01 3.260816235457207e+00 -3.119184983948016e+01 -7.756159437740738e+00 -2.911343715170575e+01 -6.240769891615150e-03 1.326515805100646e+00 -1.742970142857320e-01 -1.387194181470721e+00 1.378184119783719e+00 1.193168529844272e+00 1.424871511862715e+00 1.798008366961889e+00 1.646827279092571e+00 -2.330857210956853e+01 -4.077200954765677e-01 6.646107014423341e+00 -3.612096350250668e-01 -5.819393972062899e+01 -3.326422346935368e+00 8.196409742764731e+00
|
||||
8.026134238482531e-01 5.444653317168038e-01 1.052983757751088e+00 8.948419628763481e-01 1.178782508742015e+00 1.142882662283424e+00 4.332640192040950e-01 1.558869923854084e-01 1.033710792843344e+00 -4.183386580274796e-01 -4.103498602527378e-02 1.099023830999154e+00 1.091705166073150e+00 7.028908375690883e-01 1.494923339378697e+00 3.589751401086034e+00 1.854972723745576e+00 2.500715101234206e+00 3.895182908222151e+01 -8.322322107408431e-01 -5.952566729517557e+01 9.096784990985787e-02 1.074428966459908e+00 1.500439946691547e+00 9.403175101184030e-01 8.606965912631491e-01 1.111390624836119e+00 -2.176491305293237e-02 7.029030097192503e-01 5.539637420840762e-01 1.240110821832719e+00 -2.424888348772325e-01 1.307144131895208e+00 4.974679740816207e-01 1.014257597477208e+00 3.198593114835498e+00 -1.645652141349619e+00 -1.013700609843676e+00 2.867207197965427e+00 2.097055581464869e+01 -3.706228798378251e+00 6.265537959610239e+00 -1.832126463267875e-01 -1.036520916459131e+00 3.353741379602614e-01 2.259476240135999e-01 9.300139076017763e-01 -1.615249566522349e+00 -2.167774474441668e-01 -6.476169450903692e-01 1.280583519684650e+00 5.527271292227306e+00 -1.506063099130910e+00 2.848449946786113e+00 2.624350303457668e+00 1.469239715533939e+01 -2.010280388147575e+00 6.291762476210704e+00
|
||||
6.495078551193052e-01 2.168574166719645e+00 3.339759130343636e-01 1.119973312080915e+00 2.436885485890690e+00 1.359054452572750e+00 1.443958925175723e-01 1.895568642371617e+00 -5.175259743572410e-01 1.125230448008709e+00 6.831000746675069e-01 1.421760703875003e+00 8.746006899327209e-01 6.238777705632904e-01 6.106764895058953e-01 -9.616007774361685e-01 -1.744995359801435e+00 -1.042597546941120e+00 -3.827922662677923e+01 2.481465058984861e+00 6.071758460012248e+01 4.500417576803731e-01 -7.243147511699479e-01 1.618980874016269e-01 -1.159452824977600e-01 6.036337012610200e-01 -9.611944887221133e-02 9.136321632450725e-01 6.743230971994020e-01 7.437251526369391e-02 9.868885410595589e-01 -3.584919506612915e-01 1.106885256506014e+00 1.259559780097294e+00 -1.255472277829583e+00 -7.310443622500878e+00 1.725841423474411e+00 8.527143411398804e-01 -5.139157040102878e+00 -2.660349676027390e+01 9.676328892527145e-01 -8.730602073559078e+00 3.703174666230394e-01 7.001918359788613e-01 -3.874684682112543e-02 -1.155032963726255e+00 6.455549204231563e-01 -8.236664770470153e-02 2.982460443128121e-01 1.129936952604915e-01 -8.920492080906998e-01 -4.954977239408588e+00 2.277537957874971e+00 -4.244912308318869e+00 -2.993317215817838e+00 -1.019592704515189e+01 2.241378301418246e+00 -6.765114817202972e+00
|
||||
1.497322901784700e+00 8.328863856045163e-01 1.626417118476197e-01 1.466127078108253e+00 1.541037427494254e+00 1.014463875299439e+00 -3.071156762496625e-01 1.899421392361014e+00 8.975411834602864e-01 7.197702106815657e-01 3.044684108561156e-01 1.639142575897001e+00 1.010807640630619e+00 -2.283536265327152e-02 -5.152948953023828e-01 4.879836836406502e-02 -1.425504192818913e+00 -5.354271699786821e-01 -3.861939468859126e+01 1.138604131033340e+00 6.049877395627557e+01 -4.241979321886862e-01 9.593936628836131e-01 -4.707019993674837e-01 -4.814612619461939e-02 -1.340529816703740e+00 1.378188387944096e+00 3.594617328440777e-01 -1.814538395809694e-01 1.722050719520492e-01 3.410425134552932e-01 -3.815549833143784e-01 7.567532999118334e-01 1.755825387790703e-01 1.872686143157443e-02 -3.810796565108913e+00 2.767401746093609e+00 1.461579181512387e+00 -1.518840532256556e+00 -2.035039786722959e+01 4.127913082739022e+00 -5.236458934307453e+00 1.340669420326538e+00 -9.360060291033818e-01 6.176675823421108e-01 -9.234117177263135e-01 9.010930334218907e-01 -5.552262029152705e-01 1.658235549492413e+00 -1.130613865248042e+00 1.175853571492664e-01 -5.789734962186391e+00 1.147741517409820e+00 -3.532708640915806e+00 -2.386004933114704e+00 -1.530520550343530e+01 2.155462511924869e+00 -7.731709555110941e+00
|
||||
6.151546023375839e-01 8.331475683806565e-01 1.127105879987719e+00 1.957149284768375e+00 1.609785347419244e+00 1.094558187291200e+00 1.003660059076397e+00 5.907668277439444e-02 2.484655875465800e-01 7.892889717172837e-01 -7.037722494665709e-02 5.117250213317729e-01 1.072495886134013e+00 1.690347945663896e+00 4.082623786516771e-01 2.460418880041200e+00 2.546166277815583e+00 2.102621781365916e+00 3.993327015592153e+01 7.537685387866933e-01 -5.986157598250070e+01 1.161711667641092e+00 2.523235675486633e-01 2.126517710387116e+00 1.130396762837665e+00 1.281028323901280e+00 8.464387615980400e-01 1.316538110534906e+00 -1.022741959300069e-01 1.009796130577260e+00 3.291880400569602e-01 1.482320886180379e+00 -2.750623091342203e-01 1.404167573658044e+00 4.395704001780482e-01 4.443175046993431e+00 -1.842659720713829e+00 -5.585681658440382e-01 2.651925280154365e+00 2.241600557997685e+01 -2.405429235852421e+00 6.740796874563553e+00 3.256188367030415e-01 -4.714616710521252e-01 1.132748141467966e+00 -4.235899455429966e-01 4.655179394994165e-01 -1.271596208163574e+00 5.846963753764466e-01 -1.422868916392639e-01 8.197150148590734e-01 6.520413426115458e+00 -3.638022706184743e-01 3.947826186051187e+00 2.398237398756997e+00 1.513149184279703e+01 -2.028909800876026e-01 6.062284761783476e+00
|
||||
-1.456103275677101e+00 -1.747940603029734e+00 -9.720257698368204e-01 -9.934253897638343e-01 -4.531173145211597e-01 -1.228599664209593e+00 -5.164054639677400e-02 -5.763127337477418e-01 -1.100950257011979e+00 -8.696233568049690e-01 1.802652869389618e-01 -5.246872555671930e-01 -6.937519916901576e-01 -6.157056598666270e-01 -1.862581080287556e-02 -3.202135001300810e+00 -1.576648733774774e+00 -3.461757543113149e+00 -3.873872510403687e+01 3.313355944512269e-01 5.972602658870902e+01 2.938808095164880e-01 -8.550925793330891e-01 -1.646818696793851e+00 -1.861953667013123e+00 -6.950244416517213e-01 -1.445934336769557e+00 -7.948783879144076e-01 -1.323148122386140e+00 -2.148186262150269e-01 2.336514478409819e-01 -8.132112683253392e-01 -4.430864528714903e-02 -4.437542917187206e-01 -8.398878787032650e-01 -4.028301263410073e+00 2.484670598235052e+00 1.392157483066873e+00 -2.596052919166324e+00 -2.102447236799064e+01 3.645385103171598e+00 -7.222801978445798e+00 -2.214583702442715e-01 1.206354505933984e-01 -1.240861680043865e+00 8.372732566904626e-01 3.439558810141765e-01 6.376277608908648e-01 -2.103327143155892e-01 -5.263117799449192e-01 -1.644057124281769e+00 -7.059374916507548e+00 6.857366956425881e-01 -2.892151130353331e+00 -2.245220123805767e+00 -1.368482105405257e+01 1.067662979078698e+00 -5.897996319091171e+00
|
||||
1.169686171793793e+00 1.383290456074257e+00 7.871694121536006e-01 6.570951504404878e-01 2.237115749971619e+00 8.444427421957335e-01 -5.408723271469059e-02 8.771873811384934e-01 5.319979369126591e-01 1.323373309156311e+00 -1.213156375809409e+00 1.586674398530206e+00 6.010145392730563e-01 -6.813591118689866e-01 -4.542285094771753e-01 -4.615556834120846e-01 -1.589970062588768e+00 -9.879260164216339e-01 -3.939289667362455e+01 9.804350884746398e-01 5.922578135408816e+01 1.769368807344529e+00 1.477947161809543e+00 2.077494953862131e+00 1.381193010140540e+00 1.948276096645537e+00 8.163867735991893e-01 1.240254076116419e-01 1.502605723597530e-01 5.236802213790946e-01 -9.682571465198583e-01 2.944079801907815e+00 -8.801952483841465e-01 2.610514860314305e+00 -4.885001153173206e+00 2.025580054707683e+01 1.255790293135207e+00 9.301713119441374e+00 -5.222641920607171e+00 -6.467732220392478e-01 5.618749732141108e+00 6.424550466109433e-01 -3.191995413229567e-01 3.047501019449786e-01 -2.485560176452425e-01 8.872043133180906e-01 -4.554515063744631e-01 1.047836742963862e+00 -7.444461646153682e-01 -4.603371264924711e-01 -5.314673822949866e+00 2.951792297279541e+01 -3.162923921605903e+00 -2.717834951770745e+00 -6.510271734450696e+00 6.827142025311707e+01 -3.059788520164010e+00 -3.660918059839303e+00
|
||||
-3.150210050412978e-01 -7.581296853743379e-01 7.149738110943165e-01 1.180664558144573e+00 -3.369074530464621e-01 -4.126525161282242e-01 -3.431083364930922e-01 7.115759376882236e-01 -4.187433076499490e-01 3.760731655432754e-01 -1.452155412303804e-01 8.294192127468272e-02 -5.408918879753030e-01 -8.961610232206794e-01 -8.305726777347928e-01 1.266676713233917e+00 1.910398881477749e+00 -3.088018474925281e-01 3.879369228106974e+01 -1.782842917843394e+00 -6.064616577147219e+01 -9.565698451288248e-01 -3.000826750033378e-01 9.935551811565110e-01 3.121875585506592e-01 -2.063426894486875e-01 4.953676196304044e-02 1.877183670698412e-01 -7.695981486942038e-02 -2.964527091522284e-02 -4.936066462111493e-01 8.797707354185188e-01 5.130541574463129e-03 6.506028994291482e-01 -3.427035163580404e-01 2.579403885310316e+00 -2.229507976516024e+00 -6.175710804490746e-01 2.129615923385346e+00 2.077794900033060e+01 -2.851815854758159e+00 5.654053233935262e+00 -3.034063560926140e-02 3.685115640509649e-01 -5.740979305309140e-01 -1.157565515371050e-01 9.010035024529553e-03 5.109506515177896e-01 1.502504108125128e-01 -4.569273379873958e-01 7.235353768031403e-01 5.780644280346827e+00 -1.260518100797727e+00 3.552827339360714e+00 1.931844218801803e+00 1.309155788018073e+01 -1.695720094841159e+00 4.997626375040753e+00
|
||||
-1.867208210521629e+00 -2.154050124981763e+00 -2.025121256348245e+00 -8.780250697836709e-01 -2.545055949093587e+00 -1.705593072254862e+00 4.249360820833717e-01 -1.798481679755026e+00 -1.028007488375364e+00 -1.348895439563146e+00 6.898426536221167e-01 -1.719321928990863e+00 5.363475582552589e-01 1.067891124177100e-01 1.630414302302847e+00 -2.322139924974998e-01 2.193833685682030e+00 1.078021070010580e+00 3.849410542663313e+01 -9.869268663645649e-01 -6.030607932563299e+01 -7.833294154853248e-01 -1.249583597598111e+00 2.301581834274389e-01 -8.043309558504536e-02 1.197198740384817e-01 8.497512044206752e-02 -1.685623113019995e-01 -4.573217662864938e-01 4.233892164043358e-02 -1.365448060940942e-01 -3.984620069946951e+00 -2.159095052723752e+00 -9.557599924254411e-01 -1.894389657239876e+00 1.416676704231087e+01 -4.678589308970982e+00 4.331597318627465e+00 -1.259264088839718e+00 4.293153854426649e+01 -5.030501459102738e+00 2.265707244236811e+01 -7.978564118559235e-02 -1.042088797019775e-01 3.335739177124347e-01 1.551927642232589e-01 2.680123945549088e-01 1.785770248427373e+00 -5.478067476749638e-01 1.304802359321553e-01 1.052142035696074e+00 8.407124049156998e+00 -8.516475944808340e-01 4.605113845012633e+00 2.790149749983415e+00 1.863326545518285e+01 2.872164563840890e-01 9.173222499047370e+00
|
||||
5.506032834242659e-01 -3.830352521749511e-02 9.366673427777513e-01 2.043458927160148e+00 -4.981373356464123e-01 8.392825427027072e-01 -4.630559293407024e-01 -1.845776373763883e-01 1.391138930050305e+00 2.336162110190607e-01 -6.204332493390088e-01 7.658898641017703e-01 1.284244419149069e+00 1.868318925210131e+00 -5.809387411078776e-01 3.473073163631298e+00 2.278490641999710e+00 1.843351067156179e+00 3.960367063073098e+01 1.161231224777468e-01 -5.957192220849409e+01 5.593513044563266e-01 1.279811551279498e+00 1.389479800033307e+00 1.149468030892677e+00 1.380808367105348e+00 -5.367319137833872e-01 -5.381049622376979e-01 -4.018602177260740e-01 -5.774428298039329e-01 9.736924299662771e-01 -5.373078206565592e-01 -4.757679466892408e-01 4.891263035661476e-01 1.127636121823873e-01 -1.416849760630635e+01 -2.297641744320313e+00 -1.060341331329528e+01 2.208756399381943e-01 -1.320265241247732e+01 -2.727863430188731e+00 -2.156124176566502e+01 -5.234242793683467e-02 1.193528086485630e-01 7.019157331812368e-01 9.797347729851728e-01 -9.179664353094518e-01 1.295789948590120e+00 -5.513907981701797e-01 4.145942193054186e-01 1.104892833147659e+00 8.548433513434377e+00 -6.080873134459865e-01 1.034230634400686e+00 1.673898914157290e+00 1.332560986638912e+01 -1.982630317899963e+00 4.313653932751602e+00
|
||||
1.892900579489723e+00 1.195675363663570e-01 4.931393066052225e-01 1.773436264580348e+00 1.018540736033245e+00 1.478467515677010e+00 1.068909184260295e-01 4.318416853028965e-01 6.520390933599345e-01 7.232015824045398e-01 1.358206978514629e+00 1.259230150326073e+00 1.829102579762920e+00 1.797925303658782e+00 1.580598244275055e+00 2.124532248155129e+00 1.438664860181990e+00 2.818893630463421e+00 3.928257515981589e+01 6.525829918797219e-01 -5.912574662607658e+01 8.459597591568284e-01 5.377927919821095e-01 1.087261009572620e-01 5.326046470065620e-01 6.763222190544089e-01 5.673033061821032e-01 4.494501935235508e-02 7.045852200994963e-01 -3.905771713020070e-01 -3.902043074165583e-01 7.352057508782162e-01 -8.172280190674854e-02 7.212852407752280e-01 1.790215480893179e+00 3.647954487449964e+00 -2.040557371706523e+00 -3.011614934519346e-01 2.842375532121052e+00 2.115339222930650e+01 -2.834248637940453e+00 6.937878302385224e+00 1.399470504980892e+00 -5.797480924042091e-01 -2.220920468920098e-02 3.141822693609726e-01 -2.665642416205489e-01 2.559092008522766e-01 2.422007443012340e-01 3.067518117563274e-02 1.707659469919815e+00 5.633963943522351e+00 -4.927517234431426e-01 2.979913251743053e+00 3.259463706143255e+00 1.494804754089688e+01 -1.052028357455071e+00 6.956190423016229e+00
|
||||
-2.013653326644787e+00 -1.665800997793766e+00 -1.607723544125994e+00 -8.276366610309568e-01 -5.186896666926978e-01 -8.750085361286812e-01 -9.128944739329538e-01 -1.655147832436357e+00 -1.293960680042440e+00 -6.195220916739224e-01 1.794244988706833e-01 1.100804249053197e-01 -5.695192108900274e-01 -1.951015882811276e+00 -8.739156732690531e-01 -2.629213635890685e+00 -2.617465371337444e+00 -2.720879186174074e+00 -4.012033429166078e+01 6.225733875318792e-01 5.868113695524157e+01 3.101833080605759e-01 -7.830409312939863e-01 -2.064689904014698e+00 -1.162142405609573e+00 -6.095842580300000e-01 -4.604968395803067e-01 -1.091124641700418e+00 -1.180019001205851e+00 4.415640701102961e-01 -4.349821702159880e-01 -1.563184846363212e+00 -5.977111439433292e-01 -4.469194471837865e-01 -9.520550489057891e-01 -4.048671853267269e+00 1.007723267955946e+00 1.642628368380529e+00 -1.317332174868449e+00 -2.268273976878976e+01 3.000401984828846e+00 -5.696936359671310e+00 -7.786958576399514e-01 6.589352039310380e-01 -1.650773243030217e+00 4.279498804464296e-01 -1.069140475507969e+00 1.198394888278420e+00 5.099865559257777e-01 -7.492747941874035e-01 -1.930936224673610e+00 -5.844876850547339e+00 1.226695558244665e+00 -2.321487617726204e+00 -3.657251292744047e+00 -1.476903311813269e+01 1.366143777573320e+00 -6.788019084514294e+00
|
||||
-1.900127956904744e+00 -1.614877675625845e+00 -6.031792496085100e-01 -1.199996303554719e+00 -2.024087316400690e+00 -1.749484228166303e+00 -1.640711627214922e+00 -1.418100160757070e+00 -4.013615551681407e-02 -9.912221507746571e-01 -8.139115463485208e-01 -1.097791228645540e+00 -1.218853765033092e+00 -9.389087208387402e-01 -7.726283153349398e-01 1.068935698646161e+00 1.078350606378432e+00 8.398125861064322e-01 3.804293104715946e+01 -1.135325419485055e+00 -5.971374455421793e+01 -1.182442330674610e+00 -1.165873969299222e+00 -4.133400888138105e-01 -5.160278607918934e-01 9.172782123586428e-01 -8.459825997358857e-01 -5.372856823872793e-02 -1.215369482153126e+00 -3.364892623510000e-01 -2.396455727105233e-01 -9.280376616165876e-01 -1.530638888810315e+00 -4.058170598218643e-01 -7.397018378369307e-01 2.613585483320553e+00 -3.500047920645216e+00 -2.584128406677028e+00 2.108262824449401e+00 2.150196908342983e+01 -4.139448545111482e+00 5.691912836152653e+00 -3.468534096854611e-01 -1.204412883683414e-01 -7.718746301815105e-02 -1.602433208123794e-01 -4.054048482252511e-01 5.075658455595712e-01 -1.623789246929828e+00 3.792149251582282e-02 6.348067091558756e-01 7.629598690977820e+00 -1.217450387057794e+00 3.809027032248044e+00 1.000129130698186e+00 1.409396417687703e+01 -2.288733408978484e+00 7.823367401769505e+00
|
||||
6.677384746294071e-02 7.145488066673366e-01 2.489879798986131e-01 1.844555806288372e+00 -6.790959043240460e-02 1.257204144354420e+00 4.748564945291601e-03 8.760929124450866e-01 -6.864674958075967e-01 6.523116095486512e-01 -7.145925819436224e-01 5.976890443119832e-01 3.267408275176847e-01 1.153116747480742e+00 1.269384239931726e+00 3.505461159370955e+00 2.681411488443762e+00 3.256126501015209e+00 4.067762093236063e+01 2.423718923306040e-01 -5.917404114831201e+01 -3.893935507238976e-02 -2.714797525163113e-01 1.345482400708503e-01 1.450040538946213e+00 1.317708860103535e+00 -4.106769619307252e-01 -5.166274436270485e-01 -2.161269840318382e-01 9.909141827858832e-02 -1.037710418838401e+00 -3.419942483529050e-01 5.090543819537692e-02 -1.689294939367256e-01 6.066564260956041e-01 -3.194966040656718e+00 -8.498580934058224e-01 -5.906839819021856e+00 1.144048613014777e+00 3.951722545489535e+00 -1.798341006570878e+00 -1.109979491619539e+01 -3.998827276503918e-01 3.117841280537745e-01 7.401561603857543e-01 -3.151003647941699e-01 -6.572478902158646e-01 -1.059330435196439e+00 -2.258110818946177e-01 4.986573074648320e-01 1.054795069459436e+00 -6.534872351603693e+00 -9.744453630208600e-01 4.165657979395683e-01 2.333193133760215e+00 -1.825334075106521e+01 -2.715859024273775e+00 1.555722920941707e+00
|
||||
-6.304130354538627e-01 -1.706191465529111e+00 -2.614578885486647e-01 1.830514822728846e-01 -1.374659412124440e+00 -7.899822136599892e-01 3.373375279677834e-01 -1.924659096680376e+00 -6.639561930987814e-01 -2.296889570516440e+00 1.502812168226441e+00 -1.348798021573365e+00 -6.003610299307800e-01 1.932638299310155e-01 -3.057663659750426e-01 9.436519346385256e-01 5.663552602326668e-01 1.272437710805222e+00 3.929169655518359e+01 -2.407936604317787e+00 -6.059059056252610e+01 -3.313565040942521e-01 1.440568084257538e-01 9.267112224973896e-01 9.752120524748482e-01 4.076742973979007e-01 -1.662678610779799e-01 1.235122224742212e+00 -1.189491749994293e+00 -1.142351459568135e+00 1.100278746911633e+00 -1.321253206769758e+00 6.408668915193843e-01 -1.262620917019034e+00 3.573461893257976e+00 -1.112604373950455e+01 -1.773988910742917e+00 -7.203270911072455e+00 3.036802726280925e+00 4.757733890835402e+00 -3.567010867145902e+00 -4.468163819565033e+00 -1.358194574488106e+00 6.590811694964938e-02 -1.337574022316208e-01 -4.458759474976270e-01 -1.072756039497483e+00 -6.793366166337730e-01 -1.872872321904922e+00 1.352764279578768e+00 8.150846250732159e-01 7.119808535465887e+00 -1.589734925889195e+00 2.748598743333923e+00 2.151128785383654e+00 1.550504790260026e+01 -1.764681853620750e+00 6.983690366076974e+00
|
||||
9.609285219133623e-01 1.100937184496785e+00 6.742293933716366e-01 2.215481799070950e+00 1.723349916573386e-01 5.591260038674447e-01 1.101879419673879e+00 5.789280400584246e-01 5.607962334453498e-02 1.467505968911087e+00 -2.261470940255269e-01 1.579794795499728e+00 1.464375088094931e+00 2.303653957563707e+00 1.288647608260556e-01 3.782319835780063e+00 3.015715055548326e+00 1.694882644581113e+00 3.940365716072488e+01 -2.256038839954335e-01 -5.921506855683899e+01 7.365045177428251e-01 1.541377729611983e+00 1.150004337902504e+00 6.995600013927940e-01 9.373201255351435e-01 1.039386695034719e+00 1.220069334074607e-01 1.446087578309685e+00 6.640677048081250e-01 7.282002161548018e-01 5.971184615177580e-01 1.411300075712736e+00 6.215412388637387e-01 2.247832910719480e-01 3.919969493048933e+00 -3.009585006376973e+00 -6.185706311425533e-01 2.400352887909316e+00 2.181880280493685e+01 -3.865399431780463e+00 6.242748194744823e+00 1.735253018638783e-01 -1.685964612380604e-01 3.929311420670237e-02 4.090616810426532e-02 -1.274216923309136e-01 -1.050924881913444e+00 2.075593760954182e-02 6.561958740912458e-01 7.526689275617816e-01 5.548200802353842e+00 -6.969733776740566e-01 2.397110370854551e+00 2.120115238278637e+00 1.493743618861343e+01 -1.425621688083554e+00 6.895576582885743e+00
|
||||
-1.338742462379944e+00 3.767020122298228e-01 -1.206182193227218e+00 -9.464901964056885e-01 2.849914557277630e-01 -6.147257265524634e-01 9.863968594737053e-02 -7.225980545916540e-01 -8.567558294587090e-01 -1.249156201745331e+00 3.775473071949890e-01 -1.934761911479883e-01 6.329677827348652e-02 2.949388023761791e-01 6.359307279465212e+00 3.652407935509041e-01 3.848114796769548e+00 -3.331203602487100e-01 -3.355676433173777e+01 4.061946409755262e+00 6.055116279778275e+01 5.741879966209301e-01 -1.036925321016977e+00 4.050966417716434e-01 -8.137343471916003e-01 1.180329396674364e+00 7.360865253967704e-01 5.140554862345725e-01 -2.344302667666907e-02 -1.575933140318599e-01 -1.583246175536504e-01 9.361424023162056e-01 -4.593167944871105e-01 -2.195507136850130e-02 -4.311654111883012e+00 -1.750866817744921e-01 1.251448765973281e-01 -1.304620905596290e+01 -5.948500123062186e+00 -2.610248805149519e+01 1.821797456929266e+00 -4.337511217288012e+01 3.406378510791560e-01 -8.222580724412766e-01 -1.332038463287349e+00 -2.262888677014703e-01 -1.295884531076384e-01 -1.712562454981386e+00 -8.081869486298623e-01 -1.121253707920938e+00 -3.058608483495804e+00 -1.395171208795252e+01 -5.071626482293745e+00 -9.119660885069990e+00 -1.101187284859091e+01 -3.126948326327833e+01 -1.122742363734864e+01 -1.309969043387856e+01
|
||||
weight:Mg:1:
|
||||
1.465778844036504e+00 -4.209351306089414e-01 5.533261536259784e-01 1.699269356406786e+00 7.451509332957360e-01 -1.034124604627082e+00 1.112346735177074e+00 8.892611012533947e-01 -1.556473289108563e+00 -1.495611368711766e-01 -2.881470112023502e+00 -2.894185814917097e-01 4.681277752316224e-01 1.031040479090871e+00 -4.558972190530629e-01 9.186855669666044e-01 3.972542856643079e-01 1.747313298737063e-01 6.838072300009305e-01 1.681611638215134e-01
|
||||
1.501849767625394e+00 -7.023377472376465e-01 1.455387945298262e+00 2.340651413617266e-01 1.408737786907839e+00 -8.925309887350766e-01 5.743214399116848e-01 1.815312769785512e+00 -1.483814447438226e+00 -2.770061136788336e+00 5.082597798541868e+00 2.116588254937458e+00 1.698174731216727e-01 1.248322412711796e+00 -1.388596690964667e+00 1.326808151898367e+00 6.495455689312934e-01 1.892001665957773e+00 6.832644490403080e-01 -1.479934354096847e+00
|
||||
1.681381320740473e+00 -1.147920710453949e+00 -5.081168577232035e-01 6.981079334746964e-01 4.743016647525004e-01 3.501976576659972e-01 1.189841055191703e+00 1.234988811918930e+00 -1.204782356360656e+00 -3.008452623817832e-01 -3.077205770795708e+00 8.732144080139520e-01 1.172431063073844e+00 1.479247512823286e+00 -1.535367344752776e+00 8.713828618883649e-01 5.161968273486323e-01 4.636515847343008e-01 5.428123858583572e-01 -3.476436053503250e-01
|
||||
-9.870045008422520e-01 4.948676918949667e-01 -4.551239528082980e-01 -1.024418212260871e+00 -2.130365666373588e+00 2.042869485737032e+00 8.290182250742587e-01 -1.534424561694044e+00 1.082471956788938e+00 1.297606474744929e+00 -4.747982892504115e+00 -1.453793080234187e+00 1.403756925322778e-01 -8.812721650994962e-01 1.658881664770830e+00 -1.367705024194113e+00 -1.711160143448012e+00 -1.204461606056489e+00 1.955051607801028e-01 1.335447266350232e-01
|
||||
1.331456064002820e+00 -3.443990651789668e-01 5.014652409875506e-02 8.721861751885298e-01 2.035849286276737e+00 -2.607661803226752e+00 -1.623490863873214e+00 1.315241992803213e+00 -8.645559029440065e-01 -1.545258732436165e+00 6.299682217808456e+00 8.465159119696554e-01 1.668960348339750e+00 1.792343852891206e+00 -1.779814364739630e+00 9.367140617683570e-01 8.594876367336072e-01 1.063425809220204e+00 5.089173950927403e-01 -1.781201967051649e+00
|
||||
-2.518209426474575e+00 1.003944860141666e+00 -6.463154137955156e-01 -9.804866320897011e-01 -1.928062472623542e+00 1.026926735817894e+00 -4.290406941699949e-01 -1.459834520891626e+00 1.669352289396166e+00 2.262467151735990e+00 -6.031330614815437e+00 -5.914637320114322e-01 -1.070722912749366e+00 -2.006483463440807e+00 2.202637625493507e+00 -2.469165470491592e+00 -9.607205737228296e-01 -2.245668860025551e+00 -4.392003602360673e-01 1.149364338724064e+00
|
||||
-8.119832646581950e-01 3.518705363333067e-01 9.246463774492765e-02 -7.798814332541475e-01 -1.128212349689842e+00 1.963824634060174e+00 4.888566812080562e-01 -1.716734587909100e+00 1.825219105105982e+00 2.146464786144905e+00 -3.360283443674060e+00 -1.530721840356525e-01 -9.797088099635017e-01 -7.349686427069815e-01 1.438473202391418e+00 -1.702044544762664e+00 -1.664305221615688e+00 -1.787177740176654e+00 -1.415345091677094e+00 1.316211354220498e+00
|
||||
8.734421635622941e-01 -1.307675711145555e+00 1.468943230015174e+00 1.776087362673574e+00 1.766444102862730e+00 -9.887976564707337e-01 6.126732270389640e-01 1.403684328047654e+00 -1.965464090577594e+00 -2.116530874904755e+00 5.517642353532208e+00 2.534986729691318e+00 1.330696533796011e+00 9.073416744399517e-01 -3.396238100234890e-01 1.245256592634833e+00 1.304977892647917e+00 2.159098432823269e+00 1.116968603797167e+00 -8.767119796847646e-01
|
||||
-2.799794912997838e-01 1.582128857059772e+00 9.919902106639022e-01 -1.124170299767554e+00 -1.139557922597514e+00 1.269882961967335e-01 -1.224845886128309e+00 -8.434140014212456e-01 1.701623470200913e+00 -1.614598264358074e-02 3.935203111500222e+00 2.927536382404504e-01 -1.365712954048305e-01 -1.321412444007030e+00 1.246038487323322e+00 -1.327972837275189e+00 -8.866493738108997e-01 -6.748055130079246e-01 2.705755236526660e-01 5.911678126991621e-01
|
||||
-3.703716778117280e-01 1.084370539947259e+00 -1.911521080584282e-01 -4.894641642482672e-01 -1.538454791876779e+00 3.978268780998903e-01 -8.888809251250521e-01 -4.893860079996426e-01 2.141252826700208e+00 8.559532710169834e-01 4.125536076201732e+00 -1.691624600478772e-01 -3.005790744910043e-01 -1.462746971662383e+00 1.322212449042910e+00 1.847228987551023e-01 -8.154246574244368e-01 8.278584978713761e-02 -4.720906813745064e-01 1.837194044334735e+00
|
||||
-1.963894147053697e+00 8.481971628862205e-01 -2.509455048337443e-01 -1.947584977996479e+00 -1.895362753755156e+00 1.939335100147419e+00 2.982093826820997e-01 -1.936668642805460e+00 1.839918949190644e+00 2.398282751265625e+00 -4.793332089976109e+00 -1.438241603219055e+00 -5.431125170907512e-02 -3.724806264554864e-01 1.701305722507781e+00 -2.358811790352806e+00 -1.334984267770158e+00 -5.849904592594316e-01 -1.169295423876260e+00 2.340489374899756e+00
|
||||
-2.490102489911918e+00 1.048236893186082e+00 -1.085466275714722e+00 -1.127567450734038e+00 -2.193880076964710e+00 2.207408284753751e+00 2.166712070501259e-01 -1.746142113876670e+00 3.522352768661940e-01 2.432445171709474e+00 -5.439471813348341e+00 -6.995625480095804e-01 -1.307691652821496e+00 -1.465286347273700e-01 2.129072230980504e+00 -2.818040633869866e+00 -1.295004429226321e+00 -1.466218123415459e+00 -1.278757721171444e+00 2.332425566221312e+00
|
||||
-2.255907054257435e-01 -5.847448296074976e-01 9.202925283532513e-02 1.638943206092620e+00 6.906966241072305e-01 4.345211422856532e-01 3.577271206726728e-01 1.408213235297299e+00 -7.746269751114643e-01 -1.212514014151606e+00 -3.914029578170664e+00 9.592452189936614e-02 1.738340207813581e+00 2.212850667223372e+00 -1.759360889570273e+00 4.619260342814928e-01 5.980209221758619e-01 -2.549828999518424e-02 -2.764009500428974e-01 -8.993002374420039e-01
|
||||
-5.370291801322025e-01 5.873449877452648e-01 4.105991304440652e-01 -1.321350404003781e+00 -1.137895535409305e+00 1.836468466772769e+00 5.316732206352653e-01 -6.919008156266709e-01 6.581061895089561e-01 -3.534084726552320e-01 -4.003333148833982e+00 -1.478244346520043e+00 -4.487068587290338e-01 -5.655729056667194e-01 1.599132056629925e-01 -7.449487491341771e-01 -1.932774143674798e+00 2.482514725829248e-02 -3.517757227938000e-01 7.876121537016451e-01
|
||||
1.476270041837531e+00 -1.193435835297533e+00 1.854853615983878e+00 4.796641711462346e-01 1.426973292424701e+00 -1.078116011217447e+00 -9.624076168442826e-01 2.400754940883012e-01 -1.160764739003492e+00 -2.855604615946185e+00 5.648216008304577e+00 1.623839644270675e+00 1.155615459583678e+00 1.093046171418981e+00 -1.323504446654159e+00 2.281722427079344e+00 1.843869897384129e+00 1.820173598509529e+00 1.009034999235191e+00 -8.283625032565384e-01
|
||||
6.351015056496715e-01 -1.588095040598710e+00 1.510804680081518e-01 1.728631718929447e+00 1.953527508262844e+00 -8.950484151925027e-01 -1.549085232248696e+00 1.704261350179208e+00 -1.342170987659266e+00 -1.804549971486465e+00 6.436533459883923e+00 1.053860790926788e+00 1.883064071054059e+00 1.598067106145733e+00 -2.084965962526157e+00 1.994733317289165e+00 3.763483427828365e-01 1.681118544541766e+00 4.658592719062582e-01 -1.911934251078956e+00
|
||||
-1.697854489882621e+00 1.766700196464240e-02 -3.391749782574969e-01 -2.491446557457555e-01 -5.435668974147123e-01 4.890387827304827e-01 1.379806866305661e-01 -6.504520462983524e-01 1.263603788866698e+00 2.778625614152376e+00 -4.142662187819849e+00 -9.675263818624473e-01 1.956929549471515e-01 -1.898440645190361e+00 7.791348002500257e-01 -1.706164448684087e+00 -1.698910158416905e+00 -1.475405130946446e+00 -2.295520708822354e-02 5.609460132896833e-02
|
||||
1.218961654973661e+00 -1.669562069973942e+00 2.635652915573581e-01 1.892799785173103e-01 7.171386640627009e-01 -2.089835282415400e+00 3.753882122604449e-01 1.682094047187949e+00 -6.877276952798148e-01 -1.221140367875111e+00 5.591274456672248e+00 1.624309838689807e+00 1.154092197543588e+00 1.990225119865108e+00 -1.848657074223161e+00 1.583001765240571e+00 6.171471228114651e-01 2.304767005600374e+00 -4.356637012169388e-01 -7.561080895978304e-01
|
||||
-7.392124926345531e-01 8.644870754087407e-01 7.744218863524486e-01 -9.199286891963258e-01 -4.508715255978447e-01 6.830813276279550e-01 -1.118978090142563e+00 -4.891122141137486e-01 1.950733879750220e-01 6.619846883266907e-01 2.804221309941165e+00 -3.762944369601601e-01 -1.825905385556802e-01 -1.210400746100754e+00 1.085358528682326e+00 -4.236253780136567e-01 -1.448188645344797e+00 -1.135441192359422e+00 -1.044816971831260e+00 -1.852596017739929e-03
|
||||
-2.137291278489463e-01 -1.984548668714384e+00 -1.185646549783710e-01 1.914691628138003e+00 9.008019701886796e-01 -6.370146352484225e-01 1.369844305623831e+00 2.371320747779856e-01 -1.645637012338011e+00 -5.198984711569546e-02 -3.718211211669842e+00 4.462004058993116e-01 1.394224669614334e+00 4.269052754339200e-01 -7.088951440033354e-01 -8.672521187431148e-02 1.053740197440027e+00 1.159484492504233e-01 -2.101757309715755e-01 -2.221620119704517e-01
|
||||
weight:Mg:2:
|
||||
4.985102860451676e-01 -7.262792472889643e-01 1.318763576828465e-01 8.186331884718984e-01 -2.783578237068067e+00 2.060732996889114e+00 3.759601959473670e-01 -2.253718278283624e+00 -1.100193328613778e+00 -1.677618074609734e-01 1.035923903154120e+00 2.567822564242692e+00 7.529807197443396e-01 3.005436874704988e-01 -2.142457556260002e+00 -2.439188269382941e+00 1.028510520644794e+00 -2.074459262409995e+00 -1.079019215644429e+00 1.147978452894624e+00
|
||||
weight:Al:0:
|
||||
-1.432110723201956e+00 1.841917779704499e+00 1.719324066354930e+00 7.026912090308464e-01 -1.189044624711053e+00 1.068436804434558e-02 4.570284250779559e-01 1.568887767245410e-01 -2.732522139584960e-01 1.176266067769484e-01 5.871947232272907e-01 6.857926438945583e-01 1.855191607770853e+00 -7.074117842093759e+00 5.060431846588827e+00 -9.131452752131771e+00 -3.887866704419630e+01 -5.958695977044773e+01 5.482665032040791e+01 -1.466629573686700e+02 -2.214003719453278e+01 2.687821829537404e-01 1.467478658828394e+00 2.450525313276710e+00 1.836035829344747e+00 1.014980816371806e+00 -5.431733345953269e-02 -4.166933191638935e-01 3.857578749814471e-01 -1.307015876269008e+00 9.489858918991716e-01 -1.055304562755620e+00 -3.672211493025497e-01 -6.225994515969970e-01 -9.830657003671998e+00 -1.689466046518755e+01 -4.053354282650348e+00 1.216012592833444e+01 -2.975770865669723e+01 -3.862092373827004e+01 -2.241572934245583e+01 2.863394680669568e+01 -1.812289961344137e-01 1.143378117702868e+00 3.981934180169743e-01 1.035157503881483e+00 3.231965753089316e-02 3.103351930711233e-01 9.671980861748466e-01 6.851809092506519e-01 1.935891373813104e+00 -2.566264009758761e+00 1.644867226556546e+00 -1.149677002774023e+01 5.311829483758602e+00 3.566349976845965e+00 4.801097445006265e+00 -5.599243572823184e+00
|
||||
-2.493816629489102e+00 1.803243786753197e+00 2.482294891421849e+00 2.073250671092273e+00 1.102335877813907e+00 -4.555524511026257e-01 -2.032830266148408e-01 -3.229435835133955e-01 -2.169011480651218e-01 -8.814862243264918e-01 2.036567975959162e+00 6.802633258446865e-01 -6.627052206930845e-01 -8.725446279382282e+00 9.573955766064826e+00 -1.188028019142355e+01 -5.098489223255402e+01 -6.169572265146319e+01 7.352610751420212e+01 -1.450999522010589e+02 -1.250396393765602e+01 -1.466845819338494e-01 3.336989171585483e-01 1.084787530635759e+00 3.680599722446854e-01 1.028775377817223e+00 2.731696995141599e-01 4.139876543233951e+00 1.269427289473883e-01 1.695859510139002e+00 -1.888198855670740e+00 4.642759872553775e+00 -1.428917145716297e+00 1.745862425138112e+00 -1.718991471214031e+01 -4.089602348366602e+00 -1.188361049428283e+01 1.419896950037203e+01 -3.453130463450466e+01 -1.856409212799956e+01 -2.774336974334607e+01 3.109809046939586e+01 -4.893794940883491e-01 -1.336443014424853e+00 -1.921766940591308e-01 8.064763378867397e-01 -2.275475666934735e+00 -1.744073396603051e+00 -2.310059368001458e+00 4.959776552887763e+00 -1.107848775300084e-01 1.156368512335891e+01 -8.318325031484040e-01 8.777620550048706e+00 5.300939501286707e+00 2.861184637749722e+01 8.286071322521886e+00 1.987121084882488e+01
|
||||
-1.347591753945153e+00 3.403490994942323e-01 1.582559164072798e+00 1.011238013310297e+00 8.671307138558701e-01 -6.145221394556727e-01 -1.369696693994654e+00 -4.796504290785871e-01 -2.581970138757129e-01 -1.202916825892050e+00 -3.501397331243151e+00 -5.180645801912249e-01 -1.954670766067575e+00 -7.782782581494712e+00 -3.145070246644248e+01 -1.415490872440733e+01 -6.308536680776756e+01 -6.033204094983649e+01 2.675545020209107e+01 -1.498267599209238e+02 -5.594230242448236e+01 2.219747712030302e+00 2.389443605305893e+00 1.677171758083394e+00 2.019540967705885e+00 2.492352183758881e+00 -3.608900181172940e-01 4.632248940882167e-02 6.175405256068316e-01 -2.471730545935495e-01 9.667919677212791e-01 1.530406546730379e+00 -1.788364412575043e-02 3.917620617885285e-01 -7.487733927031861e+00 -1.347401614819233e+01 -4.097418015188869e+00 5.320599656636385e+00 -2.487963513705950e+01 -3.287963277759405e+01 -1.771269787404349e+01 1.534514227754598e+01 4.989946070929033e-01 -1.401408682236294e+00 2.117086898968285e-01 -3.395049375250158e-01 7.104292181561113e-01 1.155153795295076e+00 -3.200081808671787e-01 4.560380082494677e-01 1.514938601813758e+00 -1.155702387639934e+01 1.413428578217233e+00 -1.704892244055884e+01 6.246774810997171e+00 -7.309286065301847e+00 7.984465065835433e+00 -1.074188212280723e+01
|
||||
-6.187439736772989e-01 1.773017501652121e+00 7.285339586483368e-01 3.532432967478389e-01 -8.467853499366839e-01 3.068726584738788e-01 -8.214969077074131e-01 -7.935178255189520e-01 8.606654940611355e-02 1.090392345580999e-01 -1.262760042063322e+00 6.389004281926768e-01 2.173214930440658e+00 -6.699185611089317e+00 3.145912330892788e+00 -1.001462344462009e+01 -4.089542556740265e+01 -6.019539297622755e+01 5.383884872369422e+01 -1.483991332091668e+02 -2.142083191374203e+01 1.758802438442280e+00 6.142136053590673e-01 1.259747817052617e+00 2.382985637689204e+00 1.167212142590298e+00 -3.646760645395771e-01 -1.960670808393522e-01 -2.804351430637651e-01 4.926623697622402e-01 -1.369293894769585e+00 1.244656490010913e-01 -2.858024151927121e-01 6.073677046707691e-01 -1.078392240549954e+01 -1.589985655761591e+01 -6.766837503784342e+00 1.264115298193096e+01 -3.110086534638744e+01 -3.660335119536406e+01 -2.277033072415394e+01 2.962588258162774e+01 1.088710252097637e+00 -6.533824556074990e-01 7.188504414544261e-01 -5.765928235719312e-01 -3.073283871340471e-02 1.926095332006734e-01 6.030415672086420e-01 -7.099249699852894e-02 1.471566282476453e+00 -5.132864873378922e+00 6.099018570936162e-01 -1.125323712009319e+01 3.199690484410561e+00 3.728931141262224e+00 3.943566288106495e+00 -4.596665554008860e+00
|
||||
-1.099610302885510e+00 3.625741581456616e-01 2.164000127445603e+00 1.138902892030247e+00 5.021643533733039e-01 1.267118462538977e-01 1.059054513822077e+00 -6.466334278397154e-01 -4.966466169796565e-01 6.639621185259361e-01 8.197484246024588e-01 -2.493375388290523e-01 -6.054830272603013e-01 -5.110532314363538e+00 7.691180328203559e+00 -9.828847595397509e+00 -3.882814936650011e+01 -5.332830262715802e+01 5.675763487666736e+01 -1.407655791931672e+02 -1.938599903361980e+01 2.365099540365844e-01 3.894532019306306e-01 1.622217173596539e+00 5.699938072563211e-01 1.021600482492864e+00 4.023692752335212e-01 -5.379180244436169e-02 1.329506941689211e-01 -3.691827174204309e-01 4.954562492263999e-01 -1.646649962153930e+00 -2.694953382245881e-01 6.266323440083940e-01 -1.133064186048235e+01 -1.743086593071545e+01 -4.829330944283042e+00 1.049485439921875e+01 -3.183830426736588e+01 -3.968530696276854e+01 -2.312349137415206e+01 2.748456348329824e+01 -4.662187183419507e-01 -1.874123065339049e-01 1.262480945525382e+00 -7.074761530859583e-01 6.781263073640880e-01 -3.936195320674471e-01 5.649325040135924e-01 -1.979046835400294e+00 6.694530130791567e-01 -6.125267066092572e+00 2.972832026889102e-01 -1.442516736162753e+01 2.713301771835890e+00 -1.272568665021838e+00 1.497085701044095e+00 -8.819892642413288e+00
|
||||
2.270972508676572e+00 -9.448831465401315e-01 -1.872548997075092e+00 6.475174320195116e-01 2.095311391946971e+00 4.721838991908827e-01 8.419813645841157e-01 -4.204047530653203e-01 5.126663014842943e-01 6.958366840173515e-01 7.620279695229549e-01 5.483828350247560e-01 -2.944028237974083e-01 8.214202227431901e+00 -9.925489663130106e+00 1.284289925340336e+01 3.640102904666410e+01 6.531755554525364e+01 -6.065413308695910e+01 1.540229788982734e+02 1.634848104395119e+01 -9.418232223637144e-01 1.655281670198657e-01 -5.299326099248159e-02 -1.480151027161708e+00 -5.066438878760208e-01 1.560731589369125e-01 -1.056417517982188e+00 4.614839625287233e-01 2.725611391104326e-01 1.469604890840139e-02 5.405033843443745e-02 -2.142922977752409e+00 3.623634013166175e-01 7.885820876082556e+00 1.490951850622343e+01 2.943782689289873e+00 -1.015896731145747e+01 2.829404270058964e+01 3.586075079239354e+01 1.858936102338812e+01 -2.683713389735417e+01 1.000232616804251e+00 6.867208741321440e-01 9.410880695589353e-01 4.439872547176966e-01 3.451946507452828e-02 5.712914601816004e-01 9.295340156989002e-01 -1.231870846020250e-01 -1.748021581506692e+00 5.704333032344718e+00 -4.786426607472791e-01 1.146555123462855e+01 -5.639671681183954e+00 -2.237999314467623e+00 -2.551824669824498e+00 9.112678777895974e+00
|
||||
1.000065062800030e+00 -1.317475163188961e+00 -1.762513981538560e+00 -2.285753929586093e-02 1.180416421814314e+00 6.283779992997816e-01 -1.873519944835288e-01 3.245285019447755e-01 3.882535124234925e-01 -4.903764841128573e-01 -1.412350126705854e-02 -1.536567893035869e-01 -2.979237588660169e-01 6.761015947207256e+00 -6.310281320421482e+00 1.163203678703299e+01 3.740985002234884e+01 6.060824604585126e+01 -5.667536681986889e+01 1.494001337693019e+02 1.909935713746351e+01 -6.459643330797216e-01 9.777851284081192e-02 -1.332642298341636e+00 6.595826892354367e-02 1.157174470442190e-02 -6.769567937407498e-01 1.073614650442393e-01 1.280631303597817e-01 -4.932624844844086e-01 8.287070471343628e-01 3.918104386028650e-01 6.806122021824034e-01 -6.792772423327295e-01 1.000783166733237e+01 1.442359780927455e+01 5.633062450176427e+00 -1.251030516597156e+01 3.087958202968966e+01 3.647297944264128e+01 2.158999647034986e+01 -2.797334681704914e+01 1.132829443741545e+00 -2.338787184378454e-01 1.510956652059528e+00 -4.797389671712566e-01 9.874039541608126e-01 3.457990137206280e-01 1.734953618505395e-01 -2.093552440324462e-02 5.784804958685974e-01 1.782739742284166e+00 3.982358854622468e-01 8.921162199396989e+00 -2.822566094974970e+00 -5.950515133771464e+00 -2.564404830093907e+00 4.034107462560540e+00
|
||||
-1.456140171763652e+00 1.421869981629854e+00 2.347755862366141e+00 3.375468021055591e-02 -1.059526380081481e+00 7.501132453665879e-01 4.585853050714329e-01 9.467541745826630e-01 1.394563185793548e+00 -7.761528656647710e-01 3.894337734765644e-01 -4.670565652719310e-02 1.870125930283772e+00 -6.535833774240652e+00 1.556503342344549e+01 -9.557035795176217e+00 -3.102532590519321e+01 -6.053599584697879e+01 6.818487699715567e+01 -1.469574574442845e+02 -6.087157251524160e+00 5.618925419366472e-01 5.600039648448164e-01 1.099091344089244e+00 9.503900589762194e-01 2.562355810739827e+00 -8.348002439571441e-01 4.916504628869307e-01 1.041007584055157e+00 1.224046794503130e+00 -1.871488152783801e+00 5.831008109519478e-01 9.912683871604793e-01 1.186341056796104e+00 -1.001960476775033e+01 -7.196188962542398e+00 -4.755774795271144e+00 1.269322733907339e+01 -2.517687803383679e+01 -2.175032944218288e+01 -1.944386746900341e+01 2.964868776061055e+01 3.369046290163254e-01 1.245559426120832e+00 1.177831347618372e-01 -9.308931775477198e-01 1.127498579793694e+00 -1.237606289274876e+00 -1.503330016687930e-02 2.242142122474958e-01 -1.210953232613528e-01 -6.424985609753172e+00 -3.191126144056585e+00 -9.780743968648851e+00 1.159648478615604e+00 7.344124432144304e-01 -8.282715178616070e-01 -5.604381770520612e+00
|
||||
-1.523755995254710e+00 2.250626978172765e+00 2.842503736029024e+00 2.501832026983969e+00 5.886095562262877e-01 6.024890692220075e-01 -5.649011867951119e-01 -1.758595753359236e-01 8.765402775178925e-01 5.591190580351555e-01 -1.192958913156274e+00 -5.851076177116050e-01 -1.377280945158846e+00 -7.394917838408078e+00 5.895103085933058e+00 -1.180217521341039e+01 -3.799215048388508e+01 -6.283645171450967e+01 5.183876156913210e+01 -1.516968173616302e+02 -1.983605183172796e+01 1.027004776722114e+00 9.445452140811043e-02 1.025070046798495e+00 9.837351972669154e-01 1.168604932942368e+00 -1.921742608673527e-01 6.312432039931632e-01 -8.510306573540387e-01 2.373222012323795e-01 -1.377997705844737e-01 -1.232692132268192e+00 3.179756337618171e-01 1.220716962051071e+00 -8.555985708245009e+00 -1.549565857922867e+01 -4.621116872437013e+00 1.195129358932225e+01 -2.540509910454630e+01 -3.794138041938822e+01 -1.881365420068616e+01 2.562047570657378e+01 -1.055926375699220e+00 -4.341831046141078e-01 -9.718179527257292e-02 -2.100527737643912e-01 -9.299794013733025e-02 -6.951880172386373e-01 -2.798060191788908e-01 1.524118613578008e-01 3.754839936272118e+00 7.642680315690025e+00 -1.670530153093481e+00 1.315436926559826e+00 8.033289640745979e+00 2.224498376655797e+01 -7.909551041970461e-01 7.193640979271770e+00
|
||||
-1.348514521051773e+00 1.741877222373103e+00 1.275283047201778e+00 6.802121638670283e-01 -3.205796589991751e-02 3.665810815620481e-01 9.524173481720821e-02 7.448265449821624e-02 -3.441825844774107e-01 7.541945371014994e-02 1.199176039435992e+00 -9.127456455706241e-01 -1.032190207467590e+00 -7.276876541217718e+00 3.373173452087405e+00 -1.073507223011985e+01 -4.499771820157802e+01 -5.773891684332969e+01 5.547830104282509e+01 -1.465722852394755e+02 -2.548351129657324e+01 4.612816775906559e-01 5.606138479530822e-01 1.982784122629453e+00 1.088523066945077e+00 2.268095893161326e+00 1.057674364084170e-01 8.408323961719550e-01 -6.461947949515955e-01 4.177584888287743e-01 -6.675327162819584e-01 5.304449353263165e-01 3.092714942000399e-01 9.746242398567848e-01 -1.143082789445881e+01 -1.577059041283818e+01 -5.345654388675412e+00 1.143251598774175e+01 -3.167804129790818e+01 -3.865895268164886e+01 -2.283728105054481e+01 2.883137028061659e+01 4.580216609713528e-01 5.676544588933377e-01 1.273776900383664e+00 -3.888870796706662e-01 -1.490234363262336e-02 3.557451943907265e-01 2.430502367702629e-01 -3.508550770971827e-01 1.171664156415408e+00 -7.443159553535657e+00 5.260162985833595e-01 -1.472295064514932e+01 3.885582272308717e+00 1.389896523633034e-01 4.709844417744390e+00 -8.042267277807570e+00
|
||||
-2.673686041219628e+00 1.848718259112358e+00 2.847911984213018e+00 2.578676591548682e+00 8.767487789050403e-01 -1.067079476591140e+00 -4.852296760947503e-01 -2.055758077397882e-01 -1.064835734480204e+00 -1.793508204393659e-02 -1.505595044207793e+00 1.368134422937604e-01 -7.153911820671812e-01 -8.949450414145591e+00 -2.636405841105347e+01 -1.349478119750641e+01 -5.037986243725478e+01 -6.375970063479721e+01 2.354727678335179e+01 -1.513187810870275e+02 -4.570858235604122e+01 3.965574548628955e-01 6.591592212696764e-01 6.131701481660720e-01 1.497416301242334e+00 1.057484657202598e+00 6.790006211722156e-01 1.516755891215019e+00 4.325921954792687e-01 1.947111458581545e+00 -8.412462489440533e-01 2.200542368683334e+00 -4.864862278883246e-01 -5.099550779617652e-01 -6.604371262034166e+00 -1.203245031659886e+01 -4.015560601192549e+00 5.095298367076854e+00 -2.458092279943849e+01 -2.984186038777605e+01 -1.704307451771916e+01 1.289397516275872e+01 7.550420438125877e-01 -8.946800286544758e-01 1.743816001398582e-01 2.004417509997769e-01 1.264522835425187e+00 -9.712018856079282e-01 -2.768641957515730e-02 4.929007817512674e-01 1.252248573686531e+00 -1.993400976523483e+01 1.307109251336974e+00 -2.448096703244893e+01 4.687408380064209e+00 -1.547570365030091e+01 5.700373791219904e+00 -1.844141234994024e+01
|
||||
-9.371516398947044e-01 1.737573945626914e-01 1.637169453110056e+00 6.972206680270827e-01 -1.468816845605246e+00 5.420997232790193e-01 2.558602523543576e-01 4.705129386216659e-01 -1.327408495503521e+00 -8.408108900721021e-01 -5.780992665919511e-01 -3.575853433703235e-02 3.389128310401401e+00 -7.170820194421567e+00 4.169420627996869e+00 -1.078781669159203e+01 -3.771195702753491e+01 -6.363169295302831e+01 5.411982482009384e+01 -1.534789566651695e+02 -1.992672501058277e+01 9.486191316326182e-01 1.299085539116343e+00 1.240909095839280e+00 2.022379963062581e+00 1.467683161290637e+00 5.036916359272596e-01 -7.774843449599101e-01 -2.036523720992210e-01 7.547454944369013e-02 3.990664685383150e-01 -7.507467190447812e-01 4.233813839342274e-01 8.963906715757380e-01 -8.895208747408780e+00 -1.149944553562740e+01 -5.419848739665071e+00 1.224307211401348e+01 -2.774643738820382e+01 -2.972887915959852e+01 -2.097345457839796e+01 2.919788679182954e+01 6.737002971481650e-01 -5.924378122759628e-01 -1.090256620882717e-01 -7.969081121753281e-01 -2.010156986893805e-01 9.523848871216554e-01 6.881992354597418e-01 4.243718110502824e-01 2.275511732151750e+00 3.198706100426790e+00 -3.756158394482544e-01 -5.179422708165999e+00 4.618475079546405e+00 1.569636195022258e+01 4.270407126875082e+00 3.588792375660754e+00
|
||||
8.564292231534617e-01 -1.221383797709528e+00 -3.207245739365173e+00 -2.477696488912426e+00 -4.590112980113205e-01 -1.296058879923288e-02 -9.116810902510268e-01 -7.932571552291630e-01 -1.121380088325897e+00 -1.365316053815737e+00 1.617448335651889e-01 -5.130523169290119e-01 3.173625461342171e+00 7.289589694865303e+00 2.882619346954336e+01 1.029247597241829e+01 8.602342565749544e+01 6.120013740303779e+01 -2.286816904499308e+01 1.481055934411637e+02 6.693547857894958e+01 -5.130996009129725e-01 -1.076162046309220e+00 -1.719433701849976e+00 -4.610435191654334e-01 -6.363585066640453e-01 -4.441652430562791e-02 5.650951814595113e-01 -8.807593877334263e-01 -7.669290563455757e-01 -6.125425203827743e-01 -4.694693390340736e-01 2.409691871546549e-01 2.142490303524673e-01 9.133017447572707e+00 1.450712214820751e+01 5.415335216459948e+00 -1.070248190799063e+01 3.058644633809967e+01 3.543884589315817e+01 2.253050270909898e+01 -2.800032038218268e+01 -6.137796486597072e-01 -2.611845985309909e-01 3.604666431687209e-01 -7.063265387803368e-02 5.312818226898997e-01 1.012608538549953e+00 4.851219666317775e-01 1.760853217450013e+00 -4.960354494867047e-01 1.236099413784917e+01 -9.005504401271945e-01 1.634304374193446e+01 -3.195965314953701e+00 4.272414927865840e+00 -4.125294164081444e+00 1.162637997917624e+01
|
||||
-2.418808711811526e+00 1.733926124136895e+00 8.330993701809563e-01 4.364786274130001e-01 3.279882046977336e-01 4.603590399136943e-01 -1.047233892330709e+00 3.851725840713678e-01 6.161986618414578e-01 -5.110374662581220e-01 -7.981763047474916e-01 5.242266050175866e-01 -7.508622166962788e-01 -6.900110490090785e+00 -2.519695286032868e-01 -1.205443399442332e+01 -4.569790406596859e+01 -6.183508138041467e+01 5.178838304904305e+01 -1.527518439138299e+02 -2.387072621859000e+01 -1.270839815030310e-01 1.773339149513058e+00 1.933382865842626e+00 2.119111243836469e+00 2.008154631503126e+00 1.242123713634072e-01 -6.821753310116960e-01 5.571108565949984e-01 6.291140959356495e-01 -1.011036645474479e+00 -2.027939967013463e-01 3.648059851005410e-01 9.873244036482913e-01 -1.089198458040189e+01 -1.417695069809743e+01 -5.331541954410040e+00 1.199613267117165e+01 -3.070216190199439e+01 -3.652047274813664e+01 -2.259486092860639e+01 2.869103228657039e+01 9.755569747071873e-01 -1.043033809747687e+00 5.791134583988119e-01 -1.267125616323706e+00 -1.608243628022744e-01 -5.989526651088962e-01 1.028384865574645e+00 -1.853887659016536e-02 1.014723775715733e+00 -4.191157008602250e+00 1.141539049245558e+00 -1.125539884382912e+01 3.793294626710798e+00 3.531536312138268e+00 4.723145292194083e+00 -5.973726498569091e+00
|
||||
1.569314495970184e+00 -1.438160578142807e+00 -3.099037064078228e+00 -2.094472748878724e+00 -1.277662822895112e+00 -7.380871123913173e-01 -9.948029312816195e-01 1.768600602290313e-02 -5.865519480028315e-01 -5.715587987032867e-03 -1.100378521007939e+00 -1.381148142384492e-01 3.113947638382450e-01 7.865636481745953e+00 2.123505644282455e+01 1.436587689459649e+01 4.305690092322715e+01 6.333510354710081e+01 -2.716609683348461e+01 1.513757889805704e+02 3.854802622755269e+01 -8.761438919160233e-01 -7.136019635155910e-01 -3.634832465852293e-01 -1.335567628433893e+00 -1.101938218719903e+00 5.065823641374134e-01 9.163169163686524e-01 1.318806654760696e-01 4.469332712712836e-01 -2.562862961477399e-01 -9.723497851158027e-01 3.628948996658920e-01 7.947192307242005e-01 4.645896228961643e+00 1.358213917582495e+01 1.676685782988536e+00 -1.694999693759924e+00 2.235933197270412e+01 3.145955221350353e+01 1.595621527475518e+01 -1.117694245347132e+01 5.098821087553810e-01 -8.675272128667071e-01 1.267990623178884e+00 -5.523330830268747e-01 1.081079076470699e+00 -1.796209483229660e+00 5.738871760768633e-01 -2.472674325921602e+00 -9.343423522335285e-01 1.754668799281941e+01 -1.208102515219717e+00 2.231329940542642e+01 -3.311876272884179e+00 1.193020452568821e+01 -5.662193532317554e+00 1.318089976100853e+01
|
||||
-6.431812111410339e-02 -1.548122580530648e+00 -1.876022804111155e+00 -1.527519963980062e+00 1.485671919525828e-01 2.094176066248045e-01 -1.067757473386666e-01 -3.602265760963342e-03 -8.318021408584389e-02 2.317668577530650e-01 2.727174410568505e+00 4.166862111939534e-01 -1.372980132340793e+00 5.263564570579375e+00 -4.597926220393228e+00 8.654966032594725e+00 3.630043106279994e+01 5.988316794866076e+01 -4.871342873461423e+01 1.443534941914104e+02 2.090333003570664e+01 -4.339495594699197e-01 -2.047454083033455e-02 -7.220272544860212e-01 -3.727730080365345e-01 -1.654494898892531e+00 5.528935491645448e-01 1.709228089298272e-01 3.390981124199464e-01 -1.212551933467053e-01 -8.406830754393078e-02 9.962351294466613e-01 -2.212495307390427e+00 -1.211148096325786e+00 7.768989522826815e+00 1.597473688478710e+01 2.903096743344550e+00 -1.163465801540052e+01 2.395363596078898e+01 3.413384531774311e+01 1.800679043523903e+01 -2.662042996841150e+01 -7.730488748175767e-01 4.222687841139211e-01 -7.342215868079367e-01 -4.098244399539971e-01 -4.991821095513201e-01 -1.485213765557458e+00 -1.354400255085925e-01 2.102506286930058e-01 -1.059240914224493e+00 -9.066502610083084e+00 3.636875150217670e+00 1.547275338899744e+00 -5.872956620387054e+00 -1.924060002080596e+01 3.096214427531617e+00 -3.493939722348456e+00
|
||||
5.206113584562292e-01 -1.618161300186006e-01 -2.168995699409025e-01 9.512389952972818e-01 3.528781950838340e+00 1.516635514821768e-01 -7.849576613990215e-01 -8.131368651384194e-01 -1.681120867213601e+00 -2.311071956055251e-01 1.339482306410842e+00 2.872113911020206e-01 9.625830123324326e-01 7.282997255413219e+00 -1.223080534258827e+01 1.227585625636253e+01 4.476661090670854e+01 5.744335851623561e+01 -5.931211365108869e+01 1.539014264873220e+02 2.978822808709586e+01 4.732612003556744e+00 2.932394333650310e+00 3.537301329320701e+00 2.920968717358637e+00 2.894584994871013e+00 -1.268465719847077e-01 1.293228547503769e+00 2.568883813531229e+00 2.737098712907117e+00 -4.072905257553768e+00 4.009013718242196e+00 -3.827406336625913e+00 8.837483304458402e-01 7.907693509377577e+00 3.417810190687581e+01 -1.729591689046753e+00 -1.153645570724301e+01 4.257075755876994e+01 6.719181423562546e+01 2.614665786679209e+01 -2.911470301775545e+01 5.529174437723220e-01 2.584881015763633e-01 -9.608010334653481e-01 4.408568587189937e-01 -5.153792944275248e-01 3.048404147973626e+00 1.364733497369314e-01 1.077971625584530e+01 5.661266381781430e-01 3.483914403253796e+01 2.360555441289732e+00 5.671370789694532e+01 -1.385137876296104e+00 3.982462299895447e+01 8.889489276030991e-01 5.547944343607271e+01
|
||||
-5.858921892410870e-01 1.814509234143652e-01 1.677309418571522e+00 1.254336146565227e+00 -1.498767144349290e+00 6.976193279641271e-01 1.619058376349129e+00 7.341228577831577e-01 1.418816429904011e-01 -8.084371076791804e-01 6.476403597472873e-01 1.960005219557937e-01 2.615386855236896e+00 -8.166899463168130e+00 1.409334663492637e+01 -1.165032025731679e+01 -3.051825805942087e+01 -6.204684208208316e+01 6.505392844373104e+01 -1.502374507999750e+02 -5.774406537621331e+00 4.429224729439321e-01 3.312045484473122e-01 2.550477933196473e-01 7.069722286043332e-01 1.199539573767623e+00 3.520846285950199e-01 1.399933830993206e-01 -2.949602711520808e-01 -1.124050521911198e+00 -8.391453703517251e-01 1.746145262415380e+00 -3.726495139047596e-01 -9.978479079776996e-01 -8.038414925437861e+00 -3.791250000159569e+00 -5.608715630082805e+00 1.233297646511898e+01 -1.989910312559123e+01 -1.722276935200171e+01 -1.717967331985579e+01 2.957195727751434e+01 -6.019479806137009e-01 2.032631087677667e+00 -7.055194622245814e-01 2.196652919259283e+00 -5.533726217202199e-01 -5.729225430586150e-01 -1.921421334419898e+00 1.346549880252832e+00 -4.568185800241808e+00 -1.536435398795961e+00 -5.826932954650411e+00 -1.615774582229894e+00 -3.745542987316820e+00 8.910762041833763e+00 -4.848214652023901e+00 1.696035375475610e+00
|
||||
2.460614402785303e+00 -7.241452019873946e-01 -5.114948850773701e-01 3.775775474763693e-01 5.920709246232609e-01 9.157584018164900e-01 -1.003505415372464e+00 1.211337748456807e-01 2.016277904566624e+00 5.263762485346173e-01 5.270898929189212e-01 8.838823752421429e-01 -1.837236790654586e+00 7.697457276200072e+00 -6.255178163548591e+00 1.091680260659651e+01 3.233651618434666e+01 6.141516390685604e+01 -5.417004636737190e+01 1.519151665379661e+02 1.530989667229034e+01 1.969075482975136e+00 7.976043287811950e-01 -7.317087962113853e-01 -6.067381398559508e-01 -7.179302541088319e-01 8.415071373182220e-02 -9.026661917938119e-01 -1.899363518875498e+00 -1.679401560127167e-01 -4.476458728797876e-01 -6.920077785855797e-01 -1.845204048681330e+00 -2.201274826299739e+00 7.483864829691690e+00 1.237957465148130e+01 3.753605575312854e+00 -1.561141884649805e+01 2.517522740190397e+01 2.857800710472924e+01 1.884225630819505e+01 -3.289472560022838e+01 -8.443297952009821e-01 2.257579045980071e-01 1.532211369863260e+00 7.524513771978643e-02 8.797724697643877e-01 -1.292348786416549e-01 1.925463901384575e+00 -8.608778763588738e-02 5.423773185627448e+00 -4.278470676052746e+00 8.658834491231929e+00 2.650745555484597e+00 6.503432663479608e+00 -1.336289918724424e+01 1.425593574788316e+01 1.851498315888065e+00
|
||||
-2.994029118559781e+00 1.214440563293267e+00 1.141466926242006e+00 6.458954468388448e-01 9.112322222121805e-01 -9.701028715531620e-02 -2.115595540831251e-01 4.885875005261425e-02 7.408533301109668e-01 2.932784527398574e-03 7.050756631248747e-01 -8.845147398620350e-01 -4.983565243991968e+00 -1.533175023350490e+01 6.492039998185297e+00 -1.939308286183601e+01 -4.701158084951810e+01 -7.818965979492195e+01 5.312098024476278e+01 -1.655234004041376e+02 -1.982729188383489e+01 8.945068159733532e-01 2.543135384258551e-01 4.947108367964867e-01 1.273113515555614e+00 1.535747628547408e+00 1.689216324636680e-01 -7.637765646623346e-01 -2.645998608381725e-01 2.641404735491563e-01 -1.059646052288411e+00 1.137174935025574e+00 -1.113450998218306e+00 -1.072566378180772e+00 -9.107799850178628e+00 -7.099693690876056e+00 -5.990885529527515e+00 8.773496067305036e+00 -2.442725724633679e+01 -2.351623047060953e+01 -1.964890442571634e+01 2.327537653096795e+01 9.347668267017283e-02 -2.459437280127975e-01 -8.539660615844725e-01 -2.543488525591560e-02 -7.573260057317033e-01 -1.342620265120248e+00 -5.906903513802277e-01 9.691052054824814e-01 -2.655420090616619e+00 -3.351696266989819e+00 -4.814857327497600e-01 -3.369983745737662e-01 2.507284362625430e+00 1.371377112322060e+01 4.688383441787778e+00 1.035306846950232e+01
|
||||
weight:Al:1:
|
||||
-1.005913794192329e+00 4.610411432550187e-01 -1.006327989709852e+00 4.368147058810481e-01 -6.753517265465377e-01 4.060465652945509e-02 8.658146513160432e-01 6.154446163960740e-01 8.029988167174570e-01 -4.822396720072580e-01 -1.541750359368592e-01 -2.652005124232077e-01 -3.012472252090649e-01 -3.705387159618206e-02 4.963655658324690e-01 1.216767823284246e-01 -3.100596425625666e-01 -2.845244411599995e-01 9.659623689563925e-01 3.740076781667671e-01
|
||||
8.682736976415105e-01 -2.226093905514073e-01 -3.581749423000642e-01 -1.174404858981064e+00 -8.266859033282873e-01 -9.842568981068921e-01 -1.040165723927639e+00 4.738942862226285e-01 -9.879066682106030e-01 5.966057656752629e-01 -9.274173853464718e-01 -9.490970477635539e-01 4.898305947432779e-01 1.509972169657058e-01 -1.721146215554496e+00 -1.860930235529755e-01 -1.495395332548297e-01 -7.143082497529100e-01 -3.396589991014352e-01 3.138357849895953e-01
|
||||
-2.013587942871434e-01 6.523476600769075e-01 6.701295282036556e-01 -7.143337778424697e-01 -1.057693520055897e+00 -1.008066701101517e+00 4.626721437055412e-01 -1.020695846296652e-01 -5.873483433348372e-01 -6.982781373299616e-01 -4.450925020020687e-01 -1.577215660240575e-01 -4.542129528260553e-01 5.695554398039489e-02 -3.559775907556548e-01 -7.351645767283942e-01 2.527519315047961e-01 -1.075514861391435e+00 6.765332954561568e-01 -8.510432318948227e-02
|
||||
9.812722922246474e-01 4.346957746367421e-01 -6.490499941325837e-01 -2.030898086511017e-01 -9.007640539341419e-01 -1.024159750390500e+00 -7.811165619346673e-01 -9.401389677454021e-01 6.766549636855455e-01 -9.580243721033606e-01 -2.407147262064165e-02 2.653866361832353e-01 -4.221401952280315e-01 -3.571063037651391e-03 -4.342855893867922e-01 1.280678643281789e+00 -5.664482234829272e-01 4.053266178387384e-01 -6.124235776417976e-01 -1.236011738569997e+00
|
||||
1.841271866631932e+00 2.452172361007741e+00 9.750531812918640e-01 7.881135852476659e-01 2.835711649707525e-01 -1.686774774372248e-01 -3.312439602310103e-01 -4.193898224744253e-01 2.871809689701981e-01 7.708086655985447e-01 -1.029665329415773e-01 -8.574686067588666e-01 -1.102072302989900e+00 5.631285758256298e-01 -4.163286138359060e-01 4.903289517946192e-01 8.295330352136282e-02 5.648164433892021e-01 -3.569468714940303e-01 5.754614111251751e-01
|
||||
-6.744511170739709e-01 -8.013179865353375e-01 -7.874482252242783e-01 -5.558575685475841e-01 -4.659953595112984e-01 3.390369460242634e-01 3.719504225043971e-01 -1.284647918622943e-01 8.238836725006630e-01 -1.747324445918804e-01 -1.097733833994482e+00 8.780109566940720e-01 -1.268219430691529e-01 6.462742100954085e-01 4.159040996668743e-01 -6.386644144149366e-02 1.434561841350907e-01 2.795067251306869e-01 7.055018008705032e-01 -1.285297409999169e+00
|
||||
6.126517797072575e-01 1.026548258699580e+00 9.657721946406628e-03 5.411661966048643e-01 4.408886728960997e-01 6.239793236211864e-01 -4.959580128812953e-01 6.822180299948455e-01 8.626893996310737e-02 6.073763970204668e-01 1.820378145271898e-01 7.521658960599251e-01 -2.171005988190537e-01 -3.437522657136018e-01 -8.498931942710831e-01 -6.422698820490529e-01 4.465292812744432e-01 3.351398863544678e-01 -2.580164208610440e-01 5.062545354377554e-01
|
||||
5.357496736185667e-01 8.161333994563488e-01 -1.605279965545604e-01 1.034476820440813e+00 -3.898665315453381e-02 -7.349200244097940e-01 -9.088756575059960e-01 -4.156676422852549e-01 5.804041604981682e-01 -6.548451435528244e-02 6.195745555338815e-01 1.211712818869516e+00 -2.844493302643383e-01 8.391431845909666e-01 -1.379527080299685e+00 -1.420593470258588e+00 -2.294757381957856e-01 -7.243055734643968e-01 8.498076186483265e-01 6.871495603413424e-01
|
||||
9.567900190347394e-01 6.414163625678286e-01 9.187616547645043e-01 6.601672803834309e-01 9.281202181464153e-01 -4.711104388194925e-01 -1.095759141208192e+00 1.003817163306935e+00 7.259633055981878e-01 -9.672905357274294e-01 1.498566394509505e-01 3.669193802909008e-01 2.881268584760170e-02 2.293362777101618e-01 -7.518548120553729e-01 -2.367740251472287e-01 1.516691719102685e-01 1.842036400223960e-01 7.693620305912214e-01 7.444252405923172e-01
|
||||
1.050116888218384e+00 1.853817546007132e+00 4.360486160215881e-01 1.106085665121656e+00 -3.194672145354456e-01 -1.253093074978444e+00 -7.936845468369641e-01 7.223160700991357e-01 4.809636727060941e-01 -2.253195391012004e-01 1.068338529908742e-01 6.006598057523339e-01 3.720746881076729e-01 -1.620906155787737e-01 -1.253605679273816e+00 -6.829620164410504e-01 1.266763891329528e+00 7.069036625298861e-01 2.337577606223918e-01 3.079001247059869e+00
|
||||
-2.219810593448381e-01 -7.934520787828460e-01 -8.008495817609917e-01 -3.599022935388854e-01 -1.091177956108919e+00 2.107937101761260e-01 6.341710984078032e-04 -8.892685058346667e-01 -2.009263753832392e-01 5.997891980109906e-01 7.111505569069914e-01 3.643858147100779e-01 -4.267987659507641e-01 -7.432954916059157e-01 -1.432352061428134e-01 6.822939800971172e-01 8.644475381636156e-01 7.080844568912557e-01 9.992859898092590e-01 -1.575316591897092e+00
|
||||
5.493792578424040e-01 1.276111389980823e+00 2.690460228775156e-01 7.379479318940000e-01 1.011765910960222e+00 4.119241998874386e-01 -1.950395625418125e-01 8.184742776601135e-01 3.351781334859828e-01 9.087186548791135e-01 7.779661965006451e-01 -4.531588881447282e-01 -1.209639396813327e+00 7.591251029587816e-01 2.683542337303467e-01 -1.017999320107711e+00 -9.415834496252479e-01 8.519646469589288e-01 -5.202023713484714e-01 7.704094082554132e-01
|
||||
-8.198587978551805e-01 8.271723097882008e-02 3.118165162015984e-01 -7.874953675320339e-01 -1.940514157063917e+00 -5.186871242938789e-01 2.969225150473809e-01 1.097790779464027e+00 -4.291274143591914e-01 -3.092582170831176e-01 -7.375125129204336e-01 -4.963823975129005e-01 6.899274151039074e-01 -4.551819954515786e-01 9.522413470408236e-01 -7.732096748843738e-01 -9.820184148387432e-01 2.716571111985063e-01 5.051146792663559e-01 -2.907835548204803e+00
|
||||
-1.075789996389904e+00 -4.742668620429637e-01 -6.558842432828349e-01 -5.552398634751469e-01 -5.696185779971747e-01 3.136947694468237e-01 4.841374135516042e-01 8.056716188911026e-01 7.722656581112528e-01 9.263197670303960e-01 -1.072342748173361e+00 -9.035735090126356e-01 1.776241320626453e-02 1.082897010674743e-01 9.545418104246070e-01 3.110063574022571e-01 -1.372090936474997e+00 2.708112203062142e-01 1.106319129759726e+00 3.741025755982980e-01
|
||||
-6.409039990558760e-01 -6.198651489741381e-01 -6.331904628571726e-01 -1.329242917346505e-01 5.790318725619163e-01 9.913916747560542e-01 5.491450539928419e-01 -6.337941257249047e-01 2.585861228021201e-01 -1.862731077016331e-01 -8.461064505579956e-01 -5.494435273784494e-01 6.243812045008411e-01 -3.358848790376691e-01 2.009158109167070e-01 -1.718864655936684e-01 1.132560758877454e+00 -6.617106426593899e-01 9.773970219199652e-01 9.312964775103416e-01
|
||||
-1.843994615961358e+00 -8.685242556701873e-01 -1.591718024185837e-01 4.888807482463509e-03 -1.070203735766175e+00 6.888707518369401e-01 -6.090931428471550e-01 -1.688614196571312e-01 6.046823102487794e-01 -1.225711621316313e+00 -1.389635446519708e+00 -1.666295893478473e-01 1.064404887100253e+00 -6.943730552465772e-01 1.005143978833875e+00 -4.030757473193848e-01 -4.579186879684553e-01 -6.693610069642342e-01 1.874033060523140e-01 -1.675468517588950e+00
|
||||
9.974773291876159e-01 6.079038839500417e-01 3.354138341742603e-01 4.534383666967883e-01 1.142121450290879e+00 9.506518940548244e-01 -7.937585013752509e-01 2.145969365704544e-01 2.063501761923578e-02 1.046495191966576e+00 1.176684304926423e-02 -9.053501888503190e-01 -8.173854035386219e-01 -3.812881016073097e-01 -2.883602575786728e-01 -2.693722239240173e-01 2.329230716958027e-01 -6.287294763863015e-01 2.933574715474763e-01 2.754718857927090e+00
|
||||
6.938712353031129e-01 1.541391753631175e+00 7.800725297706444e-02 8.237590631135955e-01 2.450164106829603e-01 -1.618697204822798e-01 2.448936949570442e-01 2.977876988087732e-01 1.381535517974605e-01 7.295500311767378e-01 -9.318240689058703e-01 6.010699689551772e-01 2.444414187224716e-01 7.648519621659626e-01 -1.521806211939662e+00 8.817103971114530e-01 -8.697317649087198e-01 9.805969401410045e-01 1.413144763674782e-01 2.083462937622262e+00
|
||||
-2.001631417145785e+00 -1.131740971203729e+00 3.337428842571128e-01 -1.148773616825357e+00 -2.657801677992105e-01 -9.297218107434237e-01 -1.642509227315621e-01 1.839234557264083e-01 4.578258956641898e-01 8.472636403872399e-01 -6.717043082137639e-01 -7.156993567553329e-01 1.227956228974581e+00 1.007246618936000e+00 -6.465898938940587e-01 -6.883062796636823e-01 -4.801681015082787e-01 1.066222273514804e-01 3.912414328316632e-01 -1.507990196864420e+00
|
||||
-3.839485105342400e-01 -2.141760786738760e+00 7.178170412603320e-01 -2.487398992673547e-01 -5.091871900188701e-01 1.160059778163378e+00 5.064094465485605e-01 7.195495134509805e-02 -5.515994093763954e-01 4.530579552235158e-01 -7.962174291298818e-02 1.220849329739568e-01 -6.531636724287639e-02 5.131285809216268e-01 4.724402419358615e-01 4.515428357467800e-01 -6.241927379327035e-01 4.669693849972243e-01 -5.826818481586439e-01 -1.795757569402424e+00
|
||||
weight:Al:2:
|
||||
5.135392247082138e-01 -2.557695069587775e-01 -8.759929196994461e-01 -2.592453838725610e-01 -1.189048019572937e+00 2.054550280939581e-01 -7.741415829524717e-01 -1.371240136666099e+00 -1.785581851632136e-01 -5.539664106776194e-01 5.665810200297841e-01 -9.271401805759163e-01 3.229073776050251e-01 1.607505356609535e-01 1.016297936419758e+00 7.113887799356671e-01 -2.767419575935879e-01 -4.198504961044903e-01 1.449509742812711e-01 8.600172384690399e-01
|
||||
bias:Mg:0:
|
||||
3.731289176409835e+00
|
||||
-6.362098051399459e+00
|
||||
1.931308809836757e+00
|
||||
4.963552044050653e+00
|
||||
7.754597633826141e+00
|
||||
-3.935935745945748e+00
|
||||
-3.988156363681842e+00
|
||||
6.752189616521796e+00
|
||||
-6.854078701817841e+00
|
||||
-3.910885559291621e+00
|
||||
8.376344056426712e+00
|
||||
1.744418830889844e+00
|
||||
5.714182595832976e+00
|
||||
6.711849773350551e+00
|
||||
-7.721580893085197e+00
|
||||
2.393372301200320e+00
|
||||
6.167392386379966e+00
|
||||
4.153464665687600e+00
|
||||
6.333580200641886e+00
|
||||
-7.063026995147228e+00
|
||||
bias:Mg:1:
|
||||
-4.816344573335819e+00
|
||||
6.175739957282312e+00
|
||||
-3.333139776313989e+00
|
||||
-6.802371768156505e+00
|
||||
7.422561929694263e+00
|
||||
-6.449006822627947e+00
|
||||
3.837530092748229e-01
|
||||
6.887001449220396e+00
|
||||
4.708194954780337e+00
|
||||
3.647072225857475e+00
|
||||
-6.558555872688774e+00
|
||||
-6.660753612846411e+00
|
||||
-4.281579495927591e+00
|
||||
1.441333632084118e+00
|
||||
7.213758051059082e+00
|
||||
7.269571344201147e+00
|
||||
-6.193060501741222e+00
|
||||
6.468596568525814e+00
|
||||
4.297019366432399e+00
|
||||
-5.109585902756677e+00
|
||||
bias:Mg:2:
|
||||
-6.973210524091122e+00
|
||||
bias:Al:0:
|
||||
1.385605881456594e+00
|
||||
1.456168048192331e+00
|
||||
1.570435419151431e+00
|
||||
1.826540771735247e+00
|
||||
1.207119457375240e+00
|
||||
7.898089296852779e-01
|
||||
-1.620004360537007e+00
|
||||
1.670224097808616e+00
|
||||
3.825092544050332e-01
|
||||
1.246171711447400e+00
|
||||
6.204763361450589e-01
|
||||
5.843024597969713e-01
|
||||
8.834918153160423e-01
|
||||
1.705474401272730e+00
|
||||
-3.416385643555942e+00
|
||||
-3.894018054421750e-01
|
||||
3.106839779186236e+00
|
||||
1.195701572346602e+00
|
||||
-8.559051661995589e-01
|
||||
1.110081737815194e+00
|
||||
bias:Al:1:
|
||||
-5.450983710225460e-01
|
||||
2.407396020581909e-01
|
||||
1.534086726090900e+00
|
||||
3.980765207282594e-02
|
||||
7.579902523143215e-01
|
||||
-2.703133069081817e-01
|
||||
1.874269420264722e+00
|
||||
2.204400449046542e+00
|
||||
8.926548043650204e-01
|
||||
1.295723133572349e+00
|
||||
-1.498599549429615e+00
|
||||
1.962828654094330e+00
|
||||
-1.278215062724843e+00
|
||||
-1.442692553389844e+00
|
||||
8.849366870775945e-01
|
||||
-2.059145588034654e+00
|
||||
1.499819766671037e+00
|
||||
2.637210411767147e-01
|
||||
-8.586061133801967e-01
|
||||
-6.970775827470471e-01
|
||||
bias:Al:2:
|
||||
-3.067090914266515e-01
|
||||
activationfunctions:Mg:0:
|
||||
sigI
|
||||
activationfunctions:Mg:1:
|
||||
sigI
|
||||
activationfunctions:Mg:2:
|
||||
linear
|
||||
activationfunctions:Al:0:
|
||||
sigI
|
||||
activationfunctions:Al:1:
|
||||
sigI
|
||||
activationfunctions:Al:2:
|
||||
linear
|
||||
calibrationparameters:algorithm:
|
||||
LM_ch
|
||||
calibrationparameters:dumpdirectory:
|
||||
.
|
||||
calibrationparameters:doforces:
|
||||
0
|
||||
calibrationparameters:normalizeinput:
|
||||
0
|
||||
calibrationparameters:tolerance:
|
||||
1.0000000000e-07
|
||||
calibrationparameters:regularizer:
|
||||
1.0000000000e-04
|
||||
calibrationparameters:logfile:
|
||||
MgAl1.logon.log
|
||||
calibrationparameters:potentialoutputfile:
|
||||
MgAl1.nnl_output.nn
|
||||
calibrationparameters:potentialoutputfreq:
|
||||
100
|
||||
calibrationparameters:maxepochs:
|
||||
10000000
|
||||
calibrationparameters:dimsreserved:Mg:0:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Mg:1:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Mg:2:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Mg:3:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Al:0:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Al:1:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Al:2:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Al:3:
|
||||
0
|
||||
calibrationparameters:validation:
|
||||
0.100000
|
||||
125
potentials/Ti.rann
Normal file
125
potentials/Ti.rann
Normal file
@ -0,0 +1,125 @@
|
||||
atomtypes:
|
||||
Ti
|
||||
mass:Ti:
|
||||
47.867000
|
||||
fingerprintsperelement:Ti:
|
||||
2
|
||||
fingerprints:Ti_Ti:
|
||||
radialscreened_0
|
||||
fingerprints:Ti_Ti_Ti:
|
||||
bondscreened_0
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:re:
|
||||
2.943843
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:alpha:
|
||||
4.720000 4.720000 4.720000 4.720000 4.720000
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:dr:
|
||||
5.056157
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Ti_Ti:radialscreened_0:n:
|
||||
3
|
||||
fingerprintconstants:Ti_Ti_Ti:bondscreened_0:re:
|
||||
2.943843
|
||||
fingerprintconstants:Ti_Ti_Ti:bondscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Ti_Ti_Ti:bondscreened_0:alphak:
|
||||
1.000000 2.000000 4.000000 6.000000 9.000000
|
||||
fingerprintconstants:Ti_Ti_Ti:bondscreened_0:dr:
|
||||
5.056157
|
||||
fingerprintconstants:Ti_Ti_Ti:bondscreened_0:k:
|
||||
5
|
||||
fingerprintconstants:Ti_Ti_Ti:bondscreened_0:m:
|
||||
8
|
||||
screening:Ti_Ti_Ti:Cmax:
|
||||
0.900000
|
||||
screening:Ti_Ti_Ti:Cmin:
|
||||
0.490000
|
||||
networklayers:Ti:
|
||||
3
|
||||
layersize:Ti:0:
|
||||
45
|
||||
layersize:Ti:1:
|
||||
20
|
||||
layersize:Ti:2:
|
||||
1
|
||||
weight:Ti:0:
|
||||
2.959065631457996e+01 8.820178365370962e+00 3.567479250699058e+01 -9.520944737974554e+01 5.810216841766599e+01 9.002124484009087e-03 1.229243737965223e-01 8.308975217587411e-01 6.823375462445517e-01 -2.120116364747359e+00 -5.042944013969457e+00 8.888536859810211e-01 4.730113767902510e+00 -3.561046029798427e-01 -5.268119595319895e+00 -5.022196630576959e+00 1.408878320391399e+01 1.468387176035118e+01 3.760997999097573e+01 -6.917447867710291e+00 -5.365770859257368e+01 2.298166523864803e+01 3.868330833699283e+02 -1.716548340302800e+02 -1.893938251864545e+03 7.087497678108087e+01 6.758413925648077e+02 -1.879116886681516e+01 1.086082362821264e+03 -2.582591099463284e+03 -6.919949629103328e+03 6.653492220309851e+03 3.910779971401374e+04 -7.590339154383871e+03 -2.022471894606208e+04 5.146509910417548e+03 -1.785463453281940e+04 4.562627218960930e+04 1.101701455067094e+05 -3.084309856150380e+05 -9.971094440845660e+05 6.441995235572759e+05 6.416524220576235e+05 -5.569111763100204e+05 4.328915131668917e+05
|
||||
1.115693858967680e+02 -5.209779939312019e+00 -1.092385668269338e+01 -7.571784442383165e+01 -1.662179555544062e+01 6.916594544622806e-02 3.413942491148807e+00 4.480188413646634e-01 -2.802071362110945e+00 4.856749991432379e-01 3.705116153321830e+00 -2.506064444643249e-01 4.559599774503276e-01 -1.221308069065122e+00 -1.641607115739855e+01 3.587904146265885e+00 -2.383416507477553e+01 -9.053907553863565e-01 -2.345767274757615e+00 2.209763752910383e+00 -2.673114428269787e+01 8.868866584244550e+00 -9.266724447503019e+02 1.276638625895979e+02 7.168919250618773e+02 3.363071672846352e+02 1.444136022401225e+03 3.037219474351357e+02 6.597654623185438e+02 -3.584719368857498e+03 1.436854292524348e+04 1.250649758704312e+02 -1.134443963945185e+04 -9.877927968886395e+03 -7.232548546930685e+03 -1.764631584481192e+01 -1.378082415237156e+04 5.896464207004858e+04 -9.422840447102475e+04 2.948993551487039e+04 2.008982788928043e+03 7.562262912574751e+04 -4.983163988565268e+04 -8.575889316913021e+04 2.236873807148275e+05
|
||||
8.785785932652226e+01 -4.720301334844532e+01 -2.020078576639373e+01 -8.255733692970911e+01 1.178751057600947e+02 9.264406483588233e-02 -8.591966416908701e-01 -2.857387389805442e-01 3.015871584381770e+00 1.521919611154894e-01 -2.855075022109026e+00 -2.903254706936468e-01 -3.875576775518043e-01 -1.502710449510661e+00 1.520339443967308e+01 1.731954001149112e+00 -5.593960128660866e+01 -2.295786748665179e+00 5.184952484874352e+01 1.592105947138623e+01 1.044288938102477e+01 1.080112064482304e+02 -6.503242958941141e+02 5.126387212054787e+01 1.597542448224041e+03 5.525892218471139e+00 -2.044692134406341e+02 -4.378343406176561e+02 -1.365572260486906e+03 5.425057742978480e+02 1.300810235708672e+04 -4.023490852286065e+03 -1.988158982819957e+04 6.967310910979561e+03 -2.024171606454459e+04 -3.946519618937478e+03 3.272873458153344e+04 -6.329517027391024e+04 -6.758621346995255e+05 -8.901399431816948e+04 5.802311652874356e+05 2.469897516161081e+05 -2.953675934297686e+05 2.508985896982255e+05 3.461023887148237e+04
|
||||
-5.983315673949122e+01 -5.919307194682484e+01 -2.313899936627505e+01 -1.379967160974447e+01 -5.689633174295666e+00 2.558411500579737e-02 4.966535582181172e-01 -1.127104896784805e-01 6.616245113484802e-01 1.512024678970052e+00 1.261340306063013e-01 -8.939209739253282e-01 3.836435145531752e-01 -9.152933589729167e-01 -2.819515446321528e+00 2.370269820057923e-02 -3.518535110763861e+00 -5.912237597981075e+00 -4.743613153004790e+00 -9.646383685996602e+00 -1.251890320875517e+01 1.196420918486563e+02 -3.106534430102295e+01 1.234735282275306e+02 3.222034272429482e+02 -8.517391382048751e+01 -1.336644870819136e+02 2.301334896952556e+02 2.795984833086188e+02 -7.564031065509095e+02 4.407754317028228e+03 -7.773963274447465e+01 -1.013680532461273e+04 -2.137688884394744e+03 1.854556641011866e+03 4.584784172458902e+03 3.070062887959159e+03 -1.650713622650294e+04 -1.690054624853504e+05 -9.892176689015098e+04 4.202313825462025e+05 1.823855045104632e+05 -3.431732355464993e+05 -1.288820654713853e+05 1.153329116697667e+05
|
||||
6.043868296995044e+01 4.953730803784704e+01 7.444491996599693e+01 2.069602350040536e+01 2.885023876509898e+01 -1.819594904018437e-02 -3.848784799773817e-01 -1.481217043109315e-01 1.376200375927928e+00 -1.047720682285893e-02 -3.575729995777325e+00 -1.600916160440444e+00 1.794687661779281e-01 7.996111823895621e-01 -1.099747849865894e+01 8.461579059755999e-01 1.912020946657639e+01 -2.330922291393975e+00 -3.201760021603348e+00 5.967674495276554e+00 7.202403588231947e+00 -3.963009841931792e+01 1.232746458298296e+02 7.293629493154042e+01 9.070915000036325e+01 7.821017738799992e+01 1.030456292377632e+02 2.367832546260195e+01 7.465984980998800e+02 -2.222946622172022e+03 2.365811170850493e+03 -4.316665836652123e+03 -5.681650496185503e+03 -4.705610717173333e+03 -2.463533711738178e+03 4.277433987676707e+02 -1.340783803475192e+04 8.114394517862871e+04 -1.371771041031446e+05 7.645477649479064e+04 1.381604663006295e+05 -9.358182445605620e+04 1.497249059051436e+05 3.740090050028634e+04 -2.951225783430175e+04
|
||||
7.336413357703552e+01 5.385735724250821e+01 -1.013025042673255e+02 -3.775215413344078e+01 3.856228680957005e+01 -2.774006629323017e-01 3.529706536044521e+00 1.051024631506057e+00 -9.126702013427540e+00 -3.036141107572878e-01 6.965836125304446e+00 2.370710254085188e-01 -2.453818030419209e+00 3.584431481868394e+00 -3.955211197897520e+01 -2.946319634169591e+01 1.075342223305788e+02 3.106469607072355e+01 -5.639364892412809e+01 -1.608059058708443e-01 5.568683573148927e+00 1.095331213085647e+02 7.356684893782635e+02 -1.953531461722103e+02 -2.290279364852281e+03 -7.626123846589050e+01 -1.093150014594484e+03 -4.785211317880392e+02 1.823212591707464e+03 -7.110275609460003e+03 -8.718444264025210e+02 2.761255219512287e+04 4.288711262044306e+04 7.873341657826532e+03 2.101411900064324e+04 -2.549447846479287e+04 -4.781367612174047e+04 3.798098289652226e+03 -1.231616040097599e+06 -1.636924466717421e+06 -8.535898658236240e+05 -1.069993108285157e+06 7.918258980567560e+04 2.785945734799839e+06 1.341027760457699e+06
|
||||
-5.454503514021354e+01 3.022937868044680e+00 1.036302323371132e+02 1.935381124326150e+01 -4.612595619827534e+01 8.792376998749749e-02 3.958336360908138e-01 -3.611972157525295e-01 -7.637152495511270e-01 3.653562740495307e-01 3.067551830757984e-01 -3.161256031699768e-01 4.744168004022808e-02 1.328386675030670e-02 -2.283213430935990e+00 -7.905546692629681e-02 -8.415206885898833e+00 3.763465287005156e+00 1.822358427888101e+01 -2.102569135625872e+00 -8.119986083501262e+00 -4.299383232184291e+01 -6.319797969630641e+01 1.364977306635739e+01 1.116474530878043e+03 6.481020621915923e+01 -1.135738338453166e+03 -1.755614422178900e+02 6.704888124888905e+01 8.115636002388160e+02 2.229292409804531e+03 4.152068637760446e+02 -2.300186571663856e+04 -8.991813724806230e+03 9.833563087692793e+03 1.007435440408356e+04 1.268059452291436e+04 -6.100360643113084e+04 -7.679226754674294e+04 -4.324234891085859e+04 5.104133002498235e+05 5.100622558505505e+05 5.687417836825646e+05 -4.065563558156515e+05 -1.061487530145137e+06
|
||||
-1.716350791787661e+01 7.669125478653537e+01 3.361398252746399e+00 -1.823274223785969e+02 1.680571316955566e+02 5.044485048795340e-02 -1.554309491130323e+00 -1.040567622332271e-01 5.403793929246866e+00 -9.332473544329941e-01 -3.328691452127943e+00 7.276367356846972e-01 -1.466253850993279e+00 -2.049238235100094e+00 1.890511806957937e+01 -1.365603915317673e-01 -7.306887579902040e+01 1.804106245632967e+01 4.985504986813705e+01 -1.387868082177220e+01 1.509060210160700e+01 -4.283272769576126e+01 -5.638949573162711e+02 -1.147260037690828e+01 1.990318793808507e+03 -1.291052217409064e+02 -7.864632802727403e+02 1.714942131555128e+02 -9.047631218077078e+02 1.594135040047945e+03 5.057802021444401e+03 2.765903434357460e+03 -5.421551955012631e+03 -1.460714485552365e+04 -2.242060556352513e+04 9.175879529415230e+03 2.631222640155592e+04 -1.290337306291942e+05 3.174622597120972e+05 -3.531368075740882e+05 -9.863082748151447e+05 1.052808298304350e+06 2.019305533585843e+05 -5.362818651229400e+05 4.057391172423453e+05
|
||||
4.277587614028521e+01 -5.541473137759568e+01 -1.102024827305631e+01 5.257858445795204e+01 -3.425341040033231e+01 -5.103011537222046e-02 1.131369327308289e-01 -2.892417383021378e-01 -3.408892711180274e-01 4.987019733292620e-01 5.930401521399169e+00 3.573649251910184e-01 -6.196824517342410e+00 3.493614018252218e-02 4.466306254045950e+00 -2.141513647484169e+00 -1.643052132619943e+01 7.878931556659929e+00 -5.834432405562187e+01 -6.326641211588008e+00 7.387894467468747e+01 6.867106305603809e+01 -2.651950831795124e+02 -4.817891301084077e+01 1.714170745131860e+03 -1.662565378656220e+02 5.075078770601488e+02 3.532164567001387e+02 -1.688617047555710e+03 -2.348133577164794e+03 -3.835231374568176e+03 5.031215766012700e+03 -2.913252889346310e+04 -1.018714388790049e+04 1.131417862036779e+04 7.321582219471577e+03 2.002936335361845e+04 2.917068634474881e+05 1.116083541827691e+06 1.198457175470134e+05 -5.669370558466424e+05 -3.745999354981262e+05 7.447029070304433e+04 -1.889247408188946e+05 -2.017056816322926e+05
|
||||
2.127944540103459e+01 -2.877490844198131e+01 5.903642848966372e+01 3.205853304780400e+00 6.690385675269403e+01 -1.550046529349525e-01 8.612501177660181e-01 2.451744371445429e-02 -2.418332147292466e+00 2.130934772577301e-01 3.602492255934556e-01 -6.336639965844759e-02 7.128735584523618e-01 5.204016397389728e-01 -1.428851379175287e-01 -1.098637221879929e+00 -1.514115944100129e+01 -3.997867152468988e+00 1.926736020692518e+01 3.182059523652051e+00 -1.878696122769461e+01 -2.037225647171812e+01 -2.525319448922875e+02 -6.541187163682535e+01 5.997373834256405e+02 2.676468877629583e+02 -2.162646066318257e+02 -4.122274734310448e+02 -3.584287388298700e+02 -6.287776493875825e+02 3.234653603322635e+03 1.708512593874384e+03 -2.727209058828812e+03 1.033810889939684e+03 -7.805596568289665e+03 -6.217798368030164e+03 5.313748576584261e+03 3.782843343209733e+04 -6.327484327593845e+04 -1.061552540069069e+05 -2.166129924583750e+04 1.334816983273117e+05 2.349340167555289e+05 -1.858449942928976e+03 -1.503039371950097e+05
|
||||
-1.809019814601928e+01 -6.318546075726388e+01 3.502313213382471e+01 2.537223513907526e+01 2.139592943381489e+01 6.497971721711365e-02 -2.541186757927502e-01 1.331003658270462e-01 -1.149611183868251e+00 7.191503838203581e-01 -7.984961611912485e-02 -3.034047471169865e-01 -3.752559589532619e-01 -1.459226938296722e+00 -8.074197858798613e+00 -1.749726257636485e+00 5.068428107922127e+01 1.870829404153494e+00 1.189599350957094e+01 1.056999138261877e+01 1.815394425479039e+01 -8.770611613711824e+01 4.766163355057220e+02 -5.835197574323644e+01 -6.412462403239056e+02 -5.534327678560212e+01 -5.714475346906897e+02 -1.916294922174244e+02 -2.059172424432571e+02 2.152982801219279e+03 -3.197765552742724e+03 1.214725535748061e+03 2.979752928144608e+03 -1.059319412352343e+03 4.010636576154852e+03 8.730065384619338e+01 1.416071470392590e+03 -2.480004127031567e+04 4.130113532056319e+03 2.696725909732282e+04 1.350230086967443e+05 -2.104408453509889e+04 -1.870080707984104e+05 9.258425664851280e+03 2.270199436544054e+04
|
||||
-6.287562290750430e+01 -1.256743566101117e+01 1.186515639771760e+02 4.448885777059116e+01 -8.655564354879643e+01 1.595312781983040e-01 1.110252834715529e+00 -6.728476391469848e-01 -4.767156094912901e+00 -5.684009350323000e-01 4.579771722243129e+00 -2.456192762060004e-01 -2.776347381266544e+00 2.020337937589395e+00 1.243352952853733e+01 -4.866495322917708e-01 -6.829757251604784e+00 3.109726419700340e+00 1.639409904201668e+00 5.336533994115300e+00 -3.830578054157361e+00 -1.581757722751315e+01 -1.395663345783051e+02 -9.372283713117540e+01 1.346416062603658e+02 5.310234552809914e+01 1.764352528448105e+02 -5.583382655188282e+02 -1.671614656241805e+02 -1.155396041321241e+03 4.943126679254263e+02 1.027179627044373e+03 1.635112143739064e+02 4.849942865254689e+03 -6.899574251683669e+03 6.643786277678042e+02 4.566027778907507e+03 5.214306944633082e+04 3.540346669080600e+04 7.892295323196106e+04 8.273562649930603e+04 -2.596956367011948e+05 -1.488814354406507e+05 9.783358918515232e+04 4.433509034746134e+04
|
||||
-1.129050987598768e+01 -1.064541855473103e+02 -7.128503516512480e+00 -6.453299364158009e+01 -1.211842272514147e+02 -1.432994958956061e-01 -4.920505992800346e-01 6.006413098366171e-01 3.461329088596560e+00 -2.998490277733287e+00 -7.466558029079155e+00 1.444037214220511e+00 2.664068255392905e+00 6.349796872002096e+00 -4.233220413417683e+00 1.174955929427833e+01 -1.296278332359902e+01 -1.212974652006815e+01 4.615816393256657e+01 1.222731370360364e+01 2.199633528849840e+00 1.197655633479179e+02 4.185118414251962e+02 -5.410074419928328e+02 -8.011246407469899e+02 6.864786471573334e+02 -6.262561405889981e+02 9.465933235349208e+01 9.927815158125892e+01 3.610725123550871e+03 -1.046068383906190e+04 -2.462571483744753e+03 3.209910271331161e+04 1.012499832057500e+04 4.447909159349948e+03 -1.430989259072112e+04 -1.323291979818503e+04 1.316261475411749e+04 2.834634933114457e+05 2.630501465736330e+05 -8.645569870102342e+04 -2.053856359685859e+04 -2.369991590369045e+05 -2.965843834083019e+05 -4.409599532396934e+04
|
||||
1.320973530791708e+02 1.133744177141023e+02 6.187724893682469e+01 -1.036257536830247e+02 -6.711739425491179e+01 -2.361802771282957e-02 2.852818677612859e+00 -5.763113597522784e-02 -5.754645017157189e+00 1.040226353964424e+00 -7.188164230414809e+00 8.884067862570078e-01 -3.338922522957300e+00 -1.830898005699394e+00 6.420876673786813e+01 -4.093058268227900e+00 -2.624123626170262e+01 -6.070285210535175e+00 -4.136775103420218e+01 -3.106575523655032e+00 -1.170680617250375e+01 -8.932374517039534e+01 -8.795441283927323e+02 -1.694005532298305e+02 7.289997970841837e+01 1.274307640624964e+02 1.039711213416945e+03 5.500505833839034e+02 1.011388720913694e+03 -3.338045408785704e+03 1.459457972380795e+02 -1.093001969648537e+03 8.346012452448143e+03 3.942859030732624e+03 7.209887485535437e+03 2.063913337114791e+04 1.726277649630802e+04 -4.375686580512670e+05 -4.334965941900997e+05 2.520663302832988e+04 -1.975121234131820e+05 -6.972869237695933e+04 -3.958293518819951e+04 3.157469424712080e+05 1.469868050563582e+05
|
||||
-7.680083713548922e+01 -2.885579283049772e+01 8.230918168172471e+01 -2.879211280721089e+00 -1.502918483015012e+02 1.724684493190237e-02 2.405636998267923e-01 -5.191089978005340e-01 -3.908004839649156e+00 -1.149104213600202e+00 5.623119733181787e+00 3.202891744101102e+00 -4.198194201255601e+00 3.434108485139935e+00 1.669727873396221e+01 1.843422989710179e+00 -1.778376425248273e+01 -8.848918908776389e+00 -2.820847151335147e+01 -5.555859896695163e+00 5.906172198123646e+01 -8.815749977758814e+01 -7.073641353278192e+02 1.361368756288446e+02 2.161766946802516e+03 4.319482649640568e+02 -1.345860454878011e+03 -1.651617448977750e+02 -7.951328420274290e+02 2.064063700098161e+03 5.963440573047775e+03 8.486607123360481e+02 -2.151883495306340e+04 -1.547872222331931e+04 -5.826866815020154e+02 8.289831536661319e+03 2.767385574431247e+04 -3.130380986270626e+04 1.432236375805384e+05 2.662252894939036e+05 -2.028384328729534e+05 -8.671824378835870e+05 3.489184006508943e+05 7.166138082697394e+05 -4.161462700086616e+05
|
||||
2.092015377584279e+01 -6.818146651595413e+01 -3.962051090650328e+01 6.298697276595188e+00 4.978455687558166e+01 -2.133167764421444e-03 -4.228408643390778e+00 -1.574679657025827e-01 4.652489412972169e+00 1.733331459289110e-01 9.950307502565492e+00 -1.837649610790413e-01 1.670753494312191e+00 -5.452686146305626e-01 -9.939087460650070e+00 -2.288461945407101e+00 5.371501324556304e+00 -1.030098894662705e+01 1.110409318938780e+01 -3.379978051391611e+00 -2.077708918933370e+01 -1.740409212661944e+01 6.179426972594837e+02 1.202112107144332e+01 -1.272542035621634e+03 -1.693409267633910e+02 -1.215662561898054e+03 -3.769491663120792e+02 -2.471368250515081e+02 2.460931072666515e+03 -6.112302974891570e+03 5.576028754777241e+03 1.494463766585662e+04 -5.844549337907076e+02 -4.023838198942177e+03 1.828075889404763e+03 -6.856904185154887e+01 1.472734042646867e+04 -2.422000894715175e+04 -1.750059740610240e+05 1.824411937467389e+05 -1.162243993332659e+05 -1.546180026284929e+05 1.457903320438883e+05 7.260952292331720e+04
|
||||
5.549236330002111e+00 8.510464271612248e+00 1.499915930872854e+00 -5.718076776176822e+01 -1.073400737021232e+02 1.913734210571671e-02 -1.897976106885318e+00 9.474353027541729e-02 6.559895938589197e+00 3.847861539699668e-01 -1.197530597842371e+01 -2.502985321272612e-01 1.021236923490629e+01 2.075785921157222e+00 -6.506928209049970e+00 6.234279325535139e+00 1.752790175510280e+01 -9.361615516391029e-02 -3.637988402046642e+01 -1.035563439659020e+01 -2.104567867330323e+01 1.590829936726218e+02 1.463762464824573e+03 4.385982942807074e+02 -1.722479327485013e+03 -6.585308438558333e-01 1.139079783125024e+03 -8.350487082617457e+02 -7.343631692232964e+01 -4.728152000583492e+01 -9.143160143408955e+03 4.266010242928261e+03 -1.001379527078619e+04 -3.570221809676638e+03 2.321762918844290e+04 -1.378614329552227e+03 -1.252462675350271e+04 -9.977546699884476e+04 -2.165451322108983e+05 -1.244428306954979e+05 1.647110199826282e+05 -6.868788643158785e+04 5.939294657377007e+05 3.361439704050320e+05 -5.152691654531133e+05
|
||||
-7.916671728129341e+00 4.492823948998129e+01 -2.321361896168357e+00 -1.307990846578832e+02 8.765869130093633e+01 -9.432882458046217e-02 1.611005810242834e+00 -1.492405431125902e-02 -4.882611306436194e+00 1.355693318261039e+00 7.347697810758224e+00 -1.005947608673526e+00 -4.361056799092979e+00 9.247886198515168e-02 -2.009908475018450e+01 -8.766169433333262e+00 6.434501739699240e+01 5.061307399216700e+00 -8.580659555328153e+01 8.467487932199038e+00 4.795338088214078e+01 1.223215802782503e+02 2.099492630433865e+02 -1.899923297323583e+02 -8.744126753927595e+02 1.763805850118002e+02 1.138206840449201e+03 -5.264380804364586e+02 -9.034346921159797e+02 -4.059105563840728e+03 6.875493804896346e+03 1.735011124704736e+04 -4.579734146321174e+03 -9.297778126741827e+03 -2.341425160868986e+03 -1.554197660004223e+03 8.525873364765699e+03 1.618272281833872e+04 -1.029347626249581e+06 -1.377874758793992e+06 1.133230497940448e+06 1.535001290882857e+06 4.483416847289582e+05 -1.249958276970502e+05 -9.474144957910469e+05
|
||||
-7.802632807816745e+01 -6.845340364662916e+01 1.356713670586956e+01 6.429559291889871e+01 5.969112686840563e+01 -1.476459646859465e-01 -9.014179718702735e-01 2.539243605349726e-01 6.578331994696370e-01 6.567788654511676e-01 2.672971790084568e+00 -4.045417196641024e-01 -2.480889831451431e+00 -2.173085187939534e+00 -6.149384313374290e-01 1.237555532875511e+00 3.398910583700701e+00 3.748468846399348e+00 -1.356194023597969e+01 3.576828207684911e-01 1.028514022166658e+01 -2.452974645090863e+01 1.472219899103325e+02 3.531820910869286e+01 -1.830872227158568e+02 -7.121290468102021e+01 -3.227075248363264e+02 -1.353082919292399e+02 2.733126427158998e+02 2.841383806359943e+03 -3.265593290646156e+03 -4.267522007397489e+02 1.466201562416414e+03 -2.517201653687018e+03 1.254021916995564e+04 1.578186339790411e+03 -1.196054098260551e+04 -5.449534436381417e+03 6.576862020272012e+04 -8.695350896731619e+04 -8.814270606378432e+04 4.587074072723955e+05 7.623642768318407e+04 -3.517609551203249e+05 -4.378004867922448e+04
|
||||
-8.073601889023706e+01 -1.294665120866081e+02 5.945805590714158e+01 -2.898290131951689e+01 -1.137372595027623e+01 1.219346386197728e-01 -3.839491851396981e-02 -3.595476170701787e-01 8.224162070888553e-01 3.344070630946880e-01 -1.361143505206734e-01 6.625530309825681e-01 2.537011728158463e-01 -4.266564294031267e-01 -1.194978121256974e+01 1.737482385185809e+00 2.043919378151334e+01 -4.788563396789363e+00 -3.474946133830109e+01 -4.220943925467513e+00 2.517221961878412e+01 1.060184179513237e+01 1.781504656839612e+02 1.365399582956045e+01 -3.400000871925323e+02 4.642900563873435e+01 3.718217200852840e+02 1.563519292553875e+02 -4.059289015912773e+02 1.917350342938086e+03 -2.168254395331966e+03 -5.048353631651641e+02 7.841144679334916e+02 -1.920899103395903e+02 7.535043890794466e+03 -9.790152729192915e+02 -3.407548179745769e+03 -2.289116277601358e+04 2.424830526185240e+04 -1.711510685927522e+04 -3.676143854672500e+04 7.968742284328669e+04 -3.199123493424857e+04 -3.494703283466893e+04 3.043202096109469e+04
|
||||
weight:Ti:1:
|
||||
-1.900909743994832e+01 -7.578770479490131e+00 -3.218496428548703e+00 -4.236167744297796e+00 -1.186749689073697e+01 5.376081602840554e+00 -6.790956567542075e+00 -1.773830000868000e+01 -5.501967698076490e+00 -1.126457217402026e+01 -9.679843884554652e+00 -4.136760185943520e+00 -5.854885706629038e+00 -6.673888840718904e+00 -2.988839238536756e+00 -9.253564488744136e+00 -2.641721529732375e+00 -8.536185712280712e+00 -5.034707016809759e+00 -7.113274560516300e+00
|
||||
bias:Ti:0:
|
||||
-1.956139686368855e+00
|
||||
2.316102584868805e+00
|
||||
-5.873577280820667e+00
|
||||
2.540633238613091e+01
|
||||
2.169586324610218e+00
|
||||
-6.132550222727400e-01
|
||||
6.490063401842918e-01
|
||||
-2.951927218533057e+00
|
||||
-8.218012457375843e-01
|
||||
1.774990864410233e+01
|
||||
1.988342296137336e+01
|
||||
1.990921933487676e+01
|
||||
1.131818275713668e+01
|
||||
1.317146636683294e+01
|
||||
1.234521162759314e+01
|
||||
4.176334634524139e+01
|
||||
7.732436210630711e+00
|
||||
2.952926382581686e+00
|
||||
1.848343983326478e+01
|
||||
3.602895726219778e+01
|
||||
bias:Ti:1:
|
||||
#-2.511965921735326e+01
|
||||
1599.0960982347167
|
||||
activationfunctions:Ti:0:
|
||||
sigI
|
||||
activationfunctions:Ti:1:
|
||||
linear
|
||||
calibrationparameters:algorithm:
|
||||
LM_ch
|
||||
calibrationparameters:dumpdirectory:
|
||||
.
|
||||
calibrationparameters:doforces:
|
||||
0
|
||||
calibrationparameters:normalizeinput:
|
||||
1
|
||||
calibrationparameters:tolerance:
|
||||
1.0000000000e-07
|
||||
calibrationparameters:regularizer:
|
||||
1.0000000000e-04
|
||||
calibrationparameters:logfile:
|
||||
Ti_fitting1.log
|
||||
calibrationparameters:potentialoutputfile:
|
||||
Ti_1.nnal_output.nn
|
||||
calibrationparameters:potentialoutputfreq:
|
||||
100
|
||||
calibrationparameters:maxepochs:
|
||||
10000000
|
||||
calibrationparameters:dimsreserved:Ti:0:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Ti:1:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Ti:2:
|
||||
0
|
||||
calibrationparameters:validation:
|
||||
0.100000
|
||||
124
potentials/Zn.rann
Normal file
124
potentials/Zn.rann
Normal file
@ -0,0 +1,124 @@
|
||||
atomtypes:
|
||||
Zn
|
||||
mass:Zn:
|
||||
65.380000
|
||||
fingerprintsperelement:Zn:
|
||||
2
|
||||
fingerprints:Zn_Zn:
|
||||
radialscreened_0
|
||||
fingerprints:Zn_Zn_Zn:
|
||||
bondscreened_0
|
||||
fingerprintconstants:Zn_Zn:radialscreened_0:re:
|
||||
2.648925
|
||||
fingerprintconstants:Zn_Zn:radialscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Zn_Zn:radialscreened_0:alpha:
|
||||
6.950000 6.950000 6.950000 6.950000 6.950000
|
||||
fingerprintconstants:Zn_Zn:radialscreened_0:dr:
|
||||
5.351075
|
||||
fingerprintconstants:Zn_Zn:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Zn_Zn:radialscreened_0:n:
|
||||
3
|
||||
fingerprintconstants:Zn_Zn_Zn:bondscreened_0:re:
|
||||
2.648925
|
||||
fingerprintconstants:Zn_Zn_Zn:bondscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Zn_Zn_Zn:bondscreened_0:alphak:
|
||||
1.000000 2.000000 6.000000 9.000000
|
||||
fingerprintconstants:Zn_Zn_Zn:bondscreened_0:dr:
|
||||
5.351075
|
||||
fingerprintconstants:Zn_Zn_Zn:bondscreened_0:k:
|
||||
4
|
||||
fingerprintconstants:Zn_Zn_Zn:bondscreened_0:m:
|
||||
8
|
||||
screening:Zn_Zn_Zn:Cmax:
|
||||
2.900000
|
||||
screening:Zn_Zn_Zn:Cmin:
|
||||
0.490000
|
||||
networklayers:Zn:
|
||||
3
|
||||
layersize:Zn:0:
|
||||
37
|
||||
layersize:Zn:1:
|
||||
20
|
||||
layersize:Zn:2:
|
||||
1
|
||||
weight:Zn:0:
|
||||
1.840843217996557e+03 1.327600298586164e+03 1.963548257955883e+03 1.429779297065990e+03 -1.051474168654006e+03 -1.660296406213434e+00 6.334570172699882e+01 -3.737038982792268e+00 4.968114752212670e+01 -9.567199194282953e+00 9.631589502702576e+00 -8.106222221683005e+00 1.163282250867211e+00 -7.159618962300345e+00 1.771028645853366e+02 -1.453247401354386e+01 2.252010741565294e+02 -3.033883801231511e+01 8.602899898801377e+01 -1.262500330269335e+01 4.709565431208187e+01 -3.411777169795419e+03 3.036872725714003e+04 1.147063535734760e+04 2.579893241305215e+04 2.525583705168684e+04 3.928446402286141e+04 3.708907106359200e+04 4.734108367180712e+04 -5.030090247388524e+05 4.446370017908084e+05 1.517518591797291e+05 1.022787698073169e+06 6.770155176081622e+05 3.468968893618785e+05 5.066083711607796e+05 6.232017917820069e+05
|
||||
-4.867894022463213e+01 -6.696518437134288e+02 7.526948115726896e+02 2.141409611012552e+03 -1.910072205582579e+03 -4.830909565926931e-02 -1.388633643368077e+00 -7.983666630510140e-02 4.467091689403698e+00 -1.272558703081971e+00 -4.378710865127610e+00 3.443545489023216e+00 2.359117449397919e+00 1.562073699923843e+00 9.442749064616654e+00 -3.971519085672417e+00 -2.100922782635326e+01 1.817116491035471e-01 -2.040654367736756e+01 -1.208612901353981e+01 2.972997432741401e+01 -2.815091979129757e+03 -2.577786933826371e+03 2.783448001716584e+03 1.335915322198614e+04 1.414693151466261e+03 3.590765340226186e+04 4.893501501274273e+03 -4.504854951783422e+04 2.631600052429191e+05 1.009949017216819e+05 -1.042007315166406e+05 -1.626118958640781e+06 6.969556024636492e+05 -2.004918857445113e+03 -9.772234150996550e+05 1.612479330407999e+06
|
||||
-2.547026671271322e+03 -2.950626616483513e+03 -2.744157181861291e+02 4.502269888982345e+03 7.642968810186376e+03 3.888930467743632e+00 9.299273947755566e+00 -1.301367634390119e-01 6.542128812937680e+00 -1.958937643529492e+01 4.030601718341823e+01 4.857939610787255e+00 -5.452609029666395e+01 -9.654377634167119e+01 -1.346121915835327e+02 1.840279843320920e+02 -6.508480314782527e+01 8.484065117304094e+01 -3.439712308602064e+02 -1.851789651157605e+02 3.689316978903703e+02 4.030138700240145e+04 5.888342632537148e+04 -4.762881412943191e+04 5.429566968749958e+04 3.785140953051671e+04 -2.067608331519767e+03 5.502126550207735e+04 -5.865131368721859e+04 -1.040697418309879e+06 -2.692728675649706e+06 -6.958339360362046e+06 9.717764177843109e+05 3.029302411030397e+06 1.507658303878951e+06 4.162944435381576e+06 2.603707536631078e+06
|
||||
-4.020279651937405e+01 -3.712025215369567e+02 -3.905640951927051e+02 -9.769394562415926e+02 -8.000518667485832e+01 -9.902121471246689e-02 -6.315286863554328e-01 -7.525903056758572e-03 -6.581420778516043e+00 -3.953343778355981e-01 5.653937770792338e+00 -1.601237306989471e+00 -3.641074595744250e+00 8.590396854588673e-01 1.363317917303327e+01 7.731295376404532e+00 3.389263658172769e+01 7.954438643114552e-01 -1.990772872609119e+01 1.959756469248548e+01 1.959384540241467e+01 1.745835254917957e+03 -2.671324000856120e+03 -8.342521378051908e+03 -3.283752564475801e+03 1.435382195358146e+04 -2.646024265137098e+03 -7.043085213107316e+03 4.270157136776987e+03 2.741327608487913e+04 2.272959950858857e+04 3.032064842536186e+05 4.517831331111924e+05 -9.956048638245321e+04 -1.371366713379567e+05 -2.128379609295736e+05 -2.761388024665481e+05
|
||||
-4.553288771293628e+02 -2.389110686529863e+03 -2.721644216851545e+03 -1.745749470448249e+03 -3.312486741418715e+03 -1.210765614220592e+00 3.943359793116002e+01 -3.149949212847695e+00 4.341439554849352e+01 -5.350355177108398e+00 5.109552274030201e+00 -6.934837454418926e+00 -1.795073888449587e+00 -8.946399900294518e+00 4.678167996106505e+02 -2.735142786019918e+01 1.201847812850579e+02 -4.293276983420454e+01 -4.588532588655881e+01 -6.147486946263889e+01 -2.568054234212329e+01 2.607892553152449e+03 -2.983152785208851e+04 -5.084479742814501e+03 -1.309910331053079e+04 -1.185093560878402e+04 -8.012767373368240e+03 -1.931821356921383e+04 -1.498648829129887e+04 4.956277516134420e+05 1.350126765532461e+05 1.939340301448317e+05 7.304255348724735e+04 9.479924834876996e+05 1.077059613736371e+05 -5.260943601902098e+05 1.578023714969253e+05
|
||||
1.287060906064671e+02 6.419532516700075e+02 5.631212936256003e+02 -4.674728869335681e+01 -5.088555982705109e+03 -1.061129653037721e+00 6.463699904546160e+00 1.565088130214456e+00 -3.474802355680357e+01 7.814465663883186e+00 9.863070966490204e+00 -1.208999338140349e+01 2.850429663953289e+00 1.487468241998924e+01 -3.611859625077368e+01 -6.318239183252798e+01 2.313514592814801e+02 5.974330953468709e+01 -4.040675660307240e+01 8.228392165673229e+01 2.587032722271676e+01 -7.970047925528133e+03 9.524764474600510e+03 3.493005952807600e+04 -1.008766711617699e+04 -7.335180753238307e+04 -4.592580194975859e+04 3.569191328066273e+04 -1.038892674679388e+04 4.613935196622462e+05 1.206082869437945e+06 4.327918493048243e+05 2.065009811381410e+05 -9.651957960726328e+05 -4.892246525201621e+04 4.678438362636891e+05 4.451310450503579e+05
|
||||
-2.244001562135284e+02 -2.947533384054621e+02 -3.716501463286722e+02 -6.579432730238428e+02 -1.924990262356199e+02 1.446993704443946e-01 5.700905464838008e-01 -5.008069513836519e-01 3.671356954783432e+00 3.193826437901424e-01 9.504158478199282e-01 2.307855594812535e-01 6.250545308727700e-01 -1.457679758283194e+00 -1.067984412812215e+01 1.262081441549886e+00 -8.441682390737853e+00 -3.368708907101144e+00 -4.360857580363301e+00 1.277685545459654e+01 3.583413158092908e+00 2.685434463415187e+03 2.335059394840259e+03 2.007840959322174e+03 2.184545161240448e+03 3.599914008006690e+03 -3.219758371691591e+03 -8.894828954753271e+03 -7.928670592250448e+01 2.510725928742397e+04 -1.151412386637197e+04 8.898162141759250e+04 3.414728740951253e+05 3.648299486863153e+05 -5.184753431119079e+04 -3.957212459575803e+05 -3.204937461149927e+05
|
||||
-2.094057771857782e+02 -5.879762345159693e+01 1.638449410806029e+02 -1.536913149348004e+02 -4.207154579511297e+02 4.865438911547222e-02 6.184664673369579e+00 4.009998338742765e-01 2.414577834315304e+00 -8.477955616608593e-01 1.670985460758872e+00 -1.493485603728542e+00 -1.885280090642520e+00 3.100553619413786e-01 3.301296463793345e+01 1.611901985098975e+00 -5.000161679968362e+01 -3.112090748603185e+00 2.227635031724946e+01 -4.722476108930669e+00 -1.299500822314205e+01 1.680884442298651e+03 -3.195679145000194e+03 -1.817930083223865e+03 5.228834317783630e+03 -7.761230124878755e+03 7.010943608788367e+02 2.407779905378570e+03 -4.191907023656593e+03 9.787927676212358e+02 5.247086467701172e+04 1.777601807846408e+04 -2.812300640264689e+05 -1.190107109972477e+05 -8.187404029272732e+04 2.062303020081563e+05 2.973629505331946e+05
|
||||
3.996253316096240e+02 7.020193312483506e+02 6.886795747897199e+02 -1.017286740464166e+03 -2.270129023740150e+03 -5.429478923988308e-01 5.082891380302957e+00 -7.806588741763909e-01 -2.308625278805171e+01 8.057987594509667e+00 -5.216776073596485e+00 -4.956155303075058e+00 1.799013368308143e+01 2.997387846534346e+00 -3.344695306407772e+01 -1.898136096777484e+01 1.768444934640630e+02 3.203870946993737e+01 -6.357874929657306e+00 1.431753460792018e+01 -7.170225680377385e+01 2.833273821024094e+03 1.604155460734075e+04 -2.818255189638704e+04 -5.155248110181149e+04 -5.073261552578159e+03 1.147674784768651e+04 1.282323153147283e+04 -1.793756114263649e+04 5.545164307930873e+05 8.220294701579114e+05 7.949708714636023e+05 -4.014746506395403e+04 1.813138275448710e+05 8.128946021087655e+05 2.208022420409432e+05 6.117235817318064e+05
|
||||
1.609587997595022e+03 1.063278592331951e+03 1.621641256995942e+03 3.800587789635133e+03 2.464285195824142e+03 1.301381442045066e+00 -3.915311853316171e+01 2.836732531919875e+00 -4.409336353611096e+01 5.413413791999937e+00 -4.672598127332175e+00 6.731688390114411e+00 1.467407016089138e+00 8.383613519495249e+00 -4.697850666578314e+02 2.955934218333761e+01 -1.135743717058182e+02 4.273527146757789e+01 4.058043897259598e+01 6.411595191781156e+01 3.040370721661198e+01 -2.018812382180802e+03 3.113495955826021e+04 4.252895548771596e+03 7.402216411613146e+03 1.262311543171592e+04 1.652889838477845e+04 1.334901099878853e+04 4.529249580292105e+03 -5.235759996157698e+05 -2.092682606121698e+05 -2.835887954845360e+05 5.092872757394497e+04 -3.268805064592685e+05 1.164029954979558e+05 -1.789137850712673e+04 -3.752272721435481e+05
|
||||
-1.869339700695036e+02 -2.711104010015937e+02 8.134226621464947e+01 5.540283992238183e+01 -3.069283676908044e+02 7.909097704307448e-02 -5.236808978512814e+00 5.351846112312371e-01 -6.556937006029356e-01 6.842464004396732e-01 -1.407007658264797e-01 1.830210066619608e+00 1.850600436409528e+00 4.397881176068279e-01 3.236196944044836e+01 -2.577656125433838e+00 -1.953686607969710e+01 -6.793937255459886e+00 1.409198234503100e+01 -1.054905721811694e+01 -2.341063193629975e+01 5.541998269367858e+02 -6.927844934521366e+03 -3.776162709861349e+03 3.830706825109737e+03 -2.297883983048941e+03 1.993572103030687e+03 3.942942417653607e+03 9.365263122109411e+00 4.501352409085185e+04 1.795315880643928e+05 1.243869880792447e+05 -1.884806044261365e+05 -6.023155113890633e+04 4.397734299519763e+04 -1.986967382669768e+04 -4.838198909269566e+04
|
||||
-8.598120098834096e+02 -8.391863724010162e+01 9.141288779685266e+02 6.291516867955859e+02 5.084024207447897e+01 -1.130075766764037e+00 8.400001229434618e+00 -6.508762656240539e-01 3.242496089458407e+01 -6.509917115315996e+00 8.765141790535703e+00 -5.508049685490449e+00 1.326607027224823e+01 -6.599665659882787e+00 3.413922893358430e+02 5.435025240030077e+00 4.171772693423943e+01 -4.425376853262456e+01 5.220013664325218e+01 -1.710164330123337e+01 6.881073641868993e+01 1.102626948020171e+04 6.162812546570687e+04 8.932031832302722e+03 8.728661032742386e+04 2.771222394794940e+04 2.219030296574051e+04 2.984268489763810e+03 1.692759111028905e+04 1.371120228160145e+06 2.541766533641900e+06 1.431930821154697e+06 1.714597553666327e+06 1.269571631594059e+06 1.770259060988277e+06 2.286998039556925e+06 8.018546085244186e+05
|
||||
-1.238492874947903e+03 -2.404190943477982e+03 -1.967868676179012e+03 -9.251476683616278e+01 9.681819275768881e+01 1.542612328190149e+00 -6.325810600086770e+01 4.140346350117789e+00 -4.955621465165487e+01 9.477593724882059e+00 -1.122619045205835e+01 7.898363089136797e+00 2.486943358976950e-01 8.262960301923508e+00 -1.774027831420277e+02 1.193524060159517e+01 -2.257179523567315e+02 2.999999276837573e+01 -7.041994315964807e+01 1.571099970941951e+01 -6.027517510319813e+01 3.217365031281775e+03 -2.972328708582964e+04 -1.115035159550204e+04 -3.110501716236360e+04 -2.448448643770179e+04 -3.946230681350971e+04 -4.147669191403156e+04 -4.422774069416532e+04 5.046939658822084e+05 -5.350712363272174e+05 -5.096205381295439e+05 1.667072003296654e+05 5.359017837715702e+05 -1.465796948101423e+06 -1.207395944754628e+06 -6.699578913850705e+05
|
||||
-3.474022314195353e+02 -3.555025436558426e+02 8.713349077489387e+02 -1.470922577327833e+02 7.382060589544488e+01 7.935153549222949e-02 -7.759220152209404e-01 -4.471299415459822e-01 5.970574771150265e+00 8.177331361160014e-01 -7.324325478795535e+00 1.004657467296750e+00 1.904810261854232e+00 3.769679387588469e-02 4.921411884496084e+00 -2.346312220163470e+00 -3.213644916679318e+01 -1.124104788526019e+01 1.617625350213212e+01 -3.237992824000127e+00 1.117610269531818e+01 -2.408572604800540e+02 -2.969274630722372e+03 4.624222624249609e+03 9.461037593569181e+03 2.265153642633529e+03 1.474441708877377e+04 2.542844832736363e+03 -2.052860751175176e+04 -4.025918683842004e+04 2.012349368112139e+05 -1.738702709130462e+05 -9.218044325004334e+05 -1.490131777332481e+05 7.356466418350046e+05 8.688765603303112e+04 1.707773705736880e+05
|
||||
-2.883173755528617e+02 6.640838078450979e+02 7.672648926122102e+01 -1.149201392748783e+03 6.475094954650361e+02 7.769773205585054e-01 -1.528326819437759e+01 2.372772516782163e+00 -2.101509413883469e+01 6.136704563023679e+00 -1.681955318758272e+01 6.765781717156283e+00 -1.114470199224738e+01 3.660049603045086e+00 -2.993186204128040e+02 5.104576180852823e-01 -1.475945302756736e+02 8.091400194861006e+00 -3.885963537068615e+01 4.240441890603346e+01 -4.073318629456916e+01 -9.891438054339715e+03 -8.517585899348131e+04 -2.282231149047157e+04 -4.101297281631408e+04 -4.896136705862332e+03 -3.769673968263360e+04 -1.918169381314612e+04 -1.886667839609148e+04 -8.824194205268268e+05 -2.724561468915461e+06 -8.601948513472035e+05 -1.565103646751642e+06 -2.895390572234056e+06 -6.332212891517369e+05 -3.496365383645286e+05 -2.360598489130690e+06
|
||||
-2.098317109902523e+02 -5.191916028281686e+02 -4.072513779425757e+02 1.648645810202673e+03 8.008100493349814e+01 6.673676489318506e-01 -2.234551357730190e+01 4.324580028271706e+00 -1.115367518646302e+01 2.385143934009538e+00 -1.888418029457968e+01 1.053150469580193e+01 -1.321009282875341e+01 -8.164359611630221e-01 -2.544563691723962e+02 -7.279711477665754e-02 -2.427387970075490e+02 9.834942209456305e+00 -7.462310036631851e+01 4.021651438591282e+01 2.429677654379990e+01 -8.000312401143434e+03 -1.120651268436376e+05 -2.705586768488990e+04 5.410189868127030e+03 -2.734118906322595e+04 -2.012272178090466e+04 -2.048016419497057e+03 -5.179641789156697e+04 -4.258470174599529e+05 -2.444053059309976e+06 -1.317184298692366e+06 -1.978303048622859e+06 5.123453197700781e+05 -2.745475568245941e+06 -2.504064345974599e+06 -6.589181033339936e+05
|
||||
-8.227395992590568e-01 8.402693564583156e+01 1.815585281022566e+02 3.000818198361154e+02 8.058422277681002e+02 -1.403423249457104e-01 -4.684885440242636e+00 -3.155059737214863e-01 -2.142423225472274e+00 7.823448914070521e-01 4.907619438732473e-01 1.420542355841920e-01 1.064109507072471e-02 -2.394985427255821e+00 3.280371336927642e+01 8.137788321401858e-02 2.629017584969349e+01 -8.912535171174423e-01 -4.233130590820435e+01 -1.174851039901424e+01 6.427637350191217e+00 -4.010724778979453e+03 -2.572481944694466e+02 5.177792533304703e+03 -3.183707922594705e+03 -3.712788300100658e+03 -9.680749251221494e+03 -8.127603073207721e+03 1.085288392028389e+03 1.651460584536785e+05 1.366136537742037e+04 -1.975829808487097e+04 2.671717127180303e+05 7.046034181257843e+03 -2.209888878104767e+05 1.075612168134570e+05 -6.389420350760744e+04
|
||||
-2.624614355513467e+02 -3.322920155334897e+02 -1.007253674048416e+02 -6.883995238526846e+02 -4.148158619112295e+02 6.668773877535907e-02 3.559694252206691e-01 -4.769307092246022e-02 8.414135633745047e-02 -1.523737480373382e+00 -2.629764000142077e+00 -1.091241060801898e+00 7.535210785482911e-01 2.173769394429124e+00 -1.334593827215766e+01 -4.494096915372464e+00 1.355288539130498e+01 1.022271563912265e+01 1.654684914913852e+00 8.273397323601738e+00 6.320909889323898e+00 1.604941942575870e+03 3.850446876423065e+03 5.019480656839593e+03 -1.550436687524828e+03 -4.079558821492986e+03 -3.190561267686891e+03 1.668057826215280e+03 2.678008069427244e+02 -2.388105125932132e+02 -1.486451119986938e+05 -3.080703509002728e+05 -2.089720798558507e+05 7.306594469099441e+04 3.777534507727789e+05 2.147884436501953e+05 3.010899184939094e+03
|
||||
-2.174728682280671e+03 -7.854909989734913e+02 1.577337427124105e+03 7.392879338718672e+02 -2.031293222927472e+03 9.815697575740177e-01 -4.060742228028013e+00 1.771054166594305e+00 4.338042973986315e+00 -1.950709589059402e+00 1.383564405552985e+01 -9.496007054920318e+00 -1.441633040429974e+01 -1.683383727754707e+00 1.939263088801955e+01 -4.296716004293904e+01 -2.099204621670571e+01 -2.566053624162975e+01 -2.461342432348027e+02 1.709537803072899e+02 2.767532404363527e+02 3.257450132587233e+03 -1.386610370240498e+04 3.636555915788168e+04 2.512343018039977e+04 -1.768451640041186e+04 1.477756394744807e+05 -1.021358228573174e+04 -1.161020499758031e+05 6.425861902773150e+04 6.462450329899557e+05 -1.638982938577188e+06 -2.109062476582080e+06 2.281775468412996e+06 4.257678996800155e+05 1.004623655823118e+06 -8.396220880638172e+05
|
||||
9.341272875268173e+02 1.523630384000860e+02 -3.308191284114405e+02 -2.745533909538656e+03 1.093612069150671e+03 -9.263803756621519e-01 9.677852559069018e-01 1.985645486565863e+00 9.698276105046586e-01 2.352565497995323e+00 -4.649719127421410e-01 -2.015395710398236e+00 -9.608496226119479e+00 7.489945812622556e+00 -9.093611856005616e+00 -1.875396788524467e+01 2.252698855227218e+00 1.003217836810984e+01 1.935312261715944e+01 3.310844224727441e+00 6.505579353043269e+01 -5.054354839283399e+02 -2.402724429734602e+03 -5.781381255987149e+02 -1.947750709649783e+02 -1.721567792817546e+04 -3.570515181768234e+04 1.744893705690145e+04 -1.228487113034495e+03 1.111367889272611e+05 3.767183834465455e+05 7.095990316148212e+05 1.181644134129440e+06 -6.586946890358032e+05 -2.795476465151584e+05 -4.258568631088620e+05 -1.728310863412047e+05
|
||||
weight:Zn:1:
|
||||
-2.953614335455724e+00 -1.540740947683137e+00 -2.390376979910860e-02 -4.733071603103755e+00 2.638412534877502e+00 1.358896268600150e+00 -1.127482685265421e+01 -1.342791952592754e+01 -1.868196586479195e+00 -2.639018099129854e+00 -1.636923782004850e+01 1.404305129315243e+00 2.955805365131578e+00 -2.185249784455780e+00 -2.784840797769666e+00 1.384514171320113e+00 -1.795558952161663e+01 -1.357705098955455e+01 -1.860151078466323e-01 -2.370613289249908e+00
|
||||
bias:Zn:0:
|
||||
6.170970946932821e+01
|
||||
-4.150812873713187e+00
|
||||
9.853741603467787e+00
|
||||
2.721794032367539e+01
|
||||
2.687631075485057e+02
|
||||
1.408693614782542e+01
|
||||
3.724732180034960e+01
|
||||
4.120610552023929e+01
|
||||
6.646503480337852e+00
|
||||
-2.683074862384495e+02
|
||||
2.858636579192188e+01
|
||||
3.833833122430053e+01
|
||||
-6.116706610542293e+01
|
||||
3.959901837539699e+00
|
||||
-4.124081102018241e+01
|
||||
-4.430796692879193e+01
|
||||
2.830207223926218e+01
|
||||
3.880279320236085e+01
|
||||
6.690787521775901e+00
|
||||
5.173538980360735e+00
|
||||
bias:Zn:1:
|
||||
-3.035446092168328e+01
|
||||
activationfunctions:Zn:0:
|
||||
sigI
|
||||
activationfunctions:Zn:1:
|
||||
linear
|
||||
calibrationparameters:algorithm:
|
||||
LM_ch
|
||||
calibrationparameters:dumpdirectory:
|
||||
.
|
||||
calibrationparameters:doforces:
|
||||
0
|
||||
calibrationparameters:normalizeinput:
|
||||
1
|
||||
calibrationparameters:tolerance:
|
||||
1.0000000000e-07
|
||||
calibrationparameters:regularizer:
|
||||
1.0000000000e-04
|
||||
calibrationparameters:logfile:
|
||||
Zn_fitting1.log
|
||||
calibrationparameters:potentialoutputfile:
|
||||
Zn_1.nnal_output.nn
|
||||
calibrationparameters:potentialoutputfreq:
|
||||
100
|
||||
calibrationparameters:maxepochs:
|
||||
10000000
|
||||
calibrationparameters:dimsreserved:Zn:0:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Zn:1:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Zn:2:
|
||||
0
|
||||
calibrationparameters:validation:
|
||||
0.100000
|
||||
124
potentials/Zr.rann
Normal file
124
potentials/Zr.rann
Normal file
@ -0,0 +1,124 @@
|
||||
atomtypes:
|
||||
Zr
|
||||
mass:Zr:
|
||||
91.224000
|
||||
fingerprintsperelement:Zr:
|
||||
2
|
||||
fingerprints:Zr_Zr:
|
||||
radialscreened_0
|
||||
fingerprints:Zr_Zr_Zr:
|
||||
bondscreened_0
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:re:
|
||||
3.234381
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:alpha:
|
||||
4.450000 4.450000 4.450000 4.450000 4.450000
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:dr:
|
||||
4.765619
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:o:
|
||||
-1
|
||||
fingerprintconstants:Zr_Zr:radialscreened_0:n:
|
||||
3
|
||||
fingerprintconstants:Zr_Zr_Zr:bondscreened_0:re:
|
||||
3.234381
|
||||
fingerprintconstants:Zr_Zr_Zr:bondscreened_0:rc:
|
||||
8.000000
|
||||
fingerprintconstants:Zr_Zr_Zr:bondscreened_0:alphak:
|
||||
1.000000 2.000000 6.000000 9.000000
|
||||
fingerprintconstants:Zr_Zr_Zr:bondscreened_0:dr:
|
||||
4.765619
|
||||
fingerprintconstants:Zr_Zr_Zr:bondscreened_0:k:
|
||||
4
|
||||
fingerprintconstants:Zr_Zr_Zr:bondscreened_0:m:
|
||||
8
|
||||
screening:Zr_Zr_Zr:Cmax:
|
||||
0.900000
|
||||
screening:Zr_Zr_Zr:Cmin:
|
||||
0.490000
|
||||
networklayers:Zr:
|
||||
3
|
||||
layersize:Zr:0:
|
||||
37
|
||||
layersize:Zr:1:
|
||||
20
|
||||
layersize:Zr:2:
|
||||
1
|
||||
weight:Zr:0:
|
||||
7.381296522566744e+00 7.130158190840194e+00 4.200171884340379e+01 4.427190404667763e+01 -1.366855586452906e+01 8.821696154907847e-02 -2.518871936614479e+00 -3.072814109456260e-01 -6.332074236235906e+00 -7.916482408467866e-02 -2.595428388395566e+00 1.587936612704918e+00 -6.963607030326845e+00 -8.481911197418225e-01 1.246686339682635e+01 1.085607134603704e+00 8.140087560418554e+01 -1.080470966704628e+01 2.607676058587359e+01 -7.823196841829972e+00 -5.874243038785177e+00 -6.105955749933876e+02 -7.693654919669473e+02 -4.400614746958312e+02 -7.554494013420192e+02 4.800624986166874e+02 6.979997952915920e+02 -5.314040268701267e+02 5.368619586705707e+02 3.156976072918432e+03 -6.435519589744056e+03 -3.263679521448650e+03 9.382981141164784e+03 1.672189279890477e+04 -2.017347933852068e+03 -1.134054703828864e+04 -3.644374088529719e+03
|
||||
-7.343334482704901e+00 -1.641068084462888e+01 7.448941034741394e+01 7.587359086673480e+01 6.388751445416979e+01 -8.202464329288484e-02 -9.754636115736895e-01 -2.804865806130803e-01 6.344093861270931e+00 -5.751686551986382e-01 4.767101904913019e-01 -1.356527078630970e+00 -9.486404998481820e+00 9.094802133975990e-01 9.087984393925655e+00 -7.740317874926092e+00 -3.210734010043303e+01 4.144894475202913e+00 -6.536145387633145e+00 9.276129485335133e+00 5.446805529828485e+01 -7.242034068166550e+02 1.128209249476092e+02 -1.186574669501124e+03 8.851722647740458e+01 8.601662987738347e+02 -2.158956794874402e+02 2.229929118224090e+02 3.887806365412573e+02 5.998977467892071e+03 -6.263888300917686e+03 4.426174676002242e+03 -3.856796050510524e+03 8.517552259919396e+03 -4.891968629515542e+03 2.465964715657373e+03 -4.960383391302242e+03
|
||||
1.242933668004703e+01 3.534076315567761e+01 2.892206764764533e+01 -9.158620533153363e+01 -9.304465471150889e+00 3.597219932340947e-01 -1.965765303236593e-01 -6.038034819786912e-01 4.169258880920890e+00 -7.788832807290629e-01 -3.971920915817314e+00 -1.080922341488128e-01 -2.237569503326876e+00 -2.175385636753291e-01 5.551918816987198e+00 4.549334720744278e+00 -2.409429679621821e+01 5.911403983185100e+00 5.094059579971503e+00 7.174416021103966e+00 3.750621314836827e+01 -1.098579388811412e+03 4.104923684883875e+02 2.946257748491966e+03 9.800101505711735e+02 -1.993689482756887e+03 3.152070625214521e+02 -2.144988128022771e+03 -1.424363139282173e+03 -8.170397245720832e+02 -2.860300585635730e+02 2.276112912820758e+03 2.364347789865741e+03 3.768650601673110e+03 4.580252035526390e+02 -7.748957372067850e+02 -1.861695170737821e+03
|
||||
-6.277694758618647e+01 1.100646761374202e+02 1.292600039936085e+02 -2.521205829986573e+02 1.125299912224420e+02 -7.614290619269820e-02 -3.672792000573074e-01 4.227386826327034e-01 8.112901456397041e-02 -2.853166404886919e-01 1.053738071618254e+00 4.916810581429380e-02 -1.546278859912050e-01 2.758207253453695e-02 9.662960124336845e-01 1.690207712112010e+00 2.558423565380535e+00 -4.796097627224981e+00 -8.618810493536149e+00 2.335845454354129e-01 -2.104611134736317e+00 5.559104799755133e+02 7.243968985648039e+02 -5.602325024858994e+02 -4.212917725727958e+03 -1.335304959745415e+03 2.692494364107346e+03 5.102210457612818e+03 9.738600760491171e+02 -1.221933267231483e+04 2.034703995286087e+04 -1.786705189919247e+04 1.526681731311544e+04 3.331659172050699e+03 2.052074056308941e+03 -2.167059369795558e+04 -9.540058829221348e+02
|
||||
2.701146000196256e+00 -2.981174417591707e+01 1.073588510831900e+02 5.254946187803375e+01 -3.901514784711276e+01 -1.235984454426156e-01 8.894893392619696e-01 2.289283123441673e-01 -3.873715417459276e+00 -1.608140269517794e-01 4.954044593926455e+00 2.043631311776301e-01 2.358802292434077e+00 4.013568701860717e-01 -4.071479527020475e+01 -6.525583960070157e-01 -5.181177916359917e+00 -8.917421943346707e+00 -1.921960278026024e+01 -1.017036024898709e+01 1.621303931936334e+01 -7.849798887940015e+02 -1.152713040653699e+03 -3.587035731132012e+02 -7.438654410983773e+02 6.687606100049227e+02 6.763690377496048e+02 1.194109444141304e+02 2.691573945338395e+02 3.053517603714615e+02 -5.664534427666624e+03 -3.048603215591392e+03 9.203545449530582e+03 1.759915892752787e+04 -2.694942192510066e+03 -9.448137725809862e+03 -3.275473011597345e+03
|
||||
-1.113610892629528e+01 -5.352070716625105e+01 1.622198596023905e+02 -1.121530297588318e+02 3.298940291093732e+01 -5.938569861795934e-02 1.789885135491486e-01 3.192923908403887e-01 -5.863203003855301e-01 3.417318216113329e-03 -2.387044267807831e-02 -1.646461312808371e-01 4.023189796284228e-01 3.405442830143419e-02 -1.291845029175062e+00 -2.897829651895125e+00 4.097651210125941e+00 2.535870831025441e+00 1.605926650199906e+00 -1.319481747750912e+00 -5.094487244938955e+00 -5.580532917240298e+02 9.629857757595847e+02 7.829027004580353e+02 -2.044440856048167e+02 -2.039256198054595e+03 -2.761565574550300e+03 2.011091027784327e+03 3.636013777486120e+03 -4.941540584165978e+04 -8.698942047243450e+04 1.932214662264583e+04 2.348981597562570e+04 1.276093782663354e+04 9.745339044614766e+03 4.506933487665747e+02 -1.172776377038700e+02
|
||||
-3.133280493516302e-02 1.613829617649381e+01 2.606086728183494e+01 9.894789241412758e+00 -7.032936058911798e+01 -3.051477823783093e-02 7.665634632211482e+00 -2.851163710513550e-01 -7.382190741685160e+00 3.340812447859877e-01 -2.079239603301193e+00 4.610633647758736e-01 -9.225717014368872e-01 2.256748703310680e+00 -2.224289597011503e+01 -4.289837165230754e-01 -3.506530479870034e+01 -5.452040625805429e+00 -1.830619506402129e+00 4.323944585100644e+00 1.404310652241231e+01 -1.015069631142862e+03 2.497411423296064e+03 -2.936346829823708e+02 2.585158798846734e+03 -8.363128458209458e+02 1.142077779191439e+03 -7.788864617705302e+02 -2.082756085307323e+03 8.126829220618039e+03 -1.535039362543352e+04 3.306880486772492e+03 2.192625684812579e+03 2.004337842246266e+04 -7.325105493275832e+03 -7.317717859542367e+03 -8.238741527531189e+03
|
||||
5.178762015960374e+01 4.397985283536948e+01 1.451874516251761e+01 -1.007621316895964e+02 -1.755118188356003e+02 5.873682329428755e-01 -2.664586283290843e+00 1.902291756606684e+00 -8.634135766153344e-01 1.642095074632718e+00 3.433391740348147e+00 1.486375527784142e+00 2.271011825734604e+01 -1.908787522889777e+00 5.565270671219807e+01 -7.315584468961031e+00 -1.202014438732027e+01 -1.120928101651775e+01 -1.659252047811708e+02 8.685602926277943e+00 -3.709274047587231e+01 1.334529585301922e+03 -2.342179260454223e+03 -3.448013417930393e+03 2.215428924215240e+02 -3.726643773931769e+02 2.109127105876841e+03 2.121078750676438e+00 1.235858854803566e+03 -8.477864465043676e+03 4.680844543443491e+03 -7.994738609209978e+03 1.249972986929879e+04 1.445905988868188e+04 2.319585231212667e+02 -1.190363714475799e+04 -2.682638991028886e+03
|
||||
-1.325939901769810e+01 -5.039776936509699e+00 6.906716671654445e+01 1.842210220795870e+01 -1.673344191792709e+02 -8.793341733379941e-01 -4.464010770999057e+00 3.098049067138969e+00 1.010750276956096e+01 2.182290856152695e+00 -1.010054622828261e+01 -4.029047609555121e+00 6.232601113500972e+00 2.156888636353290e+00 3.177501020130934e+01 7.144480954593013e+00 -7.550509481003976e+01 -8.941368514046992e+00 1.041820896826468e+02 -1.359235155832685e+01 -9.348755638249870e+01 2.104409813994797e+03 -1.026048417650894e+03 -9.955679582541674e+02 -7.972344395854406e+02 -1.457652314333864e+03 4.792882547286521e+02 1.433742846088243e+03 -2.541007873696039e+02 -1.670515066428002e+03 -2.415107029850905e+03 2.792347492243997e+03 1.385247240294723e+03 2.989892961265303e+03 1.302007241430902e+03 -2.829973197828950e+03 2.773818852570511e+02
|
||||
2.068868727753571e+01 -1.976035481735939e+02 -1.798147133105336e+02 2.655690146746205e+02 -1.876974933088704e+02 -5.327957546670193e-01 5.544211322818130e+00 -5.290986149116881e-01 -3.327147969273904e+01 4.548635034748443e+00 5.925868280213026e+01 -5.227911158109348e+00 -4.008361316752591e+01 1.092161526557298e+01 -4.087727407939851e+01 -2.452536772970915e+01 2.419677473999974e+02 -1.237703002908215e+01 -4.956647617367765e+02 5.423800519251387e+01 3.637397492117086e+02 6.998551359311029e+00 3.272494384269504e+03 1.035575851458618e+03 2.653344583912416e+04 4.765808317502468e+03 -8.444579314257524e+03 1.472164566611349e+04 -2.238729957499929e+04 -6.612320389792499e+03 2.830128060860079e+04 -1.961922378962470e+04 -1.111286223880333e+03 -1.425411906736236e+04 -7.757368610184068e+03 -1.379960685504116e+04 -1.027112096230488e+04
|
||||
-2.365067863964305e+01 -2.058385987233662e+01 6.719231355332327e+01 1.664260207898833e+01 2.314010346016702e+00 -1.571074578826339e-01 -3.340674635312043e-01 -3.285477040438386e-02 -6.349012747087381e+00 -4.279980599545441e-01 3.444373720594022e+00 -5.591934342584590e-01 6.096534412933446e-01 -5.932817051532292e-01 -1.207352003086340e+00 -1.630313731175197e-01 -4.186217469581054e+00 -4.277667967938339e+00 -7.605151181781177e+00 3.701691555203355e+00 -2.939214854903926e+01 4.144090858650238e+02 -3.440115216775906e+02 -1.147538509821983e+02 -9.325483430475338e+02 4.329052064332990e+02 1.397123839890397e+03 -1.513325512976397e+03 4.436525632243687e+02 7.027359259277902e+03 -8.304700900932956e+03 -3.075330960837537e+03 6.950250980630349e+03 1.626555899463438e+04 -6.382847256421246e+02 -1.231133921598834e+04 -4.454490118851970e+03
|
||||
-2.490762247580751e+01 -7.704395690617876e+01 -3.759264757640926e+01 -2.387482074478985e+01 -2.368312473041670e+01 5.199004235526338e-02 -8.950743325162778e-01 2.163678439474779e-01 5.918470629976595e+00 8.043227211729510e-01 1.683098524725376e+01 1.462130945510479e+00 -2.726269390689826e+00 4.537409510583774e-02 -1.572840886156958e+01 -1.957916094029760e+00 5.590689759889049e+01 4.579852076133587e+00 7.061512986959033e+01 2.175677288018516e+00 -4.940202401953005e+01 1.014385171806143e+03 2.221858627713963e+03 1.335323688723463e+03 -1.351081267123477e+03 1.273373579927487e+03 -1.738382154653573e+03 -3.305203145875294e+01 -1.764050538292633e+03 -7.749364235272099e+03 1.788000867417741e+02 -8.065215134600997e+03 1.216703450226447e+04 1.549815573897577e+04 -1.649188524133760e+03 -1.163232130429769e+04 -2.316476098246495e+03
|
||||
2.595418400942068e+01 -5.025443662631862e+01 5.551235483002111e+00 -5.057282149937810e+01 6.885458866699666e+01 1.383428833801509e-01 9.029352996084028e-02 -8.782677075495333e-01 1.537879226611543e-02 2.513340680507049e-01 -2.223969757890600e+00 3.621186190852583e-01 1.459318437234252e+00 -9.078169286935350e-01 -2.464277459094684e+00 1.158954712453820e+00 2.287555815020272e+01 4.122016719581704e+00 -1.916046420753785e+01 -2.127011438543926e+00 1.252558790234667e+01 -1.199090251930070e+03 -3.115932133111034e+02 2.648539639457308e+03 2.028516493428186e+03 2.593465387430189e+03 -2.441924641224769e+03 -5.036948222837340e+03 -7.043011645780736e+02 -7.068717315129480e+02 -2.203215765508770e+03 -6.776803869888758e+03 8.388118092019462e+03 2.299264584439720e+04 -4.243447575259648e+03 -8.187319257213576e+03 -5.166367944086643e+03
|
||||
-1.485261475002464e+01 1.996384938135571e+01 -1.265000659499631e+01 -6.313060438128263e+01 3.068904645459310e+01 2.287893858172400e-01 -4.605744068252624e-01 -1.067608362823322e+00 2.574249568465039e+00 -8.117811486741096e-01 -3.383920984492935e+00 1.780615849275111e+00 1.739890236931991e+00 -2.040587991524515e+00 2.706015049812731e+00 1.176058435395413e+01 -1.278892176853245e+01 2.359144432605323e+00 1.488033576981515e+01 -1.362741245633645e+01 -9.128865777112892e+00 7.447031114655842e+02 4.021556534846347e+02 -2.047789643975846e+03 -3.311577459142598e+02 -1.872576522488972e+03 -1.786842016646160e+03 3.337494335711804e+03 1.306846039690949e+03 2.871083316295149e+03 -9.113746710100057e+03 -1.242976884641936e+02 7.953639928226145e+03 -3.727107602288750e+03 6.900051440406323e+03 -8.564913672930197e+03 5.309826518100263e+03
|
||||
4.383716646771092e+00 -7.171277888414558e+01 4.771328618552386e+01 5.935566558472448e+01 -4.037730934544003e+01 -9.988049845902591e-02 -1.734608370476428e-01 6.145564792733131e-01 5.715540197981080e-01 -3.957776905239759e-01 -1.047361949239829e+00 4.143944214024021e-01 1.317981704407956e+00 7.192145360372761e-01 1.093783168983153e+00 -5.808672273125883e+00 -7.860877109428078e+00 3.448178016136839e+00 1.402153523788541e+01 -2.854985456062495e+00 -1.263087431015409e+01 -2.911915984611637e+01 -2.775332904676435e+02 3.375716039569820e+02 9.464418372912785e+02 9.691550206834904e+02 -2.365228580730808e+02 -6.840683514579940e+02 -1.540159147717303e+02 -2.144685011450176e+04 8.191205448363766e+03 -1.574896690887435e+04 2.300987989641396e+04 8.487067886059498e+03 -3.627059105584906e+02 -2.146079170322270e+04 -5.778262992501805e+03
|
||||
6.332098777930179e+01 -4.235200147411553e+01 -5.508040254230945e+01 6.043534840323802e+01 -2.827936806398792e+01 1.292106725107093e-01 9.571923144695239e-01 -8.903008345736324e-01 -2.687119380409823e+00 -4.869185147685802e-01 3.656804455272601e-01 1.638847253916739e+00 1.322220213316077e+00 -7.297492042376632e-01 -7.299494598070715e+00 4.865372318142658e+00 2.828468437095840e+01 1.145939557427762e+01 -1.991975983092215e+01 -1.723395123154611e+01 4.902586260324359e-01 3.144949483942754e+02 8.356740419183171e+02 -1.163365756456409e+02 -1.204676593864002e+03 -2.182380007791583e+03 1.614838987778708e+03 2.225654170802206e+03 8.897487602147228e+02 1.329027287572518e+04 2.401315646381050e+04 -6.140821239820143e+03 1.047645228402168e+03 -6.846784763591834e+03 -4.864233343948024e+03 -1.206543639448176e+04 -4.531173102740860e+03
|
||||
-2.615001423051205e+02 1.544844934715346e+02 2.257341863862515e+02 2.038726287807665e+02 -2.924744950663223e+02 -5.530479035946733e-01 -1.976003536395126e+00 3.730687778137769e+00 2.639620318254015e+00 -1.496270970625150e+00 4.060167182199057e+00 5.618344968143281e-01 -3.471338368559449e-02 4.301061914731707e+00 1.476888543283464e+01 -2.049224928169378e+01 -5.614627145417134e+01 -1.541943081243772e+00 5.189202522085132e+01 -1.438977966650609e+01 -6.316288400564984e+01 2.662118182890792e+03 -2.939368939554080e+02 -5.267309507964911e+03 -4.065878095123616e+00 -2.249265635407812e+03 3.523087445570794e+03 9.651669746730648e+03 3.961454066147802e+03 2.804695221212129e+04 1.566211444954258e+04 -8.797454350306340e+03 -1.516132001797956e+04 -9.505786359207541e+03 -1.544403968564882e+04 -9.609968019360755e+03 -1.159704948244616e+04
|
||||
1.802289034544688e+02 1.026706551753254e+02 -3.769648331401010e+02 -4.606326435516488e+02 4.793762473771329e+02 6.756914458795386e-01 2.369294959660302e+00 -4.190698470274679e+00 -1.080387100731011e+00 3.016079811933339e-01 -1.375753522025393e+01 -3.037742717795375e-01 5.574355163484181e+00 -5.244802148325808e+00 -1.673837741072239e+01 2.402003153477136e+01 5.614838865538595e+01 1.621099616557411e+01 -4.361205268273413e+00 1.134029351405468e+01 4.009042522799712e+01 -3.221035096462857e+03 9.434696207641604e+02 8.198780479281244e+03 -6.489926380348305e+03 -5.495065723887946e+03 -3.183495420161816e+03 -4.207452756572930e+03 -3.897650550391648e+02 -1.077317443319540e+04 1.624451203976944e+04 2.139444868226495e+01 1.068352192443755e+04 4.940822516539784e+03 7.721628613847120e+03 1.634675592282272e+03 5.171721637096403e+03
|
||||
-2.609034303199128e+01 -7.769357448208970e+01 1.748372476587158e+01 -5.251208787933724e+00 1.335514909211972e+01 7.439461426478934e-02 3.216538618523616e-02 -1.833520185399168e-01 4.544725587614833e-01 -3.217239428924067e-01 7.547026892535951e-01 -4.301842102108369e-01 -2.345122573914390e+00 -2.707841487419461e-01 -8.601226024312181e-01 2.460323122887637e+00 -4.889375831247838e+00 -1.072540578125127e+00 -7.193669364801267e+00 7.543329505286398e+00 2.084800705131283e+01 3.939817334867372e+02 -3.188117128084888e+02 3.692893199412986e+02 5.536133041051113e+02 6.329096050602059e+02 9.955913661543278e+02 -4.271092264935067e+02 -1.939019665544233e+03 -6.680967130805675e+00 5.878462099019339e+02 -2.319037706051229e+04 1.677785520800550e+04 1.777317572909228e+04 -8.619334023897873e+02 -9.451431666341537e+03 -2.937950917771465e+03
|
||||
2.119570983436646e+02 -1.184716155223651e+02 -2.834752449280204e+02 -1.005889506534004e+02 2.221131188176547e+02 -2.973181268314488e-01 -2.813670882682948e+00 3.460887706608498e+00 1.616042765074561e+01 -3.041616707906931e+00 -1.732477618449203e+01 -5.154493693613070e+00 -6.782940654041445e-01 4.233025878069218e+00 2.603989167693364e+01 -3.157302052072417e+01 -1.200863254888831e+02 1.724104739752880e+01 1.328579978593651e+02 6.368244603125043e+01 8.270218953737908e+00 -2.803010591348636e+02 -6.821415341701146e+03 -9.471105574290392e+03 1.554740825565412e+03 7.708517357068736e+02 2.168875045061543e+03 1.591013509849872e+04 2.273432111834214e+03 3.764678758792744e+03 8.984427737629128e+03 -1.213717745552139e+02 4.768242755886266e+03 1.533977273809600e+03 4.883012280694039e+02 -4.513229537068590e+03 -9.447075781888223e+02
|
||||
weight:Zr:1:
|
||||
-8.175576164099528e+00 -1.341685099580933e+01 -3.939640265969577e+00 -6.580142417630491e+00 -7.856389508033577e+00 -3.357365936835799e+01 -9.049031279259449e+00 -5.235065045549836e+00 -6.779278996155368e+00 -2.650607951877734e-01 -9.579549467991685e+00 -6.942695320135554e+00 -9.562672513440180e+00 -6.573200331851058e+00 -8.948479539452956e+00 -1.100616682951540e+01 7.180780753238659e+00 -2.941167595223658e+00 -8.085451426199342e+00 -1.810921789477701e+00
|
||||
bias:Zr:0:
|
||||
1.220978247929677e+01
|
||||
1.539814934489904e+00
|
||||
1.315141624159684e+00
|
||||
-3.216075539810813e+00
|
||||
1.597216908911821e+01
|
||||
-1.509449655353172e+00
|
||||
1.306779431995830e+01
|
||||
6.881643510699838e+00
|
||||
1.795274861296060e+01
|
||||
2.635443682698823e+01
|
||||
2.445366910380627e+01
|
||||
2.037740967539630e+01
|
||||
1.545006534703347e+01
|
||||
6.110145520503632e+00
|
||||
4.386713239573275e+00
|
||||
1.319076535780910e-01
|
||||
-1.823581113535763e+00
|
||||
5.165578713447484e+00
|
||||
1.995013562637883e+01
|
||||
2.709392285019076e+00
|
||||
bias:Zr:1:
|
||||
-1.726374265091256e+01
|
||||
activationfunctions:Zr:0:
|
||||
sigI
|
||||
activationfunctions:Zr:1:
|
||||
linear
|
||||
calibrationparameters:algorithm:
|
||||
LM_ch
|
||||
calibrationparameters:dumpdirectory:
|
||||
.
|
||||
calibrationparameters:doforces:
|
||||
0
|
||||
calibrationparameters:normalizeinput:
|
||||
1
|
||||
calibrationparameters:tolerance:
|
||||
1.0000000000e-07
|
||||
calibrationparameters:regularizer:
|
||||
1.0000000000e-04
|
||||
calibrationparameters:logfile:
|
||||
Zr_fitting1.log
|
||||
calibrationparameters:potentialoutputfile:
|
||||
Zr_1.nnal_output.nn
|
||||
calibrationparameters:potentialoutputfreq:
|
||||
100
|
||||
calibrationparameters:maxepochs:
|
||||
10000000
|
||||
calibrationparameters:dimsreserved:Zr:0:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Zr:1:
|
||||
0
|
||||
calibrationparameters:dimsreserved:Zr:2:
|
||||
0
|
||||
calibrationparameters:validation:
|
||||
0.100000
|
||||
5
src/.gitignore
vendored
5
src/.gitignore
vendored
@ -87,6 +87,11 @@
|
||||
/fix_pafi*.cpp
|
||||
/fix_pafi*.h
|
||||
|
||||
/pair_rann.cpp
|
||||
/pair_rann.h
|
||||
/rann_*.cpp
|
||||
/rann_*.h
|
||||
|
||||
/compute_test_nbl.cpp
|
||||
/compute_test_nbl.h
|
||||
/pair_multi_lucy.cpp
|
||||
|
||||
@ -55,9 +55,9 @@ PACKUSER = user-adios user-atc user-awpmd user-brownian user-bocs user-cgdna \
|
||||
user-cgsdk user-colvars user-diffraction user-dpd user-drude \
|
||||
user-eff user-fep user-h5md user-hdnnp user-intel user-lb user-manifold \
|
||||
user-mdi user-meamc user-mesodpd user-mesont user-mgpt user-misc \
|
||||
user-mofff \user-molfile user-netcdf user-omp user-phonon \
|
||||
user-mofff user-molfile user-netcdf user-omp user-phonon \
|
||||
user-pace user-plumed user-ptm user-qmmm user-qtb user-quip \
|
||||
user-reaction user-reaxc user-scafacos user-smd user-smtbq \
|
||||
user-rann user-reaction user-reaxc user-scafacos user-smd user-smtbq \
|
||||
user-sdpd user-sph user-tally user-uef user-vtk user-yaff
|
||||
|
||||
PACKLIB = compress gpu kim kokkos latte message mpiio mscg poems python voronoi \
|
||||
|
||||
443
src/Makefile.txt
Normal file
443
src/Makefile.txt
Normal file
@ -0,0 +1,443 @@
|
||||
# LAMMPS multiple-machine -*- Makefile -*-
|
||||
|
||||
SHELL = /bin/bash
|
||||
PYTHON = python
|
||||
|
||||
#.IGNORE:
|
||||
|
||||
# Definitions
|
||||
|
||||
ROOT = lmp
|
||||
EXE = lmp_$@
|
||||
ARLIB = liblammps_$@.a
|
||||
SHLIB = liblammps_$@.so
|
||||
ARLINK = liblammps.a
|
||||
SHLINK = liblammps.so
|
||||
TMPNAME= tmp_$@_name
|
||||
LMPLINK= -L. -llammps_$@
|
||||
|
||||
OBJDIR = Obj_$@
|
||||
OBJSHDIR = Obj_shared_$@
|
||||
|
||||
SRC = $(wildcard *.cpp)
|
||||
INC = $(filter-out lmpinstalledpkgs.h lmpgitversion.h,$(wildcard *.h))
|
||||
OBJ = $(SRC:.cpp=.o)
|
||||
|
||||
SRCLIB = $(filter-out main.cpp,$(SRC))
|
||||
OBJLIB = $(filter-out main.o,$(OBJ))
|
||||
|
||||
# Command-line options for mode: static (default), shared, or print
|
||||
|
||||
mode = static
|
||||
objdir = $(OBJDIR)
|
||||
|
||||
ifeq ($(mode),shared)
|
||||
objdir = $(OBJSHDIR)
|
||||
endif
|
||||
|
||||
# Package variables
|
||||
|
||||
# PACKAGE = standard packages
|
||||
# PACKUSER = user packagse
|
||||
# PACKLIB = all packages that require an additional lib
|
||||
# should be PACKSYS + PACKINT + PACKEXT
|
||||
# PACKSYS = subset that reqiure a common system library
|
||||
# include MPIIO and LB b/c require full MPI, not just STUBS
|
||||
# PACKINT = subset that require an internal (provided) library
|
||||
# PACKEXT = subset that require an external (downloaded) library
|
||||
|
||||
PACKAGE = asphere body class2 colloid compress coreshell dipole gpu \
|
||||
granular kim kokkos kspace latte manybody mc message misc \
|
||||
mliap molecule mpiio mscg opt peri plugin 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 \
|
||||
user-diffraction user-dpd user-drude user-eff user-fep user-h5md \
|
||||
user-intel user-lb user-manifold user-meamc user-mesodpd user-mesont \
|
||||
user-mgpt user-misc user-mofff user-molfile \
|
||||
user-netcdf user-omp user-phonon user-pace user-plumed user-ptm user-qmmm \
|
||||
user-qtb user-quip user-rann user-reaction user-reaxc user-scafacos user-smd user-smtbq \
|
||||
user-sdpd user-sph user-tally user-uef user-vtk user-yaff
|
||||
|
||||
PACKLIB = compress gpu kim kokkos latte message mpiio mscg poems \
|
||||
python voronoi \
|
||||
user-adios user-atc user-awpmd user-colvars user-h5md user-lb user-molfile \
|
||||
user-netcdf user-plumed user-qmmm user-quip user-scafacos \
|
||||
user-smd user-vtk user-mesont user-pace
|
||||
|
||||
PACKSYS = compress mpiio python user-lb
|
||||
|
||||
PACKINT = gpu kokkos message poems user-atc user-awpmd user-colvars user-mesont
|
||||
|
||||
PACKEXT = kim latte mscg voronoi \
|
||||
user-adios user-h5md user-molfile user-netcdf user-pace user-plumed \
|
||||
user-qmmm user-quip user-smd user-vtk
|
||||
|
||||
PACKALL = $(PACKAGE) $(PACKUSER)
|
||||
|
||||
# Helper GNU make function for conversion to upper case without using shell commands
|
||||
uppercase_TABLE:=a,A b,B c,C d,D e,E f,F g,G h,H i,I j,J k,K l,L m,M n,N o,O p,P q,Q r,R s,S t,T u,U v,V w,W x,X y,Y z,Z
|
||||
uppercase_internal=$(if $1,$$(subst $(firstword $1),$(call uppercase_internal,$(wordlist 2,$(words $1),$1),$2)),$2)
|
||||
uppercase=$(eval uppercase_RESULT:=$(call uppercase_internal,$(uppercase_TABLE),$1))$(uppercase_RESULT)
|
||||
|
||||
PACKAGEUC = $(call uppercase,$(PACKAGE))
|
||||
PACKUSERUC = $(call uppercase,$(PACKUSER))
|
||||
|
||||
YESDIR = $(call uppercase,$(@:yes-%=%))
|
||||
NODIR = $(call uppercase,$(@:no-%=%))
|
||||
LIBDIR = $(@:lib-%=%)
|
||||
LIBUSERDIR = $(@:lib-user-%=%)
|
||||
|
||||
# List of all targets
|
||||
|
||||
help:
|
||||
@echo ''
|
||||
@echo 'make clean-all delete all object files'
|
||||
@echo 'make clean-machine delete object files for one machine'
|
||||
@echo 'make mpi-stubs build dummy MPI library in STUBS'
|
||||
@echo 'make install-python install LAMMPS wrapper in Python'
|
||||
@echo 'make tar create lmp_src.tar.gz for src dir and packages'
|
||||
@echo ''
|
||||
@echo 'make package list available packages and their dependencies'
|
||||
@echo 'make package-status (ps) status of all packages'
|
||||
@echo 'make package-installed (pi) list of installed packages'
|
||||
@echo 'make yes-package install a single pgk in src dir'
|
||||
@echo 'make no-package remove a single pkg from src dir'
|
||||
@echo 'make yes-all install all pgks in src dir'
|
||||
@echo 'make no-all remove all pkgs from src dir'
|
||||
@echo 'make yes-standard (yes-std) install all standard pkgs'
|
||||
@echo 'make no-standard (no-std) remove all standard pkgs'
|
||||
@echo 'make yes-user install all user pkgs'
|
||||
@echo 'make no-user remove all user pkgs'
|
||||
@echo 'make yes-lib install all pkgs with libs (included or ext)'
|
||||
@echo 'make no-lib remove all pkgs with libs (included or ext)'
|
||||
@echo 'make yes-ext install all pkgs with external libs'
|
||||
@echo 'make no-ext remove all pkgs with external libs'
|
||||
@echo ''
|
||||
@echo 'make package-update (pu) replace src files with updated package files'
|
||||
@echo 'make package-overwrite replace package files with src files'
|
||||
@echo 'make package-diff (pd) diff src files against package files'
|
||||
@echo ''
|
||||
@echo 'make lib-package help for download/build/install a package library'
|
||||
@echo 'make lib-package args="..." download/build/install a package library'
|
||||
@echo 'make purge purge obsolete copies of source files'
|
||||
@echo ''
|
||||
@echo 'make machine build LAMMPS for machine with static library'
|
||||
@echo 'make mode=static machine same as above'
|
||||
@echo 'make mode=shared machine build LAMMPS for machine with shared library'
|
||||
@echo 'make mode=print machine print compiler/linker flags'
|
||||
@echo ''
|
||||
@echo 'machine is one of these from src/MAKE:'
|
||||
@echo ''
|
||||
@files="`ls MAKE/Makefile.*`"; \
|
||||
for file in $$files; do head -1 $$file; done
|
||||
@echo ''
|
||||
@echo '... or one of these from src/MAKE/OPTIONS:'
|
||||
@echo ''
|
||||
@files="`ls MAKE/OPTIONS/Makefile.*`"; \
|
||||
for file in $$files; do head -1 $$file; done
|
||||
@echo ''
|
||||
@echo '... or one of these from src/MAKE/MACHINES:'
|
||||
@echo ''
|
||||
@files="`ls MAKE/MACHINES/Makefile.*`"; \
|
||||
for file in $$files; do head -1 $$file; done
|
||||
@echo ''
|
||||
@echo '... or one of these from src/MAKE/MINE:'
|
||||
@echo ''
|
||||
@files="`ls MAKE/MINE/Makefile.* 2>/dev/null`"; \
|
||||
for file in $$files; do head -1 $$file; done
|
||||
@echo ''
|
||||
|
||||
|
||||
lmpinstalledpkgs.h: $(SRC) $(INC)
|
||||
@echo '#ifndef LMP_INSTALLED_PKGS_H' > ${TMPNAME}.lmpinstalled
|
||||
@echo '#define LMP_INSTALLED_PKGS_H' >> ${TMPNAME}.lmpinstalled
|
||||
@echo 'const char * LAMMPS_NS::LAMMPS::installed_packages[] = {' >> ${TMPNAME}.lmpinstalled
|
||||
@for p in $(PACKAGEUC) $(PACKUSERUC); do info=$$($(SHELL) Package.sh $$p installed); \
|
||||
[ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package \(.*\)"/"\1",/' >> ${TMPNAME}.lmpinstalled || :; done
|
||||
@echo ' NULL };' >> ${TMPNAME}.lmpinstalled
|
||||
@echo '#endif' >> ${TMPNAME}.lmpinstalled
|
||||
@if [ -f lmpinstalledpkgs.h ]; \
|
||||
then test "`diff --brief ${TMPNAME}.lmpinstalled lmpinstalledpkgs.h`" != "" && \
|
||||
mv ${TMPNAME}.lmpinstalled lmpinstalledpkgs.h || rm ${TMPNAME}.lmpinstalled ; \
|
||||
else mv ${TMPNAME}.lmpinstalled lmpinstalledpkgs.h ; fi
|
||||
|
||||
gitversion:
|
||||
@echo 'Gathering git version information'
|
||||
@echo '#ifndef LMP_GIT_VERSION_H' > ${TMPNAME}.lmpgitversion
|
||||
@echo '#define LMP_GIT_VERSION_H' >> ${TMPNAME}.lmpgitversion
|
||||
@if (type git && test -e ../.git ) >> /dev/null 2>> /dev/null ; then \
|
||||
git='true'; \
|
||||
commit=$$(git rev-parse HEAD); \
|
||||
branch=$$(git rev-parse --abbrev-ref HEAD); \
|
||||
describe=$$(git describe --dirty=-modified); \
|
||||
else \
|
||||
git='false' ; \
|
||||
commit='(unknown)' ; \
|
||||
branch='(unknown)' ; \
|
||||
describe='(unknown)' ; \
|
||||
fi ; \
|
||||
echo "const bool LAMMPS_NS::LAMMPS::has_git_info = $${git};" >> ${TMPNAME}.lmpgitversion ; \
|
||||
echo "const char LAMMPS_NS::LAMMPS::git_commit[] = \"$${commit}\";" >> ${TMPNAME}.lmpgitversion ; \
|
||||
echo "const char LAMMPS_NS::LAMMPS::git_branch[] = \"$${branch}\";" >> ${TMPNAME}.lmpgitversion ; \
|
||||
echo "const char LAMMPS_NS::LAMMPS::git_descriptor[] = \"$${describe}\";" >> ${TMPNAME}.lmpgitversion
|
||||
@echo '#endif' >> ${TMPNAME}.lmpgitversion
|
||||
@if [ -f lmpgitversion.h ]; \
|
||||
then test "`diff --brief ${TMPNAME}.lmpgitversion lmpgitversion.h`" != "" && \
|
||||
mv ${TMPNAME}.lmpgitversion lmpgitversion.h || rm ${TMPNAME}.lmpgitversion ; \
|
||||
else mv ${TMPNAME}.lmpgitversion lmpgitversion.h ; fi
|
||||
|
||||
# Build LAMMPS in one of 2 modes
|
||||
# static = static compile in Obj_machine (default)
|
||||
# shared = shared compile in Obj_shared_machine
|
||||
|
||||
.DEFAULT:
|
||||
@if [ $@ = "serial" ]; \
|
||||
then cd STUBS; $(MAKE); cd ..; fi
|
||||
@test -f MAKE/Makefile.$@ -o -f MAKE/OPTIONS/Makefile.$@ -o \
|
||||
-f MAKE/MACHINES/Makefile.$@ -o -f MAKE/MINE/Makefile.$@
|
||||
@if [ ! -d $(objdir) ]; then mkdir $(objdir); fi
|
||||
@echo 'Gathering installed package information (may take a little while)'
|
||||
@$(SHELL) Make.sh style
|
||||
@$(SHELL) Make.sh packages
|
||||
@$(MAKE) $(MFLAGS) lmpinstalledpkgs.h gitversion
|
||||
@echo 'Compiling LAMMPS for machine $@'
|
||||
@if [ -f MAKE/MACHINES/Makefile.$@ ]; \
|
||||
then cp MAKE/MACHINES/Makefile.$@ $(objdir)/Makefile; fi
|
||||
@if [ -f MAKE/OPTIONS/Makefile.$@ ]; \
|
||||
then cp MAKE/OPTIONS/Makefile.$@ $(objdir)/Makefile; fi
|
||||
@if [ -f MAKE/Makefile.$@ ]; \
|
||||
then cp MAKE/Makefile.$@ $(objdir)/Makefile; fi
|
||||
@if [ -f MAKE/MINE/Makefile.$@ ]; \
|
||||
then cp MAKE/MINE/Makefile.$@ $(objdir)/Makefile; fi
|
||||
@if [ ! -e Makefile.package ]; \
|
||||
then cp Makefile.package.empty Makefile.package; fi
|
||||
@if [ ! -e Makefile.package.settings ]; \
|
||||
then cp Makefile.package.settings.empty Makefile.package.settings; fi
|
||||
@cp Makefile.package Makefile.package.settings $(objdir)
|
||||
@cd $(objdir); rm -f .depend; \
|
||||
$(MAKE) $(MFLAGS) "SRC = $(SRC)" "INC = $(INC)" depend || :
|
||||
@rm -f $(ARLINK) $(SHLINK) $(EXE)
|
||||
ifeq ($(mode),static)
|
||||
@cd $(objdir); \
|
||||
$(MAKE) $(MFLAGS) "OBJ = $(OBJLIB)" "INC = $(INC)" "SHFLAGS =" \
|
||||
"LMPLIB = $(ARLIB)" "ARLIB = $(ARLIB)" "SHLIB = $(SHLIB)" \
|
||||
"LMPLINK = $(LMPLINK)" "EXE = ../$(EXE)" ../$(EXE)
|
||||
@ln -s $(ARLIB) $(ARLINK)
|
||||
endif
|
||||
ifeq ($(mode),shared)
|
||||
@cd $(objdir); \
|
||||
$(MAKE) $(MFLAGS) "OBJ = $(OBJLIB)" "INC = $(INC)" \
|
||||
"LMPLIB = $(SHLIB)" "ARLIB = $(ARLIB)" "SHLIB = $(SHLIB)" \
|
||||
"LMPLINK = $(LMPLINK)" "EXE = ../$(EXE)" ../$(EXE)
|
||||
@ln -s $(SHLIB) $(SHLINK)
|
||||
endif
|
||||
# backward compatibility
|
||||
ifeq ($(mode),exe)
|
||||
$(MAKE) $(MFLAGS) mode=static $@
|
||||
endif
|
||||
ifeq ($(mode),lib)
|
||||
$(MAKE) $(MFLAGS) mode=static $@
|
||||
endif
|
||||
ifeq ($(mode),shexe)
|
||||
$(MAKE) $(MFLAGS) mode=shared $@
|
||||
endif
|
||||
ifeq ($(mode),shlib)
|
||||
$(MAKE) $(MFLAGS) mode=shared $@
|
||||
endif
|
||||
|
||||
ifeq ($(mode),print)
|
||||
@cd $(objdir); \
|
||||
$(MAKE) $(MFLAGS) "OBJ = $(OBJLIB)" "INC = $(INC)" \
|
||||
"EXE = ../$(ARLIB)" -f ../Makefile.print
|
||||
endif
|
||||
|
||||
# Remove machine-specific object files
|
||||
|
||||
clean:
|
||||
@echo 'make clean-all delete all object files'
|
||||
@echo 'make clean-machine delete object files for one machine'
|
||||
|
||||
clean-all:
|
||||
rm -rf Obj_*
|
||||
|
||||
clean-%:
|
||||
@if [ $@ = "clean-serial" ]; \
|
||||
then cd STUBS; $(MAKE) clean; cd ..; fi
|
||||
rm -rf Obj_$(@:clean-%=%) Obj_shared_$(@:clean-%=%)
|
||||
|
||||
# Make MPI STUBS library
|
||||
|
||||
mpi-stubs:
|
||||
@cd STUBS; $(MAKE) clean; $(MAKE)
|
||||
|
||||
# install LAMMPS shared lib and Python wrapper for Python usage
|
||||
# include python package settings to automatically adapt name of
|
||||
# the python interpreter. must purge build folder to not install
|
||||
# unwanted outdated files.
|
||||
|
||||
sinclude ../lib/python/Makefile.lammps
|
||||
install-python:
|
||||
@rm -rf ../python/build
|
||||
@$(PYTHON) ../python/install.py -v ../src/version.h \
|
||||
-p ../python/lammps -l ../src/liblammps.so
|
||||
|
||||
# Create a tarball of src dir and packages
|
||||
|
||||
tar:
|
||||
@cd STUBS; $(MAKE) clean
|
||||
@cd ..; tar cvzf src/$(ROOT)_src.tar.gz \
|
||||
src/Make* src/Package.sh src/Depend.sh src/Install.sh src/Fetch.sh \
|
||||
src/MAKE src/DEPEND src/*.cpp src/*.h src/STUBS \
|
||||
$(patsubst %,src/%,$(PACKAGEUC)) $(patsubst %,src/%,$(PACKUSERUC)) \
|
||||
--exclude=*/.svn
|
||||
@cd STUBS; $(MAKE)
|
||||
@echo "Created $(ROOT)_src.tar.gz"
|
||||
|
||||
# Package management
|
||||
|
||||
package:
|
||||
@echo 'Standard packages:' $(PACKAGE)
|
||||
@echo ''
|
||||
@echo 'User-contributed packages:' $(PACKUSER)
|
||||
@echo ''
|
||||
@echo 'Packages that need system libraries:' $(PACKSYS)
|
||||
@echo ''
|
||||
@echo 'Packages that need provided libraries:' $(PACKINT)
|
||||
@echo ''
|
||||
@echo 'Packages that need external libraries:' $(PACKEXT)
|
||||
@echo ''
|
||||
@echo 'make package list available packages'
|
||||
@echo 'make package list available packages'
|
||||
@echo 'make package-status (ps) status of all packages'
|
||||
@echo 'make package-installed (pi) list of installed packages'
|
||||
@echo 'make yes-package install a single pgk in src dir'
|
||||
@echo 'make no-package remove a single pkg from src dir'
|
||||
@echo 'make yes-all install all pgks in src dir'
|
||||
@echo 'make no-all remove all pkgs from src dir'
|
||||
@echo 'make yes-standard (yes-std) install all standard pkgs'
|
||||
@echo 'make no-standard (no-std) remove all standard pkgs'
|
||||
@echo 'make yes-user install all user pkgs'
|
||||
@echo 'make no-user remove all user pkgs'
|
||||
@echo 'make yes-lib install all pkgs with libs (included or ext)'
|
||||
@echo 'make no-lib remove all pkgs with libs (included or ext)'
|
||||
@echo 'make yes-ext install all pkgs with external libs'
|
||||
@echo 'make no-ext remove all pkgs with external libs'
|
||||
@echo ''
|
||||
@echo 'make package-update (pu) replace src files with package files'
|
||||
@echo 'make package-overwrite replace package files with src files'
|
||||
@echo 'make package-diff (pd) diff src files against package file'
|
||||
@echo ''
|
||||
@echo 'make lib-package build and/or download a package library'
|
||||
|
||||
yes-all:
|
||||
@for p in $(PACKALL); do $(MAKE) yes-$$p; done
|
||||
|
||||
no-all:
|
||||
@for p in $(PACKALL); do $(MAKE) no-$$p; done
|
||||
|
||||
yes-standard yes-std:
|
||||
@for p in $(PACKAGE); do $(MAKE) yes-$$p; done
|
||||
|
||||
no-standard no-std:
|
||||
@for p in $(PACKAGE); do $(MAKE) no-$$p; done
|
||||
|
||||
yes-user:
|
||||
@for p in $(PACKUSER); do $(MAKE) yes-$$p; done
|
||||
|
||||
no-user:
|
||||
@for p in $(PACKUSER); do $(MAKE) no-$$p; done
|
||||
|
||||
yes-lib:
|
||||
@for p in $(PACKLIB); do $(MAKE) yes-$$p; done
|
||||
|
||||
no-lib:
|
||||
@for p in $(PACKLIB); do $(MAKE) no-$$p; done
|
||||
|
||||
yes-ext:
|
||||
@for p in $(PACKEXT); do $(MAKE) yes-$$p; done
|
||||
|
||||
no-ext:
|
||||
@for p in $(PACKEXT); do $(MAKE) no-$$p; done
|
||||
|
||||
yes-%:
|
||||
@if [ ! -e Makefile.package ]; \
|
||||
then cp Makefile.package.empty Makefile.package; fi
|
||||
@if [ ! -e Makefile.package.settings ]; \
|
||||
then cp Makefile.package.settings.empty Makefile.package.settings; fi
|
||||
@if [ ! -e $(YESDIR) ]; then \
|
||||
echo "Package $(YESDIR) does not exist"; exit 1; \
|
||||
elif [ -e $(YESDIR)/Install.sh ]; then \
|
||||
echo "Installing package $(@:yes-%=%)"; \
|
||||
cd $(YESDIR); $(SHELL) Install.sh 1; cd ..; \
|
||||
$(SHELL) Depend.sh $(YESDIR) 1; \
|
||||
else \
|
||||
echo "Installing package $(@:yes-%=%)"; \
|
||||
cd $(YESDIR); $(SHELL) ../Install.sh 1; cd ..; \
|
||||
$(SHELL) Depend.sh $(YESDIR) 1; \
|
||||
fi;
|
||||
@$(SHELL) Fetch.sh $(YESDIR)
|
||||
|
||||
no-%:
|
||||
@if [ ! -e $(NODIR) ]; then \
|
||||
echo "Package $(NODIR) does not exist"; exit 1; \
|
||||
elif [ -e $(NODIR)/Install.sh ]; then \
|
||||
echo "Uninstalling package $(@:no-%=%)"; \
|
||||
cd $(NODIR); $(SHELL) Install.sh 0; cd ..; \
|
||||
$(SHELL) Depend.sh $(NODIR) 0; \
|
||||
else \
|
||||
echo "Uninstalling package $(@:no-%=%)"; \
|
||||
cd $(NODIR); $(SHELL) ../Install.sh 0; cd ..; \
|
||||
$(SHELL) Depend.sh $(NODIR) 0; \
|
||||
fi;
|
||||
|
||||
# download/build/install a package library
|
||||
# update the timestamp on main.cpp to trigger a relink with "make machine"
|
||||
|
||||
lib-%:
|
||||
@if [ -e ../lib/$(LIBDIR)/Install.py ]; then \
|
||||
echo "Installing lib $(@:lib-%=%)"; \
|
||||
( cd ../lib/$(LIBDIR); $(PYTHON) Install.py $(args) ); \
|
||||
elif [ -e ../lib/$(LIBUSERDIR)/Install.py ]; then \
|
||||
echo "Installing lib $(@:lib-user-%=%)"; \
|
||||
( cd ../lib/$(LIBUSERDIR); $(PYTHON) Install.py $(args) ); \
|
||||
else \
|
||||
echo "Install script for lib $(@:lib-%=%) does not exist"; \
|
||||
fi; touch main.cpp
|
||||
|
||||
# status = list src files that differ from package files
|
||||
# installed = list of installed packages
|
||||
# update = replace src files with newer package files
|
||||
# overwrite = overwrite package files with newer src files
|
||||
# diff = show differences between src and package files
|
||||
# purge = delete obsolete and auto-generated package files
|
||||
|
||||
package-status ps:
|
||||
@for p in $(PACKAGEUC); do $(SHELL) Package.sh $$p status; done
|
||||
@echo ''
|
||||
@for p in $(PACKUSERUC); do $(SHELL) Package.sh $$p status; done
|
||||
|
||||
package-installed pi:
|
||||
@for p in $(PACKAGEUC); do $(SHELL) Package.sh $$p installed; done
|
||||
@for p in $(PACKUSERUC); do $(SHELL) Package.sh $$p installed; done
|
||||
|
||||
package-update pu: purge
|
||||
@for p in $(PACKAGEUC); do $(SHELL) Package.sh $$p update; done
|
||||
@echo ''
|
||||
@for p in $(PACKUSERUC); do $(SHELL) Package.sh $$p update; done
|
||||
|
||||
package-overwrite: purge
|
||||
@for p in $(PACKAGEUC); do $(SHELL) Package.sh $$p overwrite; done
|
||||
@echo ''
|
||||
@for p in $(PACKUSERUC); do $(SHELL) Package.sh $$p overwrite; done
|
||||
|
||||
package-diff pd:
|
||||
@for p in $(PACKAGEUC); do $(SHELL) Package.sh $$p diff; done
|
||||
@echo ''
|
||||
@for p in $(PACKUSERUC); do $(SHELL) Package.sh $$p diff; done
|
||||
|
||||
purge: Purge.list
|
||||
@echo 'Purging obsolete and auto-generated source files'
|
||||
@for f in `grep -v '#' Purge.list` ; \
|
||||
do test -f $$f && rm $$f && echo $$f || : ; \
|
||||
done
|
||||
@ -19,9 +19,9 @@
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#ifdef PAIR_CLASS
|
||||
|
||||
PairStyle(hdnnp,PairHDNNP)
|
||||
|
||||
// clang-format off
|
||||
PairStyle(hdnnp,PairHDNNP);
|
||||
// clang-format on
|
||||
#else
|
||||
|
||||
#ifndef LMP_PAIR_HDNNP_H
|
||||
|
||||
1272
src/USER-RANN/pair_rann.cpp
Normal file
1272
src/USER-RANN/pair_rann.cpp
Normal file
File diff suppressed because it is too large
Load Diff
165
src/USER-RANN/pair_rann.h
Normal file
165
src/USER-RANN/pair_rann.h
Normal file
@ -0,0 +1,165 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifdef PAIR_CLASS
|
||||
// clang-format off
|
||||
PairStyle(rann,PairRANN);
|
||||
// clang-format on
|
||||
#else
|
||||
|
||||
#ifndef LMP_PAIR_RANN
|
||||
#define LMP_PAIR_RANN
|
||||
|
||||
#include "pair.h"
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
namespace RANN {
|
||||
//forward declarations
|
||||
class Activation;
|
||||
class Fingerprint;
|
||||
}
|
||||
|
||||
class PairRANN : public Pair {
|
||||
public:
|
||||
//inherited functions
|
||||
PairRANN(class LAMMPS *);
|
||||
~PairRANN();
|
||||
void compute(int, int);
|
||||
void settings(int, char **);
|
||||
void coeff(int, char **);
|
||||
void init_style();
|
||||
double init_one(int, int);
|
||||
void init_list(int , NeighList *);
|
||||
void errorf(const char*,int,const char*);
|
||||
int factorial(int);
|
||||
|
||||
RANN::Fingerprint *create_fingerprint(const char *);
|
||||
RANN::Activation *create_activation(const char *);
|
||||
|
||||
//global variables
|
||||
int nelements; // # of elements (distinct from LAMMPS atom types since multiple atom types can be mapped to one element)
|
||||
int nelementsp; // nelements+1
|
||||
char **elements; // names of elements
|
||||
char **elementsp; // names of elements with "all" appended as the last "element"
|
||||
double *mass; // mass of each element
|
||||
double cutmax; // max radial distance for neighbor lists
|
||||
int *map; // mapping from atom types to elements
|
||||
int *fingerprintcount; // static variable used in initialization
|
||||
int *fingerprintlength; // # of input neurons defined by fingerprints of each element.
|
||||
int *fingerprintperelement; // # of fingerprints for each element
|
||||
bool doscreen;//screening is calculated if any defined fingerprint uses it
|
||||
bool allscreen;//all fingerprints use screening so screened neighbors can be completely ignored
|
||||
bool dospin;
|
||||
int res;//Resolution of function tables for cubic interpolation.
|
||||
int memguess;
|
||||
double *screening_min;
|
||||
double *screening_max;
|
||||
bool **weightdefined;
|
||||
bool **biasdefined;
|
||||
int nmax1;
|
||||
int nmax2;
|
||||
int fmax;
|
||||
int fnmax;
|
||||
//memory actively written to during each compute:
|
||||
double *xn,*yn,*zn,*Sik,*dSikx,*dSiky,*dSikz,*dSijkx,*dSijky,*dSijkz,*sx,*sy,*sz,**dSijkxc,**dSijkyc,**dSijkzc,*dfeaturesx,*dfeaturesy,*dfeaturesz,*features;
|
||||
double *layer,*sum,*sum1,**dlayerx,**dlayery,**dlayerz,**dlayersumx,**dlayersumy,**dlayersumz;
|
||||
double **dsx,**dsy,**dsz,**dssumx,**dssumy,**dssumz;
|
||||
int *tn,*jl;
|
||||
bool *Bij;
|
||||
|
||||
struct Simulation{
|
||||
int *id;
|
||||
bool forces;
|
||||
bool spins;
|
||||
double **x;
|
||||
double **f;
|
||||
double **s;
|
||||
double box[3][3];
|
||||
double origin[3];
|
||||
double **features;
|
||||
double **dfx;
|
||||
double **dfy;
|
||||
double **dfz;
|
||||
double **dsx;
|
||||
double **dsy;
|
||||
double **dsz;
|
||||
int *ilist,*numneigh,**firstneigh,*type,inum,gnum;
|
||||
};
|
||||
|
||||
struct NNarchitecture{
|
||||
int layers;
|
||||
int *dimensions;//vector of length layers with entries for neurons per layer
|
||||
double **Weights;
|
||||
double **Biases;
|
||||
int *activations;//unused
|
||||
int maxlayer;//longest layer (for memory allocation)
|
||||
};
|
||||
|
||||
Simulation *sims;
|
||||
NNarchitecture *net;//array of networks, 1 for each element.
|
||||
|
||||
protected:
|
||||
RANN::Activation ***activation;
|
||||
RANN::Fingerprint ***fingerprints;
|
||||
|
||||
private:
|
||||
//new functions
|
||||
void allocate(const std::vector<std::string>);//called after reading element list, but before reading the rest of the potential
|
||||
void read_file(char *);//read potential file
|
||||
void read_atom_types(std::vector<std::string>,std::vector<std::string>,char*,int);
|
||||
void read_mass(std::vector<std::string>,std::vector<std::string>,char*,int);
|
||||
void read_fpe(std::vector<std::string>,std::vector<std::string>,char*,int);//fingerprints per element. Count total fingerprints defined for each 1st element in element combinations
|
||||
void read_fingerprints(std::vector<std::string>,std::vector<std::string>,char*,int);
|
||||
void read_fingerprint_constants(std::vector<std::string>,std::vector<std::string>,char*,int);
|
||||
void read_network_layers(std::vector<std::string>,std::vector<std::string>,char*,int);//include input and output layer (hidden layers + 2)
|
||||
void read_layer_size(std::vector<std::string>,std::vector<std::string>,char*,int);
|
||||
void read_weight(std::vector<std::string>,std::vector<std::string>,FILE*,char*,int*);//weights should be formatted as properly shaped matrices
|
||||
void read_bias(std::vector<std::string>,std::vector<std::string>,FILE*,char*,int*);//biases should be formatted as properly shaped vectors
|
||||
void read_activation_functions(std::vector<std::string>,std::vector<std::string>,char*,int);
|
||||
void read_screening(std::vector<std::string>,std::vector<std::string>,char*,int);
|
||||
bool check_potential();//after finishing reading potential file
|
||||
void propagateforward(double *,double **,double **,int,int);//called by compute to get force and energy
|
||||
void propagateforwardspin(double *,double **,double **,double**,int,int);//called by compute to get force and energy
|
||||
void screen(int,int,int);
|
||||
void cull_neighbor_list(int *,int,int);
|
||||
void screen_neighbor_list(int *,int,int);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
73
src/USER-RANN/rann_activation.h
Normal file
73
src/USER-RANN/rann_activation.h
Normal file
@ -0,0 +1,73 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifndef LMP_RANN_ACTIVATION_H
|
||||
#define LMP_RANN_ACTIVATION_H
|
||||
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
class Activation {
|
||||
public:
|
||||
Activation(class PairRANN *);
|
||||
virtual ~Activation();
|
||||
virtual double activation_function(double);
|
||||
virtual double dactivation_function(double);
|
||||
virtual double ddactivation_function(double);
|
||||
bool empty;
|
||||
const char *style;
|
||||
};
|
||||
|
||||
Activation::Activation(PairRANN *_pair) {
|
||||
empty = true;
|
||||
style = "empty";
|
||||
}
|
||||
|
||||
Activation::~Activation() {
|
||||
|
||||
}
|
||||
|
||||
//default is linear activation (no change).
|
||||
double Activation::activation_function(double A) {
|
||||
return A;
|
||||
}
|
||||
|
||||
double Activation::dactivation_function(double A) {
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
double Activation::ddactivation_function(double A) {
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif /* RANN_ACTIVATION_H_ */
|
||||
69
src/USER-RANN/rann_activation_linear.h
Normal file
69
src/USER-RANN/rann_activation_linear.h
Normal file
@ -0,0 +1,69 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
#ifndef LMP_RANN_ACTIVATION_LINEAR_H
|
||||
#define LMP_RANN_ACTIVATION_LINEAR_H
|
||||
|
||||
#include "rann_activation.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
|
||||
class Activation_linear : public Activation {
|
||||
public:
|
||||
Activation_linear(class PairRANN *);
|
||||
double activation_function(double);
|
||||
double dactivation_function(double);
|
||||
double ddactivation_function(double);
|
||||
};
|
||||
|
||||
Activation_linear::Activation_linear(PairRANN *_pair) : Activation(_pair) {
|
||||
empty = false;
|
||||
style = "linear";
|
||||
}
|
||||
|
||||
double Activation_linear::activation_function(double A)
|
||||
{
|
||||
return A;
|
||||
}
|
||||
|
||||
double Activation_linear::dactivation_function(double A)
|
||||
{
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
double Activation_linear::ddactivation_function(double) {
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* ACTIVATION_LINEAR_H_ */
|
||||
70
src/USER-RANN/rann_activation_sig_i.h
Normal file
70
src/USER-RANN/rann_activation_sig_i.h
Normal file
@ -0,0 +1,70 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifndef LMP_RANN_ACTIVATION_SIGI_H
|
||||
#define LMP_RANN_ACTIVATION_SIGI_H
|
||||
|
||||
#include "rann_activation.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
|
||||
class Activation_sigI : public Activation {
|
||||
public:
|
||||
Activation_sigI(class PairRANN *);
|
||||
double activation_function(double);
|
||||
double dactivation_function(double);
|
||||
double ddactivation_function(double);
|
||||
};
|
||||
|
||||
Activation_sigI::Activation_sigI(PairRANN *_pair) : Activation(_pair) {
|
||||
empty = false;
|
||||
style = "sigI";
|
||||
}
|
||||
|
||||
double Activation_sigI::activation_function(double in) {
|
||||
if (in>34)return in;
|
||||
return 0.1*in + 0.9*log(exp(in) + 1);
|
||||
}
|
||||
|
||||
double Activation_sigI::dactivation_function(double in) {
|
||||
if (in>34)return 1;
|
||||
return 0.1 + 0.9/(exp(in)+1)*exp(in);
|
||||
}
|
||||
|
||||
double Activation_sigI::ddactivation_function(double in) {
|
||||
if (in>34)return 0;
|
||||
return 0.9*exp(in)/(exp(in)+1)/(exp(in)+1);;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* ACTIVATION_SIGI_H_ */
|
||||
78
src/USER-RANN/rann_fingerprint.cpp
Normal file
78
src/USER-RANN/rann_fingerprint.cpp
Normal file
@ -0,0 +1,78 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#include "rann_fingerprint.h"
|
||||
|
||||
using namespace LAMMPS_NS::RANN;
|
||||
|
||||
Fingerprint::Fingerprint(PairRANN *_pair)
|
||||
{
|
||||
spin = false;
|
||||
screen = false;
|
||||
empty = true;
|
||||
fullydefined = false;
|
||||
n_body_type = 0;
|
||||
style = "empty";
|
||||
pair = _pair;
|
||||
}
|
||||
|
||||
// Smooth cutoff, goes from 1 to zero over the interval rc-dr to rc.
|
||||
// Same as MEAM uses. Used by generateradialtable and generatexpcuttable.
|
||||
|
||||
double Fingerprint::cutofffunction(double r, double rc, double dr)
|
||||
{
|
||||
double out;
|
||||
if (r < (rc - dr))
|
||||
out = 1;
|
||||
else if (r > rc)
|
||||
out = 0;
|
||||
else {
|
||||
out = 1 - (rc - r) / dr;
|
||||
out *= out;
|
||||
out *= out;
|
||||
out = 1 - out;
|
||||
out *= out;
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
void Fingerprint::generate_rinvssqrttable()
|
||||
{
|
||||
int buf = 5;
|
||||
int m;
|
||||
double r1;
|
||||
double cutmax = pair->cutmax;
|
||||
int res = pair->res;
|
||||
rinvsqrttable = new double[res + buf];
|
||||
for (m = 0; m < (res + buf); m++) {
|
||||
r1 = cutmax * cutmax * (double) (m) / (double) (res);
|
||||
rinvsqrttable[m] = 1 / sqrt(r1);
|
||||
}
|
||||
}
|
||||
96
src/USER-RANN/rann_fingerprint.h
Normal file
96
src/USER-RANN/rann_fingerprint.h
Normal file
@ -0,0 +1,96 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
|
||||
----------------*/
|
||||
|
||||
#ifndef LMP_RANN_FINGERPRINT_H
|
||||
#define LMP_RANN_FINGERPRINT_H
|
||||
|
||||
#include "pair_rann.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
class Fingerprint {
|
||||
public:
|
||||
Fingerprint(PairRANN *);
|
||||
virtual ~Fingerprint() {}
|
||||
|
||||
virtual bool parse_values(std::string, std::vector<std::string>) { return false; }
|
||||
virtual void write_values(FILE *) {}
|
||||
|
||||
virtual void init(int *, int) {}
|
||||
virtual void allocate() {}
|
||||
|
||||
void init_screen(int);
|
||||
|
||||
//no screen,no spin
|
||||
virtual void compute_fingerprint(double *, double *, double *, double *, int, int, double *,
|
||||
double *, double *, int *, int, int *)
|
||||
{
|
||||
}
|
||||
//screen
|
||||
virtual void compute_fingerprint(double *, double *, double *, double *, double *, double *,
|
||||
double *, double *, double *, double *, double *, bool *, int,
|
||||
int, double *, double *, double *, int *, int, int *)
|
||||
{
|
||||
}
|
||||
//spin
|
||||
virtual void compute_fingerprint(double *, double *, double *, double *, double *, double *,
|
||||
double *, int, int, double *, double *, double *, int *, int,
|
||||
int *)
|
||||
{
|
||||
}
|
||||
//spin,screen
|
||||
virtual void compute_fingerprint(double *, double *, double *, double *, double *, double *,
|
||||
double *, double *, double *, double *, double *, double *,
|
||||
double *, double *, bool *, int, int, double *, double *,
|
||||
double *, int *, int, int *)
|
||||
{
|
||||
}
|
||||
|
||||
virtual int get_length(){return 0;};
|
||||
virtual double cutofffunction(double, double, double);
|
||||
virtual void generate_rinvssqrttable();
|
||||
bool spin;
|
||||
bool screen;
|
||||
int n_body_type; //i-j vs. i-j-k vs. i-j-k-l, etc.
|
||||
bool empty;
|
||||
bool fullydefined;
|
||||
int startingneuron;
|
||||
int id; //based on ordering of fingerprints listed for i-j in potential file
|
||||
const char *style;
|
||||
int *atomtypes;
|
||||
double *rinvsqrttable;
|
||||
double rc;
|
||||
PairRANN *pair;
|
||||
};
|
||||
} // namespace RANN
|
||||
} // namespace LAMMPS_NS
|
||||
|
||||
#endif /* RANN_FINGERPRINT_H_ */
|
||||
809
src/USER-RANN/rann_fingerprint_bond.cpp
Normal file
809
src/USER-RANN/rann_fingerprint_bond.cpp
Normal file
@ -0,0 +1,809 @@
|
||||
// clang-format off
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#include "rann_fingerprint_bond.h"
|
||||
|
||||
|
||||
using namespace LAMMPS_NS::RANN;
|
||||
|
||||
Fingerprint_bond::Fingerprint_bond(PairRANN *_pair) : Fingerprint(_pair)
|
||||
{
|
||||
n_body_type = 3;
|
||||
dr = 0;
|
||||
re = 0;
|
||||
rc = 0;
|
||||
alpha_k = new double [1];
|
||||
alpha_k[0] = -1;
|
||||
kmax = 0;
|
||||
mlength = 0;
|
||||
id = -1;
|
||||
style = "bond";
|
||||
atomtypes = new int [n_body_type];
|
||||
empty = true;
|
||||
_pair->allscreen = false;
|
||||
}
|
||||
|
||||
Fingerprint_bond::~Fingerprint_bond() {
|
||||
delete [] alpha_k;
|
||||
delete [] atomtypes;
|
||||
delete [] expcuttable;
|
||||
delete [] dfctable;
|
||||
for (int i=0;i<(mlength*(mlength+1))>>1;i++) {
|
||||
delete [] coeff[i];
|
||||
delete [] coeffx[i];
|
||||
delete [] coeffy[i];
|
||||
delete [] coeffz[i];
|
||||
delete [] Mf[i];
|
||||
}
|
||||
delete [] coeff;
|
||||
delete [] coeffx;
|
||||
delete [] coeffy;
|
||||
delete [] coeffz;
|
||||
delete [] Mf;
|
||||
delete [] rinvsqrttable;
|
||||
}
|
||||
|
||||
bool Fingerprint_bond::parse_values(std::string constant,std::vector<std::string> line1) {
|
||||
int nwords,l;
|
||||
nwords=line1.size();
|
||||
if (constant.compare("re")==0) {
|
||||
re = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("rc")==0) {
|
||||
rc = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("alphak")==0) {
|
||||
delete [] alpha_k;
|
||||
alpha_k = new double [nwords];
|
||||
for (l=0;l<nwords;l++) {
|
||||
alpha_k[l]=strtod(line1[l].c_str(),NULL);
|
||||
}
|
||||
}
|
||||
else if (constant.compare("dr")==0) {
|
||||
dr = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("k")==0) {
|
||||
kmax = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else if (constant.compare("m")==0) {
|
||||
mlength = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else pair->errorf(FLERR,"Undefined value for bond power");
|
||||
if (re!=0.0 && rc!=0.0 && alpha_k[0]!=-1 && dr!=0.0 && mlength!=0 && kmax!=0)return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void Fingerprint_bond::write_values(FILE *fid) {
|
||||
int i;
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:re:\n",style,id);
|
||||
fprintf(fid,"%f\n",re);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:rc:\n",style,id);
|
||||
fprintf(fid,"%f\n",rc);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:alphak:\n",style,id);
|
||||
for (i=0;i<kmax;i++) {
|
||||
fprintf(fid,"%f ",alpha_k[i]);
|
||||
}
|
||||
fprintf(fid,"\n");
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:dr:\n",style,id);
|
||||
fprintf(fid,"%f\n",dr);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:k:\n",style,id);
|
||||
fprintf(fid,"%d\n",kmax);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:m:\n",style,id);
|
||||
fprintf(fid,"%d\n",mlength);
|
||||
}
|
||||
|
||||
void Fingerprint_bond::init(int *i,int _id) {
|
||||
for (int j=0;j<n_body_type;j++) {atomtypes[j] = i[j];}
|
||||
re = 0;
|
||||
rc = 0;
|
||||
mlength = 0;
|
||||
kmax = 0;
|
||||
alpha_k = new double [1];
|
||||
alpha_k[0]=-1;
|
||||
empty = false;
|
||||
id = _id;
|
||||
}
|
||||
|
||||
//number of neurons defined by this fingerprint
|
||||
int Fingerprint_bond::get_length() {
|
||||
return mlength*kmax;
|
||||
}
|
||||
|
||||
void Fingerprint_bond::allocate() {
|
||||
generate_exp_cut_table();
|
||||
generate_coefficients();
|
||||
generate_rinvssqrttable();
|
||||
}
|
||||
|
||||
//Generate table of complex functions for quick reference during compute. Used by do3bodyfeatureset_singleneighborloop and do3bodyfeatureset_doubleneighborloop.
|
||||
void Fingerprint_bond::generate_exp_cut_table() {
|
||||
int m,n;
|
||||
double r1;
|
||||
int buf = 5;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
expcuttable = new double [(res+buf)*(kmax)];
|
||||
dfctable = new double [res+buf];
|
||||
for (m=0;m<(res+buf);m++) {
|
||||
r1 = cutmax*cutmax*(double)(m)/(double)(res);
|
||||
for (n=0;n<(kmax);n++) {
|
||||
expcuttable[n+m*(kmax)] = exp(-alpha_k[n]/re*sqrt(r1))*cutofffunction(sqrt(r1),rc,dr);
|
||||
}
|
||||
if (sqrt(r1)>=rc || sqrt(r1) <= (rc-dr)) {
|
||||
dfctable[m]=0;
|
||||
}
|
||||
else{
|
||||
dfctable[m]=-8*pow(1-(rc-sqrt(r1))/dr,3)/dr/(1-pow(1-(rc-sqrt(r1))/dr,4));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Generate table of complex functions for quick reference during compute. Used by do3bodyfeatureset_singleneighborloop.
|
||||
void Fingerprint_bond::generate_coefficients() { //calculates multinomial coefficient for each term
|
||||
int p,mb,mc;
|
||||
int n,p1,i1;
|
||||
mb = mlength;
|
||||
mc=(mb*(mb+1))>>1;
|
||||
coeff = new int *[mc];
|
||||
coeffx = new int *[mc];
|
||||
coeffy = new int *[mc];
|
||||
coeffz = new int *[mc];
|
||||
for (p=0;p<mc;p++) {
|
||||
coeff[p]=new int [mb];
|
||||
coeffx[p]=new int [mb];
|
||||
coeffy[p]=new int [mb];
|
||||
coeffz[p]=new int [mb];
|
||||
}
|
||||
Mf = new int*[mc];
|
||||
int *M = new int[mlength+1];
|
||||
for (p=0;p<mlength+1;p++) {
|
||||
M[p]=0;
|
||||
}
|
||||
for (p1=0;p1<mc;p1++) {
|
||||
Mf[p1] = new int[mlength+1];
|
||||
for (p=0;p<mlength+1;p++) {
|
||||
Mf[p1][p]=0;
|
||||
}
|
||||
}
|
||||
M[0] = 2;
|
||||
Mf[0][0] = 2;
|
||||
n = 1;
|
||||
int m1 = 1;
|
||||
bool go = true;
|
||||
bool broke = false;
|
||||
while (go) {
|
||||
broke = false;
|
||||
for (i1=0;i1<mlength-1;i1++) {
|
||||
if (M[i1+1] == 0) {
|
||||
M[i1+1]=M[i1+1]+1;
|
||||
for (p1=0;p1<mlength+1;p1++) {
|
||||
Mf[n][p1] = M[p1];
|
||||
}
|
||||
n = n+1;
|
||||
broke = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (m1<mlength && !broke) {
|
||||
M[m1]=M[m1]+1;
|
||||
for (p1=m1+1;p1<mlength+1;p1++) {
|
||||
M[p1]=0;
|
||||
}
|
||||
for (p1=0;p1<mlength+1;p1++) {
|
||||
Mf[n][p1]=M[p1];
|
||||
}
|
||||
n=n+1;
|
||||
broke = true;
|
||||
m1 = m1+1;
|
||||
}
|
||||
if (!broke) {
|
||||
go = false;
|
||||
}
|
||||
}
|
||||
for (p=0;p<mb;p++) {
|
||||
for (p1=0;p1<mc;p1++) {
|
||||
if (p==0) {
|
||||
coeffx[p1][p]=0;
|
||||
coeffy[p1][p]=0;
|
||||
coeffz[p1][p]=0;
|
||||
}
|
||||
else{
|
||||
coeffx[p1][p]=coeffx[p1][p-1];
|
||||
if (Mf[p1][p]==0) {
|
||||
coeffx[p1][p]++;
|
||||
}
|
||||
coeffy[p1][p]=coeffy[p1][p-1];
|
||||
if (Mf[p1][p]==1) {
|
||||
coeffy[p1][p]++;
|
||||
}
|
||||
coeffz[p1][p]=coeffz[p1][p-1];
|
||||
if (Mf[p1][p]==2) {
|
||||
coeffz[p1][p]++;
|
||||
}
|
||||
}
|
||||
coeff[p1][p] = pair->factorial(p)/pair->factorial(coeffx[p1][p])/pair->factorial(coeffy[p1][p])/pair->factorial(coeffz[p1][p]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Called by getproperties. Gets 3-body features and dfeatures
|
||||
void Fingerprint_bond::compute_fingerprint(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz, int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i;
|
||||
int *ilist,*numneigh;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
ilist = sim->ilist;
|
||||
numneigh = sim->numneigh;
|
||||
i = ilist[ii];
|
||||
//select the more efficient algorithm for this particular potential and environment.
|
||||
if (jnum*2>(mlength+1)*mlength*20) {
|
||||
do3bodyfeatureset_singleneighborloop(features,dfeaturesx,dfeaturesy,dfeaturesz,ii,sid,xn,yn,zn,tn,jnum,jl);
|
||||
}
|
||||
else{
|
||||
do3bodyfeatureset_doubleneighborloop(features,dfeaturesx,dfeaturesy,dfeaturesz,ii,sid,xn,yn,zn,tn,jnum,jl);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//Called by do3bodyfeatureset. Algorithm for high neighbor numbers and small series of bond angle powers
|
||||
void Fingerprint_bond::do3bodyfeatureset_singleneighborloop(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i,j,jj,itype,jtype,kk,m,n,mcount,a,a1,a2,ai;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int count=0;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
int *type = sim->type;
|
||||
double cutmax = pair->cutmax;
|
||||
int res = pair->res;
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
ilist = sim->ilist;
|
||||
int nelements=pair->nelements;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double expr[jnum][kmax+12];
|
||||
int p = kmax;
|
||||
int countmb=((mlength)*(mlength+1))>>1;
|
||||
// calculate interpolation expr, rinvs and dfc, for each neighbor
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype && atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
delx = xn[jj];
|
||||
dely = yn[jj];
|
||||
delz = zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq>rc*rc) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
r1 = r1-trunc(r1);
|
||||
double *p0 = &expcuttable[(m1-1)*kmax];
|
||||
double *p1 = &expcuttable[m1*kmax];
|
||||
double *p2 = &expcuttable[(m1+1)*kmax];
|
||||
double *p3 = &expcuttable[(m1+2)*kmax];
|
||||
for (kk=0;kk<kmax;kk++) {
|
||||
expr[jj][kk] = p1[kk]+0.5*r1*(p2[kk]-p0[kk]+r1*(2.0*p0[kk]-5.0*p1[kk]+4.0*p2[kk]-p3[kk]+r1*(3.0*(p1[kk]-p2[kk])+p3[kk]-p0[kk])));
|
||||
}
|
||||
double* q = &dfctable[m1-1];
|
||||
double* ri = &rinvsqrttable[m1-1];
|
||||
double dfc = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
double rinvs = ri[1] + 0.5 * r1*(ri[2] - ri[0] + r1*(2.0*ri[0] - 5.0*ri[1] + 4.0*ri[2] - ri[3] + r1*(3.0*(ri[1] - ri[2]) + ri[3] - ri[0])));
|
||||
|
||||
expr[jj][p]=delx*rinvs;
|
||||
expr[jj][p+1]=dely*rinvs;
|
||||
expr[jj][p+2]=delz*rinvs;
|
||||
//Hack to avoid nan when x y or z component of radial vector is exactly 0. Shouldn't affect accuracy.
|
||||
if (expr[jj][p]*expr[jj][p]<0.000000000001) {
|
||||
expr[jj][p] = 0.000001;
|
||||
}
|
||||
if (expr[jj][p+1]*expr[jj][p+1]<0.000000000001) {
|
||||
expr[jj][p+1] = 0.000001;
|
||||
}
|
||||
if (expr[jj][p+2]*expr[jj][p+2]<0.000000000001) {
|
||||
expr[jj][p+2] = 0.000001;
|
||||
}
|
||||
expr[jj][p+3] = -dfc*expr[jj][p];
|
||||
expr[jj][p+4] = rinvs/expr[jj][p];
|
||||
expr[jj][p+5] = rinvs*expr[jj][p];
|
||||
expr[jj][p+6] = -dfc*expr[jj][p+1];
|
||||
expr[jj][p+7] = rinvs/expr[jj][p+1];
|
||||
expr[jj][p+8] = rinvs*expr[jj][p+1];
|
||||
expr[jj][p+9] = -dfc*expr[jj][p+2];
|
||||
expr[jj][p+10] = rinvs/expr[jj][p+2];
|
||||
expr[jj][p+11] = rinvs*expr[jj][p+2];
|
||||
}
|
||||
|
||||
int kb = kmax;
|
||||
int mb = mlength;
|
||||
count = startingneuron;
|
||||
double Bb[mb];
|
||||
double dBbx;
|
||||
double dBby;
|
||||
double dBbz;
|
||||
double yprod;
|
||||
for (mcount=0;mcount<countmb;mcount++) {
|
||||
int *M = Mf[mcount];
|
||||
int *_coeffx = coeffx[mcount];
|
||||
int *_coeffy = coeffy[mcount];
|
||||
int *_coeffz = coeffz[mcount];
|
||||
int *_coeff = coeff[mcount];
|
||||
a = mb+1;
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
if (Mf[mcount][a1+1]==0) {
|
||||
a = a1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (n=0;n<kb;n++) {
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
Bb[a1]=0;
|
||||
}
|
||||
ai = n;
|
||||
double y1 = alpha_k[ai]/re;
|
||||
//loop over jtype to get Bb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
double yprod = expr[jj][ai];
|
||||
double *y4 = &expr[jj][p];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
Bb[a2]=Bb[a2]+yprod;
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
}
|
||||
if (atomtypes[1]!=atomtypes[2]) {//Bb!=Bg
|
||||
double Bg[mb];
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
Bg[a1]=0;
|
||||
}
|
||||
ai = n;
|
||||
double y1 = alpha_k[ai]/re;
|
||||
//loop over ktype to get Bg
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
continue;
|
||||
}
|
||||
double yprod = expr[jj][ai];
|
||||
double *y4 = &expr[jj][p];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
Bg[a2]=Bg[a2]+yprod;
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
}
|
||||
double B1;
|
||||
//loop over ktype to get dBg*Bb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
continue;
|
||||
}
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = Bb[a2]*_coeff[a2]*yprod;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
}
|
||||
}
|
||||
//loop over jtype to get dBb*Bg
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = Bg[a2]*_coeff[a2]*yprod;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
}
|
||||
}
|
||||
//central atom derivative
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
ai = n*(mb)+a2+count+jnum*f;
|
||||
features[ai-jnum*f] += Bb[a2]*Bg[a2]*_coeff[a2];
|
||||
}
|
||||
}
|
||||
else{//Bb=Bg
|
||||
double B1;
|
||||
//loop over jtype to get 2*Bb*dBb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = 2*Bb[a2]*_coeff[a2]*yprod;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
}
|
||||
}
|
||||
//central atom derivative
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
ai = n*(mb)+a2+count+jnum*f;
|
||||
features[ai-jnum*f] += Bb[a2]*Bb[a2]*_coeff[a2];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
count = startingneuron;
|
||||
for (n=0;n<kb;n++) {
|
||||
for (m=0;m<mb;m++) {
|
||||
dfeaturesx[jnum*f+count]-=dfeaturesx[jj*f+count];
|
||||
dfeaturesy[jnum*f+count]-=dfeaturesy[jj*f+count];
|
||||
dfeaturesz[jnum*f+count]-=dfeaturesz[jj*f+count];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Called by do3bodyfeatureset. Algorithm for low neighbor numbers and large series of bond angle powers
|
||||
void Fingerprint_bond::do3bodyfeatureset_doubleneighborloop(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,int ii, int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i,j,jj,itype,jtype,ktype,kk,m,n;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int jtypes = atomtypes[1];
|
||||
int ktypes = atomtypes[2];
|
||||
int count=0;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
double **x = sim->x;
|
||||
int *type = sim->type;
|
||||
int nelements = pair->nelements;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
ilist = sim->ilist;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double expr[jnum][kmax];
|
||||
double y[jnum][3];
|
||||
double ri[jnum];
|
||||
double dfc[jnum];
|
||||
int kb = kmax;
|
||||
int mb = mlength;
|
||||
double c41[kmax];
|
||||
double c51[kmax];
|
||||
double c61[kmax];
|
||||
double ct[kmax];
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
jtype = tn[jj];
|
||||
if (jtypes != nelements && jtypes != jtype && ktypes != nelements && ktypes != jtype) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
delx = xn[jj];
|
||||
dely = yn[jj];
|
||||
delz = zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq>rc*rc) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
if (!(m1>=1 && m1 <= res))pair->errorf(FLERR,"Neighbor list is invalid.");//usually results from nan somewhere.
|
||||
r1 = r1-trunc(r1);
|
||||
double *p0 = &expcuttable[(m1-1)*kmax];
|
||||
double *p1 = &expcuttable[m1*kmax];
|
||||
double *p2 = &expcuttable[(m1+1)*kmax];
|
||||
double *p3 = &expcuttable[(m1+2)*kmax];
|
||||
for (kk=0;kk<kmax;kk++) {
|
||||
expr[jj][kk] = p1[kk]+0.5*r1*(p2[kk]-p0[kk]+r1*(2.0*p0[kk]-5.0*p1[kk]+4.0*p2[kk]-p3[kk]+r1*(3.0*(p1[kk]-p2[kk])+p3[kk]-p0[kk])));
|
||||
}
|
||||
double* q = &dfctable[m1-1];
|
||||
double* r2 = &rinvsqrttable[m1-1];
|
||||
dfc[jj] = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
ri[jj] = r2[1] + 0.5 * r1*(r2[2] - r2[0] + r1*(2.0*r2[0] - 5.0*r2[1] + 4.0*r2[2] - r2[3] + r1*(3.0*(r2[1] - r2[2]) + r2[3] - r2[0])));
|
||||
y[jj][0]=delx*ri[jj];
|
||||
y[jj][1]=dely*ri[jj];
|
||||
y[jj][2]=delz*ri[jj];
|
||||
}
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
if (expr[jj][0]==0)continue;
|
||||
jtype = tn[jj];
|
||||
if (jtypes != nelements && jtypes != jtype) {
|
||||
continue;
|
||||
}
|
||||
for (n = 0;n<kmax;n++) {
|
||||
ct[n] = 2*alpha_k[n]/re;
|
||||
c41[n]=(-ct[n]+2*dfc[jj])*y[jj][0];
|
||||
c51[n]=(-ct[n]+2*dfc[jj])*y[jj][1];
|
||||
c61[n]= (-ct[n]+2*dfc[jj])*y[jj][2];
|
||||
}
|
||||
if (jtypes==ktypes) {
|
||||
for (kk=jj+1;kk< jnum; kk++) {
|
||||
if (expr[kk][0]==0)continue;
|
||||
ktype = tn[kk];
|
||||
if (ktypes != nelements && ktypes != ktype) {
|
||||
continue;
|
||||
}
|
||||
count = startingneuron;
|
||||
double dot = (y[jj][0]*y[kk][0]+y[jj][1]*y[kk][1]+y[jj][2]*y[kk][2]);
|
||||
double c1 = 2*ri[jj]*(y[kk][0]-dot*y[jj][0]);
|
||||
double c2 = 2*ri[jj]*(y[kk][1]-dot*y[jj][1]);
|
||||
double c3 = 2*ri[jj]*(y[kk][2]-dot*y[jj][2]);
|
||||
double c10 = 2*ri[kk]*(y[jj][0]-dot*y[kk][0]);
|
||||
double c11 = 2*ri[kk]*(y[jj][1]-dot*y[kk][1]);
|
||||
double c12 = 2*ri[kk]*(y[jj][2]-dot*y[kk][2]);
|
||||
//alternate formulation:
|
||||
// double c1 = 2*ri[jj]*y[kk][0]*(1-y[jj][0]*y[jj][0]);
|
||||
// double c2 = 2*ri[jj]*y[kk][1]*(1-y[jj][1]*y[jj][1]);
|
||||
// double c3 = 2*ri[jj]*y[kk][2]*(1-y[jj][2]*y[jj][2]);
|
||||
// double c10 = 2*ri[kk]*y[jj][0]*(1-y[kk][0]*y[kk][0]);
|
||||
// double c11 = 2*ri[kk]*y[jj][1]*(1-y[kk][1]*y[kk][1]);
|
||||
// double c12 = 2*ri[kk]*y[jj][2]*(1-y[kk][2]*y[kk][2]);
|
||||
for (n=0;n<kb;n++) {
|
||||
double dot1=expr[jj][n]*expr[kk][n];
|
||||
double c4 = c41[n];
|
||||
double c5 = c51[n];
|
||||
double c6 = c61[n];
|
||||
double ct2 = -ct[n]+2*dfc[kk];
|
||||
double c42 = ct2*y[kk][0];
|
||||
double c52 = ct2*y[kk][1];
|
||||
double c62 = ct2*y[kk][2];
|
||||
//m=0
|
||||
features[count]+=2*dot1;
|
||||
dfeaturesx[jj*f+count]+=dot1*c4;
|
||||
dfeaturesy[jj*f+count]+=dot1*c5;
|
||||
dfeaturesz[jj*f+count]+=dot1*c6;
|
||||
dfeaturesx[kk*f+count]+=dot1*c42;
|
||||
dfeaturesy[kk*f+count]+=dot1*c52;
|
||||
dfeaturesz[kk*f+count]+=dot1*c62;
|
||||
c4*=dot;
|
||||
c5*=dot;
|
||||
c6*=dot;
|
||||
c42*=dot;
|
||||
c52*=dot;
|
||||
c62*=dot;
|
||||
count++;
|
||||
for (m=1;m<mb;m++) {
|
||||
double c7 = dot1*(m*c1+c4);
|
||||
double c8 = dot1*(m*c2+c5);
|
||||
double c9 = dot1*(m*c3+c6);
|
||||
dfeaturesx[jj*f+count]+=c7;
|
||||
dfeaturesy[jj*f+count]+=c8;
|
||||
dfeaturesz[jj*f+count]+=c9;
|
||||
dfeaturesx[kk*f+count]+=dot1*(m*c10+c42);
|
||||
dfeaturesy[kk*f+count]+=dot1*(m*c11+c52);
|
||||
dfeaturesz[kk*f+count]+=dot1*(m*c12+c62);
|
||||
dot1*=dot;
|
||||
features[count++]+=2*dot1;
|
||||
}
|
||||
}
|
||||
}
|
||||
kk=jj;
|
||||
if (ktypes == nelements || ktypes == jtype) {
|
||||
count = startingneuron;
|
||||
double dot = (y[jj][0]*y[kk][0]+y[jj][1]*y[kk][1]+y[jj][2]*y[kk][2]);
|
||||
double c1 = 2*ri[jj]*(y[kk][0]-dot*y[jj][0]);
|
||||
double c2 = 2*ri[jj]*(y[kk][1]-dot*y[jj][1]);
|
||||
double c3 = 2*ri[jj]*(y[kk][2]-dot*y[jj][2]);
|
||||
//alternate formulation:
|
||||
// double c1 = 2*ri[jj]*y[kk][0]*(1-y[jj][0]*y[jj][0]);
|
||||
// double c2 = 2*ri[jj]*y[kk][1]*(1-y[jj][1]*y[jj][1]);
|
||||
// double c3 = 2*ri[jj]*y[kk][2]*(1-y[jj][2]*y[jj][2]);
|
||||
for (n=0;n<kb;n++) {
|
||||
double dot1=expr[jj][n]*expr[kk][n];
|
||||
double c4 = c41[n];
|
||||
double c5 = c51[n];
|
||||
double c6 = c61[n];
|
||||
//m=0
|
||||
features[count]+=dot1;
|
||||
dfeaturesx[jj*f+count]+=dot1*c4;
|
||||
dfeaturesy[jj*f+count]+=dot1*c5;
|
||||
dfeaturesz[jj*f+count]+=dot1*c6;
|
||||
c4*=dot;
|
||||
c5*=dot;
|
||||
c6*=dot;
|
||||
count++;
|
||||
for (m=1;m<mb;m++) {
|
||||
double c7 = dot1*(m*c1+c4);
|
||||
double c8 = dot1*(m*c2+c5);
|
||||
double c9 = dot1*(m*c3+c6);
|
||||
dfeaturesx[jj*f+count]+=c7;
|
||||
dfeaturesy[jj*f+count]+=c8;
|
||||
dfeaturesz[jj*f+count]+=c9;
|
||||
dot1*=dot;
|
||||
features[count++]+=dot1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (kk=0;kk<jnum; kk++) {
|
||||
if (expr[kk][0]==0)continue;
|
||||
ktype = tn[kk];
|
||||
if (ktypes != nelements && ktypes != ktype) {
|
||||
continue;
|
||||
}
|
||||
count = startingneuron;
|
||||
double dot = (y[jj][0]*y[kk][0]+y[jj][1]*y[kk][1]+y[jj][2]*y[kk][2]);
|
||||
double c1 = ri[jj]*(y[kk][0]-dot*y[jj][0]);
|
||||
double c2 = ri[jj]*(y[kk][1]-dot*y[jj][1]);
|
||||
double c3 = ri[jj]*(y[kk][2]-dot*y[jj][2]);
|
||||
double c10 = ri[kk]*(y[jj][0]-dot*y[kk][0]);
|
||||
double c11 = ri[kk]*(y[jj][1]-dot*y[kk][1]);
|
||||
double c12 = ri[kk]*(y[jj][2]-dot*y[kk][2]);
|
||||
//alternate formulation:
|
||||
// double c1 = 2*ri[jj]*y[kk][0]*(1-y[jj][0]*y[jj][0]);
|
||||
// double c2 = 2*ri[jj]*y[kk][1]*(1-y[jj][1]*y[jj][1]);
|
||||
// double c3 = 2*ri[jj]*y[kk][2]*(1-y[jj][2]*y[jj][2]);
|
||||
// double c10 = 2*ri[kk]*y[jj][0]*(1-y[kk][0]*y[kk][0]);
|
||||
// double c11 = 2*ri[kk]*y[jj][1]*(1-y[kk][1]*y[kk][1]);
|
||||
// double c12 = 2*ri[kk]*y[jj][2]*(1-y[kk][2]*y[kk][2]);
|
||||
for (n=0;n<kb;n++) {
|
||||
double dot1=expr[jj][n]*expr[kk][n];
|
||||
double c4 = c41[n]/2;
|
||||
double c5 = c51[n]/2;
|
||||
double c6 = c61[n]/2;
|
||||
double ct2 = -ct[n]/2+dfc[kk];
|
||||
double c42 = ct2*y[kk][0];
|
||||
double c52 = ct2*y[kk][1];
|
||||
double c62 = ct2*y[kk][2];
|
||||
//m=0
|
||||
features[count]+=dot1;
|
||||
dfeaturesx[jj*f+count]+=dot1*c4;
|
||||
dfeaturesy[jj*f+count]+=dot1*c5;
|
||||
dfeaturesz[jj*f+count]+=dot1*c6;
|
||||
dfeaturesx[kk*f+count]+=dot1*c42;
|
||||
dfeaturesy[kk*f+count]+=dot1*c52;
|
||||
dfeaturesz[kk*f+count]+=dot1*c62;
|
||||
c4*=dot;
|
||||
c5*=dot;
|
||||
c6*=dot;
|
||||
c42*=dot;
|
||||
c52*=dot;
|
||||
c62*=dot;
|
||||
count++;
|
||||
for (m=1;m<mb;m++) {
|
||||
double c7 = dot1*(m*c1+c4);
|
||||
double c8 = dot1*(m*c2+c5);
|
||||
double c9 = dot1*(m*c3+c6);
|
||||
dfeaturesx[jj*f+count]+=c7;
|
||||
dfeaturesy[jj*f+count]+=c8;
|
||||
dfeaturesz[jj*f+count]+=c9;
|
||||
dfeaturesx[kk*f+count]+=dot1*(m*c10+c42);
|
||||
dfeaturesy[kk*f+count]+=dot1*(m*c11+c52);
|
||||
dfeaturesz[kk*f+count]+=dot1*(m*c12+c62);
|
||||
dot1*=dot;
|
||||
features[count++]+=dot1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
count = startingneuron;
|
||||
for (n=0;n<kb;n++) {
|
||||
for (m=0;m<mb;m++) {
|
||||
dfeaturesx[jnum*f+count]-=dfeaturesx[jj*f+count];
|
||||
dfeaturesy[jnum*f+count]-=dfeaturesy[jj*f+count];
|
||||
dfeaturesz[jnum*f+count]-=dfeaturesz[jj*f+count];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
72
src/USER-RANN/rann_fingerprint_bond.h
Normal file
72
src/USER-RANN/rann_fingerprint_bond.h
Normal file
@ -0,0 +1,72 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifndef LMP_RANN_FINGERPRINT_BOND_H
|
||||
#define LMP_RANN_FINGERPRINT_BOND_H
|
||||
|
||||
#include "rann_fingerprint.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
|
||||
class Fingerprint_bond : public Fingerprint {
|
||||
public:
|
||||
Fingerprint_bond(PairRANN *);
|
||||
~Fingerprint_bond();
|
||||
bool parse_values(std::string,std::vector<std::string>);
|
||||
void write_values(FILE *);
|
||||
void init(int*,int);
|
||||
void allocate();
|
||||
void compute_fingerprint(double*,double*,double*,double*,int,int,double *,double *,double *,int *,int,int *);
|
||||
void do3bodyfeatureset_doubleneighborloop(double *,double *,double *,double *,int,int,double *,double *,double *,int *,int,int *);
|
||||
void do3bodyfeatureset_singleneighborloop(double *,double *,double *,double *,int,int,double *,double *,double *,int *,int,int *);
|
||||
void generate_exp_cut_table();
|
||||
void generate_coefficients();
|
||||
int get_length();
|
||||
|
||||
double *expcuttable;
|
||||
double *dfctable;
|
||||
double dr;
|
||||
double *alpha_k;
|
||||
double re;
|
||||
int **coeff;
|
||||
int **coeffx;
|
||||
int **coeffy;
|
||||
int **coeffz;
|
||||
int kmax;
|
||||
int mlength;
|
||||
int **Mf;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* FINGERPRINT_BOND_H_ */
|
||||
763
src/USER-RANN/rann_fingerprint_bondscreened.cpp
Normal file
763
src/USER-RANN/rann_fingerprint_bondscreened.cpp
Normal file
@ -0,0 +1,763 @@
|
||||
// clang-format off
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#include "rann_fingerprint_bondscreened.h"
|
||||
|
||||
using namespace LAMMPS_NS::RANN;
|
||||
|
||||
Fingerprint_bondscreened::Fingerprint_bondscreened(PairRANN *_pair) : Fingerprint(_pair)
|
||||
{
|
||||
n_body_type = 3;
|
||||
dr = 0;
|
||||
re = 0;
|
||||
rc = 0;
|
||||
alpha_k = new double [1];
|
||||
alpha_k[0] = -1;
|
||||
kmax = 0;
|
||||
mlength = 0;
|
||||
id = -1;
|
||||
style = "bondscreened";
|
||||
atomtypes = new int [n_body_type];
|
||||
empty = true;
|
||||
_pair->doscreen = true;
|
||||
screen = true;
|
||||
}
|
||||
|
||||
Fingerprint_bondscreened::~Fingerprint_bondscreened() {
|
||||
delete [] alpha_k;
|
||||
delete [] atomtypes;
|
||||
delete [] expcuttable;
|
||||
delete [] dfctable;
|
||||
for (int i=0;i<(mlength*(mlength+1))>>1;i++) {
|
||||
delete [] coeff[i];
|
||||
delete [] coeffx[i];
|
||||
delete [] coeffy[i];
|
||||
delete [] coeffz[i];
|
||||
delete [] Mf[i];
|
||||
}
|
||||
delete [] coeff;
|
||||
delete [] coeffx;
|
||||
delete [] coeffy;
|
||||
delete [] coeffz;
|
||||
delete [] Mf;
|
||||
delete [] rinvsqrttable;
|
||||
}
|
||||
|
||||
bool Fingerprint_bondscreened::parse_values(std::string constant,std::vector<std::string> line1) {
|
||||
int nwords,l;
|
||||
nwords=line1.size();
|
||||
if (constant.compare("re")==0) {
|
||||
re = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("rc")==0) {
|
||||
rc = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("alphak")==0) {
|
||||
delete [] alpha_k;
|
||||
alpha_k = new double [nwords];
|
||||
for (l=0;l<nwords;l++) {
|
||||
alpha_k[l]=strtod(line1[l].c_str(),NULL);
|
||||
}
|
||||
}
|
||||
else if (constant.compare("dr")==0) {
|
||||
dr = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("k")==0) {
|
||||
kmax = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else if (constant.compare("m")==0) {
|
||||
mlength = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else pair->errorf(FLERR,"Undefined value for bond power");
|
||||
if (re!=0.0 && rc!=0.0 && alpha_k[0]!=-1 && dr!=0.0 && mlength!=0 && kmax!=0)return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void Fingerprint_bondscreened::write_values(FILE *fid) {
|
||||
int i;
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:re:\n",style,id);
|
||||
fprintf(fid,"%f\n",re);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:rc:\n",style,id);
|
||||
fprintf(fid,"%f\n",rc);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:alphak:\n",style,id);
|
||||
for (i=0;i<kmax;i++) {
|
||||
fprintf(fid,"%f ",alpha_k[i]);
|
||||
}
|
||||
fprintf(fid,"\n");
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:dr:\n",style,id);
|
||||
fprintf(fid,"%f\n",dr);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:k:\n",style,id);
|
||||
fprintf(fid,"%d\n",kmax);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:m:\n",style,id);
|
||||
fprintf(fid,"%d\n",mlength);
|
||||
}
|
||||
|
||||
void Fingerprint_bondscreened::init(int *i,int _id) {
|
||||
for (int j=0;j<n_body_type;j++) {atomtypes[j] = i[j];}
|
||||
re = 0;
|
||||
rc = 0;
|
||||
mlength = 0;
|
||||
kmax = 0;
|
||||
alpha_k = new double [1];
|
||||
alpha_k[0]=-1;
|
||||
empty = false;
|
||||
id = _id;
|
||||
}
|
||||
|
||||
//number of neurons defined by this fingerprint
|
||||
int Fingerprint_bondscreened::get_length() {
|
||||
return mlength*kmax;
|
||||
}
|
||||
|
||||
void Fingerprint_bondscreened::allocate() {
|
||||
generate_exp_cut_table();
|
||||
generate_coefficients();
|
||||
generate_rinvssqrttable();
|
||||
}
|
||||
|
||||
//Generate table of complex functions for quick reference during compute. Used by do3bodyfeatureset_singleneighborloop and do3bodyfeatureset_doubleneighborloop.
|
||||
void Fingerprint_bondscreened::generate_exp_cut_table() {
|
||||
int m,n;
|
||||
double r1;
|
||||
int buf = 5;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
expcuttable = new double [(res+buf)*(kmax)];
|
||||
dfctable = new double [res+buf];
|
||||
for (m=0;m<(res+buf);m++) {
|
||||
r1 = cutmax*cutmax*(double)(m)/(double)(res);
|
||||
for (n=0;n<(kmax);n++) {
|
||||
expcuttable[n+m*(kmax)] = exp(-alpha_k[n]/re*sqrt(r1))*cutofffunction(sqrt(r1),rc,dr);
|
||||
}
|
||||
if (sqrt(r1)>=rc || sqrt(r1) <= (rc-dr)) {
|
||||
dfctable[m]=0;
|
||||
}
|
||||
else{
|
||||
dfctable[m]=-8*pow(1-(rc-sqrt(r1))/dr,3)/dr/(1-pow(1-(rc-sqrt(r1))/dr,4));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Generate table of complex functions for quick reference during compute. Used by do3bodyfeatureset_singleneighborloop.
|
||||
void Fingerprint_bondscreened::generate_coefficients() { //calculates multinomial coefficient for each term
|
||||
int p,mb,mc;
|
||||
int n,p1,i1;
|
||||
mb = mlength;
|
||||
mc=(mb*(mb+1))>>1;
|
||||
coeff = new int *[mc];
|
||||
coeffx = new int *[mc];
|
||||
coeffy = new int *[mc];
|
||||
coeffz = new int *[mc];
|
||||
for (p=0;p<mc;p++) {
|
||||
coeff[p]=new int [mb];
|
||||
coeffx[p]=new int [mb];
|
||||
coeffy[p]=new int [mb];
|
||||
coeffz[p]=new int [mb];
|
||||
}
|
||||
Mf = new int*[mc];
|
||||
int *M = new int[mlength+1];
|
||||
for (p=0;p<mlength+1;p++) {
|
||||
M[p]=0;
|
||||
}
|
||||
for (p1=0;p1<mc;p1++) {
|
||||
Mf[p1] = new int[mlength+1];
|
||||
for (p=0;p<mlength+1;p++) {
|
||||
Mf[p1][p]=0;
|
||||
}
|
||||
}
|
||||
M[0] = 2;
|
||||
Mf[0][0] = 2;
|
||||
n = 1;
|
||||
int m1 = 1;
|
||||
bool go = true;
|
||||
bool broke = false;
|
||||
while (go) {
|
||||
broke = false;
|
||||
for (i1=0;i1<mlength-1;i1++) {
|
||||
if (M[i1+1] == 0) {
|
||||
M[i1+1]=M[i1+1]+1;
|
||||
for (p1=0;p1<mlength+1;p1++) {
|
||||
Mf[n][p1] = M[p1];
|
||||
}
|
||||
n = n+1;
|
||||
broke = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (m1<mlength && !broke) {
|
||||
M[m1]=M[m1]+1;
|
||||
for (p1=m1+1;p1<mlength+1;p1++) {
|
||||
M[p1]=0;
|
||||
}
|
||||
for (p1=0;p1<mlength+1;p1++) {
|
||||
Mf[n][p1]=M[p1];
|
||||
}
|
||||
n=n+1;
|
||||
broke = true;
|
||||
m1 = m1+1;
|
||||
}
|
||||
if (!broke) {
|
||||
go = false;
|
||||
}
|
||||
}
|
||||
for (p=0;p<mb;p++) {
|
||||
for (p1=0;p1<mc;p1++) {
|
||||
if (p==0) {
|
||||
coeffx[p1][p]=0;
|
||||
coeffy[p1][p]=0;
|
||||
coeffz[p1][p]=0;
|
||||
}
|
||||
else{
|
||||
coeffx[p1][p]=coeffx[p1][p-1];
|
||||
if (Mf[p1][p]==0) {
|
||||
coeffx[p1][p]++;
|
||||
}
|
||||
coeffy[p1][p]=coeffy[p1][p-1];
|
||||
if (Mf[p1][p]==1) {
|
||||
coeffy[p1][p]++;
|
||||
}
|
||||
coeffz[p1][p]=coeffz[p1][p-1];
|
||||
if (Mf[p1][p]==2) {
|
||||
coeffz[p1][p]++;
|
||||
}
|
||||
}
|
||||
coeff[p1][p] = pair->factorial(p)/pair->factorial(coeffx[p1][p])/pair->factorial(coeffy[p1][p])/pair->factorial(coeffz[p1][p]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Called by getproperties. Gets 3-body features and dfeatures
|
||||
void Fingerprint_bondscreened::compute_fingerprint(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,double *Sik, double *dSikx, double*dSiky, double *dSikz, double *dSijkx, double *dSijky, double *dSijkz, bool *Bij, int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i;
|
||||
//select the more efficient algorithm for this particular potential and environment.
|
||||
if (jnum*2>(mlength+1)*mlength*20) {
|
||||
do3bodyfeatureset_singleneighborloop(features,dfeaturesx,dfeaturesy,dfeaturesz,Sik,dSikx,dSiky,dSikz,dSijkx,dSijky,dSijkz,Bij,ii,sid,xn,yn,zn,tn,jnum,jl);
|
||||
}
|
||||
else{
|
||||
do3bodyfeatureset_doubleneighborloop(features,dfeaturesx,dfeaturesy,dfeaturesz,Sik,dSikx,dSiky,dSikz,dSijkx,dSijky,dSijkz,Bij,ii,sid,xn,yn,zn,tn,jnum,jl);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//Called by do3bodyfeatureset. Algorithm for high neighbor numbers and small series of bond angle powers
|
||||
void Fingerprint_bondscreened::do3bodyfeatureset_singleneighborloop(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,double *Sik, double *dSikx, double*dSiky, double *dSikz, double *dSijkx, double *dSijky, double *dSijkz, bool *Bij,int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i,j,jj,itype,jtype,kk,m,n,mcount,a,a1,a2,ai;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int count=0;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
int *type = sim->type;
|
||||
double cutmax = pair->cutmax;
|
||||
int res = pair->res;
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
ilist = sim->ilist;
|
||||
int nelements=pair->nelements;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double expr[jnum][kmax+12];
|
||||
int p = kmax;
|
||||
int countmb=((mlength)*(mlength+1))>>1;
|
||||
// calculate interpolation expr, rinvs and dfc, for each neighbor
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype && atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
delx=xn[jj];
|
||||
dely=yn[jj];
|
||||
delz=zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq>rc*rc) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
r1 = r1-trunc(r1);
|
||||
double *p0 = &expcuttable[(m1-1)*kmax];
|
||||
double *p1 = &expcuttable[m1*kmax];
|
||||
double *p2 = &expcuttable[(m1+1)*kmax];
|
||||
double *p3 = &expcuttable[(m1+2)*kmax];
|
||||
for (kk=0;kk<kmax;kk++) {
|
||||
expr[jj][kk] = p1[kk]+0.5*r1*(p2[kk]-p0[kk]+r1*(2.0*p0[kk]-5.0*p1[kk]+4.0*p2[kk]-p3[kk]+r1*(3.0*(p1[kk]-p2[kk])+p3[kk]-p0[kk])));
|
||||
expr[jj][kk] *= Sik[jj];
|
||||
}
|
||||
double* q = &dfctable[m1-1];
|
||||
double* ri = &rinvsqrttable[m1-1];
|
||||
double dfc = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
double rinvs = ri[1] + 0.5 * r1*(ri[2] - ri[0] + r1*(2.0*ri[0] - 5.0*ri[1] + 4.0*ri[2] - ri[3] + r1*(3.0*(ri[1] - ri[2]) + ri[3] - ri[0])));
|
||||
|
||||
expr[jj][p]=delx*rinvs;
|
||||
expr[jj][p+1]=dely*rinvs;
|
||||
expr[jj][p+2]=delz*rinvs;
|
||||
//Hack to avoid nan when x y or z component of radial vector is exactly 0. Shouldn't affect accuracy.
|
||||
if (expr[jj][p]*expr[jj][p]<0.000000000001) {
|
||||
expr[jj][p] = 0.000001;
|
||||
}
|
||||
if (expr[jj][p+1]*expr[jj][p+1]<0.000000000001) {
|
||||
expr[jj][p+1] = 0.000001;
|
||||
}
|
||||
if (expr[jj][p+2]*expr[jj][p+2]<0.000000000001) {
|
||||
expr[jj][p+2] = 0.000001;
|
||||
}
|
||||
expr[jj][p+3] = -dfc*expr[jj][p]-dSikx[jj];
|
||||
expr[jj][p+4] = rinvs/expr[jj][p];
|
||||
expr[jj][p+5] = rinvs*expr[jj][p];
|
||||
expr[jj][p+6] = -dfc*expr[jj][p+1]-dSiky[jj];
|
||||
expr[jj][p+7] = rinvs/expr[jj][p+1];
|
||||
expr[jj][p+8] = rinvs*expr[jj][p+1];
|
||||
expr[jj][p+9] = -dfc*expr[jj][p+2]-dSikz[jj];
|
||||
expr[jj][p+10] = rinvs/expr[jj][p+2];
|
||||
expr[jj][p+11] = rinvs*expr[jj][p+2];
|
||||
}
|
||||
|
||||
int kb = kmax;
|
||||
int mb = mlength;
|
||||
count = startingneuron;
|
||||
double Bb[mb];
|
||||
double dBbx;
|
||||
double dBby;
|
||||
double dBbz;
|
||||
double dBbx1[mb];
|
||||
double dBby1[mb];
|
||||
double dBbz1[mb];
|
||||
double yprod;
|
||||
for (mcount=0;mcount<countmb;mcount++) {
|
||||
int *M = Mf[mcount];
|
||||
int *_coeffx = coeffx[mcount];
|
||||
int *_coeffy = coeffy[mcount];
|
||||
int *_coeffz = coeffz[mcount];
|
||||
int *_coeff = coeff[mcount];
|
||||
a = mb+1;
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
if (Mf[mcount][a1+1]==0) {
|
||||
a = a1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (n=0;n<kb;n++) {
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
Bb[a1]=0;
|
||||
dBbx1[a1] = 0;
|
||||
dBby1[a1] = 0;
|
||||
dBbz1[a1] = 0;
|
||||
}
|
||||
ai = n;
|
||||
double y1 = alpha_k[ai]/re;
|
||||
//loop over jtype to get Bb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
double yprod = expr[jj][ai];
|
||||
double *y4 = &expr[jj][p];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
Bb[a2]=Bb[a2]+yprod;
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
}
|
||||
if (atomtypes[1]!=atomtypes[2]) {//Bb!=Bg
|
||||
double Bg[mb];
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
Bg[a1]=0;
|
||||
}
|
||||
ai = n;
|
||||
double y1 = alpha_k[ai]/re;
|
||||
//loop over ktype to get Bg
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
continue;
|
||||
}
|
||||
double yprod = expr[jj][ai];
|
||||
double *y4 = &expr[jj][p];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
Bg[a2]=Bg[a2]+yprod;
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
}
|
||||
double B1;
|
||||
//loop over ktype to get dBg*Bb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
continue;
|
||||
}
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = Bb[a2]*_coeff[a2]*yprod;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dBbx1[a2] -= dBbx;
|
||||
dBby1[a2] -= dBby;
|
||||
dBbz1[a2] -= dBbz;
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
for (kk=0;kk<jnum;kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
dfeaturesx[n*mb+a2+count+kk*f]+=B1*dSijkx[jj*jnum+kk];
|
||||
dfeaturesy[n*mb+a2+count+kk*f]+=B1*dSijky[jj*jnum+kk];
|
||||
dfeaturesz[n*mb+a2+count+kk*f]+=B1*dSijkz[jj*jnum+kk];
|
||||
}
|
||||
}
|
||||
}
|
||||
//loop over jtype to get dBb*Bg
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = Bg[a2]*_coeff[a2]*yprod;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dBbx1[a2] -= dBbx;
|
||||
dBby1[a2] -= dBby;
|
||||
dBbz1[a2] -= dBbz;
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
for (kk=0;kk<jnum;kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
dfeaturesx[n*mb+a2+count+kk*f]+=B1*dSijkx[jj*jnum+kk];
|
||||
dfeaturesy[n*mb+a2+count+kk*f]+=B1*dSijky[jj*jnum+kk];
|
||||
dfeaturesz[n*mb+a2+count+kk*f]+=B1*dSijkz[jj*jnum+kk];
|
||||
}
|
||||
}
|
||||
}
|
||||
//central atom derivative
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
ai = n*(mb)+a2+count+jnum*f;
|
||||
features[ai-jnum*f] += Bb[a2]*Bg[a2]*_coeff[a2];
|
||||
}
|
||||
}
|
||||
else{//Bb=Bg
|
||||
double B1;
|
||||
//loop over jtype to get 2*Bb*dBb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = 2*Bb[a2]*_coeff[a2]*yprod;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dBbx1[a2] -= dBbx;
|
||||
dBby1[a2] -= dBby;
|
||||
dBbz1[a2] -= dBbz;
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
for (kk=0;kk<jnum;kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
dfeaturesx[n*mb+a2+count+kk*f]+=B1*dSijkx[jj*jnum+kk];
|
||||
dfeaturesy[n*mb+a2+count+kk*f]+=B1*dSijky[jj*jnum+kk];
|
||||
dfeaturesz[n*mb+a2+count+kk*f]+=B1*dSijkz[jj*jnum+kk];
|
||||
}
|
||||
}
|
||||
}
|
||||
//central atom derivative
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
ai = n*(mb)+a2+count+jnum*f;
|
||||
features[ai-jnum*f] += Bb[a2]*Bb[a2]*_coeff[a2];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
count = startingneuron;
|
||||
for (n=0;n<kb;n++) {
|
||||
for (m=0;m<mb;m++) {
|
||||
dfeaturesx[jnum*f+count]-=dfeaturesx[jj*f+count];
|
||||
dfeaturesy[jnum*f+count]-=dfeaturesy[jj*f+count];
|
||||
dfeaturesz[jnum*f+count]-=dfeaturesz[jj*f+count];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Called by do3bodyfeatureset. Algorithm for low neighbor numbers and large series of bond angle powers
|
||||
void Fingerprint_bondscreened::do3bodyfeatureset_doubleneighborloop(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,double *Sik, double *dSikx, double*dSiky, double *dSikz, double *dSijkx, double *dSijky, double *dSijkz, bool *Bij,int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i,j,jj,itype,jtype,ktype,kk,m,n;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int jtypes = atomtypes[1];
|
||||
int ktypes = atomtypes[2];
|
||||
int count=0;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
int *type = sim->type;
|
||||
int nelements = pair->nelements;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
ilist = sim->ilist;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double expr[jnum][kmax];
|
||||
double y[jnum][3];
|
||||
double ri[jnum];
|
||||
double dfc[jnum];
|
||||
int kb = kmax;
|
||||
int mb = mlength;
|
||||
double Bijk[kb][mb];
|
||||
double c41[kmax];
|
||||
double c51[kmax];
|
||||
double c61[kmax];
|
||||
double ct[kmax];
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (jtypes != nelements && jtypes != jtype && ktypes != nelements && ktypes != jtype) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
delx = xn[jj];
|
||||
dely = yn[jj];
|
||||
delz = zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq>rc*rc) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
if (!(m1>=1 && m1 <= res))pair->errorf(FLERR,"Neighbor list is invalid.");//usually results from nan somewhere.
|
||||
r1 = r1-trunc(r1);
|
||||
double *p0 = &expcuttable[(m1-1)*kmax];
|
||||
double *p1 = &expcuttable[m1*kmax];
|
||||
double *p2 = &expcuttable[(m1+1)*kmax];
|
||||
double *p3 = &expcuttable[(m1+2)*kmax];
|
||||
for (kk=0;kk<kmax;kk++) {
|
||||
expr[jj][kk] = p1[kk]+0.5*r1*(p2[kk]-p0[kk]+r1*(2.0*p0[kk]-5.0*p1[kk]+4.0*p2[kk]-p3[kk]+r1*(3.0*(p1[kk]-p2[kk])+p3[kk]-p0[kk])));
|
||||
expr[jj][kk] *= Sik[jj];
|
||||
}
|
||||
double* q = &dfctable[m1-1];
|
||||
double* r2 = &rinvsqrttable[m1-1];
|
||||
dfc[jj] = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
ri[jj] = r2[1] + 0.5 * r1*(r2[2] - r2[0] + r1*(2.0*r2[0] - 5.0*r2[1] + 4.0*r2[2] - r2[3] + r1*(3.0*(r2[1] - r2[2]) + r2[3] - r2[0])));
|
||||
y[jj][0]=delx*ri[jj];
|
||||
y[jj][1]=dely*ri[jj];
|
||||
y[jj][2]=delz*ri[jj];
|
||||
}
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0)continue;
|
||||
jtype =tn[jj];
|
||||
if (jtypes != nelements && jtypes != jtype) {
|
||||
continue;
|
||||
}
|
||||
for (n = 0;n<kmax;n++) {
|
||||
ct[n] = alpha_k[n]/re;
|
||||
c41[n]=(-ct[n]+dfc[jj])*y[jj][0]+dSikx[jj];
|
||||
c51[n]=(-ct[n]+dfc[jj])*y[jj][1]+dSiky[jj];
|
||||
c61[n]=(-ct[n]+dfc[jj])*y[jj][2]+dSikz[jj];
|
||||
}
|
||||
for (n=0;n<kb;n++) {for (m=0;m<mb;m++) {Bijk[n][m]=0;}}
|
||||
for (kk=0;kk< jnum; kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
if (expr[kk][0]==0)continue;
|
||||
ktype = tn[kk];
|
||||
if (ktypes != nelements && ktypes != ktype) {
|
||||
continue;
|
||||
}
|
||||
count = startingneuron;
|
||||
double dot = (y[jj][0]*y[kk][0]+y[jj][1]*y[kk][1]+y[jj][2]*y[kk][2]);
|
||||
double c1 = ri[jj]*(y[kk][0]-dot*y[jj][0]);
|
||||
double c2 = ri[jj]*(y[kk][1]-dot*y[jj][1]);
|
||||
double c3 = ri[jj]*(y[kk][2]-dot*y[jj][2]);
|
||||
double c10 = ri[kk]*(y[jj][0]-dot*y[kk][0]);
|
||||
double c11 = ri[kk]*(y[jj][1]-dot*y[kk][1]);
|
||||
double c12 = ri[kk]*(y[jj][2]-dot*y[kk][2]);
|
||||
for (n=0;n<kb;n++) {
|
||||
double dot1=expr[jj][n]*expr[kk][n];
|
||||
double c4 = c41[n];
|
||||
double c5 = c51[n];
|
||||
double c6 = c61[n];
|
||||
double ct2 = -ct[n]+dfc[kk];
|
||||
double c42 = ct2*y[kk][0]+dSikx[kk];
|
||||
double c52 = ct2*y[kk][1]+dSiky[kk];
|
||||
double c62 = ct2*y[kk][2]+dSikz[kk];
|
||||
//m=0
|
||||
Bijk[n][0]+=dot1;
|
||||
features[count]+=dot1;
|
||||
dfeaturesx[jj*f+count]+=dot1*c4;
|
||||
dfeaturesy[jj*f+count]+=dot1*c5;
|
||||
dfeaturesz[jj*f+count]+=dot1*c6;
|
||||
dfeaturesx[kk*f+count]+=dot1*c42;
|
||||
dfeaturesy[kk*f+count]+=dot1*c52;
|
||||
dfeaturesz[kk*f+count]+=dot1*c62;
|
||||
c4*=dot;
|
||||
c5*=dot;
|
||||
c6*=dot;
|
||||
c42*=dot;
|
||||
c52*=dot;
|
||||
c62*=dot;
|
||||
count++;
|
||||
for (m=1;m<mb;m++) {
|
||||
double c7 = dot1*(m*c1+c4);
|
||||
double c8 = dot1*(m*c2+c5);
|
||||
double c9 = dot1*(m*c3+c6);
|
||||
dfeaturesx[jj*f+count]+=c7;
|
||||
dfeaturesy[jj*f+count]+=c8;
|
||||
dfeaturesz[jj*f+count]+=c9;
|
||||
dfeaturesx[kk*f+count]+=dot1*(m*c10+c42);
|
||||
dfeaturesy[kk*f+count]+=dot1*(m*c11+c52);
|
||||
dfeaturesz[kk*f+count]+=dot1*(m*c12+c62);
|
||||
dot1*=dot;
|
||||
features[count++]+=dot1;
|
||||
Bijk[n][m] += dot1;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (kk=0;kk<jnum;kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
if (expr[kk][0]==0)continue;
|
||||
ktype = tn[kk];
|
||||
if (ktypes != nelements && ktypes != ktype) {
|
||||
continue;
|
||||
}
|
||||
count = startingneuron;
|
||||
for (n=0;n<kb;n++) {
|
||||
for (m=0;m<mb;m++) {
|
||||
dfeaturesx[kk*f+count]+=2*Bijk[n][m]*dSijkx[jj*jnum+kk];
|
||||
dfeaturesy[kk*f+count]+=2*Bijk[n][m]*dSijky[jj*jnum+kk];
|
||||
dfeaturesz[kk*f+count]+=2*Bijk[n][m]*dSijkz[jj*jnum+kk];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
count = startingneuron;
|
||||
for (n=0;n<kb;n++) {
|
||||
for (m=0;m<mb;m++) {
|
||||
dfeaturesx[jnum*f+count]-=dfeaturesx[jj*f+count];
|
||||
dfeaturesy[jnum*f+count]-=dfeaturesy[jj*f+count];
|
||||
dfeaturesz[jnum*f+count]-=dfeaturesz[jj*f+count];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
72
src/USER-RANN/rann_fingerprint_bondscreened.h
Normal file
72
src/USER-RANN/rann_fingerprint_bondscreened.h
Normal file
@ -0,0 +1,72 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifndef LMP_RANN_FINGERPRINT_BONDSCREENED_H
|
||||
#define LMP_RANN_FINGERPRINT_BONDSCREENED_H
|
||||
|
||||
#include "rann_fingerprint.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
|
||||
class Fingerprint_bondscreened : public Fingerprint {
|
||||
public:
|
||||
Fingerprint_bondscreened(PairRANN *);
|
||||
~Fingerprint_bondscreened();
|
||||
bool parse_values(std::string,std::vector<std::string>);
|
||||
void write_values(FILE *);
|
||||
void init(int*,int);
|
||||
void allocate();
|
||||
void compute_fingerprint(double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,bool*,int,int,double*,double*,double*,int*,int,int*);
|
||||
void do3bodyfeatureset_doubleneighborloop(double *,double *,double *,double *,double*,double*,double*,double*,double*,double*,double*,bool*,int,int,double*,double*,double*,int*,int,int*);
|
||||
void do3bodyfeatureset_singleneighborloop(double *,double *,double *,double *,double*,double*,double*,double*,double*,double*,double*,bool*,int,int,double*,double*,double*,int*,int,int*);
|
||||
void generate_exp_cut_table();
|
||||
void generate_coefficients();
|
||||
int get_length();
|
||||
|
||||
double *expcuttable;
|
||||
double *dfctable;
|
||||
double dr;
|
||||
double *alpha_k;
|
||||
double re;
|
||||
int **coeff;
|
||||
int **coeffx;
|
||||
int **coeffy;
|
||||
int **coeffz;
|
||||
int kmax;
|
||||
int mlength;
|
||||
int **Mf;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif /* FINGERPRINT_BOND_H_ */
|
||||
815
src/USER-RANN/rann_fingerprint_bondscreenedspin.cpp
Normal file
815
src/USER-RANN/rann_fingerprint_bondscreenedspin.cpp
Normal file
@ -0,0 +1,815 @@
|
||||
// clang-format off
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
#include "rann_fingerprint_bondscreenedspin.h"
|
||||
|
||||
|
||||
using namespace LAMMPS_NS::RANN;
|
||||
|
||||
Fingerprint_bondscreenedspin::Fingerprint_bondscreenedspin(PairRANN *_pair) : Fingerprint(_pair)
|
||||
{
|
||||
n_body_type = 3;
|
||||
dr = 0;
|
||||
re = 0;
|
||||
rc = 0;
|
||||
alpha_k = new double [1];
|
||||
alpha_k[0] = -1;
|
||||
kmax = 0;
|
||||
mlength = 0;
|
||||
id = -1;
|
||||
style = "bondscreenedspin";
|
||||
atomtypes = new int [n_body_type];
|
||||
empty = true;
|
||||
_pair->doscreen = true;
|
||||
screen = true;
|
||||
_pair->dospin = true;
|
||||
spin = true;
|
||||
}
|
||||
|
||||
Fingerprint_bondscreenedspin::~Fingerprint_bondscreenedspin() {
|
||||
delete [] alpha_k;
|
||||
delete [] atomtypes;
|
||||
delete [] expcuttable;
|
||||
delete [] dfctable;
|
||||
for (int i=0;i<(mlength*(mlength+1))>>1;i++) {
|
||||
delete [] coeff[i];
|
||||
delete [] coeffx[i];
|
||||
delete [] coeffy[i];
|
||||
delete [] coeffz[i];
|
||||
delete [] Mf[i];
|
||||
}
|
||||
delete [] coeff;
|
||||
delete [] coeffx;
|
||||
delete [] coeffy;
|
||||
delete [] coeffz;
|
||||
delete [] Mf;
|
||||
delete [] rinvsqrttable;
|
||||
}
|
||||
|
||||
bool Fingerprint_bondscreenedspin::parse_values(std::string constant,std::vector<std::string> line1) {
|
||||
int nwords,l;
|
||||
nwords=line1.size();
|
||||
if (constant.compare("re")==0) {
|
||||
re = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("rc")==0) {
|
||||
rc = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("alphak")==0) {
|
||||
delete [] alpha_k;
|
||||
alpha_k = new double [nwords];
|
||||
for (l=0;l<nwords;l++) {
|
||||
alpha_k[l]=strtod(line1[l].c_str(),NULL);
|
||||
}
|
||||
}
|
||||
else if (constant.compare("dr")==0) {
|
||||
dr = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("k")==0) {
|
||||
kmax = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else if (constant.compare("m")==0) {
|
||||
mlength = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else pair->errorf(FLERR,"Undefined value for bond power");
|
||||
if (re!=0.0 && rc!=0.0 && alpha_k[0]!=-1 && dr!=0.0 && mlength!=0 && kmax!=0)return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void Fingerprint_bondscreenedspin::write_values(FILE *fid) {
|
||||
int i;
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:re:\n",style,id);
|
||||
fprintf(fid,"%f\n",re);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:rc:\n",style,id);
|
||||
fprintf(fid,"%f\n",rc);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:alphak:\n",style,id);
|
||||
for (i=0;i<kmax;i++) {
|
||||
fprintf(fid,"%f ",alpha_k[i]);
|
||||
}
|
||||
fprintf(fid,"\n");
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:dr:\n",style,id);
|
||||
fprintf(fid,"%f\n",dr);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:k:\n",style,id);
|
||||
fprintf(fid,"%d\n",kmax);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:m:\n",style,id);
|
||||
fprintf(fid,"%d\n",mlength);
|
||||
}
|
||||
|
||||
void Fingerprint_bondscreenedspin::init(int *i,int _id) {
|
||||
for (int j=0;j<n_body_type;j++) {atomtypes[j] = i[j];}
|
||||
re = 0;
|
||||
rc = 0;
|
||||
mlength = 0;
|
||||
kmax = 0;
|
||||
alpha_k = new double [1];
|
||||
alpha_k[0]=-1;
|
||||
empty = false;
|
||||
id = _id;
|
||||
}
|
||||
|
||||
//number of neurons defined by this fingerprint
|
||||
int Fingerprint_bondscreenedspin::get_length() {
|
||||
return mlength*kmax;
|
||||
}
|
||||
|
||||
void Fingerprint_bondscreenedspin::allocate() {
|
||||
generate_exp_cut_table();
|
||||
generate_coefficients();
|
||||
generate_rinvssqrttable();
|
||||
}
|
||||
|
||||
//Generate table of complex functions for quick reference during compute. Used by do3bodyfeatureset_singleneighborloop and do3bodyfeatureset_doubleneighborloop.
|
||||
void Fingerprint_bondscreenedspin::generate_exp_cut_table() {
|
||||
int m,n;
|
||||
double r1;
|
||||
int buf = 5;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
expcuttable = new double [(res+buf)*(kmax)];
|
||||
dfctable = new double [res+buf];
|
||||
for (m=0;m<(res+buf);m++) {
|
||||
r1 = cutmax*cutmax*(double)(m)/(double)(res);
|
||||
for (n=0;n<(kmax);n++) {
|
||||
expcuttable[n+m*(kmax)] = exp(-alpha_k[n]/re*sqrt(r1))*cutofffunction(sqrt(r1),rc,dr);
|
||||
}
|
||||
if (sqrt(r1)>=rc || sqrt(r1) <= (rc-dr)) {
|
||||
dfctable[m]=0;
|
||||
}
|
||||
else{
|
||||
dfctable[m]=-8*pow(1-(rc-sqrt(r1))/dr,3)/dr/(1-pow(1-(rc-sqrt(r1))/dr,4));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Generate table of complex functions for quick reference during compute. Used by do3bodyfeatureset_singleneighborloop.
|
||||
void Fingerprint_bondscreenedspin::generate_coefficients() { //calculates multinomial coefficient for each term
|
||||
int p,mb,mc;
|
||||
int n,p1,i1;
|
||||
mb = mlength;
|
||||
mc=(mb*(mb+1))>>1;
|
||||
coeff = new int *[mc];
|
||||
coeffx = new int *[mc];
|
||||
coeffy = new int *[mc];
|
||||
coeffz = new int *[mc];
|
||||
for (p=0;p<mc;p++) {
|
||||
coeff[p]=new int [mb];
|
||||
coeffx[p]=new int [mb];
|
||||
coeffy[p]=new int [mb];
|
||||
coeffz[p]=new int [mb];
|
||||
}
|
||||
Mf = new int*[mc];
|
||||
int *M = new int[mlength+1];
|
||||
for (p=0;p<mlength+1;p++) {
|
||||
M[p]=0;
|
||||
}
|
||||
for (p1=0;p1<mc;p1++) {
|
||||
Mf[p1] = new int[mlength+1];
|
||||
for (p=0;p<mlength+1;p++) {
|
||||
Mf[p1][p]=0;
|
||||
}
|
||||
}
|
||||
M[0] = 2;
|
||||
Mf[0][0] = 2;
|
||||
n = 1;
|
||||
int m1 = 1;
|
||||
bool go = true;
|
||||
bool broke = false;
|
||||
while (go) {
|
||||
broke = false;
|
||||
for (i1=0;i1<mlength-1;i1++) {
|
||||
if (M[i1+1] == 0) {
|
||||
M[i1+1]=M[i1+1]+1;
|
||||
for (p1=0;p1<mlength+1;p1++) {
|
||||
Mf[n][p1] = M[p1];
|
||||
}
|
||||
n = n+1;
|
||||
broke = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (m1<mlength && !broke) {
|
||||
M[m1]=M[m1]+1;
|
||||
for (p1=m1+1;p1<mlength+1;p1++) {
|
||||
M[p1]=0;
|
||||
}
|
||||
for (p1=0;p1<mlength+1;p1++) {
|
||||
Mf[n][p1]=M[p1];
|
||||
}
|
||||
n=n+1;
|
||||
broke = true;
|
||||
m1 = m1+1;
|
||||
}
|
||||
if (!broke) {
|
||||
go = false;
|
||||
}
|
||||
}
|
||||
for (p=0;p<mb;p++) {
|
||||
for (p1=0;p1<mc;p1++) {
|
||||
if (p==0) {
|
||||
coeffx[p1][p]=0;
|
||||
coeffy[p1][p]=0;
|
||||
coeffz[p1][p]=0;
|
||||
}
|
||||
else{
|
||||
coeffx[p1][p]=coeffx[p1][p-1];
|
||||
if (Mf[p1][p]==0) {
|
||||
coeffx[p1][p]++;
|
||||
}
|
||||
coeffy[p1][p]=coeffy[p1][p-1];
|
||||
if (Mf[p1][p]==1) {
|
||||
coeffy[p1][p]++;
|
||||
}
|
||||
coeffz[p1][p]=coeffz[p1][p-1];
|
||||
if (Mf[p1][p]==2) {
|
||||
coeffz[p1][p]++;
|
||||
}
|
||||
}
|
||||
coeff[p1][p] = pair->factorial(p)/pair->factorial(coeffx[p1][p])/pair->factorial(coeffy[p1][p])/pair->factorial(coeffz[p1][p]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Called by getproperties. Gets 3-body features and dfeatures
|
||||
void Fingerprint_bondscreenedspin::compute_fingerprint(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz, double *dspinx, double *dspiny, double *dspinz,double *Sik, double *dSikx, double*dSiky, double *dSikz, double *dSijkx, double *dSijky, double *dSijkz, bool *Bij, int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i;
|
||||
//select the more efficient algorithm for this particular potential and environment.
|
||||
if (jnum*2>(mlength+1)*mlength*20) {
|
||||
do3bodyfeatureset_singleneighborloop(features,dfeaturesx,dfeaturesy,dfeaturesz,dspinx,dspiny,dspinz,Sik,dSikx,dSiky,dSikz,dSijkx,dSijky,dSijkz,Bij,ii,sid,xn,yn,zn,tn,jnum,jl);
|
||||
}
|
||||
else{
|
||||
do3bodyfeatureset_doubleneighborloop(features,dfeaturesx,dfeaturesy,dfeaturesz,dspinx,dspiny,dspinz,Sik,dSikx,dSiky,dSikz,dSijkx,dSijky,dSijkz,Bij,ii,sid,xn,yn,zn,tn,jnum,jl);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//Called by do3bodyfeatureset. Algorithm for high neighbor numbers and small series of bond angle powers
|
||||
void Fingerprint_bondscreenedspin::do3bodyfeatureset_singleneighborloop(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz, double *dspinx, double *dspiny, double *dspinz,double *Sik, double *dSikx, double*dSiky, double *dSikz, double *dSijkx, double *dSijky, double *dSijkz, bool *Bij, int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i,j,jj,itype,jtype,kk,m,n,mcount,a,a1,a2,ai;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int count=0;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
int *type = sim->type;
|
||||
double cutmax = pair->cutmax;
|
||||
int res = pair->res;
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
ilist = sim->ilist;
|
||||
int nelements=pair->nelements;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double expr[jnum][kmax+12];
|
||||
int p = kmax;
|
||||
int countmb=((mlength)*(mlength+1))>>1;
|
||||
double *si = sim->s[i];
|
||||
// calculate interpolation expr, rinvs and dfc, for each neighbor
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype && atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
delx=xn[jj];
|
||||
dely=yn[jj];
|
||||
delz=zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq>rc*rc) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
r1 = r1-trunc(r1);
|
||||
double *p0 = &expcuttable[(m1-1)*kmax];
|
||||
double *p1 = &expcuttable[m1*kmax];
|
||||
double *p2 = &expcuttable[(m1+1)*kmax];
|
||||
double *p3 = &expcuttable[(m1+2)*kmax];
|
||||
for (kk=0;kk<kmax;kk++) {
|
||||
expr[jj][kk] = p1[kk]+0.5*r1*(p2[kk]-p0[kk]+r1*(2.0*p0[kk]-5.0*p1[kk]+4.0*p2[kk]-p3[kk]+r1*(3.0*(p1[kk]-p2[kk])+p3[kk]-p0[kk])));
|
||||
expr[jj][kk] *= Sik[jj];
|
||||
}
|
||||
double* q = &dfctable[m1-1];
|
||||
double* ri = &rinvsqrttable[m1-1];
|
||||
double dfc = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
double rinvs = ri[1] + 0.5 * r1*(ri[2] - ri[0] + r1*(2.0*ri[0] - 5.0*ri[1] + 4.0*ri[2] - ri[3] + r1*(3.0*(ri[1] - ri[2]) + ri[3] - ri[0])));
|
||||
|
||||
expr[jj][p]=delx*rinvs;
|
||||
expr[jj][p+1]=dely*rinvs;
|
||||
expr[jj][p+2]=delz*rinvs;
|
||||
//Hack to avoid nan when x y or z component of radial vector is exactly 0. Shouldn't affect accuracy.
|
||||
if (expr[jj][p]*expr[jj][p]<0.000000000001) {
|
||||
expr[jj][p] = 0.000001;
|
||||
}
|
||||
if (expr[jj][p+1]*expr[jj][p+1]<0.000000000001) {
|
||||
expr[jj][p+1] = 0.000001;
|
||||
}
|
||||
if (expr[jj][p+2]*expr[jj][p+2]<0.000000000001) {
|
||||
expr[jj][p+2] = 0.000001;
|
||||
}
|
||||
expr[jj][p+3] = -dfc*expr[jj][p]-dSikx[jj];
|
||||
expr[jj][p+4] = rinvs/expr[jj][p];
|
||||
expr[jj][p+5] = rinvs*expr[jj][p];
|
||||
expr[jj][p+6] = -dfc*expr[jj][p+1]-dSiky[jj];
|
||||
expr[jj][p+7] = rinvs/expr[jj][p+1];
|
||||
expr[jj][p+8] = rinvs*expr[jj][p+1];
|
||||
expr[jj][p+9] = -dfc*expr[jj][p+2]-dSikz[jj];
|
||||
expr[jj][p+10] = rinvs/expr[jj][p+2];
|
||||
expr[jj][p+11] = rinvs*expr[jj][p+2];
|
||||
}
|
||||
|
||||
int kb = kmax;
|
||||
int mb = mlength;
|
||||
count = startingneuron;
|
||||
double Bb[mb];
|
||||
double Bbs[mb];
|
||||
double dBbx;
|
||||
double dBby;
|
||||
double dBbz;
|
||||
double yprod;
|
||||
for (mcount=0;mcount<countmb;mcount++) {
|
||||
int *M = Mf[mcount];
|
||||
int *_coeffx = coeffx[mcount];
|
||||
int *_coeffy = coeffy[mcount];
|
||||
int *_coeffz = coeffz[mcount];
|
||||
int *_coeff = coeff[mcount];
|
||||
a = mb+1;
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
if (Mf[mcount][a1+1]==0) {
|
||||
a = a1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (n=0;n<kb;n++) {
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
Bb[a1]=0;
|
||||
Bbs[a1]=0;
|
||||
}
|
||||
ai = n;
|
||||
double y1 = alpha_k[ai]/re;
|
||||
//loop over jtype to get Bb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
double yprod = expr[jj][ai];
|
||||
double *y4 = &expr[jj][p];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
Bb[a2]=Bb[a2]+yprod;
|
||||
Bbs[a2]=Bbs[a2]+yprod*sp;
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
}
|
||||
if (atomtypes[1]!=atomtypes[2]) {//Bb!=Bg
|
||||
double Bg[mb];
|
||||
double Bgs[mb];
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
Bg[a1]=0;
|
||||
Bgs[a1]=0;
|
||||
}
|
||||
ai = n;
|
||||
double y1 = alpha_k[ai]/re;
|
||||
//loop over ktype to get Bg
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
double yprod = expr[jj][ai];
|
||||
double *y4 = &expr[jj][p];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
Bg[a2]=Bg[a2]+yprod;
|
||||
Bgs[a2]=Bgs[a2]+yprod*sp;
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
}
|
||||
double B1;
|
||||
//loop over ktype to get dBg*Bb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = Bbs[a2]*_coeff[a2]*yprod*sp;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
dspinx[ai] += yprod*Bbs[a2]*_coeff[a2]*si[0];
|
||||
dspiny[ai] += yprod*Bbs[a2]*_coeff[a2]*si[1];
|
||||
dspinz[ai] += yprod*Bbs[a2]*_coeff[a2]*si[2];
|
||||
dspinx[ai-jj*f+jnum*f] += yprod*Bbs[a2]*_coeff[a2]*sj[0];
|
||||
dspiny[ai-jj*f+jnum*f] += yprod*Bbs[a2]*_coeff[a2]*sj[1];
|
||||
dspinz[ai-jj*f+jnum*f] += yprod*Bbs[a2]*_coeff[a2]*sj[2];
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
for (kk=0;kk<jnum;kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
dfeaturesx[n*mb+a2+count+kk*f]+=B1*dSijkx[jj*jnum+kk];
|
||||
dfeaturesy[n*mb+a2+count+kk*f]+=B1*dSijky[jj*jnum+kk];
|
||||
dfeaturesz[n*mb+a2+count+kk*f]+=B1*dSijkz[jj*jnum+kk];
|
||||
}
|
||||
}
|
||||
}
|
||||
//loop over jtype to get dBb*Bg
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = Bgs[a2]*_coeff[a2]*yprod*sp;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
dspinx[ai] += Bgs[a2]*yprod*_coeff[a2]*si[0];
|
||||
dspiny[ai] += Bgs[a2]*yprod*_coeff[a2]*si[1];
|
||||
dspinz[ai] += Bgs[a2]*yprod*_coeff[a2]*si[2];
|
||||
dspinx[ai-jj*f+jnum*f] += yprod*Bgs[a2]*_coeff[a2]*sj[0];
|
||||
dspiny[ai-jj*f+jnum*f] += yprod*Bgs[a2]*_coeff[a2]*sj[1];
|
||||
dspinz[ai-jj*f+jnum*f] += yprod*Bgs[a2]*_coeff[a2]*sj[2];
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
for (kk=0;kk<jnum;kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
dfeaturesx[n*mb+a2+count+kk*f]+=B1*dSijkx[jj*jnum+kk];
|
||||
dfeaturesy[n*mb+a2+count+kk*f]+=B1*dSijky[jj*jnum+kk];
|
||||
dfeaturesz[n*mb+a2+count+kk*f]+=B1*dSijkz[jj*jnum+kk];
|
||||
}
|
||||
}
|
||||
}
|
||||
//central atom derivative
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
ai = n*(mb)+a2+count+jnum*f;
|
||||
features[ai-jnum*f] += Bbs[a2]*Bgs[a2]*_coeff[a2];
|
||||
}
|
||||
}
|
||||
else{//Bb=Bg
|
||||
double B1;
|
||||
//loop over jtype to get 2*Bb*dBb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = 2*Bbs[a2]*_coeff[a2]*yprod*sp;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
dspinx[ai] += 2*Bbs[a2]*yprod*_coeff[a2]*si[0];
|
||||
dspiny[ai] += 2*Bbs[a2]*yprod*_coeff[a2]*si[1];
|
||||
dspinz[ai] += 2*Bbs[a2]*yprod*_coeff[a2]*si[2];
|
||||
dspinx[ai-jj*f+jnum*f] += 2*yprod*Bbs[a2]*_coeff[a2]*sj[0];
|
||||
dspiny[ai-jj*f+jnum*f] += 2*yprod*Bbs[a2]*_coeff[a2]*sj[1];
|
||||
dspinz[ai-jj*f+jnum*f] += 2*yprod*Bbs[a2]*_coeff[a2]*sj[2];
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
for (kk=0;kk<jnum;kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
dfeaturesx[n*mb+a2+count+kk*f]+=B1*dSijkx[jj*jnum+kk];
|
||||
dfeaturesy[n*mb+a2+count+kk*f]+=B1*dSijky[jj*jnum+kk];
|
||||
dfeaturesz[n*mb+a2+count+kk*f]+=B1*dSijkz[jj*jnum+kk];
|
||||
}
|
||||
}
|
||||
}
|
||||
//central atom derivative
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
ai = n*(mb)+a2+count+jnum*f;
|
||||
features[ai-jnum*f] += Bbs[a2]*Bbs[a2]*_coeff[a2];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
count = startingneuron;
|
||||
for (n=0;n<kb;n++) {
|
||||
for (m=0;m<mb;m++) {
|
||||
dfeaturesx[jnum*f+count]-=dfeaturesx[jj*f+count];
|
||||
dfeaturesy[jnum*f+count]-=dfeaturesy[jj*f+count];
|
||||
dfeaturesz[jnum*f+count]-=dfeaturesz[jj*f+count];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Called by do3bodyfeatureset. Algorithm for low neighbor numbers and large series of bond angle powers
|
||||
void Fingerprint_bondscreenedspin::do3bodyfeatureset_doubleneighborloop(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz, double *dspinx, double *dspiny, double *dspinz,double *Sik, double *dSikx, double*dSiky, double *dSikz, double *dSijkx, double *dSijky, double *dSijkz, bool *Bij, int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i,j,jj,itype,jtype,ktype,kk,m,n;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int jtypes = atomtypes[1];
|
||||
int ktypes = atomtypes[2];
|
||||
int count=0;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
int *type = sim->type;
|
||||
int nelements = pair->nelements;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
ilist = sim->ilist;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double expr[jnum][kmax];
|
||||
double y[jnum][3];
|
||||
double ri[jnum];
|
||||
double dfc[jnum];
|
||||
int kb = kmax;
|
||||
int mb = mlength;
|
||||
double Bijk[kb][mb];
|
||||
double c41[kmax];
|
||||
double c51[kmax];
|
||||
double c61[kmax];
|
||||
double ct[kmax];
|
||||
double *si = sim->s[i];
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (jtypes != nelements && jtypes != jtype && ktypes != nelements && ktypes != jtype) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
delx = xn[jj];
|
||||
dely = yn[jj];
|
||||
delz = zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq>rc*rc) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
if (!(m1>=1 && m1 <= res))pair->errorf(FLERR,"Neighbor list is invalid.");//usually results from nan somewhere.
|
||||
r1 = r1-trunc(r1);
|
||||
double *p0 = &expcuttable[(m1-1)*kmax];
|
||||
double *p1 = &expcuttable[m1*kmax];
|
||||
double *p2 = &expcuttable[(m1+1)*kmax];
|
||||
double *p3 = &expcuttable[(m1+2)*kmax];
|
||||
for (kk=0;kk<kmax;kk++) {
|
||||
expr[jj][kk] = p1[kk]+0.5*r1*(p2[kk]-p0[kk]+r1*(2.0*p0[kk]-5.0*p1[kk]+4.0*p2[kk]-p3[kk]+r1*(3.0*(p1[kk]-p2[kk])+p3[kk]-p0[kk])));
|
||||
expr[jj][kk] *= Sik[jj];
|
||||
}
|
||||
double* q = &dfctable[m1-1];
|
||||
double* r2 = &rinvsqrttable[m1-1];
|
||||
dfc[jj] = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
ri[jj] = r2[1] + 0.5 * r1*(r2[2] - r2[0] + r1*(2.0*r2[0] - 5.0*r2[1] + 4.0*r2[2] - r2[3] + r1*(3.0*(r2[1] - r2[2]) + r2[3] - r2[0])));
|
||||
y[jj][0]=delx*ri[jj];
|
||||
y[jj][1]=dely*ri[jj];
|
||||
y[jj][2]=delz*ri[jj];
|
||||
}
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0)continue;
|
||||
jtype =tn[jj];
|
||||
if (jtypes != nelements && jtypes != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double spj = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
for (n = 0;n<kmax;n++) {
|
||||
ct[n] = alpha_k[n]/re;
|
||||
c41[n]=(-ct[n]+dfc[jj])*y[jj][0]+dSikx[jj];
|
||||
c51[n]=(-ct[n]+dfc[jj])*y[jj][1]+dSiky[jj];
|
||||
c61[n]=(-ct[n]+dfc[jj])*y[jj][2]+dSikz[jj];
|
||||
}
|
||||
for (n=0;n<kb;n++) {for (m=0;m<mb;m++) {Bijk[n][m]=0;}}
|
||||
for (kk=0;kk< jnum; kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
if (expr[kk][0]==0)continue;
|
||||
ktype = tn[kk];
|
||||
if (ktypes != nelements && ktypes != ktype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[kk];
|
||||
double *sk = sim->s[j];
|
||||
double spk = si[0]*sk[0]+si[1]*sk[1]+si[2]*sk[2];
|
||||
count = startingneuron;
|
||||
double dot = (y[jj][0]*y[kk][0]+y[jj][1]*y[kk][1]+y[jj][2]*y[kk][2]);
|
||||
double c1 = ri[jj]*(y[kk][0]-dot*y[jj][0]);
|
||||
double c2 = ri[jj]*(y[kk][1]-dot*y[jj][1]);
|
||||
double c3 = ri[jj]*(y[kk][2]-dot*y[jj][2]);
|
||||
double c10 = ri[kk]*(y[jj][0]-dot*y[kk][0]);
|
||||
double c11 = ri[kk]*(y[jj][1]-dot*y[kk][1]);
|
||||
double c12 = ri[kk]*(y[jj][2]-dot*y[kk][2]);
|
||||
for (n=0;n<kb;n++) {
|
||||
double dot1=expr[jj][n]*expr[kk][n];
|
||||
double c4 = c41[n];
|
||||
double c5 = c51[n];
|
||||
double c6 = c61[n];
|
||||
double ct2 = -ct[n]+dfc[kk];
|
||||
double c42 = ct2*y[kk][0]+dSikx[kk];
|
||||
double c52 = ct2*y[kk][1]+dSiky[kk];
|
||||
double c62 = ct2*y[kk][2]+dSikz[kk];
|
||||
//m=0
|
||||
Bijk[n][0]+=dot1*spj*spk;
|
||||
features[count]+=dot1*spj*spk;
|
||||
dspinx[jj*f+count] += dot1*si[0]*spk;
|
||||
dspiny[jj*f+count] += dot1*si[1]*spk;
|
||||
dspinz[jj*f+count] += dot1*si[2]*spk;
|
||||
dspinx[kk*f+count] += dot1*si[0]*spj;
|
||||
dspiny[kk*f+count] += dot1*si[1]*spj;
|
||||
dspinz[kk*f+count] += dot1*si[2]*spj;
|
||||
dspinx[jnum*f+count] += dot1*(sj[0]*spk+sk[0]*spj);
|
||||
dspiny[jnum*f+count] += dot1*(sj[1]*spk+sk[1]*spj);
|
||||
dspinz[jnum*f+count] += dot1*(sj[2]*spk+sk[2]*spj);
|
||||
dfeaturesx[jj*f+count]+=dot1*c4*spj*spk;
|
||||
dfeaturesy[jj*f+count]+=dot1*c5*spj*spk;
|
||||
dfeaturesz[jj*f+count]+=dot1*c6*spj*spk;
|
||||
dfeaturesx[kk*f+count]+=dot1*c42*spj*spk;
|
||||
dfeaturesy[kk*f+count]+=dot1*c52*spj*spk;
|
||||
dfeaturesz[kk*f+count]+=dot1*c62*spj*spk;
|
||||
c4*=dot;
|
||||
c5*=dot;
|
||||
c6*=dot;
|
||||
c42*=dot;
|
||||
c52*=dot;
|
||||
c62*=dot;
|
||||
count++;
|
||||
for (m=1;m<mb;m++) {
|
||||
double c7 = dot1*(m*c1+c4);
|
||||
double c8 = dot1*(m*c2+c5);
|
||||
double c9 = dot1*(m*c3+c6);
|
||||
dfeaturesx[jj*f+count]+=c7*spj*spk;
|
||||
dfeaturesy[jj*f+count]+=c8*spj*spk;
|
||||
dfeaturesz[jj*f+count]+=c9*spj*spk;
|
||||
dfeaturesx[kk*f+count]+=dot1*(m*c10+c42)*spj*spk;
|
||||
dfeaturesy[kk*f+count]+=dot1*(m*c11+c52)*spj*spk;
|
||||
dfeaturesz[kk*f+count]+=dot1*(m*c12+c62)*spj*spk;
|
||||
dot1*=dot;
|
||||
dspinx[jj*f+count] += dot1*si[0]*spk;
|
||||
dspiny[jj*f+count] += dot1*si[1]*spk;
|
||||
dspinz[jj*f+count] += dot1*si[2]*spk;
|
||||
dspinx[kk*f+count] += dot1*si[0]*spj;
|
||||
dspiny[kk*f+count] += dot1*si[1]*spj;
|
||||
dspinz[kk*f+count] += dot1*si[2]*spj;
|
||||
dspinx[jnum*f+count] += dot1*(sj[0]*spk+sk[0]*spj);
|
||||
dspiny[jnum*f+count] += dot1*(sj[1]*spk+sk[1]*spj);
|
||||
dspinz[jnum*f+count] += dot1*(sj[2]*spk+sk[2]*spj);
|
||||
Bijk[n][m] += dot1*spj*spk;
|
||||
features[count++]+=dot1*spj*spk;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (kk=0;kk<jnum;kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
if (expr[kk][0]==0)continue;
|
||||
ktype = tn[kk];
|
||||
if (ktypes != nelements && ktypes != ktype) {
|
||||
continue;
|
||||
}
|
||||
count = startingneuron;
|
||||
for (n=0;n<kb;n++) {
|
||||
for (m=0;m<mb;m++) {
|
||||
dfeaturesx[kk*f+count]+=2*Bijk[n][m]*dSijkx[jj*jnum+kk];
|
||||
dfeaturesy[kk*f+count]+=2*Bijk[n][m]*dSijky[jj*jnum+kk];
|
||||
dfeaturesz[kk*f+count]+=2*Bijk[n][m]*dSijkz[jj*jnum+kk];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
count = startingneuron;
|
||||
for (n=0;n<kb;n++) {
|
||||
for (m=0;m<mb;m++) {
|
||||
dfeaturesx[jnum*f+count]-=dfeaturesx[jj*f+count];
|
||||
dfeaturesy[jnum*f+count]-=dfeaturesy[jj*f+count];
|
||||
dfeaturesz[jnum*f+count]-=dfeaturesz[jj*f+count];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
72
src/USER-RANN/rann_fingerprint_bondscreenedspin.h
Normal file
72
src/USER-RANN/rann_fingerprint_bondscreenedspin.h
Normal file
@ -0,0 +1,72 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifndef LMP_RANN_FINGERPRINT_BONDSCREENEDSPIN_H
|
||||
#define LMP_RANN_FINGERPRINT_BONDSCREENEDSPIN_H
|
||||
|
||||
#include "rann_fingerprint.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
|
||||
class Fingerprint_bondscreenedspin : public Fingerprint {
|
||||
public:
|
||||
Fingerprint_bondscreenedspin(PairRANN *);
|
||||
~Fingerprint_bondscreenedspin();
|
||||
bool parse_values(std::string,std::vector<std::string>);
|
||||
void write_values(FILE *);
|
||||
void init(int*,int);
|
||||
void allocate();
|
||||
void compute_fingerprint(double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,bool*,int,int,double*,double*,double*,int*,int,int*);
|
||||
void do3bodyfeatureset_doubleneighborloop(double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,bool*,int,int,double*,double*,double*,int*,int,int *);
|
||||
void do3bodyfeatureset_singleneighborloop(double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,bool*,int,int,double*,double*,double*,int*,int,int*);
|
||||
void generate_exp_cut_table();
|
||||
void generate_coefficients();
|
||||
int get_length();
|
||||
|
||||
double *expcuttable;
|
||||
double *dfctable;
|
||||
double dr;
|
||||
double *alpha_k;
|
||||
double re;
|
||||
int **coeff;
|
||||
int **coeffx;
|
||||
int **coeffy;
|
||||
int **coeffz;
|
||||
int kmax;
|
||||
int mlength;
|
||||
int **Mf;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* FINGERPRINT_BOND_H_ */
|
||||
888
src/USER-RANN/rann_fingerprint_bondspin.cpp
Normal file
888
src/USER-RANN/rann_fingerprint_bondspin.cpp
Normal file
@ -0,0 +1,888 @@
|
||||
// clang-format off
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
#include "rann_fingerprint_bondspin.h"
|
||||
|
||||
|
||||
using namespace LAMMPS_NS::RANN;
|
||||
|
||||
Fingerprint_bondspin::Fingerprint_bondspin(PairRANN *_pair) : Fingerprint(_pair)
|
||||
{
|
||||
n_body_type = 3;
|
||||
dr = 0;
|
||||
re = 0;
|
||||
rc = 0;
|
||||
alpha_k = new double [1];
|
||||
alpha_k[0] = -1;
|
||||
kmax = 0;
|
||||
mlength = 0;
|
||||
id = -1;
|
||||
style = "bondspin";
|
||||
atomtypes = new int [n_body_type];
|
||||
empty = true;
|
||||
_pair->allscreen = false;
|
||||
_pair->dospin = true;
|
||||
spin = true;
|
||||
}
|
||||
|
||||
Fingerprint_bondspin::~Fingerprint_bondspin() {
|
||||
delete [] alpha_k;
|
||||
delete [] atomtypes;
|
||||
delete [] expcuttable;
|
||||
delete [] dfctable;
|
||||
for (int i=0;i<(mlength*(mlength+1))>>1;i++) {
|
||||
delete [] coeff[i];
|
||||
delete [] coeffx[i];
|
||||
delete [] coeffy[i];
|
||||
delete [] coeffz[i];
|
||||
delete [] Mf[i];
|
||||
}
|
||||
delete [] coeff;
|
||||
delete [] coeffx;
|
||||
delete [] coeffy;
|
||||
delete [] coeffz;
|
||||
delete [] Mf;
|
||||
delete [] rinvsqrttable;
|
||||
}
|
||||
|
||||
bool Fingerprint_bondspin::parse_values(std::string constant,std::vector<std::string> line1) {
|
||||
int nwords,l;
|
||||
nwords=line1.size();
|
||||
if (constant.compare("re")==0) {
|
||||
re = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("rc")==0) {
|
||||
rc = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("alphak")==0) {
|
||||
delete [] alpha_k;
|
||||
alpha_k = new double [nwords];
|
||||
for (l=0;l<nwords;l++) {
|
||||
alpha_k[l]=strtod(line1[l].c_str(),NULL);
|
||||
}
|
||||
}
|
||||
else if (constant.compare("dr")==0) {
|
||||
dr = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("k")==0) {
|
||||
kmax = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else if (constant.compare("m")==0) {
|
||||
mlength = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else pair->errorf(FLERR,"Undefined value for bond power");
|
||||
if (re!=0.0 && rc!=0.0 && alpha_k[0]!=-1 && dr!=0.0 && mlength!=0 && kmax!=0)return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void Fingerprint_bondspin::write_values(FILE *fid) {
|
||||
int i;
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:re:\n",style,id);
|
||||
fprintf(fid,"%f\n",re);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:rc:\n",style,id);
|
||||
fprintf(fid,"%f\n",rc);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:alphak:\n",style,id);
|
||||
for (i=0;i<kmax;i++) {
|
||||
fprintf(fid,"%f ",alpha_k[i]);
|
||||
}
|
||||
fprintf(fid,"\n");
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:dr:\n",style,id);
|
||||
fprintf(fid,"%f\n",dr);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:k:\n",style,id);
|
||||
fprintf(fid,"%d\n",kmax);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:m:\n",style,id);
|
||||
fprintf(fid,"%d\n",mlength);
|
||||
}
|
||||
|
||||
void Fingerprint_bondspin::init(int *i,int _id) {
|
||||
for (int j=0;j<n_body_type;j++) {atomtypes[j] = i[j];}
|
||||
re = 0;
|
||||
rc = 0;
|
||||
mlength = 0;
|
||||
kmax = 0;
|
||||
alpha_k = new double [1];
|
||||
alpha_k[0]=-1;
|
||||
empty = false;
|
||||
id = _id;
|
||||
}
|
||||
|
||||
//number of neurons defined by this fingerprint
|
||||
int Fingerprint_bondspin::get_length() {
|
||||
return mlength*kmax;
|
||||
}
|
||||
|
||||
void Fingerprint_bondspin::allocate() {
|
||||
generate_exp_cut_table();
|
||||
generate_coefficients();
|
||||
generate_rinvssqrttable();
|
||||
}
|
||||
|
||||
//Generate table of complex functions for quick reference during compute. Used by do3bodyfeatureset_singleneighborloop and do3bodyfeatureset_doubleneighborloop.
|
||||
void Fingerprint_bondspin::generate_exp_cut_table() {
|
||||
int m,n;
|
||||
double r1;
|
||||
int buf = 5;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
expcuttable = new double [(res+buf)*(kmax)];
|
||||
dfctable = new double [res+buf];
|
||||
for (m=0;m<(res+buf);m++) {
|
||||
r1 = cutmax*cutmax*(double)(m)/(double)(res);
|
||||
for (n=0;n<(kmax);n++) {
|
||||
expcuttable[n+m*(kmax)] = exp(-alpha_k[n]/re*sqrt(r1))*cutofffunction(sqrt(r1),rc,dr);
|
||||
}
|
||||
if (sqrt(r1)>=rc || sqrt(r1) <= (rc-dr)) {
|
||||
dfctable[m]=0;
|
||||
}
|
||||
else{
|
||||
dfctable[m]=-8*pow(1-(rc-sqrt(r1))/dr,3)/dr/(1-pow(1-(rc-sqrt(r1))/dr,4));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Generate table of complex functions for quick reference during compute. Used by do3bodyfeatureset_singleneighborloop.
|
||||
void Fingerprint_bondspin::generate_coefficients() { //calculates multinomial coefficient for each term
|
||||
int p,mb,mc;
|
||||
int n,p1,i1;
|
||||
mb = mlength;
|
||||
mc=(mb*(mb+1))>>1;
|
||||
coeff = new int *[mc];
|
||||
coeffx = new int *[mc];
|
||||
coeffy = new int *[mc];
|
||||
coeffz = new int *[mc];
|
||||
for (p=0;p<mc;p++) {
|
||||
coeff[p]=new int [mb];
|
||||
coeffx[p]=new int [mb];
|
||||
coeffy[p]=new int [mb];
|
||||
coeffz[p]=new int [mb];
|
||||
}
|
||||
Mf = new int*[mc];
|
||||
int *M = new int[mlength+1];
|
||||
for (p=0;p<mlength+1;p++) {
|
||||
M[p]=0;
|
||||
}
|
||||
for (p1=0;p1<mc;p1++) {
|
||||
Mf[p1] = new int[mlength+1];
|
||||
for (p=0;p<mlength+1;p++) {
|
||||
Mf[p1][p]=0;
|
||||
}
|
||||
}
|
||||
M[0] = 2;
|
||||
Mf[0][0] = 2;
|
||||
n = 1;
|
||||
int m1 = 1;
|
||||
bool go = true;
|
||||
bool broke = false;
|
||||
while (go) {
|
||||
broke = false;
|
||||
for (i1=0;i1<mlength-1;i1++) {
|
||||
if (M[i1+1] == 0) {
|
||||
M[i1+1]=M[i1+1]+1;
|
||||
for (p1=0;p1<mlength+1;p1++) {
|
||||
Mf[n][p1] = M[p1];
|
||||
}
|
||||
n = n+1;
|
||||
broke = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (m1<mlength && !broke) {
|
||||
M[m1]=M[m1]+1;
|
||||
for (p1=m1+1;p1<mlength+1;p1++) {
|
||||
M[p1]=0;
|
||||
}
|
||||
for (p1=0;p1<mlength+1;p1++) {
|
||||
Mf[n][p1]=M[p1];
|
||||
}
|
||||
n=n+1;
|
||||
broke = true;
|
||||
m1 = m1+1;
|
||||
}
|
||||
if (!broke) {
|
||||
go = false;
|
||||
}
|
||||
}
|
||||
for (p=0;p<mb;p++) {
|
||||
for (p1=0;p1<mc;p1++) {
|
||||
if (p==0) {
|
||||
coeffx[p1][p]=0;
|
||||
coeffy[p1][p]=0;
|
||||
coeffz[p1][p]=0;
|
||||
}
|
||||
else{
|
||||
coeffx[p1][p]=coeffx[p1][p-1];
|
||||
if (Mf[p1][p]==0) {
|
||||
coeffx[p1][p]++;
|
||||
}
|
||||
coeffy[p1][p]=coeffy[p1][p-1];
|
||||
if (Mf[p1][p]==1) {
|
||||
coeffy[p1][p]++;
|
||||
}
|
||||
coeffz[p1][p]=coeffz[p1][p-1];
|
||||
if (Mf[p1][p]==2) {
|
||||
coeffz[p1][p]++;
|
||||
}
|
||||
}
|
||||
coeff[p1][p] = pair->factorial(p)/pair->factorial(coeffx[p1][p])/pair->factorial(coeffy[p1][p])/pair->factorial(coeffz[p1][p]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Called by getproperties. Gets 3-body features and dfeatures
|
||||
void Fingerprint_bondspin::compute_fingerprint(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,double * dspinx,double *dspiny,double *dspinz,int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i;
|
||||
int *ilist,*numneigh;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
ilist = sim->ilist;
|
||||
numneigh = sim->numneigh;
|
||||
i = ilist[ii];
|
||||
//select the more efficient algorithm for this particular potential and environment.
|
||||
if (jnum*2>(mlength+1)*mlength*20) {
|
||||
do3bodyfeatureset_singleneighborloop(features,dfeaturesx,dfeaturesy,dfeaturesz,dspinx,dspiny,dspinz,ii,sid,xn,yn,zn,tn,jnum,jl);
|
||||
}
|
||||
else{
|
||||
do3bodyfeatureset_doubleneighborloop(features,dfeaturesx,dfeaturesy,dfeaturesz,dspinx,dspiny,dspinz,ii,sid,xn,yn,zn,tn,jnum,jl);
|
||||
}
|
||||
}
|
||||
|
||||
//Called by do3bodyfeatureset. Algorithm for high neighbor numbers and small series of bond angle powers
|
||||
void Fingerprint_bondspin::do3bodyfeatureset_singleneighborloop(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,double * dspinx,double *dspiny,double *dspinz,int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i,j,jj,itype,jtype,kk,m,n,mcount,a,a1,a2,ai;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int count=0;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
int *type = sim->type;
|
||||
double cutmax = pair->cutmax;
|
||||
int res = pair->res;
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
ilist = sim->ilist;
|
||||
int nelements=pair->nelements;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double expr[jnum][kmax+12];
|
||||
int p = kmax;
|
||||
int countmb=((mlength)*(mlength+1))>>1;
|
||||
double *si = sim->s[i];
|
||||
// calculate interpolation expr, rinvs and dfc, for each neighbor
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype && atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
delx = xn[jj];
|
||||
dely = yn[jj];
|
||||
delz = zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq>rc*rc) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
r1 = r1-trunc(r1);
|
||||
double *p0 = &expcuttable[(m1-1)*kmax];
|
||||
double *p1 = &expcuttable[m1*kmax];
|
||||
double *p2 = &expcuttable[(m1+1)*kmax];
|
||||
double *p3 = &expcuttable[(m1+2)*kmax];
|
||||
for (kk=0;kk<kmax;kk++) {
|
||||
expr[jj][kk] = p1[kk]+0.5*r1*(p2[kk]-p0[kk]+r1*(2.0*p0[kk]-5.0*p1[kk]+4.0*p2[kk]-p3[kk]+r1*(3.0*(p1[kk]-p2[kk])+p3[kk]-p0[kk])));
|
||||
}
|
||||
double* q = &dfctable[m1-1];
|
||||
double* ri = &rinvsqrttable[m1-1];
|
||||
double dfc = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
double rinvs = ri[1] + 0.5 * r1*(ri[2] - ri[0] + r1*(2.0*ri[0] - 5.0*ri[1] + 4.0*ri[2] - ri[3] + r1*(3.0*(ri[1] - ri[2]) + ri[3] - ri[0])));
|
||||
|
||||
expr[jj][p]=delx*rinvs;
|
||||
expr[jj][p+1]=dely*rinvs;
|
||||
expr[jj][p+2]=delz*rinvs;
|
||||
//Hack to avoid nan when x y or z component of radial vector is exactly 0. Shouldn't affect accuracy.
|
||||
if (expr[jj][p]*expr[jj][p]<0.000000000001) {
|
||||
expr[jj][p] = 0.000001;
|
||||
}
|
||||
if (expr[jj][p+1]*expr[jj][p+1]<0.000000000001) {
|
||||
expr[jj][p+1] = 0.000001;
|
||||
}
|
||||
if (expr[jj][p+2]*expr[jj][p+2]<0.000000000001) {
|
||||
expr[jj][p+2] = 0.000001;
|
||||
}
|
||||
expr[jj][p+3] = -dfc*expr[jj][p];
|
||||
expr[jj][p+4] = rinvs/expr[jj][p];
|
||||
expr[jj][p+5] = rinvs*expr[jj][p];
|
||||
expr[jj][p+6] = -dfc*expr[jj][p+1];
|
||||
expr[jj][p+7] = rinvs/expr[jj][p+1];
|
||||
expr[jj][p+8] = rinvs*expr[jj][p+1];
|
||||
expr[jj][p+9] = -dfc*expr[jj][p+2];
|
||||
expr[jj][p+10] = rinvs/expr[jj][p+2];
|
||||
expr[jj][p+11] = rinvs*expr[jj][p+2];
|
||||
}
|
||||
|
||||
int kb = kmax;
|
||||
int mb = mlength;
|
||||
count = startingneuron;
|
||||
double Bb[mb];
|
||||
double Bbs[mb];
|
||||
double dBbx;
|
||||
double dBby;
|
||||
double dBbz;
|
||||
double yprod;
|
||||
for (mcount=0;mcount<countmb;mcount++) {
|
||||
int *M = Mf[mcount];
|
||||
int *_coeffx = coeffx[mcount];
|
||||
int *_coeffy = coeffy[mcount];
|
||||
int *_coeffz = coeffz[mcount];
|
||||
int *_coeff = coeff[mcount];
|
||||
a = mb+1;
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
if (Mf[mcount][a1+1]==0) {
|
||||
a = a1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (n=0;n<kb;n++) {
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
Bb[a1]=0;
|
||||
Bbs[a1]=0;
|
||||
}
|
||||
ai = n;
|
||||
double y1 = alpha_k[ai]/re;
|
||||
//loop over jtype to get Bb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
double yprod = expr[jj][ai];
|
||||
double *y4 = &expr[jj][p];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
Bb[a2]=Bb[a2]+yprod;
|
||||
Bbs[a2]=Bbs[a2]+yprod*sp;
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
}
|
||||
if (atomtypes[1]!=atomtypes[2]) {//Bb!=Bg
|
||||
double Bg[mb];
|
||||
double Bgs[mb];
|
||||
for (a1=0;a1<mb;a1++) {
|
||||
Bg[a1]=0;
|
||||
Bgs[a1]=0;
|
||||
}
|
||||
ai = n;
|
||||
double y1 = alpha_k[ai]/re;
|
||||
//loop over ktype to get Bg
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
double yprod = expr[jj][ai];
|
||||
double *y4 = &expr[jj][p];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
Bg[a2]=Bg[a2]+yprod;
|
||||
Bgs[a2]=Bgs[a2]+yprod*sp;
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
}
|
||||
double B1;
|
||||
//loop over ktype to get dBg*Bb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[2] != nelements && atomtypes[2] != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = Bbs[a2]*_coeff[a2]*yprod*sp;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
dspinx[ai] += yprod*Bbs[a2]*_coeff[a2]*si[0];
|
||||
dspiny[ai] += yprod*Bbs[a2]*_coeff[a2]*si[1];
|
||||
dspinz[ai] += yprod*Bbs[a2]*_coeff[a2]*si[2];
|
||||
dspinx[ai-jj*f+jnum*f] += yprod*Bbs[a2]*_coeff[a2]*sj[0];
|
||||
dspiny[ai-jj*f+jnum*f] += yprod*Bbs[a2]*_coeff[a2]*sj[1];
|
||||
dspinz[ai-jj*f+jnum*f] += yprod*Bbs[a2]*_coeff[a2]*sj[2];
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
}
|
||||
}
|
||||
//loop over jtype to get dBb*Bg
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = Bgs[a2]*_coeff[a2]*yprod*sp;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
dspinx[ai] += Bgs[a2]*yprod*_coeff[a2]*si[0];
|
||||
dspiny[ai] += Bgs[a2]*yprod*_coeff[a2]*si[1];
|
||||
dspinz[ai] += Bgs[a2]*yprod*_coeff[a2]*si[2];
|
||||
dspinx[ai-jj*f+jnum*f] += yprod*Bgs[a2]*_coeff[a2]*sj[0];
|
||||
dspiny[ai-jj*f+jnum*f] += yprod*Bgs[a2]*_coeff[a2]*sj[1];
|
||||
dspinz[ai-jj*f+jnum*f] += yprod*Bgs[a2]*_coeff[a2]*sj[2];
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
}
|
||||
}
|
||||
//central atom derivative
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
ai = n*(mb)+a2+count+jnum*f;
|
||||
features[ai-jnum*f] += Bbs[a2]*Bgs[a2]*_coeff[a2];
|
||||
}
|
||||
}
|
||||
else{//Bb=Bg
|
||||
double B1;
|
||||
//loop over jtype to get 2*Bb*dBb
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
double *y3 = &expr[jj][p+3];
|
||||
double *y4 = &expr[jj][p];
|
||||
ai = n;
|
||||
yprod = expr[jj][ai];
|
||||
for (a2=0;a2<a;a2++) {
|
||||
yprod *= y4[M[a2+1]];
|
||||
}
|
||||
ai = n*(mb)+a+count+jj*f;
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
B1 = 2*Bbs[a2]*_coeff[a2]*yprod*sp;
|
||||
dBbx = -B1*(y1*y4[0]+y3[0]-_coeffx[a2]*y3[1]+a2*y3[2]);
|
||||
dBby = -B1*(y1*y4[1]+y3[3]-_coeffy[a2]*y3[4]+a2*y3[5]);
|
||||
dBbz = -B1*(y1*y4[2]+y3[6]-_coeffz[a2]*y3[7]+a2*y3[8]);
|
||||
dfeaturesx[ai] += dBbx;
|
||||
dfeaturesy[ai] += dBby;
|
||||
dfeaturesz[ai] += dBbz;
|
||||
dspinx[ai] += 2*Bbs[a2]*yprod*_coeff[a2]*si[0];
|
||||
dspiny[ai] += 2*Bbs[a2]*yprod*_coeff[a2]*si[1];
|
||||
dspinz[ai] += 2*Bbs[a2]*yprod*_coeff[a2]*si[2];
|
||||
dspinx[ai-jj*f+jnum*f] += 2*yprod*Bbs[a2]*_coeff[a2]*sj[0];
|
||||
dspiny[ai-jj*f+jnum*f] += 2*yprod*Bbs[a2]*_coeff[a2]*sj[1];
|
||||
dspinz[ai-jj*f+jnum*f] += 2*yprod*Bbs[a2]*_coeff[a2]*sj[2];
|
||||
yprod *= y4[M[a2+1]];
|
||||
ai++;
|
||||
}
|
||||
}
|
||||
//central atom derivative
|
||||
for (a2=a;a2<mb;a2++) {
|
||||
ai = n*(mb)+a2+count+jnum*f;
|
||||
features[ai-jnum*f] += Bbs[a2]*Bbs[a2]*_coeff[a2];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
count = startingneuron;
|
||||
for (n=0;n<kb;n++) {
|
||||
for (m=0;m<mb;m++) {
|
||||
dfeaturesx[jnum*f+count]-=dfeaturesx[jj*f+count];
|
||||
dfeaturesy[jnum*f+count]-=dfeaturesy[jj*f+count];
|
||||
dfeaturesz[jnum*f+count]-=dfeaturesz[jj*f+count];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Called by do3bodyfeatureset. Algorithm for low neighbor numbers and large series of bond angle powers
|
||||
void Fingerprint_bondspin::do3bodyfeatureset_doubleneighborloop(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,double * dspinx,double *dspiny,double *dspinz,int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl) {
|
||||
int i,j,jj,itype,jtype,ktype,kk,m,n;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
int jtypes = atomtypes[1];
|
||||
int ktypes = atomtypes[2];
|
||||
int count=0;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
double **x = sim->x;
|
||||
int *type = sim->type;
|
||||
int nelements = pair->nelements;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
ilist = sim->ilist;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double expr[jnum][kmax];
|
||||
double y[jnum][3];
|
||||
double ri[jnum];
|
||||
double dfc[jnum];
|
||||
int kb = kmax;
|
||||
int mb = mlength;
|
||||
double c41[kmax];
|
||||
double c51[kmax];
|
||||
double c61[kmax];
|
||||
double ct[kmax];
|
||||
double *si = sim->s[i];
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
jtype = tn[jj];
|
||||
if (jtypes != nelements && jtypes != jtype && ktypes != nelements && ktypes != jtype) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
delx = xn[jj];
|
||||
dely = yn[jj];
|
||||
delz = zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq>rc*rc) {
|
||||
expr[jj][0]=0;
|
||||
continue;
|
||||
}
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
if (!(m1>=1 && m1 <= res))pair->errorf(FLERR,"Neighbor list is invalid.");//usually results from nan somewhere.
|
||||
r1 = r1-trunc(r1);
|
||||
double *p0 = &expcuttable[(m1-1)*kmax];
|
||||
double *p1 = &expcuttable[m1*kmax];
|
||||
double *p2 = &expcuttable[(m1+1)*kmax];
|
||||
double *p3 = &expcuttable[(m1+2)*kmax];
|
||||
for (kk=0;kk<kmax;kk++) {
|
||||
expr[jj][kk] = p1[kk]+0.5*r1*(p2[kk]-p0[kk]+r1*(2.0*p0[kk]-5.0*p1[kk]+4.0*p2[kk]-p3[kk]+r1*(3.0*(p1[kk]-p2[kk])+p3[kk]-p0[kk])));
|
||||
}
|
||||
double* q = &dfctable[m1-1];
|
||||
double* r2 = &rinvsqrttable[m1-1];
|
||||
dfc[jj] = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
ri[jj] = r2[1] + 0.5 * r1*(r2[2] - r2[0] + r1*(2.0*r2[0] - 5.0*r2[1] + 4.0*r2[2] - r2[3] + r1*(3.0*(r2[1] - r2[2]) + r2[3] - r2[0])));
|
||||
y[jj][0]=delx*ri[jj];
|
||||
y[jj][1]=dely*ri[jj];
|
||||
y[jj][2]=delz*ri[jj];
|
||||
}
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
if (expr[jj][0]==0)continue;
|
||||
jtype = tn[jj];
|
||||
if (jtypes != nelements && jtypes != jtype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double spj = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
for (n = 0;n<kmax;n++) {
|
||||
ct[n] = 2*alpha_k[n]/re;
|
||||
c41[n]=(-ct[n]+2*dfc[jj])*y[jj][0];
|
||||
c51[n]=(-ct[n]+2*dfc[jj])*y[jj][1];
|
||||
c61[n]= (-ct[n]+2*dfc[jj])*y[jj][2];
|
||||
}
|
||||
if (jtypes==ktypes) {
|
||||
for (kk=jj+1;kk< jnum; kk++) {
|
||||
if (expr[kk][0]==0)continue;
|
||||
ktype = tn[kk];
|
||||
if (ktypes != nelements && ktypes != ktype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[kk];
|
||||
double *sk = sim->s[j];
|
||||
double spk = si[0]*sk[0]+si[1]*sk[1]+si[2]*sk[2];
|
||||
count = startingneuron;
|
||||
double dot = (y[jj][0]*y[kk][0]+y[jj][1]*y[kk][1]+y[jj][2]*y[kk][2]);
|
||||
double c1 = 2*ri[jj]*(y[kk][0]-dot*y[jj][0]);
|
||||
double c2 = 2*ri[jj]*(y[kk][1]-dot*y[jj][1]);
|
||||
double c3 = 2*ri[jj]*(y[kk][2]-dot*y[jj][2]);
|
||||
double c10 = 2*ri[kk]*(y[jj][0]-dot*y[kk][0]);
|
||||
double c11 = 2*ri[kk]*(y[jj][1]-dot*y[kk][1]);
|
||||
double c12 = 2*ri[kk]*(y[jj][2]-dot*y[kk][2]);
|
||||
for (n=0;n<kb;n++) {
|
||||
double dot1=expr[jj][n]*expr[kk][n];
|
||||
double c4 = c41[n];
|
||||
double c5 = c51[n];
|
||||
double c6 = c61[n];
|
||||
double ct2 = -ct[n]+2*dfc[kk];
|
||||
double c42 = ct2*y[kk][0];
|
||||
double c52 = ct2*y[kk][1];
|
||||
double c62 = ct2*y[kk][2];
|
||||
//m=0
|
||||
dspinx[jj*f+count] += 2*dot1*si[0]*spk;
|
||||
dspiny[jj*f+count] += 2*dot1*si[1]*spk;
|
||||
dspinz[jj*f+count] += 2*dot1*si[2]*spk;
|
||||
dspinx[kk*f+count] += 2*dot1*si[0]*spj;
|
||||
dspiny[kk*f+count] += 2*dot1*si[1]*spj;
|
||||
dspinz[kk*f+count] += 2*dot1*si[2]*spj;
|
||||
dspinx[jnum*f+count] += 2*dot1*(sj[0]*spk+sk[0]*spj);
|
||||
dspiny[jnum*f+count] += 2*dot1*(sj[1]*spk+sk[1]*spj);
|
||||
dspinz[jnum*f+count] += 2*dot1*(sj[2]*spk+sk[2]*spj);
|
||||
features[count]+=2*dot1*spj*spk;
|
||||
dfeaturesx[jj*f+count]+=dot1*c4*spj*spk;
|
||||
dfeaturesy[jj*f+count]+=dot1*c5*spj*spk;
|
||||
dfeaturesz[jj*f+count]+=dot1*c6*spj*spk;
|
||||
dfeaturesx[kk*f+count]+=dot1*c42*spj*spk;
|
||||
dfeaturesy[kk*f+count]+=dot1*c52*spj*spk;
|
||||
dfeaturesz[kk*f+count]+=dot1*c62*spj*spk;
|
||||
c4*=dot;
|
||||
c5*=dot;
|
||||
c6*=dot;
|
||||
c42*=dot;
|
||||
c52*=dot;
|
||||
c62*=dot;
|
||||
count++;
|
||||
for (m=1;m<mb;m++) {
|
||||
double c7 = dot1*(m*c1+c4);
|
||||
double c8 = dot1*(m*c2+c5);
|
||||
double c9 = dot1*(m*c3+c6);
|
||||
dfeaturesx[jj*f+count]+=c7*spj*spk;
|
||||
dfeaturesy[jj*f+count]+=c8*spj*spk;
|
||||
dfeaturesz[jj*f+count]+=c9*spj*spk;
|
||||
dfeaturesx[kk*f+count]+=dot1*(m*c10+c42)*spj*spk;
|
||||
dfeaturesy[kk*f+count]+=dot1*(m*c11+c52)*spj*spk;
|
||||
dfeaturesz[kk*f+count]+=dot1*(m*c12+c62)*spj*spk;
|
||||
dot1*=dot;
|
||||
dspinx[jj*f+count] += 2*dot1*si[0]*spk;
|
||||
dspiny[jj*f+count] += 2*dot1*si[1]*spk;
|
||||
dspinz[jj*f+count] += 2*dot1*si[2]*spk;
|
||||
dspinx[kk*f+count] += 2*dot1*si[0]*spj;
|
||||
dspiny[kk*f+count] += 2*dot1*si[1]*spj;
|
||||
dspinz[kk*f+count] += 2*dot1*si[2]*spj;
|
||||
dspinx[jnum*f+count] += 2*dot1*(sj[0]*spk+sk[0]*spj);
|
||||
dspiny[jnum*f+count] += 2*dot1*(sj[1]*spk+sk[1]*spj);
|
||||
dspinz[jnum*f+count] += 2*dot1*(sj[2]*spk+sk[2]*spj);
|
||||
features[count++]+=2*dot1*spj*spk;
|
||||
}
|
||||
}
|
||||
}
|
||||
kk=jj;
|
||||
if (ktypes == nelements || ktypes == jtype) {
|
||||
count = startingneuron;
|
||||
double dot = (y[jj][0]*y[kk][0]+y[jj][1]*y[kk][1]+y[jj][2]*y[kk][2]);
|
||||
double c1 = 2*ri[jj]*(y[kk][0]-dot*y[jj][0]);
|
||||
double c2 = 2*ri[jj]*(y[kk][1]-dot*y[jj][1]);
|
||||
double c3 = 2*ri[jj]*(y[kk][2]-dot*y[jj][2]);
|
||||
for (n=0;n<kb;n++) {
|
||||
double dot1=expr[jj][n]*expr[kk][n];
|
||||
double c4 = c41[n];
|
||||
double c5 = c51[n];
|
||||
double c6 = c61[n];
|
||||
//m=0
|
||||
features[count]+=dot1*spj*spj;
|
||||
dspinx[jj*f+count] += 2*dot1*si[0]*spj;
|
||||
dspiny[jj*f+count] += 2*dot1*si[1]*spj;
|
||||
dspinz[jj*f+count] += 2*dot1*si[2]*spj;
|
||||
dspinx[jnum*f+count] += 2*dot1*sj[0]*spj;
|
||||
dspiny[jnum*f+count] += 2*dot1*sj[1]*spj;
|
||||
dspinz[jnum*f+count] += 2*dot1*sj[2]*spj;
|
||||
dfeaturesx[jj*f+count]+=dot1*c4*spj*spj;
|
||||
dfeaturesy[jj*f+count]+=dot1*c5*spj*spj;
|
||||
dfeaturesz[jj*f+count]+=dot1*c6*spj*spj;
|
||||
c4*=dot;
|
||||
c5*=dot;
|
||||
c6*=dot;
|
||||
count++;
|
||||
for (m=1;m<mb;m++) {
|
||||
double c7 = dot1*(m*c1+c4);
|
||||
double c8 = dot1*(m*c2+c5);
|
||||
double c9 = dot1*(m*c3+c6);
|
||||
dfeaturesx[jj*f+count]+=c7*spj*spj;
|
||||
dfeaturesy[jj*f+count]+=c8*spj*spj;
|
||||
dfeaturesz[jj*f+count]+=c9*spj*spj;
|
||||
dot1*=dot;
|
||||
dspinx[jj*f+count] += 2*dot1*si[0]*spj;
|
||||
dspiny[jj*f+count] += 2*dot1*si[1]*spj;
|
||||
dspinz[jj*f+count] += 2*dot1*si[2]*spj;
|
||||
dspinx[jnum*f+count] += 2*dot1*sj[0]*spj;
|
||||
dspiny[jnum*f+count] += 2*dot1*sj[1]*spj;
|
||||
dspinz[jnum*f+count] += 2*dot1*sj[2]*spj;
|
||||
features[count++]+=dot1*spj*spj;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (kk=0;kk<jnum; kk++) {
|
||||
if (expr[kk][0]==0)continue;
|
||||
ktype = tn[kk];
|
||||
if (ktypes != nelements && ktypes != ktype) {
|
||||
continue;
|
||||
}
|
||||
j = jl[kk];
|
||||
double *sk = sim->s[j];
|
||||
double spk = si[0]*sk[0]+si[1]*sk[1]+si[2]*sk[2];
|
||||
count = startingneuron;
|
||||
double dot = (y[jj][0]*y[kk][0]+y[jj][1]*y[kk][1]+y[jj][2]*y[kk][2]);
|
||||
double c1 = ri[jj]*(y[kk][0]-dot*y[jj][0]);
|
||||
double c2 = ri[jj]*(y[kk][1]-dot*y[jj][1]);
|
||||
double c3 = ri[jj]*(y[kk][2]-dot*y[jj][2]);
|
||||
double c10 = ri[kk]*(y[jj][0]-dot*y[kk][0]);
|
||||
double c11 = ri[kk]*(y[jj][1]-dot*y[kk][1]);
|
||||
double c12 = ri[kk]*(y[jj][2]-dot*y[kk][2]);
|
||||
for (n=0;n<kb;n++) {
|
||||
double dot1=expr[jj][n]*expr[kk][n];
|
||||
double c4 = c41[n]/2;
|
||||
double c5 = c51[n]/2;
|
||||
double c6 = c61[n]/2;
|
||||
double ct2 = -ct[n]/2+dfc[kk];
|
||||
double c42 = ct2*y[kk][0];
|
||||
double c52 = ct2*y[kk][1];
|
||||
double c62 = ct2*y[kk][2];
|
||||
//m=0
|
||||
features[count]+=dot1*spj*spk;
|
||||
dspinx[jj*f+count] += dot1*si[0]*spk;
|
||||
dspiny[jj*f+count] += dot1*si[1]*spk;
|
||||
dspinz[jj*f+count] += dot1*si[2]*spk;
|
||||
dspinx[kk*f+count] += dot1*si[0]*spj;
|
||||
dspiny[kk*f+count] += dot1*si[1]*spj;
|
||||
dspinz[kk*f+count] += dot1*si[2]*spj;
|
||||
dspinx[jnum*f+count] += dot1*(sj[0]*spk+sk[0]*spj);
|
||||
dspiny[jnum*f+count] += dot1*(sj[1]*spk+sk[1]*spj);
|
||||
dspinz[jnum*f+count] += dot1*(sj[2]*spk+sk[2]*spj);
|
||||
dfeaturesx[jj*f+count]+=dot1*c4*spj*spk;
|
||||
dfeaturesy[jj*f+count]+=dot1*c5*spj*spk;
|
||||
dfeaturesz[jj*f+count]+=dot1*c6*spj*spk;
|
||||
dfeaturesx[kk*f+count]+=dot1*c42*spj*spk;
|
||||
dfeaturesy[kk*f+count]+=dot1*c52*spj*spk;
|
||||
dfeaturesz[kk*f+count]+=dot1*c62*spj*spk;
|
||||
c4*=dot;
|
||||
c5*=dot;
|
||||
c6*=dot;
|
||||
c42*=dot;
|
||||
c52*=dot;
|
||||
c62*=dot;
|
||||
count++;
|
||||
for (m=1;m<mb;m++) {
|
||||
double c7 = dot1*(m*c1+c4);
|
||||
double c8 = dot1*(m*c2+c5);
|
||||
double c9 = dot1*(m*c3+c6);
|
||||
dfeaturesx[jj*f+count]+=c7*spj*spk;
|
||||
dfeaturesy[jj*f+count]+=c8*spj*spk;
|
||||
dfeaturesz[jj*f+count]+=c9*spj*spk;
|
||||
dfeaturesx[kk*f+count]+=dot1*(m*c10+c42)*spj*spk;
|
||||
dfeaturesy[kk*f+count]+=dot1*(m*c11+c52)*spj*spk;
|
||||
dfeaturesz[kk*f+count]+=dot1*(m*c12+c62)*spj*spk;
|
||||
dot1*=dot;
|
||||
dspinx[jj*f+count] += dot1*si[0]*spk;
|
||||
dspiny[jj*f+count] += dot1*si[1]*spk;
|
||||
dspinz[jj*f+count] += dot1*si[2]*spk;
|
||||
dspinx[kk*f+count] += dot1*si[0]*spj;
|
||||
dspiny[kk*f+count] += dot1*si[1]*spj;
|
||||
dspinz[kk*f+count] += dot1*si[2]*spj;
|
||||
dspinx[jnum*f+count] += dot1*(sj[0]*spk+sk[0]*spj);
|
||||
dspiny[jnum*f+count] += dot1*(sj[1]*spk+sk[1]*spj);
|
||||
dspinz[jnum*f+count] += dot1*(sj[2]*spk+sk[2]*spj);
|
||||
features[count++]+=dot1*spj*spk;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (expr[jj][0]==0) {continue;}
|
||||
count = startingneuron;
|
||||
for (n=0;n<kb;n++) {
|
||||
for (m=0;m<mb;m++) {
|
||||
dfeaturesx[jnum*f+count]-=dfeaturesx[jj*f+count];
|
||||
dfeaturesy[jnum*f+count]-=dfeaturesy[jj*f+count];
|
||||
dfeaturesz[jnum*f+count]-=dfeaturesz[jj*f+count];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
71
src/USER-RANN/rann_fingerprint_bondspin.h
Normal file
71
src/USER-RANN/rann_fingerprint_bondspin.h
Normal file
@ -0,0 +1,71 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifndef LMP_RANN_FINGERPRINT_BONDSPIN_H
|
||||
#define LMP_RANN_FINGERPRINT_BONDSPIN_H
|
||||
|
||||
#include "rann_fingerprint.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
class Fingerprint_bondspin : public Fingerprint {
|
||||
public:
|
||||
Fingerprint_bondspin(PairRANN *);
|
||||
~Fingerprint_bondspin();
|
||||
bool parse_values(std::string,std::vector<std::string>);
|
||||
void write_values(FILE *);
|
||||
void init(int*,int);
|
||||
void allocate();
|
||||
virtual void compute_fingerprint(double*,double*,double*,double*,double*,double*,double*,int,int,double*,double*,double*,int*,int,int*);//spin
|
||||
void do3bodyfeatureset_doubleneighborloop(double*,double*,double*,double*,double*,double*,double*,int,int,double*,double*,double*,int*,int,int*);
|
||||
void do3bodyfeatureset_singleneighborloop(double*,double*,double*,double*,double*,double*,double*,int,int,double*,double*,double*,int*,int,int*);
|
||||
void generate_exp_cut_table();
|
||||
void generate_coefficients();
|
||||
int get_length();
|
||||
|
||||
double *expcuttable;
|
||||
double *dfctable;
|
||||
double dr;
|
||||
double *alpha_k;
|
||||
double re;
|
||||
int **coeff;
|
||||
int **coeffx;
|
||||
int **coeffy;
|
||||
int **coeffz;
|
||||
int kmax;
|
||||
int mlength;
|
||||
int **Mf;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* FINGERPRINT_BOND_H_ */
|
||||
240
src/USER-RANN/rann_fingerprint_radial.cpp
Normal file
240
src/USER-RANN/rann_fingerprint_radial.cpp
Normal file
@ -0,0 +1,240 @@
|
||||
// clang-format off
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#include "rann_fingerprint_radial.h"
|
||||
|
||||
|
||||
|
||||
using namespace LAMMPS_NS::RANN;
|
||||
|
||||
Fingerprint_radial::Fingerprint_radial(PairRANN *_pair) : Fingerprint(_pair)
|
||||
{
|
||||
n_body_type = 2;
|
||||
dr = 0;
|
||||
re = 0;
|
||||
rc = 0;
|
||||
alpha = new double [1];
|
||||
alpha[0] = -1;
|
||||
nmax = 0;
|
||||
omin = 0;
|
||||
id = -1;
|
||||
style = "radial";
|
||||
atomtypes = new int [n_body_type];
|
||||
empty = true;
|
||||
fullydefined = false;
|
||||
_pair->allscreen = false;
|
||||
}
|
||||
|
||||
Fingerprint_radial::~Fingerprint_radial()
|
||||
{
|
||||
delete [] atomtypes;
|
||||
delete [] radialtable;
|
||||
delete [] alpha;
|
||||
delete [] dfctable;
|
||||
delete [] rinvsqrttable;
|
||||
}
|
||||
|
||||
bool Fingerprint_radial::parse_values(std::string constant,std::vector<std::string> line1) {
|
||||
int l;
|
||||
int nwords=line1.size();
|
||||
if (constant.compare("re")==0) {
|
||||
re = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("rc")==0) {
|
||||
rc = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("alpha")==0) {
|
||||
delete [] alpha;
|
||||
alpha = new double [nwords];
|
||||
for (l=0;l<nwords;l++) {
|
||||
alpha[l]=strtod(line1[l].c_str(),NULL);
|
||||
}
|
||||
}
|
||||
else if (constant.compare("dr")==0) {
|
||||
dr = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("n")==0) {
|
||||
nmax = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else if (constant.compare("o")==0) {
|
||||
omin = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else pair->errorf(FLERR,"Undefined value for radial power");
|
||||
//code will run with default o=0 if o is never specified. All other values must be defined in potential file.
|
||||
if (re!=0 && rc!=0 && alpha!=0 && dr!=0 && nmax!=0)return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void Fingerprint_radial::write_values(FILE *fid) {
|
||||
int i;
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:re:\n",style,id);
|
||||
fprintf(fid,"%f\n",re);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:rc:\n",style,id);
|
||||
fprintf(fid,"%f\n",rc);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:alpha:\n",style,id);
|
||||
for (i=0;i<(nmax-omin+1);i++) {
|
||||
fprintf(fid,"%f ",alpha[i]);
|
||||
}
|
||||
fprintf(fid,"\n");
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:dr:\n",style,id);
|
||||
fprintf(fid,"%f\n",dr);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:o:\n",style,id);
|
||||
fprintf(fid,"%d\n",omin);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:n:\n",style,id);
|
||||
fprintf(fid,"%d\n",nmax);
|
||||
}
|
||||
|
||||
//called after fingerprint is fully defined and tables can be computed.
|
||||
void Fingerprint_radial::allocate()
|
||||
{
|
||||
int k,m;
|
||||
double r1;
|
||||
int buf = 5;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
radialtable = new double [(res+buf)*get_length()];
|
||||
dfctable = new double [res+buf];
|
||||
for (k=0;k<(res+buf);k++) {
|
||||
r1 = cutmax*cutmax*(double)(k)/(double)(res);
|
||||
for (m=0;m<=(nmax-omin);m++) {
|
||||
radialtable[k*(nmax-omin+1)+m]=pow(sqrt(r1)/re,m+omin)*exp(-alpha[m]*sqrt(r1)/re)*cutofffunction(sqrt(r1),rc,dr);
|
||||
}
|
||||
if (sqrt(r1)>=rc || sqrt(r1) <= (rc-dr)) {
|
||||
dfctable[k]=0;
|
||||
}
|
||||
else{
|
||||
dfctable[k]=-8*pow(1-(rc-sqrt(r1))/dr,3)/dr/(1-pow(1-(rc-sqrt(r1))/dr,4));
|
||||
}
|
||||
}
|
||||
generate_rinvssqrttable();
|
||||
}
|
||||
|
||||
//called after fingerprint is declared for i-j type, but before its parameters are read.
|
||||
void Fingerprint_radial::init(int *i,int _id)
|
||||
{
|
||||
empty = false;
|
||||
for (int j=0;j<n_body_type;j++) {atomtypes[j] = i[j];}
|
||||
id = _id;
|
||||
}
|
||||
|
||||
void Fingerprint_radial::compute_fingerprint(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl)
|
||||
{
|
||||
int nelements = pair->nelements;
|
||||
int res = pair->res;
|
||||
int i,j,jj,itype,jtype,l;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
//
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
int count=0;
|
||||
// double **x = sim->x;
|
||||
int *type = sim->type;
|
||||
ilist = sim->ilist;
|
||||
double cutmax = pair->cutmax;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
//loop over neighbors
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
jtype =tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype)continue;
|
||||
delx = xn[jj];
|
||||
dely = yn[jj];
|
||||
delz = zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq > rc*rc)continue;
|
||||
count = startingneuron;
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
if (m1>res || m1<1) {pair->errorf(FLERR,"invalid neighbor radius!");}
|
||||
if (radialtable[m1]==0) {continue;}
|
||||
//cubic interpolation from tables
|
||||
double *p1 = &radialtable[m1*(nmax-omin+1)];
|
||||
double *p2 = &radialtable[(m1+1)*(nmax-omin+1)];
|
||||
double *p3 = &radialtable[(m1+2)*(nmax-omin+1)];
|
||||
double *p0 = &radialtable[(m1-1)*(nmax-omin+1)];
|
||||
double *q = &dfctable[m1-1];
|
||||
double *rinvs = &rinvsqrttable[m1-1];
|
||||
r1 = r1-trunc(r1);
|
||||
double dfc = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
double ri = rinvs[1] + 0.5 * r1*(rinvs[2] - rinvs[0] + r1*(2.0*rinvs[0] - 5.0*rinvs[1] + 4.0*rinvs[2] - rinvs[3] + r1*(3.0*(rinvs[1] - rinvs[2]) + rinvs[3] - rinvs[0])));
|
||||
for (l=0;l<=(nmax-omin);l++) {
|
||||
double rt = p1[l]+0.5*r1*(p2[l]-p0[l]+r1*(2.0*p0[l]-5.0*p1[l]+4.0*p2[l]-p3[l]+r1*(3.0*(p1[l]-p2[l])+p3[l]-p0[l])));
|
||||
features[count]+=rt;
|
||||
rt *= (l+omin)/rsq+(-alpha[l]/re+dfc)*ri;
|
||||
//update neighbor's features
|
||||
dfeaturesx[jj*f+count]+=rt*delx;
|
||||
dfeaturesy[jj*f+count]+=rt*dely;
|
||||
dfeaturesz[jj*f+count]+=rt*delz;
|
||||
//update atom's features
|
||||
dfeaturesx[jnum*f+count]-=rt*delx;
|
||||
dfeaturesy[jnum*f+count]-=rt*dely;
|
||||
dfeaturesz[jnum*f+count]-=rt*delz;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int Fingerprint_radial::get_length()
|
||||
{
|
||||
return nmax-omin+1;
|
||||
}
|
||||
63
src/USER-RANN/rann_fingerprint_radial.h
Normal file
63
src/USER-RANN/rann_fingerprint_radial.h
Normal file
@ -0,0 +1,63 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifndef LMP_RANN_FINGERPRINT_RADIAL_H
|
||||
#define LMP_RANN_FINGERPRINT_RADIAL_H
|
||||
|
||||
#include "rann_fingerprint.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
|
||||
class Fingerprint_radial : public Fingerprint {
|
||||
public:
|
||||
Fingerprint_radial(PairRANN *);
|
||||
~Fingerprint_radial();
|
||||
bool parse_values(std::string,std::vector<std::string>);
|
||||
void write_values(FILE *);
|
||||
void init(int*,int);
|
||||
void allocate();
|
||||
void compute_fingerprint(double*,double*,double*,double*,int,int,double*,double*,double*,int*,int,int*);
|
||||
int get_length();
|
||||
|
||||
double *radialtable;
|
||||
double *dfctable;
|
||||
double dr;
|
||||
double *alpha;
|
||||
double re;
|
||||
int nmax;//highest term
|
||||
int omin;//lowest term
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* FINGERPRINT_RADIAL_H_ */
|
||||
254
src/USER-RANN/rann_fingerprint_radialscreened.cpp
Normal file
254
src/USER-RANN/rann_fingerprint_radialscreened.cpp
Normal file
@ -0,0 +1,254 @@
|
||||
// clang-format off
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#include "rann_fingerprint_radialscreened.h"
|
||||
|
||||
|
||||
|
||||
using namespace LAMMPS_NS::RANN;
|
||||
|
||||
Fingerprint_radialscreened::Fingerprint_radialscreened(PairRANN *_pair) : Fingerprint(_pair)
|
||||
{
|
||||
n_body_type = 2;
|
||||
dr = 0;
|
||||
re = 0;
|
||||
rc = 0;
|
||||
alpha = new double [1];
|
||||
alpha[0] = -1;
|
||||
nmax = 0;
|
||||
omin = 0;
|
||||
id = -1;
|
||||
style = "radialscreened";
|
||||
atomtypes = new int [n_body_type];
|
||||
empty = true;
|
||||
fullydefined = false;
|
||||
_pair->doscreen = true;
|
||||
screen = true;
|
||||
}
|
||||
|
||||
Fingerprint_radialscreened::~Fingerprint_radialscreened()
|
||||
{
|
||||
delete [] atomtypes;
|
||||
delete [] radialtable;
|
||||
delete [] alpha;
|
||||
delete [] dfctable;
|
||||
delete [] rinvsqrttable;
|
||||
}
|
||||
|
||||
bool Fingerprint_radialscreened::parse_values(std::string constant,std::vector<std::string> line1) {
|
||||
int l;
|
||||
int nwords=line1.size();
|
||||
if (constant.compare("re")==0) {
|
||||
re = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("rc")==0) {
|
||||
rc = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("alpha")==0) {
|
||||
delete [] alpha;
|
||||
alpha = new double [nwords];
|
||||
for (l=0;l<nwords;l++) {
|
||||
alpha[l]=strtod(line1[l].c_str(),NULL);
|
||||
}
|
||||
}
|
||||
else if (constant.compare("dr")==0) {
|
||||
dr = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("n")==0) {
|
||||
nmax = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else if (constant.compare("o")==0) {
|
||||
omin = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else pair->errorf(FLERR,"Undefined value for radial power");
|
||||
//code will run with default o=0 if o is never specified. All other values must be defined in potential file.
|
||||
if (re!=0 && rc!=0 && alpha!=0 && dr!=0 && nmax!=0)return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void Fingerprint_radialscreened::write_values(FILE *fid) {
|
||||
int i;
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:re:\n",style,id);
|
||||
fprintf(fid,"%f\n",re);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:rc:\n",style,id);
|
||||
fprintf(fid,"%f\n",rc);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:alpha:\n",style,id);
|
||||
for (i=0;i<(nmax-omin+1);i++) {
|
||||
fprintf(fid,"%f ",alpha[i]);
|
||||
}
|
||||
fprintf(fid,"\n");
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:dr:\n",style,id);
|
||||
fprintf(fid,"%f\n",dr);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:o:\n",style,id);
|
||||
fprintf(fid,"%d\n",omin);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:n:\n",style,id);
|
||||
fprintf(fid,"%d\n",nmax);
|
||||
}
|
||||
|
||||
//called after fingerprint is fully defined and tables can be computed.
|
||||
void Fingerprint_radialscreened::allocate()
|
||||
{
|
||||
int k,m;
|
||||
double r1;
|
||||
int buf = 5;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
radialtable = new double [(res+buf)*get_length()];
|
||||
dfctable = new double [res+buf];
|
||||
for (k=0;k<(res+buf);k++) {
|
||||
r1 = cutmax*cutmax*(double)(k)/(double)(res);
|
||||
for (m=0;m<=(nmax-omin);m++) {
|
||||
radialtable[k*(nmax-omin+1)+m]=pow(sqrt(r1)/re,m+omin)*exp(-alpha[m]*sqrt(r1)/re)*cutofffunction(sqrt(r1),rc,dr);
|
||||
}
|
||||
if (sqrt(r1)>=rc || sqrt(r1) <= (rc-dr)) {
|
||||
dfctable[k]=0;
|
||||
}
|
||||
else{
|
||||
dfctable[k]=-8*pow(1-(rc-sqrt(r1))/dr,3)/dr/(1-pow(1-(rc-sqrt(r1))/dr,4));
|
||||
}
|
||||
}
|
||||
generate_rinvssqrttable();
|
||||
}
|
||||
|
||||
//called after fingerprint is declared for i-j type, but before its parameters are read.
|
||||
void Fingerprint_radialscreened::init(int *i,int _id)
|
||||
{
|
||||
empty = false;
|
||||
for (int j=0;j<n_body_type;j++) {atomtypes[j] = i[j];}
|
||||
id = _id;
|
||||
}
|
||||
|
||||
void Fingerprint_radialscreened::compute_fingerprint(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,double *Sik, double *dSikx, double*dSiky, double *dSikz, double *dSijkx, double *dSijky, double *dSijkz, bool *Bij,int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl)
|
||||
{
|
||||
int nelements = pair->nelements;
|
||||
int res = pair->res;
|
||||
int i,j,jj,itype,jtype,l,kk;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
//
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
int count=0;
|
||||
double **x = sim->x;
|
||||
int *type = sim->type;
|
||||
ilist = sim->ilist;
|
||||
double cutmax = pair->cutmax;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
//loop over neighbors
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype)continue;
|
||||
delx = xn[jj];
|
||||
dely = yn[jj];
|
||||
delz = zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq > rc*rc)continue;
|
||||
count = startingneuron;
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
if (m1>res || m1<1) {pair->errorf(FLERR,"invalid neighbor radius!");}
|
||||
if (radialtable[m1]==0) {continue;}
|
||||
//cubic interpolation from tables
|
||||
double *p1 = &radialtable[m1*(nmax-omin+1)];
|
||||
double *p2 = &radialtable[(m1+1)*(nmax-omin+1)];
|
||||
double *p3 = &radialtable[(m1+2)*(nmax-omin+1)];
|
||||
double *p0 = &radialtable[(m1-1)*(nmax-omin+1)];
|
||||
double *q = &dfctable[m1-1];
|
||||
double *rinvs = &rinvsqrttable[m1-1];
|
||||
r1 = r1-trunc(r1);
|
||||
double dfc = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
double ri = rinvs[1] + 0.5 * r1*(rinvs[2] - rinvs[0] + r1*(2.0*rinvs[0] - 5.0*rinvs[1] + 4.0*rinvs[2] - rinvs[3] + r1*(3.0*(rinvs[1] - rinvs[2]) + rinvs[3] - rinvs[0])));
|
||||
for (l=0;l<=(nmax-omin);l++) {
|
||||
double rt = Sik[jj]*(p1[l]+0.5*r1*(p2[l]-p0[l]+r1*(2.0*p0[l]-5.0*p1[l]+4.0*p2[l]-p3[l]+r1*(3.0*(p1[l]-p2[l])+p3[l]-p0[l]))));
|
||||
features[count]+=rt;
|
||||
double rt1 = rt*((l+omin)/rsq+(-alpha[l]/re+dfc)*ri);
|
||||
//update neighbor's features
|
||||
dfeaturesx[jj*f+count]+=rt1*delx+rt*dSikx[jj];
|
||||
dfeaturesy[jj*f+count]+=rt1*dely+rt*dSiky[jj];
|
||||
dfeaturesz[jj*f+count]+=rt1*delz+rt*dSikz[jj];
|
||||
for (kk=0;kk<jnum;kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
dfeaturesx[kk*f+count]+=rt*dSijkx[jj*jnum+kk];
|
||||
dfeaturesy[kk*f+count]+=rt*dSijky[jj*jnum+kk];
|
||||
dfeaturesz[kk*f+count]+=rt*dSijkz[jj*jnum+kk];
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
count = startingneuron;
|
||||
for (l=0;l<=(nmax-omin);l++) {
|
||||
dfeaturesx[jnum*f+count]-=dfeaturesx[jj*f+count];
|
||||
dfeaturesy[jnum*f+count]-=dfeaturesy[jj*f+count];
|
||||
dfeaturesz[jnum*f+count]-=dfeaturesz[jj*f+count];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int Fingerprint_radialscreened::get_length()
|
||||
{
|
||||
return nmax-omin+1;
|
||||
}
|
||||
62
src/USER-RANN/rann_fingerprint_radialscreened.h
Normal file
62
src/USER-RANN/rann_fingerprint_radialscreened.h
Normal file
@ -0,0 +1,62 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifndef LMP_RANN_FINGERPRINT_RADIALSCREENED_H
|
||||
#define LMP_RANN_FINGERPRINT_RADIALSCREENED_H
|
||||
|
||||
#include "rann_fingerprint.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
class Fingerprint_radialscreened : public Fingerprint {
|
||||
public:
|
||||
Fingerprint_radialscreened(PairRANN *);
|
||||
~Fingerprint_radialscreened();
|
||||
bool parse_values(std::string,std::vector<std::string>);
|
||||
void write_values(FILE *);
|
||||
void init(int*,int);
|
||||
void allocate();
|
||||
void compute_fingerprint(double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,bool*,int,int,double*,double*,double*,int*,int,int*);
|
||||
int get_length();
|
||||
|
||||
double *radialtable;
|
||||
double *dfctable;
|
||||
double dr;
|
||||
double *alpha;
|
||||
double re;
|
||||
int nmax;//highest term
|
||||
int omin;//lowest term
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif /* FINGERPRINT_RADIALSCREENED_H_ */
|
||||
265
src/USER-RANN/rann_fingerprint_radialscreenedspin.cpp
Normal file
265
src/USER-RANN/rann_fingerprint_radialscreenedspin.cpp
Normal file
@ -0,0 +1,265 @@
|
||||
// clang-format off
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
#include "rann_fingerprint_radialscreenedspin.h"
|
||||
|
||||
|
||||
|
||||
using namespace LAMMPS_NS::RANN;
|
||||
|
||||
Fingerprint_radialscreenedspin::Fingerprint_radialscreenedspin(PairRANN *_pair) : Fingerprint(_pair)
|
||||
{
|
||||
n_body_type = 2;
|
||||
dr = 0;
|
||||
re = 0;
|
||||
rc = 0;
|
||||
alpha = new double [1];
|
||||
alpha[0] = -1;
|
||||
nmax = 0;
|
||||
omin = 0;
|
||||
id = -1;
|
||||
style = "radialscreenedspin";
|
||||
atomtypes = new int [n_body_type];
|
||||
empty = true;
|
||||
fullydefined = false;
|
||||
_pair->doscreen = true;
|
||||
screen = true;
|
||||
_pair->dospin = true;
|
||||
spin = true;
|
||||
}
|
||||
|
||||
Fingerprint_radialscreenedspin::~Fingerprint_radialscreenedspin()
|
||||
{
|
||||
delete [] atomtypes;
|
||||
delete [] radialtable;
|
||||
delete [] alpha;
|
||||
delete [] dfctable;
|
||||
delete [] rinvsqrttable;
|
||||
}
|
||||
|
||||
bool Fingerprint_radialscreenedspin::parse_values(std::string constant,std::vector<std::string> line1) {
|
||||
int l;
|
||||
int nwords=line1.size();
|
||||
if (constant.compare("re")==0) {
|
||||
re = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("rc")==0) {
|
||||
rc = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("alpha")==0) {
|
||||
delete [] alpha;
|
||||
alpha = new double [nwords];
|
||||
for (l=0;l<nwords;l++) {
|
||||
alpha[l]=strtod(line1[l].c_str(),NULL);
|
||||
}
|
||||
}
|
||||
else if (constant.compare("dr")==0) {
|
||||
dr = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("n")==0) {
|
||||
nmax = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else if (constant.compare("o")==0) {
|
||||
omin = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else pair->errorf(FLERR,"Undefined value for radial power");
|
||||
//code will run with default o=0 if o is never specified. All other values must be defined in potential file.
|
||||
if (re!=0 && rc!=0 && alpha!=0 && dr!=0 && nmax!=0)return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void Fingerprint_radialscreenedspin::write_values(FILE *fid) {
|
||||
int i;
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:re:\n",style,id);
|
||||
fprintf(fid,"%f\n",re);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:rc:\n",style,id);
|
||||
fprintf(fid,"%f\n",rc);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:alpha:\n",style,id);
|
||||
for (i=0;i<(nmax-omin+1);i++) {
|
||||
fprintf(fid,"%f ",alpha[i]);
|
||||
}
|
||||
fprintf(fid,"\n");
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:dr:\n",style,id);
|
||||
fprintf(fid,"%f\n",dr);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:o:\n",style,id);
|
||||
fprintf(fid,"%d\n",omin);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:n:\n",style,id);
|
||||
fprintf(fid,"%d\n",nmax);
|
||||
}
|
||||
|
||||
//called after fingerprint is fully defined and tables can be computed.
|
||||
void Fingerprint_radialscreenedspin::allocate()
|
||||
{
|
||||
int k,m;
|
||||
double r1;
|
||||
int buf = 5;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
radialtable = new double [(res+buf)*get_length()];
|
||||
dfctable = new double [res+buf];
|
||||
for (k=0;k<(res+buf);k++) {
|
||||
r1 = cutmax*cutmax*(double)(k)/(double)(res);
|
||||
for (m=0;m<=(nmax-omin);m++) {
|
||||
radialtable[k*(nmax-omin+1)+m]=pow(sqrt(r1)/re,m+omin)*exp(-alpha[m]*sqrt(r1)/re)*cutofffunction(sqrt(r1),rc,dr);
|
||||
}
|
||||
if (sqrt(r1)>=rc || sqrt(r1) <= (rc-dr)) {
|
||||
dfctable[k]=0;
|
||||
}
|
||||
else{
|
||||
dfctable[k]=-8*pow(1-(rc-sqrt(r1))/dr,3)/dr/(1-pow(1-(rc-sqrt(r1))/dr,4));
|
||||
}
|
||||
}
|
||||
generate_rinvssqrttable();
|
||||
}
|
||||
|
||||
//called after fingerprint is declared for i-j type, but before its parameters are read.
|
||||
void Fingerprint_radialscreenedspin::init(int *i,int _id)
|
||||
{
|
||||
empty = false;
|
||||
for (int j=0;j<n_body_type;j++) {atomtypes[j] = i[j];}
|
||||
id = _id;
|
||||
}
|
||||
|
||||
void Fingerprint_radialscreenedspin::compute_fingerprint(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,double * dspinx,double *dspiny,double *dspinz,double *Sik, double *dSikx, double*dSiky, double *dSikz, double *dSijkx, double *dSijky, double *dSijkz, bool *Bij,int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl)
|
||||
{
|
||||
int nelements = pair->nelements;
|
||||
int res = pair->res;
|
||||
int i,j,jj,itype,jtype,l,kk;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
int count=0;
|
||||
double **x = sim->x;
|
||||
int *type = sim->type;
|
||||
ilist = sim->ilist;
|
||||
double cutmax = pair->cutmax;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
double *si = sim->s[i];
|
||||
//loop over neighbors
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
jtype = tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype)continue;
|
||||
delx = xn[jj];
|
||||
dely = yn[jj];
|
||||
delz = zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq > rc*rc)continue;
|
||||
count = startingneuron;
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
if (m1>res || m1<1) {pair->errorf(FLERR,"invalid neighbor radius!");}
|
||||
if (radialtable[m1]==0) {continue;}
|
||||
j=jl[jj];
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
//cubic interpolation from tables
|
||||
double *p1 = &radialtable[m1*(nmax-omin+1)];
|
||||
double *p2 = &radialtable[(m1+1)*(nmax-omin+1)];
|
||||
double *p3 = &radialtable[(m1+2)*(nmax-omin+1)];
|
||||
double *p0 = &radialtable[(m1-1)*(nmax-omin+1)];
|
||||
double *q = &dfctable[m1-1];
|
||||
double *rinvs = &rinvsqrttable[m1-1];
|
||||
r1 = r1-trunc(r1);
|
||||
double dfc = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
double ri = rinvs[1] + 0.5 * r1*(rinvs[2] - rinvs[0] + r1*(2.0*rinvs[0] - 5.0*rinvs[1] + 4.0*rinvs[2] - rinvs[3] + r1*(3.0*(rinvs[1] - rinvs[2]) + rinvs[3] - rinvs[0])));
|
||||
for (l=0;l<=(nmax-omin);l++) {
|
||||
double rt = Sik[jj]*(p1[l]+0.5*r1*(p2[l]-p0[l]+r1*(2.0*p0[l]-5.0*p1[l]+4.0*p2[l]-p3[l]+r1*(3.0*(p1[l]-p2[l])+p3[l]-p0[l]))));
|
||||
//update neighbor's features
|
||||
dspinx[jj*f+count]+=rt*si[0];
|
||||
dspiny[jj*f+count]+=rt*si[1];
|
||||
dspinz[jj*f+count]+=rt*si[2];
|
||||
dspinx[jnum*f+count]+=rt*sj[0];
|
||||
dspiny[jnum*f+count]+=rt*sj[1];
|
||||
dspinz[jnum*f+count]+=rt*sj[2];
|
||||
rt *= sp;
|
||||
features[count]+=rt;
|
||||
double rt1 = rt*((l+omin)/rsq+(-alpha[l]/re+dfc)*ri);
|
||||
dfeaturesx[jj*f+count]+=rt1*delx+rt*dSikx[jj];
|
||||
dfeaturesy[jj*f+count]+=rt1*dely+rt*dSiky[jj];
|
||||
dfeaturesz[jj*f+count]+=rt1*delz+rt*dSikz[jj];
|
||||
for (kk=0;kk<jnum;kk++) {
|
||||
if (Bij[kk]==false) {continue;}
|
||||
dfeaturesx[kk*f+count]+=rt*dSijkx[jj*jnum+kk];
|
||||
dfeaturesy[kk*f+count]+=rt*dSijky[jj*jnum+kk];
|
||||
dfeaturesz[kk*f+count]+=rt*dSijkz[jj*jnum+kk];
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
for (jj=0;jj<jnum;jj++) {
|
||||
if (Bij[jj]==false) {continue;}
|
||||
count = startingneuron;
|
||||
for (l=0;l<=(nmax-omin);l++) {
|
||||
dfeaturesx[jnum*f+count]-=dfeaturesx[jj*f+count];
|
||||
dfeaturesy[jnum*f+count]-=dfeaturesy[jj*f+count];
|
||||
dfeaturesz[jnum*f+count]-=dfeaturesz[jj*f+count];
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int Fingerprint_radialscreenedspin::get_length()
|
||||
{
|
||||
return nmax-omin+1;
|
||||
}
|
||||
62
src/USER-RANN/rann_fingerprint_radialscreenedspin.h
Normal file
62
src/USER-RANN/rann_fingerprint_radialscreenedspin.h
Normal file
@ -0,0 +1,62 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifndef LMP_RANN_FINGERPRINT_RADIALSCREENEDSPIN_H
|
||||
#define LMP_RANN_FINGERPRINT_RADIALSCREENEDSPIN_H
|
||||
|
||||
#include "rann_fingerprint.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
class Fingerprint_radialscreenedspin : public Fingerprint {
|
||||
public:
|
||||
Fingerprint_radialscreenedspin(PairRANN *);
|
||||
~Fingerprint_radialscreenedspin();
|
||||
bool parse_values(std::string,std::vector<std::string>);
|
||||
void write_values(FILE *);
|
||||
void init(int*,int);
|
||||
void allocate();
|
||||
virtual void compute_fingerprint(double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,double*,bool*,int,int,double*,double*,double*,int*,int,int*);//spin,screen
|
||||
int get_length();
|
||||
|
||||
double *radialtable;
|
||||
double *dfctable;
|
||||
double dr;
|
||||
double *alpha;
|
||||
double re;
|
||||
int nmax;//highest term
|
||||
int omin;//lowest term
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif /* FINGERPRINT_RADIALSCREENED_H_ */
|
||||
253
src/USER-RANN/rann_fingerprint_radialspin.cpp
Normal file
253
src/USER-RANN/rann_fingerprint_radialspin.cpp
Normal file
@ -0,0 +1,253 @@
|
||||
// clang-format off
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
#include "rann_fingerprint_radialspin.h"
|
||||
|
||||
|
||||
|
||||
using namespace LAMMPS_NS::RANN;
|
||||
|
||||
Fingerprint_radialspin::Fingerprint_radialspin(PairRANN *_pair) : Fingerprint(_pair)
|
||||
{
|
||||
n_body_type = 2;
|
||||
dr = 0;
|
||||
re = 0;
|
||||
rc = 0;
|
||||
alpha = new double [1];
|
||||
alpha[0] = -1;
|
||||
nmax = 0;
|
||||
omin = 0;
|
||||
id = -1;
|
||||
style = "radialspin";
|
||||
atomtypes = new int [n_body_type];
|
||||
empty = true;
|
||||
fullydefined = false;
|
||||
_pair->allscreen = false;
|
||||
_pair->dospin = true;
|
||||
spin = true;
|
||||
}
|
||||
|
||||
Fingerprint_radialspin::~Fingerprint_radialspin()
|
||||
{
|
||||
delete [] atomtypes;
|
||||
delete [] radialtable;
|
||||
delete [] alpha;
|
||||
delete [] dfctable;
|
||||
delete [] rinvsqrttable;
|
||||
}
|
||||
|
||||
bool Fingerprint_radialspin::parse_values(std::string constant,std::vector<std::string> line1) {
|
||||
int l;
|
||||
int nwords=line1.size();
|
||||
if (constant.compare("re")==0) {
|
||||
re = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("rc")==0) {
|
||||
rc = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("alpha")==0) {
|
||||
delete [] alpha;
|
||||
alpha = new double [nwords];
|
||||
for (l=0;l<nwords;l++) {
|
||||
alpha[l]=strtod(line1[l].c_str(),NULL);
|
||||
}
|
||||
}
|
||||
else if (constant.compare("dr")==0) {
|
||||
dr = strtod(line1[0].c_str(),NULL);
|
||||
}
|
||||
else if (constant.compare("n")==0) {
|
||||
nmax = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else if (constant.compare("o")==0) {
|
||||
omin = strtol(line1[0].c_str(),NULL,10);
|
||||
}
|
||||
else pair->errorf(FLERR,"Undefined value for radial power");
|
||||
//code will run with default o=0 if o is never specified. All other values must be defined in potential file.
|
||||
if (re!=0 && rc!=0 && alpha!=0 && dr!=0 && nmax!=0)return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void Fingerprint_radialspin::write_values(FILE *fid) {
|
||||
int i;
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:re:\n",style,id);
|
||||
fprintf(fid,"%f\n",re);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:rc:\n",style,id);
|
||||
fprintf(fid,"%f\n",rc);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:alpha:\n",style,id);
|
||||
for (i=0;i<(nmax-omin+1);i++) {
|
||||
fprintf(fid,"%f ",alpha[i]);
|
||||
}
|
||||
fprintf(fid,"\n");
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:dr:\n",style,id);
|
||||
fprintf(fid,"%f\n",dr);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:o:\n",style,id);
|
||||
fprintf(fid,"%d\n",omin);
|
||||
fprintf(fid,"fingerprintconstants:");
|
||||
fprintf(fid,"%s",pair->elementsp[atomtypes[0]]);
|
||||
for (i=1;i<n_body_type;i++) {
|
||||
fprintf(fid,"_%s",pair->elementsp[atomtypes[i]]);
|
||||
}
|
||||
fprintf(fid,":%s_%d:n:\n",style,id);
|
||||
fprintf(fid,"%d\n",nmax);
|
||||
}
|
||||
|
||||
//called after fingerprint is fully defined and tables can be computed.
|
||||
void Fingerprint_radialspin::allocate()
|
||||
{
|
||||
int k,m;
|
||||
double r1;
|
||||
int buf = 5;
|
||||
int res = pair->res;
|
||||
double cutmax = pair->cutmax;
|
||||
radialtable = new double [(res+buf)*get_length()];
|
||||
dfctable = new double [res+buf];
|
||||
for (k=0;k<(res+buf);k++) {
|
||||
r1 = cutmax*cutmax*(double)(k)/(double)(res);
|
||||
for (m=0;m<=(nmax-omin);m++) {
|
||||
radialtable[k*(nmax-omin+1)+m]=pow(sqrt(r1)/re,m+omin)*exp(-alpha[m]*sqrt(r1)/re)*cutofffunction(sqrt(r1),rc,dr);
|
||||
}
|
||||
if (sqrt(r1)>=rc || sqrt(r1) <= (rc-dr)) {
|
||||
dfctable[k]=0;
|
||||
}
|
||||
else{
|
||||
dfctable[k]=-8*pow(1-(rc-sqrt(r1))/dr,3)/dr/(1-pow(1-(rc-sqrt(r1))/dr,4));
|
||||
}
|
||||
}
|
||||
generate_rinvssqrttable();
|
||||
}
|
||||
|
||||
//called after fingerprint is declared for i-j type, but before its parameters are read.
|
||||
void Fingerprint_radialspin::init(int *i,int _id)
|
||||
{
|
||||
empty = false;
|
||||
for (int j=0;j<n_body_type;j++) {atomtypes[j] = i[j];}
|
||||
id = _id;
|
||||
}
|
||||
|
||||
void Fingerprint_radialspin::compute_fingerprint(double * features,double * dfeaturesx,double *dfeaturesy,double *dfeaturesz,double * dspinx,double *dspiny,double *dspinz,int ii,int sid,double *xn,double *yn,double*zn,int *tn,int jnum,int *jl)
|
||||
{
|
||||
int nelements = pair->nelements;
|
||||
int res = pair->res;
|
||||
int i,j,jj,itype,jtype,l;
|
||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
//
|
||||
PairRANN::Simulation *sim = &pair->sims[sid];
|
||||
int count=0;
|
||||
int *type = sim->type;
|
||||
ilist = sim->ilist;
|
||||
double cutmax = pair->cutmax;
|
||||
i = ilist[ii];
|
||||
itype = pair->map[type[i]];
|
||||
int f = pair->net[itype].dimensions[0];
|
||||
double cutinv2 = 1/cutmax/cutmax;
|
||||
double *si = sim->s[i];
|
||||
firstneigh = sim->firstneigh;
|
||||
jlist = firstneigh[i];
|
||||
//loop over neighbors
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
j = jl[jj];
|
||||
jtype =tn[jj];
|
||||
if (atomtypes[1] != nelements && atomtypes[1] != jtype)continue;
|
||||
delx = xn[jj];
|
||||
dely = yn[jj];
|
||||
delz = zn[jj];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
if (rsq > rc*rc)continue;
|
||||
count = startingneuron;
|
||||
double r1 = (rsq*((double)res)*cutinv2);
|
||||
int m1 = (int)r1;
|
||||
if (m1>res || m1<1) {pair->errorf(FLERR,"invalid neighbor radius!");}
|
||||
if (radialtable[m1]==0) {continue;}
|
||||
double *sj = sim->s[j];
|
||||
double sp = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2];
|
||||
//cubic interpolation from tables
|
||||
double *p1 = &radialtable[m1*(nmax-omin+1)];
|
||||
double *p2 = &radialtable[(m1+1)*(nmax-omin+1)];
|
||||
double *p3 = &radialtable[(m1+2)*(nmax-omin+1)];
|
||||
double *p0 = &radialtable[(m1-1)*(nmax-omin+1)];
|
||||
double *q = &dfctable[m1-1];
|
||||
double *rinvs = &rinvsqrttable[m1-1];
|
||||
r1 = r1-trunc(r1);
|
||||
double dfc = q[1] + 0.5 * r1*(q[2] - q[0] + r1*(2.0*q[0] - 5.0*q[1] + 4.0*q[2] - q[3] + r1*(3.0*(q[1] - q[2]) + q[3] - q[0])));
|
||||
double ri = rinvs[1] + 0.5 * r1*(rinvs[2] - rinvs[0] + r1*(2.0*rinvs[0] - 5.0*rinvs[1] + 4.0*rinvs[2] - rinvs[3] + r1*(3.0*(rinvs[1] - rinvs[2]) + rinvs[3] - rinvs[0])));
|
||||
for (l=0;l<=(nmax-omin);l++) {
|
||||
double rt = p1[l]+0.5*r1*(p2[l]-p0[l]+r1*(2.0*p0[l]-5.0*p1[l]+4.0*p2[l]-p3[l]+r1*(3.0*(p1[l]-p2[l])+p3[l]-p0[l])));
|
||||
dspinx[jj*f+count]+=rt*si[0];
|
||||
dspiny[jj*f+count]+=rt*si[1];
|
||||
dspinz[jj*f+count]+=rt*si[2];
|
||||
dspinx[jnum*f+count]+=rt*sj[0];
|
||||
dspiny[jnum*f+count]+=rt*sj[1];
|
||||
dspinz[jnum*f+count]+=rt*sj[2];
|
||||
rt *= sp;
|
||||
features[count]+=rt;
|
||||
rt *= (l+omin)/rsq+(-alpha[l]/re+dfc)*ri;
|
||||
//update neighbor's features
|
||||
dfeaturesx[jj*f+count]+=rt*delx;
|
||||
dfeaturesy[jj*f+count]+=rt*dely;
|
||||
dfeaturesz[jj*f+count]+=rt*delz;
|
||||
//update atom's features
|
||||
dfeaturesx[jnum*f+count]-=rt*delx;
|
||||
dfeaturesy[jnum*f+count]-=rt*dely;
|
||||
dfeaturesz[jnum*f+count]-=rt*delz;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int Fingerprint_radialspin::get_length()
|
||||
{
|
||||
return nmax-omin+1;
|
||||
}
|
||||
62
src/USER-RANN/rann_fingerprint_radialspin.h
Normal file
62
src/USER-RANN/rann_fingerprint_radialspin.h
Normal file
@ -0,0 +1,62 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/ 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.
|
||||
------------------------------------------------------------------------- */
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu
|
||||
Doyl Dickel (MSU) doyl@me.msstate.edu
|
||||
----------------------------------------------------------------------*/
|
||||
/*
|
||||
“The research described and the resulting data presented herein, unless
|
||||
otherwise noted, was funded under PE 0602784A, Project T53 "Military
|
||||
Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095,
|
||||
managed by the U.S. Army Combat Capabilities Development Command (CCDC) and
|
||||
the Engineer Research and Development Center (ERDC). The work described in
|
||||
this document was conducted at CAVS, MSU. Permission was granted by ERDC
|
||||
to publish this information. Any opinions, findings and conclusions or
|
||||
recommendations expressed in this material are those of the author(s) and
|
||||
do not necessarily reflect the views of the United States Army.”
|
||||
|
||||
DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918
|
||||
*/
|
||||
|
||||
#ifndef LMP_RANN_FINGERPRINT_RADIALSPIN_H
|
||||
#define LMP_RANN_FINGERPRINT_RADIALSPIN_H
|
||||
|
||||
#include "rann_fingerprint.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
namespace RANN {
|
||||
class Fingerprint_radialspin : public Fingerprint {
|
||||
public:
|
||||
Fingerprint_radialspin(PairRANN *);
|
||||
~Fingerprint_radialspin();
|
||||
bool parse_values(std::string,std::vector<std::string>);
|
||||
void write_values(FILE *);
|
||||
void init(int*,int);
|
||||
void allocate();
|
||||
void compute_fingerprint(double*,double*,double*,double*,double*,double*,double*,int,int,double*,double*,double*,int*,int,int*);
|
||||
int get_length();
|
||||
|
||||
double *radialtable;
|
||||
double *dfctable;
|
||||
double dr;
|
||||
double *alpha;
|
||||
double re;
|
||||
int nmax;//highest term
|
||||
int omin;//lowest term
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif /* FINGERPRINT_RADIAL_H_ */
|
||||
Reference in New Issue
Block a user