Merge branch 'develop' into collected-small-changes

This commit is contained in:
Axel Kohlmeyer
2024-06-25 19:41:45 -04:00
70 changed files with 16504 additions and 7342 deletions

View File

@ -108,6 +108,10 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`pe/mol/tally <compute_tally>` * :doc:`pe/mol/tally <compute_tally>`
* :doc:`pe/tally <compute_tally>` * :doc:`pe/tally <compute_tally>`
* :doc:`plasticity/atom <compute_plasticity_atom>` * :doc:`plasticity/atom <compute_plasticity_atom>`
* :doc:`pod/atom <compute_pod_atom>`
* :doc:`podd/atom <compute_pod_atom>`
* :doc:`pod/local <compute_pod_atom>`
* :doc:`pod/global <compute_pod_atom>`
* :doc:`pressure <compute_pressure>` * :doc:`pressure <compute_pressure>`
* :doc:`pressure/alchemy <compute_pressure_alchemy>` * :doc:`pressure/alchemy <compute_pressure_alchemy>`
* :doc:`pressure/uef <compute_pressure_uef>` * :doc:`pressure/uef <compute_pressure_uef>`

View File

@ -247,7 +247,7 @@ OPT.
* :doc:`pace (k) <pair_pace>` * :doc:`pace (k) <pair_pace>`
* :doc:`pace/extrapolation (k) <pair_pace>` * :doc:`pace/extrapolation (k) <pair_pace>`
* :doc:`pedone (o) <pair_pedone>` * :doc:`pedone (o) <pair_pedone>`
* :doc:`pod <pair_pod>` * :doc:`pod (k) <pair_pod>`
* :doc:`peri/eps <pair_peri>` * :doc:`peri/eps <pair_peri>`
* :doc:`peri/lps (o) <pair_peri>` * :doc:`peri/lps (o) <pair_peri>`
* :doc:`peri/pmb (o) <pair_peri>` * :doc:`peri/pmb (o) <pair_peri>`

View File

@ -272,6 +272,10 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
* :doc:`pe/mol/tally <compute_tally>` - potential energy between two groups of atoms separated into intermolecular and intramolecular components via the tally callback mechanism * :doc:`pe/mol/tally <compute_tally>` - potential energy between two groups of atoms separated into intermolecular and intramolecular components via the tally callback mechanism
* :doc:`pe/tally <compute_tally>` - potential energy between two groups of atoms via the tally callback mechanism * :doc:`pe/tally <compute_tally>` - potential energy between two groups of atoms via the tally callback mechanism
* :doc:`plasticity/atom <compute_plasticity_atom>` - Peridynamic plasticity for each atom * :doc:`plasticity/atom <compute_plasticity_atom>` - Peridynamic plasticity for each atom
* :doc:`pod/atom <compute_pod_atom>` - POD descriptors for each atom
* :doc:`podd/atom <compute_pod_atom>` - derivative of POD descriptors for each atom
* :doc:`pod/local <compute_pod_atom>` - local POD descriptors and their derivatives
* :doc:`pod/global <compute_pod_atom>` - global POD descriptors and their derivatives
* :doc:`pressure <compute_pressure>` - total pressure and pressure tensor * :doc:`pressure <compute_pressure>` - total pressure and pressure tensor
* :doc:`pressure/alchemy <compute_pressure_alchemy>` - mixed system total pressure and pressure tensor for :doc:`fix alchemy <fix_alchemy>` runs * :doc:`pressure/alchemy <compute_pressure_alchemy>` - mixed system total pressure and pressure tensor for :doc:`fix alchemy <fix_alchemy>` runs
* :doc:`pressure/uef <compute_pressure_uef>` - pressure tensor in the reference frame of an applied flow field * :doc:`pressure/uef <compute_pressure_uef>` - pressure tensor in the reference frame of an applied flow field

View File

@ -0,0 +1,126 @@
.. index:: compute pod/atom
.. index:: compute podd/atom
.. index:: compute pod/local
.. index:: compute pod/global
compute pod/atom command
========================
compute podd/atom command
=========================
compute pod/local command
=======================
compute pod/global command
=======================
Syntax
""""""
.. code-block:: LAMMPS
compute ID group-ID pod/atom param.pod coefficients.pod
compute ID group-ID podd/atom param.pod coefficients.pod
compute ID group-ID pod/local param.pod coefficients.pod
compute ID group-ID pod/global param.pod coefficients.pod
* ID, group-ID are documented in :doc:`compute <compute>` command
* pod/atom = style name of this compute command
* param.pod = the parameter file specifies parameters of the POD descriptors
* coefficients.pod = the coefficient file specifies coefficients of the POD potential
Examples
""""""""
.. code-block:: LAMMPS
compute d all pod/atom Ta_param.pod
compute dd all podd/atom Ta_param.pod
compute ldd all pod/local Ta_param.pod
compute gdd all podd/global Ta_param.pod
compute d all pod/atom Ta_param.pod Ta_coefficients.pod
compute dd all podd/atom Ta_param.pod Ta_coefficients.pod
compute ldd all pod/local Ta_param.pod Ta_coefficients.pod
compute gdd all podd/global Ta_param.pod Ta_coefficients.pod
Description
"""""""""""
Define a computation that calculates a set of quantities related to the
POD descriptors of the atoms in a group. These computes are used
primarily for calculating the dependence of energy and force components
on the linear coefficients in the :doc:`pod pair_style
<pair_pod>`, which is useful when training a POD potential to match
target data. POD descriptors of an atom are characterized by the
radial and angular distribution of neighbor atoms. The detailed
mathematical definition is given in the papers by :ref:`(Nguyen and Rohskopf) <Nguyen20222>`,
:ref:`(Nguyen2023) <Nguyen20232>`, :ref:`(Nguyen2024) <Nguyen20242>`, and :ref:`(Nguyen and Sema) <Nguyen20243>`.
Compute *pod/atom* calculates the per-atom POD descriptors.
Compute *podd/atom* calculates derivatives of the per-atom POD descriptors with respect to atom positions.
Compute *pod/local* calculates the per-atom POD descriptors and their derivatives with respect to atom positions.
Compute *pod/global* calculates the global POD descriptors and their derivatives with respect to atom positions.
Examples how to use Compute POD commands are found in the directory lammps/examples/PACKAGES/pod.
----------
Output info
"""""""""""
Compute *pod/atom* produces an 2D array of size :math:`N \times M`, where :math:`N` is the number of atoms
and :math:`M` is the number of descriptors. Each column corresponds to a particular POD descriptor.
Compute *podd/atom* produces an 2D array of size :math:`N \times (M * 3 N)`. Each column
corresponds to a particular derivative of a POD descriptor.
Compute *pod/local* produces an 2D array of size :math:`(1 + 3N) \times (M * N)`.
The first row contains the per-atom descriptors, and the last 3N rows contain the derivatives
of the per-atom descriptors with respect to atom positions.
Compute *pod/global* produces an 2D array of size :math:`(1 + 3N) \times (M)`.
The first row contains the global descriptors, and the last 3N rows contain the derivatives
of the global descriptors with respect to atom positions.
Restrictions
""""""""""""
These computes are part of the ML-POD package. They are only enabled
if LAMMPS was built with that package. See the :doc:`Build package
<Build_package>` page for more info.
Related commands
""""""""""""""""
:doc:`fitpod <fitpod_command>`,
:doc:`pair_style pod <pair_pod>`
Default
"""""""
none
----------
.. _Nguyen20222:
**(Nguyen and Rohskopf)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023).
.. _Nguyen20232:
**(Nguyen2023)** Nguyen, Physical Review B, 107(14), 144103, (2023).
.. _Nguyen20242:
**(Nguyen2024)** Nguyen, Journal of Computational Physics, 113102, (2024).
.. _Nguyen20243:
**(Nguyen and Sema)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024).

View File

@ -8,11 +8,12 @@ Syntax
.. code-block:: LAMMPS .. code-block:: LAMMPS
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod
* fitpod = style name of this command * fitpod = style name of this command
* Ta_param.pod = an input file that describes proper orthogonal descriptors (PODs) * Ta_param.pod = an input file that describes proper orthogonal descriptors (PODs)
* Ta_data.pod = an input file that specifies DFT data used to fit a POD potential * Ta_data.pod = an input file that specifies DFT data used to fit a POD potential
* Ta_coefficients.pod (optional) = an input file that specifies trainable coefficients of a POD potential
Examples Examples
"""""""" """"""""
@ -20,20 +21,22 @@ Examples
.. code-block:: LAMMPS .. code-block:: LAMMPS
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod
fitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod
Description Description
""""""""""" """""""""""
.. versionadded:: 22Dec2022 .. versionadded:: 22Dec2022
Fit a machine-learning interatomic potential (ML-IAP) based on proper Fit a machine-learning interatomic potential (ML-IAP) based on proper
orthogonal descriptors (POD). Two input files are required for this orthogonal descriptors (POD); please see :ref:`(Nguyen and Rohskopf) <Nguyen20222>`,
command. The first input file describes a POD potential parameter :ref:`(Nguyen2023) <Nguyen20232>`, :ref:`(Nguyen2024) <Nguyen20242>`, and :ref:`(Nguyen and Sema) <Nguyen20243>` for details.
settings, while the second input file specifies the DFT data used for The fitted POD potential can be used to run MD simulations via :doc:`pair_style pod <pair_pod>`.
the fitting procedure.
The table below has one-line descriptions of all the keywords that can Two input files are required for this command. The first input file describes a POD potential parameter
be used in the first input file (i.e. ``Ta_param.pod`` in the example settings, while the second input file specifies the DFT data used for
above): the fitting procedure. All keywords except *species* have default values. If a keyword is not
set in the input file, its default value is used. The table below has one-line descriptions of all the keywords that can
be used in the first input file (i.e. ``Ta_param.pod``)
.. list-table:: .. list-table::
:header-rows: 1 :header-rows: 1
@ -52,7 +55,7 @@ above):
- INT - INT
- three integer constants specify boundary conditions - three integer constants specify boundary conditions
* - rin * - rin
- 1.0 - 0.5
- REAL - REAL
- a real number specifies the inner cut-off radius - a real number specifies the inner cut-off radius
* - rcut * - rcut
@ -60,47 +63,74 @@ above):
- REAL - REAL
- a real number specifies the outer cut-off radius - a real number specifies the outer cut-off radius
* - bessel_polynomial_degree * - bessel_polynomial_degree
- 3 - 4
- INT - INT
- the maximum degree of Bessel polynomials - the maximum degree of Bessel polynomials
* - inverse_polynomial_degree * - inverse_polynomial_degree
- 6 - 8
- INT - INT
- the maximum degree of inverse radial basis functions - the maximum degree of inverse radial basis functions
* - number_of_environment_clusters
- 1
- INT
- the number of clusters for environment-adaptive potentials
* - number_of_principal_components
- 2
- INT
- the number of principal components for dimensionality reduction
* - onebody * - onebody
- 1 - 1
- BOOL - BOOL
- turns on/off one-body potential - turns on/off one-body potential
* - twobody_number_radial_basis_functions * - twobody_number_radial_basis_functions
- 6 - 8
- INT - INT
- number of radial basis functions for two-body potential - number of radial basis functions for two-body potential
* - threebody_number_radial_basis_functions * - threebody_number_radial_basis_functions
- 5 - 6
- INT - INT
- number of radial basis functions for three-body potential - number of radial basis functions for three-body potential
* - threebody_number_angular_basis_functions * - threebody_angular_degree
- 5 - 5
- INT - INT
- number of angular basis functions for three-body potential - angular degree for three-body potential
* - fourbody_snap_twojmax * - fourbody_number_radial_basis_functions
- 4
- INT
- number of radial basis functions for four-body potential
* - fourbody_angular_degree
- 3
- INT
- angular degree for four-body potential
* - fivebody_number_radial_basis_functions
- 0 - 0
- INT - INT
- band limit for SNAP bispectrum components (0,2,4,6,8... allowed) - number of radial basis functions for five-body potential
* - fourbody_snap_chemflag * - fivebody_angular_degree
- 0 - 0
- BOOL - INT
- turns on/off the explicit multi-element variant of the SNAP bispectrum components - angular degree for five-body potential
* - quadratic_pod_potential * - sixbody_number_radial_basis_functions
- 0 - 0
- BOOL - INT
- turns on/off quadratic POD potential - number of radial basis functions for six-body potential
* - sixbody_angular_degree
- 0
- INT
- angular degree for six-body potential
* - sevenbody_number_radial_basis_functions
- 0
- INT
- number of radial basis functions for seven-body potential
* - sevenbody_angular_degree
- 0
- INT
- angular degree for seven-body potential
All keywords except *species* have default values. If a keyword is not Note that both the number of radial basis functions and angular degree must decrease as the body order increases. The next table describes all keywords that can be used in the second input file
set in the input file, its default value is used. The next table
describes all keywords that can be used in the second input file
(i.e. ``Ta_data.pod`` in the example above): (i.e. ``Ta_data.pod`` in the example above):
.. list-table:: .. list-table::
:header-rows: 1 :header-rows: 1
:widths: auto :widths: auto
@ -125,6 +155,10 @@ describes all keywords that can be used in the second input file
- "" - ""
- STRING - STRING
- specifies the path to test data files in double quotes - specifies the path to test data files in double quotes
* - path_to_environment_configuration_set
- ""
- STRING
- specifies the path to environment configuration files in double quotes
* - fraction_training_data_set * - fraction_training_data_set
- 1.0 - 1.0
- REAL - REAL
@ -133,6 +167,14 @@ describes all keywords that can be used in the second input file
- 0 - 0
- BOOL - BOOL
- turns on/off randomization of the training set - turns on/off randomization of the training set
* - fraction_test_data_set
- 1.0
- REAL
- a real number (<= 1.0) specifies the fraction of the test set used to validate POD
* - randomize_test_data_set
- 0
- BOOL
- turns on/off randomization of the test set
* - fitting_weight_energy * - fitting_weight_energy
- 100.0 - 100.0
- REAL - REAL
@ -161,6 +203,10 @@ describes all keywords that can be used in the second input file
- 8 - 8
- INT - INT
- number of digits after the decimal points for numbers in the coefficient file - number of digits after the decimal points for numbers in the coefficient file
* - group_weights
- global
- STRING
- ``table`` uses group weights defined for each group named by filename
All keywords except *path_to_training_data_set* have default values. If All keywords except *path_to_training_data_set* have default values. If
a keyword is not set in the input file, its default value is used. After a keyword is not set in the input file, its default value is used. After
@ -173,13 +219,40 @@ successful training, a number of output files are produced, if enabled:
* ``<basename>_coefficients.pod`` contains the coefficients of the POD potential * ``<basename>_coefficients.pod`` contains the coefficients of the POD potential
After training the POD potential, ``Ta_param.pod`` and ``<basename>_coefficients.pod`` After training the POD potential, ``Ta_param.pod`` and ``<basename>_coefficients.pod``
are the two files needed to use the POD potential in LAMMPS. See are the two files needed to use the POD potential in LAMMPS.
:doc:`pair_style pod <pair_pod>` for using the POD potential. Examples See :doc:`pair_style pod <pair_pod>` for using the POD potential. Examples
about training and using POD potentials are found in the directory about training and using POD potentials are found in the directory
lammps/examples/PACKAGES/pod. lammps/examples/PACKAGES/pod and the Github repo https://github.com/cesmix-mit/pod-examples.
Parameterized Potential Energy Surface Loss Function Group Weights
"""""""""""""""""""""""""""""""""""""" ^^^^^^^^^^^^^^^^^^^^^^^^^^^
The ``group_weights`` keyword in the ``data.pod`` file is responsible for weighting certain groups
of configurations in the loss function. For example:
.. code-block:: LAMMPS
group_weights table
Displaced_A15 100.0 1.0
Displaced_BCC 100.0 1.0
Displaced_FCC 100.0 1.0
Elastic_BCC 100.0 1.0
Elastic_FCC 100.0 1.0
GSF_110 100.0 1.0
GSF_112 100.0 1.0
Liquid 100.0 1.0
Surface 100.0 1.0
Volume_A15 100.0 1.0
Volume_BCC 100.0 1.0
Volume_FCC 100.0 1.0
This will apply an energy weight of ``100.0`` and a force weight of ``1.0`` for all groups in the
``Ta`` example. The groups are named by their respective filename. If certain groups are left out of
this table, then the globally defined weights from the ``fitting_weight_energy`` and
``fitting_weight_force`` keywords will be used.
POD Potential
"""""""""""""
We consider a multi-element system of *N* atoms with :math:`N_{\rm e}` We consider a multi-element system of *N* atoms with :math:`N_{\rm e}`
unique elements. We denote by :math:`\boldsymbol r_n` and :math:`Z_n` unique elements. We denote by :math:`\boldsymbol r_n` and :math:`Z_n`
@ -187,495 +260,35 @@ position vector and type of an atom *n* in the system,
respectively. Note that we have :math:`Z_n \in \{1, \ldots, N_{\rm e} respectively. Note that we have :math:`Z_n \in \{1, \ldots, N_{\rm e}
\}`, :math:`\boldsymbol R = (\boldsymbol r_1, \boldsymbol r_2, \ldots, \}`, :math:`\boldsymbol R = (\boldsymbol r_1, \boldsymbol r_2, \ldots,
\boldsymbol r_N) \in \mathbb{R}^{3N}`, and :math:`\boldsymbol Z = (Z_1, \boldsymbol r_N) \in \mathbb{R}^{3N}`, and :math:`\boldsymbol Z = (Z_1,
Z_2, \ldots, Z_N) \in \mathbb{N}^{N}`. The potential energy surface Z_2, \ldots, Z_N) \in \mathbb{N}^{N}`. The total energy of the
(PES) of the system can be expressed as a many-body expansion of the POD potential is expressed as :math:`E(\boldsymbol R, \boldsymbol Z) =
form \sum_{i=1}^N E_i(\boldsymbol R_i, \boldsymbol Z_i)`, where
.. math:: .. math::
E(\boldsymbol R, \boldsymbol Z, \boldsymbol{\eta}, \boldsymbol{\mu}) \ = \ & \sum_{i} V^{(1)}(\boldsymbol r_i, Z_i, \boldsymbol \mu^{(1)} ) + \frac12 \sum_{i,j} V^{(2)}(\boldsymbol r_i, \boldsymbol r_j, Z_i, Z_j, \boldsymbol \eta, \boldsymbol \mu^{(2)}) \\ E_i(\boldsymbol R_i, \boldsymbol Z_i) \ = \ \sum_{m=1}^M c_m \mathcal{D}_{im}(\boldsymbol R_i, \boldsymbol Z_i)
& + \frac16 \sum_{i,j,k} V^{(3)}(\boldsymbol r_i, \boldsymbol r_j, \boldsymbol r_k, Z_i, Z_j, Z_k, \boldsymbol \eta, \boldsymbol \mu^{(3)}) + \ldots
where :math:`V^{(1)}` is the one-body potential often used for
representing external field or energy of isolated elements, and the
higher-body potentials :math:`V^{(2)}, V^{(3)}, \ldots` are symmetric,
uniquely defined, and zero if two or more indices take identical values.
The superscript on each potential denotes its body order. Each *q*-body
potential :math:`V^{(q)}` depends on :math:`\boldsymbol \mu^{(q)}` which
are sets of parameters to fit the PES. Note that :math:`\boldsymbol \mu`
is a collection of all potential parameters :math:`\boldsymbol
\mu^{(1)}`, :math:`\boldsymbol \mu^{(2)}`, :math:`\boldsymbol
\mu^{(3)}`, etc, and that :math:`\boldsymbol \eta` is a set of
hyper-parameters such as inner cut-off radius :math:`r_{\rm in}` and
outer cut-off radius :math:`r_{\rm cut}`.
Interatomic potentials rely on parameters to learn relationship between Here :math:`c_m` are trainable coefficients and :math:`\mathcal{D}_{im}(\boldsymbol R_i, \boldsymbol Z_i)`
atomic environments and interactions. Since interatomic potentials are are per-atom POD descriptors. Summing the per-atom descriptors over :math:`i` yields the
approximations by nature, their parameters need to be set to some global descriptors :math:`d_m(\boldsymbol R, \boldsymbol Z) = \sum_{i=1}^N \mathcal{D}_{im}(\boldsymbol R_i, \boldsymbol Z_i)`.
reference values or fitted against data by necessity. Typically, It thus follows that :math:`E(\boldsymbol R, \boldsymbol Z) =
potential fitting finds optimal parameters, :math:`\boldsymbol \mu^*`, \sum_{m=1}^M c_m d_m(\boldsymbol R, \boldsymbol Z)`.
to minimize a certain loss function of the predicted quantities and
data. Since the fitted potential depends on the data set used to fit it,
different data sets will yield different optimal parameters and thus
different fitted potentials. When fitting the same functional form on
*Q* different data sets, we would obtain *Q* different optimized
potentials, :math:`E(\boldsymbol R,\boldsymbol Z, \boldsymbol \eta,
\boldsymbol \mu_q^*), 1 \le q \le Q`. Consequently, there exist many
different sets of optimized parameters for empirical interatomic
potentials.
Instead of optimizing the potential parameters, inspired by the reduced
basis method :ref:`(Grepl) <Grepl20072>` for parameterized partial
differential equations, we view the parameterized PES as a parametric
manifold of potential energies
.. math::
\mathcal{M} = \{E(\boldsymbol R, \boldsymbol Z, \boldsymbol \eta, \boldsymbol \mu) \ | \ \boldsymbol \mu \in \Omega^{\boldsymbol \mu} \}
where :math:`\Omega^{\boldsymbol \mu}` is a parameter domain in which
:math:`\boldsymbol \mu` resides. The parametric manifold
:math:`\mathcal{M}` contains potential energy surfaces for all values of
:math:`\boldsymbol \mu \in \Omega^{\boldsymbol \mu}`. Therefore, the
parametric manifold yields a much richer and more transferable atomic
representation than any particular individual PES :math:`E(\boldsymbol
R, \boldsymbol Z, \boldsymbol \eta, \boldsymbol \mu^*)`.
We propose specific forms of the parameterized potentials for one-body,
two-body, and three-body interactions. We apply the Karhunen-Loeve
expansion to snapshots of the parameterized potentials to obtain sets of
orthogonal basis functions. These basis functions are aggregated
according to the chemical elements of atoms, thus leading to
multi-element proper orthogonal descriptors.
Proper Orthogonal Descriptors
"""""""""""""""""""""""""""""
Proper orthogonal descriptors are finger prints characterizing the
radial and angular distribution of a system of atoms. The detailed
mathematical definition is given in the paper by Nguyen and Rohskopf
:ref:`(Nguyen) <Nguyen20222>`.
The descriptors for the one-body interaction are used to capture energy
of isolated elements and defined as follows
.. math::
D_{ip}^{(1)} = \left\{
\begin{array}{ll}
1, & \mbox{if } Z_i = p \\
0, & \mbox{if } Z_i \neq p
\end{array}
\right.
for :math:`1 \le i \le N, 1 \le p \le N_{\rm e}`. The number of one-body
descriptors per atom is equal to the number of elements. The one-body
descriptors are independent of atom positions, but dependent on atom
types. The one-body descriptors are active only when the keyword
*onebody* is set to 1.
We adopt the usual assumption that the direct interaction between two
atoms vanishes smoothly when their distance is greater than the outer
cutoff distance :math:`r_{\rm cut}`. Furthermore, we assume that two
atoms can not get closer than the inner cutoff distance :math:`r_{\rm
in}` due to the Pauli repulsion principle. Let :math:`r \in (r_{\rm in},
r_{\rm cut})`, we introduce the following parameterized radial functions
.. math::
\phi(r, r_{\rm in}, r_{\rm cut}, \alpha, \beta) = \frac{\sin (\alpha \pi x) }{r - r_{\rm in}}, \qquad \varphi(r, \gamma) = \frac{1}{r^\gamma} ,
where the scaled distance function :math:`x` is defined below to enrich the two-body manifold
.. math::
x(r, r_{\rm in}, r_{\rm cut}, \beta) = \frac{e^{-\beta(r - r_{\rm in})/(r_{\rm cut} - r_{\rm in})} - 1}{e^{-\beta} - 1} .
We introduce the following function as a convex combination of the two functions
.. math::
\psi(r, r_{\rm in}, r_{\rm cut}, \alpha, \beta, \gamma, \kappa) = \kappa \phi(r, r_{\rm in}, r_{\rm cut}, \alpha, \beta) + (1- \kappa) \varphi(r, \gamma) .
We see that :math:`\psi` is a function of distance :math:`r`, cut-off
distances :math:`r_{\rm in}` and :math:`r_{\rm cut}`, and parameters
:math:`\alpha, \beta, \gamma, \kappa`. Together these parameters allow
the function :math:`\psi` to characterize a diverse spectrum of two-body
interactions within the cut-off interval :math:`(r_{\rm in}, r_{\rm
cut})`.
Next, we introduce the following parameterized potential
.. math::
W^{(2)}(r_{ij}, \boldsymbol \eta, \boldsymbol \mu^{(2)}) = f_{\rm c}(r_{ij}, \boldsymbol \eta) \psi(r_{ij}, \boldsymbol \eta, \boldsymbol \mu^{(2)})
where :math:`\eta_1 = r_{\rm in}, \eta_2 = r_{\rm cut}, \mu_1^{(2)} =
\alpha, \mu_2^{(2)} = \beta, \mu_3^{(2)} = \gamma`, and
:math:`\mu_4^{(2)} = \kappa`. Here the cut-off function :math:`f_{\rm
c}(r_{ij}, \boldsymbol \eta)` proposed in [refs] is used to ensure the
smooth vanishing of the potential and its derivative for :math:`r_{ij}
\ge r_{\rm cut}`:
.. math::
f_{\rm c}(r_{ij}, r_{\rm in}, r_{\rm cut}) = \exp \left(1 -\frac{1}{\sqrt{\left(1 - \frac{(r-r_{\rm in})^3}{(r_{\rm cut} - r_{\rm in})^3} \right)^2 + 10^{-6}}} \right)
Based on the parameterized potential, we form a set of snapshots as
follows. We assume that we are given :math:`N_{\rm s}` parameter tuples
:math:`\boldsymbol \mu^{(2)}_\ell, 1 \le \ell \le N_{\rm s}`. We
introduce the following set of snapshots on :math:`(r_{\rm in}, r_{\rm
cut})`:
.. math::
\xi_\ell(r_{ij}, \boldsymbol \eta) = W^{(2)}(r_{ij}, \boldsymbol \eta, \boldsymbol \mu^{(2)}_\ell), \quad \ell = 1, \ldots, N_{\rm s} .
To ensure adequate sampling of the PES for different parameters, we
choose :math:`N_{\rm s}` parameter points :math:`\boldsymbol
\mu^{(2)}_\ell = (\alpha_\ell, \beta_\ell, \gamma_\ell, \kappa_\ell), 1
\le \ell \le N_{\rm s}` as follows. The parameters :math:`\alpha \in [1,
N_\alpha]` and :math:`\gamma \in [1, N_\gamma]` are integers, where
:math:`N_\alpha` and :math:`N_\gamma` are the highest degrees for
:math:`\alpha` and :math:`\gamma`, respectively. We next choose
:math:`N_\beta` different values of :math:`\beta` in the interval
:math:`[\beta_{\min}, \beta_{\max}]`, where :math:`\beta_{\min} = 0` and
:math:`\beta_{\max} = 4`. The parameter :math:`\kappa` can be set either
0 or 1. Hence, the total number of parameter points is :math:`N_{\rm s}
= N_\alpha N_\beta + N_\gamma`. Although :math:`N_\alpha, N_\beta,
N_\gamma` can be chosen conservatively large, we find that
:math:`N_\alpha = 6, N_\beta = 3, N_\gamma = 8` are adequate for most
problems. Note that :math:`N_\alpha` and :math:`N_\gamma` correspond to
*bessel_polynomial_degree* and *inverse_polynomial_degree*,
respectively.
We employ the Karhunen-Loeve (KL) expansion to generate an orthogonal
basis set which is known to be optimal for representation of the
snapshot family :math:`\{\xi_\ell\}_{\ell=1}^{N_{\rm s}}`. The two-body
orthogonal basis functions are computed as follows
.. math::
U^{(2)}_m(r_{ij}, \boldsymbol \eta) = \sum_{\ell = 1}^{N_{\rm s}} A_{\ell m}(\boldsymbol \eta) \, \xi_\ell(r_{ij}, \boldsymbol \eta), \qquad m = 1, \ldots, N_{\rm 2b} ,
where the matrix :math:`\boldsymbol A \in \mathbb{R}^{N_{\rm s} \times
N_{\rm s}}` consists of eigenvectors of the eigenvalue problem
.. math::
\boldsymbol C \boldsymbol a = \lambda \boldsymbol a
with the entries of :math:`\boldsymbol C \in \mathbb{R}^{N_{\rm s} \times N_{\rm s}}` being given by
.. math::
C_{ij} = \frac{1}{N_{\rm s}} \int_{r_{\rm in}}^{r_{\rm cut}} \xi_i(x, \boldsymbol \eta) \xi_j(x, \boldsymbol \eta) dx, \quad 1 \le i, j \le N_{\rm s}
Note that the eigenvalues :math:`\lambda_\ell, 1 \le \ell \le N_{\rm
s}`, are ordered such that :math:`\lambda_1 \ge \lambda_2 \ge \ldots \ge
\lambda_{N_{\rm s}}`, and that the matrix :math:`\boldsymbol A` is
pe-computed and stored for any given :math:`\boldsymbol \eta`. Owing to
the rapid convergence of the KL expansion, only a small number of
orthogonal basis functions is needed to obtain accurate
approximation. The value of :math:`N_{\rm 2b}` corresponds to
*twobody_number_radial_basis_functions*.
The two-body proper orthogonal descriptors at each atom *i* are computed
by summing the orthogonal basis functions over the neighbors of atom *i*
and numerating on the atom types as follows
.. math::
D^{(2)}_{im l(p, q) }(\boldsymbol \eta) = \left\{
\begin{array}{ll}
\displaystyle \sum_{\{j | Z_j = q\}} U^{(2)}_m(r_{ij}, \boldsymbol \eta), & \mbox{if } Z_i = p \\
0, & \mbox{if } Z_i \neq p
\end{array}
\right.
for :math:`1 \le i \le N, 1 \le m \le N_{\rm 2b}, 1 \le q, p \le N_{\rm
e}`. Here :math:`l(p,q)` is a symmetric index mapping such that
.. math::
l(p,q) = \left\{
\begin{array}{ll}
q + (p-1) N_{\rm e} - p(p-1)/2, & \mbox{if } q \ge p \\
p + (q-1) N_{\rm e} - q(q-1)/2, & \mbox{if } q < p .
\end{array}
\right.
The number of two-body descriptors per atom is thus :math:`N_{\rm 2b}
N_{\rm e}(N_{\rm e}+1)/2`.
It is important to note that the orthogonal basis functions do not
depend on the atomic numbers :math:`Z_i` and :math:`Z_j`. Therefore, the
cost of evaluating the basis functions and their derivatives with
respect to :math:`r_{ij}` is independent of the number of elements
:math:`N_{\rm e}`. Consequently, even though the two-body proper
orthogonal descriptors depend on :math:`\boldsymbol Z`, their
computational complexity is independent of :math:`N_{\rm e}`.
In order to provide proper orthogonal descriptors for three-body
interactions, we need to introduce a three-body parameterized
potential. In particular, the three-body potential is defined as a
product of radial and angular functions as follows
.. math::
W^{(3)}(r_{ij}, r_{ik}, \theta_{ijk}, \boldsymbol \eta, \boldsymbol \mu^{(3)}) = \psi(r_{ij}, r_{\rm min}, r_{\rm max}, \alpha, \beta, \gamma, \kappa) f_{\rm c}(r_{ij}, r_{\rm min}, r_{\rm max}) \\
\psi(r_{ik}, r_{\rm min}, r_{\rm max}, \alpha, \beta, \gamma, \kappa) f_{\rm c}(r_{ik}, r_{\rm min}, r_{\rm max}) \\
\cos (\sigma \theta_{ijk} + \zeta)
where :math:`\sigma` is the periodic multiplicity, :math:`\zeta` is the
equilibrium angle, :math:`\boldsymbol \mu^{(3)} = (\alpha, \beta,
\gamma, \kappa, \sigma, \zeta)`. The three-body potential provides an
angular fingerprint of the atomic environment through the bond angles
:math:`\theta_{ijk}` formed with each pair of neighbors :math:`j` and
:math:`k`. Compared to the two-body potential, the three-body potential
has two extra parameters :math:`(\sigma, \zeta)` associated with the
angular component.
Let :math:`\boldsymbol \varrho = (\alpha, \beta, \gamma, \kappa)`. We
assume that we are given :math:`L_{\rm r}` parameter tuples
:math:`\boldsymbol \varrho_\ell, 1 \le \ell \le L_{\rm r}`. We
introduce the following set of snapshots on :math:`(r_{\min},
r_{\max})`:
.. math::
\zeta_\ell(r_{ij}, r_{\rm min}, r_{\rm max} ) = \psi(r_{ij}, r_{\rm min}, r_{\rm max}, \boldsymbol \varrho_\ell) f_{\rm c}(r_{ij}, r_{\rm min}, r_{\rm max}), \quad 1 \le \ell \le L_{\rm r} .
We apply the Karhunen-Loeve (KL) expansion to this set of snapshots to
obtain orthogonal basis functions as follows
.. math::
U^{r}_m(r_{ij}, r_{\rm min}, r_{\rm max} ) = \sum_{\ell = 1}^{L_{\rm r}} A_{\ell m} \, \zeta_\ell(r_{ij}, r_{\rm min}, r_{\rm max} ), \qquad m = 1, \ldots, N_{\rm r} ,
where the matrix :math:`\boldsymbol A \in \mathbb{R}^{L_{\rm r} \times L_{\rm r}}` consists
of eigenvectors of the eigenvalue problem. For the parameterized angular function,
we consider angular basis functions
.. math::
U^{a}_n(\theta_{ijk}) = \cos ((n-1) \theta_{ijk}), \qquad n = 1,\ldots, N_{\rm a},
where :math:`N_{\rm a}` is the number of angular basis functions. The orthogonal
basis functions for the parameterized potential are computed as follows
.. math::
U^{(3)}_{mn}(r_{ij}, r_{ik}, \theta_{ijk}, \boldsymbol \eta) = U^{r}_m(r_{ij}, \boldsymbol \eta) U^{r}_m(r_{ik}, \boldsymbol \eta) U^{a}_n(\theta_{ijk}),
for :math:`1 \le m \le N_{\rm r}, 1 \le n \le N_{\rm a}`. The number of three-body
orthogonal basis functions is equal to :math:`N_{\rm 3b} = N_{\rm r} N_{\rm a}` and
independent of the number of elements. The value of :math:`N_{\rm r}` corresponds to
*threebody_number_radial_basis_functions*, while that of :math:`N_{\rm a}` to
*threebody_number_angular_basis_functions*.
The three-body proper orthogonal descriptors at each atom *i*
are obtained by summing over the neighbors *j* and *k* of atom *i* as
.. math::
D^{(3)}_{imn \ell(p, q, s)}(\boldsymbol \eta) = \left\{
\begin{array}{ll}
\displaystyle \sum_{\{j | Z_j = q\}} \sum_{\{k | Z_k = s\}} U^{(3)}_{mn}(r_{ij}, r_{ik}, \theta_{ijk}, \boldsymbol \eta), & \mbox{if } Z_i = p \\
0, & \mbox{if } Z_i \neq p
\end{array}
\right.
for :math:`1 \le i \le N, 1 \le m \le N_{\rm r}, 1 \le n \le N_{\rm a}, 1 \le q, p, s \le N_{\rm e}`,
where
.. math::
\ell(p,q,s) = \left\{
\begin{array}{ll}
s + (q-1) N_{\rm e} - q(q-1)/2 + (p-1)N_{\rm e}(1+N_{\rm e})/2 , & \mbox{if } s \ge q \\
q + (s-1) N_{\rm e} - s(s-1)/2 + (p-1)N_{\rm e}(1+N_{\rm e})/2, & \mbox{if } s < q .
\end{array}
\right.
The number of three-body descriptors per atom is thus :math:`N_{\rm 3b} N_{\rm e}^2(N_{\rm e}+1)/2`.
While the number of three-body PODs is cubic function of the number of elements,
the computational complexity of the three-body PODs is independent of the number of elements.
Four-Body SNAP Descriptors
""""""""""""""""""""""""""
In addition to the proper orthogonal descriptors described above, we also employ
the spectral neighbor analysis potential (SNAP) descriptors. SNAP uses bispectrum components
to characterize the local neighborhood of each atom in a very general way. The mathematical definition
of the bispectrum calculation and its derivatives w.r.t. atom positions is described in
:doc:`compute snap <compute_sna_atom>`. In SNAP, the
total energy is decomposed into a sum over atom energies. The energy of
atom *i* is expressed as a weighted sum over bispectrum components.
.. math::
E_i^{\rm SNAP} = \sum_{k=1}^{N_{\rm 4b}} \sum_{p=1}^{N_{\rm e}} c_{kp}^{(4)} D_{ikp}^{(4)}
where the SNAP descriptors are related to the bispectrum components by
.. math::
D^{(4)}_{ikp} = \left\{
\begin{array}{ll}
\displaystyle B_{ik}, & \mbox{if } Z_i = p \\
0, & \mbox{if } Z_i \neq p
\end{array}
\right.
Here :math:`B_{ik}` is the *k*\ -th bispectrum component of atom *i*. The number of
bispectrum components :math:`N_{\rm 4b}` depends on the value of *fourbody_snap_twojmax* :math:`= 2 J_{\rm max}`
and *fourbody_snap_chemflag*. If *fourbody_snap_chemflag* = 0
then :math:`N_{\rm 4b} = (J_{\rm max}+1)(J_{\rm max}+2)(J_{\rm max}+1.5)/3`.
If *fourbody_snap_chemflag* = 1 then :math:`N_{\rm 4b} = N_{\rm e}^3 (J_{\rm max}+1)(J_{\rm max}+2)(J_{\rm max}+1.5)/3`.
The bispectrum calculation is described in more detail in :doc:`compute sna/atom <compute_sna_atom>`.
Linear Proper Orthogonal Descriptor Potentials
""""""""""""""""""""""""""""""""""""""""""""""
The proper orthogonal descriptors and SNAP descriptors are used to define the atomic energies
in the following expansion
.. math::
E_{i}(\boldsymbol \eta) = \sum_{p=1}^{N_{\rm e}} c^{(1)}_p D^{(1)}_{ip} + \sum_{m=1}^{N_{\rm 2b}} \sum_{l=1}^{N_{\rm e}(N_{\rm e}+1)/2} c^{(2)}_{ml} D^{(2)}_{iml}(\boldsymbol \eta) + \sum_{m=1}^{N_{\rm r}} \sum_{n=1}^{N_{\rm a}} \sum_{\ell=1}^{N_{\rm e}^2(N_{\rm e}+1)/2} c^{(3)}_{mn\ell} D^{(3)}_{imn\ell}(\boldsymbol \eta) + \sum_{k=1}^{N_{\rm 4b}} \sum_{p=1}^{N_{\rm e}} c_{kp}^{(4)} D_{ikp}^{(4)}(\boldsymbol \eta),
where :math:`D^{(1)}_{ip}, D^{(2)}_{iml}, D^{(3)}_{imn\ell}, D^{(4)}_{ikp}` are the one-body, two-body, three-body, four-body descriptors,
respectively, and :math:`c^{(1)}_p, c^{(2)}_{ml}, c^{(3)}_{mn\ell}, c^{(4)}_{kp}` are their respective expansion
coefficients. In a more compact notation that implies summation over descriptor indices
the atomic energies can be written as
.. math::
E_i(\boldsymbol \eta) = \sum_{m=1}^{N_{\rm e}} c^{(1)}_m D^{(1)}_{im} + \sum_{m=1}^{N_{\rm d}^{(2)}} c^{(2)}_k D^{(2)}_{im} + \sum_{m=1}^{N_{\rm d}^{(3)}} c^{(3)}_m D^{(3)}_{im} + \sum_{m=1}^{N_{\rm d}^{(4)}} c^{(4)}_m D^{(4)}_{im}
where :math:`N_{\rm d}^{(2)} = N_{\rm 2b} N_{\rm e} (N_{\rm e}+1)/2`,
:math:`N_{\rm d}^{(3)} = N_{\rm 3b} N_{\rm e}^2 (N_{\rm e}+1)/2`, and
:math:`N_{\rm d}^{(4)} = N_{\rm 4b} N_{\rm e}` are
the number of two-body, three-body, and four-body descriptors, respectively.
The potential energy is then obtained by summing local atomic energies :math:`E_i`
for all atoms :math:`i` in the system
.. math::
E(\boldsymbol \eta) = \sum_{i}^N E_{i}(\boldsymbol \eta)
Because the descriptors are one-body, two-body, and three-body terms,
the resulting POD potential is a three-body PES. We can express the potential
energy as a linear combination of the global descriptors as follows
.. math::
E(\boldsymbol \eta) = \sum_{m=1}^{N_{\rm e}} c^{(1)}_m d^{(1)}_{m} + \sum_{m=1}^{N_{\rm d}^{(2)}} c^{(2)}_m d^{(2)}_{m} + \sum_{m=1}^{N_{\rm d}^{(3)}} c^{(3)}_m d^{(3)}_{m} + \sum_{m=1}^{N_{\rm d}^{(4)}} c^{(4)}_m d^{(4)}_{m}
where the global descriptors are given by
.. math::
d_{m}^{(1)}(\boldsymbol \eta) = \sum_{i=1}^N D_{im}^{(1)}(\boldsymbol \eta), \quad d_{m}^{(2)}(\boldsymbol \eta) = \sum_{i=1}^N D_{im}^{(2)}(\boldsymbol \eta), \quad d_{m}^{(3)}(\boldsymbol \eta) = \sum_{i=1}^N D_{im}^{(3)}(\boldsymbol \eta), \quad d_{m}^{(4)}(\boldsymbol \eta) = \sum_{i=1}^N D_{im}^{(4)}(\boldsymbol \eta)
Hence, we obtain the atomic forces as
.. math::
\boldsymbol F = -\nabla E(\boldsymbol \eta) = - \sum_{m=1}^{N_{\rm d}^{(2)}} c^{(2)}_m \nabla d_m^{(2)} - \sum_{m=1}^{N_{\rm d}^{(3)}} c^{(3)}_m \nabla d_m^{(3)} - \sum_{m=1}^{N_{\rm d}^{(4)}} c^{(4)}_m \nabla d_m^{(4)}
where :math:`\nabla d_m^{(2)}`, :math:`\nabla d_m^{(3)}` and :math:`\nabla d_m^{(4)}` are derivatives of the two-body
three-body, and four-body global descriptors with respect to atom positions, respectively.
Note that since the first-body global descriptors are constant, their derivatives are zero.
Quadratic Proper Orthogonal Descriptor Potentials
"""""""""""""""""""""""""""""""""""""""""""""""""
We recall two-body PODs :math:`D^{(2)}_{ik}, 1 \le k \le N_{\rm d}^{(2)}`,
and three-body PODs :math:`D^{(3)}_{im}, 1 \le m \le N_{\rm d}^{(3)}`,
with :math:`N_{\rm d}^{(2)} = N_{\rm 2b} N_{\rm e} (N_{\rm e}+1)/2` and
:math:`N_{\rm d}^{(3)} = N_{\rm 3b} N_{\rm e}^2 (N_{\rm e}+1)/2` being
the number of descriptors per atom for the two-body PODs and three-body PODs,
respectively. We employ them to define a new set of atomic descriptors as follows
.. math::
D^{(2*3)}_{ikm} = \frac{1}{2N}\left( D^{(2)}_{ik} \sum_{j=1}^N D^{(3)}_{jm} + D^{(3)}_{im} \sum_{j=1}^N D^{(2)}_{jk} \right)
for :math:`1 \le i \le N, 1 \le k \le N_{\rm d}^{(2)}, 1 \le m \le N_{\rm d}^{(3)}`.
The new descriptors are four-body because they involve central atom :math:`i` together
with three neighbors :math:`j, k` and :math:`l`. The total number of new descriptors per atom is equal to
.. math::
N_{\rm d}^{(2*3)} = N_{\rm d}^{(2)} * N_{\rm d}^{(3)} = N_{\rm 2b} N_{\rm 3b} N_{\rm e}^3 (N_{\rm e}+1)^2/4 .
The new global descriptors are calculated as
.. math::
d^{(2*3)}_{km} = \sum_{i=1}^N D^{(2*3)}_{ikm} = \left( \sum_{i=1}^N D^{(2)}_{ik} \right) \left( \sum_{i=1}^N D^{(3)}_{im} \right) = d^{(2)}_{k} d^{(3)}_m,
for :math:`1 \le k \le N_{\rm d}^{(2)}, 1 \le m \le N_{\rm d}^{(3)}`. Hence, the gradient
of the new global descriptors with respect to atom positions is calculated as
.. math::
\nabla d^{(2*3)}_{km} = d^{(3)}_m \nabla d^{(2)}_{k} + d^{(2)}_{k} \nabla d^{(3)}_m, \quad 1 \le k \le N_{\rm d}^{(2)}, 1 \le m \le N_{\rm d}^{(3)} .
The quadratic POD potential is defined as a linear combination of the
original and new global descriptors as follows
.. math::
E^{(2*3)} = \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} c^{(2*3)}_{km} d^{(2*3)}_{km} .
It thus follows that
.. math::
E^{(2*3)} = 0.5 \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} \left( \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} c^{(2*3)}_{km} d_m^{(3)} \right) d_k^{(2)} + 0.5 \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} \left( \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} c^{(2*3)}_{km} d_k^{(2)} \right) d_m^{(3)} ,
which is simplified to
.. math::
E^{(2*3)} = 0.5 \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} b_k^{(2)} d_k^{(2)} + 0.5 \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} b_m^{(3)} d_m^{(3)}
where
.. math::
b_k^{(2)} & = \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} c^{(2*3)}_{km} d_m^{(3)}, \quad k = 1,\ldots, N_{\rm 2d}^{(2*3)}, \\
b_m^{(3)} & = \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} c^{(2*3)}_{km} d_k^{(2)}, \quad m = 1,\ldots, N_{\rm 3d}^{(2*3)} .
The quadratic POD potential results in the following atomic forces
.. math::
\boldsymbol F^{(2*3)} = - \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} c^{(2*3)}_{km} \nabla d^{(2*3)}_{km} .
It can be shown that
.. math::
\boldsymbol F^{(2*3)} = - \sum_{k=1}^{N_{\rm 2d}^{(2*3)}} b^{(2)}_k \nabla d_k^{(2)} - \sum_{m=1}^{N_{\rm 3d}^{(2*3)}} b^{(3)}_m \nabla d_m^{(3)} .
The calculation of the atomic forces for the quadratic POD potential
only requires the extra calculation of :math:`b_k^{(2)}` and :math:`b_m^{(3)}` which can be negligible.
As a result, the quadratic POD potential does not increase the computational complexity.
The per-atom POD descriptors include one, two, three, four, five, six, and seven-body
descriptors, which can be specified in the first input file. Furthermore, the per-atom POD descriptors
also depend on the number of environment clusters specified in the first input file.
Please see :ref:`(Nguyen2024) <Nguyen20242>` and :ref:`(Nguyen and Sema) <Nguyen20243>` for the detailed description of the per-atom POD descriptors.
Training Training
"""""""" """"""""
POD potentials are trained using the least-squares regression against POD potential is trained using the least-squares regression against
density functional theory (DFT) data. Let :math:`J` be the number of density functional theory (DFT) data. Let :math:`J` be the number of
training configurations, with :math:`N_j` being the number of atoms in training configurations, with :math:`N_j` being the number of atoms in
the j-th configuration. Let :math:`\{E^{\star}_j\}_{j=1}^{J}` and the j-th configuration. The training configurations are extracted from
the extended XYZ files located in a directory (i.e., path_to_training_data_set
in the second input file). Let :math:`\{E^{\star}_j\}_{j=1}^{J}` and
:math:`\{\boldsymbol F^{\star}_j\}_{j=1}^{J}` be the DFT energies and :math:`\{\boldsymbol F^{\star}_j\}_{j=1}^{J}` be the DFT energies and
forces for :math:`J` configurations. Next, we calculate the global forces for :math:`J` configurations. Next, we calculate the global
descriptors and their derivatives for all training configurations. Let descriptors and their derivatives for all training configurations. Let
@ -694,7 +307,7 @@ found by solving the following least-squares problem
.. math:: .. math::
{\min}_{\boldsymbol c \in \mathbb{R}^{M}} \ w_E \|\boldsymbol A(\boldsymbol \eta) \boldsymbol c - \bar{\boldsymbol E}^{\star} \|^2 + w_F \|\boldsymbol B(\boldsymbol \eta) \boldsymbol c + \boldsymbol F^{\star} \|^2 + w_R \|\boldsymbol c \|^2, {\min}_{\boldsymbol c \in \mathbb{R}^{M}} \ w_E \|\boldsymbol A \boldsymbol c - \bar{\boldsymbol E}^{\star} \|^2 + w_F \|\boldsymbol B \boldsymbol c + \boldsymbol F^{\star} \|^2 + w_R \|\boldsymbol c \|^2,
where :math:`w_E` and :math:`w_F` are weights for the energy where :math:`w_E` and :math:`w_F` are weights for the energy
(*fitting_weight_energy*) and force (*fitting_weight_force*), (*fitting_weight_energy*) and force (*fitting_weight_force*),
@ -704,18 +317,18 @@ E^{\star}_j/N_j` and :math:`\boldsymbol F^{\star}` is a vector of
:math:`\mathcal{N}` entries obtained by stacking :math:`\{\boldsymbol :math:`\mathcal{N}` entries obtained by stacking :math:`\{\boldsymbol
F^{\star}_j\}_{j=1}^{J}` from top to bottom. F^{\star}_j\}_{j=1}^{J}` from top to bottom.
The training procedure is the same for both the linear and quadratic POD Validation
potentials. However, since the quadratic POD potential has a """"""""""
significantly larger number of the global descriptors, it is more
expensive to train the linear POD potential. This is because the
training of the quadratic POD potential still requires us to calculate
and store the quadratic global descriptors and their
gradient. Furthermore, the quadratic POD potential may require more
training data in order to prevent over-fitting. In order to reduce the
computational cost of fitting the quadratic POD potential and avoid
over-fitting, we can use subsets of two-body and three-body PODs for
constructing the new descriptors.
POD potential can be validated on a test dataset in a directory specified
by setting path_to_test_data_set in the second input file. It is possible to
validate the POD potential after the training is complete. This is done by
providing the coefficient file as an input to :doc:`fitpod <fitpod_command>`,
for example,
.. code-block:: LAMMPS
fitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod
Restrictions Restrictions
"""""""""""" """"""""""""
@ -727,7 +340,11 @@ LAMMPS was built with that package. See the :doc:`Build package
Related commands Related commands
"""""""""""""""" """"""""""""""""
:doc:`pair_style pod <pair_pod>` :doc:`pair_style pod <pair_pod>`,
:doc:`compute pod/atom <compute_pod_atom>`,
:doc:`compute podd/atom <compute_pod_atom>`,
:doc:`compute pod/local <compute_pod_atom>`,
:doc:`compute pod/global <compute_pod_atom>`
Default Default
""""""" """""""
@ -736,10 +353,20 @@ The keyword defaults are also given in the description of the input files.
---------- ----------
.. _Grepl20072:
**(Grepl)** Grepl, Maday, Nguyen, and Patera, ESAIM: Mathematical Modelling and Numerical Analysis 41(3), 575-605, (2007).
.. _Nguyen20222: .. _Nguyen20222:
**(Nguyen)** Nguyen and Rohskopf, arXiv preprint arXiv:2209.02362 (2022). **(Nguyen and Rohskopf)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023).
.. _Nguyen20232:
**(Nguyen2023)** Nguyen, Physical Review B, 107(14), 144103, (2023).
.. _Nguyen20242:
**(Nguyen2024)** Nguyen, Journal of Computational Physics, 113102, (2024).
.. _Nguyen20243:
**(Nguyen and Sema)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024).

View File

@ -3,6 +3,8 @@
pair_style pod command pair_style pod command
======================== ========================
Accelerator Variants: *pod/kk*
Syntax Syntax
"""""" """"""
@ -24,29 +26,31 @@ Description
.. versionadded:: 22Dec2022 .. versionadded:: 22Dec2022
Pair style *pod* defines the proper orthogonal descriptor (POD) Pair style *pod* defines the proper orthogonal descriptor (POD)
potential :ref:`(Nguyen) <Nguyen20221>`. The mathematical definition of potential :ref:`(Nguyen and Rohskopf) <Nguyen20222>`,
the POD potential is described from :doc:`fitpod <fitpod_command>`, which is :ref:`(Nguyen2023) <Nguyen20232>`, :ref:`(Nguyen2024) <Nguyen20242>`, and :ref:`(Nguyen and Sema) <Nguyen20243>`.
used to fit the POD potential to *ab initio* energy and force data. The :doc:`fitpod <fitpod_command>` is used to fit the POD potential.
Only a single pair_coeff command is used with the *pod* style which Only a single pair_coeff command is used with the *pod* style which
specifies a POD parameter file followed by a coefficient file. specifies a POD parameter file followed by a coefficient file,
a projection matrix file, and a centroid file.
The POD parameter file (``Ta_param.pod``) can contain blank and comment lines
(start with #) anywhere. Each non-blank non-comment line must contain
one keyword/value pair. See :doc:`fitpod <fitpod_command>` for the description
of all the keywords that can be assigned in the parameter file.
The coefficient file (``Ta_coefficients.pod``) contains coefficients for the The coefficient file (``Ta_coefficients.pod``) contains coefficients for the
POD potential. The top of the coefficient file can contain any number of POD potential. The top of the coefficient file can contain any number of
blank and comment lines (start with #), but follows a strict format blank and comment lines (start with #), but follows a strict format
after that. The first non-blank non-comment line must contain: after that. The first non-blank non-comment line must contain:
* POD_coefficients: *ncoeff* * model_coefficients: *ncoeff* *nproj* *ncentroid*
This is followed by *ncoeff* coefficients, one per line. The coefficient This is followed by *ncoeff* coefficients, *nproj* projection matrix entries,
and *ncentroid* centroid coordinates, one per line. The coefficient
file is generated after training the POD potential using :doc:`fitpod file is generated after training the POD potential using :doc:`fitpod
<fitpod_command>`. <fitpod_command>`.
The POD parameter file (``Ta_param.pod``) can contain blank and comment lines
(start with #) anywhere. Each non-blank non-comment line must contain
one keyword/value pair. See :doc:`fitpod <fitpod_command>` for the description
of all the keywords that can be assigned in the parameter file.
As an example, if a LAMMPS indium phosphide simulation has 4 atoms As an example, if a LAMMPS indium phosphide simulation has 4 atoms
types, with the first two being indium and the third and fourth being types, with the first two being indium and the third and fourth being
phophorous, the pair_coeff command would look like this: phophorous, the pair_coeff command would look like this:
@ -67,7 +71,33 @@ the *hybrid* pair style. The NULL values are placeholders for atom
types that will be used with other potentials. types that will be used with other potentials.
Examples about training and using POD potentials are found in the Examples about training and using POD potentials are found in the
directory lammps/examples/PACKAGES/pod. directory lammps/examples/PACKAGES/pod and the Github repo https://github.com/cesmix-mit/pod-examples.
----------
Mixing, shift, table, tail correction, restart, rRESPA info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
For atom type pairs I,J and I != J, where types I and J correspond to
two different element types, mixing is performed by LAMMPS with
user-specifiable parameters as described above. You never need to
specify a pair_coeff command with I != J arguments for this style.
This pair style does not support the :doc:`pair_modify <pair_modify>`
shift, table, and tail options.
This pair style does not write its information to :doc:`binary restart
files <restart>`, since it is stored in potential files. Thus, you need
to re-specify the pair_style and pair_coeff commands in an input script
that reads a restart file.
This pair style can only be used via the *pair* keyword of the
:doc:`run_style respa <run_style>` command. It does not support the
*inner*, *middle*, *outer* keywords.
----------
.. include:: accel_styles.rst
---------- ----------
@ -78,12 +108,14 @@ This style is part of the ML-POD package. It is only enabled if LAMMPS
was built with that package. See the :doc:`Build package was built with that package. See the :doc:`Build package
<Build_package>` page for more info. <Build_package>` page for more info.
This pair style does not compute per-atom energies and per-atom stresses.
Related commands Related commands
"""""""""""""""" """"""""""""""""
:doc:`fitpod <fitpod_command>`, :doc:`fitpod <fitpod_command>`,
:doc:`compute pod/atom <compute_pod_atom>`,
:doc:`compute podd/atom <compute_pod_atom>`,
:doc:`compute pod/local <compute_pod_atom>`,
:doc:`compute pod/global <compute_pod_atom>`
Default Default
""""""" """""""
@ -92,6 +124,20 @@ none
---------- ----------
.. _Nguyen20221: .. _Nguyen20222:
**(Nguyen and Rohskopf)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023).
.. _Nguyen20232:
**(Nguyen2023)** Nguyen, Physical Review B, 107(14), 144103, (2023).
.. _Nguyen20242:
**(Nguyen2024)** Nguyen, Journal of Computational Physics, 113102, (2024).
.. _Nguyen20243:
**(Nguyen and Sema)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024).
**(Nguyen)** Nguyen and Rohskopf, arXiv preprint arXiv:2209.02362 (2022).

View File

@ -1173,6 +1173,7 @@ finitecutflag
Finnis Finnis
Fiorin Fiorin
fitpod fitpod
fivebody
fixID fixID
fj fj
Fji Fji
@ -2897,6 +2898,7 @@ Pmolrotate
Pmoltrans Pmoltrans
pN pN
png png
podd
Podhorszki Podhorszki
Poiseuille Poiseuille
poisson poisson
@ -3370,6 +3372,7 @@ setmask
Setmask Setmask
setpoint setpoint
setvel setvel
sevenbody
sfftw sfftw
sfree sfree
Sg Sg
@ -3420,6 +3423,7 @@ SiO
Siochi Siochi
Sirk Sirk
Sival Sival
sixbody
sizeI sizeI
sizeJ sizeJ
sizex sizex

View File

@ -0,0 +1,305 @@
model_coefficients: 304 0 0
-3.756301
914.674801
-370.747265
-141.227291
97.101196
-59.216907
9.975284
87.329406
-10.969150
14.411744
-2.270453
0.798817
-0.121719
114.805574
-2631.563672
-869.027988
-1038.286258
2431.480027
31.972558
139.437898
29.230520
39.179879
-189.998549
-16.358691
18.699184
13.386293
12.847911
7.310155
1.677341
-9.237073
-2.228285
0.137303
6.446888
-0.385837
0.272000
0.111052
-1.264342
-0.711451
450.463638
-499.339551
550.704146
-1638.278950
-1311.408792
-24.811632
-14.000684
-39.928838
44.690659
35.934791
-0.425535
16.810067
-1.951262
26.118670
28.549237
-1.779991
-1.907896
4.278671
-5.852529
-11.518503
0.285252
0.210939
-1.153276
0.744801
2.765281
-365.425648
892.154409
616.198109
-808.930752
-241.494545
60.329248
-50.220263
-89.366098
47.692144
12.376825
-11.304060
-0.465577
20.908593
0.768057
-0.296966
-1.434787
0.089423
-3.273582
1.085951
1.627005
0.063449
0.501713
-0.025247
-1.127277
-0.619276
-950.742997
11175.508296
1041.077100
-8713.542159
11.024588
-193.368092
-17.871650
193.000879
-1.221800
0.201038
-0.297456
10.197177
0.118306
-2.486775
0.340362
0.179573
2064.315112
11898.567992
-7130.614814
-2965.017905
-36.665484
-156.646217
112.838247
64.147104
-0.187677
8.822337
-2.516814
0.833110
-0.808597
-3.112898
2.172317
1.684634
-5.757502
4129.051881
-2191.420379
-5640.863432
2.123836
-34.024960
35.525113
106.884920
0.406772
6.365527
-0.015093
2.711538
-0.263692
-0.604293
0.790243
1.092726
593.864089
-2785.368577
-1100.723468
4424.744171
-20.023164
47.252092
34.797296
-101.504738
-1.911711
-0.110737
3.998625
-2.768303
-0.189524
0.793288
-0.405026
-1.116385
4.808874
86.919761
-10.887316
14.382398
-2.271034
0.710124
-0.114050
170.975102
-54.119757
-23.638119
28.153323
-15.183264
2.919447
-185.866164
-1165.581453
-1256.610349
1133.815010
814.761739
9.901474
31.315227
40.389531
-39.201068
-50.871475
3.268994
19.578821
12.684861
-13.440885
2.022633
1.483279
-4.388229
0.944679
3.110080
-2.163427
0.160512
-0.197641
-1.121333
1.023995
2.077494
-78.649494
15.740666
1379.998028
-267.931116
-631.685867
0.779724
-28.384680
-104.334909
40.727192
54.977623
4.534376
13.738711
2.994157
-10.950852
-4.057951
1.099589
-1.782453
3.174200
2.605193
-1.835511
0.063386
0.124447
-0.881517
-0.703873
0.712785
-567.114384
363.884433
-300.309621
-1421.591050
-1083.371637
45.559123
-7.797512
24.330267
71.829748
60.799510
-2.099976
-9.821055
-6.488823
9.426431
6.385231
-0.836215
3.533300
2.741734
-3.602311
-3.863372
-0.122980
-0.147120
-0.378902
-0.232987
0.445875
-237.448044
442.663085
2103.157345
-2382.920549
0.583996
-6.353184
-17.798247
72.320744
-0.422216
1.198193
3.257409
6.944903
0.255190
-0.887514
-0.316214
0.345565
-242.443134
4329.522091
534.487792
-4571.367114
-9.591790
-62.990215
20.323544
169.640829
-2.788146
2.114659
7.272737
21.210166
0.904969
-1.154060
-1.376235
-1.148246
129.689234
5953.209838
667.823321
-83.797221
3.417016
-126.968016
-14.909772
41.785404
1.415997
-5.278588
-0.463605
8.009232
0.030211
-0.765006
-0.826223
0.103515
147.565462
4404.556538
3774.833555
-2327.923578
-5.422196
-107.433002
-70.175719
74.887031
-0.424490
-6.620110
-2.179770
5.588150
-0.222514
-0.435209
0.034179
0.388588

View File

@ -1,20 +1,21 @@
file_format extxyz file_format extxyz
file_extension xyz file_extension xyz
path_to_training_data_set "../Ta/XYZ" path_to_training_data_set "XYZ"
path_to_test_data_set "../Ta/XYZ" path_to_test_data_set "XYZ"
path_to_environment_configuration_set "XYZ"
fitting_weight_energy 100.0 fitting_weight_energy 100.0
fitting_weight_force 1.0 fitting_weight_force 1.0
fitting_regularization_parameter 1e-10 fitting_regularization_parameter 1e-12
error_analysis_for_training_data_set 1 error_analysis_for_training_data_set 1
error_analysis_for_test_data_set 0 error_analysis_for_test_data_set 0
# Add the following basename to the name of output files # Add the following basename to the name of output files
basename_for_output_files Ta basename_for_output_files InP
# number of digits after the decimal point for pod coefficients # number of digits after the decimal point for pod coefficients
precision_for_pod_coefficients 5 precision_for_pod_coefficients 6

View File

@ -0,0 +1,48 @@
# chemical element symbols
species In P
# periodic boundary conditions
pbc 1 1 1
# inner cut-off radius
rin 0.8
# outer cut-off radius
rcut 5.0
# use only for enviroment-adaptive potentials
number_of_environment_clusters 1
# principal_components of local descriptors
number_of_principal_components 2
# polynomial degrees for radial basis functions
bessel_polynomial_degree 4
inverse_polynomial_degree 8
# one-body potential
onebody 1
# two-body linear POD potential
twobody_number_radial_basis_functions 6
# three-body linear POD potential
threebody_number_radial_basis_functions 5
threebody_angular_degree 4
# four-body linear POD potential
fourbody_number_radial_basis_functions 4
fourbody_angular_degree 2
# five-body linear POD potential
fivebody_number_radial_basis_functions 0
fivebody_angular_degree 0
# six-body linear POD potential
sixbody_number_radial_basis_functions 0
sixbody_angular_degree 0
# seven-body linear POD potential
sevenbody_number_radial_basis_functions 0
sevenbody_angular_degree 0

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
**************** Begin of Error Analysis for the Training Data Set ****************
--------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------
Bulk.xyz 1 8 0.001678 0.001678 0.000000 0.000000
EOS.xyz 268 2080 0.001463 0.001817 0.001107 0.015463
Shear.xyz 346 2768 0.000415 0.000640 0.008336 0.012865
Strain.xyz 163 1304 0.001129 0.001374 0.000021 0.000036
aIn.xyz 54 11664 0.000737 0.000796 0.007969 0.016112
aP.xyz 21 4536 0.001396 0.001407 0.019599 0.054174
aa.xyz 20 4320 0.001991 0.001991 0.016735 0.027955
iIn.xyz 41 8897 0.001548 0.001687 0.013910 0.025462
iP.xyz 100 21700 0.001090 0.001203 0.009692 0.018549
s_aIn.xyz 121 7744 0.000856 0.000889 0.011041 0.017399
s_aP.xyz 72 4608 0.002255 0.003587 0.032425 0.045878
s_aa.xyz 18 1152 0.001198 0.001200 0.037169 0.047713
s_iIn.xyz 144 9360 0.002014 0.002255 0.035374 0.050726
s_iP.xyz 337 21905 0.001655 0.002178 0.025130 0.038368
s_vIn.xyz 17 1071 0.007984 0.007992 0.023190 0.039575
s_vP.xyz 77 4851 0.000245 0.000281 0.018303 0.025819
s_vv.xyz 65 4030 0.001759 0.001986 0.039037 0.052667
vP.xyz 10 2150 0.000640 0.000640 0.005452 0.009834
vv.xyz 19 4066 0.001336 0.001403 0.020930 0.034386
--------------------------------------------------------------------------------------------
All files 1894 118214 0.001288 0.001855 0.018109 0.032649
--------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set ****************

View File

@ -0,0 +1,16 @@
### POD example for InP
We will fit a potential to the `InP` training data in the `XYZ` directory, which houses `.xyz` files
Please download the training data from [the repo](https://github.com/cesmix-mit/pod-examples/tree/main/JCP2023_InP/XYZ)
Fit POD with
lmp -in in.fitpod
This creates `InP_coefficients.pod` for the linear model, which we can use to run MD with
lmp -in in.pod

View File

@ -0,0 +1 @@
fitpod InP_param.pod InP_data.pod

View File

@ -1,13 +1,13 @@
# Demonstrate POD Ta potential # Demonstrate POD potential for InP
# Initialize simulation # Initialize simulation
variable nsteps index 100 variable nsteps index 100
variable nrep equal 4 variable nrep equal 4
variable a equal 3.316 variable a equal 5.83
units metal units metal
# generate the box and atom positions using a BCC lattice # generate the box and atom positions using a FCC lattice
variable nx equal ${nrep} variable nx equal ${nrep}
variable ny equal ${nrep} variable ny equal ${nrep}
@ -15,17 +15,17 @@ variable nz equal ${nrep}
boundary p p p boundary p p p
lattice bcc $a lattice diamond $a
region box block 0 ${nx} 0 ${ny} 0 ${nz} region box block 0 ${nx} 0 ${ny} 0 ${nz}
create_box 1 box create_box 2 box
create_atoms 1 box create_atoms 1 box basis 5 2 basis 6 2 basis 7 2 basis 8 2
mass 1 180.88
mass 1 114.76
mass 2 30.98
# POD potential # POD potential
pair_style pod pair_style pod
pair_coeff * * Ta_param.pod Ta_coefficients.pod Ta pair_coeff * * InP_param.pod InP_coefficients.pod In P
# Setup output # Setup output
@ -44,4 +44,3 @@ velocity all create 300.0 4928459 loop geom
fix 1 all nve fix 1 all nve
run ${nsteps} run ${nsteps}

View File

@ -0,0 +1,163 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-176-gc2e4ad220f-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
fitpod InP_param.pod InP_data.pod
**************** Begin of POD Potentials ****************
species: In P
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 0.8
outer cut-off radius: 5
bessel polynomial degree: 4
inverse polynomial degree: 8
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 4
four-body angular degree: 2
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 12
number of local descriptors per element for three-body potential: 75
number of local descriptors per element for four-body potential: 64
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 152
number of global descriptors: 304
**************** End of POD Potentials ****************
**************** Begin of Data File ****************
file format: extxyz
file extension: xyz
path to training data set: XYZ
path to test data set: XYZ
path to environment configuration set: XYZ
basename for output files: InP
training fraction: 1
test fraction: 1
randomize training data set: 1
randomize test data set: 1
error analysis for training data set: 1
error analysis for test data set: 0
energy/force calculation for training data set: 0
energy/force calculation for test data set: 0
fitting weight for energy: 100
fitting weight for force: 1
fitting weight for stress: 0
save pod descriptors: 0
compute pod descriptors: 0
**************** End of Data File ****************
**************** Begin of Training Data Set ****************
--------------------------------------------------------
data file | number of configurations | number of atoms
--------------------------------------------------------
Bulk.xyz | 1 | 8
EOS.xyz | 268 | 2080
Shear.xyz | 346 | 2768
Strain.xyz | 163 | 1304
aIn.xyz | 54 | 11664
aP.xyz | 21 | 4536
aa.xyz | 20 | 4320
iIn.xyz | 41 | 8897
iP.xyz | 100 | 21700
s_aIn.xyz | 121 | 7744
s_aP.xyz | 72 | 4608
s_aa.xyz | 18 | 1152
s_iIn.xyz | 144 | 9360
s_iP.xyz | 337 | 21905
s_vIn.xyz | 17 | 1071
s_vP.xyz | 77 | 4851
s_vv.xyz | 65 | 4030
vP.xyz | 10 | 2150
vv.xyz | 19 | 4066
--------------------------------------------------------
number of files: 19
number of configurations in all files: 1894
number of atoms in all files: 118214
minimum number of atoms: 4
maximum number of atoms: 217
**************** End of Training Data Set ****************
**************** Begin of Memory Allocation ****************
maximum number of atoms in periodic domain: 217
maximum number of atoms in extended domain: 5859
maximum number of neighbors in extended domain: 1271403
size of double memory: 5555904
size of descriptor matrix: 304 x 304
**************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
Configuration: # 401
Configuration: # 501
Configuration: # 601
Configuration: # 701
Configuration: # 801
Configuration: # 901
Configuration: # 1001
Configuration: # 1101
Configuration: # 1201
Configuration: # 1301
Configuration: # 1401
Configuration: # 1501
Configuration: # 1601
Configuration: # 1701
Configuration: # 1801
**************** Begin of Error Calculation ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
Configuration: # 401
Configuration: # 501
Configuration: # 601
Configuration: # 701
Configuration: # 801
Configuration: # 901
Configuration: # 1001
Configuration: # 1101
Configuration: # 1201
Configuration: # 1301
Configuration: # 1401
Configuration: # 1501
Configuration: # 1601
Configuration: # 1701
Configuration: # 1801
**************** End of Error Calculation ****************
**************** Begin of Error Analysis for the Training Data Set ****************
--------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------
Bulk.xyz 1 8 0.001678 0.001678 0.000000 0.000000
EOS.xyz 268 2080 0.001463 0.001817 0.001107 0.015464
Shear.xyz 346 2768 0.000415 0.000640 0.008335 0.012863
Strain.xyz 163 1304 0.001129 0.001374 0.000021 0.000036
aIn.xyz 54 11664 0.000737 0.000796 0.007969 0.016112
aP.xyz 21 4536 0.001396 0.001407 0.019599 0.054174
aa.xyz 20 4320 0.001991 0.001991 0.016735 0.027955
iIn.xyz 41 8897 0.001548 0.001687 0.013910 0.025462
iP.xyz 100 21700 0.001090 0.001203 0.009692 0.018549
s_aIn.xyz 121 7744 0.000856 0.000889 0.011041 0.017399
s_aP.xyz 72 4608 0.002255 0.003587 0.032425 0.045878
s_aa.xyz 18 1152 0.001198 0.001200 0.037169 0.047713
s_iIn.xyz 144 9360 0.002014 0.002255 0.035374 0.050726
s_iP.xyz 337 21905 0.001655 0.002178 0.025130 0.038368
s_vIn.xyz 17 1071 0.007984 0.007992 0.023190 0.039575
s_vP.xyz 77 4851 0.000245 0.000281 0.018303 0.025818
s_vv.xyz 65 4030 0.001759 0.001986 0.039037 0.052667
vP.xyz 10 2150 0.000640 0.000640 0.005452 0.009834
vv.xyz 19 4066 0.001336 0.001403 0.020930 0.034386
--------------------------------------------------------------------------------------------
All files 1894 118214 0.001288 0.001855 0.018109 0.032648
--------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:27

View File

@ -0,0 +1,163 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-176-gc2e4ad220f-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
fitpod InP_param.pod InP_data.pod
**************** Begin of POD Potentials ****************
species: In P
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 0.8
outer cut-off radius: 5
bessel polynomial degree: 4
inverse polynomial degree: 8
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 4
four-body angular degree: 2
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 12
number of local descriptors per element for three-body potential: 75
number of local descriptors per element for four-body potential: 64
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 152
number of global descriptors: 304
**************** End of POD Potentials ****************
**************** Begin of Data File ****************
file format: extxyz
file extension: xyz
path to training data set: XYZ
path to test data set: XYZ
path to environment configuration set: XYZ
basename for output files: InP
training fraction: 1
test fraction: 1
randomize training data set: 1
randomize test data set: 1
error analysis for training data set: 1
error analysis for test data set: 0
energy/force calculation for training data set: 0
energy/force calculation for test data set: 0
fitting weight for energy: 100
fitting weight for force: 1
fitting weight for stress: 0
save pod descriptors: 0
compute pod descriptors: 0
**************** End of Data File ****************
**************** Begin of Training Data Set ****************
--------------------------------------------------------
data file | number of configurations | number of atoms
--------------------------------------------------------
Bulk.xyz | 1 | 8
EOS.xyz | 268 | 2080
Shear.xyz | 346 | 2768
Strain.xyz | 163 | 1304
aIn.xyz | 54 | 11664
aP.xyz | 21 | 4536
aa.xyz | 20 | 4320
iIn.xyz | 41 | 8897
iP.xyz | 100 | 21700
s_aIn.xyz | 121 | 7744
s_aP.xyz | 72 | 4608
s_aa.xyz | 18 | 1152
s_iIn.xyz | 144 | 9360
s_iP.xyz | 337 | 21905
s_vIn.xyz | 17 | 1071
s_vP.xyz | 77 | 4851
s_vv.xyz | 65 | 4030
vP.xyz | 10 | 2150
vv.xyz | 19 | 4066
--------------------------------------------------------
number of files: 19
number of configurations in all files: 1894
number of atoms in all files: 118214
minimum number of atoms: 4
maximum number of atoms: 217
**************** End of Training Data Set ****************
**************** Begin of Memory Allocation ****************
maximum number of atoms in periodic domain: 217
maximum number of atoms in extended domain: 5859
maximum number of neighbors in extended domain: 1271403
size of double memory: 5555904
size of descriptor matrix: 304 x 304
**************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
Configuration: # 401
Configuration: # 501
Configuration: # 601
Configuration: # 701
Configuration: # 801
Configuration: # 901
Configuration: # 1001
Configuration: # 1101
Configuration: # 1201
Configuration: # 1301
Configuration: # 1401
Configuration: # 1501
Configuration: # 1601
Configuration: # 1701
Configuration: # 1801
**************** Begin of Error Calculation ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
Configuration: # 401
Configuration: # 501
Configuration: # 601
Configuration: # 701
Configuration: # 801
Configuration: # 901
Configuration: # 1001
Configuration: # 1101
Configuration: # 1201
Configuration: # 1301
Configuration: # 1401
Configuration: # 1501
Configuration: # 1601
Configuration: # 1701
Configuration: # 1801
**************** End of Error Calculation ****************
**************** Begin of Error Analysis for the Training Data Set ****************
--------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------
Bulk.xyz 1 8 0.001678 0.001678 0.000000 0.000000
EOS.xyz 268 2080 0.001463 0.001817 0.001107 0.015463
Shear.xyz 346 2768 0.000415 0.000640 0.008336 0.012865
Strain.xyz 163 1304 0.001129 0.001374 0.000021 0.000036
aIn.xyz 54 11664 0.000737 0.000796 0.007969 0.016112
aP.xyz 21 4536 0.001396 0.001407 0.019599 0.054174
aa.xyz 20 4320 0.001991 0.001991 0.016735 0.027955
iIn.xyz 41 8897 0.001548 0.001687 0.013910 0.025462
iP.xyz 100 21700 0.001090 0.001203 0.009692 0.018549
s_aIn.xyz 121 7744 0.000856 0.000889 0.011041 0.017399
s_aP.xyz 72 4608 0.002255 0.003587 0.032425 0.045878
s_aa.xyz 18 1152 0.001198 0.001200 0.037169 0.047713
s_iIn.xyz 144 9360 0.002014 0.002255 0.035374 0.050726
s_iP.xyz 337 21905 0.001655 0.002178 0.025130 0.038368
s_vIn.xyz 17 1071 0.007984 0.007992 0.023190 0.039575
s_vP.xyz 77 4851 0.000245 0.000281 0.018303 0.025819
s_vv.xyz 65 4030 0.001759 0.001986 0.039037 0.052667
vP.xyz 10 2150 0.000640 0.000640 0.005452 0.009834
vv.xyz 19 4066 0.001336 0.001403 0.020930 0.034386
--------------------------------------------------------------------------------------------
All files 1894 118214 0.001288 0.001855 0.018109 0.032649
--------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:10

View File

@ -0,0 +1,155 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-176-gc2e4ad220f-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD potential for InP
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 5.83
units metal
# generate the box and atom positions using a FCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice diamond $a
lattice diamond 5.83
Lattice spacing in x,y,z = 5.83 5.83 5.83
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 2 box
Created orthogonal box = (0 0 0) to (23.32 23.32 23.32)
1 by 1 by 1 MPI processor grid
create_atoms 1 box basis 5 2 basis 6 2 basis 7 2 basis 8 2
Created 512 atoms
using lattice units in orthogonal box = (0 0 0) to (23.32 23.32 23.32)
create_atoms CPU = 0.001 seconds
mass 1 114.76
mass 2 30.98
# POD potential
pair_style pod
pair_coeff * * InP_param.pod InP_coefficients.pod In P
**************** Begin of POD Potentials ****************
species: In P
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 0.8
outer cut-off radius: 5
bessel polynomial degree: 4
inverse polynomial degree: 8
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 4
four-body angular degree: 2
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 12
number of local descriptors per element for three-body potential: 75
number of local descriptors per element for four-body potential: 64
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 152
number of global descriptors: 304
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 304
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 8 8 8
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.244 | 3.244 | 3.244 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -4.8392777 0 -4.8005754 1561.0654
10 291.27079 -4.8381515 0 -4.8005753 1709.509
20 266.69372 -4.8349805 0 -4.8005749 2126.86
30 230.86163 -4.8303573 0 -4.8005744 2735.6894
40 190.64668 -4.8251686 0 -4.8005738 3416.9247
50 153.9516 -4.8204341 0 -4.8005732 4022.2533
60 127.93805 -4.8170778 0 -4.8005728 4405.9763
70 117.12501 -4.8156828 0 -4.8005727 4475.6131
80 122.09497 -4.8163242 0 -4.800573 4231.7934
90 139.42686 -4.8185607 0 -4.8005735 3766.8505
100 162.84813 -4.8215828 0 -4.8005741 3221.8605
Loop time of 2.18542 on 1 procs for 100 steps with 512 atoms
Performance: 1.977 ns/day, 12.141 hours/ns, 45.758 timesteps/s, 23.428 katom-step/s
97.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.1829 | 2.1829 | 2.1829 | 0.0 | 99.88
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00080748 | 0.00080748 | 0.00080748 | 0.0 | 0.04
Output | 0.00033584 | 0.00033584 | 0.00033584 | 0.0 | 0.02
Modify | 0.00071224 | 0.00071224 | 0.00071224 | 0.0 | 0.03
Other | | 0.000686 | | | 0.03
Nlocal: 512 ave 512 max 512 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1451 ave 1451 max 1451 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 17408 ave 17408 max 17408 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 17408
Ave neighs/atom = 34
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,155 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-176-gc2e4ad220f-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD potential for InP
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 5.83
units metal
# generate the box and atom positions using a FCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice diamond $a
lattice diamond 5.83
Lattice spacing in x,y,z = 5.83 5.83 5.83
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 2 box
Created orthogonal box = (0 0 0) to (23.32 23.32 23.32)
1 by 2 by 2 MPI processor grid
create_atoms 1 box basis 5 2 basis 6 2 basis 7 2 basis 8 2
Created 512 atoms
using lattice units in orthogonal box = (0 0 0) to (23.32 23.32 23.32)
create_atoms CPU = 0.001 seconds
mass 1 114.76
mass 2 30.98
# POD potential
pair_style pod
pair_coeff * * InP_param.pod InP_coefficients.pod In P
**************** Begin of POD Potentials ****************
species: In P
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 0.8
outer cut-off radius: 5
bessel polynomial degree: 4
inverse polynomial degree: 8
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 4
four-body angular degree: 2
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 12
number of local descriptors per element for three-body potential: 75
number of local descriptors per element for four-body potential: 64
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 152
number of global descriptors: 304
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 304
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 8 8 8
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.215 | 3.215 | 3.215 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -4.8392777 0 -4.8005754 1561.0654
10 291.27079 -4.8381515 0 -4.8005753 1709.509
20 266.69372 -4.8349805 0 -4.8005749 2126.86
30 230.86163 -4.8303573 0 -4.8005744 2735.6894
40 190.64668 -4.8251686 0 -4.8005738 3416.9247
50 153.9516 -4.8204341 0 -4.8005732 4022.2533
60 127.93805 -4.8170778 0 -4.8005728 4405.9763
70 117.12501 -4.8156828 0 -4.8005727 4475.6131
80 122.09497 -4.8163242 0 -4.800573 4231.7934
90 139.42686 -4.8185607 0 -4.8005735 3766.8505
100 162.84813 -4.8215828 0 -4.8005741 3221.8605
Loop time of 0.818141 on 4 procs for 100 steps with 512 atoms
Performance: 5.280 ns/day, 4.545 hours/ns, 122.228 timesteps/s, 62.581 katom-step/s
94.0% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.70717 | 0.7255 | 0.75748 | 2.2 | 88.68
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.05765 | 0.088203 | 0.10797 | 6.3 | 10.78
Output | 0.00030107 | 0.00039215 | 0.00055987 | 0.0 | 0.05
Modify | 0.00051915 | 0.00059064 | 0.00069306 | 0.0 | 0.07
Other | | 0.003452 | | | 0.42
Nlocal: 128 ave 128 max 128 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 783 ave 783 max 783 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 4352 ave 4352 max 4352 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 17408
Ave neighs/atom = 34
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -3,19 +3,36 @@
Go to `lammps` directory and build with the POD package: Go to `lammps` directory and build with the POD package:
cd path/to/lammps cd path/to/lammps
mkdir build-pod mkdir build
cd build-pod cd build
cmake -C ../cmake/presets/basic.cmake -D PKG_ML-POD=on ../cmake cmake -C ../cmake/presets/basic.cmake -D PKG_ML-POD=on ../cmake
cmake --build . cmake --build .
### Fit a POD potential for tantalum ### Compile LAMMPS/POD with Kokkos
cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake -D PKG_ML-POD=on ../cmake
### Fit a POD potential for Tantalum
Go to `lammps/examples/PACKAGES/pod/Ta` directory and run Go to `lammps/examples/PACKAGES/pod/Ta` directory and run
lmp -in in.podfit lmp -in Ta_fit.pod
See the README in `lammps/examples/PACKAGES/pod/Ta` for instructions on how to run MD with the potential. This creates `Ta_coefficients.pod` for the linear model, which we can use to run MD with
lmp -in Ta_mdrun.pod
### Fit a POD potential for Indium Phosphide
Go to `lammps/examples/PACKAGES/pod/InP` directory and run
lmp -in InP_fit.pod
This creates `InP_coefficients.pod` for the linear model, which we can use to run MD with
lmp -in InP_mdrun.pod
### Examples for other materials ### Examples for other materials
See [https://github.com/cesmix-mit/pod-examples](https://github.com/cesmix-mit/pod-examples) See [https://github.com/cesmix-mit/pod-examples](https://github.com/cesmix-mit/pod-examples)

View File

@ -1 +0,0 @@
../../../../potentials/Ta_coeff.pod

View File

@ -0,0 +1,33 @@
model_coefficients: 32 0 0
-4.45745
29.40034
-13.69439
-0.32907
-0.14786
-1.35221
-0.59315
-26.30409
-33.37233
162.42473
144.67248
-149.50021
1.78603
2.49026
-11.04768
-11.14333
12.40537
0.48284
0.39345
-2.25812
-1.38908
1.31551
0.02974
-0.05094
-0.21177
0.12127
0.23170
0.02426
-0.15305
-0.10803
0.25628
0.01291

View File

@ -1,33 +1,33 @@
POD_coefficients: 32 model_coefficients: 32 0 0
-4.44242 -4.45745
4.10219 29.40034
2.36987 -13.69439
3.92184 -0.32907
-0.83796 -0.14786
-0.79457 -1.35221
-0.26230 -0.59315
-21.24294 -26.30409
-15.38460 -33.37233
-38.44056 162.42473
8.29872 144.67248
-42.54514 -149.50021
2.79976 1.78603
3.76109 2.49026
5.23499 -11.04768
0.04878 -11.14333
2.96006 12.40537
0.09101 0.48284
-0.19257 0.39345
-0.24326 -2.25812
-0.16735 -1.38908
0.53738 1.31551
0.02236 0.02974
-0.00154 -0.05094
0.02488 -0.21177
-0.00565 0.12127
0.07672 0.23170
-0.05894 0.02426
-0.05604 -0.15305
-0.12664 -0.10803
0.11723 0.25628
0.00262 0.01291

View File

@ -3,10 +3,11 @@ file_extension xyz
path_to_training_data_set "XYZ" path_to_training_data_set "XYZ"
path_to_test_data_set "XYZ" path_to_test_data_set "XYZ"
path_to_environment_configuration_set "XYZ"
fitting_weight_energy 100.0 fitting_weight_energy 100.0
fitting_weight_force 1.0 fitting_weight_force 1.0
fitting_regularization_parameter 1e-10 fitting_regularization_parameter 1e-12
error_analysis_for_training_data_set 1 error_analysis_for_training_data_set 1
error_analysis_for_test_data_set 0 error_analysis_for_test_data_set 0
@ -17,4 +18,3 @@ basename_for_output_files Ta
# number of digits after the decimal point for pod coefficients # number of digits after the decimal point for pod coefficients
precision_for_pod_coefficients 5 precision_for_pod_coefficients 5

View File

@ -1,4 +1,3 @@
# DATE: 2022-11-30 UNITS: metal CONTRIBUTOR: Ngoc Cuong Nguyen, exapde@gmail.com CITATION: https://arxiv.org/abs/2209.02362
# chemical element symbols # chemical element symbols
species Ta species Ta
@ -11,22 +10,37 @@ rin 1.0
# outer cut-off radius # outer cut-off radius
rcut 5.0 rcut 5.0
# use only for enviroment-adaptive potentials
number_of_environment_clusters 1
# principal_components of local descriptors
number_of_principal_components 2
# polynomial degrees for radial basis functions # polynomial degrees for radial basis functions
bessel_polynomial_degree 3 bessel_polynomial_degree 3
inverse_polynomial_degree 6 inverse_polynomial_degree 6
# one-body potential
onebody 1
# two-body linear POD potential # two-body linear POD potential
twobody_number_radial_basis_functions 6 twobody_number_radial_basis_functions 6
# three-body linear POD potential # three-body linear POD potential
threebody_number_radial_basis_functions 5 threebody_number_radial_basis_functions 5
threebody_number_angular_basis_functions 5 threebody_angular_degree 4
# four-body linear POD potential
fourbody_number_radial_basis_functions 0
fourbody_angular_degree 0
# five-body linear POD potential
fivebody_number_radial_basis_functions 0
fivebody_angular_degree 0
# six-body linear POD potential
sixbody_number_radial_basis_functions 0
sixbody_angular_degree 0
# seven-body linear POD potential
sevenbody_number_radial_basis_functions 0
sevenbody_angular_degree 0
# four-body linear SNAP potential
fourbody_snap_twojmax 0
# quadratic POD potential
quadratic_pod_potential 0

View File

@ -1,387 +1,387 @@
# Displaced_A15.xyz # Displaced_A15.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
1 64 -753.4412087 -754.220443 0.01217553565 7.734608752 8.398670477 0.1147177501 1 64 1191.016129 -753.1698421 -754.220443 0.01641563835 7.40295037 8.398670477 0.1439758999
2 64 -752.99206 -753.865255 0.01364367179 8.845831302 9.134430545 0.128875643 2 64 1191.016129 -752.7395784 -753.865255 0.01758869658 8.280515739 9.134430545 0.1607787343
3 64 -753.3230789 -754.0221 0.01092220404 8.320493902 9.017261102 0.1155421197 3 64 1191.016129 -753.08785 -754.0221 0.01459765574 7.697535492 9.017261102 0.1420603113
4 64 -753.5972757 -754.279613 0.01066151964 7.709417684 8.381725092 0.1058659753 4 64 1191.016129 -753.3517402 -754.279613 0.01449801277 7.132364917 8.381725092 0.1340575727
5 64 -753.0554721 -753.777209 0.01127713895 8.89827564 9.478314477 0.1191609049 5 64 1191.016129 -752.7757043 -753.777209 0.01564851147 8.360253864 9.478314477 0.1513006151
6 64 -753.3515905 -754.048643 0.01089144564 7.808950564 8.465317938 0.1128142237 6 64 1191.016129 -753.0381763 -754.048643 0.01578854208 7.591838888 8.465317938 0.1285134018
7 64 -753.6515992 -754.317603 0.01040630929 7.441773668 8.127690491 0.1024025645 7 64 1191.016129 -753.3574797 -754.317603 0.01500192578 7.082010429 8.127690491 0.1223953112
8 64 -753.3305668 -753.969161 0.009978033993 8.524333384 9.425464952 0.1066300011 8 64 1191.016129 -753.1004299 -753.969161 0.01357392266 7.903578432 9.425464952 0.1365521197
9 64 -753.3982699 -754.141988 0.01162059588 8.165654685 8.821346913 0.1141641875 9 64 1191.016129 -753.1947122 -754.141988 0.01480118465 7.516622986 8.821346913 0.1457127007
# Displaced_BCC.xyz # Displaced_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
10 54 -631.72742 -631.019667 0.01310653789 15.42892812 16.625876 0.264811012 10 54 988.0479474 -631.5404329 -631.019667 0.009643812587 15.64136862 16.625876 0.2725503749
11 54 -632.2725892 -631.719595 0.01024063328 14.51788198 15.58666626 0.2236637006 11 54 988.0479474 -632.1993857 -631.719595 0.008885012437 14.51345042 15.58666626 0.2369926956
12 54 -631.9431698 -631.386255 0.01031323642 15.21539049 15.92378883 0.2259171686 12 54 988.0479474 -631.7954039 -631.386255 0.007576831115 15.20757603 15.92378883 0.2310810758
13 54 -633.0728554 -632.575826 0.00920424781 13.38472946 14.55977162 0.2050161952 13 54 988.0479474 -633.0131535 -632.575826 0.00809865759 13.46782392 14.55977162 0.2185066317
14 54 -630.8933737 -630.450212 0.008206698429 16.5539163 16.96340726 0.2366453149 14 54 988.0479474 -630.6309514 -630.450212 0.003347025529 17.00218411 16.96340726 0.2580441627
15 54 -632.0739208 -631.669379 0.007491515672 15.23887638 16.05757315 0.2280333831 15 54 988.0479474 -631.9637644 -631.669379 0.00545158078 15.32548025 16.05757315 0.2336752679
16 54 -632.8030856 -632.431277 0.006885343815 14.21127984 14.69810718 0.2026063598 16 54 988.0479474 -632.6507522 -632.431277 0.004064355464 14.35795151 14.69810718 0.2158812969
17 54 -631.6814096 -630.960068 0.01335817778 14.70924474 15.99073148 0.2283605143 17 54 988.0479474 -631.5521869 -630.960068 0.0109651643 14.75319251 15.99073148 0.2285673047
18 54 -625.0410285 -623.378198 0.03079315656 23.39224423 24.67640432 0.3504654115 18 54 988.0479474 -624.854495 -623.378198 0.02733883252 23.58927768 24.67640432 0.3545478911
# Displaced_FCC.xyz # Displaced_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
19 48 -555.9696753 -555.899463 0.001462755232 6.079460735 6.084617063 0.07083484607 19 48 889.0559462 -555.8989975 -555.899463 9.69792269e-06 6.387988875 6.084617063 0.07805905013
20 48 -555.9506355 -555.922478 0.0005866147697 6.28112122 6.297071211 0.09285822038 20 48 889.0559462 -555.8789297 -555.922478 0.000907256654 6.632232564 6.297071211 0.1040918647
21 48 -555.8344979 -555.800269 0.000713101184 6.153574445 6.021098636 0.08137696888 21 48 889.0559462 -555.7628778 -555.800269 0.0007789836645 6.45057814 6.021098636 0.09471102034
22 48 -556.2639568 -556.196151 0.00141262046 5.066504178 5.127955094 0.08649299664 22 48 889.0559462 -556.2253041 -556.196151 0.0006073561042 5.301350042 5.127955094 0.09123176401
23 48 -555.6269121 -555.488929 0.002874647697 6.848109843 7.050223459 0.08116202322 23 48 889.0559462 -555.5406596 -555.488929 0.001077721414 7.195160551 7.050223459 0.08747135986
24 48 -556.1089332 -556.027926 0.001687649405 5.662035842 5.611881174 0.07953916326 24 48 889.0559462 -556.0330633 -556.027926 0.0001070272218 6.009103539 5.611881174 0.08935441647
25 48 -556.0580873 -555.968399 0.001868505799 5.879931332 5.979217189 0.07470196865 25 48 889.0559462 -555.9945281 -555.968399 0.0005443553218 6.212902066 5.979217189 0.081244274
26 48 -556.0083267 -556.047132 0.0008084440258 5.752828608 5.544452585 0.08224848502 26 48 889.0559462 -555.9554151 -556.047132 0.001910769529 6.012019145 5.544452585 0.09545132709
27 48 -555.82441 -555.747848 0.001595040721 6.367423657 6.47892568 0.09497869851 27 48 889.0559462 -555.7366233 -555.747848 0.0002338482448 6.764939057 6.47892568 0.1011665243
# Elastic_BCC.xyz # Elastic_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
28 2 -23.68353253 -23.689367 0.002917237243 0.0006486347527 0.0006222748589 7.696560647e-06 28 2 36.40799882 -23.68590704 -23.689367 0.001729981765 0.0005857469375 0.0006222748589 9.806537327e-06
29 2 -23.68281295 -23.689888 0.003537526523 0.0006442481331 0.0006166052222 7.353613433e-06 29 2 36.47727251 -23.68481169 -23.689888 0.00253815708 0.0005821264542 0.0006166052222 8.797319207e-06
30 2 -23.68293438 -23.689996 0.00353080996 0.0009115876426 0.0008810425642 1.183334558e-05 30 2 36.47184897 -23.68494784 -23.689996 0.002524078869 0.0008240616654 0.0008810425642 2.037428468e-05
31 2 -23.68108003 -23.690957 0.004938485589 1.044193543e-06 0 4.166082999e-07 31 2 36.62078348 -23.68225087 -23.690957 0.004353065844 9.422546395e-07 0 3.770200667e-07
32 2 -23.67919793 -23.690521 0.005661535829 0.0006261455712 0.0005982273815 7.573309962e-06 32 2 36.71197042 -23.67989944 -23.690521 0.005310779451 0.000566950477 0.0005982273815 8.158760804e-06
33 2 -23.67785535 -23.69038 0.006262326378 0.0006219476538 0.0005925723585 8.098703345e-06 33 2 36.77593928 -23.67819051 -23.69038 0.00609474427 0.0005635032259 0.0005925723585 7.849374173e-06
34 2 -23.68415292 -23.689202 0.00252453823 0.0006520193214 0.0006279363025 7.128171197e-06 34 2 36.36547558 -23.68676383 -23.689202 0.001219083545 0.0005885128327 0.0006279363025 1.053580541e-05
35 2 -23.68169552 -23.690482 0.004393238412 0.0009021557258 0.0008640138888 1.329061297e-05 35 2 36.55974375 -23.68319963 -23.690482 0.003641183354 0.000815464884 0.0008640138888 1.662920456e-05
36 2 -23.68301023 -23.689902 0.003445886213 0.0006432418939 0.0006152154094 8.589463686e-06 36 2 36.46414346 -23.68507116 -23.689902 0.002415420054 0.0005812774047 0.0006152154094 9.669302107e-06
37 2 -23.68063814 -23.690563 0.004962429905 0.0006318669831 0.0006038725031 7.463726891e-06 37 2 36.63368821 -23.6817672 -23.690563 0.004397900334 0.0005717456253 0.0006038725031 8.311567538e-06
38 2 -23.68337588 -23.690207 0.003415557958 0.001118071502 0.00107369735 1.811741272e-05 38 2 36.45345189 -23.68547117 -23.690207 0.002367914312 0.001009744333 0.00107369735 2.610693709e-05
39 2 -23.68369233 -23.689285 0.00279633424 0.0009215683923 0.000890013483 1.127366011e-05 39 2 36.38484847 -23.68616091 -23.689285 0.001562044483 0.0008322058899 0.000890013483 1.991679691e-05
40 2 -23.68344234 -23.689768 0.003162828655 0.001120158205 0.001080249045 1.630224161e-05 40 2 36.43347895 -23.68567207 -23.689768 0.002047966899 0.001012061035 0.001080249045 2.782864008e-05
41 2 -23.68224173 -23.68968 0.003719136062 0.0009070521506 0.0008680034562 1.339908745e-05 41 2 36.50220719 -23.68411383 -23.68968 0.002783085738 0.0008199315614 0.0008680034562 1.637343483e-05
42 2 -23.68259685 -23.690074 0.003738573623 0.00143649564 0.001373818765 2.432187597e-05 42 2 36.50719109 -23.68445604 -23.690074 0.002808981302 0.001296718439 0.001373818765 2.64147971e-05
43 2 -23.68469428 -23.688108 0.001706858485 0.0006587619148 0.0006336134468 7.932733888e-06 43 2 36.28428565 -23.68777598 -23.688108 0.0001660085343 0.000594221946 0.0006336134468 1.099939509e-05
44 2 -23.68405177 -23.689241 0.002594615211 0.0009223784492 0.0008880101351 1.189350098e-05 44 2 36.3642236 -23.68663754 -23.689241 0.001301727662 0.0008329159633 0.0008880101351 1.874593476e-05
45 2 -23.68384626 -23.68952 0.002836868987 0.0009181252225 0.0008860011287 1.116431522e-05 45 2 36.40397469 -23.68626116 -23.68952 0.001629419996 0.0008297070704 0.0008860011287 1.917842744e-05
46 2 -23.68524763 -23.686278 0.0005151850613 0.0006668258323 0.0006406777661 8.58562287e-06 46 2 36.15958616 -23.68901859 -23.686278 0.001370293226 0.0006010646632 0.0006406777661 1.138305654e-05
47 2 -23.67629396 -23.690097 0.006901518594 0.0008737523828 0.0008410160522 1.125104926e-05 47 2 36.85012426 -23.6762264 -23.690097 0.006935298115 0.0007925625457 0.0008410160522 1.643998947e-05
48 2 -23.67835169 -23.690811 0.006229654604 0.0008814028122 0.0008500070588 1.103963422e-05 48 2 36.76983294 -23.67871264 -23.690811 0.006049181932 0.0007984019479 0.0008500070588 1.765059262e-05
49 2 -23.67981574 -23.690266 0.005225130991 0.001091936388 0.001044322747 1.944706281e-05 49 2 36.6630398 -23.68078335 -23.690266 0.004741323226 0.0009871892379 0.001044322747 2.331514572e-05
50 2 -23.68209703 -23.690597 0.004249983197 0.001105769275 0.001050833003 2.242828165e-05 50 2 36.55357619 -23.68366573 -23.690597 0.003465633435 0.0009975988347 0.001050833003 2.173210926e-05
51 2 -23.68050418 -23.690673 0.005084408246 0.000631172526 0.0006038907186 7.85857762e-06 51 2 36.65271066 -23.68154759 -23.690673 0.004562704504 0.0005710871669 0.0006038907186 8.900574077e-06
52 2 -23.68185505 -23.690551 0.00434797299 0.0009022813915 0.0008590064028 1.486707593e-05 52 2 36.56222224 -23.68337216 -23.690551 0.003589418943 0.0008144210952 0.0008590064028 1.523928952e-05
53 2 -23.68191508 -23.690693 0.004388958442 0.0009013677777 0.0008590110593 1.516503239e-05 53 2 36.56679849 -23.68340668 -23.690693 0.003643158311 0.0008137974304 0.0008590110593 1.595698248e-05
54 2 -23.68097184 -23.69021 0.004619081961 0.0009000307855 0.0008730051546 9.670733045e-06 54 2 36.59811665 -23.6823077 -23.69021 0.003951151804 0.0008145831598 0.0008730051546 2.003359235e-05
55 2 -23.68426495 -23.688943 0.002339025274 0.0009232115961 0.0008800306813 1.619629586e-05 55 2 36.34900278 -23.68697807 -23.688943 0.0009824644101 0.0008322110648 0.0008800306813 1.744870469e-05
56 2 -23.67842316 -23.690136 0.005856419419 0.0006239138245 0.000593996633 8.394193459e-06 56 2 36.74034826 -23.67898787 -23.690136 0.005574066484 0.0005652132989 0.000593996633 7.92587851e-06
57 2 -23.6849427 -23.687444 0.001250651312 0.0009347957747 0.000903059245 1.290489522e-05 57 2 36.23610366 -23.68828866 -23.687444 0.0004223293819 0.0008436278789 0.000903059245 2.177751265e-05
58 2 -23.6836322 -23.689801 0.003084401813 0.0009160470298 0.0008740011442 1.424271291e-05 58 2 36.42259639 -23.68591698 -23.689801 0.001942008249 0.0008265155784 0.0008740011442 1.602155127e-05
59 2 -23.6814842 -23.690408 0.00446190038 8.690218902e-07 0 3.245696976e-07 59 2 36.58194 -23.68291534 -23.690408 0.003746329075 7.853116414e-07 0 2.932806621e-07
60 2 -23.68115817 -23.690362 0.004601914896 0.0006345480975 0.0006067503605 9.377221838e-06 60 2 36.59950783 -23.68250113 -23.690362 0.003930433448 0.0005739954417 0.0006067503605 1.009250412e-05
61 2 -23.67229452 -23.688881 0.008293240443 0.0008566684404 0.0008250054545 1.108928728e-05 61 2 37.02589653 -23.67131384 -23.688881 0.008783582181 0.0007776878254 0.0008250054545 1.619373008e-05
62 2 -23.6791352 -23.690515 0.005689901939 0.001534883496 0.001475779794 2.124695951e-05 62 2 36.71189602 -23.67982686 -23.690515 0.005344069182 0.001390387166 0.001475779794 3.436613175e-05
63 2 -23.67786743 -23.690551 0.006341785918 0.0006228264143 0.0005996599036 7.295416678e-06 63 2 36.78962367 -23.67814275 -23.690551 0.006204123773 0.0005637977551 0.0005996599036 1.001095778e-05
64 2 -23.68316372 -23.689487 0.003161641446 0.0006469755816 0.0006194384554 7.530154689e-06 64 2 36.42642467 -23.68541088 -23.689487 0.002038057601 0.0005844344049 0.0006194384554 9.105178613e-06
65 2 -23.6834063 -23.68986 0.003226849907 0.0009142334935 0.0008860124153 1.052672488e-05 65 2 36.4423543 -23.68559418 -23.68986 0.002132908295 0.0008266682194 0.0008860124153 2.074533254e-05
66 2 -23.68377813 -23.689288 0.002754934411 0.00145229412 0.001396479144 1.702826801e-05 66 2 36.39164409 -23.68624726 -23.689288 0.001520371922 0.001312283722 0.001396479144 2.724122629e-05
67 2 -23.67700773 -23.690457 0.006724637324 0.0006187196638 0.0005939831647 7.080762895e-06 67 2 36.83059874 -23.67704953 -23.690457 0.006703736699 0.0005605067938 0.0005939831647 8.903855256e-06
68 2 -23.67552804 -23.689792 0.007131981721 0.0008698720997 0.0008340587509 1.418233126e-05 68 2 36.8936692 -23.67527599 -23.689792 0.007258002565 0.000787658236 0.0008340587509 1.727027889e-05
69 2 -23.67583966 -23.690006 0.007083167888 0.0006146073806 0.0005897694465 8.07065747e-06 69 2 36.88495742 -23.67562381 -23.690006 0.007191094218 0.0005570824127 0.0005897694465 9.526352044e-06
70 2 -23.6777397 -23.690571 0.006415648131 0.0006207500925 0.0005939781141 7.401996527e-06 70 2 36.7928657 -23.67798232 -23.690571 0.00629434147 0.0005623157716 0.0005939781141 8.388724073e-06
71 2 -23.68270064 -23.690213 0.003756180649 0.001112284016 0.001084315452 1.142137177e-05 71 2 36.50844234 -23.6845524 -23.690213 0.002830300186 0.001007417856 0.001084315452 3.13901245e-05
72 2 -23.67870666 -23.690617 0.005955171449 0.0006250314539 0.0006024682564 6.623275772e-06 72 2 36.74419477 -23.67922697 -23.690617 0.005695015742 0.0005656413796 0.0006024682564 9.800558604e-06
73 2 -23.68231586 -23.689761 0.00372256923 0.0009095463313 0.0008790688255 1.222939687e-05 73 2 36.49448266 -23.68420852 -23.689761 0.002776239615 0.0008225588858 0.0008790688255 2.057348461e-05
74 2 -23.67673328 -23.69027 0.006768359835 7.188704983e-07 0 2.129270726e-07 74 2 36.83933705 -23.67673911 -23.69027 0.006765442668 6.51984476e-07 0 1.932645324e-07
75 2 -23.68164707 -23.690599 0.004475963334 0.0006376044826 0.0006137752031 6.574310078e-06 75 2 36.5709148 -23.68309624 -23.690599 0.003751378046 0.0005763054751 0.0006137752031 9.640531893e-06
76 2 -23.67997815 -23.69061 0.00531592353 9.698202031e-07 0 3.95870452e-07 76 2 36.67683082 -23.68088394 -23.69061 0.004863030461 8.763722169e-07 0 3.577227741e-07
77 2 -23.68008634 -23.690603 0.005258328411 0.0008923489326 0.0008590331775 1.256831367e-05 77 2 36.66115635 -23.68104805 -23.690603 0.004777472809 0.0008071491031 0.0008590331775 1.853779451e-05
78 2 -23.68488966 -23.687908 0.001509170978 0.0009340324028 0.0009010105438 1.204104822e-05 78 2 36.25583797 -23.68810086 -23.687908 9.643173451e-05 0.0008433322094 0.0009010105438 2.010525612e-05
79 2 -23.6795094 -23.690688 0.005589299031 0.0008890828456 0.0008470064935 1.419626566e-05 79 2 36.69315685 -23.68027964 -23.690688 0.005204178753 0.0008040458508 0.0008470064935 1.442630316e-05
80 2 -23.68316126 -23.689988 0.003413372454 0.0006451612224 0.0006194465272 7.422528505e-06 80 2 36.46769977 -23.68522986 -23.689988 0.002379071717 0.0005827976437 0.0006194465272 9.763878015e-06
81 2 -23.68321956 -23.689613 0.003196718897 0.000912899593 0.0008740732235 1.539555522e-05 81 2 36.44434113 -23.68541392 -23.689613 0.00209953858 0.0008243238033 0.0008740732235 1.862099135e-05
82 2 -23.68181374 -23.690678 0.004432127652 0.0006373963006 0.0006123757017 7.454253265e-06 82 2 36.57453003 -23.68327227 -23.690678 0.003702863528 0.0005762034709 0.0006123757017 9.833686501e-06
83 2 -23.68196226 -23.69017 0.004103870298 0.0009041773842 0.0008750051428 9.854119736e-06 83 2 36.54218785 -23.68361157 -23.69017 0.003279215566 0.0008176791029 0.0008750051428 1.921467316e-05
84 2 -23.68483517 -23.687892 0.001528413806 0.001142179928 0.001112070142 1.229243027e-05 84 2 36.26350252 -23.68802292 -23.687892 6.545993121e-05 0.001032253376 0.001112070142 3.258468659e-05
85 2 -23.68271169 -23.690132 0.003710155487 0.0009085291666 0.000868018433 1.49999647e-05 85 2 36.49725495 -23.68460293 -23.690132 0.002764534398 0.0008196684225 0.000868018433 1.73736591e-05
86 2 -23.68018066 -23.690843 0.005331170668 0.0006305009468 0.0006081134763 5.90881572e-06 86 2 36.66468316 -23.68110857 -23.690843 0.004867214139 0.0005702307406 0.0006081134763 9.414220345e-06
87 2 -23.67957976 -23.690598 0.005509118787 0.001259431767 0.001217674833 1.243374729e-05 87 2 36.69098146 -23.68038294 -23.690598 0.005107529327 0.001139059342 0.001217674833 2.06566425e-05
88 2 -23.67869549 -23.690656 0.005980257091 0.0006251939788 0.0006024765556 7.13023928e-06 88 2 36.7498524 -23.67919254 -23.690656 0.005731731866 0.0005658199144 0.0006024765556 1.012824587e-05
89 2 -23.67884961 -23.690254 0.005702197143 0.001084797449 0.001043496047 1.68662339e-05 89 2 36.72620595 -23.67950048 -23.690254 0.005376762214 0.0009822281627 0.001043496047 2.500732518e-05
90 2 -23.67961701 -23.690694 0.005538492834 0.0006273834422 0.0006010740387 8.134278748e-06 90 2 36.7046344 -23.68037755 -23.690694 0.00515822503 0.0005678245812 0.0006010740387 9.481625137e-06
91 2 -23.68202458 -23.690097 0.004036211359 0.0009041492449 0.0008730234819 1.169617364e-05 91 2 36.53215524 -23.6837194 -23.690097 0.00318880242 0.0008183268201 0.0008730234819 1.936710758e-05
92 2 -23.68476212 -23.688402 0.001819942156 0.0006575509652 0.000632180354 7.7469499e-06 92 2 36.28988463 -23.68778953 -23.688402 0.000306233365 0.0005932101303 0.000632180354 1.068318322e-05
93 2 -23.68425036 -23.688669 0.002209320265 0.001133553123 0.001092474256 1.677033392e-05 93 2 36.330155 -23.68704981 -23.688669 0.0008095957127 0.001023514967 0.001092474256 2.815195409e-05
94 2 -23.68017683 -23.690538 0.005180583191 0.0008923392716 0.0008610145179 1.053989885e-05 94 2 36.65451876 -23.68118381 -23.690538 0.004677093696 0.0008073441427 0.0008610145179 1.797964322e-05
95 2 -23.68290142 -23.689722 0.003410287964 0.0006465597037 0.0006251287867 7.275875006e-06 95 2 36.46623662 -23.68497164 -23.689722 0.002375180903 0.0005838510966 0.0006251287867 1.162407198e-05
96 2 -23.6789537 -23.690581 0.005813649829 7.452601432e-07 0 2.355432868e-07 96 2 36.73431174 -23.67954699 -23.690581 0.005517005254 6.747207861e-07 0 2.132659501e-07
97 2 -23.6840847 -23.688755 0.002335150427 0.0006519723076 0.0006251143895 8.25078808e-06 97 2 36.34544239 -23.68680631 -23.688755 0.0009743455055 0.0005885973278 0.0006251143895 1.022234556e-05
98 2 -23.67367881 -23.689312 0.007816596299 0.0008618264365 0.0008290597083 1.323477647e-05 98 2 36.9736935 -23.67299367 -23.689312 0.008159162687 0.0007819742447 0.0008290597083 1.76069415e-05
99 2 -23.68489152 -23.687388 0.001248238956 0.001145929445 0.001120237475 1.049029355e-05 99 2 36.24487417 -23.68822174 -23.687388 0.0004168686754 0.001036416473 0.001120237475 3.421810783e-05
100 2 -23.68174648 -23.690664 0.004458761579 0.0006367386055 0.0006109402589 6.270984336e-06 100 2 36.57555586 -23.68319244 -23.690664 0.003735779019 0.0005756998982 0.0006109402589 8.460885317e-06
101 2 -23.67450636 -23.68941 0.007451817634 0.0006119997091 0.0005883553348 7.715800125e-06 101 2 36.94151938 -23.67402837 -23.68941 0.00769081595 0.0005547944898 0.0005883553348 9.667605875e-06
102 2 -23.68321442 -23.690035 0.003410290658 0.0009128748923 0.0008810062429 1.106310227e-05 102 2 36.45547212 -23.68530561 -23.690035 0.002364692981 0.0008249402484 0.0008810062429 1.906781709e-05
103 2 -23.67584952 -23.690015 0.007082738579 0.0008706222251 0.0008450195264 9.898495893e-06 103 2 36.88496132 -23.67563424 -23.690015 0.007190382353 0.000790172518 0.0008450195264 1.940915801e-05
104 2 -23.67856154 -23.690752 0.006095232174 0.0006245583967 0.0005996415596 7.033875201e-06 104 2 36.76103389 -23.67899294 -23.690752 0.005879529841 0.0005653529749 0.0005996415596 9.061380987e-06
105 2 -23.68297614 -23.689825 0.00342442945 0.0009134966073 0.0008800215906 1.147892484e-05 105 2 36.45404349 -23.68506744 -23.689825 0.002378779626 0.0008251854421 0.0008800215906 1.852267093e-05
106 2 -23.67876135 -23.690562 0.00590032283 0.0008849512172 0.0008560011682 1.005528708e-05 106 2 36.74654739 -23.67929575 -23.690562 0.005633127253 0.000801763107 0.0008560011682 1.842443236e-05
107 2 -23.67874342 -23.690622 0.005939288687 0.0008835043772 0.0008390017878 1.530603189e-05 107 2 36.74084732 -23.67927675 -23.690622 0.005672626415 0.0007986783077 0.0008390017878 1.383930455e-05
108 2 -23.6843441 -23.688764 0.002209950672 0.0009250850126 0.0008910185183 1.254407066e-05 108 2 36.33025646 -23.68714468 -23.688764 0.0008096596348 0.0008354959994 0.0008910185183 1.950545073e-05
109 2 -23.68340608 -23.690011 0.003302460748 0.0006464901241 0.0006194287691 7.216590251e-06 109 2 36.44122368 -23.68556667 -23.690011 0.002222166915 0.0005839138329 0.0006194287691 9.095263256e-06
110 2 -23.68476306 -23.687696 0.001466471271 0.001143422035 0.001087589996 2.279977174e-05 110 2 36.25348342 -23.68799518 -23.687696 0.0001495917205 0.001029561919 0.001087589996 2.368346819e-05
111 2 -23.67977853 -23.691019 0.005620235289 0.000888876189 0.0008540035129 1.1779733e-05 111 2 36.69693588 -23.68052902 -23.691019 0.005244990763 0.0008045111684 0.0008540035129 1.660792245e-05
112 2 -23.68440001 -23.689025 0.002312496017 6.723949094e-07 0 2.648676661e-07 112 2 36.3425194 -23.68713615 -23.689025 0.0009444242204 6.048393422e-07 0 2.391864739e-07
113 2 -23.68208689 -23.689952 0.003932553163 7.386833996e-07 0 2.88150653e-07 113 2 36.51656499 -23.68385666 -23.689952 0.003047669619 6.637963301e-07 0 2.603475835e-07
114 2 -23.67935439 -23.69061 0.005627806504 0.0008872685213 0.0008580011655 1.019979918e-05 114 2 36.71447816 -23.68006157 -23.69061 0.005274216197 0.0008035446124 0.0008580011655 1.851139775e-05
115 2 -23.68099138 -23.690595 0.004801812376 0.0008956193373 0.0008680069124 9.843191998e-06 115 2 36.62519495 -23.68220128 -23.690595 0.004196860391 0.0008113491541 0.0008680069124 1.944419979e-05
116 2 -23.67743565 -23.690231 0.006397673953 0.0006194343635 0.0005925892338 8.542917156e-06 116 2 36.80154127 -23.67766382 -23.690231 0.006283590712 0.0005612910408 0.0005925892338 9.235122707e-06
117 2 -23.67809541 -23.690469 0.006186797077 0.0008802359765 0.0008500294113 1.182654414e-05 117 2 36.77742539 -23.67845523 -23.690469 0.006006884644 0.0007980880228 0.0008500294113 1.88002833e-05
118 2 -23.68279142 -23.690482 0.003845288647 0.0009078436148 0.0008740102974 1.225600095e-05 118 2 36.50183296 -23.68462479 -23.690482 0.002928604258 0.0008206653147 0.0008740102974 1.862862483e-05
119 2 -23.67443144 -23.689613 0.007590778783 0.0008650318724 0.0008320192305 1.23538989e-05 119 2 36.93568763 -23.67391526 -23.689613 0.007848867984 0.0007836859568 0.0008320192305 1.723468539e-05
120 2 -23.68501591 -23.687426 0.001205043669 0.001145633567 0.00109577735 2.03694619e-05 120 2 36.23289183 -23.68838681 -23.687426 0.0004804048231 0.001032041797 0.00109577735 2.600453853e-05
121 2 -23.68302307 -23.689562 0.003269464306 0.0006474095532 0.0006265237426 6.532536015e-06 121 2 36.44295904 -23.68519521 -23.689562 0.002183395162 0.0005844757167 0.0006265237426 1.128889659e-05
122 2 -23.68134549 -23.6904 0.004527256823 4.272990756e-07 0 1.732352808e-07 122 2 36.59751671 -23.68271637 -23.6904 0.003841815485 3.610825174e-07 0 1.4665868e-07
123 2 -23.67843015 -23.690561 0.006065426647 0.0006235069318 0.0005982273815 6.816496585e-06 123 2 36.76766724 -23.67885647 -23.690561 0.005852264977 0.0005645533896 0.0005982273815 8.625051998e-06
124 2 -23.67292129 -23.689107 0.00809285397 0.0008589766346 0.0008180073349 1.439377155e-05 124 2 37.00025894 -23.67207453 -23.689107 0.008516233835 0.0007781106616 0.0008180073349 1.390580399e-05
125 2 -23.68123551 -23.690145 0.004454742608 0.0009009679944 0.0008740766557 1.132072203e-05 125 2 36.58722353 -23.68265657 -23.690145 0.00374421628 0.0008159137665 0.0008740766557 2.136045675e-05
126 2 -23.67777646 -23.690482 0.006352769316 0.0006215821083 0.0005939983165 8.362048689e-06 126 2 36.79405605 -23.67803714 -23.690482 0.006222430293 0.0005630702013 0.0005939983165 8.85354297e-06
127 2 -23.68318209 -23.689864 0.003340952886 0.0009142894487 0.0008860124153 1.044271435e-05 127 2 36.45320348 -23.68530353 -23.689864 0.002280236365 0.0008267100988 0.0008860124153 2.061923922e-05
# Elastic_FCC.xyz # Elastic_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
128 4 -46.449456 -46.437936 0.002880000611 0.0007088173441 0.001265949446 0.0001573706237 128 4 74.14589882 -46.45131085 -46.437936 0.003343711499 0.0008256456522 0.001265949446 0.0001479290162
129 4 -46.45317307 -46.438504 0.003667267825 0.0007210982328 0.001492549497 0.0002032393675 129 4 74.26852111 -46.45483689 -46.438504 0.00408322283 0.0008748833702 0.001492549497 0.0001669960806
130 4 -46.44686167 -46.436378 0.002620918523 0.0004870837365 0.000810592376 0.0001107544174 130 4 74.05957274 -46.44875622 -46.436378 0.00309455485 0.0005424811735 0.000810592376 0.0001015808542
131 4 -46.45357979 -46.441551 0.003007196305 0.0008634182131 0.001283675193 0.0001231453909 131 4 74.30647158 -46.45520791 -46.441551 0.003414228451 0.001024641 0.001283675193 8.610021967e-05
132 4 -46.42409677 -46.416957 0.001784942313 0.0007481922079 0.001186145859 0.0001205918882 132 4 73.40902276 -46.4265266 -46.416957 0.002392400067 0.0008639837782 0.001186145859 9.385948781e-05
133 4 -46.45078882 -46.440495 0.002573455911 0.0007289008721 0.001212440514 0.0001119490174 133 4 74.1804881 -46.45258342 -46.440495 0.003022104862 0.0008837693055 0.001212440514 7.54705377e-05
134 4 -46.4501363 -46.437972 0.003041076136 0.001116532125 0.002358226452 0.0003166808771 134 4 74.17596744 -46.45191353 -46.437972 0.00348538317 0.001290912634 0.002358226452 0.0002715207448
135 4 -46.46241981 -46.44586 0.004139951294 0.001077737689 0.002033949852 0.0002702964015 135 4 74.73528136 -46.46363987 -46.44586 0.004444967559 0.001259032014 0.002033949852 0.0002223899959
136 4 -46.44743429 -46.435744 0.002922571394 0.0008383971706 0.001690849491 0.0002711013554 136 4 74.0787509 -46.44925412 -46.435744 0.003377531217 0.0009337469328 0.001690849491 0.0002527015084
137 4 -46.45237555 -46.438209 0.003541637787 0.0007039962535 0.001160049999 0.0001096430557 137 4 74.24609528 -46.45412062 -46.438209 0.003977905441 0.0008183472184 0.001160049999 8.303212282e-05
138 4 -46.43645451 -46.42629 0.002541127472 0.0004839683449 0.0005297018029 1.480491546e-05 138 4 73.73005434 -46.43863377 -46.42629 0.003085943173 0.0005398665308 0.0005297018029 9.433755819e-06
139 4 -46.45466199 -46.443301 0.002840247268 0.0008590849412 0.001818421568 0.0002395191538 139 4 74.33993289 -46.45634184 -46.443301 0.003260209859 0.001019667847 0.001818421568 0.0002031714008
140 4 -46.4513559 -46.439002 0.003088474484 0.000980675092 0.001416973535 0.0001142710898 140 4 74.20715045 -46.45310823 -46.439002 0.003526557791 0.001120917878 0.001416973535 8.385490094e-05
141 4 -46.44224357 -46.432438 0.00245139227 0.0008958100898 0.001010469198 5.862303988e-05 141 4 73.89686848 -46.44426829 -46.432438 0.002957572572 0.001055104669 0.001010469198 5.761635655e-05
142 4 -46.41846428 -46.412654 0.001452568802 0.001104791425 0.001801959766 0.0001900084105 142 4 73.27773838 -46.42097352 -46.412654 0.002079881174 0.001288759108 0.001801959766 0.0001651013922
143 4 -46.45594552 -46.443231 0.003178629143 0.0006959928784 0.001691590967 0.0002104366356 143 4 74.40027968 -46.45756841 -46.443231 0.003584351835 0.0008139750432 0.001691590967 0.0002012572515
144 4 -46.44141177 -46.431513 0.00247469212 0.001149659372 0.001680544852 0.0001329997121 144 4 73.86123747 -46.44349423 -46.431513 0.002995306686 0.00134586635 0.001680544852 8.973225319e-05
145 4 -46.44458344 -46.435608 0.00224385943 0.000711021509 0.0009593039143 5.831382606e-05 145 4 73.96908649 -46.4465827 -46.435608 0.002743674619 0.0008335711035 0.0009593039143 3.003885348e-05
146 4 -46.45129649 -46.437689 0.003401871689 0.0007271142738 0.001217708504 0.0001414871092 146 4 74.18717232 -46.45311791 -46.437689 0.003857228017 0.0008866862425 0.001217708504 0.0001038986229
147 4 -46.43755262 -46.428447 0.002276404472 0.0008708378565 0.002060081552 0.0003082033743 147 4 73.76897316 -46.43964365 -46.428447 0.002799161691 0.0009977338004 0.002060081552 0.0002905770514
148 4 -46.44295113 -46.432255 0.00267403188 0.0005315813764 0.0006274201144 5.596270268e-05 148 4 73.9161373 -46.44497446 -46.432255 0.003179865353 0.0006398887096 0.0006274201144 6.119155431e-05
149 4 -46.45482154 -46.442315 0.003126635324 0.0008653689406 0.002424436842 0.0004107290683 149 4 74.36502962 -46.45637695 -46.442315 0.003515486518 0.001024758209 0.002424436842 0.0003681838217
150 4 -46.44918467 -46.436613 0.003142918309 0.0004839663128 0.0005321240457 3.890880543e-05 150 4 74.11860796 -46.45104156 -46.436613 0.003607139707 0.000542307804 0.0005321240457 4.066198978e-05
151 4 -46.44094809 -46.430825 0.002530772174 0.0007559646277 0.001399987143 0.0001669802678 151 4 73.86741001 -46.44297515 -46.430825 0.003037538607 0.0009095490857 0.001399987143 0.000130785128
152 4 -46.44335614 -46.43312 0.002559035587 0.0004859700309 0.0007272771136 6.315695513e-05 152 4 73.94132612 -46.44533403 -46.43312 0.003053507676 0.0005400988424 0.0007272771136 5.413031343e-05
153 4 -46.44518607 -46.434347 0.002709767129 0.0007148497795 0.001284451634 0.0001580665901 153 4 73.9811119 -46.44719039 -46.434347 0.003210848405 0.0008341122771 0.001284451634 0.0001304096221
154 4 -46.43969219 -46.430573 0.002279798333 0.00072875179 0.001315746176 0.000142372977 154 4 73.82698041 -46.441812 -46.430573 0.002809749316 0.0008428066075 0.001315746176 0.0001159814943
155 4 -46.46201856 -46.445665 0.004088390852 0.0008369246217 0.00180789159 0.0002715757049 155 4 74.70690467 -46.4633092 -46.445665 0.004411050207 0.001032736499 0.00180789159 0.0002150498129
156 4 -46.44738266 -46.435898 0.002871166201 0.0007118215897 0.001869300939 0.0002650888178 156 4 74.08446722 -46.44922009 -46.435898 0.003330522688 0.0008301151804 0.001869300939 0.0002469789922
157 4 -46.45279209 -46.442107 0.002671271631 0.0005099355574 0.0006020930161 3.155335447e-05 157 4 74.25274774 -46.45452028 -46.442107 0.003103319043 0.0006221716513 0.0006020930161 2.151286804e-05
158 4 -46.44687446 -46.434432 0.003110615714 0.0008364031703 0.001092982159 9.484366005e-05 158 4 74.05043726 -46.44881316 -46.434432 0.003595289303 0.0009353943426 0.001092982159 7.589096221e-05
159 4 -46.45033825 -46.436308 0.003507562522 0.0009954281391 0.001839150891 0.0002479613631 159 4 74.16653794 -46.45216046 -46.436308 0.003963116012 0.001165997488 0.001839150891 0.0002017849653
160 4 -46.43248168 -46.423938 0.002135919949 0.0007772193879 0.001463463016 0.0001986681069 160 4 73.62293094 -46.43471139 -46.423938 0.002693346975 0.0009282950076 0.001463463016 0.0001806433153
161 4 -46.43702199 -46.428115 0.002226747981 0.0005418219957 0.0008584497656 9.283863381e-05 161 4 73.74948122 -46.43915587 -46.428115 0.002760218433 0.000645515606 0.0008584497656 7.555218569e-05
162 4 -46.43553597 -46.4269 0.002158992752 0.001008467413 0.001845719914 0.00024455962 162 4 73.70731572 -46.4377108 -46.4269 0.002702698795 0.001146432571 0.001845719914 0.0002177014657
163 4 -46.43191737 -46.421142 0.00269384137 0.0009169914298 0.001309150106 9.335100097e-05 163 4 73.59054722 -46.43424497 -46.421142 0.003275743402 0.001070285015 0.001309150106 6.310130391e-05
164 4 -46.44107961 -46.432233 0.002211651338 0.0006944670911 0.0007253109678 2.446203898e-05 164 4 73.85798892 -46.44313986 -46.432233 0.002726715023 0.000770442732 0.0007253109678 2.477634456e-05
165 4 -46.44097784 -46.429408 0.002892459649 0.0007189999753 0.001068327665 9.331287519e-05 165 4 73.86179419 -46.44300648 -46.429408 0.003399620631 0.000833457346 0.001068327665 6.682329804e-05
166 4 -46.45970672 -46.445145 0.003640430606 0.0008323398895 0.001776038288 0.000241778013 166 4 74.58468636 -46.46113881 -46.445145 0.003998452755 0.0009654561253 0.001776038288 0.0002133574173
167 4 -46.44583143 -46.435868 0.002490857628 0.001007239475 0.002376074704 0.0003893124404 167 4 74.02247797 -46.44776713 -46.435868 0.002974783408 0.001172308278 0.002376074704 0.0003537233362
168 4 -46.4515773 -46.439663 0.002978574612 0.0004764710524 0.001119403413 0.0001156692402 168 4 74.20501804 -46.45335725 -46.439663 0.003423562793 0.0005357335948 0.001119403413 0.0001057861048
169 4 -46.43612447 -46.428287 0.00195936642 0.001036891264 0.001277000392 6.942055774e-05 169 4 73.72492498 -46.43827692 -46.428287 0.00249748019 0.001199172287 0.001277000392 3.442241395e-05
170 4 -46.4323966 -46.424584 0.001953149801 0.0005497544117 0.0008032957114 5.852281957e-05 170 4 73.62492908 -46.43462391 -46.424584 0.002509976491 0.0006543042024 0.0008032957114 4.113076772e-05
171 4 -46.41884421 -46.413045 0.001449803236 0.0009011718881 0.001248322074 7.333380516e-05 171 4 73.28647 -46.42133993 -46.413045 0.002073732867 0.001025290654 0.001248322074 5.004201967e-05
172 4 -46.44596985 -46.436994 0.002243961387 0.0008480487041 0.001331939188 0.0001689650386 172 4 74.01119894 -46.44792434 -46.436994 0.002732584481 0.0009408903639 0.001331939188 0.0001513955587
173 4 -46.45736434 -46.443604 0.003440085706 0.0007046835731 0.001177046303 0.000122309487 173 4 74.45838911 -46.45890245 -46.443604 0.003824612242 0.0008652237342 0.001177046303 0.0001036876632
174 4 -46.4531541 -46.439718 0.003359024693 6.718665563e-07 0 1.784212677e-07 174 4 74.29439096 -46.45481655 -46.439718 0.003774637959 7.937739607e-07 0 2.16900779e-07
175 4 -46.44922127 -46.435527 0.003423566396 0.0008698447035 0.0009338393866 5.635428662e-05 175 4 74.12581885 -46.45104078 -46.435527 0.003878446058 0.001033999404 0.0009338393866 5.850821011e-05
176 4 -46.44518705 -46.434787 0.002600012526 0.0008890985417 0.00117329195 6.906839261e-05 176 4 73.97170625 -46.44716581 -46.434787 0.003094701764 0.001051431266 0.00117329195 5.01747675e-05
177 4 -46.44789017 -46.434929 0.00324029173 0.001006522874 0.001349491756 8.807224523e-05 177 4 74.0799757 -46.44974298 -46.434929 0.003703495842 0.001176626647 0.001349491756 5.454636617e-05
178 4 -46.43673847 -46.426499 0.002559868692 0.0009134543992 0.001248937949 9.133606536e-05 178 4 73.74433679 -46.4388625 -46.426499 0.003090875895 0.001072266841 0.001248937949 5.553437534e-05
179 4 -46.44932495 -46.437025 0.003074986544 0.0006805240432 0.000938418883 7.446008431e-05 179 4 74.14770713 -46.45110145 -46.437025 0.003519111637 0.0007601929639 0.000938418883 6.871857646e-05
180 4 -46.43885209 -46.428937 0.002478772296 0.0009031344997 0.001286352984 0.0001081690229 180 4 73.80957625 -46.44091488 -46.428937 0.002994470545 0.001060607401 0.001286352984 7.2762261e-05
181 4 -46.45413306 -46.442516 0.002904263993 0.000506604563 0.00094855469 0.0001414866709 181 4 74.32407369 -46.45577946 -46.442516 0.003315864517 0.0006130126198 0.00094855469 0.0001237589752
182 4 -46.44060244 -46.428736 0.002966609134 0.0007579010233 0.001424321593 0.0001681832084 182 4 73.84764949 -46.44267435 -46.428736 0.003484586658 0.0009114051058 0.001424321593 0.0001319991106
183 4 -46.44430426 -46.433359 0.002736316202 0.0008950557387 0.001276381604 0.0001027241271 183 4 73.97111028 -46.44621408 -46.433359 0.003213769843 0.001054983475 0.001276381604 6.67936474e-05
184 4 -46.45260002 -46.438799 0.00345025532 0.0006868717473 0.0008186940821 3.675916237e-05 184 4 74.25298337 -46.45429983 -46.438799 0.003875207653 0.0007658804804 0.0008186940821 3.523360132e-05
185 4 -46.45478935 -46.441993 0.003199088629 0.000703010985 0.001887735151 0.0002666518851 185 4 74.36513571 -46.45635746 -46.441993 0.003591113969 0.0008209061886 0.001887735151 0.0002392272687
186 4 -46.44949137 -46.439033 0.002614591408 0.0006795560995 0.000821568013 5.214373405e-05 186 4 74.14572274 -46.45131062 -46.439033 0.003069403991 0.0007583547125 0.000821568013 4.304382184e-05
187 4 -46.44856954 -46.436967 0.002900635979 0.000860448627 0.001482323514 0.0001802503616 187 4 74.11964094 -46.45043541 -46.436967 0.003367101873 0.0009904274689 0.001482323514 0.0001528507492
188 4 -46.43759968 -46.427245 0.00258867094 0.0008795521813 0.001293885621 0.0001012099865 188 4 73.76706483 -46.43970043 -46.427245 0.003113856835 0.001008693047 0.001293885621 8.257978381e-05
189 4 -46.45133388 -46.438046 0.003321969731 0.0009940752633 0.001627288542 0.000174152867 189 4 74.21830016 -46.45309069 -46.438046 0.003761172827 0.00116354854 0.001627288542 0.0001286952583
190 4 -46.42813695 -46.420083 0.002013486722 0.001161998446 0.002395244873 0.0003650969018 190 4 73.51075683 -46.43047578 -46.420083 0.00259819585 0.001334826131 0.002395244873 0.0003392003683
191 4 -46.46060362 -46.445247 0.003839154837 0.0006909751141 0.001219330964 0.0001271217748 191 4 74.62704502 -46.46197961 -46.445247 0.004183151461 0.0008490345633 0.001219330964 8.984638543e-05
192 4 -46.45903895 -46.446044 0.003248736964 0.0006847065621 0.001305329077 0.0001398957152 192 4 74.54172989 -46.46048301 -46.446044 0.003609751612 0.0008018136666 0.001305329077 0.0001126246298
193 4 -46.44724817 -46.434472 0.003194042613 0.0007061519125 0.0008323340675 6.681050285e-05 193 4 74.05152275 -46.4491333 -46.434472 0.003665324806 0.0008288481706 0.0008323340675 5.797426995e-05
194 4 -46.45649776 -46.44458 0.002979439009 0.0004998748498 0.0009744208536 8.547729233e-05 194 4 74.415732 -46.45806324 -46.44458 0.003370810956 0.0006130004847 0.0009744208536 6.665443495e-05
195 4 -46.45403889 -46.441776 0.003065721535 0.0008652918641 0.001339231869 0.0001389938291 195 4 74.3298536 -46.45570744 -46.441776 0.003482860273 0.001025864906 0.001339231869 0.0001026437813
196 4 -46.44933689 -46.436389 0.003236972034 0.001007551549 0.001786741168 0.0002029508895 196 4 74.14951222 -46.45110489 -46.436389 0.003678973505 0.00117751644 0.001786741168 0.0001566147507
197 4 -46.459873 -46.446416 0.00336425035 0.0004914989987 0.0006588778339 6.549510811e-05 197 4 74.58621137 -46.46129862 -46.446416 0.003720653765 0.0006013410942 0.0006588778339 4.718503395e-05
198 4 -46.46569473 -46.449806 0.003972183676 0.000943305002 0.002135055034 0.0003137851731 198 4 74.93791818 -46.4668018 -46.449806 0.00424894914 0.001116402603 0.002135055034 0.0002754987197
199 4 -46.43467991 -46.427189 0.00187272638 0.0007726175275 0.001050788276 7.135568315e-05 199 4 73.6789527 -46.43686767 -46.427189 0.002419668309 0.0009202462101 0.001050788276 3.832148023e-05
200 4 -46.43621938 -46.427857 0.002090594118 0.0007686546978 0.001487666629 0.0001823668299 200 4 73.72666848 -46.43838466 -46.427857 0.002631914057 0.000916598926 0.001487666629 0.0001502215435
201 4 -46.45576365 -46.44004 0.003930912967 0.0005030079851 0.000757202747 5.770676907e-05 201 4 74.38554824 -46.45730744 -46.44004 0.004316858848 0.0006147077527 0.000757202747 3.915525299e-05
202 4 -46.4483913 -46.437214 0.002794325435 0.0007102028538 0.001505586265 0.000179529909 202 4 74.09024992 -46.45025082 -46.437214 0.003259204623 0.000823112906 0.001505586265 0.0001621804833
203 4 -46.43168209 -46.422628 0.002263521917 0.0007374332623 0.001601713458 0.0002609325883 203 4 73.60013606 -46.433967 -46.422628 0.002834751082 0.0008553071125 0.001601713458 0.000233732131
204 4 -46.45732644 -46.443535 0.00344786022 0.0009811025521 0.001590304373 0.0001690672254 204 4 74.47827164 -46.45874769 -46.443535 0.00380317303 0.001150644704 0.001590304373 0.0001312331936
205 4 -46.45144079 -46.439922 0.002879696366 0.0008698700101 0.001530493385 0.0001528171002 205 4 74.22558703 -46.45321801 -46.439922 0.003324001852 0.001030412749 0.001530493385 0.0001208769886
206 4 -46.44960522 -46.437675 0.002982555611 0.00112440729 0.002440246094 0.0004061057502 206 4 74.15291432 -46.45141844 -46.437675 0.003435859942 0.001323881965 0.002440246094 0.000351523644
207 4 -46.45839808 -46.445558 0.003210018941 0.0006780842253 0.00113392416 0.0001196075532 207 4 74.50981896 -46.45987915 -46.445558 0.003580287949 0.0008016583891 0.00113392416 9.087921501e-05
208 4 -46.45130112 -46.439106 0.003048781046 0.0009934671927 0.001830731002 0.000245168776 208 4 74.19814905 -46.45309789 -46.439106 0.003497972207 0.001159709328 0.001830731002 0.0002004464824
209 4 -46.45826105 -46.443073 0.003797013279 0.0004759445984 0.0005766870902 2.863834812e-05 209 4 74.51720313 -46.45968457 -46.443073 0.004152892794 0.0005327789399 0.0005766870902 1.911195046e-05
210 4 -46.4536082 -46.4397 0.003477049491 0.0006982622456 0.001204174406 0.0001154782847 210 4 74.29924604 -46.45529068 -46.4397 0.003897668752 0.0008203202583 0.001204174406 8.707934353e-05
211 4 -46.44819434 -46.436374 0.002955085327 0.0007363684621 0.001461656594 0.0002277550157 211 4 74.09425795 -46.45003681 -46.436374 0.003415701915 0.0008937039936 0.001461656594 0.0001906816478
212 4 -46.43668282 -46.426557 0.00253145389 0.0007326220467 0.001359624213 0.0001251472548 212 4 73.73717548 -46.43887502 -46.426557 0.003079503833 0.0008473432438 0.001359624213 0.0001078467328
213 4 -46.44485583 -46.434009 0.002711707903 0.000870647096 0.001391131194 0.0001541542453 213 4 73.99983876 -46.44675075 -46.434009 0.00318543858 0.0009993979373 0.001391131194 0.000126864771
214 4 -46.44732696 -46.436262 0.002766239028 0.001116549362 0.002503347159 0.0003211377445 214 4 74.07916779 -46.4492147 -46.436262 0.003238173905 0.0012911873 0.002503347159 0.0002946038716
215 4 -46.44414241 -46.434505 0.002409352177 0.0008685662223 0.001041637173 4.942106462e-05 215 4 73.94744484 -46.44611874 -46.434505 0.0029034362 0.0009930846846 0.001041637173 1.44560542e-05
216 4 -46.45095913 -46.438768 0.003047783488 0.0008482298138 0.001098285027 8.657909629e-05 216 4 74.2021224 -46.45267242 -46.438768 0.003476105557 0.0009790325482 0.001098285027 5.900684038e-05
217 4 -46.45111242 -46.440254 0.002714605501 0.0004892442432 0.0006069892915 5.824568303e-05 217 4 74.20389194 -46.45287404 -46.440254 0.003155011025 0.0005440222637 0.0006069892915 4.917760806e-05
218 4 -46.43463407 -46.42286 0.002943517186 0.0004976409931 0.0007365242698 7.564906264e-05 218 4 73.66782167 -46.43682196 -46.42286 0.003490490208 0.0005521691303 0.0007365242698 6.657586723e-05
219 4 -46.42611144 -46.418078 0.002008360417 0.001053243552 0.002028412187 0.0002473380313 219 4 73.46349993 -46.42843317 -46.418078 0.002588792975 0.001215695483 0.002028412187 0.0002117690174
220 4 -46.45344976 -46.440513 0.003234189608 0.0007024129954 0.001158189967 0.0001371889048 220 4 74.30307454 -46.45509879 -46.440513 0.003646448628 0.0008205757569 0.001158189967 0.000110036346
221 4 -46.41584187 -46.409824 0.001504467167 0.0007558580012 0.001759573812 0.0002386003087 221 4 73.21819832 -46.41838058 -46.409824 0.002139145869 0.000869266353 0.001759573812 0.0002125030952
222 4 -46.45494987 -46.440329 0.003655216631 0.0005034620022 0.0009534044263 0.0001064495091 222 4 74.35772636 -46.45658501 -46.440329 0.004064003047 0.0006179175264 0.0009534044263 8.737057714e-05
223 4 -46.45000759 -46.43773 0.003069396495 0.0006831478015 0.000926180328 7.390298375e-05 223 4 74.17615527 -46.45177345 -46.43773 0.003510862689 0.0007631781991 0.000926180328 6.446679043e-05
224 4 -46.42538863 -46.416525 0.002215907169 0.0005605993692 0.0007573664899 5.946405938e-05 224 4 73.43860935 -46.4277585 -46.416525 0.002808375906 0.0006623119965 0.0007573664899 4.251239635e-05
225 4 -46.45386072 -46.440293 0.003391930454 0.0006980795454 0.0007725386722 1.86450807e-05 225 4 74.31356506 -46.45553467 -46.440293 0.003810416894 0.0008201864367 0.0007725386722 1.244767351e-05
226 4 -46.4527969 -46.43839 0.003601726069 0.0005103417187 0.0005612022808 1.656002337e-05 226 4 74.25452523 -46.45450406 -46.43839 0.004028515986 0.000624431309 0.0005612022808 1.898088401e-05
227 4 -46.45374294 -46.438916 0.00370673382 0.0006956794369 0.001650878554 0.0002154167998 227 4 74.27331932 -46.45546024 -46.438916 0.004136060657 0.0008098609869 0.001650878554 0.0001889274693
# GSF_110.xyz # GSF_110.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
228 24 -278.7403996 -279.068761 0.01368172569 2.282668754 1.756353161 0.0474563559 228 24 828.0362386 -278.8410589 -279.068761 0.009487586046 2.726148177 1.756353161 0.06344241374
229 24 -279.902595 -279.784296 0.004929123882 0.9479314831 0.9057668891 0.02403120774 229 24 828.0362386 -280.0438878 -279.784296 0.01081632552 1.025836691 0.9057668891 0.03431923408
230 24 -279.9942014 -279.901657 0.003856015841 0.2795933118 0.001565946359 0.01120665859 230 24 828.0362386 -280.1389453 -279.901657 0.009887011104 0.3820870056 0.001565946359 0.02063932212
231 24 -279.6335344 -279.584238 0.002054016531 1.573004204 1.035572248 0.05514377891 231 24 828.0362386 -279.7578636 -279.584238 0.007234400289 1.646483877 1.035572248 0.06317254006
232 24 -279.9025974 -279.784283 0.004929767703 0.947921084 0.9056396189 0.02406018404 232 24 828.0362386 -280.0438905 -279.784283 0.01081698125 1.025825697 0.9056396189 0.03433377902
233 24 -279.1817177 -279.302158 0.005018345952 2.388096516 1.771965137 0.06275542538 233 24 828.0362386 -279.2779929 -279.302158 0.001006879708 2.597392642 1.771965137 0.07498219236
234 24 -279.5900705 -279.55564 0.001434605813 1.950503627 1.405626506 0.05370441115 234 24 828.0362386 -279.7119341 -279.55564 0.006512252548 2.085996302 1.405626506 0.06414553539
235 24 -279.0106063 -279.246939 0.00984719392 1.577003357 0.4813964151 0.08190583543 235 24 828.0362386 -279.1342144 -279.246939 0.004696857796 1.7145726 0.4813964151 0.09091186796
236 24 -279.1817217 -279.302157 0.005018138375 2.388094324 1.771953347 0.06275588675 236 24 828.0362386 -279.2779974 -279.302157 0.001006650079 2.59739139 1.771953347 0.07498197018
237 24 -279.0107548 -279.246935 0.009840841347 1.576191869 0.4809484798 0.0819682416 237 24 828.0362386 -279.1342234 -279.246935 0.004696316576 1.714140427 0.4809484798 0.09087969403
238 24 -279.9941671 -279.896025 0.004089255845 0.2809227604 0.01060549839 0.01118927817 238 24 828.0362386 -280.1388645 -279.896025 0.01011831143 0.3833172699 0.01060549839 0.0205724723
239 24 -279.6337951 -279.584237 0.002064919631 1.571895405 1.035836121 0.05510997377 239 24 828.0362386 -279.7581378 -279.584237 0.007245866604 1.645952103 1.035836121 0.06318595533
240 24 -278.8616595 -279.124427 0.0109486445 2.383512182 1.809545887 0.06232801199 240 24 828.0362386 -278.9562357 -279.124427 0.007007972259 2.699607205 1.809545887 0.07438804482
241 24 -279.2927133 -279.379366 0.003610531084 1.779238829 0.8982692706 0.07658702105 241 24 828.0362386 -279.4052861 -279.379366 0.00108000439 1.874556392 0.8982692706 0.08646596743
242 24 -279.292656 -279.37937 0.003613082676 1.779203263 0.898081355 0.0765940488 242 24 828.0362386 -279.4051598 -279.37937 0.001074574944 1.874858028 0.898081355 0.08649971418
243 24 -278.8616573 -279.124427 0.01094873842 2.383511745 1.809523374 0.06232387507 243 24 828.0362386 -278.9562334 -279.124427 0.007008065732 2.699608673 1.809523374 0.07438947193
244 24 -279.9942014 -279.901657 0.003856015842 0.27959331 0.001570374478 0.01120603916 244 24 828.0362386 -280.1389453 -279.901657 0.009887011104 0.382087008 0.001570374478 0.02063718463
245 24 -279.9072278 -279.79264 0.004774491325 0.8361247356 0.8392614852 0.02418251879 245 24 828.0362386 -280.0482205 -279.79264 0.01064918897 0.9069086057 0.8392614852 0.03243659951
246 24 -279.9941671 -279.896025 0.004089255843 0.2809227622 0.01060243293 0.01118973247 246 24 828.0362386 -280.1388645 -279.896025 0.01011831143 0.3833172675 0.01060243293 0.02057250032
247 24 -278.8973689 -279.206496 0.01288029691 1.390234609 0.005326518563 0.06648378416 247 24 828.0362386 -279.0366628 -279.206496 0.007076382361 1.638514407 0.005326518563 0.08048168704
248 24 -279.590075 -279.55564 0.001434791018 1.950495712 1.4056319 0.05370353355 248 24 828.0362386 -279.7119391 -279.55564 0.006512460902 2.085987992 1.4056319 0.06414586851
249 24 -279.9072386 -279.79264 0.004774943229 0.8361385582 0.8392625708 0.02418484015 249 24 828.0362386 -280.0482407 -279.79264 0.01065002958 0.9067922986 0.8392625708 0.03242814224
# GSF_112.xyz # GSF_112.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
250 30 -345.1428414 -345.175835 0.001099787279 2.717783384 1.057395322 0.1393371019 250 30 1075.650827 -344.9605863 -345.175835 0.007174958242 2.758670703 1.057395322 0.1516335449
251 30 -346.8213325 -346.361714 0.01532061701 1.6320981 1.220284939 0.1010819808 251 30 1075.650827 -346.7372372 -346.361714 0.01251744041 1.674795336 1.220284939 0.09596889278
252 30 -346.3061373 -345.795524 0.01702044399 2.435031121 2.112860875 0.1171529224 252 30 1075.650827 -346.1686186 -345.795524 0.0124364868 2.551456187 2.112860875 0.1075528655
253 30 -344.8834516 -345.164602 0.009371679668 3.314987489 1.765832199 0.1576958872 253 30 1075.650827 -344.7305027 -345.164602 0.01446997708 3.364761651 1.765832199 0.1653996104
254 30 -346.9668291 -346.593523 0.01244353764 1.327935537 0.01148867129 0.08670065177 254 30 1075.650827 -346.8954513 -346.593523 0.01006427628 1.339499001 0.01148867129 0.08728299447
255 30 -346.7938009 -346.396186 0.01325383111 1.743989434 0.9954683928 0.09783463277 255 30 1075.650827 -346.7069529 -346.396186 0.01035889705 1.846653887 0.9954683928 0.09979294451
256 30 -345.0939055 -345.319406 0.007516682784 3.756566851 1.772040852 0.1806000978 256 30 1075.650827 -344.9126927 -345.319406 0.01355711006 3.783666815 1.772040852 0.1835364962
257 30 -345.6468551 -345.594794 0.001735368441 3.432645857 1.516014157 0.1670589876 257 30 1075.650827 -345.4584504 -345.594794 0.004544785139 3.694055398 1.516014157 0.1747792869
258 30 -346.2843474 -345.98566 0.00995624537 2.709563559 1.406252265 0.1356658489 258 30 1075.650827 -346.1486771 -345.98566 0.005433903845 2.934925394 1.406252265 0.1397537934
259 30 -345.7058793 -345.383994 0.01072951129 2.464665654 0.963574308 0.13389942 259 30 1075.650827 -345.5181007 -345.383994 0.00447022439 2.558293398 0.963574308 0.1353120293
260 30 -346.9664564 -346.582564 0.01279641284 1.32870642 0.0126740587 0.08670344939 260 30 1075.650827 -346.8950741 -346.582564 0.01041700207 1.340303074 0.0126740587 0.08735503715
261 30 -345.3305431 -345.452139 0.004053195139 4.515828739 2.787719406 0.1519418929 261 30 1075.650827 -345.1232455 -345.452139 0.01096311715 4.843836394 2.787719406 0.158731815
262 30 -346.966836 -346.593523 0.01244376534 1.327919807 0.01148834 0.08669988209 262 30 1075.650827 -346.8954617 -346.593523 0.01006462208 1.339471584 0.01148834 0.08728175252
263 30 -345.5935851 -345.281949 0.01038786965 2.922665543 1.873142686 0.1300383724 263 30 1075.650827 -345.3878123 -345.281949 0.003528777779 3.04388336 1.873142686 0.1266226401
264 30 -346.157169 -345.928661 0.007616932828 3.42803556 2.100874472 0.1330089569 264 30 1075.650827 -346.0211337 -345.928661 0.003082422836 3.704012447 2.100874472 0.1385926656
265 30 -344.6836135 -345.111657 0.01426811685 4.87813643 3.358068319 0.1517605656 265 30 1075.650827 -344.4666474 -345.111657 0.0215003205 5.060940978 3.358068319 0.1556709723
266 30 -346.8140968 -346.367123 0.01489912587 1.700448289 1.335797131 0.1014030448 266 30 1075.650827 -346.731384 -346.367123 0.01214203185 1.743704774 1.335797131 0.0964003512
267 30 -346.9664062 -346.582565 0.0127947081 1.328695393 0.01254743735 0.08670444025 267 30 1075.650827 -346.8950084 -346.582565 0.0104147809 1.34025766 0.01254743735 0.08735400875
268 30 -344.5284456 -344.91356 0.012837147 4.30679737 3.441834403 0.1293440404 268 30 1075.650827 -344.3283906 -344.91356 0.01950564575 4.516603649 3.441834403 0.1385132929
269 30 -346.3471173 -345.836703 0.01701381162 2.177883948 1.608769148 0.1178087924 269 30 1075.650827 -346.2085633 -345.836703 0.01239534254 2.265804409 1.608769148 0.108126121
270 30 -344.9135302 -344.984307 0.002359225816 3.517317775 2.542628782 0.122092966 270 30 1075.650827 -344.700705 -344.984307 0.009453398382 3.625655349 2.542628782 0.1276641348
271 30 -346.7846048 -346.393931 0.01302245877 1.941770224 1.211680725 0.09898842713 271 30 1075.650827 -346.7005545 -346.393931 0.01022078221 2.065166442 1.211680725 0.1018842071
# Liquid.xyz # Liquid.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
272 100 -1104.74829 -1105.601723 0.008534329546 31.13590643 31.39853886 0.5826598142 272 100 2002.996789 -1105.503318 -1105.601723 0.0009840495195 33.67286942 31.39853886 0.5196524511
273 100 -1099.007356 -1099.673012 0.006656557481 34.30763539 32.03167218 0.6355970492 273 100 2002.996789 -1100.916702 -1099.673012 0.01243689799 34.89745034 32.03167218 0.569788481
274 100 -1123.744375 -1121.31506 0.0242931528 23.69463257 20.81076453 0.4843518851 274 100 2002.996789 -1125.248108 -1121.31506 0.03933048075 23.1042808 20.81076453 0.4236223924
# Surface.xyz # Surface.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
275 24 -279.9941674 -279.911828 0.003430809358 0.2809230274 0.002753093533 0.01155715982 275 24 828.0362197 -280.1388649 -279.911828 0.009459870394 0.3833165637 0.002753093533 0.0209958793
276 48 -551.0953781 -555.359452 0.08883487284 6.541312712 0.003020630398 0.1949601982 276 48 1756.536679 -551.9765065 -555.359452 0.07047803038 5.695770431 0.003020630398 0.1710474815
277 40 -458.209131 -459.216162 0.02517577443 5.605061426 5.0461364 0.1098503638 277 40 1394.433693 -457.8965908 -459.216162 0.03298927919 6.47605009 5.0461364 0.1141155284
278 40 -459.8554229 -461.144076 0.03221632783 2.691145822 0.005582740008 0.0817493 278 40 1394.433693 -459.4317427 -461.144076 0.04280833158 2.948762022 0.005582740008 0.1122771088
279 24 -279.8970746 -279.635146 0.01091369091 1.238573481 1.288799837 0.008644383713 279 24 828.0362197 -279.9357878 -279.635146 0.01252674323 2.282528363 1.288799837 0.0489285834
280 30 -346.9668295 -346.592525 0.01247681774 1.32793475 0.008446203407 0.08664452133 280 30 1075.65076 -346.8954518 -346.592525 0.01009756105 1.339498529 0.008446203407 0.08713647389
281 30 -345.8871537 -345.744506 0.004754921864 3.992236552 3.124961367 0.08594721633 281 30 1075.65076 -345.7511061 -345.744506 0.0002200037964 4.894457614 3.124961367 0.1246204459
# Volume_A15.xyz # Volume_A15.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
282 8 -66.46788051 -66.990732 0.06535643627 8.928342366e-15 0 1.501728429e-15 282 8 300.763 -66.50302875 -66.990732 0.06096290674 1.941277332e-14 0 3.37325783e-15
283 8 -72.67646146 -72.957807 0.03516819273 3.04869178e-14 0 5.1001593e-15 283 8 97.336 -72.75000964 -72.957807 0.0259746695 1.351006698e-13 0 2.177344384e-14
284 8 -94.20621366 -94.145745 0.00755858243 1.880283026e-14 0 2.444387059e-15 284 8 140.608 -94.15533163 -94.145745 0.001198328985 4.044529328e-14 0 6.693247629e-15
285 8 -94.43981933 -94.554682 0.01435783313 5.684495802e-15 0 8.992080697e-16 285 8 148.877 -94.40707977 -94.554682 0.01845027858 6.513916874e-14 0 1.052717644e-14
286 8 -79.39814886 -79.438363 0.005026767696 1.186991025e-14 0 1.998979685e-15 286 8 103.823 -79.45083178 -79.438363 0.001558598047 1.722214314e-13 0 2.77785865e-14
287 8 -69.38946962 -69.627817 0.02979342197 5.582708452e-15 0 9.058870552e-16 287 8 287.496 -69.43914664 -69.627817 0.02358379473 1.869801108e-14 0 2.486725909e-15
288 8 -83.05531805 -82.604907 0.05630138147 5.067400154e-15 0 8.060681752e-16 288 8 226.981 -83.07759076 -82.604907 0.05908546939 1.580586786e-14 0 2.506150792e-15
289 8 14.36690687 14.89048 0.0654466408 7.096605716e-14 0 9.778491674e-15 289 8 64 14.38834339 14.89048 0.06276707625 3.142551462e-13 0 4.611672661e-14
290 8 -94.13472519 -94.367599 0.02910922586 1.767991013e-14 0 2.1395518e-15 290 8 157.464 -94.121065 -94.367599 0.03081674996 4.627906691e-14 0 7.060581015e-15
291 8 -89.38757156 -89.248227 0.01741807051 8.884610804e-15 0 1.30769238e-15 291 8 195.112 -89.39236133 -89.248227 0.01801679107 2.992297744e-14 0 4.401789389e-15
292 8 -87.49741165 -87.211997 0.03567683079 8.006170389e-15 0 1.152290069e-15 292 8 205.379 -87.50415023 -87.211997 0.03651915426 2.29993221e-14 0 3.752044138e-15
293 8 -93.42285179 -93.66897 0.03076477666 2.280172604e-15 0 3.891032311e-16 293 8 166.375 -93.42125038 -93.66897 0.03096495278 2.907694533e-14 0 4.724788551e-15
294 8 -8.05187323 -7.989166 0.007838403785 7.482512497e-14 0 1.195728177e-14 294 8 68.921 -8.019333034 -7.989166 0.003770879216 3.356694228e-13 0 6.09434176e-14
295 8 -85.3779751 -84.982834 0.04939263793 3.220622406e-15 0 4.863008144e-16 295 8 216 -85.39060668 -84.982834 0.0509715856 9.263122354e-15 0 1.424782104e-15
296 8 -92.37490481 -92.536373 0.0201835236 1.673164165e-14 0 2.290124109e-15 296 8 175.616 -92.37850178 -92.536373 0.01973390211 3.567976799e-14 0 6.038472675e-15
297 8 -26.56925158 -26.77612 0.02585855302 4.751528484e-14 0 7.423756449e-15 297 8 74.088 -26.52314912 -26.77612 0.03162135966 2.830510779e-13 0 4.116147259e-14
298 8 -77.90929192 -77.544107 0.04564811452 4.617032687e-15 0 7.294873617e-16 298 8 250.047 -77.95455874 -77.544107 0.05130646772 1.722828231e-14 0 2.531351199e-15
299 8 -80.55632181 -80.114217 0.05526310126 8.324980615e-15 0 1.201946528e-15 299 8 238.328 -80.59031991 -80.114217 0.05951286389 1.790178605e-14 0 2.961270842e-15
300 8 -41.83202596 -42.143041 0.03887688062 3.384606082e-14 0 5.356279237e-15 300 8 79.507 -41.81723354 -42.143041 0.04072593188 2.017987815e-13 0 3.254206583e-14
301 8 -91.02235339 -91.040671 0.002289700675 3.337550263e-15 0 5.490399801e-16 301 8 185.193 -91.02736742 -91.040671 0.001662947812 2.413722535e-14 0 4.098218376e-15
302 8 -84.76781055 -84.499231 0.03357244376 3.246108052e-14 0 5.927694678e-15 302 8 110.592 -84.77992099 -84.499231 0.035086249 6.257383276e-14 0 9.730565054e-15
303 8 -60.71236154 -61.825173 0.1391014324 7.918599116e-15 0 1.30776466e-15 303 8 328.509 -60.69292469 -61.825173 0.1415310384 2.336487667e-14 0 4.192320181e-15
304 8 -91.5794594 -91.156873 0.05282330009 3.642169681e-15 0 5.988997276e-16 304 8 125 -91.53133052 -91.156873 0.04680718995 4.580314378e-14 0 7.417918736e-15
305 8 -54.28408457 -54.658744 0.04683242815 8.878350559e-14 0 1.511496461e-14 305 8 85.184 -54.31160005 -54.658744 0.04339299436 2.081820808e-13 0 3.494754179e-14
306 8 -72.29317827 -72.277255 0.00199040924 2.467731222e-15 0 3.339523392e-16 306 8 274.625 -72.34854762 -72.277255 0.008911577286 3.722472678e-15 0 6.21411631e-16
307 8 -75.14428628 -74.923334 0.02761903549 3.575872549e-15 0 5.510457542e-16 307 8 262.144 -75.19753913 -74.923334 0.03427564069 1.368884593e-14 0 2.258168709e-15
308 8 -64.41647714 -64.798066 0.04769860741 1.525236831e-14 0 2.48556962e-15 308 8 91.125 -64.47776048 -64.798066 0.04003818964 1.208370656e-13 0 1.995060684e-14
309 8 -93.29905733 -93.048342 0.03133941583 1.463792794e-14 0 2.408158856e-15 309 8 132.651 -93.2347704 -93.048342 0.02330355033 5.798970328e-14 0 9.670321353e-15
310 8 -63.56375833 -64.38702 0.1029077093 2.897725758e-15 0 5.108399236e-16 310 8 314.432 -63.5755377 -64.38702 0.1014352879 7.556804155e-15 0 1.29652209e-15
311 8 -88.81067445 -88.352871 0.05722543104 1.077500255e-14 0 1.707889472e-15 311 8 117.649 -88.79067694 -88.352871 0.05472574302 7.470145864e-14 0 1.29226998e-14
# Volume_BCC.xyz # Volume_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
312 2 -16.38936242 -16.763625 0.1871312901 5.164700352e-16 0 1.827242061e-16 312 2 74.088 -16.41904746 -16.763625 0.172288768 8.881784197e-16 0 2.960594732e-16
313 2 16.19675433 16.314145 0.05869533666 6.530646709e-14 0 1.921032777e-14 313 2 13.824 16.2292442 16.314145 0.04245040205 6.132313711e-13 0 2.290852693e-13
314 2 -21.24238574 -21.209071 0.01665736942 1.908874745e-15 0 7.170229344e-16 314 2 27 -21.2109771 -21.209071 0.0009530502432 1.123466673e-14 0 3.552712694e-15
315 2 -15.80560502 -15.780524 0.01254051029 3.122816732e-14 0 1.231252513e-14 315 2 21.952 -15.82599793 -15.780524 0.02273696393 2.538428743e-13 0 1.020665034e-13
316 2 -19.05526774 -19.002205 0.02653137194 7.555287577e-15 0 2.037557095e-15 316 2 24.389 -19.01309058 -19.002205 0.005442789013 7.306210466e-15 0 2.50031477e-15
317 2 -22.67434567 -22.620568 0.02688883674 1.349360652e-15 0 4.857225733e-16 317 2 29.791 -22.67048776 -22.620568 0.02495988117 2.031435111e-14 0 8.215650382e-15
318 2 4.04311049 4.096885 0.02688725502 1.772872048e-14 0 6.601201067e-15 318 2 15.625 4.095802366 4.096885 0.0005413171271 6.359497134e-14 0 2.069640755e-14
319 2 56.2105911 56.26276 0.02608445186 1.377801077e-13 0 4.795418557e-14 319 2 10.648 56.21520101 56.26276 0.0237794968 6.137452342e-13 0 2.262703913e-13
320 2 -22.55797904 -22.585113 0.01356697915 3.380715703e-15 0 1.276756478e-15 320 2 46.656 -22.54194179 -22.585113 0.02158560454 1.006819876e-14 0 3.996802889e-15
321 2 -21.75972417 -21.795501 0.0178884163 1.168374574e-15 0 4.533410684e-16 321 2 50.653 -21.73865048 -21.795501 0.0284252602 1.776356839e-15 0 5.921189465e-16
322 2 33.30678917 33.110078 0.09835558332 3.387360342e-14 0 9.173217741e-15 322 2 12.167 33.26085588 33.110078 0.0753889407 1.720476052e-13 0 4.707345624e-14
323 2 -20.82125169 -20.885998 0.0323731563 9.918492908e-16 0 3.654484123e-16 323 2 54.872 -20.80030783 -20.885998 0.04284508708 1.538370149e-15 0 5.921189465e-16
324 2 -23.55239721 -23.601336 0.02446939304 2.356479148e-15 0 7.090682208e-16 324 2 39.304 -23.54386901 -23.601336 0.02873349282 4.528839094e-15 0 1.480297366e-15
325 2 -23.17147126 -23.207313 0.01792086946 1.448170847e-15 0 4.901445524e-16 325 2 42.875 -23.16144784 -23.207313 0.02293258231 2.082963029e-15 0 7.401486831e-16
326 2 -19.78146338 -19.898089 0.05831281177 7.349099448e-15 0 2.984880861e-15 326 2 59.319 -19.76694674 -19.898089 0.06557112796 4.389974022e-14 0 1.776356839e-14
327 2 -23.45038238 -23.405474 0.02245418985 2.124472575e-15 0 7.6356745e-16 327 2 32.768 -23.46365391 -23.405474 0.0290899572 1.331156944e-14 0 5.403085387e-15
328 2 -4.653232293 -4.781324 0.06404585371 1.121589994e-14 0 3.980033895e-15 328 2 17.576 -4.6700202 -4.781324 0.05565189983 4.987657631e-14 0 1.465494393e-14
329 2 -18.67517238 -18.864936 0.09488180756 4.972820174e-16 0 1.896631e-16 329 2 64 -18.67254286 -18.864936 0.09619657243 8.881784197e-16 0 2.960594732e-16
330 2 -17.53439276 -17.813086 0.1393466189 8.350923499e-16 0 3.215020842e-16 330 2 68.921 -17.54726713 -17.813086 0.1329094363 1.371024298e-15 0 4.440892099e-16
331 2 -11.04889659 -11.197201 0.07415220345 1.822150476e-14 0 6.092637968e-15 331 2 19.683 -11.12327165 -11.197201 0.03696467615 4.343228798e-14 0 1.539509261e-14
332 2 -23.68489671 -23.696705 0.00590414498 1.240124986e-15 0 4.153217122e-16 332 2 35.937 -23.68985458 -23.696705 0.003425208911 8.588276581e-15 0 2.812564996e-15
# Volume_FCC.xyz # Volume_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error config # atoms volume energy DFT energy energy error force DFT force force error
333 4 -19.13390887 -19.075994 0.01447871809 1.022152812e-14 0 2.293587909e-15 333 4 39.304 -19.04121551 -19.075994 0.008694621404 9.324046941e-14 0 2.550216982e-14
334 4 -35.26038882 -34.873619 0.0966924543 1.299038035e-15 0 3.09937261e-16 334 4 140.608 -35.2532829 -34.873619 0.09491597439 7.957989483e-17 0 1.134599845e-17
335 4 -43.93272346 -43.950003 0.004319884816 1.839067075e-15 0 3.483902981e-16 335 4 97.336 -43.90903851 -43.950003 0.01024112333 9.677895068e-15 0 2.24135791e-15
336 4 -41.03733831 -40.991909 0.01135732773 4.481141716e-15 0 9.930207698e-16 336 4 54.872 -41.05446227 -40.991909 0.01563831765 1.98280496e-14 0 4.875440329e-15
337 4 -43.4228254 -43.453929 0.007775899668 3.563251054e-14 0 1.025252039e-14 337 4 59.319 -43.40999789 -43.453929 0.01098277702 9.570074295e-14 0 2.719164593e-14
338 4 -42.67289278 -42.686077 0.003296053998 3.08362874e-15 0 8.245357522e-16 338 4 103.823 -42.63532355 -42.686077 0.01268836179 2.539930576e-15 0 4.806204543e-16
339 4 -33.58842759 -33.224653 0.09094364633 7.806891681e-16 0 2.054201716e-16 339 4 148.877 -33.58964546 -33.224653 0.09124811554 2.796923066e-17 0 3.296205444e-18
340 4 -27.01189372 -26.862709 0.03729618105 6.429823751e-15 0 1.469359846e-15 340 4 42.875 -26.8499756 -26.862709 0.003183350784 4.824942051e-14 0 1.148213469e-14
341 4 -25.59030438 -25.519883 0.01760534598 1.262126674e-15 0 3.031429274e-16 341 4 195.112 -25.5782856 -25.519883 0.01460065124 2.683808864e-16 0 5.477307421e-17
342 4 3.441093749 3.463071 0.005494312714 2.222300041e-14 0 5.686075706e-15 342 4 32.768 3.274215348 3.463071 0.04721391298 1.751484723e-13 0 4.608697683e-14
343 4 -31.9073245 -31.59595 0.07784362479 8.772505365e-16 0 2.178523565e-16 343 4 157.464 -31.91218763 -31.59595 0.07905940659 3.590442267e-17 0 4.231376791e-18
344 4 -45.06068744 -45.100466 0.009944641012 2.844345405e-15 0 6.141228113e-16 344 4 64 -45.05473725 -45.100466 0.01143218825 7.235555613e-15 0 1.620123306e-15
345 4 -46.03981427 -46.052258 0.0031109323 3.085311895e-15 0 7.534482297e-16 345 4 68.921 -46.04331302 -46.052258 0.002236244179 5.893206675e-15 0 1.299708229e-15
346 4 -30.24326213 -30.001189 0.06051828302 1.033301257e-15 0 2.648344507e-16 346 4 166.375 -30.2468098 -30.001189 0.06140519937 2.820758891e-16 0 5.580616674e-17
347 4 -22.957351 -22.8504 0.02673775024 1.649470508e-15 0 4.625206468e-16 347 4 216 -22.95485577 -22.8504 0.02611394167 1.164554524e-16 0 2.312964635e-17
348 4 -9.130654755 -9.164691 0.008509061334 1.441769296e-14 0 2.967949237e-15 348 4 35.937 -9.215415964 -9.164691 0.01268124103 4.893101434e-14 0 1.156092005e-14
349 4 -24.21746226 -24.150343 0.01677981454 9.080179666e-16 0 2.344767898e-16 349 4 205.379 -24.20645978 -24.150343 0.01402919404 2.781506505e-18 0 3.278036852e-19
350 4 -46.44761241 -46.426795 0.005204351765 1.356833237e-15 0 3.249715312e-16 350 4 74.088 -46.44951294 -46.426795 0.005679484598 2.411816735e-15 0 4.763070257e-16
351 4 -28.62111495 -28.451145 0.04249248833 8.73448718e-15 0 2.511662753e-15 351 4 175.616 -28.61960857 -28.451145 0.04211589328 1.078338842e-14 0 3.09506759e-15
352 4 40.31615798 40.341566 0.006352005142 4.072809775e-14 0 8.11641299e-15 352 4 27 40.45415396 40.341566 0.02814698887 1.556900619e-13 0 3.789568123e-14
353 4 19.51151427 19.617912 0.02659943252 2.395447746e-14 0 5.536534686e-15 353 4 29.791 19.42166568 19.617912 0.04906157941 1.398773649e-13 0 3.335786504e-14
354 4 -27.06356399 -26.954384 0.02729499736 7.989451601e-16 0 1.662443331e-16 354 4 185.193 -27.05578105 -26.954384 0.02534926276 2.758936733e-16 0 5.630535877e-17
355 4 -46.3678929 -46.323696 0.01104922394 3.225354336e-15 0 8.604228441e-16 355 4 79.507 -46.36425384 -46.323696 0.01013945879 2.152124725e-15 0 4.437884935e-16
356 4 -45.87221055 -45.828947 0.01081588677 3.654195723e-15 0 9.691321819e-16 356 4 85.184 -45.86352273 -45.828947 0.008643933117 3.448840532e-14 0 9.539924949e-15
357 4 -38.47076405 -38.16029 0.0776185126 1.743572283e-15 0 4.628820475e-16 357 4 125 -38.44027502 -38.16029 0.06999625463 1.884407826e-15 0 4.44194105e-16
358 4 -33.06813795 -32.919741 0.03709923634 1.476523661e-14 0 4.182418301e-15 358 4 46.656 -32.97168631 -32.919741 0.01298632653 1.142146022e-13 0 2.894877625e-14
359 4 -41.34431995 -41.272675 0.01791123821 3.354385367e-15 0 9.014870014e-16 359 4 110.592 -41.29864314 -41.272675 0.006492033936 3.342024128e-14 0 9.358862094e-15
360 4 -39.95757678 -39.753322 0.05106369446 1.803308855e-15 0 4.257287097e-16 360 4 117.649 -39.91686354 -39.753322 0.04088538603 7.303704341e-15 0 1.704201263e-15
361 4 -37.66252943 -37.547435 0.02877360828 4.901403086e-15 0 1.0480621e-15 361 4 50.653 -37.65718147 -37.547435 0.02743661628 2.105764443e-14 0 5.292352205e-15
362 4 -36.89659259 -36.52595 0.09266064636 2.659569984e-15 0 6.744460314e-16 362 4 132.651 -36.87810682 -36.52595 0.08803920465 3.379802923e-17 0 3.983135944e-18
363 4 -45.03250721 -45.016087 0.004105053075 1.580168365e-15 0 3.385601984e-16 363 4 91.125 -45.01844387 -45.016087 0.0005892174087 1.081458604e-14 0 2.513809578e-15

View File

@ -2,19 +2,19 @@
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.011286 0.011334 0.113353 0.141650 Displaced_A15.xyz 9 576 0.015324 0.015365 0.140594 0.184797
Displaced_BCC.xyz 9 486 0.012178 0.014005 0.240613 0.312191 Displaced_BCC.xyz 9 486 0.009486 0.011643 0.249983 0.320375
Displaced_FCC.xyz 9 432 0.001445 0.001591 0.082688 0.103800 Displaced_FCC.xyz 9 432 0.000686 0.000880 0.091420 0.113585
Elastic_BCC.xyz 100 200 0.004452 0.004783 0.000010 0.000013 Elastic_BCC.xyz 100 200 0.003796 0.004379 0.000015 0.000020
Elastic_FCC.xyz 100 400 0.002865 0.002923 0.000146 0.000207 Elastic_FCC.xyz 100 400 0.003332 0.003372 0.000122 0.000178
GSF_110.xyz 22 528 0.005804 0.006853 0.047276 0.097819 GSF_110.xyz 22 528 0.007027 0.007797 0.057637 0.115638
GSF_112.xyz 22 660 0.010588 0.011555 0.123342 0.191090 GSF_112.xyz 22 660 0.010396 0.011347 0.125237 0.198553
Liquid.xyz 3 300 0.013161 0.015355 0.567536 0.757847 Liquid.xyz 3 300 0.017584 0.023822 0.504354 0.660300
Surface.xyz 7 236 0.025400 0.037555 0.096121 0.295623 Surface.xyz 7 236 0.025511 0.034302 0.107190 0.285034
Volume_A15.xyz 30 240 0.039281 0.048678 0.000000 0.000000 Volume_A15.xyz 30 240 0.038624 0.048355 0.000000 0.000000
Volume_BCC.xyz 21 42 0.049766 0.067554 0.000000 0.000000 Volume_BCC.xyz 21 42 0.044423 0.061685 0.000000 0.000000
Volume_FCC.xyz 31 124 0.030056 0.041738 0.000000 0.000000 Volume_FCC.xyz 31 124 0.030062 0.041271 0.000000 0.000000
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
All files 363 4224 0.012917 0.025797 0.122473 0.260052 All files 363 4224 0.012618 0.024806 0.125879 0.247229
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set **************** **************** End of Error Analysis for the Training Data Set ****************

View File

@ -1,5 +1 @@
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod

View File

@ -44,4 +44,3 @@ velocity all create 300.0 4928459 loop geom
fix 1 all nve fix 1 all nve
run ${nsteps} run ${nsteps}

View File

@ -0,0 +1,52 @@
# Demonstrate bispectrum computes
# initialize simulation
variable nsteps index 0
variable nrep equal 2
variable a equal 2.0
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable ny equal ${nrep}
variable nz equal ${nrep}
boundary p p p
atom_modify map hash
lattice bcc $a
region box block 0 ${nx} 0 ${ny} 0 ${nz}
create_box 2 box
create_atoms 2 box
mass * 180.88
displace_atoms all random 0.1 0.1 0.1 123456
# set up dummy potential to satisfy cutoff
variable rcutfac equal 6.0
pair_style zero ${rcutfac}
pair_coeff * *
# set up per-atom computes
compute ld all pod/atom Ta_param.pod Ta_coefficients.pod Ta Ta
compute dd all podd/atom Ta_param.pod Ta_coefficients.pod Ta Ta
# set up compute snap generating global array
compute gdd all pod/global Ta_param.pod Ta_coefficients.pod Ta Ta
#fix gdd all ave/time 1 1 1 c_gdd[*] file pod.gdd.dat mode vector
compute ldd all pod/local Ta_param.pod Ta_coefficients.pod Ta Ta
#fix ldd all ave/time 1 1 1 c_ldd[*] file pod.ldd.dat mode vector
#dump mydump_ld all custom 1000 dump_ld id c_ld[*]
#dump mydump_dd all custom 1000 dump_dd id c_dd[*]
variable sample_ld1 equal C_ld[1][10] # Arbitrary local descriptor
fix ldprint all print 1 "${sample_ld1}"
run ${nsteps}

View File

@ -1,32 +1,37 @@
LAMMPS (22 Dec 2022) LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-177-g86abf4f680-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task using 1 OpenMP thread(s) per MPI task
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials **************** **************** Begin of POD Potentials ****************
species: Ta species: Ta
periodic boundary conditions: 1 1 1 periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1 inner cut-off radius: 1
outer cut-off radius: 5 outer cut-off radius: 5
bessel polynomial degree: 3 bessel polynomial degree: 3
inverse polynomial degree: 6 inverse polynomial degree: 6
one-body potential: 1 one-body potential: 1
two-body potential: 3 6 6 two-body radial basis functions: 6
three-body potential: 3 6 5 5 three-body radial basis functions: 5
four-body SNAP potential: 0 0 three-body angular degree: 4
quadratic POD potential: 0 four-body radial basis functions: 0
number of basis functions for one-body potential: 1 four-body angular degree: 0
number of basis functions for two-body potential: 6 five-body radial basis functions: 0
number of basis functions for three-body potential: 25 five-body angular degree: 0
number of basis functions for four-body potential: 0 six-body radial basis functions: 0
number of descriptors for one-body potential: 1 six-body angular degree: 0
number of descriptors for two-body potential: 6 seven-body radial basis functions: 0
number of descriptors for three-body potential: 25 seven-body angular degree: 0
number of descriptors for four-body potential: 0 number of local descriptors per element for one-body potential: 1
number of descriptors for quadratic POD potential: 0 number of local descriptors per element for two-body potential: 6
total number of descriptors for all potentials: 32 number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials **************** **************** End of POD Potentials ****************
**************** Begin of Data File **************** **************** Begin of Data File ****************
@ -34,6 +39,8 @@ file format: extxyz
file extension: xyz file extension: xyz
path to training data set: XYZ path to training data set: XYZ
path to test data set: XYZ path to test data set: XYZ
path to environment configuration set: XYZ
basename for output files: Ta
training fraction: 1 training fraction: 1
test fraction: 1 test fraction: 1
randomize training data set: 1 randomize training data set: 1
@ -45,7 +52,8 @@ energy/force calculation for test data set: 0
fitting weight for energy: 100 fitting weight for energy: 100
fitting weight for force: 1 fitting weight for force: 1
fitting weight for stress: 0 fitting weight for stress: 0
fitting regularization parameter: 1e-10 save pod descriptors: 0
compute pod descriptors: 0
**************** End of Data File **************** **************** End of Data File ****************
**************** Begin of Training Data Set **************** **************** Begin of Training Data Set ****************
--------------------------------------------------------------- ---------------------------------------------------------------
@ -74,8 +82,7 @@ maximum number of atoms: 100
maximum number of atoms in periodic domain: 100 maximum number of atoms in periodic domain: 100
maximum number of atoms in extended domain: 2700 maximum number of atoms in extended domain: 2700
maximum number of neighbors in extended domain: 270000 maximum number of neighbors in extended domain: 270000
size of double memory: 223201 size of double memory: 232128
size of int memory: 14709
size of descriptor matrix: 32 x 32 size of descriptor matrix: 32 x 32
**************** End of Memory Allocation **************** **************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting **************** **************** Begin of Least-Squares Fitting ****************
@ -83,7 +90,6 @@ Configuration: # 1
Configuration: # 101 Configuration: # 101
Configuration: # 201 Configuration: # 201
Configuration: # 301 Configuration: # 301
**************** End of Least-Squares Fitting ****************
**************** Begin of Error Calculation **************** **************** Begin of Error Calculation ****************
Configuration: # 1 Configuration: # 1
Configuration: # 101 Configuration: # 101
@ -94,21 +100,20 @@ Configuration: # 301
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.011286 0.011334 0.113353 0.141650 Displaced_A15.xyz 9 576 0.015324 0.015365 0.140594 0.184797
Displaced_BCC.xyz 9 486 0.012178 0.014005 0.240613 0.312191 Displaced_BCC.xyz 9 486 0.009486 0.011643 0.249983 0.320375
Displaced_FCC.xyz 9 432 0.001445 0.001591 0.082688 0.103800 Displaced_FCC.xyz 9 432 0.000686 0.000880 0.091420 0.113585
Elastic_BCC.xyz 100 200 0.004452 0.004783 0.000010 0.000013 Elastic_BCC.xyz 100 200 0.003796 0.004379 0.000015 0.000020
Elastic_FCC.xyz 100 400 0.002865 0.002923 0.000146 0.000207 Elastic_FCC.xyz 100 400 0.003332 0.003372 0.000122 0.000178
GSF_110.xyz 22 528 0.005804 0.006853 0.047276 0.097819 GSF_110.xyz 22 528 0.007027 0.007797 0.057637 0.115638
GSF_112.xyz 22 660 0.010588 0.011555 0.123342 0.191090 GSF_112.xyz 22 660 0.010396 0.011347 0.125237 0.198553
Liquid.xyz 3 300 0.013161 0.015355 0.567536 0.757847 Liquid.xyz 3 300 0.017584 0.023822 0.504354 0.660300
Surface.xyz 7 236 0.025400 0.037555 0.096121 0.295623 Surface.xyz 7 236 0.025511 0.034302 0.107190 0.285034
Volume_A15.xyz 30 240 0.039281 0.048678 0.000000 0.000000 Volume_A15.xyz 30 240 0.038624 0.048355 0.000000 0.000000
Volume_BCC.xyz 21 42 0.049766 0.067554 0.000000 0.000000 Volume_BCC.xyz 21 42 0.044423 0.061685 0.000000 0.000000
Volume_FCC.xyz 31 124 0.030056 0.041738 0.000000 0.000000 Volume_FCC.xyz 31 124 0.030062 0.041271 0.000000 0.000000
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
All files 363 4224 0.012917 0.025797 0.122473 0.260052 All files 363 4224 0.012618 0.024806 0.125879 0.247229
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set **************** **************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:00 Total wall time: 0:00:00

View File

@ -1,32 +1,37 @@
LAMMPS (22 Dec 2022) LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-177-g86abf4f680-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task using 1 OpenMP thread(s) per MPI task
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials **************** **************** Begin of POD Potentials ****************
species: Ta species: Ta
periodic boundary conditions: 1 1 1 periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1 inner cut-off radius: 1
outer cut-off radius: 5 outer cut-off radius: 5
bessel polynomial degree: 3 bessel polynomial degree: 3
inverse polynomial degree: 6 inverse polynomial degree: 6
one-body potential: 1 one-body potential: 1
two-body potential: 3 6 6 two-body radial basis functions: 6
three-body potential: 3 6 5 5 three-body radial basis functions: 5
four-body SNAP potential: 0 0 three-body angular degree: 4
quadratic POD potential: 0 four-body radial basis functions: 0
number of basis functions for one-body potential: 1 four-body angular degree: 0
number of basis functions for two-body potential: 6 five-body radial basis functions: 0
number of basis functions for three-body potential: 25 five-body angular degree: 0
number of basis functions for four-body potential: 0 six-body radial basis functions: 0
number of descriptors for one-body potential: 1 six-body angular degree: 0
number of descriptors for two-body potential: 6 seven-body radial basis functions: 0
number of descriptors for three-body potential: 25 seven-body angular degree: 0
number of descriptors for four-body potential: 0 number of local descriptors per element for one-body potential: 1
number of descriptors for quadratic POD potential: 0 number of local descriptors per element for two-body potential: 6
total number of descriptors for all potentials: 32 number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials **************** **************** End of POD Potentials ****************
**************** Begin of Data File **************** **************** Begin of Data File ****************
@ -34,6 +39,8 @@ file format: extxyz
file extension: xyz file extension: xyz
path to training data set: XYZ path to training data set: XYZ
path to test data set: XYZ path to test data set: XYZ
path to environment configuration set: XYZ
basename for output files: Ta
training fraction: 1 training fraction: 1
test fraction: 1 test fraction: 1
randomize training data set: 1 randomize training data set: 1
@ -45,7 +52,8 @@ energy/force calculation for test data set: 0
fitting weight for energy: 100 fitting weight for energy: 100
fitting weight for force: 1 fitting weight for force: 1
fitting weight for stress: 0 fitting weight for stress: 0
fitting regularization parameter: 1e-10 save pod descriptors: 0
compute pod descriptors: 0
**************** End of Data File **************** **************** End of Data File ****************
**************** Begin of Training Data Set **************** **************** Begin of Training Data Set ****************
--------------------------------------------------------------- ---------------------------------------------------------------
@ -74,8 +82,7 @@ maximum number of atoms: 100
maximum number of atoms in periodic domain: 100 maximum number of atoms in periodic domain: 100
maximum number of atoms in extended domain: 2700 maximum number of atoms in extended domain: 2700
maximum number of neighbors in extended domain: 270000 maximum number of neighbors in extended domain: 270000
size of double memory: 223201 size of double memory: 232128
size of int memory: 14709
size of descriptor matrix: 32 x 32 size of descriptor matrix: 32 x 32
**************** End of Memory Allocation **************** **************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting **************** **************** Begin of Least-Squares Fitting ****************
@ -83,7 +90,6 @@ Configuration: # 1
Configuration: # 101 Configuration: # 101
Configuration: # 201 Configuration: # 201
Configuration: # 301 Configuration: # 301
**************** End of Least-Squares Fitting ****************
**************** Begin of Error Calculation **************** **************** Begin of Error Calculation ****************
Configuration: # 1 Configuration: # 1
Configuration: # 101 Configuration: # 101
@ -94,21 +100,20 @@ Configuration: # 301
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.011286 0.011334 0.113353 0.141650 Displaced_A15.xyz 9 576 0.015324 0.015365 0.140594 0.184797
Displaced_BCC.xyz 9 486 0.012178 0.014005 0.240613 0.312191 Displaced_BCC.xyz 9 486 0.009486 0.011643 0.249983 0.320375
Displaced_FCC.xyz 9 432 0.001445 0.001591 0.082688 0.103800 Displaced_FCC.xyz 9 432 0.000686 0.000880 0.091420 0.113585
Elastic_BCC.xyz 100 200 0.004452 0.004783 0.000010 0.000013 Elastic_BCC.xyz 100 200 0.003796 0.004379 0.000015 0.000020
Elastic_FCC.xyz 100 400 0.002865 0.002923 0.000146 0.000207 Elastic_FCC.xyz 100 400 0.003332 0.003372 0.000122 0.000178
GSF_110.xyz 22 528 0.005804 0.006853 0.047276 0.097819 GSF_110.xyz 22 528 0.007027 0.007797 0.057637 0.115638
GSF_112.xyz 22 660 0.010588 0.011555 0.123342 0.191090 GSF_112.xyz 22 660 0.010396 0.011347 0.125237 0.198553
Liquid.xyz 3 300 0.013161 0.015355 0.567536 0.757847 Liquid.xyz 3 300 0.017584 0.023822 0.504354 0.660300
Surface.xyz 7 236 0.025400 0.037555 0.096121 0.295623 Surface.xyz 7 236 0.025511 0.034302 0.107190 0.285034
Volume_A15.xyz 30 240 0.039281 0.048678 0.000000 0.000000 Volume_A15.xyz 30 240 0.038624 0.048355 0.000000 0.000000
Volume_BCC.xyz 21 42 0.049766 0.067554 0.000000 0.000000 Volume_BCC.xyz 21 42 0.044423 0.061685 0.000000 0.000000
Volume_FCC.xyz 31 124 0.030056 0.041738 0.000000 0.000000 Volume_FCC.xyz 31 124 0.030062 0.041271 0.000000 0.000000
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
All files 363 4224 0.012917 0.025797 0.122473 0.260052 All files 363 4224 0.012618 0.024806 0.125879 0.247229
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set **************** **************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:00
Total wall time: 0:00:01

View File

@ -0,0 +1,293 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-177-g86abf4f680-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate bispectrum computes
# initialize simulation
variable nsteps index 0
variable nrep equal 2
variable a equal 2.0
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 2
variable ny equal ${nrep}
variable ny equal 2
variable nz equal ${nrep}
variable nz equal 2
boundary p p p
atom_modify map hash
lattice bcc $a
lattice bcc 2
Lattice spacing in x,y,z = 2 2 2
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 2 0 ${ny} 0 ${nz}
region box block 0 2 0 2 0 ${nz}
region box block 0 2 0 2 0 2
create_box 2 box
Created orthogonal box = (0 0 0) to (4 4 4)
1 by 1 by 1 MPI processor grid
create_atoms 2 box
Created 16 atoms
using lattice units in orthogonal box = (0 0 0) to (4 4 4)
create_atoms CPU = 0.001 seconds
mass * 180.88
displace_atoms all random 0.1 0.1 0.1 123456
Displacing atoms ...
# set up dummy potential to satisfy cutoff
variable rcutfac equal 6.0
pair_style zero ${rcutfac}
pair_style zero 6
pair_coeff * *
# set up per-atom computes
compute ld all pod/atom Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
compute dd all podd/atom Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# set up compute snap generating global array
compute gdd all pod/gdd Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
#fix gdd all ave/time 1 1 1 c_gdd[*] file pod.gdd.dat mode vector
compute ldd all pod/ldd Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
#fix ldd all ave/time 1 1 1 c_ldd[*] file pod.ldd.dat mode vector
#dump mydump_ld all custom 1000 dump_ld id c_ld[*]
#dump mydump_dd all custom 1000 dump_dd id c_dd[*]
variable sample_ld1 equal C_ld[1][10] # Arbitrary local descriptor
fix ldprint all print 1 "${sample_ld1}"
run ${nsteps}
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
WARNING: More than one compute pod (src/ML-POD/compute_pod_atom.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_podd_atom.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_pod_global.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_pod_local.cpp:89)
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8
ghost atom cutoff = 8
binsize = 4, bins = 1 1 1
5 neighbor lists, perpetual/occasional/extra = 1 4 0
(1) pair zero, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
(2) compute pod/atom, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(3) compute podd/atom, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(4) compute pod/gdd, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(5) compute pod/ldd, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
0.344594831165384
Per MPI rank memory allocation (min/avg/max) = 6.326 | 6.326 | 6.326 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 0 0 0 0
Loop time of 1.207e-06 on 1 procs for 0 steps with 16 atoms
165.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.207e-06 | | |100.00
Nlocal: 16 ave 16 max 16 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1984 ave 1984 max 1984 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 4311 ave 4311 max 4311 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 8623 ave 8623 max 8623 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 8623
Ave neighs/atom = 538.9375
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,155 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-177-g86abf4f680-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.001 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coeff.pod Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.207 | 3.207 | 3.207 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.842971 0 -11.804496 -24843.054
10 296.87227 -11.84257 0 -11.804496 -24609.859
20 287.65971 -11.841388 0 -11.804496 -23926.722
30 272.87511 -11.839492 0 -11.804496 -22841.672
40 253.34724 -11.836988 0 -11.804496 -21429.268
50 230.17169 -11.834015 0 -11.804496 -19782.77
60 204.64408 -11.830741 0 -11.804496 -18004.755
70 178.17888 -11.827347 0 -11.804495 -16197.482
80 152.21769 -11.824017 0 -11.804495 -14454.425
90 128.13189 -11.820928 0 -11.804495 -12854.075
100 107.12666 -11.818234 0 -11.804495 -11456.437
Loop time of 0.394952 on 1 procs for 100 steps with 128 atoms
Performance: 10.938 ns/day, 2.194 hours/ns, 253.196 timesteps/s, 32.409 katom-step/s
97.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.39249 | 0.39249 | 0.39249 | 0.0 | 99.38
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00087496 | 0.00087496 | 0.00087496 | 0.0 | 0.22
Output | 0.00030885 | 0.00030885 | 0.00030885 | 0.0 | 0.08
Modify | 0.00053218 | 0.00053218 | 0.00053218 | 0.0 | 0.13
Other | | 0.0007481 | | | 0.19
Nlocal: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 727 ave 727 max 727 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 7424 ave 7424 max 7424 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,155 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-177-g86abf4f680-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.001 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coeff.pod Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.187 | 3.187 | 3.187 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.842971 0 -11.804496 -24843.054
10 296.87227 -11.84257 0 -11.804496 -24609.859
20 287.65971 -11.841388 0 -11.804496 -23926.722
30 272.87511 -11.839492 0 -11.804496 -22841.672
40 253.34724 -11.836988 0 -11.804496 -21429.268
50 230.17169 -11.834015 0 -11.804496 -19782.77
60 204.64408 -11.830741 0 -11.804496 -18004.755
70 178.17888 -11.827347 0 -11.804495 -16197.482
80 152.21769 -11.824017 0 -11.804495 -14454.425
90 128.13189 -11.820928 0 -11.804495 -12854.075
100 107.12666 -11.818234 0 -11.804495 -11456.437
Loop time of 0.153961 on 4 procs for 100 steps with 128 atoms
Performance: 28.059 ns/day, 0.855 hours/ns, 649.516 timesteps/s, 83.138 katom-step/s
96.2% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.1281 | 0.12977 | 0.1312 | 0.3 | 84.29
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.01967 | 0.021169 | 0.022796 | 0.8 | 13.75
Output | 0.00045049 | 0.00053796 | 0.00078459 | 0.0 | 0.35
Modify | 0.00039544 | 0.0004393 | 0.00048043 | 0.0 | 0.29
Other | | 0.002049 | | | 1.33
Nlocal: 32 ave 32 max 32 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 431 ave 431 max 431 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 1856 ave 1856 max 1856 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,39 +1,46 @@
LAMMPS (22 Dec 2022) LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-179-g353121c942-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task using 1 OpenMP thread(s) per MPI task
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod fitpod Ta_param.pod Ta_data.pod
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials **************** **************** Begin of POD Potentials ****************
species: Ta species: Ta
periodic boundary conditions: 1 1 1 periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1 inner cut-off radius: 1
outer cut-off radius: 5 outer cut-off radius: 5
bessel polynomial degree: 3 bessel polynomial degree: 3
inverse polynomial degree: 6 inverse polynomial degree: 6
one-body potential: 1 one-body potential: 1
two-body potential: 3 6 6 two-body radial basis functions: 6
three-body potential: 3 6 5 5 three-body radial basis functions: 5
four-body SNAP potential: 0 0 three-body angular degree: 4
quadratic POD potential: 1 four-body radial basis functions: 0
number of basis functions for one-body potential: 1 four-body angular degree: 0
number of basis functions for two-body potential: 6 five-body radial basis functions: 0
number of basis functions for three-body potential: 25 five-body angular degree: 0
number of basis functions for four-body potential: 0 six-body radial basis functions: 0
number of descriptors for one-body potential: 1 six-body angular degree: 0
number of descriptors for two-body potential: 6 seven-body radial basis functions: 0
number of descriptors for three-body potential: 25 seven-body angular degree: 0
number of descriptors for four-body potential: 0 number of local descriptors per element for one-body potential: 1
number of descriptors for quadratic POD potential: 150 number of local descriptors per element for two-body potential: 6
total number of descriptors for all potentials: 182 number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials **************** **************** End of POD Potentials ****************
**************** Begin of Data File **************** **************** Begin of Data File ****************
file format: extxyz file format: extxyz
file extension: xyz file extension: xyz
path to training data set: ../Ta/XYZ path to training data set: XYZ
path to test data set: ../Ta/XYZ path to test data set: XYZ
path to environment configuration set: XYZ
basename for output files: Ta
training fraction: 1 training fraction: 1
test fraction: 1 test fraction: 1
randomize training data set: 1 randomize training data set: 1
@ -45,7 +52,8 @@ energy/force calculation for test data set: 0
fitting weight for energy: 100 fitting weight for energy: 100
fitting weight for force: 1 fitting weight for force: 1
fitting weight for stress: 0 fitting weight for stress: 0
fitting regularization parameter: 1e-10 save pod descriptors: 0
compute pod descriptors: 0
**************** End of Data File **************** **************** End of Data File ****************
**************** Begin of Training Data Set **************** **************** Begin of Training Data Set ****************
--------------------------------------------------------------- ---------------------------------------------------------------
@ -74,16 +82,14 @@ maximum number of atoms: 100
maximum number of atoms in periodic domain: 100 maximum number of atoms in periodic domain: 100
maximum number of atoms in extended domain: 2700 maximum number of atoms in extended domain: 2700
maximum number of neighbors in extended domain: 270000 maximum number of neighbors in extended domain: 270000
size of double memory: 223201 size of double memory: 232128
size of int memory: 14709 size of descriptor matrix: 32 x 32
size of descriptor matrix: 182 x 182
**************** End of Memory Allocation **************** **************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting **************** **************** Begin of Least-Squares Fitting ****************
Configuration: # 1 Configuration: # 1
Configuration: # 101 Configuration: # 101
Configuration: # 201 Configuration: # 201
Configuration: # 301 Configuration: # 301
**************** End of Least-Squares Fitting ****************
**************** Begin of Error Calculation **************** **************** Begin of Error Calculation ****************
Configuration: # 1 Configuration: # 1
Configuration: # 101 Configuration: # 101
@ -94,21 +100,20 @@ Configuration: # 301
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.000554 0.000680 0.066393 0.083014 Displaced_A15.xyz 9 576 0.015324 0.015365 0.140594 0.184797
Displaced_BCC.xyz 9 486 0.004724 0.005103 0.108253 0.139461 Displaced_BCC.xyz 9 486 0.009486 0.011643 0.249983 0.320375
Displaced_FCC.xyz 9 432 0.001704 0.001900 0.077531 0.097471 Displaced_FCC.xyz 9 432 0.000686 0.000880 0.091420 0.113585
Elastic_BCC.xyz 100 200 0.000444 0.000446 0.000001 0.000002 Elastic_BCC.xyz 100 200 0.003796 0.004379 0.000015 0.000020
Elastic_FCC.xyz 100 400 0.000273 0.000327 0.000110 0.000163 Elastic_FCC.xyz 100 400 0.003332 0.003372 0.000122 0.000178
GSF_110.xyz 22 528 0.001852 0.002260 0.027302 0.044765 GSF_110.xyz 22 528 0.007027 0.007797 0.057637 0.115638
GSF_112.xyz 22 660 0.001839 0.002404 0.051415 0.080350 GSF_112.xyz 22 660 0.010396 0.011347 0.125237 0.198553
Liquid.xyz 3 300 0.000674 0.000758 0.217921 0.276109 Liquid.xyz 3 300 0.017584 0.023822 0.504354 0.660300
Surface.xyz 7 236 0.009115 0.011661 0.047949 0.105123 Surface.xyz 7 236 0.025511 0.034302 0.107190 0.285034
Volume_A15.xyz 30 240 0.001407 0.001693 0.000000 0.000000 Volume_A15.xyz 30 240 0.038624 0.048355 0.000000 0.000000
Volume_BCC.xyz 21 42 0.001497 0.002077 0.000000 0.000000 Volume_BCC.xyz 21 42 0.044423 0.061685 0.000000 0.000000
Volume_FCC.xyz 31 124 0.000870 0.001139 0.000000 0.000000 Volume_FCC.xyz 31 124 0.030062 0.041271 0.000000 0.000000
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
All files 363 4224 0.001053 0.002171 0.059051 0.106960 All files 363 4224 0.012618 0.024806 0.125879 0.247229
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set **************** **************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:00 Total wall time: 0:00:00

View File

@ -0,0 +1,293 @@
LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-179-g353121c942-modified)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Demonstrate bispectrum computes
# initialize simulation
variable nsteps index 0
variable nrep equal 2
variable a equal 2.0
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 2
variable ny equal ${nrep}
variable ny equal 2
variable nz equal ${nrep}
variable nz equal 2
boundary p p p
atom_modify map hash
lattice bcc $a
lattice bcc 2
Lattice spacing in x,y,z = 2 2 2
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 2 0 ${ny} 0 ${nz}
region box block 0 2 0 2 0 ${nz}
region box block 0 2 0 2 0 2
create_box 2 box
Created orthogonal box = (0 0 0) to (4 4 4)
1 by 1 by 1 MPI processor grid
create_atoms 2 box
Created 16 atoms
using lattice units in orthogonal box = (0 0 0) to (4 4 4)
create_atoms CPU = 0.001 seconds
mass * 180.88
displace_atoms all random 0.1 0.1 0.1 123456
Displacing atoms ...
# set up dummy potential to satisfy cutoff
variable rcutfac equal 6.0
pair_style zero ${rcutfac}
pair_style zero 6
pair_coeff * *
# set up per-atom computes
compute ld all pod/atom Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
compute dd all podd/atom Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
# set up compute snap generating global array
compute gdd all pod/global Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
#fix gdd all ave/time 1 1 1 c_gdd[*] file pod.gdd.dat mode vector
compute ldd all pod/local Ta_param.pod Ta_coefficients.pod Ta Ta
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
number of environment clusters: 1
number of principal compoments: 2
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body radial basis functions: 6
three-body radial basis functions: 5
three-body angular degree: 4
four-body radial basis functions: 0
four-body angular degree: 0
five-body radial basis functions: 0
five-body angular degree: 0
six-body radial basis functions: 0
six-body angular degree: 0
seven-body radial basis functions: 0
seven-body angular degree: 0
number of local descriptors per element for one-body potential: 1
number of local descriptors per element for two-body potential: 6
number of local descriptors per element for three-body potential: 25
number of local descriptors per element for four-body potential: 0
number of local descriptors per element for five-body potential: 0
number of local descriptors per element for six-body potential: 0
number of local descriptors per element for seven-body potential: 0
number of local descriptors per element for all potentials: 32
number of global descriptors: 32
**************** End of POD Potentials ****************
**************** Begin of Model Coefficients ****************
total number of coefficients for POD potential: 32
total number of elements for PCA projection matrix: 0
total number of elements for PCA centroids: 0
**************** End of Model Coefficients ****************
#fix ldd all ave/time 1 1 1 c_ldd[*] file pod.ldd.dat mode vector
#dump mydump_ld all custom 1000 dump_ld id c_ld[*]
#dump mydump_dd all custom 1000 dump_dd id c_dd[*]
variable sample_ld1 equal C_ld[1][10] # Arbitrary local descriptor
fix ldprint all print 1 "${sample_ld1}"
run ${nsteps}
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
WARNING: More than one compute pod (src/ML-POD/compute_pod_atom.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_podd_atom.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_pod_global.cpp:87)
WARNING: More than one compute pod (src/ML-POD/compute_pod_local.cpp:89)
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8
ghost atom cutoff = 8
binsize = 4, bins = 1 1 1
5 neighbor lists, perpetual/occasional/extra = 1 4 0
(1) pair zero, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
(2) compute pod/atom, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(3) compute podd/atom, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(4) compute pod/global, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(5) compute pod/local, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
0.344594831165384
Per MPI rank memory allocation (min/avg/max) = 6.326 | 6.326 | 6.326 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 0 0 0 0
Loop time of 1.23e-06 on 1 procs for 0 steps with 16 atoms
243.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.23e-06 | | |100.00
Nlocal: 16 ave 16 max 16 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1984 ave 1984 max 1984 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 4311 ave 4311 max 4311 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 8623 ave 8623 max 8623 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 8623
Ave neighs/atom = 538.9375
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,142 +0,0 @@
LAMMPS (22 Dec 2022)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.000 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coeff.pod Ta
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body potential: 3 6 6
three-body potential: 3 6 5 5
four-body SNAP potential: 0 0
quadratic POD potential: 0
number of basis functions for one-body potential: 1
number of basis functions for two-body potential: 6
number of basis functions for three-body potential: 25
number of basis functions for four-body potential: 0
number of descriptors for one-body potential: 1
number of descriptors for two-body potential: 6
number of descriptors for three-body potential: 25
number of descriptors for four-body potential: 0
number of descriptors for quadratic POD potential: 0
total number of descriptors for all potentials: 32
**************** End of POD Potentials ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.082 | 3.082 | 3.082 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.841512 0 -11.803037 -15933.622
10 296.91721 -11.841117 0 -11.803037 -15691.904
20 287.83555 -11.839952 0 -11.803037 -14982.977
30 273.25574 -11.838082 0 -11.803037 -13853.44
40 253.98821 -11.835611 0 -11.803037 -12375.459
50 231.10664 -11.832676 0 -11.803037 -10639.774
60 205.8844 -11.829441 0 -11.803037 -8747.2222
70 179.71599 -11.826085 0 -11.803037 -6799.8371
80 154.02711 -11.822791 0 -11.803037 -4892.7805
90 130.17821 -11.819732 0 -11.803036 -3108.1226
100 109.36842 -11.817063 0 -11.803036 -1510.9592
Loop time of 1.51641 on 1 procs for 100 steps with 128 atoms
Performance: 2.849 ns/day, 8.425 hours/ns, 65.945 timesteps/s, 8.441 katom-step/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.5158 | 1.5158 | 1.5158 | 0.0 | 99.96
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00023616 | 0.00023616 | 0.00023616 | 0.0 | 0.02
Output | 0.00010779 | 0.00010779 | 0.00010779 | 0.0 | 0.01
Modify | 9.7284e-05 | 9.7284e-05 | 9.7284e-05 | 0.0 | 0.01
Other | | 0.0001254 | | | 0.01
Nlocal: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 727 ave 727 max 727 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 7424 ave 7424 max 7424 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -1,142 +0,0 @@
LAMMPS (22 Dec 2022)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.000 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coeff.pod Ta
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body potential: 3 6 6
three-body potential: 3 6 5 5
four-body SNAP potential: 0 0
quadratic POD potential: 0
number of basis functions for one-body potential: 1
number of basis functions for two-body potential: 6
number of basis functions for three-body potential: 25
number of basis functions for four-body potential: 0
number of descriptors for one-body potential: 1
number of descriptors for two-body potential: 6
number of descriptors for three-body potential: 25
number of descriptors for four-body potential: 0
number of descriptors for quadratic POD potential: 0
total number of descriptors for all potentials: 32
**************** End of POD Potentials ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.062 | 3.062 | 3.062 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.841512 0 -11.803037 -15933.622
10 296.91721 -11.841117 0 -11.803037 -15691.904
20 287.83555 -11.839952 0 -11.803037 -14982.977
30 273.25574 -11.838082 0 -11.803037 -13853.44
40 253.98821 -11.835611 0 -11.803037 -12375.459
50 231.10664 -11.832676 0 -11.803037 -10639.774
60 205.8844 -11.829441 0 -11.803037 -8747.2222
70 179.71599 -11.826085 0 -11.803037 -6799.8371
80 154.02711 -11.822791 0 -11.803037 -4892.7805
90 130.17821 -11.819732 0 -11.803036 -3108.1226
100 109.36842 -11.817063 0 -11.803036 -1510.9592
Loop time of 0.437423 on 4 procs for 100 steps with 128 atoms
Performance: 9.876 ns/day, 2.430 hours/ns, 228.612 timesteps/s, 29.262 katom-step/s
98.0% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.41133 | 0.41882 | 0.42464 | 0.7 | 95.75
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.011279 | 0.017302 | 0.024975 | 3.7 | 3.96
Output | 0.00012956 | 0.00029493 | 0.00077991 | 0.0 | 0.07
Modify | 4.2093e-05 | 4.7838e-05 | 5.3039e-05 | 0.0 | 0.01
Other | | 0.0009598 | | | 0.22
Nlocal: 32 ave 32 max 32 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 431 ave 431 max 431 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 1856 ave 1856 max 1856 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,183 +0,0 @@
POD_coefficients: 182
-4.35182
3.57837
2.25497
4.84612
-2.06319
-1.17070
-0.23842
9.17160
36.02366
16.65304
-141.18403
37.17722
0.46028
-9.76148
-0.03681
15.64520
2.29791
0.02143
2.69735
-0.35336
0.51108
-2.36290
0.18617
-0.13079
1.02666
0.21514
0.08075
-0.28347
-0.45059
-0.24762
-1.13671
-0.30577
0.60504
0.31285
-0.10639
-0.06957
0.21961
-0.10426
0.80318
-11.41460
-10.26102
-0.03887
-18.86071
-4.47372
-1.76858
-0.92503
0.42654
0.35849
0.56611
-0.79354
5.65136
8.75283
-6.22283
-4.34623
10.20031
6.53360
7.16688
2.19236
5.90789
3.52173
7.97264
0.21104
-0.01015
0.01023
0.03088
0.10222
0.05366
-0.08037
-3.17612
-3.45669
-0.79282
-2.38323
-0.69797
-1.44780
-0.03351
-0.05645
0.01901
-0.01923
0.05401
-0.02095
1.45651
1.58812
1.41188
2.18122
3.04893
1.09294
3.03781
1.07249
0.50262
0.81150
0.35997
0.64602
-0.04245
0.00113
-0.02894
0.04382
-0.06556
0.00052
4.67541
0.11812
1.52428
-0.17075
0.20231
0.36857
0.61744
0.20190
-0.00816
0.16194
-0.12948
-0.02136
-2.19271
0.62510
0.20030
-0.27621
-0.58116
-0.21792
-1.82295
-0.32166
-0.64550
-0.11580
-0.02438
-0.08057
0.19538
0.04119
0.00323
0.06530
-0.02547
-0.01404
0.22336
-0.48191
-0.10715
-0.25685
-0.65069
-0.31428
-0.06947
0.11924
0.05467
0.12105
-0.03980
-0.00295
-2.14413
0.82345
0.23083
-0.24925
-0.36678
-0.16709
1.20410
-0.47756
-0.11104
0.09587
0.03722
0.00309
-0.29879
-0.06463
-0.10236
-0.02276
-0.06012
-0.02985
12.06876
-3.39995
0.85590
-0.77481
-1.13392
-0.40511
-0.08005
-0.07162
-0.05978
-0.02407
-0.06031
-0.02307
-10.24105
2.49356
-1.14052
0.70453
0.99988
0.33862
2.43469
-1.16557
-0.23708
0.03482
-0.05280
-0.02735

View File

@ -1,33 +0,0 @@
# DATE: 2022-11-30 UNITS: metal CONTRIBUTOR: Ngoc Cuong Nguyen, exapde@gmail.com CITATION: https://arxiv.org/abs/2209.02362
# chemical element symbols
species Ta
# periodic boundary conditions
pbc 1 1 1
# inner cut-off radius
rin 1.0
# outer cut-off radius
rcut 5.0
# polynomial degrees for radial basis functions
bessel_polynomial_degree 3
inverse_polynomial_degree 6
# one-body potential
onebody 1
# two-body linear POD potential
twobody_number_radial_basis_functions 6
# three-body linear POD potential
threebody_number_radial_basis_functions 5
threebody_number_angular_basis_functions 5
# four-body linear SNAP potential
fourbody_snap_twojmax 0
# quadratic POD potential
quadratic_pod_potential 1

View File

@ -1,387 +0,0 @@
# Displaced_A15.xyz
config # atoms energy DFT energy energy error force DFT force force error
1 64 -754.2481469 -754.220443 0.0004328739544 8.011514562 8.398670477 0.06376624845
2 64 -753.8045629 -753.865255 0.0009483144042 9.036674821 9.134430545 0.07283326238
3 64 -754.1013214 -754.0221 0.001237834258 8.637024088 9.017261102 0.06364800593
4 64 -754.2847414 -754.279613 8.013173542e-05 8.107730622 8.381725092 0.06510174353
5 64 -753.8382044 -753.777209 0.0009530527364 9.104258904 9.478314477 0.07200164536
6 64 -754.0793448 -754.048643 0.0004797149286 8.152198894 8.465317938 0.06707941365
7 64 -754.3310528 -754.317603 0.0002101531052 7.9440922 8.127690491 0.05987172107
8 64 -754.0070856 -753.969161 0.0005925720361 9.179443805 9.425464952 0.06695320222
9 64 -754.1450602 -754.141988 4.800358611e-05 8.574170786 8.821346913 0.06628506232
# Displaced_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
10 54 -630.8081935 -631.019667 0.003916175555 15.97497534 16.625876 0.1021118679
11 54 -631.4580134 -631.719595 0.004844103559 15.24068949 15.58666626 0.1043856792
12 54 -631.1667566 -631.386255 0.004064785931 15.46091788 15.92378883 0.1062824093
13 54 -632.3004944 -632.575826 0.005098733346 14.4261974 14.55977162 0.0983914465
14 54 -630.089475 -630.450212 0.006680315456 16.78432947 16.96340726 0.1085102316
15 54 -631.3402507 -631.669379 0.006094968558 15.8289421 16.05757315 0.1000888617
16 54 -632.0447348 -632.431277 0.007158189539 14.73098416 14.69810718 0.09621569386
17 54 -630.7186536 -630.960068 0.004470636457 15.62236511 15.99073148 0.1063789621
18 54 -623.3884977 -623.378198 0.0001907343232 23.9739298 24.67640432 0.1519105596
# Displaced_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
19 48 -556.0112403 -555.899463 0.002328692864 5.300795546 6.084617063 0.07215982294
20 48 -555.9884377 -555.922478 0.001374159425 5.509767245 6.297071211 0.08438730171
21 48 -555.8765558 -555.800269 0.001589309295 5.420812146 6.021098636 0.07404418561
22 48 -556.2511475 -556.196151 0.001145760427 4.541854917 5.127955094 0.06609455537
23 48 -555.6590668 -555.488929 0.003544536845 6.087063152 7.050223459 0.09107542897
24 48 -556.1020655 -556.027926 0.001544573067 5.048523277 5.611881174 0.06751584111
25 48 -556.0607474 -555.968399 0.001923924855 5.209756732 5.979217189 0.08024047849
26 48 -556.0598015 -556.047132 0.0002639485133 4.995519804 5.544452585 0.07745361595
27 48 -555.8256424 -555.747848 0.00162071731 5.762702675 6.47892568 0.08480576837
# Elastic_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
28 2 -23.69025375 -23.689367 0.0004433751768 0.0006229111456 0.0006222748589 9.850534294e-07
29 2 -23.690768 -23.689888 0.0004399996606 0.0006181832344 0.0006166052222 1.005063831e-06
30 2 -23.69082186 -23.689996 0.0004129292199 0.0008798076914 0.0008810425642 1.748431771e-06
31 2 -23.69166748 -23.690957 0.0003552395228 1.000599546e-06 0 4.011214433e-07
32 2 -23.69137648 -23.690521 0.0004277406839 0.0005992884516 0.0005982273815 7.219402767e-07
33 2 -23.69120607 -23.69038 0.000413036746 0.000594795449 0.0005925723585 9.949794864e-07
34 2 -23.6900782 -23.689202 0.000438099978 0.0006263336007 0.0006279363025 1.111474332e-06
35 2 -23.69121642 -23.690482 0.0003672088475 0.00086350893 0.0008640138888 1.400551425e-06
36 2 -23.69074792 -23.689902 0.0004229601404 0.0006176589245 0.0006152154094 9.894995842e-07
37 2 -23.6914111 -23.690563 0.0004240514006 0.0006052368582 0.0006038725031 4.148713688e-07
38 2 -23.69095105 -23.690207 0.0003720253444 0.001071999394 0.00107369735 7.195087511e-07
39 2 -23.69007856 -23.689285 0.0003967806815 0.0008875291033 0.000890013483 1.187797446e-06
40 2 -23.69061639 -23.689768 0.0004241940528 0.00107874486 0.001080249045 1.09850755e-06
41 2 -23.69064479 -23.68968 0.0004823957182 0.0008702114429 0.0008680034562 8.482668094e-07
42 2 -23.6910243 -23.690074 0.0004751495365 0.001368926593 0.001373818765 2.351835771e-06
43 2 -23.68910107 -23.688108 0.0004965341502 0.0006334704764 0.0006336134468 5.990110163e-07
44 2 -23.69003986 -23.689241 0.0003994287496 0.0008886654529 0.0008880101351 1.319380731e-06
45 2 -23.69042994 -23.68952 0.0004549677771 0.0008868888968 0.0008860011287 4.688590432e-07
46 2 -23.68738487 -23.686278 0.0005534329248 0.0006426681164 0.0006406777661 9.718938063e-07
47 2 -23.69095089 -23.690097 0.0004269463837 0.0008409065407 0.0008410160522 1.331153983e-06
48 2 -23.69158161 -23.690811 0.0003853032969 0.0008464480591 0.0008500070588 1.611890257e-06
49 2 -23.69114597 -23.690266 0.0004399838162 0.001039354626 0.001044322747 3.354760892e-06
50 2 -23.6914223 -23.690597 0.0004126524984 0.001045529019 0.001050833003 2.164890519e-06
51 2 -23.69157045 -23.690673 0.000448723371 0.0006045419676 0.0006038907186 7.138092253e-07
52 2 -23.69135377 -23.690551 0.0004013838132 0.0008554941993 0.0008590064028 1.199818147e-06
53 2 -23.6914855 -23.690693 0.0003962481391 0.0008561040807 0.0008590110593 1.062310127e-06
54 2 -23.69110782 -23.69021 0.0004489100066 0.0008699576152 0.0008730051546 1.100920756e-06
55 2 -23.68987142 -23.688943 0.0004642105928 0.0008789741194 0.0008800306813 8.92018913e-07
56 2 -23.69108099 -23.690136 0.0004724937378 0.0005971006713 0.000593996633 9.809423198e-07
57 2 -23.6884849 -23.687444 0.0005204491042 0.000904649919 0.000903059245 1.159812589e-06
58 2 -23.69061659 -23.689801 0.0004077963743 0.0008734822906 0.0008740011442 2.825876968e-07
59 2 -23.69129673 -23.690408 0.0004443659273 8.294238722e-07 0 3.094976672e-07
60 2 -23.69128183 -23.690362 0.0004599146039 0.0006083806397 0.0006067503605 7.610598464e-07
61 2 -23.68992958 -23.688881 0.0005242884644 0.000821029922 0.0008250054545 1.71686782e-06
62 2 -23.6913441 -23.690515 0.0004145518648 0.001475621399 0.001475779794 2.84677577e-06
63 2 -23.69141171 -23.690551 0.0004303564504 0.0005957866015 0.0005996599036 1.20514709e-06
64 2 -23.69029628 -23.689487 0.0004046403158 0.0006212225944 0.0006194384554 9.873937532e-07
65 2 -23.69072139 -23.68986 0.0004306945962 0.0008858828979 0.0008860124153 5.860284088e-07
66 2 -23.69018379 -23.689288 0.0004478949008 0.001400963016 0.001396479144 1.244329984e-06
67 2 -23.69129611 -23.690457 0.0004195546182 0.0005914019669 0.0005939831647 1.147186262e-06
68 2 -23.69084551 -23.689792 0.0005267528672 0.0008274902414 0.0008340587509 2.923475453e-06
69 2 -23.69101454 -23.690006 0.0005042723904 0.0005874526839 0.0005897694465 1.183912924e-06
70 2 -23.69137638 -23.690571 0.000402691994 0.0005935054979 0.0005939781141 8.884918862e-07
71 2 -23.69114123 -23.690213 0.0004641143201 0.001085937193 0.001084315452 6.623820068e-07
72 2 -23.69146017 -23.690617 0.0004215869658 0.0005980165481 0.0006024682564 1.268404944e-06
73 2 -23.69063494 -23.689761 0.0004369696294 0.0008787872001 0.0008790688255 2.274049375e-06
74 2 -23.69116059 -23.69027 0.0004452958397 6.913233052e-07 0 2.060281613e-07
75 2 -23.69134793 -23.690599 0.0003744660576 0.0006108390866 0.0006137752031 6.96527736e-07
76 2 -23.69149586 -23.69061 0.0004429283645 9.198413091e-07 0 3.754401369e-07
77 2 -23.69139951 -23.690603 0.0003982565418 0.0008543320292 0.0008590331775 1.578633627e-06
78 2 -23.68884519 -23.687908 0.0004685934904 0.0009053957054 0.0009010105438 1.657834627e-06
79 2 -23.69142551 -23.690688 0.0003687527847 0.0008461959647 0.0008470064935 1.246502358e-06
80 2 -23.69088798 -23.689988 0.0004499883039 0.0006191457459 0.0006194465272 7.974697206e-07
81 2 -23.69054504 -23.689613 0.0004660181693 0.0008740608763 0.0008740732235 7.595219281e-07
82 2 -23.69150291 -23.690678 0.0004124547512 0.000610815565 0.0006123757017 8.071847352e-07
83 2 -23.69107508 -23.69017 0.0004525405781 0.0008712164372 0.0008750051428 1.391960695e-06
84 2 -23.68888774 -23.687892 0.0004978720826 0.001115255323 0.001112070142 1.300271383e-06
85 2 -23.69100617 -23.690132 0.0004370853773 0.0008623539978 0.000868018433 1.989797184e-06
86 2 -23.69156961 -23.690843 0.0003633026522 0.0006034844173 0.0006081134763 1.367563513e-06
87 2 -23.6914135 -23.690598 0.0004077495027 0.001205622469 0.001217674833 4.139579599e-06
88 2 -23.69152569 -23.690656 0.0004348453461 0.0005982210923 0.0006024765556 1.339909066e-06
89 2 -23.69122964 -23.690254 0.00048782182 0.001039614512 0.001043496047 2.818899799e-06
90 2 -23.69160573 -23.690694 0.0004558641588 0.0006005238032 0.0006010740387 4.468144277e-07
91 2 -23.69097667 -23.690097 0.0004398327929 0.0008742196236 0.0008730234819 9.401054078e-07
92 2 -23.68931978 -23.688402 0.000458891277 0.0006323492378 0.000632180354 2.788895255e-07
93 2 -23.68957636 -23.688669 0.0004536814608 0.001093068336 0.001092474256 1.597403354e-06
94 2 -23.69136079 -23.690538 0.0004113951269 0.0008559692215 0.0008610145179 1.717480332e-06
95 2 -23.69064046 -23.689722 0.0004592296819 0.0006203235661 0.0006251287867 1.466428815e-06
96 2 -23.69148677 -23.690581 0.0004528827615 7.127210559e-07 0 2.255863159e-07
97 2 -23.68967251 -23.688755 0.0004587561741 0.0006269092047 0.0006251143895 8.456044924e-07
98 2 -23.69038245 -23.689312 0.0005352258985 0.0008260738577 0.0008290597083 1.434578094e-06
99 2 -23.6885155 -23.687388 0.000563750435 0.001127068066 0.001120237475 2.790106364e-06
100 2 -23.69147138 -23.690664 0.0004036883861 0.0006101343713 0.0006109402589 2.333308226e-07
101 2 -23.69059185 -23.68941 0.0005909264985 0.0005851627979 0.0005883553348 1.578359791e-06
102 2 -23.69082355 -23.690035 0.0003942730081 0.0008795919888 0.0008810062429 8.322915827e-07
103 2 -23.69101815 -23.690015 0.0005015766298 0.0008420116739 0.0008450195264 1.339928081e-06
104 2 -23.6915919 -23.690752 0.0004199497676 0.0005974770628 0.0005996415596 9.70808844e-07
105 2 -23.69060481 -23.689825 0.0003899065755 0.0008774617579 0.0008800215906 1.681761199e-06
106 2 -23.69149834 -23.690562 0.0004681676 0.0008527074936 0.0008560011682 1.11226924e-06
107 2 -23.69145561 -23.690622 0.0004168050595 0.0008363624298 0.0008390017878 8.930611273e-07
108 2 -23.68965306 -23.688764 0.0004445297309 0.0008936263738 0.0008910185183 1.309339573e-06
109 2 -23.69077552 -23.690011 0.0003822592712 0.0006203793746 0.0006194287691 3.133550229e-07
110 2 -23.68867102 -23.687696 0.0004875100015 0.001086068328 0.001087589996 1.327020171e-06
111 2 -23.69172933 -23.691019 0.0003551646935 0.000852013148 0.0008540035129 9.847230007e-07
112 2 -23.68991099 -23.689025 0.000442996005 6.46227386e-07 0 2.557212911e-07
113 2 -23.69080506 -23.689952 0.0004265318142 7.012777671e-07 0 2.758977769e-07
114 2 -23.69152793 -23.69061 0.0004589654148 0.0008542966264 0.0008580011655 1.338482046e-06
115 2 -23.69153556 -23.690595 0.0004702783823 0.000867974804 0.0008680069124 6.687384672e-07
116 2 -23.69117399 -23.690231 0.000471493636 0.0005924023762 0.0005925892338 1.259776007e-07
117 2 -23.69139497 -23.690469 0.0004629856458 0.0008486906688 0.0008500294113 6.344879116e-07
118 2 -23.69122801 -23.690482 0.0003730070077 0.0008734801582 0.0008740102974 2.172190141e-07
119 2 -23.69055118 -23.689613 0.0004690919274 0.0008237358825 0.0008320192305 2.927942421e-06
120 2 -23.68847553 -23.687426 0.0005247657372 0.001093739709 0.00109577735 8.307823424e-07
121 2 -23.69041353 -23.689562 0.000425762889 0.0006210724415 0.0006265237426 1.574752432e-06
122 2 -23.69137916 -23.6904 0.0004895814578 3.712921801e-07 0 1.509058252e-07
123 2 -23.69152029 -23.690561 0.0004796427403 0.0005964911748 0.0005982273815 1.201511775e-06
124 2 -23.69012377 -23.689107 0.0005083837539 0.0008124995989 0.0008180073349 1.97846325e-06
125 2 -23.69112303 -23.690145 0.000489014125 0.0008742245309 0.0008740766557 1.981010569e-06
126 2 -23.6913827 -23.690482 0.00045035056 0.0005944563316 0.0005939983165 2.227151791e-07
127 2 -23.69071568 -23.689864 0.0004258388591 0.0008855411376 0.0008860124153 7.974985004e-07
# Elastic_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
128 4 -46.43709855 -46.437936 0.0002093617328 0.0008950059332 0.001265949446 0.0001464529791
129 4 -46.4407039 -46.438504 0.0005499744469 0.0009975948265 0.001492549497 0.0001384062515
130 4 -46.43497365 -46.436378 0.0003510867184 0.0005521282525 0.000810592376 9.989141969e-05
131 4 -46.44077415 -46.441551 0.0001942123898 0.001132197907 0.001283675193 6.296966657e-05
132 4 -46.41517164 -46.416957 0.0004463408133 0.000917990147 0.001186145859 8.226324971e-05
133 4 -46.43849879 -46.440495 0.0004990529713 0.001000780113 0.001212440514 6.935590465e-05
134 4 -46.43777706 -46.437972 4.873595839e-05 0.001389269665 0.002358226452 0.0002414827518
135 4 -46.44772061 -46.44586 0.0004651524929 0.00136379307 0.002033949852 0.0001874009366
136 4 -46.43566097 -46.435744 2.075858871e-05 0.0009531675039 0.001690849491 0.0002499304712
137 4 -46.4397151 -46.438209 0.0003765248409 0.0008871611703 0.001160049999 6.827992039e-05
138 4 -46.42609455 -46.42629 4.886349894e-05 0.0005556350766 0.0005297018029 1.21651498e-05
139 4 -46.44149051 -46.443301 0.0004526223375 0.001132510738 0.001818421568 0.0001734412988
140 4 -46.43896893 -46.439002 8.267473937e-06 0.001179879164 0.001416973535 6.937478941e-05
141 4 -46.43123555 -46.432438 0.0003006112875 0.001147766739 0.001010469198 6.008540236e-05
142 4 -46.41017485 -46.412654 0.0006197883649 0.001371501311 0.001801959766 0.0001610014112
143 4 -46.44246774 -46.443231 0.0001908144167 0.0008879088126 0.001691590967 0.0001867981938
144 4 -46.43057135 -46.431513 0.0002354128564 0.001455115574 0.001680544852 7.970584502e-05
145 4 -46.43314849 -46.435608 0.0006148766383 0.000895665005 0.0009593039143 1.661569891e-05
146 4 -46.43895751 -46.437689 0.0003171270659 0.001001644887 0.001217708504 8.864745791e-05
147 4 -46.4271122 -46.428447 0.0003336990143 0.001053852574 0.002060081552 0.0002791878204
148 4 -46.43182739 -46.432255 0.000106902789 0.0007125255966 0.0006274201144 7.371627608e-05
149 4 -46.44177161 -46.442315 0.0001358463057 0.001140463867 0.002424436842 0.0003371037421
150 4 -46.43717254 -46.436613 0.000139884251 0.0005515470124 0.0005321240457 4.25980675e-05
151 4 -46.43004027 -46.430825 0.0001961823592 0.001008902912 0.001399987143 0.0001075255834
152 4 -46.43208405 -46.43312 0.0002589881882 0.0005518528033 0.0007272771136 5.274203147e-05
153 4 -46.43371444 -46.434347 0.000158140244 0.0008969169177 0.001284451634 0.000116451331
154 4 -46.42879982 -46.430573 0.0004432948912 0.0009069765322 0.001315746176 0.0001014266222
155 4 -46.44729799 -46.445665 0.0004082485341 0.001210137892 0.00180789159 0.0001638465464
156 4 -46.43544342 -46.435898 0.0001136447769 0.0008978231434 0.001869300939 0.0002335504461
157 4 -46.44021163 -46.442107 0.0004738424917 0.0007064270827 0.0006020930161 3.471655618e-05
158 4 -46.43498956 -46.434432 0.0001393896227 0.0009533481605 0.001092982159 7.242855265e-05
159 4 -46.43803608 -46.436308 0.0004320210529 0.001263659168 0.001839150891 0.0001727461868
160 4 -46.42268734 -46.423938 0.0003126642441 0.001014412719 0.001463463016 0.0001717552709
161 4 -46.42662921 -46.428115 0.0003714482928 0.0007136207063 0.0008584497656 6.405723837e-05
162 4 -46.42531434 -46.4269 0.0003964160099 0.001206355349 0.001845719914 0.0002046485876
163 4 -46.42224822 -46.421142 0.00027655517 0.001156356408 0.001309150106 4.994079618e-05
164 4 -46.4302643 -46.432233 0.0004921743842 0.0007882966199 0.0007253109678 2.466489974e-05
165 4 -46.43017473 -46.429408 0.0001916835518 0.000899021915 0.001068327665 6.208651635e-05
166 4 -46.44541887 -46.445145 6.846642975e-05 0.001028604344 0.001776038288 0.0001975509563
167 4 -46.43410132 -46.435868 0.0004416698523 0.00126629641 0.002376074704 0.0003279007933
168 4 -46.43919494 -46.439663 0.0001170158831 0.0005441672792 0.001119403413 0.0001039537827
169 4 -46.42584101 -46.428287 0.0006114968909 0.001286554794 0.001277000392 3.606396056e-05
170 4 -46.42254993 -46.424584 0.000508517271 0.0007166928246 0.0008032957114 3.058246984e-05
171 4 -46.41053526 -46.413045 0.0006274344802 0.001077488731 0.001248322074 4.395073797e-05
172 4 -46.43440112 -46.436994 0.0006482191497 0.0009567631962 0.001331939188 0.0001491134491
173 4 -46.44377744 -46.443604 4.335911262e-05 0.0009956173287 0.001177046303 8.761456142e-05
174 4 -46.44028269 -46.439718 0.0001411716593 9.067044161e-07 0 2.475504855e-07
175 4 -46.43723548 -46.435527 0.0004271206705 0.001133620344 0.0009338393866 8.014312499e-05
176 4 -46.43396161 -46.434787 0.0002063465503 0.001150111339 0.00117329195 4.934565354e-05
177 4 -46.43612253 -46.434929 0.0002983823621 0.001267526966 0.001349491756 5.093502218e-05
178 4 -46.42638491 -46.426499 2.852244117e-05 0.001164859691 0.001248937949 4.347949244e-05
179 4 -46.43717201 -46.437025 3.675245971e-05 0.0007725496777 0.000938418883 6.831038049e-05
180 4 -46.4281895 -46.428937 0.0001868757356 0.001151243959 0.001286352984 4.994282406e-05
181 4 -46.44116364 -46.442516 0.0003380892793 0.0007032387465 0.00094855469 0.0001088604201
182 4 -46.42978258 -46.428736 0.0002616440103 0.001009629916 0.001424321593 0.0001089615662
183 4 -46.43305551 -46.433359 7.587361447e-05 0.001156682853 0.001276381604 4.128766832e-05
184 4 -46.44006475 -46.438799 0.0003164382753 0.0007752996065 0.0008186940821 3.548756745e-05
185 4 -46.44169053 -46.441993 7.561864672e-05 0.0008970969052 0.001887735151 0.0002223397932
186 4 -46.43727222 -46.439033 0.0004401954936 0.0007708721088 0.000821568013 4.107007018e-05
187 4 -46.43632517 -46.436967 0.0001604574289 0.001052390296 0.001482323514 0.0001388091482
188 4 -46.42718259 -46.427245 1.560352526e-05 0.001072419721 0.001293885621 7.709435507e-05
189 4 -46.43874841 -46.438046 0.0001756024201 0.001260671216 0.001627288542 0.0001002074435
190 4 -46.41877429 -46.420083 0.0003271768634 0.00142160315 0.002395244873 0.0003233098312
191 4 -46.44621445 -46.445247 0.0002418615665 0.0009904374428 0.001219330964 5.687306262e-05
192 4 -46.44511464 -46.446044 0.0002323410927 0.0008790838348 0.001305329077 0.0001107509197
193 4 -46.43564394 -46.434472 0.0002929851777 0.000890378693 0.0008323340675 4.743679034e-05
194 4 -46.44317175 -46.44458 0.0003520619573 0.0007034014662 0.0009744208536 5.172015881e-05
195 4 -46.44087095 -46.441776 0.0002262624122 0.00113922313 0.001339231869 8.765052415e-05
196 4 -46.43719326 -46.436389 0.0002010659177 0.001277508928 0.001786741168 0.0001303767454
197 4 -46.44563996 -46.446416 0.0001940097871 0.0007007387602 0.0006588778339 5.645487424e-05
198 4 -46.44980864 -46.449806 6.606823266e-07 0.001232826529 0.002135055034 0.0002384857832
199 4 -46.42466674 -46.427189 0.0006305654832 0.001011828255 0.001050788276 2.797047454e-05
200 4 -46.42588993 -46.427857 0.000491766418 0.001010915484 0.001487666629 0.0001398462887
201 4 -46.44273693 -46.44004 0.0006742317456 0.0007050795233 0.000757202747 2.506458135e-05
202 4 -46.43659247 -46.437214 0.0001553829854 0.0008924045914 0.001505586265 0.0001475571029
203 4 -46.42189527 -46.422628 0.0001831835233 0.0009120248848 0.001601713458 0.0002207350143
204 4 -46.44387014 -46.443535 8.378431277e-05 0.001253187495 0.001590304373 0.0001006147174
205 4 -46.4386991 -46.439922 0.0003057254875 0.001138308324 0.001530493385 0.0001018467819
206 4 -46.43732669 -46.437675 8.707637653e-05 0.00144833639 0.002440246094 0.0003149341193
207 4 -46.44459348 -46.445558 0.0002411303465 0.0008716893522 0.00113392416 7.56134454e-05
208 4 -46.43888136 -46.439106 5.615896373e-05 0.001259801268 0.001830731002 0.0001709222499
209 4 -46.44452218 -46.443073 0.000362294488 0.0005355233492 0.0005766870902 1.79131844e-05
210 4 -46.44072829 -46.4397 0.0002570727366 0.0008912594074 0.001204174406 7.190949652e-05
211 4 -46.43632905 -46.436374 1.123701302e-05 0.00100454144 0.001461656594 0.0001640759619
212 4 -46.42622449 -46.426557 8.312836801e-05 0.0009090508417 0.001359624213 9.618645017e-05
213 4 -46.43334095 -46.434009 0.0001670117853 0.001064727099 0.001391131194 0.0001118380718
214 4 -46.43528491 -46.436262 0.0002442735765 0.001381671175 0.002503347159 0.0002862586192
215 4 -46.43302209 -46.434505 0.0003707286996 0.001050895795 0.001041637173 1.894959196e-05
216 4 -46.43866543 -46.438768 2.564354619e-05 0.001038218613 0.001098285027 4.514351427e-05
217 4 -46.43867092 -46.440254 0.000395771139 0.0005510961745 0.0006069892915 4.783705107e-05
218 4 -46.42481603 -46.42286 0.0004890086715 0.0005673661918 0.0007365242698 6.506184883e-05
219 4 -46.41707211 -46.418078 0.0002514715464 0.001292943265 0.002028412187 0.0002017017408
220 4 -46.44058128 -46.440513 1.706961588e-05 0.0008917162415 0.001158189967 9.459271337e-05
221 4 -46.40786735 -46.409824 0.000489161666 0.000915995593 0.001759573812 0.0002027400318
222 4 -46.44176165 -46.440329 0.0003581615225 0.0007050784001 0.0009534044263 7.330945846e-05
223 4 -46.43764613 -46.43773 2.096761683e-05 0.000774718051 0.000926180328 6.358620287e-05
224 4 -46.41646676 -46.416525 1.456068592e-05 0.0007183862165 0.0007573664899 3.367541267e-05
225 4 -46.44086814 -46.440293 0.0001437843048 0.0008909024924 0.0007725386722 2.803785114e-05
226 4 -46.44027213 -46.43839 0.0004705337314 0.000707862011 0.0005612022808 3.305821092e-05
227 4 -46.44117428 -46.438916 0.0005645706045 0.0008843758872 0.001650878554 0.0001728226219
# GSF_110.xyz
config # atoms energy DFT energy energy error force DFT force force error
228 24 -278.9717069 -279.068761 0.004043919984 1.716820818 1.756353161 0.02195804808
229 24 -279.8354387 -279.784296 0.002130947227 0.8360148085 0.9057668891 0.02306494198
230 24 -279.920921 -279.901657 0.0008026661363 0.2958425997 0.001565946359 0.01411644584
231 24 -279.6113309 -279.584238 0.001128870276 1.136927478 1.035572248 0.0268109436
232 24 -279.8354404 -279.784283 0.002131557004 0.8360112083 0.9056396189 0.02305363685
233 24 -279.302435 -279.302158 1.154096848e-05 1.736732738 1.771965137 0.03376130194
234 24 -279.5958843 -279.55564 0.001676844981 1.457718936 1.405626506 0.02601748107
235 24 -279.1575825 -279.246939 0.003723187357 0.7701803397 0.4813964151 0.04047323625
236 24 -279.3024375 -279.302157 1.168852836e-05 1.736736025 1.771953347 0.03376039536
237 24 -279.1575946 -279.246935 0.003722518226 0.7692677843 0.4809484798 0.04044520421
238 24 -279.9208868 -279.896025 0.001035907873 0.2963184571 0.01060549839 0.01410249844
239 24 -279.6115695 -279.584237 0.001138852664 1.13770573 1.035836121 0.02686761528
240 24 -279.064529 -279.124427 0.002495750967 1.76375665 1.809545887 0.03536482035
241 24 -279.3562359 -279.379366 0.000963755899 1.070359933 0.8982692706 0.03586365384
242 24 -279.3561337 -279.37937 0.0009681791432 1.070187041 0.898081355 0.03582334182
243 24 -279.0645273 -279.124427 0.002495818902 1.763753116 1.809523374 0.03536507377
244 24 -279.920921 -279.901657 0.0008026661364 0.295842601 0.001570374478 0.01411415473
245 24 -279.835369 -279.79264 0.001780376182 0.7694168746 0.8392614852 0.02365583077
246 24 -279.9208868 -279.896025 0.001035907873 0.2963184557 0.01060243293 0.01410273421
247 24 -279.0819585 -279.206496 0.005189061107 0.548788431 0.005326518563 0.03225764062
248 24 -279.5958869 -279.55564 0.001676956181 1.457719116 1.4056319 0.02601845486
249 24 -279.8353874 -279.79264 0.001781141415 0.7694021079 0.8392625708 0.0236575616
# GSF_112.xyz
config # atoms energy DFT energy energy error force DFT force force error
250 30 -345.1958147 -345.175835 0.0006659888828 1.417827685 1.057395322 0.04924259711
251 30 -346.4091654 -346.361714 0.001581712645 1.014644886 1.220284939 0.04659093523
252 30 -345.9623042 -345.795524 0.005559340233 1.678459906 2.112860875 0.06265040874
253 30 -345.1047773 -345.164602 0.001994157897 1.817583015 1.765832199 0.05258058387
254 30 -346.5687925 -346.593523 0.0008243492414 0.5266160053 0.01148867129 0.03755504848
255 30 -346.4165137 -346.396186 0.0006775885975 1.101956458 0.9954683928 0.04399110332
256 30 -345.2521553 -345.319406 0.00224168982 2.024011434 1.772040852 0.05936118376
257 30 -345.5898528 -345.594794 0.0001647082757 2.048144835 1.516014157 0.06040121307
258 30 -346.0297765 -345.98566 0.001470549283 1.767327791 1.406252265 0.05243702855
259 30 -345.5053828 -345.383994 0.004046292585 1.336428571 0.963574308 0.05104895348
260 30 -346.5686342 -346.582564 0.0004643258311 0.5264214865 0.0126740587 0.03760971825
261 30 -345.4208872 -345.452139 0.001041727499 3.011665478 2.787719406 0.06345649484
262 30 -346.5687922 -346.593523 0.000824358736 0.5266293188 0.01148834 0.03755660424
263 30 -345.4303122 -345.281949 0.004945440141 1.947208063 1.873142686 0.05337069289
264 30 -345.95932 -345.928661 0.001021967701 2.362723976 2.100874472 0.05002108374
265 30 -345.0137677 -345.111657 0.003262976998 3.19378163 3.358068319 0.06536423133
266 30 -346.4078756 -346.367123 0.001358420679 1.085591236 1.335797131 0.04639235845
267 30 -346.5685864 -346.582565 0.0004659529893 0.5264879505 0.01254743735 0.03760890253
268 30 -344.8663405 -344.91356 0.001573984549 2.930408919 3.441834403 0.06926998065
269 30 -345.9709087 -345.836703 0.004473521714 1.391835251 1.608769148 0.0557054003
270 30 -345.0229891 -344.984307 0.001289401895 2.372016819 2.542628782 0.05571749983
271 30 -346.4089445 -346.393931 0.0005004501598 1.297845976 1.211680725 0.04319349672
# Liquid.xyz
config # atoms energy DFT energy energy error force DFT force force error
272 100 -1105.559726 -1105.601723 0.0004199683753 30.70196346 31.39853886 0.2273901869
273 100 -1099.629534 -1099.673012 0.0004347802829 31.98646736 32.03167218 0.2226202775
274 100 -1121.43168 -1121.31506 0.001166195007 21.23863202 20.81076453 0.2037539309
# Surface.xyz
config # atoms energy DFT energy energy error force DFT force force error
275 24 -279.9208871 -279.911828 0.0003774634676 0.2963192975 0.002753093533 0.01433131958
276 48 -554.241479 -555.359452 0.02329110353 1.363109446 0.003020630398 0.0573825018
277 40 -459.5808398 -459.216162 0.009116945293 3.33149843 5.0461364 0.07877996461
278 40 -460.5932467 -461.144076 0.01377073163 0.8854479197 0.005582740008 0.03813349763
279 24 -279.8214986 -279.635146 0.007764693427 0.982012045 1.288799837 0.01857540863
280 30 -346.5687933 -346.592525 0.000791056775 0.5266154723 0.008446203407 0.03726637101
281 30 -346.0051971 -345.744506 0.008689702509 2.266739618 3.124961367 0.06591070739
# Volume_A15.xyz
config # atoms energy DFT energy energy error force DFT force force error
282 8 -67.00264003 -66.990732 0.001488503243 8.978495355e-15 0 1.554167674e-15
283 8 -72.95775645 -72.957807 6.318335608e-06 6.173563626e-14 0 9.086337007e-15
284 8 -94.15079079 -94.145745 0.0006307242955 1.257001279e-14 0 1.651353601e-15
285 8 -94.55576971 -94.554682 0.0001359640227 7.864226848e-15 0 1.351609702e-15
286 8 -79.41650989 -79.438363 0.002731638712 2.922311383e-14 0 4.6112564e-15
287 8 -69.6319055 -69.627817 0.0005110626381 3.131450246e-15 0 5.512083845e-16
288 8 -82.6140242 -82.604907 0.001139650038 1.015341342e-14 0 1.573105072e-15
289 8 14.8871533 14.89048 0.0004158371788 2.179622647e-13 0 3.718594804e-14
290 8 -94.35602701 -94.367599 0.001446498413 1.681327296e-14 0 2.430951383e-15
291 8 -89.2494361 -89.248227 0.0001511372198 1.602695388e-14 0 2.27566808e-15
292 8 -87.22359357 -87.211997 0.001449571359 5.891018761e-15 0 1.023486851e-15
293 8 -93.64917633 -93.66897 0.002474209194 1.737070481e-15 0 2.726891929e-16
294 8 -7.974970896 -7.989166 0.001774387948 5.346466786e-13 0 7.317740119e-14
295 8 -84.99735697 -84.982834 0.001815371577 1.628985705e-15 0 2.68014777e-16
296 8 -92.51696442 -92.536373 0.002426072159 3.702813287e-14 0 5.965135793e-15
297 8 -26.79883523 -26.77612 0.002839403163 2.314654929e-13 0 3.768467838e-14
298 8 -77.53738473 -77.544107 0.0008402842141 2.975839122e-15 0 5.1405639e-16
299 8 -80.11476757 -80.114217 6.882064461e-05 9.414427891e-15 0 1.325473296e-15
300 8 -42.12903262 -42.143041 0.001751047533 2.610061598e-13 0 3.565304919e-14
301 8 -91.02990946 -91.040671 0.001345192241 8.368513177e-15 0 1.310872707e-15
302 8 -84.50933121 -84.499231 0.001262526145 5.714110441e-14 0 1.066782658e-14
303 8 -61.79844789 -61.825173 0.003340638518 6.62953849e-15 0 1.015391475e-15
304 8 -91.13057644 -91.156873 0.003287069749 4.719369293e-15 0 6.76336609e-16
305 8 -54.64916677 -54.658744 0.001197153514 1.464956394e-13 0 2.113576767e-14
306 8 -72.27319255 -72.277255 0.0005078062019 8.658199332e-16 0 1.410908427e-16
307 8 -74.9147183 -74.923334 0.001076962465 4.434219242e-15 0 6.615078855e-16
308 8 -64.81833247 -64.798066 0.002533308735 3.748412002e-14 0 5.576268614e-15
309 8 -93.03489726 -93.048342 0.001680592822 1.857310674e-14 0 2.604235054e-15
310 8 -64.39098013 -64.38702 0.0004950167019 5.001001166e-15 0 5.722057666e-16
311 8 -88.36401125 -88.352871 0.001392531574 1.47982807e-14 0 2.645507511e-15
# Volume_BCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
312 2 -16.76594323 -16.763625 0.0011591154 3.058627912e-16 0 7.979727989e-17
313 2 16.31372699 16.314145 0.0002090027274 8.186542193e-13 0 2.624717573e-13
314 2 -21.21034402 -21.209071 0.000636508568 6.029606478e-15 0 1.688464572e-15
315 2 -15.7845968 -15.780524 0.002036397536 5.051396178e-14 0 1.863971217e-14
316 2 -18.99841038 -19.002205 0.001897311189 3.70201696e-14 0 1.247006253e-14
317 2 -22.6245193 -22.620568 0.001975650815 3.866866338e-15 0 1.424786215e-15
318 2 4.098164527 4.096885 0.0006397634862 6.334293648e-14 0 2.151519703e-14
319 2 56.26275599 56.26276 2.005221472e-06 2.247995559e-12 0 7.580021273e-13
320 2 -22.58944012 -22.585113 0.002163562406 1.113168148e-15 0 3.747002708e-16
321 2 -21.79724015 -21.795501 0.0008695760695 1.09344287e-15 0 3.700743415e-16
322 2 33.11015633 33.110078 3.916354612e-05 4.904232742e-13 0 1.492139745e-13
323 2 -20.88315873 -20.885998 0.001419634185 1.859416424e-15 0 7.401486831e-16
324 2 -23.59568898 -23.601336 0.002823509954 1.486164289e-15 0 4.916167932e-16
325 2 -23.20858071 -23.207313 0.0006338528204 8.900302643e-16 0 3.147520853e-16
326 2 -19.89310507 -19.898089 0.002491965758 8.784897284e-16 0 3.064678141e-16
327 2 -23.40543384 -23.405474 2.007854096e-05 9.04864091e-16 0 2.55004351e-16
328 2 -4.783890314 -4.781324 0.00128315718 1.026901322e-13 0 2.670433319e-14
329 2 -18.86311291 -18.864936 0.0009115426716 2.305551267e-16 0 7.864079758e-17
330 2 -17.81642588 -17.813086 0.001669937839 1.716587549e-16 0 6.245004514e-17
331 2 -11.19369732 -11.197201 0.001751842379 6.247077482e-14 0 2.245483891e-14
332 2 -23.6830862 -23.696705 0.006809399945 1.843658888e-15 0 7.087971703e-16
# Volume_FCC.xyz
config # atoms energy DFT energy energy error force DFT force force error
333 4 -19.07363592 -19.075994 0.0005895202867 4.838977351e-14 0 1.162785146e-14
334 4 -34.87911157 -34.873619 0.001373142448 2.834773835e-16 0 5.955883934e-17
335 4 -43.95312208 -43.950003 0.0007797711561 2.246784353e-15 0 4.928060275e-16
336 4 -40.99484531 -40.991909 0.0007340763059 8.408019466e-15 0 2.017013582e-15
337 4 -43.44688587 -43.453929 0.001760782795 1.105978561e-14 0 2.960654589e-15
338 4 -42.69057259 -42.686077 0.001123896575 2.15077979e-15 0 5.053466326e-16
339 4 -33.22567657 -33.224653 0.0002558935333 6.71927174e-16 0 1.601728009e-16
340 4 -26.86518979 -26.862709 0.0006201969912 3.31529179e-14 0 7.652202346e-15
341 4 -25.52095377 -25.519883 0.0002676922193 3.655453829e-16 0 7.199102425e-17
342 4 3.462101367 3.463071 0.0002424081278 1.816025861e-13 0 4.023864575e-14
343 4 -31.5932268 -31.59595 0.0006807997919 3.628185658e-16 0 8.557969148e-17
344 4 -45.10086835 -45.100466 0.0001005873411 2.465692424e-15 0 5.323999453e-16
345 4 -46.05341345 -46.052258 0.0002888629271 8.511696107e-16 0 1.9963776e-16
346 4 -29.99832749 -30.001189 0.0007153784531 3.847020655e-16 0 1.014813233e-16
347 4 -22.85257327 -22.8504 0.0005433170403 7.603433695e-16 0 2.026735261e-16
348 4 -9.165925377 -9.164691 0.0003085942037 6.355991568e-14 0 1.496321874e-14
349 4 -24.14844545 -24.150343 0.0004743875843 4.762376771e-16 0 9.887923813e-17
350 4 -46.43546878 -46.426795 0.002168445654 2.389854689e-15 0 6.508104241e-16
351 4 -28.45126723 -28.451145 3.055783253e-05 7.811231556e-15 0 2.246466901e-15
352 4 40.34134283 40.341566 5.579164045e-05 4.392900751e-13 0 1.047052708e-13
353 4 19.618876 19.617912 0.0002409995917 2.653013854e-13 0 4.82657932e-14
354 4 -26.95747287 -26.954384 0.0007722170381 5.063966549e-16 0 1.225871256e-16
355 4 -46.33491981 -46.323696 0.002805953551 3.211950954e-15 0 8.731441496e-16
356 4 -45.83316791 -45.828947 0.001055227438 1.228572267e-14 0 3.512236798e-15
357 4 -38.16058675 -38.16029 7.418651586e-05 1.457184241e-15 0 3.625572065e-16
358 4 -32.91257363 -32.919741 0.001791843199 5.73065335e-14 0 1.529158744e-14
359 4 -41.2675262 -41.272675 0.001287199354 7.138843467e-15 0 2.027950471e-15
360 4 -39.74460494 -39.753322 0.002179265661 7.861049173e-16 0 1.651275908e-16
361 4 -37.55548161 -37.547435 0.002011652753 1.155947671e-14 0 2.497062164e-15
362 4 -36.53186908 -36.52595 0.001479769423 3.660718685e-16 0 9.51206706e-17
363 4 -45.01550153 -45.016087 0.0001463673621 1.766214736e-15 0 4.760370339e-16

View File

@ -1,20 +0,0 @@
**************** Begin of Error Analysis for the Training Data Set ****************
---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.000554 0.000680 0.066393 0.083014
Displaced_BCC.xyz 9 486 0.004724 0.005103 0.108253 0.139461
Displaced_FCC.xyz 9 432 0.001704 0.001900 0.077531 0.097471
Elastic_BCC.xyz 100 200 0.000444 0.000446 0.000001 0.000002
Elastic_FCC.xyz 100 400 0.000273 0.000327 0.000110 0.000163
GSF_110.xyz 22 528 0.001852 0.002260 0.027303 0.044765
GSF_112.xyz 22 660 0.001839 0.002404 0.051415 0.080350
Liquid.xyz 3 300 0.000674 0.000758 0.217921 0.276109
Surface.xyz 7 236 0.009115 0.011661 0.047949 0.105123
Volume_A15.xyz 30 240 0.001407 0.001693 0.000000 0.000000
Volume_BCC.xyz 21 42 0.001497 0.002077 0.000000 0.000000
Volume_FCC.xyz 31 124 0.000870 0.001139 0.000000 0.000000
---------------------------------------------------------------------------------------------------
All files 363 4224 0.001053 0.002171 0.059051 0.106960
---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set ****************

View File

@ -1,5 +0,0 @@
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod

View File

@ -1,114 +0,0 @@
LAMMPS (22 Dec 2022)
using 1 OpenMP thread(s) per MPI task
# Demonstrate fitpod for POD potential
units metal
fitpod Ta_param.pod Ta_data.pod
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body potential: 3 6 6
three-body potential: 3 6 5 5
four-body SNAP potential: 0 0
quadratic POD potential: 1
number of basis functions for one-body potential: 1
number of basis functions for two-body potential: 6
number of basis functions for three-body potential: 25
number of basis functions for four-body potential: 0
number of descriptors for one-body potential: 1
number of descriptors for two-body potential: 6
number of descriptors for three-body potential: 25
number of descriptors for four-body potential: 0
number of descriptors for quadratic POD potential: 150
total number of descriptors for all potentials: 182
**************** End of POD Potentials ****************
**************** Begin of Data File ****************
file format: extxyz
file extension: xyz
path to training data set: ../Ta/XYZ
path to test data set: ../Ta/XYZ
training fraction: 1
test fraction: 1
randomize training data set: 1
randomize test data set: 1
error analysis for training data set: 1
error analysis for test data set: 0
energy/force calculation for training data set: 0
energy/force calculation for test data set: 0
fitting weight for energy: 100
fitting weight for force: 1
fitting weight for stress: 0
fitting regularization parameter: 1e-10
**************** End of Data File ****************
**************** Begin of Training Data Set ****************
---------------------------------------------------------------
data file | number of configurations | number of atoms
---------------------------------------------------------------
Displaced_A15.xyz | 9 | 576
Displaced_BCC.xyz | 9 | 486
Displaced_FCC.xyz | 9 | 432
Elastic_BCC.xyz | 100 | 200
Elastic_FCC.xyz | 100 | 400
GSF_110.xyz | 22 | 528
GSF_112.xyz | 22 | 660
Liquid.xyz | 3 | 300
Surface.xyz | 7 | 236
Volume_A15.xyz | 30 | 240
Volume_BCC.xyz | 21 | 42
Volume_FCC.xyz | 31 | 124
---------------------------------------------------------------
number of files: 12
number of configurations in all files: 363
number of atoms in all files: 4224
minimum number of atoms: 2
maximum number of atoms: 100
**************** End of Training Data Set ****************
**************** Begin of Memory Allocation ****************
maximum number of atoms in periodic domain: 100
maximum number of atoms in extended domain: 2700
maximum number of neighbors in extended domain: 270000
size of double memory: 223201
size of int memory: 14709
size of descriptor matrix: 182 x 182
**************** End of Memory Allocation ****************
**************** Begin of Least-Squares Fitting ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
**************** End of Least-Squares Fitting ****************
**************** Begin of Error Calculation ****************
Configuration: # 1
Configuration: # 101
Configuration: # 201
Configuration: # 301
**************** End of Error Calculation ****************
**************** Begin of Error Analysis for the Training Data Set ****************
---------------------------------------------------------------------------------------------------
File | # configs | # atoms | MAE energy | RMSE energy | MAE force | RMSE force
---------------------------------------------------------------------------------------------------
Displaced_A15.xyz 9 576 0.000554 0.000680 0.066393 0.083014
Displaced_BCC.xyz 9 486 0.004724 0.005103 0.108253 0.139461
Displaced_FCC.xyz 9 432 0.001704 0.001900 0.077531 0.097471
Elastic_BCC.xyz 100 200 0.000444 0.000446 0.000001 0.000002
Elastic_FCC.xyz 100 400 0.000273 0.000327 0.000110 0.000163
GSF_110.xyz 22 528 0.001852 0.002260 0.027303 0.044765
GSF_112.xyz 22 660 0.001839 0.002404 0.051415 0.080350
Liquid.xyz 3 300 0.000674 0.000758 0.217921 0.276109
Surface.xyz 7 236 0.009115 0.011661 0.047949 0.105123
Volume_A15.xyz 30 240 0.001407 0.001693 0.000000 0.000000
Volume_BCC.xyz 21 42 0.001497 0.002077 0.000000 0.000000
Volume_FCC.xyz 31 124 0.000870 0.001139 0.000000 0.000000
---------------------------------------------------------------------------------------------------
All files 363 4224 0.001053 0.002171 0.059051 0.106960
---------------------------------------------------------------------------------------------------
**************** End of Error Analysis for the Training Data Set ****************
Total wall time: 0:00:01

View File

@ -1,142 +0,0 @@
LAMMPS (22 Dec 2022)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.000 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coefficients.pod Ta
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body potential: 3 6 6
three-body potential: 3 6 5 5
four-body SNAP potential: 0 0
quadratic POD potential: 1
number of basis functions for one-body potential: 1
number of basis functions for two-body potential: 6
number of basis functions for three-body potential: 25
number of basis functions for four-body potential: 0
number of descriptors for one-body potential: 1
number of descriptors for two-body potential: 6
number of descriptors for three-body potential: 25
number of descriptors for four-body potential: 0
number of descriptors for quadratic POD potential: 150
total number of descriptors for all potentials: 182
**************** End of POD Potentials ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.082 | 3.082 | 3.082 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.847697 0 -11.809222 13502.169
10 296.47494 -11.847245 0 -11.809222 13529.584
20 286.0918 -11.845913 0 -11.809222 13613.884
30 269.42275 -11.843776 0 -11.809222 13759.746
40 247.39423 -11.84095 0 -11.809222 13972.073
50 221.23976 -11.837596 0 -11.809222 14253.202
60 192.43252 -11.833901 0 -11.809222 14600.367
70 162.59874 -11.830075 0 -11.809221 15004.156
80 133.41531 -11.826332 0 -11.809221 15448.418
90 106.49785 -11.82288 0 -11.809221 15911.638
100 83.288219 -11.819903 0 -11.809221 16369.373
Loop time of 1.51781 on 1 procs for 100 steps with 128 atoms
Performance: 2.846 ns/day, 8.432 hours/ns, 65.884 timesteps/s, 8.433 katom-step/s
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.5172 | 1.5172 | 1.5172 | 0.0 | 99.96
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.0002542 | 0.0002542 | 0.0002542 | 0.0 | 0.02
Output | 0.00013308 | 0.00013308 | 0.00013308 | 0.0 | 0.01
Modify | 0.00012159 | 0.00012159 | 0.00012159 | 0.0 | 0.01
Other | | 0.0001446 | | | 0.01
Nlocal: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 727 ave 727 max 727 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 7424 ave 7424 max 7424 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -1,142 +0,0 @@
LAMMPS (22 Dec 2022)
using 1 OpenMP thread(s) per MPI task
# Demonstrate POD Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.316
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.316
Lattice spacing in x,y,z = 3.316 3.316 3.316
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
using lattice units in orthogonal box = (0 0 0) to (13.264 13.264 13.264)
create_atoms CPU = 0.000 seconds
mass 1 180.88
# POD potential
pair_style pod
pair_coeff * * Ta_param.pod Ta_coefficients.pod Ta
Reading potential file Ta_param.pod with DATE: 2022-11-30
**************** Begin of POD Potentials ****************
species: Ta
periodic boundary conditions: 1 1 1
inner cut-off radius: 1
outer cut-off radius: 5
bessel polynomial degree: 3
inverse polynomial degree: 6
one-body potential: 1
two-body potential: 3 6 6
three-body potential: 3 6 5 5
four-body SNAP potential: 0 0
quadratic POD potential: 1
number of basis functions for one-body potential: 1
number of basis functions for two-body potential: 6
number of basis functions for three-body potential: 25
number of basis functions for four-body potential: 0
number of descriptors for one-body potential: 1
number of descriptors for two-body potential: 6
number of descriptors for three-body potential: 25
number of descriptors for four-body potential: 0
number of descriptors for quadratic POD potential: 150
total number of descriptors for all potentials: 182
**************** End of POD Potentials ****************
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459 loop geom
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6
ghost atom cutoff = 6
binsize = 3, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pod, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.062 | 3.062 | 3.062 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.847697 0 -11.809222 13502.169
10 296.47494 -11.847245 0 -11.809222 13529.584
20 286.0918 -11.845913 0 -11.809222 13613.884
30 269.42275 -11.843776 0 -11.809222 13759.746
40 247.39423 -11.84095 0 -11.809222 13972.073
50 221.23976 -11.837596 0 -11.809222 14253.202
60 192.43252 -11.833901 0 -11.809222 14600.367
70 162.59874 -11.830075 0 -11.809221 15004.156
80 133.41531 -11.826332 0 -11.809221 15448.418
90 106.49785 -11.82288 0 -11.809221 15911.638
100 83.288219 -11.819903 0 -11.809221 16369.373
Loop time of 0.427448 on 4 procs for 100 steps with 128 atoms
Performance: 10.106 ns/day, 2.375 hours/ns, 233.947 timesteps/s, 29.945 katom-step/s
97.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.40622 | 0.40946 | 0.419 | 0.9 | 95.79
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.0071192 | 0.016995 | 0.020439 | 4.4 | 3.98
Output | 0.00012904 | 0.0002071 | 0.00043132 | 0.0 | 0.05
Modify | 3.905e-05 | 4.8089e-05 | 5.5714e-05 | 0.0 | 0.01
Other | | 0.0007341 | | | 0.17
Nlocal: 32 ave 32 max 32 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 431 ave 431 max 431 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 1856 ave 1856 max 1856 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,33 +1,33 @@
POD_coefficients: 32 model_coefficients: 32 0 0
-4.44242 -4.45745
4.10219 29.40034
2.36987 -13.69439
3.92184 -0.32907
-0.83796 -0.14786
-0.79457 -1.35221
-0.26230 -0.59315
-21.24294 -26.30409
-15.38460 -33.37233
-38.44056 162.42473
8.29872 144.67248
-42.54514 -149.50021
2.79976 1.78603
3.76109 2.49026
5.23499 -11.04768
0.04878 -11.14333
2.96006 12.40537
0.09101 0.48284
-0.19257 0.39345
-0.24326 -2.25812
-0.16735 -1.38908
0.53738 1.31551
0.02236 0.02974
-0.00154 -0.05094
0.02488 -0.21177
-0.00565 0.12127
0.07672 0.23170
-0.05894 0.02426
-0.05604 -0.15305
-0.12664 -0.10803
0.11723 0.25628
0.00262 0.01291

View File

@ -1,4 +1,3 @@
# DATE: 2022-11-30 UNITS: metal CONTRIBUTOR: Ngoc Cuong Nguyen, exapde@gmail.com CITATION: https://arxiv.org/abs/2209.02362
# chemical element symbols # chemical element symbols
species Ta species Ta
@ -11,28 +10,37 @@ rin 1.0
# outer cut-off radius # outer cut-off radius
rcut 5.0 rcut 5.0
# use only for enviroment-adaptive potentials
number_of_environment_clusters 1
# principal_components of local descriptors
number_of_principal_components 2
# polynomial degrees for radial basis functions # polynomial degrees for radial basis functions
bessel_polynomial_degree 3 bessel_polynomial_degree 3
inverse_polynomial_degree 6 inverse_polynomial_degree 6
# one-body potential
onebody 1
# two-body linear POD potential # two-body linear POD potential
twobody_number_radial_basis_functions 6 twobody_number_radial_basis_functions 6
# three-body linear POD potential # three-body linear POD potential
threebody_number_radial_basis_functions 5 threebody_number_radial_basis_functions 5
threebody_number_angular_basis_functions 5 threebody_angular_degree 4
# four-body linear SNAP potential # four-body linear POD potential
fourbody_snap_twojmax 0 fourbody_number_radial_basis_functions 0
fourbody_angular_degree 0
# quadratic POD potential # five-body linear POD potential
quadratic_pod_potential 0 fivebody_number_radial_basis_functions 0
fivebody_angular_degree 0
# six-body linear POD potential
sixbody_number_radial_basis_functions 0
sixbody_angular_degree 0
# seven-body linear POD potential
sevenbody_number_radial_basis_functions 0
sevenbody_angular_degree 0
# Add the following basename to the name of output files
basename_for_output_files Ta
# number of digits after the decimal point
precision_for_pod_coefficients 5

10
src/.gitignore vendored
View File

@ -109,6 +109,8 @@
/pair_pod.cpp /pair_pod.cpp
/pair_pod.h /pair_pod.h
/eapod.cpp
/eapod.h
/fitpod_command.cpp /fitpod_command.cpp
/fitpod_command.h /fitpod_command.h
/mlpod.cpp /mlpod.cpp
@ -247,6 +249,14 @@
/compute_grid.h /compute_grid.h
/compute_grid_local.cpp /compute_grid_local.cpp
/compute_grid_local.h /compute_grid_local.h
/compute_pod_atom.cpp
/compute_pod_atom.h
/compute_pod_global.cpp
/compute_pod_global.h
/compute_pod_local.cpp
/compute_pod_local.h
/compute_podd_atom.cpp
/compute_podd_atom.h
/compute_sna_atom.cpp /compute_sna_atom.cpp
/compute_sna_atom.h /compute_sna_atom.h
/compute_snad_atom.cpp /compute_snad_atom.cpp

View File

@ -185,6 +185,10 @@ if (test $1 = "ML-PACE") then
depend KOKKOS depend KOKKOS
fi fi
if (test $1 = "ML-POD") then
depend KOKKOS
fi
if (test $1 = "ML-SNAP") then if (test $1 = "ML-SNAP") then
depend ML-IAP depend ML-IAP
depend KOKKOS depend KOKKOS

View File

@ -358,6 +358,8 @@ action pair_multi_lucy_rx_kokkos.cpp pair_multi_lucy_rx.cpp
action pair_multi_lucy_rx_kokkos.h pair_multi_lucy_rx.h action pair_multi_lucy_rx_kokkos.h pair_multi_lucy_rx.h
action pair_pace_extrapolation_kokkos.cpp pair_pace_extrapolation.cpp action pair_pace_extrapolation_kokkos.cpp pair_pace_extrapolation.cpp
action pair_pace_extrapolation_kokkos.h pair_pace_extrapolation.h action pair_pace_extrapolation_kokkos.h pair_pace_extrapolation.h
action pair_pod_kokkos.cpp pair_pod.cpp
action pair_pod_kokkos.h pair_pod.h
action pair_pace_kokkos.cpp pair_pace.cpp action pair_pace_kokkos.cpp pair_pace.cpp
action pair_pace_kokkos.h pair_pace.h action pair_pace_kokkos.h pair_pace.h
action pair_reaxff_kokkos.cpp pair_reaxff.cpp action pair_reaxff_kokkos.cpp pair_reaxff.cpp

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,226 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
// clang-format off
PairStyle(pod/kk,PairPODKokkos<LMPDeviceType>);
PairStyle(pod/kk/device,PairPODKokkos<LMPDeviceType>);
PairStyle(pod/kk/host,PairPODKokkos<LMPHostType>);
// clang-format on
#else
// clang-format off
#ifndef LMP_PAIR_POD_KOKKOS_H
#define LMP_PAIR_POD_KOKKOS_H
#include "pair_pod.h"
#include "kokkos_type.h"
#include "pair_kokkos.h"
namespace LAMMPS_NS {
template<class DeviceType>
class PairPODKokkos : public PairPOD {
public:
typedef DeviceType device_type;
typedef ArrayTypes<DeviceType> AT;
PairPODKokkos(class LAMMPS *);
~PairPODKokkos() override;
void compute(int, int) override;
void coeff(int, char **) override;
void init_style() override;
double init_one(int, int) override;
int inum, maxneigh;
int host_flag;
int eflag, vflag;
int neighflag;
typename AT::t_neighbors_2d d_neighbors;
typename AT::t_int_1d d_ilist;
typename AT::t_int_1d d_numneigh;
DAT::tdual_efloat_1d k_eatom;
DAT::tdual_virial_array k_vatom;
typename AT::t_efloat_1d d_eatom;
typename AT::t_virial_array d_vatom;
typename AT::t_x_array_randomread x;
typename AT::t_f_array f;
typename AT::t_int_1d_randomread type;
typedef Kokkos::DualView<F_FLOAT**, DeviceType> tdual_fparams;
tdual_fparams k_cutsq, k_scale;
typedef Kokkos::View<F_FLOAT**, DeviceType> t_fparams;
t_fparams d_cutsq, d_scale;
typename AT::t_int_1d d_map;
friend void pair_virial_fdotr_compute<PairPODKokkos>(PairPODKokkos*);
void grow(int, int);
void copy_from_pod_class(EAPOD *podptr);
void divideInterval(int *intervals, int N, int M);
int calculateNumberOfIntervals(int N, int intervalSize);
void grow_atoms(int Ni);
void grow_pairs(int Nij);
void allocate() override;
double memory_usage() override;
typedef Kokkos::View<int*, DeviceType> t_pod_1i;
typedef Kokkos::View<double*, DeviceType> t_pod_1d;
// typedef Kokkos::View<int**, DeviceType> t_pod_2i;
// typedef Kokkos::View<double**, DeviceType> t_pod_2d;
// typedef Kokkos::View<double**[3], DeviceType> t_pod_3d3;
int atomBlockSize; // size of each atom block
int nAtomBlocks; // number of atoms blocks
int atomBlocks[101]; // atom blocks
double comptime[100];
int timing;
int ni; // number of atoms i in the current atom block
int nij; // number of pairs (i,j) in the current atom block
int nimax; // maximum number of atoms i
int nijmax; // maximum number of pairs (i,j)
int nelements; // number of elements
int onebody; // one-body descriptors
int besseldegree; // degree of Bessel functions
int inversedegree; // degree of inverse functions
int nbesselpars; // number of Bessel parameters
int nCoeffPerElement; // number of coefficients per element = (nl1 + Mdesc*nClusters)
int ns; // number of snapshots for radial basis functions
int nl1, nl2, nl3, nl4, nl23, nl33, nl34, nl44, nl; // number of local descriptors
int nrbf2, nrbf3, nrbf4, nrbfmax; // number of radial basis functions
int nabf3, nabf4; // number of angular basis functions
int K3, K4, Q4; // number of monomials
// environmental variables
int nClusters; // number of environment clusters
int nComponents; // number of principal components
int Mdesc; // number of base descriptors
double rin; // inner cut-off radius
double rcut; // outer cut-off radius
double rmax; // rcut - rin
double rcutsq;
t_pod_1d rij; // (xj - xi) for all pairs (I, J)
t_pod_1d fij; // force for all pairs (I, J)
t_pod_1d ei; // energy for each atom I
t_pod_1i typeai; // types of atoms I only
t_pod_1i numij; // number of pairs (I, J) for each atom I
t_pod_1i idxi; // storing linear indices of atom I for all pairs (I, J)
t_pod_1i ai; // IDs of atoms I for all pairs (I, J)
t_pod_1i aj; // IDs of atoms J for all pairs (I, J)
t_pod_1i ti; // types of atoms I for all pairs (I, J)
t_pod_1i tj; // types of atoms J for all pairs (I, J)
t_pod_1d besselparams;
t_pod_1d Phi; // eigenvectors matrix ns x ns
t_pod_1d rbf; // radial basis functions nij x nrbfmax
t_pod_1d rbfx; // x-derivatives of radial basis functions nij x nrbfmax
t_pod_1d rbfy; // y-derivatives of radial basis functions nij x nrbfmax
t_pod_1d rbfz; // z-derivatives of radial basis functions nij x nrbfmax
t_pod_1d abf; // angular basis functions nij x K3
t_pod_1d abfx; // x-derivatives of angular basis functions nij x K3
t_pod_1d abfy; // y-derivatives of angular basis functions nij x K3
t_pod_1d abfz; // z-derivatives of angular basis functions nij x K3
t_pod_1d sumU; // sum of radial basis functions ni x K3 x nrbfmax x nelements
t_pod_1d forcecoeff; // force coefficients ni x K3 x nrbfmax x nelements
t_pod_1d Proj; // PCA Projection matrix
t_pod_1d Centroids; // centroids of the clusters
t_pod_1d bd; // base descriptors ni x Mdesc
t_pod_1d cb; // force coefficients for base descriptors ni x Mdesc
t_pod_1d pd; // environment probability descriptors ni x (1 + nComponents + 3*nClusters)
t_pod_1d coefficients; // coefficients nCoeffPerElement x nelements
t_pod_1i pq3, pn3, pc3; // arrays to compute 3-body angular basis functions
t_pod_1i pa4, pb4, pc4; // arrays to compute 4-body angular basis functions
t_pod_1i ind33l, ind33r; // nl33
t_pod_1i ind34l, ind34r; // nl34
t_pod_1i ind44l, ind44r; // nl44
t_pod_1i elemindex;
void set_array_to_zero(t_pod_1d a, int N);
int NeighborCount(t_pod_1i, double, int, int);
void NeighborList(t_pod_1d l_rij, t_pod_1i l_numij, t_pod_1i l_typeai, t_pod_1i l_idxi,
t_pod_1i l_ai, t_pod_1i l_aj, t_pod_1i l_ti, t_pod_1i l_tj, double l_rcutsq, int gi1, int Ni);
void radialbasis(t_pod_1d rbft, t_pod_1d rbftx, t_pod_1d rbfty, t_pod_1d rbftz,
t_pod_1d rij, t_pod_1d l_besselparams, double l_rin, double l_rmax, int l_besseldegree,
int l_inversedegree, int l_nbesselpars, int Nij);
void matrixMultiply(t_pod_1d a, t_pod_1d b, t_pod_1d c, int r1, int c1, int c2);
void angularbasis(t_pod_1d l_abf, t_pod_1d l_abfx, t_pod_1d l_abfy, t_pod_1d l_abfz,
t_pod_1d l_rij, t_pod_1i l_pq3, int l_K3, int N);
void radialangularsum(t_pod_1d l_sumU, t_pod_1d l_rbf, t_pod_1d l_abf, t_pod_1i l_tj,
t_pod_1i l_numij, const int l_nelements, const int l_nrbf3, const int l_K3, const int Ni, const int Nij);
void twobodydesc(t_pod_1d d2, t_pod_1d l_rbf, t_pod_1i l_idxi, t_pod_1i l_tj, int l_nrbf2, const int Ni, const int Nij);
void threebodydesc(t_pod_1d d3, t_pod_1d l_sumU, t_pod_1i l_pc3, t_pod_1i l_pn3,
int l_nelements, int l_nrbf3, int l_nabf3, int l_K3, const int Ni);
void fourbodydesc(t_pod_1d d4, t_pod_1d l_sumU, t_pod_1i l_pa4, t_pod_1i l_pb4, t_pod_1i l_pc4,
int l_nelements, int l_nrbf3, int l_nrbf4, int l_nabf4, int l_K3, int l_Q4, int Ni);
void crossdesc(t_pod_1d d12, t_pod_1d d1, t_pod_1d d2, t_pod_1i ind1, t_pod_1i ind2, int n12, int Ni);
void crossdesc_reduction(t_pod_1d cb1, t_pod_1d cb2, t_pod_1d c12, t_pod_1d d1,
t_pod_1d d2, t_pod_1i ind1, t_pod_1i ind2, int n12, int Ni);
void blockatom_base_descriptors(t_pod_1d bd, int Ni, int Nij);
void blockatom_base_coefficients(t_pod_1d ei, t_pod_1d cb, t_pod_1d B, int Ni);
void blockatom_environment_descriptors(t_pod_1d ei, t_pod_1d cb, t_pod_1d B, int Ni);
void twobody_forces(t_pod_1d fij, t_pod_1d cb2, t_pod_1d l_rbfx, t_pod_1d l_rbfy, t_pod_1d l_rbfz,
t_pod_1i l_idxi, t_pod_1i l_tj, int l_nrbf2, const int Ni, const int Nij);
void threebody_forces(t_pod_1d fij, t_pod_1d cb3, t_pod_1d l_rbf, t_pod_1d l_rbfx,
t_pod_1d l_rbfy, t_pod_1d l_rbfz, t_pod_1d l_abf, t_pod_1d l_abfx, t_pod_1d l_abfy, t_pod_1d l_abfz,
t_pod_1d l_sumU, t_pod_1i l_idxi, t_pod_1i l_tj, t_pod_1i l_pc3, t_pod_1i l_pn3, t_pod_1i l_elemindex,
int l_nelements, int l_nrbf3, int l_nabf3, int l_K3, int Ni, int Nij);
void fourbody_forces(t_pod_1d fij, t_pod_1d cb4, t_pod_1d l_rbf, t_pod_1d l_rbfx, t_pod_1d l_rbfy,
t_pod_1d l_rbfz, t_pod_1d l_abf, t_pod_1d l_abfx, t_pod_1d l_abfy, t_pod_1d l_abfz, t_pod_1d l_sumU,
t_pod_1i l_idxi, t_pod_1i l_tj, t_pod_1i l_pa4, t_pod_1i l_pb4, t_pod_1i l_pc4,
int l_nelements, int l_nrbf3, int l_nrbf4, int l_nabf4, int l_K3, int l_Q4, int Ni, int Nij);
void threebody_forcecoeff(t_pod_1d fb3, t_pod_1d cb3, t_pod_1d l_sumU, t_pod_1i l_pc3,
t_pod_1i l_pn3, t_pod_1i l_elemindex, int l_nelements, int l_nrbf3, int l_nabf3, int l_K3, int Ni);
void fourbody_forcecoeff(t_pod_1d fb4, t_pod_1d cb4, t_pod_1d l_sumU, t_pod_1i l_pa4,
t_pod_1i l_pb4, t_pod_1i l_pc4, int l_nelements, int l_nrbf3, int l_nrbf4, int l_nabf4, int l_K3, int l_Q4, int Ni);
void allbody_forces(t_pod_1d fij, t_pod_1d l_forcecoeff, t_pod_1d l_rbf, t_pod_1d l_rbfx,
t_pod_1d l_rbfy, t_pod_1d l_rbfz, t_pod_1d l_abf, t_pod_1d l_abfx, t_pod_1d l_abfy, t_pod_1d l_abfz,
t_pod_1i l_idxi, t_pod_1i l_tj, int l_nelements, int l_nrbf3, int l_K3, int Nij);
void blockatom_energyforce(t_pod_1d l_ei, t_pod_1d l_fij, int Ni, int Nij);
void tallyenergy(t_pod_1d l_ei, int istart, int Ni);
void tallyforce(t_pod_1d l_fij, t_pod_1i l_ai, t_pod_1i l_aj, int Nij);
void tallystress(t_pod_1d l_fij, t_pod_1d l_rij, t_pod_1i l_ai, t_pod_1i l_aj, int Nij);
void savematrix2binfile(std::string filename, t_pod_1d d_A, int nrows, int ncols);
void saveintmatrix2binfile(std::string filename, t_pod_1i d_A, int nrows, int ncols);
void savedatafordebugging();
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,277 @@
// clang-format off
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "compute_pod_atom.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "modify.h"
#include "neigh_list.h"
#include "neighbor.h"
#include "pair.h"
#include "update.h"
#include <cstring>
#include "eapod.h"
using namespace LAMMPS_NS;
enum { SCALAR, VECTOR, ARRAY };
ComputePODAtom::ComputePODAtom(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr),
rij(nullptr), elements(nullptr), map(nullptr)
{
int nargmin = 6;
if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style);
if (comm->nprocs > 1) error->all(FLERR, "compute command does not support multi processors");
std::string pod_file = std::string(arg[3]); // pod input file
std::string coeff_file = std::string(arg[4]); // coefficient input file
podptr = new EAPOD(lmp, pod_file, coeff_file);
int ntypes = atom->ntypes;
memory->create(map, ntypes + 1, "compute_pod_global:map");
map_element2type(narg - 5, arg + 5, podptr->nelements);
cutmax = podptr->rcut;
nmax = 0;
nijmax = 0;
pod = nullptr;
elements = nullptr;
size_peratom_cols = podptr->Mdesc * podptr->nClusters;
peratom_flag = 1;
}
/* ---------------------------------------------------------------------- */
ComputePODAtom::~ComputePODAtom()
{
memory->destroy(map);
memory->destroy(pod);
delete podptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODAtom::init()
{
if (force->pair == nullptr)
error->all(FLERR,"Compute pod requires a pair style be defined");
if (cutmax > force->pair->cutforce)
error->all(FLERR,"Compute pod cutoff is longer than pairwise cutoff");
// need an occasional full neighbor list
neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL);
if (modify->get_compute_by_style("pod").size() > 1 && comm->me == 0)
error->warning(FLERR,"More than one compute pod");
}
/* ---------------------------------------------------------------------- */
void ComputePODAtom::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODAtom::compute_peratom()
{
invoked_peratom = update->ntimestep;
// grow pod array if necessary
if (atom->natoms > nmax) {
memory->destroy(pod);
nmax = atom->natoms;
int numdesc = podptr->Mdesc * podptr->nClusters;
memory->create(pod, nmax, numdesc,"sna/atom:sna");
array_atom = pod;
}
for (int i = 0; i < atom->natoms; i++)
for (int icoeff = 0; icoeff < size_peratom_cols; icoeff++) {
pod[i][icoeff] = 0.0;
}
// invoke full neighbor list (will copy or build if necessary)
neighbor->build_one(list);
double **x = atom->x;
int **firstneigh = list->firstneigh;
int *numneigh = list->numneigh;
int *type = atom->type;
int *ilist = list->ilist;
int inum = list->inum;
int nClusters = podptr->nClusters;
int Mdesc = podptr->Mdesc;
double rcutsq = podptr->rcut*podptr->rcut;
for (int ii = 0; ii < inum; ii++) {
int i = ilist[ii];
int jnum = numneigh[i];
// allocate temporary memory
if (nijmax < jnum) {
nijmax = MAX(nijmax, jnum);
podptr->free_temp_memory();
podptr->allocate_temp_memory(nijmax);
}
rij = &podptr->tmpmem[0];
tmpmem = &podptr->tmpmem[3*nijmax];
ai = &podptr->tmpint[0];
aj = &podptr->tmpint[nijmax];
ti = &podptr->tmpint[2*nijmax];
tj = &podptr->tmpint[3*nijmax];
// get neighbor list for atom i
lammpsNeighborList(x, firstneigh, atom->tag, type, numneigh, rcutsq, i);
if (nij > 0) {
// peratom base descriptors
double *bd = &podptr->bd[0];
double *bdd = &podptr->bdd[0];
podptr->peratombase_descriptors(bd, bdd, rij, tmpmem, tj, nij);
if (nClusters>1) {
// peratom env descriptors
double *pd = &podptr->pd[0];
double *pdd = &podptr->pdd[0];
podptr->peratomenvironment_descriptors(pd, pdd, bd, bdd, tmpmem, ti[0] - 1, nij);
for (int k = 0; k < nClusters; k++)
for (int m = 0; m < Mdesc; m++) {
int mk = m + Mdesc*k;
pod[i][mk] = pd[k]*bd[m];
// for (int n=0; n<nij; n++) {
// int ain = 3*ai[n];
// int ajn = 3*aj[n];
// int nm = 3*n + 3*nij*m;
// int nk = 3*n + 3*nij*k;
// pod[1 + ain][imk] += bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
// pod[2 + ain][imk] += bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
// pod[3 + ain][imk] += bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
// pod[1 + ajn][imk] -= bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
// pod[2 + ajn][imk] -= bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
// pod[3 + ajn][imk] -= bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
// }
}
}
else {
for (int m = 0; m < Mdesc; m++) {
pod[i][m] = bd[m];
// for (int n=0; n<nij; n++) {
// int ain = 3*ai[n];
// int ajn = 3*aj[n];
// int nm = 3*n + 3*nij*m;
// pod[1 + ain][im] += bdd[0 + nm];
// pod[2 + ain][im] += bdd[1 + nm];
// pod[3 + ain][im] += bdd[2 + nm];
// pod[1 + ajn][im] -= bdd[0 + nm];
// pod[2 + ajn][im] -= bdd[1 + nm];
// pod[3 + ajn][im] -= bdd[2 + nm];
// }
}
}
}
}
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double ComputePODAtom::memory_usage()
{
double bytes = 0.0;
return bytes;
}
void ComputePODAtom::lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtypes,
int *numneigh, double rcutsq, int gi)
{
nij = 0;
int itype = map[atomtypes[gi]] + 1;
int m = numneigh[gi];
ti[nij] = itype;
for (int l = 0; l < m; l++) { // loop over each atom around atom i
int gj = firstneigh[gi][l]; // atom j
double delx = x[gj][0] - x[gi][0]; // xj - xi
double dely = x[gj][1] - x[gi][1]; // xj - xi
double delz = x[gj][2] - x[gi][2]; // xj - xi
double rsq = delx * delx + dely * dely + delz * delz;
if (rsq < rcutsq && rsq > 1e-20) {
rij[nij * 3 + 0] = delx;
rij[nij * 3 + 1] = dely;
rij[nij * 3 + 2] = delz;
ai[nij] = atomid[gi]-1;
aj[nij] = atomid[gj]-1;
ti[nij] = itype;
tj[nij] = map[atomtypes[gj]] + 1;
nij++;
}
}
}
void ComputePODAtom::map_element2type(int narg, char **arg, int nelements)
{
int i,j;
const int ntypes = atom->ntypes;
// read args that map atom types to elements in potential file
// map[i] = which element the Ith atom type is, -1 if "NULL"
// nelements = # of unique elements
// elements = list of element names
if (narg != ntypes)
error->all(FLERR, "Number of element to type mappings does not match number of atom types");
if (elements) {
for (i = 0; i < nelements; i++) delete[] elements[i];
delete[] elements;
}
elements = new char*[ntypes];
for (i = 0; i < ntypes; i++) elements[i] = nullptr;
nelements = 0;
map[0] = -1;
for (i = 1; i <= narg; i++) {
std::string entry = arg[i-1];
if (entry == "NULL") {
map[i] = -1;
continue;
}
for (j = 0; j < nelements; j++)
if (entry == elements[j]) break;
map[i] = j;
if (j == nelements) {
elements[j] = utils::strdup(entry);
nelements++;
}
}
}

View File

@ -0,0 +1,61 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef COMPUTE_CLASS
// clang-format off
ComputeStyle(pod/atom,ComputePODAtom);
// clang-format on
#else
#ifndef LMP_COMPUTE_POD_ATOM_H
#define LMP_COMPUTE_POD_ATOM_H
#include "compute.h"
namespace LAMMPS_NS {
class ComputePODAtom : public Compute {
public:
ComputePODAtom(class LAMMPS *, int, char **);
~ComputePODAtom() override;
void init() override;
void init_list(int, class NeighList *) override;
void compute_peratom() override;
double memory_usage() override;
void lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtype, int *numneigh,
double rcutsq, int i);
void map_element2type(int narg, char **arg, int nelements);
private:
class NeighList *list;
class EAPOD *podptr;
double **pod;
double cutmax;
int nmax;
int nij;
int nijmax;
double *tmpmem; // temporary memory
double *rij; // (xj - xi) for all pairs (I, J)
char **elements;
int *map;
int *ai; // IDs of atoms I for all pairs (I, J)
int *aj; // IDs of atoms J for all pairs (I, J)
int *ti; // types of atoms I for all pairs (I, J)
int *tj; // types of atoms J for all pairs (I, J)
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,283 @@
// clang-format off
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "compute_pod_global.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "modify.h"
#include "neigh_list.h"
#include "neighbor.h"
#include "pair.h"
#include "update.h"
#include <cstring>
#include "eapod.h"
using namespace LAMMPS_NS;
enum { SCALAR, VECTOR, ARRAY };
ComputePODGlobal::ComputePODGlobal(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr),
rij(nullptr), elements(nullptr), map(nullptr), ai(nullptr), aj(nullptr), ti(nullptr),
tj(nullptr)
{
array_flag = 1;
extarray = 0;
int nargmin = 6;
if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style);
if (comm->nprocs > 1) error->all(FLERR, "compute command does not support multi processors");
std::string pod_file = std::string(arg[3]); // pod input file
std::string coeff_file = std::string(arg[4]); // coefficient input file
podptr = new EAPOD(lmp, pod_file, coeff_file);
int ntypes = atom->ntypes;
memory->create(map, ntypes + 1, "compute_pod_global:map");
map_element2type(narg - 5, arg + 5, podptr->nelements);
size_array_rows = 1 + 3*atom->natoms;
size_array_cols = podptr->nCoeffAll;
cutmax = podptr->rcut;
nijmax = 0;
pod = nullptr;
elements = nullptr;
}
/* ---------------------------------------------------------------------- */
ComputePODGlobal::~ComputePODGlobal()
{
memory->destroy(map);
memory->destroy(pod);
delete podptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODGlobal::init()
{
if (force->pair == nullptr)
error->all(FLERR,"Compute pod requires a pair style be defined");
if (cutmax > force->pair->cutforce)
error->all(FLERR,"Compute pod cutoff is longer than pairwise cutoff");
// need an occasional full neighbor list
neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL);
if (modify->get_compute_by_style("pod").size() > 1 && comm->me == 0)
error->warning(FLERR,"More than one compute pod");
// allocate memory for global array
memory->create(pod,size_array_rows,size_array_cols,
"compute_pod_global:pod");
array = pod;
}
/* ---------------------------------------------------------------------- */
void ComputePODGlobal::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODGlobal::compute_array()
{
// int ntotal = atom->nlocal + atom->nghost;
invoked_peratom = update->ntimestep;
// clear global array
for (int irow = 0; irow < size_array_rows; irow++)
for (int icoeff = 0; icoeff < size_array_cols; icoeff++)
pod[irow][icoeff] = 0.0;
// invoke full neighbor list (will copy or build if necessary)
neighbor->build_one(list);
double **x = atom->x;
int **firstneigh = list->firstneigh;
int *numneigh = list->numneigh;
int *type = atom->type;
int *ilist = list->ilist;
int inum = list->inum;
int nClusters = podptr->nClusters;
int Mdesc = podptr->Mdesc;
int nCoeffPerElement = podptr->nCoeffPerElement;
double rcutsq = podptr->rcut*podptr->rcut;
for (int ii = 0; ii < inum; ii++) {
int i = ilist[ii];
int jnum = numneigh[i];
// allocate temporary memory
if (nijmax < jnum) {
nijmax = MAX(nijmax, jnum);
podptr->free_temp_memory();
podptr->allocate_temp_memory(nijmax);
}
rij = &podptr->tmpmem[0];
tmpmem = &podptr->tmpmem[3*nijmax];
ai = &podptr->tmpint[0];
aj = &podptr->tmpint[nijmax];
ti = &podptr->tmpint[2*nijmax];
tj = &podptr->tmpint[3*nijmax];
// get neighbor list for atom i
lammpsNeighborList(x, firstneigh, atom->tag, type, numneigh, rcutsq, i);
if (nij > 0) {
// peratom base descriptors
double *bd = &podptr->bd[0];
double *bdd = &podptr->bdd[0];
podptr->peratombase_descriptors(bd, bdd, rij, tmpmem, tj, nij);
pod[0][nCoeffPerElement*(ti[0]-1)] += 1.0; // one-body descriptor
if (nClusters>1) {
// peratom env descriptors
double *pd = &podptr->pd[0];
double *pdd = &podptr->pdd[0];
podptr->peratomenvironment_descriptors(pd, pdd, bd, bdd, tmpmem, ti[0] - 1, nij);
for (int j = 0; j < nClusters; j++) {
for (int m=0; m<Mdesc; m++) {
int k = nCoeffPerElement*(ti[0]-1) + 1 + m + j*Mdesc; // increment by 1 because of the one-body descriptor
pod[0][k] += pd[j]*bd[m];
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
int nm = 3*n + 3*nij*m;
int nj = 3*n + 3*nij*j;
pod[1+ain][k] += bdd[0 + nm]*pd[j] + bd[m]*pdd[0 + nj];
pod[2+ain][k] += bdd[1 + nm]*pd[j] + bd[m]*pdd[1 + nj];
pod[3+ain][k] += bdd[2 + nm]*pd[j] + bd[m]*pdd[2 + nj];
pod[1+ajn][k] -= bdd[0 + nm]*pd[j] + bd[m]*pdd[0 + nj];
pod[2+ajn][k] -= bdd[1 + nm]*pd[j] + bd[m]*pdd[1 + nj];
pod[3+ajn][k] -= bdd[2 + nm]*pd[j] + bd[m]*pdd[2 + nj];
}
}
}
}
else {
for (int m=0; m<Mdesc; m++) {
int k = nCoeffPerElement*(ti[0]-1) + 1 + m; // increment by 1 because of the one-body descriptor
pod[0][k] += bd[m];
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
int nm = 3*n + 3*nij*m;
pod[1+ain][k] += bdd[0 + nm];
pod[2+ain][k] += bdd[1 + nm];
pod[3+ain][k] += bdd[2 + nm];
pod[1+ajn][k] -= bdd[0 + nm];
pod[2+ajn][k] -= bdd[1 + nm];
pod[3+ajn][k] -= bdd[2 + nm];
}
}
}
}
}
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double ComputePODGlobal::memory_usage()
{
double bytes = 0.0;
return bytes;
}
void ComputePODGlobal::lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtypes,
int *numneigh, double rcutsq, int gi)
{
nij = 0;
int itype = map[atomtypes[gi]] + 1;
ti[nij] = itype;
int m = numneigh[gi];
for (int l = 0; l < m; l++) { // loop over each atom around atom i
int gj = firstneigh[gi][l]; // atom j
double delx = x[gj][0] - x[gi][0]; // xj - xi
double dely = x[gj][1] - x[gi][1]; // xj - xi
double delz = x[gj][2] - x[gi][2]; // xj - xi
double rsq = delx * delx + dely * dely + delz * delz;
if (rsq < rcutsq && rsq > 1e-20) {
rij[nij * 3 + 0] = delx;
rij[nij * 3 + 1] = dely;
rij[nij * 3 + 2] = delz;
ai[nij] = atomid[gi]-1;
aj[nij] = atomid[gj]-1;
ti[nij] = itype;
tj[nij] = map[atomtypes[gj]] + 1;
nij++;
}
}
}
void ComputePODGlobal::map_element2type(int narg, char **arg, int nelements)
{
int i,j;
const int ntypes = atom->ntypes;
// read args that map atom types to elements in potential file
// map[i] = which element the Ith atom type is, -1 if "NULL"
// nelements = # of unique elements
// elements = list of element names
if (narg != ntypes)
error->all(FLERR, "Number of element to type mappings does not match number of atom types");
if (elements) {
for (i = 0; i < nelements; i++) delete[] elements[i];
delete[] elements;
}
elements = new char*[ntypes];
for (i = 0; i < ntypes; i++) elements[i] = nullptr;
nelements = 0;
map[0] = -1;
for (i = 1; i <= narg; i++) {
std::string entry = arg[i-1];
if (entry == "NULL") {
map[i] = -1;
continue;
}
for (j = 0; j < nelements; j++)
if (entry == elements[j]) break;
map[i] = j;
if (j == nelements) {
elements[j] = utils::strdup(entry);
nelements++;
}
}
}

View File

@ -0,0 +1,60 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef COMPUTE_CLASS
// clang-format off
ComputeStyle(pod/global,ComputePODGlobal);
// clang-format on
#else
#ifndef LMP_COMPUTE_POD_GLOBAL_H
#define LMP_COMPUTE_POD_GLOBAL_H
#include "compute.h"
namespace LAMMPS_NS {
class ComputePODGlobal : public Compute {
public:
ComputePODGlobal(class LAMMPS *, int, char **);
~ComputePODGlobal() override;
void init() override;
void init_list(int, class NeighList *) override;
void compute_array() override;
double memory_usage() override;
void lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtype, int *numneigh,
double rcutsq, int i);
void map_element2type(int narg, char **arg, int nelements);
private:
class NeighList *list;
class EAPOD *podptr;
double **pod;
double cutmax;
int nij;
int nijmax;
double *tmpmem; // temporary memory
double *rij; // (xj - xi) for all pairs (I, J)
char **elements;
int *map;
int *ai; // IDs of atoms I for all pairs (I, J)
int *aj; // IDs of atoms J for all pairs (I, J)
int *ti; // types of atoms I for all pairs (I, J)
int *tj; // types of atoms J for all pairs (I, J)
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,280 @@
// clang-format off
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "compute_pod_local.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "modify.h"
#include "neigh_list.h"
#include "neighbor.h"
#include "pair.h"
#include "update.h"
#include <cstring>
#include "eapod.h"
using namespace LAMMPS_NS;
enum { SCALAR, VECTOR, ARRAY };
ComputePODLocal::ComputePODLocal(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr),
rij(nullptr), elements(nullptr), map(nullptr), ai(nullptr), aj(nullptr), ti(nullptr),
tj(nullptr)
{
array_flag = 1;
extarray = 0;
int nargmin = 6;
if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style);
if (comm->nprocs > 1) error->all(FLERR, "compute command does not support multi processors");
std::string pod_file = std::string(arg[3]); // pod input file
std::string coeff_file = std::string(arg[4]); // coefficient input file
podptr = new EAPOD(lmp, pod_file, coeff_file);
int ntypes = atom->ntypes;
memory->create(map, ntypes + 1, "compute_pod_local:map");
map_element2type(narg - 5, arg + 5, podptr->nelements);
int numdesc = podptr->Mdesc * podptr->nClusters;
size_array_rows = 1 + 3*atom->natoms;
size_array_cols = atom->natoms*numdesc;
cutmax = podptr->rcut;
nijmax = 0;
pod = nullptr;
elements = nullptr;
}
/* ---------------------------------------------------------------------- */
ComputePODLocal::~ComputePODLocal()
{
memory->destroy(map);
memory->destroy(pod);
delete podptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODLocal::init()
{
if (force->pair == nullptr)
error->all(FLERR,"Compute pod requires a pair style be defined");
if (cutmax > force->pair->cutforce)
error->all(FLERR,"Compute pod cutoff is longer than pairwise cutoff");
// need an occasional full neighbor list
neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL);
if (modify->get_compute_by_style("pod").size() > 1 && comm->me == 0)
error->warning(FLERR,"More than one compute pod");
// allocate memory for global array
memory->create(pod,size_array_rows,size_array_cols,
"compute_pod_local:pod");
array = pod;
}
/* ---------------------------------------------------------------------- */
void ComputePODLocal::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODLocal::compute_array()
{
// int ntotal = atom->nlocal + atom->nghost;
invoked_peratom = update->ntimestep;
// clear global array
for (int irow = 0; irow < size_array_rows; irow++)
for (int icoeff = 0; icoeff < size_array_cols; icoeff++)
pod[irow][icoeff] = 0.0;
// invoke full neighbor list (will copy or build if necessary)
neighbor->build_one(list);
double **x = atom->x;
int **firstneigh = list->firstneigh;
int *numneigh = list->numneigh;
int *type = atom->type;
int *ilist = list->ilist;
int inum = list->inum;
int nClusters = podptr->nClusters;
int Mdesc = podptr->Mdesc;
double rcutsq = podptr->rcut*podptr->rcut;
for (int ii = 0; ii < inum; ii++) {
int i = ilist[ii];
int jnum = numneigh[i];
// allocate temporary memory
if (nijmax < jnum) {
nijmax = MAX(nijmax, jnum);
podptr->free_temp_memory();
podptr->allocate_temp_memory(nijmax);
}
rij = &podptr->tmpmem[0];
tmpmem = &podptr->tmpmem[3*nijmax];
ai = &podptr->tmpint[0];
aj = &podptr->tmpint[nijmax];
ti = &podptr->tmpint[2*nijmax];
tj = &podptr->tmpint[3*nijmax];
// get neighbor list for atom i
lammpsNeighborList(x, firstneigh, atom->tag, type, numneigh, rcutsq, i);
if (nij > 0) {
// peratom base descriptors
double *bd = &podptr->bd[0];
double *bdd = &podptr->bdd[0];
podptr->peratombase_descriptors(bd, bdd, rij, tmpmem, tj, nij);
if (nClusters>1) {
// peratom env descriptors
double *pd = &podptr->pd[0];
double *pdd = &podptr->pdd[0];
podptr->peratomenvironment_descriptors(pd, pdd, bd, bdd, tmpmem, ti[0] - 1, nij);
for (int k = 0; k < nClusters; k++)
for (int m = 0; m < Mdesc; m++) {
int imk = m + Mdesc*k + Mdesc*nClusters*i;
pod[0][imk] = pd[k]*bd[m];
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
int nm = 3*n + 3*nij*m;
int nk = 3*n + 3*nij*k;
pod[1 + ain][imk] += bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
pod[2 + ain][imk] += bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
pod[3 + ain][imk] += bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
pod[1 + ajn][imk] -= bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
pod[2 + ajn][imk] -= bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
pod[3 + ajn][imk] -= bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
}
}
}
else {
for (int m = 0; m < Mdesc; m++) {
int im = m + Mdesc*i;
pod[0][im] = bd[m];
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
int nm = 3*n + 3*nij*m;
pod[1 + ain][im] += bdd[0 + nm];
pod[2 + ain][im] += bdd[1 + nm];
pod[3 + ain][im] += bdd[2 + nm];
pod[1 + ajn][im] -= bdd[0 + nm];
pod[2 + ajn][im] -= bdd[1 + nm];
pod[3 + ajn][im] -= bdd[2 + nm];
}
}
}
}
}
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double ComputePODLocal::memory_usage()
{
double bytes = 0.0;
return bytes;
}
void ComputePODLocal::lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtypes,
int *numneigh, double rcutsq, int gi)
{
nij = 0;
int itype = map[atomtypes[gi]] + 1;
ti[nij] = itype;
int m = numneigh[gi];
for (int l = 0; l < m; l++) { // loop over each atom around atom i
int gj = firstneigh[gi][l]; // atom j
double delx = x[gj][0] - x[gi][0]; // xj - xi
double dely = x[gj][1] - x[gi][1]; // xj - xi
double delz = x[gj][2] - x[gi][2]; // xj - xi
double rsq = delx * delx + dely * dely + delz * delz;
if (rsq < rcutsq && rsq > 1e-20) {
rij[nij * 3 + 0] = delx;
rij[nij * 3 + 1] = dely;
rij[nij * 3 + 2] = delz;
ai[nij] = atomid[gi]-1;
aj[nij] = atomid[gj]-1;
ti[nij] = itype;
tj[nij] = map[atomtypes[gj]] + 1;
nij++;
}
}
}
void ComputePODLocal::map_element2type(int narg, char **arg, int nelements)
{
int i,j;
const int ntypes = atom->ntypes;
// read args that map atom types to elements in potential file
// map[i] = which element the Ith atom type is, -1 if "NULL"
// nelements = # of unique elements
// elements = list of element names
if (narg != ntypes)
error->all(FLERR, "Number of element to type mappings does not match number of atom types");
if (elements) {
for (i = 0; i < nelements; i++) delete[] elements[i];
delete[] elements;
}
elements = new char*[ntypes];
for (i = 0; i < ntypes; i++) elements[i] = nullptr;
nelements = 0;
map[0] = -1;
for (i = 1; i <= narg; i++) {
std::string entry = arg[i-1];
if (entry == "NULL") {
map[i] = -1;
continue;
}
for (j = 0; j < nelements; j++)
if (entry == elements[j]) break;
map[i] = j;
if (j == nelements) {
elements[j] = utils::strdup(entry);
nelements++;
}
}
}

View File

@ -0,0 +1,60 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef COMPUTE_CLASS
// clang-format off
ComputeStyle(pod/local,ComputePODLocal);
// clang-format on
#else
#ifndef LMP_COMPUTE_POD_LOCAL_H
#define LMP_COMPUTE_POD_LOCAL_H
#include "compute.h"
namespace LAMMPS_NS {
class ComputePODLocal : public Compute {
public:
ComputePODLocal(class LAMMPS *, int, char **);
~ComputePODLocal() override;
void init() override;
void init_list(int, class NeighList *) override;
void compute_array() override;
double memory_usage() override;
void lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtype, int *numneigh,
double rcutsq, int i);
void map_element2type(int narg, char **arg, int nelements);
private:
class NeighList *list;
class EAPOD *podptr;
double **pod;
double cutmax;
int nij;
int nijmax;
double *tmpmem; // temporary memory
double *rij; // (xj - xi) for all pairs (I, J)
char **elements;
int *map;
int *ai; // IDs of atoms I for all pairs (I, J)
int *aj; // IDs of atoms J for all pairs (I, J)
int *ti; // types of atoms I for all pairs (I, J)
int *tj; // types of atoms J for all pairs (I, J)
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,278 @@
// clang-format off
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "compute_podd_atom.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "modify.h"
#include "neigh_list.h"
#include "neighbor.h"
#include "pair.h"
#include "update.h"
#include <cstring>
#include "eapod.h"
using namespace LAMMPS_NS;
enum { SCALAR, VECTOR, ARRAY };
ComputePODDAtom::ComputePODDAtom(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr),
rij(nullptr), elements(nullptr), map(nullptr), ai(nullptr), aj(nullptr), ti(nullptr),
tj(nullptr)
{
int nargmin = 6;
if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style);
if (comm->nprocs > 1) error->all(FLERR, "compute command does not support multi processors");
std::string pod_file = std::string(arg[3]); // pod input file
std::string coeff_file = std::string(arg[4]); // coefficient input file
podptr = new EAPOD(lmp, pod_file, coeff_file);
int ntypes = atom->ntypes;
memory->create(map, ntypes + 1, "compute_pod_global:map");
map_element2type(narg - 5, arg + 5, podptr->nelements);
cutmax = podptr->rcut;
nmax = 0;
nijmax = 0;
pod = nullptr;
elements = nullptr;
size_peratom_cols = podptr->Mdesc * podptr->nClusters*3*atom->natoms;
peratom_flag = 1;
}
/* ---------------------------------------------------------------------- */
ComputePODDAtom::~ComputePODDAtom()
{
memory->destroy(map);
memory->destroy(pod);
delete podptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODDAtom::init()
{
if (force->pair == nullptr)
error->all(FLERR,"Compute pod requires a pair style be defined");
if (cutmax > force->pair->cutforce)
error->all(FLERR,"Compute pod cutoff is longer than pairwise cutoff");
// need an occasional full neighbor list
neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL);
if (modify->get_compute_by_style("pod").size() > 1 && comm->me == 0)
error->warning(FLERR,"More than one compute pod");
}
/* ---------------------------------------------------------------------- */
void ComputePODDAtom::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void ComputePODDAtom::compute_peratom()
{
invoked_peratom = update->ntimestep;
// grow pod array if necessary
if (atom->natoms > nmax) {
memory->destroy(pod);
nmax = atom->natoms;
int numdesc = podptr->Mdesc * podptr->nClusters * 3 * atom->natoms;
memory->create(pod, nmax, numdesc,"sna/atom:sna");
array_atom = pod;
}
for (int i = 0; i < atom->natoms; i++)
for (int icoeff = 0; icoeff < size_peratom_cols; icoeff++) {
pod[i][icoeff] = 0.0;
}
// invoke full neighbor list (will copy or build if necessary)
neighbor->build_one(list);
double **x = atom->x;
int **firstneigh = list->firstneigh;
int *numneigh = list->numneigh;
int *type = atom->type;
int *ilist = list->ilist;
int inum = list->inum;
int nClusters = podptr->nClusters;
int Mdesc = podptr->Mdesc;
double rcutsq = podptr->rcut*podptr->rcut;
for (int ii = 0; ii < inum; ii++) {
int i = ilist[ii];
int jnum = numneigh[i];
// allocate temporary memory
if (nijmax < jnum) {
nijmax = MAX(nijmax, jnum);
podptr->free_temp_memory();
podptr->allocate_temp_memory(nijmax);
}
rij = &podptr->tmpmem[0];
tmpmem = &podptr->tmpmem[3*nijmax];
ai = &podptr->tmpint[0];
aj = &podptr->tmpint[nijmax];
ti = &podptr->tmpint[2*nijmax];
tj = &podptr->tmpint[3*nijmax];
// get neighbor list for atom i
lammpsNeighborList(x, firstneigh, atom->tag, type, numneigh, rcutsq, i);
if (nij > 0) {
// peratom base descriptors
double *bd = &podptr->bd[0];
double *bdd = &podptr->bdd[0];
podptr->peratombase_descriptors(bd, bdd, rij, tmpmem, tj, nij);
if (nClusters>1) {
// peratom env descriptors
double *pd = &podptr->pd[0];
double *pdd = &podptr->pdd[0];
podptr->peratomenvironment_descriptors(pd, pdd, bd, bdd, tmpmem, ti[0] - 1, nij);
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
for (int k = 0; k < nClusters; k++) {
for (int m = 0; m < Mdesc; m++) {
int mk = m + Mdesc*k;
int nm = 3*n + 3*nij*m;
int nk = 3*n + 3*nij*k;
pod[i][mk + Mdesc*nClusters*0 + Mdesc*nClusters*ain] += bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
pod[i][mk + Mdesc*nClusters*1 + Mdesc*nClusters*ain] += bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
pod[i][mk + Mdesc*nClusters*2 + Mdesc*nClusters*ain] += bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
pod[i][mk + Mdesc*nClusters*0 + Mdesc*nClusters*ajn] -= bdd[0 + nm]*pd[k] + bd[m]*pdd[0+nk];
pod[i][mk + Mdesc*nClusters*1 + Mdesc*nClusters*ajn] -= bdd[1 + nm]*pd[k] + bd[m]*pdd[1+nk];
pod[i][mk + Mdesc*nClusters*2 + Mdesc*nClusters*ajn] -= bdd[2 + nm]*pd[k] + bd[m]*pdd[2+nk];
}
}
}
}
else {
for (int n=0; n<nij; n++) {
int ain = 3*ai[n];
int ajn = 3*aj[n];
for (int m = 0; m < Mdesc; m++) {
int nm = 3*n + 3*nij*m; // d D_im/ d R_j, m = 1, ..., M, i = 1, ..., N, j = 1, ..., N
pod[i][m + Mdesc*0 + Mdesc*ain] += bdd[0 + nm];
pod[i][m + Mdesc*1 + Mdesc*ain] += bdd[1 + nm];
pod[i][m + Mdesc*2 + Mdesc*ain] += bdd[2 + nm];
pod[i][m + Mdesc*0 + Mdesc*ajn] -= bdd[0 + nm];
pod[i][m + Mdesc*1 + Mdesc*ajn] -= bdd[1 + nm];
pod[i][m + Mdesc*2 + Mdesc*ajn] -= bdd[2 + nm];
}
}
}
}
}
}
/* ----------------------------------------------------------------------
memory usage
------------------------------------------------------------------------- */
double ComputePODDAtom::memory_usage()
{
double bytes = 0.0;
return bytes;
}
void ComputePODDAtom::lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtypes,
int *numneigh, double rcutsq, int gi)
{
nij = 0;
int itype = map[atomtypes[gi]] + 1;
ti[nij] = itype;
int m = numneigh[gi];
for (int l = 0; l < m; l++) { // loop over each atom around atom i
int gj = firstneigh[gi][l]; // atom j
double delx = x[gj][0] - x[gi][0]; // xj - xi
double dely = x[gj][1] - x[gi][1]; // xj - xi
double delz = x[gj][2] - x[gi][2]; // xj - xi
double rsq = delx * delx + dely * dely + delz * delz;
if (rsq < rcutsq && rsq > 1e-20) {
rij[nij * 3 + 0] = delx;
rij[nij * 3 + 1] = dely;
rij[nij * 3 + 2] = delz;
ai[nij] = atomid[gi]-1;
aj[nij] = atomid[gj]-1;
ti[nij] = itype;
tj[nij] = map[atomtypes[gj]] + 1;
nij++;
}
}
}
void ComputePODDAtom::map_element2type(int narg, char **arg, int nelements)
{
int i,j;
const int ntypes = atom->ntypes;
// read args that map atom types to elements in potential file
// map[i] = which element the Ith atom type is, -1 if "NULL"
// nelements = # of unique elements
// elements = list of element names
if (narg != ntypes)
error->all(FLERR, "Number of element to type mappings does not match number of atom types");
if (elements) {
for (i = 0; i < nelements; i++) delete[] elements[i];
delete[] elements;
}
elements = new char*[ntypes];
for (i = 0; i < ntypes; i++) elements[i] = nullptr;
nelements = 0;
map[0] = -1;
for (i = 1; i <= narg; i++) {
std::string entry = arg[i-1];
if (entry == "NULL") {
map[i] = -1;
continue;
}
for (j = 0; j < nelements; j++)
if (entry == elements[j]) break;
map[i] = j;
if (j == nelements) {
elements[j] = utils::strdup(entry);
nelements++;
}
}
}

View File

@ -0,0 +1,61 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef COMPUTE_CLASS
// clang-format off
ComputeStyle(podd/atom,ComputePODDAtom);
// clang-format on
#else
#ifndef LMP_COMPUTE_PODD_ATOM_H
#define LMP_COMPUTE_PODD_ATOM_H
#include "compute.h"
namespace LAMMPS_NS {
class ComputePODDAtom : public Compute {
public:
ComputePODDAtom(class LAMMPS *, int, char **);
~ComputePODDAtom() override;
void init() override;
void init_list(int, class NeighList *) override;
void compute_peratom() override;
double memory_usage() override;
void lammpsNeighborList(double **x, int **firstneigh, tagint *atomid, int *atomtype, int *numneigh,
double rcutsq, int i);
void map_element2type(int narg, char **arg, int nelements);
private:
class NeighList *list;
class EAPOD *podptr;
double **pod;
double cutmax;
int nmax;
int nij;
int nijmax;
double *tmpmem; // temporary memory
double *rij; // (xj - xi) for all pairs (I, J)
char **elements;
int *map;
int *ai; // IDs of atoms I for all pairs (I, J)
int *aj; // IDs of atoms J for all pairs (I, J)
int *ti; // types of atoms I for all pairs (I, J)
int *tj; // types of atoms J for all pairs (I, J)
};
} // namespace LAMMPS_NS
#endif
#endif

4734
src/ML-POD/eapod.cpp Normal file

File diff suppressed because it is too large Load Diff

235
src/ML-POD/eapod.h Normal file
View File

@ -0,0 +1,235 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/ Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_EAPOD_H
#define LMP_EAPOD_H
#include "pointers.h"
#define DDOT ddot_
#define DGEMV dgemv_
#define DGEMM dgemm_
#define DGETRF dgetrf_
#define DGETRI dgetri_
#define DSYEV dsyev_
#define DPOSV dposv_
extern "C" {
double DDOT(int *, double *, int *, double *, int *);
void DGEMV(char *, int *, int *, double *, double *, int *, double *, int *, double *, double *,
int *);
void DGEMM(char *, char *, int *, int *, int *, double *, double *, int *, double *, int *,
double *, double *, int *);
void DGETRF(int *, int *, double *, int *, int *, int *);
void DGETRI(int *, double *, int *, int *, double *, int *, int *);
void DSYEV(char *, char *, int *, double *, int *, double *, double *, int *, int *);
void DPOSV(char *, int *, int *, double *, int *, double *, int *, int *);
}
namespace LAMMPS_NS {
class EAPOD : protected Pointers {
private:
int indexmap3(int *indx, int n1, int n2, int n3, int N1, int N2);
int crossindices(int *dabf1, int nabf1, int nrbf1, int nebf1,
int *dabf2, int nabf2, int nrbf2, int nebf2, int dabf12, int nrbf12);
int crossindices(int *ind1, int *ind2, int *dabf1, int nabf1, int nrbf1, int nebf1,
int *dabf2, int nabf2, int nrbf2, int nebf2, int dabf12, int nrbf12);
void init3bodyarray(int *np, int *pq, int *pc, int Pa3);
void init4bodyarray(int *pa4, int *pb4, int *pc4, int Pa4);
void init2body();
void init3body(int Pa3);
void init4body(int Pa4);
void snapshots(double *rbf, double *xij, int N);
void eigenvaluedecomposition(double *Phi, double *Lambda, int N);
void myneighbors(double *rij, double *x, int *ai, int *aj, int *ti, int *tj,
int *jlist, int *pairnumsum, int *atomtype, int *alist, int i);
void radialbasis(double *rbf, double *rbfx, double *rbfy, double *rbfz, double *rij, double *besselparams, double rin,
double rmax, int besseldegree, int inversedegree, int nbesselpars, int N);
void angularbasis(double *abf, double *abfx, double *abfy, double *abfz, double *rij, double *tm, int *pq, int N, int K);
void radialangularbasis(double *sumU, double *U, double *Ux, double *Uy, double *Uz,
double *rbf, double *rbfx, double *rbfy, double *rbfz, double *abf,
double *abfx, double *abfy, double *abfz, int *atomtype, int N, int K, int M, int Ne);
void MatMul(double *c, double *a, double *b, int r1, int c1, int c2);
void scalarproduct(double *d, double c, int N);
double dotproduct(double *c, double *d, int ndesc);
void mvproduct(double *fij, double *c, double *dd, int N, int ndesc);
public:
std::vector<std::string> species;
double rin;
double rcut;
int true4BodyDesc;
int nelements; // number of elements
int pbc[3];
int *elemindex ;
int onebody; // one-body descriptors
int besseldegree;
int inversedegree;
int pdegree[2];
int nbesselpars;
int timing;
double comptime[20];
double besselparams[3];
double *Phi ; // eigenvectors
double *Lambda ; // eigenvalues
double *coeff; // coefficients
//double *newcoeff ; // coefficients
double *tmpmem;
// environmental variables
int nClusters; // number of environment clusters
int nComponents; // number of principal components
//int nNeighbors; // numbe of neighbors
int Mdesc; // number of base descriptors
double *Proj; // PCA Projection matrix
double *Centroids; // centroids of the clusters
double *bd; // base descriptors
double *bdd; // derivatives of the base descriptors with respect to the atomic positions
double *pd; // multi-environment descriptors
double *pdd; // derivative of the multi-environment descriptors with respect to the atomic positions
int nproj; // number of elements in projection matrix (nComponents * Mdesc * nelements)
int ncentroids; // number of centroids (nComponents * nClusters * nelements)
int Njmax;
int nCoeffPerElement; // number of coefficients per element = (nl1 + Mdesc*nClusters)
int nCoeffAll; // number of coefficients for all elements = (nl1 + Mdesc*nClusters)*nelements
int ncoeff; // number of coefficients in the input file
int ns; // number of snapshots for radial basis functions
int nd1, nd2, nd3, nd4, nd5, nd6, nd7, nd; // number of global descriptors
int nl1, nl2, nl3, nl4, nl5, nl6, nl7, nl; // number of local descriptors
int nrbf2, nrbf3, nrbf4, nrbfmax; // number of radial basis functions
int nabf3, nabf4; // number of angular basis functions
int P3, P4; // angular polynomial degrees
int K3, K4, Q4; // number of monomials
int *pn3, *pq3, *pc3; // arrays to compute 3-body angular basis functions
int *pq4, *pa4, *pb4, *pc4; // arrays to compute 3-body angular basis functions
int *tmpint;
int nintmem; // number of integers in tmpint array
int ndblmem; // number of doubles in tmpmem array
// four-body descriptors
int *ind23, *ind32, nrbf23, nabf23, P23, n23, n32, nl23, nd23;
// five-body descriptors
int *ind33, nrbf33, nabf33, P33, n33, nl33, nd33;
// six-body descriptors
int *ind34, *ind43, nrbf34, nabf34, nabf43, P34, n34, n43, nl34, nd34;
// seven-body descriptors
int *ind44, nrbf44, nabf44, P44, n44, nl44, nd44;
int nld33, nld34, nld44, ngd33, ngd34, ngd44;
int *ind33l, *ind33r, *ind34l, *ind34r, *ind44l, *ind44r;
EAPOD(LAMMPS *, const std::string &pod_file, const std::string &coeff_file);
EAPOD(LAMMPS *lmp) : Pointers(lmp){};
~EAPOD() override;
void read_pod_file(std::string pod_file);
void read_model_coeff_file(std::string coeff_file);
int read_coeff_file(std::string coeff_file);
int read_projection_matrix(std::string proj_file);
int read_centroids(std::string centroids_file);
int estimate_temp_memory(int Nj);
void free_temp_memory();
void allocate_temp_memory(int Nj);
//void mknewcoeff();
void mknewcoeff(double *c, int nc);
void twobodydesc(double *d2, double *rbf, int *tj, int N);
void twobodydescderiv(double *d2, double *dd2, double *rbf, double *rbfx,
double *rbfy, double *rbfz, int *tj, int N);
void twobody_forces(double *fij, double *cb2, double *rbfx, double *rbfy, double *rbfz, int *tj, int Nj);
void threebodydesc(double *d3, double *sumU);
void threebodydescderiv(double *dd3, double *sumU, double *Ux, double *Uy, double *Uz,
int *atomtype, int N);
void threebody_forcecoeff(double *fb3, double *cb3, double *sumU);
void fourbodydesc(double *d4, double *sumU);
void fourbodydescderiv(double *d4, double *dd4, double *sumU, double *Ux, double *Uy, double *Uz,
int *atomtype, int N);
void fourbody_forcecoeff(double *fb4, double *cb4, double *sumU);
void allbody_forces(double *fij, double *forcecoeff, double *rbf, double *rbfx, double *rbfy, double *rbfz,
double *abf, double *abfx, double *abfy, double *abfz, int *tj, int Nj);
void allbody_forces(double *fij, double *forcecoeff, double *Ux, double *Uy, double *Uz, int *tj, int Nj);
void descriptors(double *gd, double *gdd, double *basedesc, double *probdesc, double *x, int *atomtype, int *alist,
int *jlist, int *pairnumsum, int natom);
void descriptors(double *gd, double *gdd, double *basedesc, double *x, int *atomtype, int *alist,
int *jlist, int *pairnumsum, int natom);
void peratombase_descriptors(double *bd, double *bdd, double *rij, double *temp,
int *tj, int Nj);
double peratombase_coefficients(double *cb, double *bd, int *ti);
double peratom_environment_descriptors(double *cb, double *bd, double *tm, int *ti);
void peratomenvironment_descriptors(double *P, double *dP_dR, double *B, double *dB_dR, double *tmp, int elem, int nNeighbors);
void base_descriptors(double *basedesc, double *x, int *atomtype, int *alist,
int *jlist, int *pairnumsum, int natom);
void descriptors(double *basedesc, double *probdesc, double *x, int *atomtype, int *alist,
int *jlist, int *pairnumsum, int natom);
double peratomenergyforce(double *fij, double *rij, double *temp, int *ti, int *tj, int Nj);
double peratomenergyforce2(double *fij, double *rij, double *temp, int *ti, int *tj, int Nj);
double energyforce(double *force, double *x, int *atomtype, int *alist,
int *jlist, int *pairnumsum, int natom);
void tallyforce(double *force, double *fij, int *ai, int *aj, int N);
void fourbodydesc23(double* d23, double* d2, double *d3);
void fourbodydescderiv23(double* dd23, double* d2, double *d3, double* dd2, double *dd3, int N);
void crossdesc(double *d12, double *d1, double *d2, int *ind1, int *ind2, int n12);
void crossdescderiv(double *dd12, double *d1, double *d2, double *dd1, double *dd2,
int *ind1, int *ind2, int n12, int N);
void crossdesc_reduction(double *cb1, double *cb2, double *c12, double *d1,
double *d2, int *ind1, int *ind2, int n12);
};
} // namespace LAMMPS_NS
#endif

File diff suppressed because it is too large Load Diff

View File

@ -11,6 +11,7 @@
See the README file in the top-level LAMMPS directory. See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
#ifdef COMMAND_CLASS #ifdef COMMAND_CLASS
// clang-format off // clang-format off
CommandStyle(fitpod,FitPOD); CommandStyle(fitpod,FitPOD);
@ -21,6 +22,7 @@ CommandStyle(fitpod,FitPOD);
#define LMP_FITPOD_COMMAND_H #define LMP_FITPOD_COMMAND_H
#include "command.h" #include "command.h"
#include <unordered_map>
namespace LAMMPS_NS { namespace LAMMPS_NS {
@ -34,9 +36,11 @@ class FitPOD : public Command {
std::string file_format = "extxyz"; std::string file_format = "extxyz";
std::string file_extension = "xyz"; std::string file_extension = "xyz";
std::string data_path; std::string data_path;
std::vector<std::string> data_files; std::vector<std::string> data_files; // sorted file names
std::vector<std::string> group_names; // sorted group names
std::vector<std::string> filenames; std::vector<std::string> filenames;
std::string filenametag = "pod"; std::string filenametag = "pod";
std::string group_weight_type = "global";
std::vector<int> num_atom; std::vector<int> num_atom;
std::vector<int> num_atom_cumsum; std::vector<int> num_atom_cumsum;
@ -48,12 +52,15 @@ class FitPOD : public Command {
int num_atom_max; int num_atom_max;
int num_config_sum; int num_config_sum;
double *lattice; double *lattice=nullptr;
double *energy; double *energy=nullptr;
double *stress; double *stress=nullptr;
double *position; double *position=nullptr;
double *force; double *force=nullptr;
int *atomtype; int *atomtype=nullptr;
// Group weights will have same size as energy.
double *we=nullptr;
double *wf=nullptr;
int training = 1; int training = 1;
int normalizeenergy = 1; int normalizeenergy = 1;
@ -65,6 +72,9 @@ class FitPOD : public Command {
int precision = 8; int precision = 8;
double fraction = 1.0; double fraction = 1.0;
std::unordered_map<std::string, double> we_map;
std::unordered_map<std::string, double> wf_map;
double fitting_weights[12] = {100.0, 1.0, 0.0, 1, 1, 0, 0, 1, 1, 1, 1, 1e-10}; double fitting_weights[12] = {100.0, 1.0, 0.0, 1, 1, 0, 0, 1, 1, 1, 1, 1e-10};
void copydatainfo(datastruct &data) const void copydatainfo(datastruct &data) const
@ -84,48 +94,52 @@ class FitPOD : public Command {
data.precision = precision; data.precision = precision;
data.training = training; data.training = training;
data.normalizeenergy = normalizeenergy; data.normalizeenergy = normalizeenergy;
for (int i = 0; i < 12; i++) data.fitting_weights[i] = fitting_weights[i]; for (int i = 0; i < 12; i++)
data.fitting_weights[i] = fitting_weights[i];
data.we_map = we_map;
data.wf_map = wf_map;
} }
}; };
struct neighborstruct { struct neighborstruct {
int *alist; int *alist=nullptr;
int *pairnum; int *pairnum=nullptr;
int *pairnum_cumsum; int *pairnum_cumsum=nullptr;
int *pairlist; int *pairlist=nullptr;
double *y; double *y=nullptr;
int natom; //int natom;
int nalist; //int nalist;
int natom_max; int natom_max = 0;
int sze; int sze = 0;
int sza; int sza = 0;
int szy; int szy = 0;
int szp; int szp = 0;
}; };
struct descriptorstruct { struct descriptorstruct {
double *gd; // global descriptors double *bd=nullptr; // base descriptors
double *gdd; // derivatives of global descriptors and peratom descriptors double *pd=nullptr; // multi-environment descriptors (probabilities)
double *A; // least-square matrix for all descriptors double *gd=nullptr; // global descriptors
double *b; // least-square vector for all descriptors double *gdd=nullptr; // derivatives of global descriptors and peratom descriptors
double *c; // coefficents of descriptors double *A=nullptr; // least-square matrix for all descriptors
int *tmpint; double *b=nullptr; // least-square vector for all descriptors
int szd; double *c=nullptr; // coefficents of descriptors
int szi; int szd = 0;
int nCoeffAll = 0; // number of global descriptors
int nClusters = 0; // number of environment clusters
}; };
int save_descriptors = 0;
int compute_descriptors = 0;
datastruct traindata; datastruct traindata;
datastruct testdata; datastruct testdata;
datastruct envdata;
descriptorstruct desc; descriptorstruct desc;
neighborstruct nb; neighborstruct nb;
class MLPOD *podptr; class EAPOD *fastpodptr;
// functions for collecting/collating arrays // functions for collecting/collating arrays
void print_matrix(const char *desc, int m, int n, int *a, int lda);
void print_matrix(const char *desc, int m, int n, double *a, int lda);
void print_matrix(const char *desc, int m, int n, double **a, int lda);
void podCumsum(int *output, int *input, int length); void podCumsum(int *output, int *input, int length);
double podArrayNorm(double *a, int n); double podArrayNorm(double *a, int n);
double podArrayErrorNorm(double *a, double *b, int n); double podArrayErrorNorm(double *a, double *b, int n);
@ -144,17 +158,25 @@ class FitPOD : public Command {
void matrix33_multiplication(double *xrot, double *Rmat, double *x, int natom); void matrix33_multiplication(double *xrot, double *Rmat, double *x, int natom);
void matrix33_inverse(double *invA, double *A1, double *A2, double *A3); void matrix33_inverse(double *invA, double *A1, double *A2, double *A3);
double squareDistance(const double *a, const double *b, int DIMENSIONS);
void assignPointsToClusters(double *points, double *centroids, int *assignments, int *clusterSizes, int NUM_POINTS, int NUM_CLUSTERS, int DIMENSION);
void updateCentroids(double *points, double *centroids, int *assignments, int *clusterSizes, int NUM_POINTS, int NUM_CLUSTERS, int DIMENSIONS);
void KmeansClustering(double *points, double *centroids, int *assignments, int *clusterSizes, int NUM_POINTS, int NUM_CLUSTERS, int DIMENSIONS, int MAX_ITER);
void savedata2textfile(std::string filename, std::string text, double *A, int n, int m, int dim);
void savematrix2binfile(std::string filename, double *A, int nrows, int ncols);
void saveintmatrix2binfile(std::string filename, int *A, int nrows, int ncols);
// functions for reading input files and fitting // functions for reading input files and fitting
int read_data_file(double *fitting_weights, std::string &file_format, std::string &file_extension, int read_data_file(double *fitting_weights, std::string &file_format, std::string &file_extension, std::string &env_path,
std::string &test_path, std::string &training_path, std::string &filenametag, std::string &test_path, std::string &training_path, std::string &filenametag, const std::string &data_file, std::string &group_weight_type,
const std::string &data_file); std::unordered_map<std::string, double> &we_map, std::unordered_map<std::string, double> &wf_map);
void get_exyz_files(std::vector<std::string> &, const std::string &, const std::string &); void get_exyz_files(std::vector<std::string> &, std::vector<std::string> &, const std::string &, const std::string &);
int get_number_atom_exyz(std::vector<int>& num_atom, int& num_atom_sum, std::string file); int get_number_atom_exyz(std::vector<int>& num_atom, int& num_atom_sum, std::string file);
int get_number_atoms(std::vector<int> &num_atom, std::vector<int> &num_atom_sum, int get_number_atoms(std::vector<int>& num_atom, std::vector<int> &num_atom_sum, std::vector<int>& num_config, std::vector<std::string> training_files);
std::vector<int> &num_config, std::vector<std::string> training_files); void read_exyz_file(double *lattice, double *stress, double *energy, double *we, double *wf, double *pos, double *forces,
void read_exyz_file(double *lattice, double *stress, double *energy, double *pos, double *forces, int *atomtype, std::string file, std::vector<std::string> species, double we_group, double wf_group);
int *atomtype, std::string file, std::vector<std::string> species);
void get_data(datastruct &data, const std::vector<std::string> &species); void get_data(datastruct &data, const std::vector<std::string> &species);
std::vector<int> linspace(int start_in, int end_in, int num_in); std::vector<int> linspace(int start_in, int end_in, int num_in);
std::vector<int> shuffle(int start_in, int end_in, int num_in); std::vector<int> shuffle(int start_in, int end_in, int num_in);
@ -166,18 +188,21 @@ class FitPOD : public Command {
int podneighborlist(int *neighlist, int *numneigh, double *r, double rcutsq, int nx, int N, int podneighborlist(int *neighlist, int *numneigh, double *r, double rcutsq, int nx, int N,
int dim); int dim);
int podfullneighborlist(double *y, int *alist, int *neighlist, int *numneigh, int *numneighsum, int podfullneighborlist(double *y, int *alist, int *neighlist, int *numneigh, int *numneighsum,
double *x, double *a1, double *a2, double *a3, double rcut, int *pbc, double *x, double *a1, double *a2, double *a3, double rcut, int *pbc, int nx);
int nx); void estimate_memory_neighborstruct(const datastruct &data, int *pbc, double rcut, int nelements);
void allocate_memory(const datastruct &data); void allocate_memory_neighborstruct();
void linear_descriptors(const datastruct &data, int ci); void allocate_memory_descriptorstruct(int nd);
void quadratic_descriptors(const datastruct &data, int ci); void estimate_memory_fastpod(const datastruct &data);
void cubic_descriptors(const datastruct &data, int ci); void local_descriptors_fastpod(const datastruct &data, int ci);
void base_descriptors_fastpod(const datastruct &data, int ci);
void least_squares_matrix(const datastruct &data, int ci); void least_squares_matrix(const datastruct &data, int ci);
void least_squares_fit(const datastruct &data); void least_squares_fit(const datastruct &data);
void descriptors_calculation(const datastruct &data);
void environment_cluster_calculation(const datastruct &data);
void print_analysis(const datastruct &data, double *outarray, double *errors); void print_analysis(const datastruct &data, double *outarray, double *errors);
void error_analysis(const datastruct &data, double *coeff); void error_analysis(const datastruct &data, double *coeff);
double energyforce_calculation(double *force, double *coeff, const datastruct &data, int ci); double energyforce_calculation_fastpod(double *force, const datastruct &data, int ci);
void energyforce_calculation(const datastruct &data, double *coeff); void energyforce_calculation(const datastruct &data);
}; };
} // namespace LAMMPS_NS } // namespace LAMMPS_NS

File diff suppressed because it is too large Load Diff

View File

@ -1,308 +0,0 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/ Sandia National Laboratories
LAMMPS development team: developers@lammps.org
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_MLPOD_H
#define LMP_MLPOD_H
#include "pointers.h"
#define DDOT ddot_
#define DGEMV dgemv_
#define DGEMM dgemm_
#define DGETRF dgetrf_
#define DGETRI dgetri_
#define DSYEV dsyev_
#define DPOSV dposv_
extern "C" {
double DDOT(int *, double *, int *, double *, int *);
void DGEMV(char *, int *, int *, double *, double *, int *, double *, int *, double *, double *,
int *);
void DGEMM(char *, char *, int *, int *, int *, double *, double *, int *, double *, int *,
double *, double *, int *);
void DGETRF(int *, int *, double *, int *, int *, int *);
void DGETRI(int *, double *, int *, int *, double *, int *, int *);
void DSYEV(char *, char *, int *, double *, int *, double *, double *, int *, int *);
void DPOSV(char *, int *, int *, double *, int *, double *, int *, int *);
}
namespace LAMMPS_NS {
class MLPOD : protected Pointers {
private:
// functions for reading input files
void read_pod(const std::string &pod_file);
void read_coeff_file(const std::string &coeff_file);
// functions for calculating/collating POD descriptors/coefficients for energies
void podradialbasis(double *rbf, double *drbf, double *xij, double *besselparams, double rin,
double rmax, int besseldegree, int inversedegree, int nbesselpars, int N);
void pod1body(double *eatom, double *fatom, int *atomtype, int nelements, int natom);
void podtally2b(double *eatom, double *fatom, double *eij, double *fij, int *ai, int *aj, int *ti,
int *tj, int *elemindex, int nelements, int nbf, int natom, int N);
void pod3body(double *eatom, double *fatom, double *rij, double *e2ij, double *f2ij,
double *tmpmem, int *elemindex, int *pairnumsum, int *ai, int *aj, int *ti, int *tj,
int nrbf, int nabf, int nelements, int natom, int Nij);
void poddesc(double *eatom1, double *fatom1, double *eatom2, double *fatom2, double *eatom3,
double *fatom3, double *rij, double *Phi, double *besselparams, double *tmpmem,
double rin, double rcut, int *pairnumsum, int *atomtype, int *ai, int *aj, int *ti,
int *tj, int *elemindex, int *pdegree, int nbesselpars, int nrbf2, int nrbf3,
int nabf, int nelements, int Nij, int natom);
double quadratic_coefficients(double *c2, double *c3, double *d2, double *d3, double *coeff23,
int *quadratic, int nc2, int nc3);
double quadratic_coefficients(double *c3, double *d3, double *coeff33, int *quadratic, int nc3);
double cubic_coefficients(double *c2, double *c3, double *c4, double *d2, double *d3, double *d4,
double *coeff234, int *cubic, int nc2, int nc3, int nc4);
double cubic_coefficients(double *c3, double *d3, double *coeff333, int *cubic, int nc3);
double quadratic_coefficients(double *ce2, double *ce3, double *c2, double *c3, double *d2,
double *d3, double *coeff23, int *quadratic, int nc2, int nc3);
double quadratic_coefficients(double *ce3, double *c3, double *d3, double *coeff33,
int *quadratic, int nc3);
double cubic_coefficients(double *ce2, double *ce3, double *ce4, double *c2, double *c3,
double *c4, double *d2, double *d3, double *d4, double *coeff234,
int *cubic, int nc2, int nc3, int nc4);
double cubic_coefficients(double *ce3, double *c3, double *d3, double *coeff333, int *cubic,
int nc3);
// functions for calculating/collating SNAP descriptors/coefficients for energies
void snapSetup(int twojmax, int ntypes);
void InitSnap();
void snapComputeUlist(double *Sr, double *Si, double *dSr, double *dSi, double *rootpqarray,
double *rij, double *wjelem, double *radelem, double rmin0, double rfac0,
double rcutfac, int *idxu_block, int *ti, int *tj, int twojmax,
int idxu_max, int ijnum, int switch_flag);
void snapZeroUarraytot2(double *Stotr, double *Stoti, double wself, int *idxu_block, int *type,
int *map, int *ai, int wselfall_flag, int chemflag, int idxu_max,
int nelements, int twojmax, int inum);
void snapAddUarraytot(double *Stotr, double *Stoti, double *Sr, double *Si, int *map, int *ai,
int *tj, int idxu_max, int inum, int ijnum, int chemflag);
void snapComputeZi2(double *zlist_r, double *zlist_i, double *Stotr, double *Stoti,
double *cglist, int *idxz, int *idxu_block, int *idxcg_block, int twojmax,
int idxu_max, int idxz_max, int nelements, int bnorm_flag, int inum);
void snapComputeBi1(double *blist, double *zlist_r, double *zlist_i, double *Stotr, double *Stoti,
int *idxb, int *idxu_block, int *idxz_block, int twojmax, int idxb_max,
int idxu_max, int idxz_max, int nelements, int inum);
void snapComputeDbidrj(double *dblist, double *zlist_r, double *zlist_i, double *dulist_r,
double *dulist_i, int *idxb, int *idxu_block, int *idxz_block, int *map,
int *ai, int *tj, int twojmax, int idxb_max, int idxu_max, int idxz_max,
int nelements, int bnorm_flag, int chemflag, int inum, int ijnum);
void snapdesc(double *blist, double *bd, double *rij, double *tmpmem, int *atomtype, int *ai,
int *aj, int *ti, int *tj, int natom, int Nij);
// functions for calculating/collating POD descriptors/coefficients for forces
void podradialbasis(double *rbf, double *xij, double *besselparams, double rin, double rmax,
int besseldegree, int inversedegree, int nbesselpars, int N);
void pod1body(double *eatom, int *atomtype, int nelements, int natom);
void podtally2b(double *eatom, double *eij, int *ai, int *ti, int *tj, int *elemindex,
int nelements, int nbf, int natom, int N);
void pod3body(double *eatom, double *yij, double *e2ij, double *tmpmem, int *elemindex,
int *pairnumsum, int *ai, int *ti, int *tj, int nrbf, int nabf, int nelements,
int natom, int Nij);
void poddesc_ij(double *eatom1, double *eatom2, double *eatom3, double *rij, double *Phi,
double *besselparams, double *tmpmem, double rin, double rcut, int *pairnumsum,
int *atomtype, int *ai, int *ti, int *tj, int *elemindex, int *pdegree,
int nbesselpars, int nrbf2, int nrbf3, int nabf, int nelements, int Nij,
int natom);
void snapComputeUij(double *Sr, double *Si, double *rootpqarray, double *rij, double *wjelem,
double *radelem, double rmin0, double rfac0, double rcutfac, int *idxu_block,
int *ti, int *tj, int twojmax, int idxu_max, int ijnum, int switch_flag);
void snapdesc_ij(double *blist, double *rij, double *tmpmem, int *atomtype, int *ai, int *ti,
int *tj, int natom, int Nij);
void pod2body_force(double *force, double *fij, double *coeff2, int *ai, int *aj, int *ti,
int *tj, int *elemindex, int nelements, int nbf, int natom, int Nij);
void pod3body_force(double *force, double *yij, double *e2ij, double *f2ij, double *coeff3,
double *tmpmem, int *elemindex, int *pairnumsum, int *ai, int *aj, int *ti,
int *tj, int nrbf, int nabf, int nelements, int natom, int Nij);
void snapTallyForce(double *force, double *dbdr, double *coeff4, int *ai, int *aj, int *ti,
int ijnum, int ncoeff, int ntype);
void pod4body_force(double *force, double *rij, double *coeff4, double *tmpmem, int *atomtype,
int *idxi, int *ai, int *aj, int *ti, int *tj, int natom, int Nij);
void pod2body_force(double **force, double *fij, double *coeff2, int *ai, int *aj, int *ti,
int *tj, int *elemindex, int nelements, int nbf, int natom, int Nij);
void pod3body_force(double **force, double *yij, double *e2ij, double *f2ij, double *coeff3,
double *tmpmem, int *elemindex, int *pairnumsum, int *ai, int *aj, int *ti,
int *tj, int nrbf, int nabf, int nelements, int natom, int Nij);
void snapTallyForce(double **force, double *dbdr, double *coeff4, int *ai, int *aj, int *ti,
int ijnum, int ncoeff, int ntype);
void pod4body_force(double **force, double *rij, double *coeff4, double *tmpmem, int *atomtype,
int *idxi, int *ai, int *aj, int *ti, int *tj, int natom, int Nij);
// eigenproblem functions
void podeigenvaluedecomposition(double *Phi, double *Lambda, double *besselparams, double rin,
double rcut, int besseldegree, int inversedegree, int nbesselpars,
int N);
public:
MLPOD(LAMMPS *, const std::string &pod_file, const std::string &coeff_file);
MLPOD(LAMMPS *lmp) : Pointers(lmp){};
~MLPOD() override;
struct podstruct {
podstruct();
virtual ~podstruct();
std::vector<std::string> species;
int twobody[3];
int threebody[4];
int fourbody[4];
int *pbc;
int *elemindex;
int quadratic22[2];
int quadratic23[2];
int quadratic24[2];
int quadratic33[2];
int quadratic34[2];
int quadratic44[2];
int cubic234[3];
int cubic333[3];
int cubic444[3];
int nelements;
int onebody;
int besseldegree;
int inversedegree;
int quadraticpod;
double rin;
double rcut;
double *besselparams;
double *coeff;
double *Phi2, *Phi3, *Phi4, *Lambda2, *Lambda3, *Lambda4;
// variables declaring number of snapshots, descriptors, and combinations
int nbesselpars = 3;
int ns2, ns3,
ns4; // number of snapshots for radial basis functions for linear POD potentials
int nc2, nc3, nc4; // number of chemical combinations for linear POD potentials
int nbf1, nbf2, nbf3, nbf4; // number of basis functions for linear POD potentials
int nd1, nd2, nd3, nd4; // number of descriptors for linear POD potentials
int nd22, nd23, nd24, nd33, nd34, nd44; // number of descriptors for quadratic POD potentials
int nd234, nd333, nd444; // number of descriptors for cubic POD potentials
int nrbf3, nabf3, nrbf4, nabf4;
int nd, nd1234;
int snaptwojmax; // also used to tell if SNAP is used when allocating/deallocating
int snapchemflag;
double snaprfac0;
double snapelementradius[10];
double snapelementweight[10];
};
struct snastruct {
int twojmax;
int ncoeff;
int idxb_max;
int idxu_max;
int idxz_max;
int idxcg_max;
int ntypes;
int nelements;
int ndoubles; // number of multi-element pairs
int ntriples; // number of multi-element triplets
int bnormflag;
int chemflag;
int switchflag;
int bzeroflag;
int wselfallflag;
double wself;
double rmin0;
double rfac0;
double rcutfac;
double rcutmax;
int *map; // map types to [0,nelements)
int *idx_max;
int *idxz;
int *idxz_block;
int *idxb;
int *idxb_block;
int *idxu_block;
int *idxcg_block;
double *rcutsq;
double *radelem;
double *wjelem;
double *bzero;
double *fac;
double *rootpqarray;
double *cglist;
};
podstruct pod;
snastruct sna;
// functions for collecting/collating arrays
void podMatMul(double *c, double *a, double *b, int r1, int c1, int c2);
void podArraySetValue(double *y, double a, int n);
void podArrayCopy(double *y, double *x, int n);
void podArrayFill(int *output, int start, int length);
// functions for calculating energy and force descriptors
void podNeighPairs(double *xij, double *x, int *ai, int *aj, int *ti, int *tj, int *pairlist,
int *pairnumsum, int *atomtype, int *alist, int inum, int dim);
void linear_descriptors(double *gd, double *efatom, double *y, double *tmpmem, int *atomtype,
int *alist, int *pairlist, int *pairnum, int *pairnumsum, int *tmpint,
int natom, int Nij);
void quadratic_descriptors(double *d23, double *dd23, double *d2, double *d3, double *dd2,
double *dd3, int M2, int M3, int N);
void quadratic_descriptors(double *d33, double *dd33, double *d3, double *dd3, int M3, int N);
void cubic_descriptors(double *d234, double *dd234, double *d2, double *d3, double *d4,
double *dd2, double *dd3, double *dd4, int M2, int M3, int M4, int N);
void cubic_descriptors(double *d333, double *Dd333, double *d3, double *Dd3, int M3, int N);
double calculate_energyforce(double *force, double *gd, double *gdd, double *coeff, double *tmp,
int natom);
double energyforce_calculation(double *f, double *gd, double *gdd, double *coeff, double *y,
int *atomtype, int *alist, int *pairlist, int *pairnum,
int *pairnumsum, int *tmpint, int natom, int Nij);
// functions for calculating energies and forces
void podNeighPairs(double *rij, double *x, int *idxi, int *ai, int *aj, int *ti, int *tj,
int *pairnumsum, int *atomtype, int *jlist, int *alist, int inum);
int lammpsNeighPairs(double *rij, double **x, double rcutsq, int *idxi, int *ai, int *aj, int *ti,
int *tj, int *pairnumsum, int *atomtype, int *numneigh, int *ilist,
int **jlist, int inum);
void linear_descriptors_ij(double *gd, double *eatom, double *rij, double *tmpmem,
int *pairnumsum, int *atomtype, int *ai, int *ti, int *tj, int natom,
int Nij);
double calculate_energy(double *effectivecoeff, double *gd, double *coeff);
double calculate_energy(double *energycoeff, double *forcecoeff, double *gd, double *gdall,
double *coeff);
void calculate_force(double *force, double *effectivecoeff, double *rij, double *tmpmem,
int *pairnumsum, int *atomtype, int *idxi, int *ai, int *aj, int *ti,
int *tj, int natom, int Nij);
void calculate_force(double **force, double *effectivecoeff, double *rij, double *tmpmem,
int *pairnumsum, int *atomtype, int *idxi, int *ai, int *aj, int *ti,
int *tj, int natom, int Nij);
double energyforce_calculation(double *force, double *podcoeff, double *effectivecoeff,
double *gd, double *rij, double *tmpmem, int *pairnumsum,
int *atomtype, int *idxi, int *ai, int *aj, int *ti, int *tj,
int natom, int Nij);
};
} // namespace LAMMPS_NS
#endif

File diff suppressed because it is too large Load Diff

View File

@ -36,42 +36,134 @@ class PairPOD : public Pair {
double init_one(int, int) override; double init_one(int, int) override;
double memory_usage() override; double memory_usage() override;
int dim; // typically 3 void lammpsNeighborList(double *rij1, int *ai1, int *aj1, int *ti1, int *tj1, double **x, int **firstneigh, int *atomtype, int *map, int *numneigh,
double rcutsq, int i);
void NeighborCount(double **x, int **firstneigh, int *ilist, int *numneigh, double rcutsq, int i1);
void NeighborList(double **x, int **firstneigh, int *atomtype, int *map, int *ilist, int *numneigh,
double rcutsq, int i1);
void tallyenergy(double *ei, int istart, int Ni);
void tallystress(double *fij, double *rij, int *ai, int *aj, int nlocal, int N);
void tallyforce(double **force, double *fij, int *ai, int *aj, int N);
void divideInterval(int *intervals, int N, int M);
int calculateNumberOfIntervals(int N, int intervalSize);
int numberOfNeighbors();
double *gd; // global linear descriptors void copy_data_from_pod_class();
double *gdall; // global linear descriptors summed over all MPI ranks void radialbasis(double *rbft, double *rbftx, double *rbfty, double *rbftz, double *rij, int Nij);
double *podcoeff; // POD coefficients void orthogonalradialbasis(int Nij);
double *newpodcoeff; // normalized POD coefficients void angularbasis(double *tm, double *tmu, double *tmv, double *tmw, int N);
double *energycoeff; // energy coefficients void radialangularsum(int Ni, int Nij);
double *forcecoeff; // force coefficients void radialangularsum2(int Ni);
void twobodydesc(double *d2, int Ni, int Nij);
void twobodydescderiv(double *dd2, int Nij);
void twobodydescderiv(double *d2, double *dd2, int Ni, int Nij);
void threebodydesc(double *d3, int Ni);
void threebodydescderiv(double *dd3, int Nij);
void extractsumU(int Ni);
void fourbodydesc(double *d4, int Ni);
void fourbodydescderiv(double *dd4, int Nij);
void crossdesc(double *d12, double *d1, double *d2, int *ind1, int *ind2, int n12, int Ni);
void crossdescderiv(double *dd12, double *d1, double *d2, double *dd1, double *dd2,
int *ind1, int *ind2, int *idxi, int n12, int Ni, int Nij);
void blockatombase_descriptors(double *bd1, double *bdd1, int Ni, int Nij);
void blockatomenergyforce(double *ei, double *fij, int Ni, int Nij);
void estimate_tempmemory(); void crossdesc_reduction(double *cb1, double *cb2, double *c12, double *d1,
void free_tempmemory(); double *d2, int *ind1, int *ind2, int n12, int Ni);
void allocate_tempmemory(); void blockatom_base_descriptors(double *bd1, int Ni, int Nij);
void blockatom_base_coefficients(double *ei, double *cb, double *B, int Ni);
void blockatom_environment_descriptors(double *ei, double *cb, double *B, int Ni);
void blockatom_energyforce(double *ei, double *fij, int Ni, int Nij);
void blockatom_energies(double *ei, int Ni, int Nij);
void blockatom_forces(double *fij, int Ni, int Nij);
void lammpsNeighPairs(double **x, int **firstneigh, int *atomtype, int *map, int *numneigh, void twobody_forces(double *fij, double *cb2, int Ni, int Nij);
int i); void threebody_forces(double *fij, double *cb3, int Ni, int Nij);
void fourbody_forces(double *fij, double *cb4, int Ni, int Nij);
void threebody_forcecoeff(double *fb3, double *cb3, int Ni);
void fourbody_forcecoeff(double *fb4, double *cb4, int Ni);
void allbody_forces(double *fij, double *forcecoeff, int Nij);
void savematrix2binfile(std::string filename, double *A, int nrows, int ncols);
void saveintmatrix2binfile(std::string filename, int *A, int nrows, int ncols);
void savedatafordebugging();
protected: protected:
int nablockmax; // maximum number of atoms per computation block class EAPOD *fastpodptr;
int nij; // number of atom pairs virtual void allocate();
int nijmax; // maximum number of atom pairs void grow_atoms(int Ni);
int szd; // size of tmpmem void grow_pairs(int Nij);
class MLPOD *podptr; int atomBlockSize; // size of each atom block
int nAtomBlocks; // number of atoms blocks
int atomBlocks[101]; // atom blocks
// temporary arrays for computation blocks int ni; // total number of atoms i
int nij; // total number of pairs (i,j)
int nimax; // maximum number of atoms i
int nijmax; // maximum number of pairs (i,j)
int nelements; // number of elements
int onebody; // one-body descriptors
int besseldegree; // degree of Bessel functions
int inversedegree; // degree of inverse functions
int nbesselpars; // number of Bessel parameters
int nCoeffPerElement; // number of coefficients per element = (nl1 + Mdesc*nClusters)
int ns; // number of snapshots for radial basis functions
int nl1, nl2, nl3, nl4, nl23, nl33, nl34, nl44, nl; // number of local descriptors
int nrbf2, nrbf3, nrbf4, nrbfmax; // number of radial basis functions
int nabf3, nabf4; // number of angular basis functions
int K3, K4, Q4; // number of monomials
// environmental variables
int nClusters; // number of environment clusters
int nComponents; // number of principal components
int Mdesc; // number of base descriptors
double rin; // inner cut-off radius
double rcut; // outer cut-off radius
double rmax; // rcut - rin
double *tmpmem; // temporary memory
int *typeai; // types of atoms I only
int *numneighsum; // cumulative sum for an array of numbers of neighbors
double *rij; // (xj - xi) for all pairs (I, J) double *rij; // (xj - xi) for all pairs (I, J)
int *idxi; // storing linear indices for all pairs (I, J) double *fij; // force for all pairs (I, J)
double *ei; // energy for each atom I
int *typeai; // types of atoms I only
int *numij; // number of pairs (I, J) for each atom I
int *idxi; // storing linear indices of atom I for all pairs (I, J)
int *ai; // IDs of atoms I for all pairs (I, J) int *ai; // IDs of atoms I for all pairs (I, J)
int *aj; // IDs of atoms J for all pairs (I, J) int *aj; // IDs of atoms J for all pairs (I, J)
int *ti; // types of atoms I for all pairs (I, J) int *ti; // types of atoms I for all pairs (I, J)
int *tj; // types of atoms J for all pairs (I, J) int *tj; // types of atoms J for all pairs (I, J)
double besselparams[3];
double *Phi ; // eigenvectors matrix ns x ns
double *rbf; // radial basis functions nij x nrbfmax
double *rbfx; // x-derivatives of radial basis functions nij x nrbfmax
double *rbfy; // y-derivatives of radial basis functions nij x nrbfmax
double *rbfz; // z-derivatives of radial basis functions nij x nrbfmax
double *abf; // angular basis functions nij x K3
double *abfx; // x-derivatives of angular basis functions nij x K3
double *abfy; // y-derivatives of angular basis functions nij x K3
double *abfz; // z-derivatives of angular basis functions nij x K3
double *abftm ; // angular basis functions 4 x K3
double *sumU; // sum of radial basis functions ni x K3 x nrbfmax x nelements
double *forcecoeff; // force coefficients ni x K3 x nrbfmax x nelements
double *Proj; // PCA Projection matrix
double *Centroids; // centroids of the clusters
double *bd; // base descriptors ni x Mdesc
double *cb; // force coefficients for base descriptors ni x Mdesc
double *pd; // environment probability descriptors ni x nClusters
double *bdd; // base descriptors derivatives 3 x nij x Mdesc
double *pdd; // environment probability descriptors derivatives 3 x nij x nClusters
double *coefficients; // coefficients nCoeffPerElement x nelements
int *pq3, *pn3, *pc3; // arrays to compute 3-body angular basis functions
int *pa4, *pb4, *pc4; // arrays to compute 4-body angular basis functions
int *ind33l, *ind33r; // nl33
int *ind34l, *ind34r; // nl34
int *ind44l, *ind44r; // nl44
int *elemindex;
bool peratom_warn; // print warning about missing per-atom energies or stresses bool peratom_warn; // print warning about missing per-atom energies or stresses
}; };

View File

@ -1,8 +1,8 @@
--- ---
lammps_version: 3 Nov 2022 lammps_version: 17 Apr 2024
date_generated: Thu Dec 1 23:18:00 2022 date_generated: Wed May 22 23:39:15 2024
epsilon: 5e-11 epsilon: 5e-11
skip_tests: skip_tests: kokkos_omp
prerequisites: ! | prerequisites: ! |
pair pod pair pod
pre_commands: ! | pre_commands: ! |
@ -15,142 +15,142 @@ pair_coeff: ! |
* * Ta_param.pod Ta_coeff.pod Ta Ta Ta Ta Ta Ta Ta Ta * * Ta_param.pod Ta_coeff.pod Ta Ta Ta Ta Ta Ta Ta Ta
extract: ! "" extract: ! ""
natoms: 64 natoms: 64
init_vdwl: -528.2910264879091 init_vdwl: -410.2384867313104
init_coul: 0 init_coul: 0
init_stress: ! |2- init_stress: ! |2-
8.3402602596264614e+00 2.0643446850903056e+00 1.5678421067854520e+01 -2.9333918215385154e+01 1.1525924506418683e+02 -1.5484432052782759e+00 4.9022269500032161e+02 4.9376448227589816e+02 5.3401476248646236e+02 -4.6634637000407110e+01 2.2048539348045341e+02 7.5348803918588310e+00
init_forces: ! |2 init_forces: ! |2
1 -2.3392393040434762e+00 6.6115449678096514e+00 6.3527759473517156e+00 1 -6.5309656460745176e+00 1.5136950705258570e+01 1.2830910711300305e+01
2 -6.2200179688845711e+00 -2.3262609632188291e+00 -5.8808304295691327e+00 2 -1.2940507079967830e+01 -3.5631648591238543e+00 -1.0214881372571252e+01
3 5.9926007198108278e-01 1.1403349257840218e+00 -9.4165026520447437e-01 3 1.1840607479263618e+00 7.8142238369613634e-02 1.3240303824011606e+00
4 -4.3700401366848958e+00 6.7048502738679057e+00 3.5634847031773593e+00 4 -9.0461335840304820e+00 1.6421054745047698e+01 6.4222834402787807e+00
5 -1.7470266510830950e+00 -2.2743594271203493e+00 2.4630591043738376e-01 5 -4.4455346073705702e+00 -4.1219343948158027e+00 -5.5842666723140122e-01
6 2.7662435046081360e+00 7.4528086029205447e+00 1.6339061500227601e+00 6 3.2213927131196227e+00 1.1032802936344874e+01 3.0883816090681262e+00
7 -2.9166253939568025e+00 -2.4536749402602376e+00 2.3182705383557933e+00 7 -5.7205216568442898e+00 -6.8544078802481367e+00 5.2674515578636942e+00
8 2.8946709981057628e-01 1.5909888405138495e+00 -2.1105547647724223e+00 8 6.0111554116682031e-01 3.4511519325170048e+00 -4.5941525646668211e+00
9 -1.5405949554576286e+00 -6.1324586921740476e+00 -7.0213669939760557e+00 9 -1.4526139655777426e+00 -8.7953804018537447e+00 -1.4636593034048555e+01
10 -1.5334402378809839e+00 -4.4115934928250260e+00 -6.0498836493599777e+00 10 -3.0589120606514926e+00 -5.4340999066836231e+00 -1.1172796666813920e+01
11 8.1115391088463884e+00 -8.3763095375040244e+00 5.2840196513645203e+00 11 1.7088277560021435e+01 -1.5276120120148034e+01 8.9060567572450271e+00
12 -1.4493449045465287e+01 -9.0119905221230852e+00 -9.1884252425735404e+00 12 -2.9117544549492202e+01 -2.1064559487005187e+01 -1.8636986170532495e+01
13 -3.1435238028908983e+00 1.5461007451567864e+01 -1.0076469584259284e+00 13 -6.6893025487697964e+00 2.7843146294204274e+01 -3.5437779307946062e+00
14 -5.4205532111806916e+00 9.9326708251595193e+00 2.2979562969461060e+00 14 -7.7405502276036868e+00 1.9431305897646496e+01 2.1526579171664033e+00
15 -1.0589399394041576e+01 9.6706823152119537e+00 -8.9048432574359762e+00 15 -1.9545657754082125e+01 2.0442371318209393e+01 -2.0523256937154013e+01
16 4.5379777179391692e+00 2.6753273724858251e+00 1.6728868669531220e+01 16 9.5615547920076018e+00 5.4756899497367311e+00 3.5413364373315964e+01
17 2.4231102065317467e+00 6.6764545944727640e+00 -1.0929016615111141e+01 17 1.2253504203849257e+01 1.3589807830658817e+01 -2.2500326738186136e+01
18 1.9001246269761145e+00 -3.6109316050143847e-01 9.5729789832831536e+00 18 2.2124639486062221e+00 2.2809987521199040e+00 1.5758845653021112e+01
19 -4.4582683048316527e+00 -3.8337351622472888e+00 -2.3885319247539311e-01 19 -6.3950994796785006e+00 -4.8699822827926926e+00 -3.1962502168207942e+00
20 -1.7234496227840264e+01 3.3880881715108195e+00 1.2553324705664071e+00 20 -3.3627599797510769e+01 4.5760242653884964e+00 1.1193156541788161e+00
21 3.8327346102873112e+00 1.3689088998574568e+00 -6.7734781208496067e+00 21 7.4838568397591079e+00 -5.1207595910489445e-01 -1.4992882449114250e+01
22 -1.7001862101985854e+01 7.9556220149572905e+00 -1.1396344475647043e+01 22 -3.4449997256078106e+01 2.1741776689366528e+01 -3.0417180343226505e+01
23 2.9704272880493647e+00 5.6280520280509627e+00 4.4599373849291188e+00 23 7.9887113570118933e+00 1.0438063420737590e+01 1.0091519629819238e+01
24 5.1191743796738054e+00 5.2439635854557300e+00 6.9669903792262637e+00 24 9.7852248103822959e+00 9.7889444207140013e+00 1.5136372070559037e+01
25 3.1385438320794972e+00 1.5005115524258683e-01 3.5282799800496791e+00 25 3.5103998923461819e+00 -1.5100586339785624e+00 5.5475098167386134e+00
26 -1.4971212625777275e+00 -1.5993407658221612e+00 4.4215766627169029e-02 26 -2.3008256029170466e+00 -2.0174388797869449e+00 1.9545086913927323e+00
27 5.8677239676274295e+00 -1.3937781993546274e+00 3.0680498990918013e+00 27 1.0039500741707045e+01 -3.1588365173094504e+00 9.3848763376352391e+00
28 1.6650007215138052e+00 1.4050177349920281e+00 1.1885511993248887e+01 28 -1.4083492857943631e+00 4.1375942367837668e+00 2.6358883116452407e+01
29 -8.9875167123509261e+00 8.8933864134358698e-01 -3.6241931326798387e+00 29 -1.6685913766983656e+01 4.1539019657446268e+00 -3.7537458526927523e+00
30 -3.4012728709189108e+00 5.3067868144126020e+00 -1.7059788210178979e+00 30 -7.6144642645204907e+00 6.0113715813093060e+00 -3.4564713928280479e+00
31 -1.6808177204782935e+00 3.6001199301353184e+00 -1.8965796755169291e+00 31 -4.6736071866510853e+00 3.5740208613338460e+00 -3.9804803532942383e+00
32 -8.4589813130988354e+00 1.4471022875060062e+00 -1.9000039702897311e+00 32 -1.5090127957560838e+01 2.5244087972039599e+00 -4.0536958417737612e-01
33 1.2004088752851128e+01 -7.6040571970971325e+00 8.9711523713098167e+00 33 2.2910206651674123e+01 -1.3798345086683828e+01 2.0482484505011463e+01
34 -5.7853936051884869e-01 -5.5952766750718474e-01 1.8048877814027433e+00 34 -3.2945485908987826e-01 -2.6940721407664836e-01 2.4013911392867491e+00
35 1.7041340304224681e+00 -2.1620245429916412e+00 7.3832310666592491e+00 35 4.0268128446735867e+00 -4.2310161488536231e+00 1.1833154238724031e+01
36 1.0759330410207228e+00 -5.2129028438242146e+00 -1.6618705041668638e+00 36 1.8176664409683010e+00 -9.9717312276132404e+00 -1.0705406852645392e+00
37 -4.3766428392731020e+00 6.0078246009400225e+00 -6.3940625140062162e+00 37 -8.7538731502277631e+00 1.1752672812645274e+01 -1.1502704798839771e+01
38 5.0631928812981353e-01 -1.9854379582110893e+00 -8.7394124979891918e-01 38 7.7453544260003293e-01 -2.4965513045447469e+00 -1.2510837732921312e+00
39 3.9645469430932123e+00 -4.0889983203207603e+00 -9.4674125279283405e+00 39 9.0720516886890437e+00 -1.0241574684450409e+01 -2.0125449908359894e+01
40 1.1408365247060711e+01 -4.9051255563902521e+00 -3.5203986381487034e+00 40 2.1465855776579673e+01 -1.3945447695026113e+01 -6.8486054161315177e+00
41 8.9930170478826255e-01 -2.9723940028022749e-01 -2.7822061438575032e+00 41 5.8218260667899235e-01 6.7397922005993927e-03 -4.3763156201017992e+00
42 -8.2546434609765491e+00 -5.0786202506116558e+00 -3.1610980747309330e+00 42 -1.7796616176495530e+01 -1.1876849631671941e+01 -6.5762224655816057e+00
43 1.7453841082299018e-01 -1.4317767182746747e+01 9.5388782303919595e-01 43 2.2561922687325264e-01 -2.7952402275494197e+01 2.3071524509277532e+00
44 9.2833287607601704e+00 -1.0681022246160646e+01 6.1028355724777370e+00 44 1.8273606348811121e+01 -1.8270176207703763e+01 1.1553297319423622e+01
45 -6.8974324969212919e-01 6.3655097649365064e+00 -8.9950272187335738e+00 45 -3.0025628389975361e+00 1.0002999257048362e+01 -1.7274093092002033e+01
46 -1.9136248882346150e+00 -4.0755806589261594e+00 1.1571248503615134e+01 46 -9.9318239294853541e+00 -1.1063063257046228e+01 2.5506588121185374e+01
47 6.3780001004629598e+00 5.1350413335416709e+00 2.8185819965629695e+00 47 1.2015259386911902e+01 7.6825848695752921e+00 7.0333133736024660e+00
48 2.3349283531253415e+00 2.1970268162712099e+00 1.6856734874305396e-01 48 5.7899647779327026e+00 3.2746635122022458e+00 -1.1752244050919269e+00
49 -2.7493238702004135e+00 -1.1923367561779225e+01 -7.9142306720304925e+00 49 -8.9935815020004419e+00 -2.5297833390011153e+01 -1.8128341059967077e+01
50 2.1137961711743793e+00 7.2552695007878203e+00 -3.0372809596181289e+00 50 6.1790085074083834e+00 1.1813127434920705e+01 -3.6514228454756243e+00
51 -4.0124421354950526e+00 8.4837473611119112e+00 8.7141826644925846e+00 51 -9.2599602619592787e+00 1.9288829774487141e+01 1.8937881926332754e+01
52 1.1814661298567525e+01 -1.2353995700415600e+01 1.3991622034448220e+01 52 2.9141853544236550e+01 -2.7494790952397580e+01 3.4660583704205401e+01
53 5.1071497748726138e+00 7.9192961995549869e+00 3.0451616568663176e+00 53 1.1206014879007400e+01 1.7523020000928515e+01 1.2988678958733903e+01
54 5.7344562859078723e+00 -5.6931437492303356e+00 -4.8826542194642482e+00 54 1.0431466502947194e+01 -1.1687276483271816e+01 -1.1336899434652105e+01
55 7.3943947205193865e+00 -8.5087783592690300e+00 -9.0269109278555035e+00 55 1.2415001892790189e+01 -1.7878500490336062e+01 -1.6472325204596654e+01
56 -1.2364980298872756e+00 2.8110998820116406e+00 -5.9239020363740682e+00 56 2.6613894171112085e-01 4.0079831610028149e+00 -9.8746421300278371e+00
57 6.7325527399301921e-01 -3.6874160252952128e+00 2.8091898013156175e-02 57 1.5692367582328075e+00 -2.4289345724552045e+00 -9.1995230565583319e-01
58 7.1394993630780750e+00 -4.6917597169219567e+00 3.7096580604620573e+00 58 1.1367350546392537e+01 -5.8645633268290105e+00 3.2877167594860066e+00
59 7.1384731244518367e+00 4.5429051835770045e+00 -3.7696484765066689e+00 59 1.8898584008894929e+01 1.1671628659054432e+01 -8.5427078178989362e+00
60 -2.7523129793377530e+00 -1.3097943737066757e+01 -7.8971319483098377e+00 60 -1.1387945012612548e+01 -2.9286235529609694e+01 -1.9947277172440270e+01
61 -1.0075765403185517e+00 3.0273548833080430e+00 7.4229195890612620e-01 61 -1.4071422389863422e+00 6.4943348750183700e+00 -1.6633123081670118e+00
62 -7.4584126192112432e+00 6.1810894357594544e+00 -4.7073228253497668e+00 62 -1.2840583041198794e+01 1.2467088032510793e+01 -9.7932585156189589e+00
63 5.5714938235965326e+00 -7.2641750905285418e+00 -1.3520886322174430e-01 63 1.3563230239150005e+01 -1.2591906395758119e+01 -7.1985326718517948e+00
64 6.4220149841744343e+00 6.1375922336668411e+00 1.4507671903798933e+01 64 1.5316061128145364e+01 1.5709464176394246e+01 3.2563279689814330e+01
run_vdwl: -528.4347251401716 run_vdwl: -410.95413331281003
run_coul: 0 run_coul: 0
run_stress: ! |2- run_stress: ! |2-
7.7971581234640315e+00 1.8180180509574915e+00 1.5567974498446516e+01 -2.9195299100177184e+01 1.1463660454201184e+02 -5.2901271066816291e-01 4.8790084081098820e+02 4.9205993579439655e+02 5.3253514832117412e+02 -4.5873719143318795e+01 2.1842439537916931e+02 9.6108180261237450e+00
run_forces: ! |2 run_forces: ! |2
1 -2.3557887177307792e+00 6.5793731923015173e+00 6.3446661307546002e+00 1 -6.5302803795000290e+00 1.5008954908518220e+01 1.2782766637899464e+01
2 -6.2367472254464031e+00 -2.3761037176199591e+00 -5.8990027484700320e+00 2 -1.2934741296371032e+01 -3.6438072106762904e+00 -1.0246581399698554e+01
3 5.3238059272327787e-01 1.1536607145682118e+00 -8.5829897588453263e-01 3 1.0643480774329184e+00 1.0989547091417427e-01 1.4801781422346918e+00
4 -4.3203333339340588e+00 6.6864673083581083e+00 3.4793826832962589e+00 4 -8.9226910214328239e+00 1.6321523200898003e+01 6.2179284477980232e+00
5 -1.7840492185151171e+00 -2.3155960934908837e+00 2.7377581222153680e-01 5 -4.5119654536969218e+00 -4.1943337605490028e+00 -4.8629594604243609e-01
6 2.8816106613622541e+00 7.4501692252795770e+00 1.7092006941013815e+00 6 3.4244292871038868e+00 1.1012732723744625e+01 3.2299851721747284e+00
7 -2.8584187538461769e+00 -2.3893423666220168e+00 2.2712697534638027e+00 7 -5.5862410538320386e+00 -6.6671008844509725e+00 5.1913141572097166e+00
8 2.6439659507712282e-01 1.5681078897310405e+00 -2.1056485467168455e+00 8 5.3126458099185025e-01 3.4389030581062028e+00 -4.5870201926573246e+00
9 -1.6108220540466460e+00 -6.1741812147002300e+00 -7.0538474688530526e+00 9 -1.5622177052008701e+00 -8.9020051785312262e+00 -1.4701518090551732e+01
10 -1.5537395777250562e+00 -4.3955446040745887e+00 -5.9667736677685053e+00 10 -3.0591678312765946e+00 -5.4158915784047590e+00 -1.0964556434767903e+01
11 8.0104517885225182e+00 -8.3131733252237368e+00 5.2213147662230943e+00 11 1.6768303951099774e+01 -1.5065980362127185e+01 8.6873741539509943e+00
12 -1.4435736887913940e+01 -8.9362068248018307e+00 -9.1408788688901357e+00 12 -2.8813455142674830e+01 -2.0677967398177774e+01 -1.8373258081926309e+01
13 -2.9914115492926050e+00 1.5429230434822207e+01 -9.0984604918070788e-01 13 -6.2569142109062987e+00 2.7676713246771225e+01 -3.2364279874555373e+00
14 -5.4746584593313159e+00 9.9027748295330564e+00 2.2366269028203853e+00 14 -7.8393240949615413e+00 1.9273532542231486e+01 2.1077587433100926e+00
15 -1.0550844601713422e+01 9.6107656645359096e+00 -8.8185763639657502e+00 15 -1.9352852035481355e+01 2.0180072338350978e+01 -2.0170893936505685e+01
16 4.5023825249444860e+00 2.6965293303384019e+00 1.6638570998809584e+01 16 9.4324861638733104e+00 5.3569724992305350e+00 3.5033266543818804e+01
17 2.3773309428087694e+00 6.6422561690528514e+00 -1.0829016891781128e+01 17 1.2060916139212019e+01 1.3441297772382116e+01 -2.2283643611677071e+01
18 1.8114374434267531e+00 -3.0183319744394677e-01 9.6008681727027714e+00 18 2.0111753518086517e+00 2.4058400344736341e+00 1.5784276453941457e+01
19 -4.5474501019651816e+00 -3.8744552075410721e+00 -2.7559291041454143e-01 19 -6.5346697411474599e+00 -4.9781337821759220e+00 -3.2673336920063463e+00
20 -1.7142681562663874e+01 3.3426003047767030e+00 1.1954254910500022e+00 20 -3.3284105689885557e+01 4.3787585843148262e+00 9.3274022092125008e-01
21 3.8576154875972057e+00 1.2952295974238952e+00 -6.8418604194700734e+00 21 7.5368441125225569e+00 -6.6312144471864132e-01 -1.5138365776222530e+01
22 -1.6932518707227068e+01 7.9121058022000454e+00 -1.1375062696143653e+01 22 -3.4057426354942756e+01 2.1405565842769381e+01 -2.9984321416266358e+01
23 2.9996562341895361e+00 5.6579801576633635e+00 4.4728006000546641e+00 23 8.0469707811206597e+00 1.0477541834191719e+01 1.0131508224936237e+01
24 5.1680026224182871e+00 5.1810573601411045e+00 6.9298319426021155e+00 24 9.8383826417631148e+00 9.6349625198578526e+00 1.5013294254149651e+01
25 3.1353884361512914e+00 1.6058771944664529e-01 3.4758213715479744e+00 25 3.4810928893469715e+00 -1.4841921158444644e+00 5.4642693824111372e+00
26 -1.5161565674716488e+00 -1.5510416049393845e+00 5.1443392259165305e-02 26 -2.3223608191381340e+00 -1.9382774168314612e+00 1.9587113445207314e+00
27 5.8829868840537012e+00 -1.4576271120974353e+00 3.0939941761392094e+00 27 1.0055183772571926e+01 -3.2340066923335420e+00 9.4069162395840653e+00
28 1.6230499697020511e+00 1.4636285126942963e+00 1.1875062811913887e+01 28 -1.4807366090187568e+00 4.2563893473777270e+00 2.6233758242745271e+01
29 -9.0044083076844927e+00 8.9978643282364112e-01 -3.6333182759219680e+00 29 -1.6703205460657923e+01 4.1651596726989162e+00 -3.7499748242430431e+00
30 -3.3592923882740333e+00 5.2571864710026954e+00 -1.7077396196968402e+00 30 -7.5315305395260133e+00 5.9234388839590926e+00 -3.4452711570790400e+00
31 -1.6500480953824879e+00 3.5931111402419305e+00 -1.8893711494790042e+00 31 -4.6531876936546235e+00 3.5592882805052772e+00 -3.9598740266606969e+00
32 -8.3873358693088083e+00 1.4007390010793448e+00 -1.9140680409249233e+00 32 -1.4944303903312775e+01 2.4471615913038161e+00 -4.2650219550740687e-01
33 1.1929925271781036e+01 -7.5607293607213562e+00 8.9276374053193166e+00 33 2.2658757219633507e+01 -1.3584416809504527e+01 2.0208960807112184e+01
34 -5.8208023141639853e-01 -5.5745007964822024e-01 1.8277744619456637e+00 34 -3.3589165465629545e-01 -2.6107343201152533e-01 2.4480790007625792e+00
35 1.7136741165547187e+00 -2.1140334235225700e+00 7.3627368355304368e+00 35 4.0211644744872297e+00 -4.1429951008983439e+00 1.1760815779271793e+01
36 9.8461575627457365e-01 -5.1895947221609999e+00 -1.7416681629788844e+00 36 1.6800414992388888e+00 -9.9255954579260965e+00 -1.2707502624572800e+00
37 -4.3479597602556987e+00 5.9771199348457786e+00 -6.4035952128921325e+00 37 -8.6804527612389748e+00 1.1664083566069120e+01 -1.1501862395898650e+01
38 5.4022686330729042e-01 -1.9715997267295688e+00 -8.5655067815022723e-01 38 8.4680311647032236e-01 -2.4612760516651839e+00 -1.2097356180320062e+00
39 3.9223699424296088e+00 -4.0527508147694391e+00 -9.4209981476048874e+00 39 8.9453757306916213e+00 -1.0088842671984429e+01 -2.0010220469214108e+01
40 1.1452927978439993e+01 -4.8883937399550499e+00 -3.5415966186040104e+00 40 2.1504084288180351e+01 -1.3896767860015089e+01 -6.8807964610220305e+00
41 9.6744931407782142e-01 -2.1966543538862224e-01 -2.7321296820305050e+00 41 7.0920990633236713e-01 1.2470146465265874e-01 -4.2863469697626764e+00
42 -8.2423780480934816e+00 -5.1198905741883944e+00 -3.2132369293703431e+00 42 -1.7782621211784086e+01 -1.1955425533865377e+01 -6.6645896379089864e+00
43 1.3449232112837139e-01 -1.4266031489439955e+01 9.0529636113665890e-01 43 1.1161210933461418e-01 -2.7806283629207936e+01 2.1722600588316636e+00
44 9.2864716878942914e+00 -1.0653224674860530e+01 6.0756644746289155e+00 44 1.8203724536783220e+01 -1.8177439994718490e+01 1.1405342753966950e+01
45 -7.3279419010510516e-01 6.2791577709783972e+00 -8.9108524114379080e+00 45 -3.0178433365984279e+00 9.8077736148291894e+00 -1.7038567454709415e+01
46 -1.9039679778788625e+00 -4.0528901631980760e+00 1.1630733460046352e+01 46 -9.8284407570915224e+00 -1.0940905728232703e+01 2.5546254074522583e+01
47 6.3763337760997540e+00 5.1233125844104510e+00 2.8138206914970656e+00 47 1.1994531752732673e+01 7.6401656163848370e+00 6.9803825716270822e+00
48 2.3380859800951628e+00 2.2326450966381390e+00 1.5287384487626418e-01 48 5.7959428775443431e+00 3.3532761798385975e+00 -1.2090959321884160e+00
49 -2.8014223230382376e+00 -1.2044581352367127e+01 -8.0347575819620474e+00 49 -9.0871621934125741e+00 -2.5525880549057131e+01 -1.8352634645685395e+01
50 2.1422145518477187e+00 7.2424826745901107e+00 -3.0637741546937911e+00 50 6.2385949228372839e+00 1.1775731352242135e+01 -3.6905119289093129e+00
51 -4.1001979259164552e+00 8.5374368127020315e+00 8.7144930213835430e+00 51 -9.3751646607544306e+00 1.9380398875813281e+01 1.8936970290617868e+01
52 1.1806523391252540e+01 -1.2284601329073553e+01 1.3944720496276224e+01 52 2.8857474615857534e+01 -2.7077834887393038e+01 3.4226465823003075e+01
53 5.1475653317387939e+00 8.0227245379881804e+00 3.2309313222296896e+00 53 1.1272120589697714e+01 1.7723730455257613e+01 1.3346433354217156e+01
54 5.7087433874913218e+00 -5.6601583438330563e+00 -4.8237069484155661e+00 54 1.0332668416350394e+01 -1.1587076788781554e+01 -1.1187068870176809e+01
55 7.3380406496835295e+00 -8.4939091917007623e+00 -8.9244600192476753e+00 55 1.2173218480738553e+01 -1.7697903958592068e+01 -1.6191659128871123e+01
56 -1.2296439276523572e+00 2.7286867585656513e+00 -5.9003523038759793e+00 56 2.8687984465975036e-01 3.8573613826299376e+00 -9.8055015944721848e+00
57 6.7476852384192298e-01 -3.7254641308262482e+00 2.8703807089098310e-02 57 1.5729444649974420e+00 -2.4852524890772023e+00 -9.1852174894903216e-01
58 7.1320373971199791e+00 -4.6322478918816286e+00 3.6412286305653043e+00 58 1.1318588067888333e+01 -5.7432426696637133e+00 3.1502768462440778e+00
59 7.1937029046281671e+00 4.5742558433451368e+00 -3.7956679883677404e+00 59 1.8921515215481648e+01 1.1640044816648190e+01 -8.5417711391321323e+00
60 -2.8288653495291820e+00 -1.3157182815231137e+01 -8.0095169657552905e+00 60 -1.1460356409734461e+01 -2.9330410460922113e+01 -2.0104676097775538e+01
61 -9.9276745329887783e-01 3.0408835454693719e+00 7.7871977254688995e-01 61 -1.3788623174852395e+00 6.5163432076409729e+00 -1.5956661994290990e+00
62 -7.4381007616019534e+00 6.1448378054475778e+00 -4.6683183548425067e+00 62 -1.2770749422150793e+01 1.2364427527668891e+01 -9.6757027946868899e+00
63 5.5682593755810563e+00 -7.3119820285913608e+00 -2.0100166481798887e-01 63 1.3527485731142161e+01 -1.2652030425033526e+01 -7.2614405652239205e+00
64 6.5075012240147911e+00 6.2545959336473818e+00 1.4555696233577285e+01 64 1.5374786151597569e+01 1.5882729911096058e+01 3.2580670961989632e+01
... ...