Updates to model options

Merge request reports

Loading
+209 −246
Changes for docs/source_docs/user_guide/inputs/model_options.rst: 209 added lines, 246 removed lines.
Original line number Diff line number Diff line
Model options
=============

In this section it is described how the input file can be configured in order to
specify the settings of the problem at hand. The input file must be
passed as first argument to the MFIX-Exa executable.

The following inputs are defined using the ``mfix`` prefix.

The following inputs must be preceded by "mfix."

+------------------------+-------------------------------------------------------------------+----------+---------------------+
+------------------------+----------------------------------------------------------------------------+----------+---------------------+
|                        | Description                                                                |   Type   | Default             |
+========================+===================================================================+==========+=====================+
| gravity                | Gravity vector (e.g., mfix.gravity = -9.81  0.0  0.0) [required]  |   Reals  | 0 0 0               |
+------------------------+-------------------------------------------------------------------+----------+---------------------+
| advect_density         | Switch for turning ON (1) or OFF (0) fluid density evolution      |   Int    | 0                   |
+------------------------+-------------------------------------------------------------------+----------+---------------------+
| advect_enthalpy        | Switch for turning ON (1) or OFF (0) fluid temperature evolution  |   Int    | 0                   |
+------------------------+-------------------------------------------------------------------+----------+---------------------+
| solve_species          | Switch for turning ON (1) or OFF (0) fluid species mass fraction  |   Int    | 0                   |
|                        | evolution                                                         |          |                     |
+------------------------+-------------------------------------------------------------------+----------+---------------------+
| constraint_type        | Select which constraint to apply to the problem.                  |   String | IncompressibleFluid |
|                        | Available options include:                                        |          |                     |
+========================+============================================================================+==========+=====================+
| gravity                | Gravity vector [required]                                                  |   Reals  | 0 0 0               |
+------------------------+----------------------------------------------------------------------------+----------+---------------------+
| advect_density         | Flag to enable time evolution of fluid density.                            |   int    | 0                   |
+------------------------+----------------------------------------------------------------------------+----------+---------------------+
| advect_enthalpy        | Flag to enable time evolution of fluid temperature and enthalpy.           |   int    | 0                   |
+------------------------+----------------------------------------------------------------------------+----------+---------------------+
| solve_species          | Flag to enable the time evolution of fluid species mass                    |   int    | 0                   |
|                        | fractions.                                                                 |          |                     |
+------------------------+----------------------------------------------------------------------------+----------+---------------------+
| constraint_type        | Select low Mach number constraint.                                         | string   | IncompressibleFluid |
|                        |                                                                            |          |                     |
|                        | * ``IncompressibleFluid`` constraint is appropriate for cold flow systems  |          |                     |
|                        |   that do not have chemical reactions. Fluid temperature and species mass  |          |                     |
|                        |   fractions act as passive tracers if advected.                            |          |                     |
|                        |                                                                            |          |                     |
|                        | * ``IdealGasOpenSystem`` constraint is used if the physical domain         |          |                     |
|                        |   contains at least one pressure outflow boundary condition. The specified |          |                     |
|                        |   outflow (ambient) pressure is maintained so that the thermodynamic       |          |                     |
|                        |   pressure is constant.                                                    |          |                     |
|                        |                                                                            |          |                     |
|                        | * 'incompressiblefluid' for incompressibility constraint          |          |                     |
|                        | * 'idealgasopensystem' for Ideal Gas-Open System constraint       |          |                     |
|                        | * 'idealgasclosedsystem' for Ideal Gas-Closed System constraint   |          |                     |
+------------------------+-------------------------------------------------------------------+----------+---------------------+
|                        | * ``IdealGasClosedSystem`` constraint is used for systems that are fully   |          |                     |
|                        |   periodic or completely closed with no inflow / outflow boundaries.       |          |                     |
|                        |   The thermodynamic pressure evolves in time to balance processes like     |          |                     |
|                        |   chemical reactions.                                                      |          |                     |
|                        |                                                                            |          |                     |
+------------------------+----------------------------------------------------------------------------+----------+---------------------+

.. note::
   The thermodynamic pressure is a scalar value, not a scalar field. This is a consequence of
   the low Mach number assumption.


Fluid discretization
--------------------

The following inputs must be preceded by "mfix."
The following inputs are defined using the ``mfix`` prefix.

+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+
| Key                             | Description                                                           |   Type      | Default      |
+=================================+=======================================================================+=============+==============+
| advection_type                  | Predictor-Corrector Method of Lines ("mol") or Godunov ("godunov")    |   String    |  Godunov     |
| advection_type                  | Advection scheme                                                      |  string     |  Godunov     |
|                                 |                                                                       |             |              |
|                                 | * ``mol`` Predictor-Corrector Method of Lines. MAC velocities and     |             |              |
|                                 |   edge states are extrapolated in space.                              |             |              |
|                                 |                                                                       |             |              |
|                                 | * ``godunov`` Godunov. MAC velocities and edge states are             |             |              |
|                                 |   extrapolated in space and time using a second-order Taylor series   |             |              |
|                                 |   expansion.                                                          |             |              |
|                                 |                                                                       |             |              |
+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+
| redistribution_type             | Use flux ("FluxRedist"), state ("StateRedist") or no ("NoRedist")     |             |              |
|                                 | redistribution                                                        |   String    |  StateRedist |
| redistribution_type             | Algorithms to address the '*small cell problem*' associated with      |   String    |  StateRedist |
|                                 | explicit cut-cell algorithms.                                         |             |              |
|                                 |                                                                       |             |              |
|                                 | * ``StateRedist`` [Berger_Giulini_2021]_ [Giulini_etal_2022]_         |             |              |
|                                 | * ``FluxRedist`` [Chern_Colella_1987]_ [Colella_etal_2006]_           |             |              |
|                                 | * ``NoRedist``: Do not redistribute fluxes.                           |             |              |
|                                 |                                                                       |             |              |
+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+
| redistribute_before_nodal_proj  | Redistribute the velocity field before the nodal projection           |   Bool      |  True        |
+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+
@@ -54,31 +77,36 @@ The following inputs must be preceded by "mfix."
|                                 | at the end of the predictor and corrector                             |   Real      |  1.e-4       |
+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+

Notes: The code was originally developed with MOL and FluxRedist. Preliminary
tests show that the new single-step Godunov method is roughly twice as fast as
the predictor-corrector MOL at the same time step (e.g., CFL limited to 0.5).
Further, the Godunov method allows for roughly twice the time step, CFL should
be limited to 0.9 for stability. Finally, it is recommended that the Godunov
method be used in conjunction with StateRedist. While not fully vetted, early
tests also show increased stability in complex geometries for a StateRedist-
Godunov scheme compared to the previous FluxRedist-MOL scheme.

.. [Berger_Giulini_2021] Berger, M., & Giuliani, A. (2021).
   A state redistribution algorithm for finite volume schemes on cut cell meshes. Journal of Computational Physics, 428, 109820.

.. [Giulini_etal_2022] Giuliani, A., Almgren, A. S., Bell, J. B., Berger, M. J., de Frahan, M. H., & Rangarajan, D. (2022).
   A weighted state redistribution algorithm for embedded boundary grids. Journal of Computational Physics, 464, 111305.

Additional constraitns
----------------------
.. [Chern_Colella_1987] Chern, I.-L., and Colella, P. (1987).
   A conservative front tracking method for hyperbolic conservation laws,” LLNL Rep. No. UCRL-97200, Lawrence Livermore National Laboratory.

Additional constraints may be imposed on problems which are under-determined by IBCs,
typically occurring in periodic domains. Currently, only particle constraints are supported.
The prefix `particles.` should be applied to all input keywords listed below.
.. [Colella_etal_2006] Colella, P., Graves, D. T., Keen, B. J., & Modiano, D. (2006).
   A Cartesian grid embedded boundary method for hyperbolic conservation laws, J. Comput. Phys., vol. 211, no. 1, pp. 347–366.

+---------------------+-----------------------------------------------------------------------+-------------+-----------+

Additional available constraints
--------------------------------

Additional constraints may be imposed on problems which are under-determined such as particle settling
in a fully periodic domain. Currently, only particle constraints are supported.

The following inputs are defined using the ``particles`` prefix.

+---------------------+---------------------------------------------------------------------------+-------------+-----------+
|                     | Description                                                               |   Type      | Default   |
+=====================+=======================================================================+=============+===========+
+=====================+===========================================================================+=============+===========+
| constraint          | Constraint type. Available options include:                               | String      | None      |
|                     |                                                                           |             |           |
|                     | * 'mean_velocity'                                                         |             |           |
|                     |                                                                           |             |           |
+---------------------+-----------------------------------------------------------------------+-------------+-----------+
+---------------------+---------------------------------------------------------------------------+-------------+-----------+

For the `mean_velocity` constraint, the following inputs can be defined.

@@ -102,296 +130,231 @@ Below is an example for zero mean particle velocity in all three directions.
   particles.constraint.mean_velocity_y = 0.
   particles.constraint.mean_velocity_z = 0.

In the above example, at the end of each (fluid) time step, the global mean particle velocity is computed
in each direction, then subtracted from each particle's velocity vector so that the mean particle velocity
for the system is zero.


Deposition scheme
-----------------

The following inputs must be preceded by "mfix."
The following inputs are defined using the ``mfix`` prefix.

+----------------------------+---------------------------------------------------+--------+-------------+
+----------------------------+--------------------------------------------------------------------+-----------+---------------+
|                            | Description                                                        |   Type    | Default       |
+============================+===================================================+========+=============+
| deposition_scheme          | The algorithm that will be used to deposit        | String | 'trilinear' |
|                            | particles quantities to the Eulerian grid.        |        |             |
|                            | Available methods are:                            |        |             |
+============================+====================================================================+===========+===============+
| deposition_scheme          | The algorithm used to transfer particle properties to the Eulerian |  String   | trilinear     |
|                            | grid. An overview of the schemes is provided                       |           |               |
|                            | :ref:`below<deposition_description>`.                              |           |               |
|                            |                                                                    |           |               |
|                            | * 'centroid'                                      |        |             |
|                            | * 'trilinear'                                     |        |             |
|                            | * 'true-dpvm' divided particle volume method      |        |             |
|                            | * 'trilinear-dpvm-square' dpvm with square filter |        |             |
+----------------------------+---------------------------------------------------+--------+-------------+
| deposition_scale_factor    | The deposition scale factor. Only applies to      | Real   | 1.0         |
|                            | 'true-dpvm' and 'trilinear-dpvm-square' methods.  |        |             |
|                            | Its value must be in the interval [0, dx/2],      |        |             |
|                            | where dx is the cell edge size.                   |        |             |
+----------------------------+---------------------------------------------------+--------+-------------+
|                            | * ``centroid``                                                     |           |               |
|                            | * ``trilinear``                                                    |           |               |
|                            | * ``true-dpvm``                                                    |           |               |
|                            | * ``trilinear-dpvm-square``                                        |           |               |
+----------------------------+--------------------------------------------------------------------+-----------+---------------+
| deposition_scale_factor    | The deposition scale factor.                                       |  Real     |   1.0         |
|                            |                                                                    |           |               |
|                            | Applicable only with `true-dpvm` and `trilinear-dpvm-square`       |           |               |
|                            | deposition schemes. The value must be in the intervarl             |           |               |
|                            | :math:`[0,\Delta x/2]` where :math:`\Delta x` is the mesh spacing. |           |               |
+----------------------------+--------------------------------------------------------------------+-----------+---------------+
| deposition_diffusion_coeff | If a positive value is set, a diffusion equation                   |  Real     |   -1.0        |
|                            | with this diffusion coefficient is solved to                       |           |               |
|                            | smooth deposited quantities.                                       |           |               |
+----------------------------+---------------------------------------------------+--------+-------------+
+----------------------------+--------------------------------------------------------------------+-----------+---------------+

In the following subsections, the four possible deposition methods are briefly
described and illustrated.

.. _deposition_description:

In the following subsections, the four deposition methods are briefly
described and illustrated.

Centroid
~~~~~~~~
In the centroid deposition scheme, particles' quantities are deposited only to
the Eulerian grid cell to which the particle's center belongs.

.. raw:: latex

   \begin{center}
The centroid deposition scheme transfers particle properties, for example
volume, to the Eulerian grid cell containing its center. Illustrated in
two-dimensions below, the particle center is in the upper-right cell; therefore,
the deposition weight for that cell is 1 and all other weights are zero.

   .. _fig:basics:amrgrids:
.. _fig_centroid_deposition:

.. figure:: ./images/centroid.jpg
   :height: 2in
   :align: center
   :alt: visual demonstration of centroid deposition

   Example of centroid deposition.

.. raw:: latex

   \end{center}


Trilinear
~~~~~~~~~
In the trilinear deposition scheme, particles' quantities are deposited linearly
to the eight Eulerian grid cells that surround its center.

.. raw:: latex

   \begin{center}
Trilinear deposition transfers particle properties to the eight Eulerian grid
cells surrounding its center. First, low and high weights are calculated for each
direction, then they are multiplied together to form eight composite weights.
The following figure illustrates bilinear interpolation. The left image
shows weights computed in the *X*-direction, :math:`[0.15, 0.85]`, and the center
image shows weights computed in the *Y*-direction, :math:`[0.25,0.75]`. The right
image shows the composite weights for the four cells that comprise the 2D
neighborhood surrounding the particle.

   .. _fig:basics:amrgrids:
.. _fig_trilinear_deposition:

.. figure:: ./images/trilinear.jpg
   :height: 2in
   :align: center
   :alt: visual demonstration of trilinear deposition

   Example of trilinear deposition.

.. raw:: latex

   \end{center}


Divided Particle Volume Method (DPVM)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In the DPVM method, particles' quantities are deposited to the Eulerian grid
cells that they intersect, and the deposition weights are equal to the
percentage of the particle' volume that intersects the given cell.

.. raw:: latex

   \begin{center}
True-DPVM
~~~~~~~~~

   .. _fig:basics:amrgrids:
The "*true*" divided particle volume method (DPVM) calculates the actual volume
of a particle in each cell by computing the intersection between the grid cell
faces and the particle. The fractional volume (volume inside the cell
divided by total particle volume) is used as the deposition weight. If the
``deposition_scale_factor`` is defined, it multiplies the particle radius
increasing the effective area to transfer properties over.  The true-DPVM scheme is
illustrated below where the dashed line represents the scaled particle radius.
The *grown* particle intersects the top two and lower-right cells. Since the *grown*
particle does not intersect the lower-left cell, it has a deposition weight of zero.

.. figure:: ./images/dpvm.jpg
   :height: 2in
   :align: center
   :alt: visual demonstration of true divided particle volume deposition

   Example of dpvm deposition.

.. raw:: latex

   \end{center}
   Example of true-dpvm deposition.


Square DPVM
~~~~~~~~~~~
In the square DPVM method, particles' quantities are deposited to the Eulerian
grid similarly to the DPVM method, but with a filter applied to the deposition
scheme.

.. raw:: latex
Trilinear DPVM square
~~~~~~~~~~~~~~~~~~~~~

   \begin{center}
The trilinear DPVM square method is similar to the trilinear scheme in that
low and high weights are computed for each direction, then multiplied together
to give a composite weight for each of the eight cells in the neighborhood.
The primary distinction is that the fractional volume cut by the grid cell
face for each direction is used to calculate the low and high weights. If the
``deposition_scale_factor`` is defined, it multiplies the particle radius
increasing the effective area to transfer properties over. In the below figure,
the left image shows the *X*-direction weights, and the center image shows
the *Y*-direction weights. The right image shows the resulting composite weights.

   .. _fig:basics:amrgrids:

.. figure:: ./images/square_dpvm.jpg
   :height: 2in
   :align: center
   :alt: visual demonstration of true divided particle volume deposition

   Example of square dpvm deposition.
   Example of trilinear dpvm square deposition.

.. raw:: latex

   \end{center}

Deposition redistribution
-------------------------



The following inputs must be preceded by "mfix."
The following inputs are defined using the ``mfix`` prefix.

+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+
| Key                             | Description                                                           |   Type      | Default      |
+=================================+=======================================================================+=============+==============+
| deposition_redist_type          | Redistribute excess solids using max packing ("MaxPack") or state     |             |              |
|                                 | ("StateRedist") algorithms.                                           |   String    |  MaxPack     |
| deposition_redist_type          | Algorithm used to redistribute excess solids to adjacent cells. This  |   String    |  MaxPack     |
|                                 | typically applies only to small cut-cells along the geometry.         |             |              |
|                                 |                                                                       |             |              |
|                                 | * ``MaxPack`` If the solids volume fraction exceeds the prescribed    |             |              |
|                                 |   ``max_solids_volume_fraction``, then the local average solids       |             |              |
|                                 |   volume is computed and solids volume exceeding the average is       |             |              |
|                                 |   reallocated to adjacent cells. The fraction of redistributed solids |             |              |
|                                 |   is applied to all transferred properties.                           |             |              |
|                                 |                                                                       |             |              |
|                                 | * ``StateRedist`` Use the state redistribution algorithm of           |             |              |
|                                 |   [Berger_Giulini_2021]_ and [Giulini_etal_2022]_ to reallocate       |             |              |
|                                 |   transferred quantities in small cells.                              |             |              |
|                                 |                                                                       |             |              |
+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+
| deposition_redist_vfrac         | The threshold cell volume fraction when using "StateRedist"           |             |              |
|                                 | for deposition redistribution.                                        |   Real      |  0.1         |
| max_solids_volume_fraction      | Threshold solids volume fraction for `MaxPack` redistribution.        |  Real       |  0.6         |
|                                 | Redistribution of transferred quantities **only** occurs when the     |             |              |
|                                 | solids volume fraction of a cell exceeds this value.                  |             |              |
+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+
| deposition_redist_vfrac         | Threshold geometric volume fraction ``StateRedist`` redistribution.   |  Real       |  0.1         |
|                                 | Redistribution of transferred quantities **always** occurs for cells  |             |              |
|                                 | with a geometric volume fraction below this value.                    |             |              |
+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+




Drag models
-----------

The following inputs must be preceded by "mfix."
The following input is defined using the ``mfix`` prefix.

+-------------------+-----------------------------------------------------------------------+-------------+-----------+
|                   | Description                                                           |   Type      | Default   |
+===================+=======================================================================+=============+===========+
| drag_type         | Which drag model to use                                               | String      | None      |
| drag_type         | Fluid-particle drag model.                                            | String      | None      |
|                   |                                                                       |             |           |
|                   | * ``WenYu`` [Wen_Yu_1966]_                                            |             |           |
|                   | * ``Gidaspow`` [Ding_Gidaspow_1990]_, [Lathouwers_Bellan_2000]_       |             |           |
|                   | * ``BVK2`` [BVK_2007]_, [Tenneti_et_2011]_, [Tang_etal_2015]_         |             |           |
|                   | * ``UserDrag``                                                        |             |           |
|                   |                                                                       |             |           |
+-------------------+-----------------------------------------------------------------------+-------------+-----------+

The options currently supported in mfix are :cpp:`WenYu`, :cpp:`Gidaspow`, :cpp:`BVK2`, or :cpp:`UserDrag`.

If one of these is not specified, the code will abort with
.. note::

.. highlight:: c++
  The ``UserDrag`` keyword is used to invoke a user defined drag model. This is accomplished
  by copying ``src/usr/usr_drag.cpp`` file into the build directory, implementing the desired
  drag model, and recompiling the code.  An example can be found in ``tests/DEM06-x``.

::

   amrex::Abort::0::"Don't know this drag type!!!
.. [Wen_Yu_1966] Wen, C.Y. & Yu, Y.H. (1966).
   Mechanics of Fluidization. The Chemical Engineering Progress Symposium Series, 162, 100-111.

The drag models are defined in src/src_des/des_drag_K.H
.. [Ding_Gidaspow_1990] Ding, J., & Gidaspow, D. (1990).
   A bubbling fluidization model using kinetic theory of granular flow. AIChE journal, 36(4), 523-538.

If the user wishes to use their own drag model, they must
.. [Lathouwers_Bellan_2000] Lathouwers D. & Bellan J.(2000).
   Proceedings of the 2000 U.S. DOE Hydrogen Program Review NREL/CP-570-28890.
   Available from http://www.eere.energy.gov/hydrogenandfuelcells/pdfs/28890k.pdf.

  * specify :cpp:`mfix.drag_type = UserDrag` in the inputs file
.. [BVK_2007] Beetstra, R., van der Hoef, M. A., & Kuipers, J. A. M. (2007).
   Numerical study of segregation using a new drag force correlation for polydisperse systems derived
   from lattice-Boltzmann simulations. Chemical Engineering Science, 62(1-2), 246-255.

  * provide the code in the ComputeDragUser routine in a local usr_drag.cpp file.
    An example can be found in tests/DEM06-x.
.. [Tenneti_et_2011] Tenneti, S., Garg, R., & Subramaniam, S. (2011).
   Drag law for monodisperse gas–solid systems using particle-resolved direct numerical simulation of
   flow past fixed assemblies of spheres. International journal of multiphase flow, 37(9), 1072-1092.

With the variables defined as follows:

   .. code:: shell

      EPg     - gas volume fraction
      Mug     - gas laminar viscosity
      ROpg    - gas density * EP_g
      vrel    - magnitude of gas-solids relative velocity
      DPM     - particle diameter of solids phase M
      DPA     - average particle diameter
      PHIS    - solids volume fraction of solids phases
      fvelx   - x component of the fluid velocity at the particle position
      fvely   - y component of the fluid velocity at the particle position
      fvelz   - z component of the fluid velocity at the particle position
      i, j, k - particle cell indices
      pid     - particle id number


The :cpp:`WenYu` model is defined as

   .. code:: shell

      RE = (Mug > 0.0) ? DPM*vrel*ROPg/Mug : DEMParams::large_number;

     if (RE <= 1000.0)
     {
         C_d = (24.0/(RE+DEMParams::small_number)) * (1.0 + 0.15*std::pow(RE, 0.687));
     }
     else
     {
         C_d = 0.44;
     }

     if (RE < DEMParams::eps) return 0.0;
     return 0.75 * C_d * vrel * ROPg * std::pow(EPg, -2.65) / DPM;

The :cpp:`Gidaspow` model is defined as

   .. code:: shell

      ROg = ROPg / EPg;

      RE = (Mug > 0.0) ? DPM*vrel*ROPg/Mug : DEMParams::large_number;

      // Dense phase - EPg <= 0.8
      Ergun = 150.0*(1.0 - EPg)*Mug / (EPg*DPM*DPM) + 1.75*ROg*vrel/DPM;

      // Dilute phase - EPg > 0.8
      if (RE <= 1000.0)
      {
          C_d = (24.0/(RE+DEMParams::small_number)) * (1.0 + 0.15*std::pow(RE, 0.687));
      }
      else
      {
          C_d = 0.44;
      }

      WenYu = 0.75*C_d*vrel*ROPg*std::pow(EPg, -2.65) / DPM;

      // switch function
      PHI_gs = atan(150.0*1.75*(EPg - 0.8))/M_PI / DPM;

      // blend the models
      if (RE < DEMParams::eps) return 0.0;
      return (1.0 - PHI_gs)*Ergun + PHI_gs*WenYu;

The :cpp:`BVK2` model is defined as

   .. code:: shell

      amrex::Real RE = (Mug > 0.0) ? DPA*vrel*ROPg/Mug : DEMParams::large_number;

      if (RE > DEMParams::eps)
      {
          oEPgfour = 1.0 / EPg / EPg / EPg / EPg;

          // eq(9) BVK J. fluid. Mech. 528, 2005
          // (this F_Stokes is /= of Koch_Hill by a factor of ep_g)
          F_Stokes = 18.0*Mug*EPg/DPM/DPM;

          F = 10.0*PHIS/EPg/EPg + EPg*EPg*(1.0 + 1.5*sqrt(PHIS));

          F += RE*(0.11*PHIS*(1.0+PHIS) - 4.56e-3*oEPgfour +
               std::pow(RE, -0.343)*(0.169*EPg + 6.44e-2*oEPgfour));

          // F += 0.413*RE/(24.0*EPg*EPg) *
          //     (1.0/EPg + 3.0*EPg*PHIS + 8.4/std::pow(RE, 0.343)) /
          //     (1.0 + std::pow(10.0, 3.0*PHIS)/std::pow(RE, 0.5 + 2.0*PHIS));

          return F*F_Stokes;
      }
      else
      {
          return 0.0;
      }
.. [Tang_etal_2015] Tang, Y., Peters, E. A. J. F., Kuipers, J. A. M., Kriebitzsch, S. H. L., & van der Hoef, M. A. (2015).
   A new drag correlation from fully resolved simulations of flow past monodisperse static arrays of spheres.
   AIChE journal, 61(2), 688-698.



Heat transfer coefficients
--------------------------

The following input is defined using the ``mfix`` prefix.

The following inputs must be preceded by "mfix."

+-------------------+---------------------------------+-------------+--------------+
+-------------------+-----------------------------------------------------------------------+-------------+-----------+
|                   | Description                                                           |   Type      | Default   |
+===================+=================================+=============+==============+
| convection_type   | Which HTC model to use          | String      | RanzMarshall |
+-------------------+---------------------------------+-------------+--------------+

The options currently supported in mfix are :cpp:`RanzMarshall` (default) and :cpp:`Gunn`.
In both models the HTC is determined from a Nusslet number correlation.

The RanzMarshall Nusselt number correlation is defined as:

   .. code:: shell

      amrex::Real N_Nu = 2.0 + 0.6 * std::sqrt(N_Re) * std::pow(N_Pr, 0.333);


The Gunn Nusselt number correlation is defined as:

   .. code:: shell

      amrex::Real N_Nu =
          (7 - 10*EPg + 5*EPg*EPg)*(1 + .7*std::pow(N_Re, 0.2)*std::cbrt(N_Pr))
          + (1.33 - 2.4*EPg + 1.2*EPg*EPg)*std::pow(N_Re, 0.7)*std::cbrt(N_Pr);
+===================+=======================================================================+=============+===========+
| convection_type   | Fluid-particle heat transfer coefficient model.                       | String      | None      |
|                   |                                                                       |             |           |
|                   | * ``RanzMarshall`` [RanzMarshall_1952]_                               |             |           |
|                   | * ``Gunn`` [Gunn_1978]_                                               |             |           |
|                   |                                                                       |             |           |
+-------------------+-----------------------------------------------------------------------+-------------+-----------+

.. [RanzMarshall_1952] Ranz, W.E. & Marshall, W.R. (1952).
   Friction and transfer coefficients for single particles and packed beds.
   Chemical Engineering Science, 48(5), 247-253.

.. [Gunn_1978] Gunn, D. J. (1978).
   Transfer of heat or mass to particles in fixed and fluidised beds.
   International Journal of Heat and Mass Transfer, 21(4), 467-476.
Loading