.. index:: fix eos/table/rx

fix eos/table/rx command
========================

fix eos/table/rx/kk command
===========================

Syntax
""""""


.. parsed-literal::

   fix ID group-ID eos/table/rx style file1 N keyword ...

* ID, group-ID are documented in :doc:`fix <fix>` command
* eos/table/rx = style name of this fix command
* style = *linear* = method of interpolation
* file1 = filename containing the tabulated equation of state
* N = use N values in *linear* tables
* keyword = name of table keyword corresponding to table file
* file2 = filename containing the heats of formation of each species (optional)
* deltaHf = heat of formation for a single species in energy units (optional)
* energyCorr = energy correction in energy units (optional)
* tempCorrCoeff = temperature correction coefficient (optional)

Examples
""""""""


.. parsed-literal::

   fix 1 all eos/table/rx linear eos.table 10000 KEYWORD thermo.table
   fix 1 all eos/table/rx linear eos.table 10000 KEYWORD 1.5
   fix 1 all eos/table/rx linear eos.table 10000 KEYWORD 1.5 0.025 0.0

Description
"""""""""""

Fix *eos/table/rx* applies a tabulated mesoparticle equation
of state to relate the concentration-dependent particle internal
energy (u\_i) to the particle internal temperature (dpdTheta\_i).

The concentration-dependent particle internal energy (u\_i) is
computed according to the following relation:

.. image:: Eqs/fix_eos_table_rx.jpg
   :align: center

where *m* is the number of species, *c\_i,j* is the concentration of
species *j* in particle *i*\ , *u\_j* is the internal energy of species j,
*DeltaH\_f,j* is the heat of formation of species *j*\ , N is the number of
molecules represented by the coarse-grained particle, kb is the
Boltzmann constant, and T is the temperature of the system.  Additionally,
it is possible to modify the concentration-dependent particle internal
energy relation by adding an energy correction, temperature-dependent
correction, and/or a molecule-dependent correction.  An energy correction can
be specified as a constant (in energy units).  A temperature correction can be
specified by multiplying a temperature correction coefficient by the
internal temperature.  A molecular correction can be specified by
by multiplying a molecule correction coefficient by the average number of
product gas particles in the coarse-grain particle.

Fix *eos/table/rx* creates interpolation tables of length *N* from *m*
internal energy values of each species *u\_j* listed in a file as a
function of internal temperature.  During a simulation, these tables
are used to interpolate internal energy or temperature values as needed.
The interpolation is done with the *linear* style.  For the *linear* style,
the internal temperature is used to find 2 surrounding table values from
which an internal energy is computed by linear interpolation.  A secant
solver is used to determine the internal temperature from the internal energy.

The first filename specifies a file containing tabulated internal
temperature and *m* internal energy values for each species *u\_j*.
The keyword specifies a section of the file.  The format of this
file is described below.

The second filename specifies a file containing heat of formation
*DeltaH\_f,j* for each species.

In cases where the coarse-grain particle represents a single molecular
species (i.e., no reactions occur and fix *rx* is not present in the input file),
fix *eos/table/rx* can be applied in a similar manner to fix *eos/table*
within a non-reactive DPD simulation.  In this case, the heat of formation
filename is replaced with the heat of formation value for the single species.
Additionally, the energy correction and temperature correction coefficients may
also be specified as fix arguments.


----------


The format of a tabulated file is as follows (without the
parenthesized comments):


.. parsed-literal::

   # EOS TABLE                (one or more comment or blank lines)

   KEYWORD                    (keyword is first text on line)
   N 500 h2 no2 n2 ... no     (N  parameter species1 species2 ... speciesN)
                              (blank)
   1   1.00 0.000 ... 0.0000  (index, internal temperature, internal energy of species 1, ..., internal energy of species m)
   2   1.02 0.001 ... 0.0002
   ...
   500 10.0 0.500 ... 1.0000

A section begins with a non-blank line whose 1st character is not a
"#"; blank lines or lines starting with "#" can be used as comments
between sections.  The first line begins with a keyword which
identifies the section.  The line can contain additional text, but the
initial text must match the argument specified in the fix command.

The next line lists the number of table entries and the species names
that correspond with all the species listed in the reaction equations
through the *fix rx* command.
The parameter "N" is required and its value is the number of table
entries that follow.  Let Nfile = "N" in the tabulated file.
What LAMMPS does is a preliminary interpolation by creating splines
using the Nfile tabulated values as nodal points.

Following a blank line, the next N lines list the tabulated values.
On each line, the 1st value is the index from 1 to N, the 2nd value is
the internal temperature (in temperature units), the 3rd value until
the *m+3* value are the internal energies of the m species (in energy units).

Note that all internal temperature and internal energy values must
increase from one line to the next.

Note that one file can contain many sections, each with a tabulated
potential.  LAMMPS reads the file section by section until it finds
one that matches the specified keyword.


----------


The format of a heat of formation file is as follows (without the
parenthesized comments):


.. parsed-literal::

   # HEAT OF FORMATION TABLE  (one or more comment or blank lines)

                              (blank)
   h2      0.00               (species name, heat of formation)
   no2     0.34
   n2      0.00
   ...
   no      0.93

Note that the species can be listed in any order.  The tag that is
used as the species name must correspond with the tags used to define
the reactions with the :doc:`fix rx <fix_rx>` command.

Alternatively, corrections to the EOS can be included by specifying
three additional columns that correspond to the energy correction,
the temperature correction coefficient and molecule correction
coefficient.  In this case, the format of the file is as follows:


.. parsed-literal::

   # HEAT OF FORMATION TABLE     (one or more comment or blank lines)

                                 (blank)
   h2      0.00 1.23 0.025  0.0  (species name, heat of formation, energy correction, temperature correction coefficient, molecule correction coefficient)
   no2     0.34 0.00 0.000 -1.76
   n2      0.00 0.00 0.000 -1.76
   ...
   no      0.93 0.00 0.000 -1.76


----------


Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are
functionally the same as the corresponding style without the suffix.
They have been optimized to run faster, depending on your available
hardware, as discussed on the :doc:`Speed packages <Speed_packages>` doc
page.  The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues.

These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively.  They are only enabled if
LAMMPS was built with those packages.  See the :doc:`Build package <Build_package>` doc page for more info.

You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the :doc:`-suffix command-line switch <Run_options>` when you invoke LAMMPS, or you can use the
:doc:`suffix <suffix>` command in your input script.

See the :doc:`Speed packages <Speed_packages>` doc page for more
instructions on how to use the accelerated styles effectively.


----------


Restrictions
""""""""""""


This command is part of the USER-DPD package.  It is only enabled if
LAMMPS was built with that package.  See the :doc:`Build package <Build_package>` doc page for more info.

This command also requires use of the :doc:`atom\_style dpd <atom_style>`
command.

The equation of state must be a monotonically increasing function.

An error will occur if the internal temperature or internal energies
are not within the table cutoffs.

Related commands
""""""""""""""""

:doc:`fix rx <fix_rx>`,
:doc:`pair dpd/fdt <pair_dpd_fdt>`

**Default:** none


----------



.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html
