Commit 008cabff authored by Jordan Musser's avatar Jordan Musser
Browse files

Document solids.momentum.update and solids.energy.update (!238)

parent ed896da0
Loading
Loading
Loading
Loading
+37 −11
Changes for docs/source_docs/user_guide/inputs/model_options.rst: 37 added lines, 11 removed lines.
Original line number Diff line number Diff line
@@ -96,8 +96,8 @@ The following inputs are defined using the prefix ``mfix``:
+--------------------------------------+----------------------------------------------------------------------------+-------------+---------------------+
| cfl                                  | CFL constraint (dt < cfl * dx / u)                                         |    Real     | See note            |
|                                      |                                                                            |             |                     |
|                                      | * Defaults to 0.5 if ``mfix.advection_type = MOL``                         |             |                     |
|                                      | * Defaults to 0.9 if ``mfix.advection_type = Godunov``                     |             |                     |
|                                      | * Default ``0.5`` when ``mfix.advection_type == MOL``.                     |             |                     |
|                                      | * Default ``0.9`` otherwise.                                               |             |                     |
|                                      | * Ignored if ``mfix.fixed_dt > 0``                                         |             |                     |
+--------------------------------------+----------------------------------------------------------------------------+-------------+---------------------+
| redistribution_type                  | Algorithms to address the *'small cell problem'* associated with           |   String    |  StateRedist        |
@@ -142,26 +142,52 @@ Particle options

The following inputs are defined using the prefix ``solids``:

+---------------------+---------------------------------------------------------------------------+-------------+-----------+
+---------------------+---------------------------------------------------------------------------+-------------+-------------+
|                     | Description                                                               |   Type      | Default     |
+=====================+===========================================================================+=============+===========+
+=====================+===========================================================================+=============+=============+
| model               | Solids model used by the solids solver.                                   | String      | None        |
|                     |                                                                           |             |             |
|                     | Options:                                                                  |             |             |
|                     |                                                                           |             |             |
|                     | * ``dem`` : Discrete element method (DEM). Each particle is modeled as    |             |             |
|                     |   a sphere, and all particle collisions are resolved.                     |             |             |
|                     |                                                                           |             |             |
|                     | * ``pic`` : Particle-in-cell method (PIC). Particles are grouped into     |             |             |
|                     |   parcels that interact through a solids stress gradient.                 |             |             |
+---------------------+---------------------------------------------------------------------------+-------------+-----------+
| enable.momentum     | Flag to update particle velocity and position.                            | Int         |    1      |
+---------------------+---------------------------------------------------------------------------+-------------+-----------+
| enable.energy       | Flag to update particle temperature and enthalpy.                         | Int         |    1      |
+---------------------+---------------------------------------------------------------------------+-------------+-----------+
+---------------------+---------------------------------------------------------------------------+-------------+-------------+
| momentum.update     | How particle velocity and position are updated.                           | String      | See note    |
|                     |                                                                           |             |             |
|                     | Options:                                                                  |             |             |
|                     |                                                                           |             |             |
|                     | * ``explicit`` : Evaluate fluid-particle drag using the particle          |             |             |
|                     |   velocity at the start of the step.                                      |             |             |
|                     |   Default when ``solids.model == dem``.                                   |             |             |
|                     | * ``implicit`` : Evaluate fluid-particle drag using the updated           |             |             |
|                     |   particle velocity.                                                      |             |             |
|                     |   Default when ``solids.model == pic``.                                   |             |             |
|                     | * ``none`` : Hold particle velocities and positions fixed.                |             |             |
|                     |   Default otherwise.                                                      |             |             |
+---------------------+---------------------------------------------------------------------------+-------------+-------------+
| energy.update       | How particle temperature and enthalpy are updated.                        | String      | See note    |
|                     |                                                                           |             |             |
|                     | Options:                                                                  |             |             |
|                     |                                                                           |             |             |
|                     | * ``explicit`` : Default otherwise.                                       |             |             |
|                     | * ``implicit`` : Default when ``mfix.enable.radiation == true``.          |             |             |
|                     | * ``none`` : Hold particle enthalpies and temperatures fixed.             |             |             |
+---------------------+---------------------------------------------------------------------------+-------------+-------------+
| energy.source       | User defined enthalpy source for particles.                               | Real        | 0.          |
+---------------------+---------------------------------------------------------------------------+-------------+-----------+
+---------------------+---------------------------------------------------------------------------+-------------+-------------+
| prevent_outflow     | Prevent particles from exiting at pressure outlets.                       |  Int        | 0           |
+---------------------+---------------------------------------------------------------------------+-------------+-----------+
+---------------------+---------------------------------------------------------------------------+-------------+-------------+


See :ref:`implicit drag<InputsDEMImplicitDrag>` for the DEM momentum update.

.. note::
   ``momentum.update`` and ``energy.update`` replace ``solids.enable.momentum``,
   ``solids.enable.energy`` and ``dem.implicit_drag``. The old inputs are
   still read, with a deprecation message.



+6 −6
Changes for docs/source_docs/user_guide/inputs/solids_model.rst: 6 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -314,9 +314,6 @@ The following keys must be defined with the prefix ``dem``:
| damping_tang_fac.pw           | Factor relating the tangential damping coefficient to the normal        | Real     |  0.5      |
|                               | damping coefficient :: particle to wall collisions                      |          |           |
+-------------------------------+-------------------------------------------------------------------------+----------+-----------+
| implicit_drag                 | Apply fluid-particle drag force by                                      | Int      |  0        |
|                               | :ref:`implicit velocity update<InputsDEMImplicitDrag>`.                 |          |           |
+-------------------------------+-------------------------------------------------------------------------+----------+-----------+
| tan_history                   | Include tangential history force in the collision model.                | Bool     | false     |
+-------------------------------+-------------------------------------------------------------------------+----------+-----------+
| tan_history.max_contacts      | Maximum number of contacts per particle tracked at any point when       | Int      | 10        |
@@ -387,7 +384,8 @@ Below is an example for specifying the inputs for two DEM solids.
Implicit drag
~~~~~~~~~~~~~

By default, the fluid-particle drag force is applied explicitly to particles,
By default (``solids.momentum.update = explicit``), the fluid-particle drag force is applied
explicitly to particles,

.. math::

@@ -405,7 +403,7 @@ and partly because particles typically sub-step in time. Specifically, a time st
total time. In the above equation, prime markers differentiate quantities updated at each DEM sub-step.

The updated particle velocity, :math:`u_p^{n^{\prime}+1}`, is substituted into the drag expression when
`implicit drag` is enabled.
``solids.momentum.update = implicit``.

.. math::

@@ -413,7 +411,9 @@ The updated particle velocity, :math:`u_p^{n^{\prime}+1}`, is substituted into t

By using the updated velocity, the drag force computed for the fluid and particles is inconsistent,
and interphase momentum is not conserved. However, implicit drag may be needed for numerical stability
when the particle density is much less than the fluid (such as bubbles).
when the particle density is much less than the fluid (such as bubbles). The implicit update is
required when virtual mass is included, and the virtual mass coefficient is added to the particle
mass in the denominator.