diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 2db772516f..aa6b0ed583 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -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) diff --git a/cmake/presets/all_off.cmake b/cmake/presets/all_off.cmake index df93599056..c56841f62f 100644 --- a/cmake/presets/all_off.cmake +++ b/cmake/presets/all_off.cmake @@ -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) diff --git a/cmake/presets/all_on.cmake b/cmake/presets/all_on.cmake index d84caebe28..9f858f99dc 100644 --- a/cmake/presets/all_on.cmake +++ b/cmake/presets/all_on.cmake @@ -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) diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 258f2dab17..d76785d221 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -227,6 +227,7 @@ OPT. * :doc:`polymorphic ` * :doc:`python ` * :doc:`quip ` + * :doc:`rann ` * :doc:`reax/c (ko) ` * :doc:`rebo (io) ` * :doc:`resquared (go) ` diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index 07a1794bd1..e7dc905e22 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -100,6 +100,7 @@ page gives those details. * :ref:`USER-QMMM ` * :ref:`USER-QTB ` * :ref:`USER-QUIP ` + * :ref:`USER-RANN ` * :ref:`USER-REACTION ` * :ref:`USER-REAXC ` * :ref:`USER-SCAFACOS ` @@ -2277,6 +2278,31 @@ This package has :ref:`specific installation instructions ` 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 ` +* examples/USER/rann + +---------- + .. _PKG-USER-REACTION: USER-REACTION package diff --git a/doc/src/Packages_user.rst b/doc/src/Packages_user.rst index 33226d1b1d..3bf1323d16 100644 --- a/doc/src/Packages_user.rst +++ b/doc/src/Packages_user.rst @@ -101,6 +101,8 @@ package: +------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+ | :ref:`USER-QUIP ` | QUIP/libatoms interface | :doc:`pair_style quip ` | USER/quip | ext | +------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+ +| :ref:`USER-RANN ` | rapid atomistic neural network (RANN) potentials | :doc:`pair rann ` | USER/rann | no | ++------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+ | :ref:`USER-REACTION ` | chemical reactions in classical MD | :doc:`fix bond/react ` | USER/reaction | no | +------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+ | :ref:`USER-REAXC ` | ReaxFF potential (C/C++) | :doc:`pair_style reaxc ` | reax | no | diff --git a/doc/src/pair_rann.rst b/doc/src/pair_rann.rst new file mode 100644 index 0000000000..4177bae0c7 --- /dev/null +++ b/doc/src/pair_rann.rst @@ -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 ` , :ref:`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 ` 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 + \. + +.. 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 ` 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) +`, :math:`s_i^\alpha` and :math:`s_i^\beta` are the atom spin +vectors :ref:`(Tranchida) `. :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) `: + +.. 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` - polymorphic 3-body potential * :doc:`python ` - * :doc:`quip ` - +* :doc:`rann ` - * :doc:`reax/c ` - ReaxFF potential in C * :doc:`rebo ` - second generation REBO potential of Brenner * :doc:`resquared ` - Everaers RE-Squared ellipsoidal potential diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index d92cf4694e..0367808002 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -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 diff --git a/examples/USER/rann/TiZr_2.nn b/examples/USER/rann/TiZr_2.nn new file mode 100644 index 0000000000..7ebdebf320 --- /dev/null +++ b/examples/USER/rann/TiZr_2.nn @@ -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 diff --git a/examples/USER/rann/in.lammps b/examples/USER/rann/in.lammps new file mode 100644 index 0000000000..3f831fca21 --- /dev/null +++ b/examples/USER/rann/in.lammps @@ -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 diff --git a/potentials/MgAl.rann b/potentials/MgAl.rann new file mode 100644 index 0000000000..5c21357755 --- /dev/null +++ b/potentials/MgAl.rann @@ -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 diff --git a/potentials/Ti.rann b/potentials/Ti.rann new file mode 100644 index 0000000000..bd006d72fd --- /dev/null +++ b/potentials/Ti.rann @@ -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 diff --git a/potentials/Zn.rann b/potentials/Zn.rann new file mode 100644 index 0000000000..e7a7cb7c8d --- /dev/null +++ b/potentials/Zn.rann @@ -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 diff --git a/potentials/Zr.rann b/potentials/Zr.rann new file mode 100644 index 0000000000..ceba7cf0c0 --- /dev/null +++ b/potentials/Zr.rann @@ -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 diff --git a/src/.gitignore b/src/.gitignore index b63256d931..72bb8a3004 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -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 diff --git a/src/Makefile b/src/Makefile index 271e2fe026..24d99a5fe3 100644 --- a/src/Makefile +++ b/src/Makefile @@ -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 \ diff --git a/src/Makefile.txt b/src/Makefile.txt new file mode 100644 index 0000000000..5542ed0cc5 --- /dev/null +++ b/src/Makefile.txt @@ -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 diff --git a/src/USER-HDNNP/pair_hdnnp.h b/src/USER-HDNNP/pair_hdnnp.h index 9ad2969b8c..c7cbc8188a 100644 --- a/src/USER-HDNNP/pair_hdnnp.h +++ b/src/USER-HDNNP/pair_hdnnp.h @@ -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 diff --git a/src/USER-RANN/pair_rann.cpp b/src/USER-RANN/pair_rann.cpp new file mode 100644 index 0000000000..f2e3af1ae5 --- /dev/null +++ b/src/USER-RANN/pair_rann.cpp @@ -0,0 +1,1272 @@ +// 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 "pair_rann.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "math_special.h" +#include "memory.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "tokenizer.h" +#include "update.h" + +#include +#include + +#include "rann_activation_linear.h" +#include "rann_activation_sig_i.h" +#include "rann_fingerprint_bond.h" +#include "rann_fingerprint_bondscreened.h" +#include "rann_fingerprint_bondscreenedspin.h" +#include "rann_fingerprint_bondspin.h" +#include "rann_fingerprint_radial.h" +#include "rann_fingerprint_radialscreened.h" +#include "rann_fingerprint_radialscreenedspin.h" +#include "rann_fingerprint_radialspin.h" + +#define MAXLINE 1024 + +using namespace LAMMPS_NS; + +static const char cite_user_rann_package[] = + "USER-RANN package:\n\n" + "@Article{Nitol2021,\n" + " author = {Nitol, Mashroor S and Dickel, Doyl E and Barrett, Christopher D},\n" + " title = {Artificial neural network potential for pure zinc},\n" + " journal = {Computational Materials Science},\n" + " year = 2021,\n" + " volume = 188,\n" + " pages = {110207}\n" + "}\n\n"; + + +PairRANN::PairRANN(LAMMPS *lmp) : Pair(lmp) +{ + single_enable = 0; + restartinfo = 0; + one_coeff = 1; + manybody_flag = 1; + allocated = 0; + nelements = -1; + elements = NULL; + mass = NULL; + + // set comm size needed by this Pair + // comm unused for now. + + comm_forward = 38; + comm_reverse = 30; + res = 10000; + cutmax = 0; + //at least one of the following will change during fingerprint definition: + doscreen = false; + allscreen = true; + + dospin = false; + +} + +PairRANN::~PairRANN() +{ + //clear memory + delete [] mass; + for (int i=0;i0) { + for (int j=0;j0) { + delete [] fingerprints[i]; + delete [] activation[i]; + } + } + delete [] fingerprints; + delete [] activation; + delete [] fingerprintcount; + delete [] fingerprintperelement; + delete [] fingerprintlength; + delete [] screening_min; + delete [] screening_max; + memory->destroy(xn); + memory->destroy(yn); + memory->destroy(zn); + memory->destroy(tn); + memory->destroy(jl); + memory->destroy(features); + memory->destroy(dfeaturesx); + memory->destroy(dfeaturesy); + memory->destroy(dfeaturesz); + memory->destroy(layer); + memory->destroy(sum); + memory->destroy(sum1); + memory->destroy(dlayerx); + memory->destroy(dlayery); + memory->destroy(dlayerz); + memory->destroy(dlayersumx); + memory->destroy(dlayersumy); + memory->destroy(dlayersumz); + if (doscreen) { + memory->destroy(Sik); + memory->destroy(Bij); + memory->destroy(dSikx); + memory->destroy(dSiky); + memory->destroy(dSikz); + memory->destroy(dSijkx); + memory->destroy(dSijky); + memory->destroy(dSijkz); + memory->destroy(dSijkxc); + memory->destroy(dSijkyc); + memory->destroy(dSijkzc); + } + if (dospin) { + memory->destroy(sx); + memory->destroy(sy); + memory->destroy(sz); + memory->destroy(dsx); + memory->destroy(dsy); + memory->destroy(dsz); + memory->destroy(dssumx); + memory->destroy(dssumy); + memory->destroy(dssumz); + } +} + + + +void PairRANN::allocate(const std::vector elementwords) +{ + int i,j,k,l,n; + n = atom->ntypes; + memory->create(setflag,n+1,n+1,"pair:setflag"); + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + cutmax = 0; + nmax1 = 100; + nmax2 = 20; + fmax = 0; + fnmax = 0; + nelementsp=nelements+1; + //initialize arrays + elements = new char *[nelements]; + elementsp = new char *[nelementsp];//elements + 'all' + mass = new double[nelements]; + net = new NNarchitecture[nelementsp]; + weightdefined = new bool*[nelementsp]; + biasdefined = new bool *[nelementsp]; + activation = new RANN::Activation**[nelementsp]; + fingerprints = new RANN::Fingerprint**[nelementsp]; + fingerprintlength = new int[nelementsp]; + fingerprintperelement = new int [nelementsp]; + fingerprintcount = new int[nelementsp]; + screening_min = new double [nelements*nelements*nelements]; + screening_max = new double [nelements*nelements*nelements]; + for (i=0;i 0) error->one(FLERR,"Illegal pair_style command"); +} + +void PairRANN::coeff(int narg, char **arg) +{ + int i,j; + map = new int [atom->ntypes+1]; + if (narg != 3 + atom->ntypes) error->one(FLERR,"Incorrect args for pair coefficients"); + if (strcmp(arg[0],"*") != 0 || strcmp(arg[1],"*") != 0) error->one(FLERR,"Incorrect args for pair coefficients"); + nelements = -1; + read_file(arg[2]); + // read args that map atom types to elements in potential file + // map[i] = which element the Ith atom type is, -1 if NULL + for (i = 3; i < narg; i++) { + if (strcmp(arg[i],"NULL") == 0) { + map[i-2] = -1; + continue; + } + for (j = 0; j < nelements; j++) { + if (strcmp(arg[i],elements[j]) == 0) break; + } + if (j < nelements) map[i-2] = j; + else error->one(FLERR,"No matching element in NN potential file"); + } + // clear setflag since coeff() called once with I,J = * * + int n = atom->ntypes; + for (i = 1; i <= n; i++) { + for (j = i; j <= n; j++) { + setflag[i][j] = 0; + } + } + // set setflag i,j for type pairs where both are mapped to elements + // set mass of atom type if i = j + int count = 0; + for (i = 1; i <= n; i++) { + for (j = i; j <= n; j++) { + if (map[i] >= 0 && map[j] >= 0) { + setflag[i][j] = 1; + if (i == j) atom->set_mass(FLERR,i,mass[map[i]]); + count++; + } + } + } + if (count == 0) error->one(FLERR,"Incorrect args for pair coefficients"); + for (i=0;iallocate(); + } + } + allocated=1; +} + +void PairRANN::read_file(char *filename) +{ + FILE *fp; + int eof = 0,i,j,k,l; + int n,nwords; + std::string line,line1; + int longline = 4096; + int linenum; + char linetemp[longline]; + std::string strtemp; + char *ptr; + bool comment; + char str[128]; + std::vector linev,line1v; + fp = utils::open_potential(filename,lmp,nullptr); + if (fp == nullptr) {error->one(FLERR,"Cannot open RANN potential file");} + ptr=fgets(linetemp,longline,fp); + linenum++; + strtemp=utils::trim_comment(linetemp); + while (strtemp.empty()) { + ptr=fgets(linetemp,longline,fp); + strtemp=utils::trim_comment(linetemp); + linenum++; + } + line=strtemp; + while (eof == 0) { + ptr=fgets(linetemp,longline,fp); + linenum++; + if (ptr == NULL) { + if (check_potential()) { + error->one(FLERR,"Invalid syntax in potential file, values are inconsistent or missing"); + } + else { + eof = 1; + break; + } + } + strtemp=utils::trim_comment(linetemp); + while (strtemp.empty()) { + ptr=fgets(linetemp,longline,fp); + strtemp=utils::trim_comment(linetemp); + linenum++; + } + line1=linetemp; + Tokenizer values = Tokenizer(line,": ,\t_\n"); + Tokenizer values1 = Tokenizer(line1,": ,\t_\n"); + linev = values.as_vector(); + line1v = values1.as_vector(); + if (linev[0]=="atomtypes") read_atom_types(linev,line1v,filename,linenum); + else if (linev[0]=="mass") read_mass(linev,line1v,filename,linenum); + else if (linev[0]=="fingerprintsperelement") read_fpe(linev,line1v,filename,linenum); + else if (linev[0]=="fingerprints") read_fingerprints(linev,line1v,filename,linenum); + else if (linev[0]=="fingerprintconstants") read_fingerprint_constants(linev,line1v,filename,linenum); + else if (linev[0]=="networklayers") read_network_layers(linev,line1v,filename,linenum); + else if (linev[0]=="layersize") read_layer_size(linev,line1v,filename,linenum); + else if (linev[0]=="weight") read_weight(linev,line1v,fp,filename,&linenum); + else if (linev[0]=="bias") read_bias(linev,line1v,fp,filename,&linenum); + else if (linev[0]=="activationfunctions") read_activation_functions(linev,line1v,filename,linenum); + else if (linev[0]=="screening") read_screening(linev,line1v,filename,linenum); + else if (linev[0]=="calibrationparameters") continue;//information on how the network was trained + else error->one(FLERR,"Could not understand file syntax: unknown keyword"); + ptr=fgets(linetemp,longline,fp); + linenum++; + strtemp=utils::trim_comment(linetemp); + while (strtemp.empty()) { + ptr=fgets(linetemp,longline,fp); + strtemp=utils::trim_comment(linetemp); + linenum++; + } + if (ptr == NULL) { + if (check_potential()) { + error->one(FLERR,"Invalid syntax in potential file, values are inconsistent or missing"); + } + else { + eof = 1; + break; + } + } + line=linetemp; + } +} + +void PairRANN::read_atom_types(std::vector line,std::vector line1,char *filename,int linenum) { + int nwords = line1.size(); + if (nwords < 1) error->one(filename,linenum,"Incorrect syntax for atom types"); + nelements = nwords; + line1.push_back("all"); + allocate(line1); +} + +void PairRANN::read_mass(std::vector line,std::vector line1,char *filename,int linenum) { + if (nelements == -1)error->one(filename,linenum-1,"atom types must be defined before mass in potential file."); + int nwords = 0,i; + for (i=0;ione(filename,linenum-1,"mass element not found in atom types."); +} + +void PairRANN::read_fpe(std::vector line,std::vector line1,char *filename,int linenum) { + int i,j; + if (nelements == -1)error->one(filename,linenum-1,"atom types must be defined before fingerprints per element in potential file."); + for (i=0;ione(filename,linenum-1,"fingerprint-per-element element not found in atom types"); +} + +void PairRANN::read_fingerprints(std::vector line,std::vector line1,char *filename,int linenum) { + int nwords1,nwords,i,j,k,l,m,i1; + bool found; + char str[MAXLINE]; + nwords1 = line1.size(); + nwords = line.size(); + if (nelements == -1)error->one(filename,linenum-1,"atom types must be defined before fingerprints in potential file."); + int atomtypes[nwords-1]; + for (i=1;ione(filename,linenum-1,"fingerprint element not found in atom types");} + } + i = atomtypes[0]; + k = 0; + if (fingerprintperelement[i]==-1) {error->one(filename,linenum-1,"fingerprint per element must be defined before fingerprints");} + while (k=fingerprintperelement[i]) {error->one(filename,linenum,"more fingerprints defined than fingerprint per element");} + delete fingerprints[i][i1]; + fingerprints[i][i1] = create_fingerprint(line1[k].c_str()); + if (fingerprints[i][i1]->n_body_type!=nwords-1) {error->one(filename,linenum,"invalid fingerprint for element combination");} + k++; + fingerprints[i][i1]->init(atomtypes,utils::inumeric(filename,linenum,line1[k++].c_str(),1,lmp)); + fingerprintcount[i]++; + } +} + +void PairRANN::read_fingerprint_constants(std::vector line,std::vector line1,char *filename,int linenum) { + int i,j,k,l,m,i1; + bool found; + char str [128]; + int nwords = line.size(); + if (nelements == -1)error->one(filename,linenum-1,"atom types must be defined before fingerprints in potential file."); + int n_body_type = nwords-4; + int atomtypes[n_body_type]; + for (i=1;i<=n_body_type;i++) { + found = false; + for (j=0;jone(filename,linenum-1,"fingerprint element not found in atom types");} + } + i = atomtypes[0]; + found = false; + for (k=0;kempty) {continue;} + if (n_body_type!=fingerprints[i][k]->n_body_type) {continue;} + for (j=0;jatomtypes[j]!=atomtypes[j]) {break;} + if (j==n_body_type-1) { + if (line[nwords-3].compare(fingerprints[i][k]->style)==0 && utils::inumeric(filename,linenum,line[nwords-2].c_str(),1,lmp)==fingerprints[i][k]->id) { + found=true; + i1 = k; + break; + } + } + } + if (found) {break;} + } + if (!found) {error->one(filename,linenum-1,"cannot define constants for unknown fingerprint");} + fingerprints[i][i1]->fullydefined=fingerprints[i][i1]->parse_values(line[nwords-1],line1); +} + +void PairRANN::read_network_layers(std::vector line,std::vector line1,char *filename,int linenum) { + int i,j; + if (nelements == -1)error->one(filename,linenum-1,"atom types must be defined before network layers in potential file."); + for (i=0;ione(filename,linenum,"invalid number of network layers"); + delete [] net[i].dimensions; + weightdefined[i] = new bool [net[i].layers]; + biasdefined[i] = new bool [net[i].layers]; + net[i].dimensions = new int [net[i].layers]; + net[i].Weights = new double * [net[i].layers-1]; + net[i].Biases = new double * [net[i].layers-1]; + net[i].activations = new int [net[i].layers-1]; + for (j=0;jone(filename,linenum-1,"network layers element not found in atom types"); +} + +void PairRANN::read_layer_size(std::vector line,std::vector line1,char *filename,int linenum) { + int i; + for (i=0;ione(filename,linenum-1,"networklayers for each atom type must be defined before the corresponding layer sizes."); + int j = utils::inumeric(filename,linenum,line[2].c_str(),1,lmp); + if (j>=net[i].layers || j<0) {error->one(filename,linenum,"invalid layer in layer size definition");}; + net[i].dimensions[j]= utils::inumeric(filename,linenum,line1[0].c_str(),1,lmp); + return; + } + } + error->one(filename,linenum-1,"layer size element not found in atom types"); +} + +void PairRANN::read_weight(std::vector line,std::vector line1,FILE* fp,char *filename,int *linenum) { + int i,j,k,l,nwords; + char *ptr; + int longline = 4096; + char linetemp [longline]; + for (l=0;lone(filename,*linenum-1,"networklayers must be defined before weights."); + i=utils::inumeric(filename,*linenum,line[2].c_str(),1,lmp); + if (i>=net[l].layers || i<0)error->one(filename,*linenum-1,"invalid weight layer"); + if (net[l].dimensions[i]==0 || net[l].dimensions[i+1]==0) error->one(filename,*linenum-1,"network layer sizes must be defined before corresponding weight"); + net[l].Weights[i] = new double [net[l].dimensions[i]*net[l].dimensions[i+1]]; + weightdefined[l][i] = true; + nwords = line1.size(); + if (nwords != net[l].dimensions[i])error->one(filename,*linenum,"invalid weights per line"); + for (k=0;kone(filename,*linenum,"unexpected end of potential file!"); + nwords = line1.size(); + if (nwords != net[l].dimensions[i])error->one(filename,*linenum,"invalid weights per line"); + for (k=0;kone(filename,*linenum-1,"weight element not found in atom types"); +} + +void PairRANN::read_bias(std::vector line,std::vector line1,FILE* fp,char *filename,int *linenum) { + int i,j,l,nwords; + char *ptr; + char linetemp[MAXLINE]; + for (l=0;lone(filename,*linenum-1,"networklayers must be defined before biases."); + i=utils::inumeric(filename,*linenum,line[2].c_str(),1,lmp); + if (i>=net[l].layers || i<0)error->one(filename,*linenum-1,"invalid bias layer"); + if (net[l].dimensions[i]==0) error->one(filename,*linenum-1,"network layer sizes must be defined before corresponding bias"); + biasdefined[l][i] = true; + net[l].Biases[i] = new double [net[l].dimensions[i+1]]; + net[l].Biases[i][0] = utils::numeric(filename,*linenum,line1[0].c_str(),1,lmp); + for (j=1;jone(filename,*linenum-1,"bias element not found in atom types"); +} + +void PairRANN::read_activation_functions(std::vector line,std::vector line1,char *filename,int linenum) { + int i,j,l,nwords; + int *ptr; + for (l=0;lone(filename,linenum-1,"networklayers must be defined before activation functions."); + i = strtol(line[2].c_str(),NULL,10); + if (i>=net[l].layers || i<0)error->one(filename,linenum-1,"invalid activation layer"); + delete activation[l][i]; + activation[l][i]=create_activation(line1[0].c_str()); + return; + } + } + error->one(filename,linenum-1,"activation function element not found in atom types"); +} + +void PairRANN::read_screening(std::vector line,std::vector line1,char *filename,int linenum) { + int i,j,k; + bool found; + int nwords = line.size(); + if (nelements == -1)error->one(filename,linenum-1,"atom types must be defined before fingerprints in potential file."); + if (nwords!=5)error->one(filename,linenum-1,"invalid screening command"); + int n_body_type = 3; + int atomtypes[n_body_type]; + for (i=1;i<=n_body_type;i++) { + found = false; + for (j=0;jone(filename,linenum-1,"fingerprint element not found in atom types");} + } + i = atomtypes[0]; + j = atomtypes[1]; + k = atomtypes[2]; + int index = i*nelements*nelements+j*nelements+k; + if (line[4].compare("Cmin")==0) { + screening_min[index] = utils::numeric(filename,linenum,line1[0].c_str(),1,lmp); + } + else if (line[4].compare("Cmax")==0) { + screening_max[index] = utils::numeric(filename,linenum,line1[0].c_str(),1,lmp); + } + else error->one(filename,linenum-1,"unrecognized screening keyword"); +} + +//Called after finishing reading the potential file to make sure it is complete. True is bad. +//also does the rest of the memory allocation. +bool PairRANN::check_potential() { + int i,j,k,l; + if (nelements==-1) {return true;} + for (i=0;i<=nelements;i++) { + if (inet[i].maxlayer)net[i].maxlayer = net[i].dimensions[j]; + } + if (net[i].maxlayer>fnmax) {fnmax = net[i].maxlayer;} + if (net[i].dimensions[net[i].layers-1]!=1)return true;//output layer must have single neuron (the energy) + if (net[i].dimensions[0]>fmax)fmax=net[i].dimensions[0]; + for (j=0;jempty)return true;//undefined activations + for (k=0;kfullydefined==false)return true; + fingerprints[i][j]->startingneuron = fingerprintlength[i]; + fingerprintlength[i] +=fingerprints[i][j]->get_length(); + if (fingerprints[i][j]->rc>cutmax) {cutmax = fingerprints[i][j]->rc;} + } + if (net[i].dimensions[0]!=fingerprintlength[i])return true; + } + memory->create(xn,nmax1,"pair:xn"); + memory->create(yn,nmax1,"pair:yn"); + memory->create(zn,nmax1,"pair:zn"); + memory->create(tn,nmax1,"pair:tn"); + memory->create(jl,nmax1,"pair:jl"); + memory->create(features,fmax,"pair:features"); + memory->create(dfeaturesx,fmax*nmax2,"pair:dfeaturesx"); + memory->create(dfeaturesy,fmax*nmax2,"pair:dfeaturesy"); + memory->create(dfeaturesz,fmax*nmax2,"pair:dfeaturesz"); + memory->create(layer,fnmax,"pair:layer"); + memory->create(sum,fnmax,"pair:sum"); + memory->create(sum1,fnmax,"pair:sum1"); + memory->create(dlayerx,nmax2,fnmax,"pair:dlayerx"); + memory->create(dlayery,nmax2,fnmax,"pair:dlayery"); + memory->create(dlayerz,nmax2,fnmax,"pair:dlayerz"); + memory->create(dlayersumx,nmax2,fnmax,"pair:dlayersumx"); + memory->create(dlayersumy,nmax2,fnmax,"pair:dlayersumy"); + memory->create(dlayersumz,nmax2,fnmax,"pair:dlayersumz"); + if (doscreen) { + memory->create(Sik,nmax2,"pair:Sik"); + memory->create(Bij,nmax2,"pair:Bij"); + memory->create(dSikx,nmax2,"pair:dSikx"); + memory->create(dSiky,nmax2,"pair:dSiky"); + memory->create(dSikz,nmax2,"pair:dSikz"); + memory->create(dSijkx,nmax2*nmax2,"pair:dSijkx"); + memory->create(dSijky,nmax2*nmax2,"pair:dSijky"); + memory->create(dSijkz,nmax2*nmax2,"pair:dSijkz"); + memory->create(dSijkxc,nmax2,nmax2,"pair:dSijkxc"); + memory->create(dSijkyc,nmax2,nmax2,"pair:dSijkyc"); + memory->create(dSijkzc,nmax2,nmax2,"pair:dSijkzc"); + } + if (dospin) { + memory->create(sx,fmax*nmax2,"pair:sx"); + memory->create(sy,fmax*nmax2,"pair:sy"); + memory->create(sz,fmax*nmax2,"pair:sz"); + memory->create(dsx,nmax2,fnmax,"pair:dsx"); + memory->create(dsy,nmax2,fnmax,"pair:dsy"); + memory->create(dsz,nmax2,fnmax,"pair:dsz"); + memory->create(dssumx,nmax2,fnmax,"pair:dssumx"); + memory->create(dssumy,nmax2,fnmax,"pair:dssumy"); + memory->create(dssumz,nmax2,fnmax,"pair:dssumz"); + } + return false;//everything looks good +} + +void PairRANN::compute(int eflag, int vflag) +{ + //perform force/energy computation_ + if (dospin) { + if (strcmp(update->unit_style,"metal") != 0) + error->one(FLERR,"Spin pair styles require metal units"); + if (!atom->sp_flag) + error->one(FLERR,"Spin pair styles requires atom/spin style"); + } + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = vflag_atom = 0; + int ii,i,j; + int nn = 0; + sims = new Simulation[1]; + sims->inum = listfull->inum; + sims->ilist=listfull->ilist; + sims->id = listfull->ilist; + sims->type = atom->type; + sims->x = atom->x; + sims->numneigh = listfull->numneigh; + sims->firstneigh = listfull->firstneigh; + if (dospin) { + sims->s = atom->sp; + } + int itype,f,jnum,len; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = eflag_global = eflag_atom = 0; + if (eflag_global) {eng_vdwl=0;eng_coul=0;} + double energy=0; + double **force = atom->f; + double **fm = atom->fm; + double **virial = vatom; + //loop over atoms + for (ii=0;iiinum;ii++) { + i = sims->ilist[ii]; + itype = map[sims->type[i]]; + f = net[itype].dimensions[0]; + jnum = sims->numneigh[i]; + if (jnum>nmax1) { + nmax1 = jnum; + memory->grow(xn,nmax1,"pair:xn"); + memory->grow(yn,nmax1,"pair:yn"); + memory->grow(zn,nmax1,"pair:zn"); + memory->grow(tn,nmax1,"pair:tn"); + memory->grow(jl,nmax1,"pair:jl"); + } + cull_neighbor_list(&jnum,i,0); + if (jnum>nmax2) { + nmax2=jnum; + memory->grow(dfeaturesx,fmax*nmax2,"pair:dfeaturesx"); + memory->grow(dfeaturesy,fmax*nmax2,"pair:dfeaturesy"); + memory->grow(dfeaturesz,fmax*nmax2,"pair:dfeaturesz"); + memory->grow(layer,fnmax,"pair:layer"); + memory->grow(sum,fnmax,"pair:sum"); + memory->grow(sum1,fnmax,"pair:sum1"); + memory->grow(dlayerx,nmax2,fnmax,"pair:dlayerx"); + memory->grow(dlayery,nmax2,fnmax,"pair:dlayery"); + memory->grow(dlayerz,nmax2,fnmax,"pair:dlayerz"); + memory->grow(dlayersumx,nmax2,fnmax,"pair:dlayersumx"); + memory->grow(dlayersumy,nmax2,fnmax,"pair:dlayersumy"); + memory->grow(dlayersumz,nmax2,fnmax,"pair:dlayersumz"); + if (doscreen) { + memory->grow(Sik,nmax2,"pair:Sik"); + memory->grow(Bij,nmax2,"pair:Bij"); + memory->grow(dSikx,nmax2,"pair:dSikx"); + memory->grow(dSiky,nmax2,"pair:dSiky"); + memory->grow(dSikz,nmax2,"pair:dSikz"); + memory->grow(dSijkx,nmax2*nmax2,"pair:dSijkx"); + memory->grow(dSijky,nmax2*nmax2,"pair:dSijky"); + memory->grow(dSijkz,nmax2*nmax2,"pair:dSijkz"); + memory->destroy(dSijkxc); + memory->destroy(dSijkyc); + memory->destroy(dSijkzc); + memory->create(dSijkxc,nmax2,nmax2,"pair:dSijkxc"); + memory->create(dSijkyc,nmax2,nmax2,"pair:dSijkyc"); + memory->create(dSijkzc,nmax2,nmax2,"pair:dSijkzc"); + } + if (dospin) { + memory->grow(sx,fmax*nmax2,"pair:sx"); + memory->grow(sy,fmax*nmax2,"pair:sy"); + memory->grow(sz,fmax*nmax2,"pair:sz"); + memory->grow(dsx,nmax2,fnmax,"pair:dsx"); + memory->grow(dsy,nmax2,fnmax,"pair:dsy"); + memory->grow(dsz,nmax2,fnmax,"pair:dsz"); + memory->grow(dssumx,nmax2,fnmax,"pair:dssumx"); + memory->grow(dssumy,nmax2,fnmax,"pair:dssumy"); + memory->grow(dssumz,nmax2,fnmax,"pair:dssumz"); + } + } + for (j=0;jspin==false && fingerprints[itype][j]->screen==false)fingerprints[itype][j]->compute_fingerprint(features,dfeaturesx,dfeaturesy,dfeaturesz,ii,nn,xn,yn,zn,tn,jnum-1,jl); + else if (fingerprints[itype][j]->spin==false && fingerprints[itype][j]->screen==true) fingerprints[itype][j]->compute_fingerprint(features,dfeaturesx,dfeaturesy,dfeaturesz,Sik,dSikx,dSiky,dSikz,dSijkx,dSijky,dSijkz,Bij,ii,nn,xn,yn,zn,tn,jnum-1,jl); + else if (fingerprints[itype][j]->spin==true && fingerprints[itype][j]->screen==false)fingerprints[itype][j]->compute_fingerprint(features,dfeaturesx,dfeaturesy,dfeaturesz,sx,sy,sz,ii,nn,xn,yn,zn,tn,jnum-1,jl); + else if (fingerprints[itype][j]->spin==true && fingerprints[itype][j]->screen==true) fingerprints[itype][j]->compute_fingerprint(features,dfeaturesx,dfeaturesy,dfeaturesz,sx,sy,sz,Sik,dSikx,dSiky,dSikz,dSijkx,dSijky,dSijkz,Bij,ii,nn,xn,yn,zn,tn,jnum-1,jl); + } + itype = nelements; + //do fingerprints for type "all" + len = fingerprintperelement[itype]; + for (j=0;jspin==false && fingerprints[itype][j]->screen==false)fingerprints[itype][j]->compute_fingerprint(features,dfeaturesx,dfeaturesy,dfeaturesz,ii,nn,xn,yn,zn,tn,jnum-1,jl); + else if (fingerprints[itype][j]->spin==false && fingerprints[itype][j]->screen==true) fingerprints[itype][j]->compute_fingerprint(features,dfeaturesx,dfeaturesy,dfeaturesz,Sik,dSikx,dSiky,dSikz,dSijkx,dSijky,dSijkz,Bij,ii,nn,xn,yn,zn,tn,jnum-1,jl); + else if (fingerprints[itype][j]->spin==true && fingerprints[itype][j]->screen==false)fingerprints[itype][j]->compute_fingerprint(features,dfeaturesx,dfeaturesy,dfeaturesz,sx,sy,sz,ii,nn,xn,yn,zn,tn,jnum-1,jl); + else if (fingerprints[itype][j]->spin==true && fingerprints[itype][j]->screen==true) fingerprints[itype][j]->compute_fingerprint(features,dfeaturesx,dfeaturesy,dfeaturesz,sx,sy,sz,Sik,dSikx,dSiky,dSikz,dSijkx,dSijky,dSijkz,Bij,ii,nn,xn,yn,zn,tn,jnum-1,jl); + } + //run fingerprints through network + if (dospin) { + propagateforwardspin(&energy,force,fm,virial,ii,jnum); + } + else { + propagateforward(&energy,force,virial,ii,jnum); + } + } + if (vflag_fdotr) virial_fdotr_compute(); +} + +void PairRANN::cull_neighbor_list(int* jnum,int i,int sn) { + int *jlist,j,count,jj,*type,jtype; + double xtmp,ytmp,ztmp,delx,dely,delz,rsq; + double **x = sims[sn].x; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + type = sims[sn].type; + jlist = sims[sn].firstneigh[i]; + count = 0; + for (jj=0;jjcutmax*cutmax) { + continue; + } + xn[count]=delx; + yn[count]=dely; + zn[count]=delz; + tn[count]=jtype; + jl[count]=j; + count++; + } + jnum[0]=count+1; +} + +void PairRANN::screen_neighbor_list(int *jnum, int i,int sn) { + int jj,kk,count,count1; + count = 0; + for (jj=0;jjilist[ii]; + itype = map[sim->type[i]]; + for (int jj=0;jjcutmax*cutmax) { + Bij[kk]= false; + continue; + } + for (jj=0;jjcutmax*cutmax) { + Bij[jj] = false; + continue; + } + delx3 = delx2-delx; + dely3 = dely2-dely; + delz3 = delz2-delz; + rjk = delx3*delx3+dely3*dely3+delz3*delz3; + if (rik+rjk<=rij) {continue;}//bond angle > 90 degrees + if (rik+rij<=rjk) {continue;}//bond angle > 90 degrees + double Cmax = screening_max[itype*nelements*nelements+jtype*nelements+ktype]; + double Cmin = screening_min[itype*nelements*nelements+jtype*nelements+ktype]; + double temp1 = rij-rik+rjk; + Cn = temp1*temp1-4*rij*rjk; + //a few expanded computations provided for clarity: + //Cn = (rij-rik+rjk)*(rij-rik+rjk)-4*rij*rjk; + //Cd = (rij-rjk)*(rij-rjk)-rik*rik; + //Cijk = 1+2*(rik*rij+rik*rjk-rik*rik)/(rik*rik-(rij-rjk)*(rij-rjk)); + temp1 = rij-rjk; + Cd = temp1*temp1-rik*rik; + Cijk = Cn/Cd; + C = (Cijk-Cmin)/(Cmax-Cmin); + if (C>=1) {continue;} + else if (C<=0) { + Bij[kk]=false; + break; + } + dC = Cmax-Cmin; + dC *= dC; + dC *= dC; + temp1 = 1-C; + temp1 *= temp1; + temp1 *= temp1; + Sijk = 1-temp1; + Sijk *= Sijk; + Dij = 4*rik*(Cn+4*rjk*(rij+rik-rjk))/Cd/Cd; + Dik = -4*(rij*Cn+rjk*Cn+8*rij*rik*rjk)/Cd/Cd; + Djk = 4*rik*(Cn+4*rij*(rik-rij+rjk))/Cd/Cd; + temp1 = Cijk-Cmax; + double temp2 = temp1*temp1; + dfc = 8*temp1*temp2/(temp2*temp2-dC); + Sik[kk] *= Sijk; + dSijkx[kk*jnum+jj] = dfc*(delx*Dij-delx3*Djk); + dSikx[kk] += dfc*(delx2*Dik+delx3*Djk); + dSijky[kk*jnum+jj] = dfc*(dely*Dij-dely3*Djk); + dSiky[kk] += dfc*(dely2*Dik+dely3*Djk); + dSijkz[kk*jnum+jj] = dfc*(delz*Dij-delz3*Djk); + dSikz[kk] += dfc*(delz2*Dik+delz3*Djk); + } + } +} + + +//Called by getproperties. Propagate features and dfeatures through network. Updates force and energy +void PairRANN::propagateforward(double * energy,double **force,double **virial, int ii,int jnum) { + int i,j,k,jj,j1,itype,i1; + int *ilist,*numneigh; + ilist = listfull->ilist; + int inum = listfull->inum; + int *type = atom->type; + i1=ilist[ii]; + itype = map[type[i1]]; + NNarchitecture net1 = net[itype]; + int L = net1.layers-1; + //energy output with forces from analytical derivatives + double dsum1; + int f = net1.dimensions[0]; + for (i=0;idactivation_function(sum[j]); + sum[j] = activation[itype][i]->activation_function(sum[j]); + if (i==L-1) { + energy[j] = sum[j]; + if (eflag_atom)eatom[i1]=sum[j]; + if (eflag_global) {eng_vdwl +=sum[j];} + } + //force propagation + for (jj=0;jjilist; + int inum = listfull->inum; + int *type = atom->type; + i1=ilist[ii]; + itype = map[type[i1]]; + NNarchitecture net1 = net[itype]; + int L = net1.layers-1; + //energy output with forces from analytical derivatives + double dsum1; + int f = net1.dimensions[0]; + for (i=0;idactivation_function(sum[j]); + sum[j] = activation[itype][i]->activation_function(sum[j]); + if (i==L-1) { + energy[j] = sum[j]; + if (eflag_atom)eatom[i1]=sum[j]; + if (eflag_global) {eng_vdwl +=sum[j];} + } + //force propagation + for (jj=0;jjrequest(this,instance_me); + neighbor->requests[irequest_full]->id = 1; + neighbor->requests[irequest_full]->half = 0; + neighbor->requests[irequest_full]->full = 1; +} + + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairRANN::init_one(int i, int j) +{ + return cutmax; +} + +void PairRANN::errorf(const char *file, int line, const char * message) { + error->one(file,line,message); +} + +int PairRANN::factorial(int n) { + return round(MathSpecial::factorial(n)); +} + +RANN::Fingerprint *PairRANN::create_fingerprint(const char *style) +{ + if (strcmp(style,"radial")==0) { + return new RANN::Fingerprint_radial(this); + } + else if (strcmp(style,"radialscreened")==0) { + return new RANN::Fingerprint_radialscreened(this); + } + else if (strcmp(style,"radialscreenedspin")==0) { + return new RANN::Fingerprint_radialscreenedspin(this); + } + else if (strcmp(style,"radialspin")==0) { + return new RANN::Fingerprint_radialspin(this); + } + else if (strcmp(style,"bond")==0) { + return new RANN::Fingerprint_bond(this); + } + else if (strcmp(style,"bondscreened")==0) { + return new RANN::Fingerprint_bondscreened(this); + } + else if (strcmp(style,"bondscreenedspin")==0) { + return new RANN::Fingerprint_bondscreenedspin(this); + } + else if (strcmp(style,"bondspin")==0) { + return new RANN::Fingerprint_bondspin(this); + } + char str[128]; + sprintf(str,"Unknown fingerprint style %s",style); + error->one(FLERR,str); + return NULL; +} + + +RANN::Activation *PairRANN::create_activation(const char *style) +{ + if (strcmp(style,"linear")==0) { + return new RANN::Activation_linear(this); + } + else if (strcmp(style,"sigI")==0) { + return new RANN::Activation_sigI(this); + } + char str[128]; + sprintf(str,"Unknown activation style %s",style); + error->one(FLERR,str); + return NULL; +} + diff --git a/src/USER-RANN/pair_rann.h b/src/USER-RANN/pair_rann.h new file mode 100644 index 0000000000..97461d2437 --- /dev/null +++ b/src/USER-RANN/pair_rann.h @@ -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 +#include + +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);//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::vector,char*,int); + void read_mass(std::vector,std::vector,char*,int); + void read_fpe(std::vector,std::vector,char*,int);//fingerprints per element. Count total fingerprints defined for each 1st element in element combinations + void read_fingerprints(std::vector,std::vector,char*,int); + void read_fingerprint_constants(std::vector,std::vector,char*,int); + void read_network_layers(std::vector,std::vector,char*,int);//include input and output layer (hidden layers + 2) + void read_layer_size(std::vector,std::vector,char*,int); + void read_weight(std::vector,std::vector,FILE*,char*,int*);//weights should be formatted as properly shaped matrices + void read_bias(std::vector,std::vector,FILE*,char*,int*);//biases should be formatted as properly shaped vectors + void read_activation_functions(std::vector,std::vector,char*,int); + void read_screening(std::vector,std::vector,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 + + + diff --git a/src/USER-RANN/rann_activation.h b/src/USER-RANN/rann_activation.h new file mode 100644 index 0000000000..b924dff63c --- /dev/null +++ b/src/USER-RANN/rann_activation.h @@ -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_ */ diff --git a/src/USER-RANN/rann_activation_linear.h b/src/USER-RANN/rann_activation_linear.h new file mode 100644 index 0000000000..2d94859cb0 --- /dev/null +++ b/src/USER-RANN/rann_activation_linear.h @@ -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_ */ diff --git a/src/USER-RANN/rann_activation_sig_i.h b/src/USER-RANN/rann_activation_sig_i.h new file mode 100644 index 0000000000..9983862b31 --- /dev/null +++ b/src/USER-RANN/rann_activation_sig_i.h @@ -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_ */ diff --git a/src/USER-RANN/rann_fingerprint.cpp b/src/USER-RANN/rann_fingerprint.cpp new file mode 100644 index 0000000000..b90e04f9a5 --- /dev/null +++ b/src/USER-RANN/rann_fingerprint.cpp @@ -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); + } +} diff --git a/src/USER-RANN/rann_fingerprint.h b/src/USER-RANN/rann_fingerprint.h new file mode 100644 index 0000000000..5a32a1c74d --- /dev/null +++ b/src/USER-RANN/rann_fingerprint.h @@ -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) { 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_ */ diff --git a/src/USER-RANN/rann_fingerprint_bond.cpp b/src/USER-RANN/rann_fingerprint_bond.cpp new file mode 100644 index 0000000000..94522eba1c --- /dev/null +++ b/src/USER-RANN/rann_fingerprint_bond.cpp @@ -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 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;lerrorf(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;ielementsp[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;ielementsp[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;ielementsp[atomtypes[i]]); + } + fprintf(fid,":%s_%d:alphak:\n",style,id); + for (i=0;ielementsp[atomtypes[0]]); + for (i=1;ielementsp[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;ielementsp[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;ielementsp[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;jres; + 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;pfactorial(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;kksims[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); + 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_ */ diff --git a/src/USER-RANN/rann_fingerprint_bondscreened.cpp b/src/USER-RANN/rann_fingerprint_bondscreened.cpp new file mode 100644 index 0000000000..c81fcd428a --- /dev/null +++ b/src/USER-RANN/rann_fingerprint_bondscreened.cpp @@ -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 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;lerrorf(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;ielementsp[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;ielementsp[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;ielementsp[atomtypes[i]]); + } + fprintf(fid,":%s_%d:alphak:\n",style,id); + for (i=0;ielementsp[atomtypes[0]]); + for (i=1;ielementsp[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;ielementsp[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;ielementsp[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;jres; + 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;pfactorial(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;kksims[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); + 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_ */ diff --git a/src/USER-RANN/rann_fingerprint_bondscreenedspin.cpp b/src/USER-RANN/rann_fingerprint_bondscreenedspin.cpp new file mode 100644 index 0000000000..fc051d08ee --- /dev/null +++ b/src/USER-RANN/rann_fingerprint_bondscreenedspin.cpp @@ -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 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;lerrorf(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;ielementsp[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;ielementsp[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;ielementsp[atomtypes[i]]); + } + fprintf(fid,":%s_%d:alphak:\n",style,id); + for (i=0;ielementsp[atomtypes[0]]); + for (i=1;ielementsp[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;ielementsp[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;ielementsp[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;jres; + 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;pfactorial(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;kks[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;a2s[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;a2s[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;a2s[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;a2s[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;a2sims[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;kks[j]; + double spj = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2]; + for (n = 0;ns[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); + 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_ */ diff --git a/src/USER-RANN/rann_fingerprint_bondspin.cpp b/src/USER-RANN/rann_fingerprint_bondspin.cpp new file mode 100644 index 0000000000..22b88f5026 --- /dev/null +++ b/src/USER-RANN/rann_fingerprint_bondspin.cpp @@ -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 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;lerrorf(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;ielementsp[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;ielementsp[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;ielementsp[atomtypes[i]]); + } + fprintf(fid,":%s_%d:alphak:\n",style,id); + for (i=0;ielementsp[atomtypes[0]]); + for (i=1;ielementsp[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;ielementsp[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;ielementsp[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;jres; + 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;pfactorial(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;kks[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;a2s[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;a2s[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;a2s[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;a2s[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;a2sims[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;kks[j]; + double spj = si[0]*sj[0]+si[1]*sj[1]+si[2]*sj[2]; + for (n = 0;ns[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;ns[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); + 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_ */ diff --git a/src/USER-RANN/rann_fingerprint_radial.cpp b/src/USER-RANN/rann_fingerprint_radial.cpp new file mode 100644 index 0000000000..26c60df2b8 --- /dev/null +++ b/src/USER-RANN/rann_fingerprint_radial.cpp @@ -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 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;lerrorf(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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;jnelements; + 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; +} diff --git a/src/USER-RANN/rann_fingerprint_radial.h b/src/USER-RANN/rann_fingerprint_radial.h new file mode 100644 index 0000000000..d5a73a486c --- /dev/null +++ b/src/USER-RANN/rann_fingerprint_radial.h @@ -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); + 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_ */ diff --git a/src/USER-RANN/rann_fingerprint_radialscreened.cpp b/src/USER-RANN/rann_fingerprint_radialscreened.cpp new file mode 100644 index 0000000000..ba9cee8de7 --- /dev/null +++ b/src/USER-RANN/rann_fingerprint_radialscreened.cpp @@ -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 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;lerrorf(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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;jnelements; + 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); + 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_ */ diff --git a/src/USER-RANN/rann_fingerprint_radialscreenedspin.cpp b/src/USER-RANN/rann_fingerprint_radialscreenedspin.cpp new file mode 100644 index 0000000000..01defe8a7e --- /dev/null +++ b/src/USER-RANN/rann_fingerprint_radialscreenedspin.cpp @@ -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 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;lerrorf(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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;jnelements; + 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); + 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_ */ diff --git a/src/USER-RANN/rann_fingerprint_radialspin.cpp b/src/USER-RANN/rann_fingerprint_radialspin.cpp new file mode 100644 index 0000000000..1ce43a44b2 --- /dev/null +++ b/src/USER-RANN/rann_fingerprint_radialspin.cpp @@ -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 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;lerrorf(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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;ielementsp[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;jnelements; + 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; +} diff --git a/src/USER-RANN/rann_fingerprint_radialspin.h b/src/USER-RANN/rann_fingerprint_radialspin.h new file mode 100644 index 0000000000..90c3ce1f22 --- /dev/null +++ b/src/USER-RANN/rann_fingerprint_radialspin.h @@ -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); + 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_ */