Draft examples, patches, clarify interface reconstruct in RHEO
This commit is contained in:
@ -134,6 +134,8 @@ Lowercase directories
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| rerun | use of rerun and read_dump commands |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| rheo | RHEO simulations of fluid flows and phase transitions |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| rigid | rigid bodies modeled as independent or coupled |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| shear | sideways shear applied to 2d solid, with and without a void |
|
||||
|
||||
@ -10,8 +10,12 @@ particles can dynamically change between a fluid and solid state, e.g. during
|
||||
melting/solidification, which determines how they interact and their physical
|
||||
behavior. The package is designed with modularity in mind, so one can easily
|
||||
turn various features on/off, adjust physical details of the system, or
|
||||
develop new capabilities. Additional numerical details can be found in
|
||||
:ref:`(Palermo) <howto_rheo_palermo>` and :ref:`(Clemmer) <howto_rheo_clemmer>`.
|
||||
develop new capabilities. For instance, the numerics associated with
|
||||
calculating gradients, reproducing kernels, etc. are separated into distinct
|
||||
classes to simplify the development of new integration schemes which can call
|
||||
these calculations. Additional numerical details can be found in
|
||||
:ref:`(Palermo) <howto_rheo_palermo>` and
|
||||
:ref:`(Clemmer) <howto_rheo_clemmer>`.
|
||||
|
||||
----------
|
||||
|
||||
@ -29,12 +33,17 @@ other RHEO fixes.
|
||||
Typically, RHEO requires atom style rheo. In addition to typical atom
|
||||
properties like positions and forces, particles store a local density,
|
||||
viscosity, pressure, and status. If thermal evolution is modeled, one must
|
||||
use atom style rheo/thermal which also include a local temperature and
|
||||
conductivity. The status variable uses bitmasking to track various
|
||||
properties of a particle such as its current state of matter (fluid or solid)
|
||||
and its location relative to a surface. Many of these properties (and others)
|
||||
can be easily accessed using
|
||||
:doc:`compute rheo/property/atom <fix_rheo_property_atom>`.
|
||||
use atom style rheo/thermal which also includes a local energy, temperature, and
|
||||
conductivity. Note that the temperature is always derived from the energy.
|
||||
This implies the *temperature* attribute of :doc:`the set command <set>` does not
|
||||
affect particles. Instead, one should use the *sph/e* attribute.
|
||||
|
||||
The status variable uses bitmasking to track various properties of a particle
|
||||
such as its current state of matter (fluid or solid) and its location relative
|
||||
to a surface. Some of these properties (and others) can be accessed using
|
||||
:doc:`compute rheo/property/atom <fix_rheo_property_atom>`. The *status* attribute
|
||||
in :doc:`the set command <set>` only allows control over the first bit which sets
|
||||
the state of matter, 0 is fluid and 1 is solid.
|
||||
|
||||
Fluid interactions, including pressure forces, viscous forces, and heat exchange,
|
||||
are calculated using :doc:`pair rheo <pair_rheo>`. Unlike typical pair styles,
|
||||
@ -61,7 +70,8 @@ in the same elastic body.
|
||||
|
||||
In systems with thermal evolution, fix rheo/thermal can optionally set a
|
||||
melting/solidification temperature allowing particles to dynamically swap their
|
||||
state between fluid and solid. Using the *react* option, one can specify a maximum
|
||||
state between fluid and solid when the temperature exceeds or drops below the
|
||||
critical temperature, respectively. Using the *react* option, one can specify a maximum
|
||||
bond length and a bond type. Then, when solidifying, particles will search their
|
||||
local neighbors and automatically create bonds with any neighboring solid particles
|
||||
in range. For BPM bond styles, bonds will then use the immediate position of the two
|
||||
|
||||
@ -65,7 +65,7 @@ the setup of a run. Data is then preserved across run commands and is
|
||||
written to :doc:`binary restart files <restart>` such that restarting
|
||||
the system will not reset the reference state of a bond or the timer.
|
||||
|
||||
This bond style is based on a model described in Ref.
|
||||
This bond style is based on a model described in
|
||||
:ref:`(Clemmer) <howto_rheo_clemmer>`. The force has a magnitude of
|
||||
|
||||
.. math::
|
||||
|
||||
@ -16,19 +16,18 @@ Syntax
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
possible attributes = phase, chi, surface, surface/r,
|
||||
possible attributes = phase, surface, surface/r,
|
||||
surface/divr, surface/n/x, surface/n/y,
|
||||
surface/n/z, coordination, cv, shift/v/x,
|
||||
shift/v/y, shift/v/z, energy, temperature, heatflow,
|
||||
conductivity, cv, viscosity, pressure,
|
||||
status, rho, grad/v/xx, grad/v/xy, grad/v/xz,
|
||||
rho, grad/v/xx, grad/v/xy, grad/v/xz,
|
||||
grad/v/yx, grad/v/yy/, grad/v/yz, grad/v/zx,
|
||||
grad/v/zy, grad/v/zz
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*phase* = atom phase state
|
||||
*chi* = atom local phase metric
|
||||
*surface* = atom surface status
|
||||
*surface/r* = atom distance from the surface
|
||||
*surface/divr* = divergence of position at atom position
|
||||
@ -42,7 +41,6 @@ Syntax
|
||||
*cv* = atom specific heat
|
||||
*viscosity* = atom viscosity
|
||||
*pressure* = atom pressure
|
||||
*status* = atom full status
|
||||
*rho* = atom density
|
||||
*grad/v/\** = atom velocity gradient
|
||||
*nbond/shell* = number of oxide bonds
|
||||
@ -70,14 +68,32 @@ computes as inputs. See for example, the
|
||||
:doc:`fix ave/chunk <fix_ave_chunk>`, and
|
||||
:doc:`atom-style variable <variable>` commands.
|
||||
|
||||
The possible attributes are described in more detail in other RHEO doc
|
||||
pages including :doc:`the RHEO howto page <Howto_rheo>`. Many
|
||||
properties require their respective fixes, listed below in related
|
||||
commands, be defined.
|
||||
Many properties require their respective fixes, listed below in related
|
||||
commands, be defined. For instance, the *viscosity* attribute is the
|
||||
viscosity of a particle calculated by
|
||||
:doc:`fix rheo/viscous <fix_rheo_viscosity>`. The meaning of less obvious
|
||||
properties is described below.
|
||||
|
||||
The *phase* property indicates whether the particle is in a fluid state,
|
||||
a value of 0, or a solid state, a value of 1.
|
||||
|
||||
The *surface* property indicates the surface designation produced by
|
||||
the *interface/reconstruct* option of :doc:`fix rheo <fix_rheo>`. Bulk
|
||||
particles have a value of 0, surface particles have a value of 1, and
|
||||
splash particles have a value of 2. The *surface/r* property is the
|
||||
distance from the surface, up to the kernel cutoff length. Surface particles
|
||||
have a value of 0. The *surface/n* properties are the components of the
|
||||
surface normal vector.
|
||||
|
||||
The *shift/v* properties are the components of the shifting velocity
|
||||
produced by the *shift* option of :doc:`fix rheo <fix_rheo>`.
|
||||
|
||||
The *surface/n/\** and *shift/v/\** attributes are vectors that require
|
||||
specification of the *x*, *y*, or *z* component, e.g. *surface/n/x*.
|
||||
|
||||
The *nbond/shell* property is the number of shell bonds that have been
|
||||
activated from :doc:`bond style rheo/shell <bond_rheo_shell>`.
|
||||
|
||||
The *grad/v/\** attribute is a tensor and requires specification of
|
||||
the *xx*, *yy*, *zz*, *xy*, *xz*, *yx*, *yz*, *zx*, or *zy* component,
|
||||
e.g. *grad/v/xy*.
|
||||
|
||||
@ -92,7 +92,8 @@ Shifting is then disabled in the direction away from the free surface to
|
||||
prevent it from diffusing particles away from the bulk fluid. Surface
|
||||
detection can also be used to control surface-nucleated effects like
|
||||
oxidation when used in combination with
|
||||
:doc:`fix rheo/oxidation <fix_rheo_oxidation>`.
|
||||
:doc:`fix rheo/oxidation <fix_rheo_oxidation>`. Surface detection is not
|
||||
performed on solid bodies.
|
||||
|
||||
The *surface/detection* keyword takes three arguments: *sdstyle*, *limit*,
|
||||
and *limi/splash*. The first, *sdstyle*, specifies whether surface particles
|
||||
|
||||
@ -35,10 +35,12 @@ for use with bond style :doc:`bond rheo/shell <bond_rheo_shell>`.
|
||||
|
||||
Every timestep, particles check neighbors within a distance of *cut*.
|
||||
This distance must be smaller than the kernel length defined in
|
||||
:doc:`fix rheo <fix_rheo>`. If both particles are on the fluid surface,
|
||||
or within a distance of *rsurf* from the surface, a bond of type
|
||||
*btype* is created between the two particles. This process is
|
||||
further described in Ref. :ref:`(Clemmer) <howto_rheo_clemmer>`.
|
||||
:doc:`fix rheo <fix_rheo>`. Bonds of type *btype* are created between
|
||||
pairs of particles that satisfy one of two conditions. First, if both
|
||||
particles are on the fluid surface, or within a distance of *rsurf*
|
||||
from the surface. Secondly, if one particle is on the fluid surface
|
||||
and the other bond is solid. This process is further described in
|
||||
:ref:`(Clemmer) <howto_rheo_clemmer>`.
|
||||
|
||||
If used in conjunction with solid bodies, such as those generated
|
||||
by the *react* option of :doc:`fix rheo/thermal <fix_rheo_thermal>`,
|
||||
|
||||
@ -55,12 +55,20 @@ rheo/thermal. In addition, it defines multiple thermal properties of
|
||||
particles and handles melting/solidification, if applicable. For more details
|
||||
on phase transitions in RHEO, see :doc:`the RHEO howto <Howto_rheo>`.
|
||||
|
||||
Note that the temperature of a particle is always derived from the energy.
|
||||
This implies the *temperature* attribute of :doc:`the set command <set>` does
|
||||
not affect particles. Instead, one should use the *sph/e* attribute.
|
||||
|
||||
For each atom type, one can define attributes for the *conductivity*,
|
||||
*specific/heat*, *latent/heat*, and critical temperature (*Tfreeze*).
|
||||
The conductivity and specific heat must be defined for all atom types.
|
||||
The latent heat and critical temperature are optional. However, a
|
||||
critical temperature must be defined to specify a latent heat.
|
||||
|
||||
Note, if shifting is turned on in :doc:`fix rheo <fix_rheo>`, the gradient
|
||||
of the energy is used to shift energies. This may be inappropriate in systems
|
||||
with multiple atom types with different specific heats.
|
||||
|
||||
For each property, one must first define a list of atom types. A wild-card
|
||||
asterisk can be used in place of or in conjunction with the *types* argument
|
||||
to set the coefficients for multiple pairs of atom types. This takes the
|
||||
|
||||
@ -717,7 +717,7 @@ of analysis.
|
||||
* - rheo
|
||||
- atom-ID atom-type status rho x y z
|
||||
* - rheo/thermal
|
||||
- atom-ID atom-type status rho temperature x y z
|
||||
- atom-ID atom-type status rho energy x y z
|
||||
* - smd
|
||||
- atom-ID atom-type molecule volume mass kradius cradius x0 y0 z0 x y z
|
||||
* - sph
|
||||
|
||||
Reference in New Issue
Block a user