diff --git a/docs/source_docs/user_guide/inputs/advanced.rst b/docs/source_docs/user_guide/inputs/advanced.rst index 3a55d2eb3ed0d497dbf925a9c08271bdbb583cd8..39aeedfa68a29b875fe8680b983e838c331b9e6a 100644 --- a/docs/source_docs/user_guide/inputs/advanced.rst +++ b/docs/source_docs/user_guide/inputs/advanced.rst @@ -18,6 +18,9 @@ The following inputs must be preceded by the prefix ``mfix``: | only_print_grid_report | Do not time-march the simulation. Simply generate the grid report | Bool | false | | | and exit. | | | +------------------------+-----------------------------------------------------------------------+-------------+--------------+ +| stop_for_unused_inputs | Do not time-march the simulation if any keyword in the inputs file | Bool | false | +| | has not been used. This is useful in catching input errors. | | | ++------------------------+-----------------------------------------------------------------------+-------------+--------------+ To assist in verifying the breakdown of fluid grids created before running a full simulation, an input option ``mfix.only_print_grid_report`` is supported. By default, it is ``false``. When set to ``true``, the run uses @@ -93,9 +96,6 @@ The following inputs must be preceded by the prefix ``mfix`` and control load ba +----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+ | knapsack_nmax | Maximum number of grids per MPI process if using knapsack algorithm | Int | 128 | +----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+ -| grid_pruning | Remove all covered grids from the base mesh; this may result in | Bool | false | -| | disjoined grids | | | -+----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+ The following inputs are defined using the prefix ``particles``: diff --git a/docs/source_docs/user_guide/inputs/domain.rst b/docs/source_docs/user_guide/inputs/domain.rst index 6d3f001255352d1a7f5a0c826adfacaf694bc3cd..f5fc9af6b411ae8f714b80bb7ce9e570f4768a3e 100644 --- a/docs/source_docs/user_guide/inputs/domain.rst +++ b/docs/source_docs/user_guide/inputs/domain.rst @@ -29,3 +29,64 @@ The following inputs are defined using the prefix ``geometry``: * There is **no support** for 1D or 2D simulation domains. * Cartesian is the **only supported** coordinate system. + + +Mesh +---- + +The following inputs are defined using the prefix ``amr``: + +.. _InputsTable_mesh: + ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| | Description | Type | Default | +| | | | | ++======================+=======================================================================+=============+===========+ +| n_cell | Number of cells at level 0 in each coordinate direction. | Ints<3> | 0 0 0 | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ + +The base mesh spacing is computed for each direction by dividing the :ref:`domain length` by the +number of cells. The mesh spacing is required to be the same in all directions: + +.. math:: + + \frac{\text{prob_hi[0] - prob_lo[0]}}{\text{n_cell[0]}} + = \frac{\text{prob_hi[1] - prob_lo[1]}}{\text{n_cell[1]}} + = \frac{\text{prob_hi[2] - prob_lo[2]}}{\text{n_cell[2]}} + + +The inputs for defining the mesh for a single-level simulation are demonstrated in the +:ref:`following example` and illustrated in :numref:`fig_basic_mesh_ex`. +In this example, the domain is a :math:`4 \times 1 \times 1` cuboid, and there are +:math:`32 \times 8 \times 8` cells in the *X*, *Y*, and *Z* directions, respectively. +The result is a uniform mesh spacing of :math:`0.125` *m* in all three directions. + +.. _inputs_mesh_ex: + +.. code-block:: bash + :caption: Snippet of intpus for mesh example. This is not a complete input file. + + # Define periodicity and domain extents + # ------------------------------------------------------------- + geometry.coord_sys = 0 # Cartesian coordinates + geometry.is_periodic = 0 0 0 # periodicity for each direction + geometry.prob_lo = 0. 0. 0 # lo corner of physical domain. + geometry.prob_hi = 4. 1. 1. # hi corner of physical domain + + # Define the maximum level of refinement and number of cells + # ------------------------------------------------------------- + amr.n_cell = 32 8 8 + + +.. _fig_basic_mesh_ex: + +.. figure:: ./images/geometry/mesh_lev0_ex.png + :width: 100% + :align: center + :alt: domain used with box embedded boundary + + Example of a single-level mesh. + +.. warning:: + + MFIX-Exa simulations with a non-uniform mesh will not run. diff --git a/docs/source_docs/user_guide/inputs/fluid_model.rst b/docs/source_docs/user_guide/inputs/fluid_model.rst index 60a20d6818f07567a17041f903e564417cb37661..d1a601abcebf4c24e7b0744c7beba28121721030 100644 --- a/docs/source_docs/user_guide/inputs/fluid_model.rst +++ b/docs/source_docs/user_guide/inputs/fluid_model.rst @@ -3,22 +3,34 @@ Fluid model =========== + The following inputs are defined using the prefix ``fluid``: +--------------------------------------------+-------------------------------------------------------------+--------+----------+ | | Description | Type | Default | +============================================+=============================================================+========+==========+ -| solve | Specify the name of the fluid or set to empty string or | String | None | +| solve | Specify the name of the fluid or set to empty string or | String | | | | ``None`` to disable the fluid solver. The name assigned to | | | | | the fluid solver is used to specify fluid properties and | | | | | initial and boundary conditions. It is common to use the | | | | | name ``fluid``. | | | +--------------------------------------------+-------------------------------------------------------------+--------+----------+ +| species | Specify the species that constitute the fluid. | Strings| None | +| | | | | +| | All listed species must be properly defined. See the | | | +| | :ref:`species definition documentation` | | | +| | for additional details. | | | ++--------------------------------------------+-------------------------------------------------------------+--------+----------+ + +The root prefix ``[fluid_name]`` for the following inputs is the name defined using the ``fluid.solve`` keyword. For example, if +the fluid solver is named ``myfluid``, then the following keywords are preceded with ``myfluid`` and a period. Currently, MFIX-Exa +only supports a single fluid; therefore, it is common to name the fluid ``fluid``. This is illustrated later in example input +snippets. -The root prefix for the following inputs is the name defined using the ``fluid.solve`` keyword. For example, if the fluid solver -is named ``myfluid``, then the following keywords are preceded with ``myfluid`` and a period. Currently, MFIX-Exa only supports -a single fluid; therefore, it is common to name the fluid ``fluid``. This is illustrated later in example input snippets. +Viscosity +--------- + .. |Sutherland_Eq| replace:: :math:`\mu(T) = \mu_{ref}\left(\frac{T}{T_{ref}}\right)^{3/2}\times\frac{(T_{ref} + S)}{(T+S)}` @@ -29,222 +41,320 @@ a single fluid; therefore, it is common to name the fluid ``fluid``. This is ill .. |eff_visc| replace:: :math:`\mu_{eff} = \mu_{mol} + \mu_{eddy} + \mu_{susp} + \mu_{pit}` .. |mix_Eq| replace:: :math:`\mu_{mix} = \sum_{\alpha=1}^{N} \frac{X_{\alpha} \mu_{\alpha}}{\sum_{\beta} X_{\beta} \phi_{\alpha \beta}}` -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| | Description | Type | Default | -+============================================+================================================================+========+==========+ -| viscosity.molecular | Specify which molecular viscosity model to use. | String | None | -| | | | | -| | Options: | | | -| | | | | -| | * ``None`` - no viscosity model. | | | -| | * ``constant`` - constant viscosity | | | -| | * ``Sutherland`` :cite:p:`suth1893` - | | | -| | | | | -| | |Sutherland_Eq| | | | -| | | | | -| | * ``Reid`` :cite:p:`reid87` - | | | -| | | | | -| | |Reid_4parm_Eq| | | | -| | | | | -| | * ``mixture`` - a mixture viscosity is computed from | | | -| | :ref:`species viscosities` | | | -| | and local species mass fractions :cite:p:`bird06` | | | -| | | | | -| | |mix_Eq| | | | -| | | | | -| | A viscosity model is required if the fluid solver is | | | -| | enabled. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.molecular.constant | Constant fluid viscosity. | Real | 0 | -| | | | | -| | A value is required for ``constant`` viscosity model. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.molecular.Sutherland.T_ref | Sutherland model reference temperature. | Real | 0 | -| | | | | -| | A value is required for ``Sutherland`` viscosity model. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.molecular.Sutherland.mu_ref | Sutherland model reference viscosity at T_ref. | Real | 0 | -| | | | | -| | A value is required for ``Sutherland`` viscosity model. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.molecular.Sutherland.S | Sutherland model temperature. | Real | 0 | -| | | | | -| | A value is required for ``Sutherland`` viscosity model. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.molecular.Reid.A | Reid model constants. | Real | 0 | -| viscosity.molecular.Reid.B | | | | -| viscosity.molecular.Reid.C | Values are required for ``Reid`` viscosity model. | | | -| viscosity.molecular.Reid.D | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.eddy | Specify eddy viscosity model. | | | -| | | | | -| | Options: | | | -| | |String | None | -| | * ``None`` - No eddy viscosity model | | | -| | * ``Smagorinsky-Lilly`` :cite:p:`Smag63,Lilly66` | | | -| | * ``WALE`` :cite:p:`ducros98` | | | -| | * ``usr`` | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.eddy.Smagorinsky-Lilly.constant | Smagorinsky-Lilly constant which usually has values | Real | None | -| | between 0.1 and 0.2. | | | -| | | | | -| | A value is required when using the ``Smagorinsky-Lilly`` | | | -| | eddy viscosity model. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.eddy.WALE.constant | WALE eddy viscosity model constant. | Real | 0.325 | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.suspension | Specify suspension viscosity model of the form | String | None | -| | | | | -| | :math:`\mu_{susp} = \mu_{mol}(\mu^* - 1)` | | | -| | | | | -| | Options: | | | -| | | | | -| | * ``None`` - No eddy suspension model | | | -| | | | | -| | :math:`\mu^* = 1` | | | -| | | | | -| | * ``Einstein`` :cite:p:`einstein11` | | | -| | | | | -| | :math:`\mu^* = 1 + 2.5\varepsilon_s` | | | -| | | | | -| | * ``Brinkman`` :cite:p:`brinkman52,gibilaro07` | | | -| | | | | -| | :math:`\mu^* = (1-\varepsilon_s)^{-c}` | | | -| | | | | -| | * ``Roscoe`` :cite:p:`roscoe52,krieger59,maron56` | | | -| | | | | -| | :math:`\mu^* = (1-\varepsilon_s/c_1)^{-c_2}` | | | -| | | | | -| | * ``ChengLaw`` :cite:p:`cheng03` | | | -| | | | | -| | :math:`\mu^* = e^{2.5(1/(1-\varepsilon_s)^c-1)/c}` | | | -| | | | | -| | * ``Sato`` :cite:p:`sato81` | | | -| | | | | -| | |Sato_Eq| | | | -| | | | | -| | * ``Subramaniam`` :cite:p:`mehrabadi15` | | | -| | | | | -| | :math:`\mu_{pit} = C_\mu k_f^2 / \epsilon_f` | | | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.suspension.Brinkman.constant | Constant for exponent in Brinkman suspension expression. | Real | None | -| | | | | -| | A value is required when using the ``Brinkman`` model. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.suspension.Roscoe.c1 | Constant for max packing in Roscoe suspension expression. | Real | None | -| | | | | -| | A value is required when using the ``Roscoe`` model. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.suspension.Roscoe.c2 | Constant for exponent in Roscoe suspension expression. | Real | None | -| | | | | -| | A value is required when using the ``Roscoe`` model. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.suspension.ChengLaw.constant | Constant for exponent in ChengLaw suspension expression. | Real | None | -| | | | | -| | A value is required when using the ``ChengLaw`` model. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.suspension.Sato.constant | Constant for Sato suspension expression. | Real | 0.65 | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.suspension.Subramaniam.constant | Constant for Subramaniam suspension expression. | Real | 0.09 | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| viscosity.max_effective_factor | Max limit of the effective viscosity as a factor of the | Real | 1.e6 | -| | molecular viscosity | | | -| | | | | -| | :math:`\mu_{eff} < fac*\mu_{mol}`, where | | | -| | |eff_visc| | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| species | Specify the species that constitute the fluid. | Strings| None | -| | | | | -| | All listed species must be properly defined. See the | | | -| | :ref:`species definition documentation` | | | -| | for additional details. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| molecular_weight | Constant fluid molecular weight. | Real | 0 | -| | | | | -| | A molecular weight should only be defined when using one | | | -| | of the ``IdealGas`` constraints and the species equations | | | -| | are not solved. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| specific_heat | Specify which specific heat model to use for the fluid. | String | None | -| | | | | -| | A specific heat model is required if advecting enthalpy. | | | -| | Furthermore, the model must be ``mixture`` if species | | | -| | equations are solved. | | | -| | | | | -| | Options: | | | -| | | | | -| | * ``constant`` - the fluid has a constant specific heat | | | -| | | | | -| | * ``NASA7-poly`` the fluid specific heat is defined by | | | -| | NASA-7 polynomials. | | | -| | | | | -| | NASA7 polynomial format: | | | -| | | | | -| | :math:`c_p(T)/R = \sum_{i=0}^4 a_{i}T^{i}` | | | -| | | | | -| | Additional information on NASA-7 polynomials is provided | | | -| | in :ref:`species specific heats`. | | | -| | | | | -| | * ``mixture`` - a *mixture* specific heat is computed | | | -| | from :ref:`species specific heats` | | | -| | and local species mass fractions. | | | -| | | | | -| | :math:`c_{p,\mathrm{mixture}} = \sum_n X_n c_{p,n}` | | | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| specific_heat.constant | Constant fluid specific heat | Real | 0 | -| | A value is required for ``constant`` specific heat model. | | | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| specific_heat.ignore_discontinuities | Ignore discontinuities in NASA-7 polynomials at transition | Int | 0 | -| | temperatures (``Tsplit``). More information is provided | | | -| | in :ref:`species specific heats`. | | | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| specific_heat.NASA7.a[i] | Specific heat polynomial coefficients. Polynomial | Reals | None | -| | coefficients are required if the fluid specific heat | | | -| | model is ``NASA7-poly``. | | | -| | | | | -| | Additional information on NASA-7 polynomials is provided | | | -| | in :ref:`species specific heats`. | | | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| specific_heat.NASA7.Tsplit | Defines the transition temperature between NASA-7 polynomials. | Reals | 1000 | -| | | | | -| | If there are ``N`` sets of coefficients for ``N`` temperature | | | -| | ranges, then ``N-1`` transition temperatures must be specified.| | | -| | | | | -| | In the standard case of two temperature ranges, a | | | -| | transition temperature of 1000K is assumed if ``Tsplit`` is | | | -| | not provided. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| thermal_conductivity | Specify which thermal conductivity model to use for | String | None | -| | fluid. Options: | | | -| | | | | -| | * ``constant`` - the fluid has a constant thermal | | | -| | conductivity model | | | -| | | | | -| | A thermal conductivity model is required if advecting | | | -| | enthalpy. | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| thermal_conductivity.constant | Constant fluid thermal conductivity. | Real | 0 | -| | A value is required for ``constant`` thermal conductivity | | | -| | model. | | | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| thermodynamic_pressure | Thermodynamic pressure. | Real | 0 | -| | A value is required when using the | | | -| | ``IdealGasClosedSystem`` constraint. If using the | | | -| | ``IdealGasOpenSystem`` constraint, then the value must | | | -| | match all specified outflow pressures. | | | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| reference_temperature | Reference temperature used to compute specific | Real | 298. | -| | enthalpy | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ + +Molecular viscosity +^^^^^^^^^^^^^^^^^^^ + +The following inputs are defined using the prefix ``[fluid_name].viscosity.molecular``: + ++------------------------+----------------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++========================+================================================================+========+==========+ +| model | Specify which molecular viscosity model to use. | String | None | +| | | | | +| | Options: | | | +| | | | | +| | * ``None`` - no viscosity model. | | | +| | * ``constant`` - constant viscosity | | | +| | * ``Sutherland`` :cite:p:`suth1893` - | | | +| | | | | +| | |Sutherland_Eq| | | | +| | | | | +| | * ``Reid`` :cite:p:`reid87` - | | | +| | | | | +| | |Reid_4parm_Eq| | | | +| | | | | +| | * ``mixture`` - a mixture viscosity is computed from | | | +| | :ref:`species viscosities` | | | +| | and local species mass fractions :cite:p:`bird06` | | | +| | | | | +| | |mix_Eq| | | | +| | | | | +| | A viscosity model is required if the fluid solver is | | | +| | enabled. | | | ++------------------------+----------------------------------------------------------------+--------+----------+ +| constant | Constant fluid viscosity. | Real | 0 | +| | | | | +| | A value is required for ``constant`` viscosity model. | | | ++------------------------+----------------------------------------------------------------+--------+----------+ +| Sutherland.T_ref | Sutherland model reference temperature. | Real | 0 | +| | | | | +| | A value is required for ``Sutherland`` viscosity model. | | | ++------------------------+----------------------------------------------------------------+--------+----------+ +| Sutherland.mu_ref | Sutherland model reference viscosity at T_ref. | Real | 0 | +| | | | | +| | A value is required for ``Sutherland`` viscosity model. | | | ++------------------------+----------------------------------------------------------------+--------+----------+ +| Sutherland.S | Sutherland model temperature. | Real | 0 | +| | | | | +| | A value is required for ``Sutherland`` viscosity model. | | | ++------------------------+----------------------------------------------------------------+--------+----------+ +| Reid.A | Reid model constants. | Real | 0 | +| Reid.B | | | | +| Reid.C | Values are required for ``Reid`` viscosity model. | | | +| Reid.D | | | | ++------------------------+----------------------------------------------------------------+--------+----------+ + + +Eddy viscosity +^^^^^^^^^^^^^^ + +The following inputs are defined using the prefix ``[fluid_name].viscosity.eddy``: + + ++-----------------------------+----------------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++=============================+================================================================+========+==========+ +| model | Specify eddy viscosity model. | | | +| | | | | +| | Options: | | | +| | | String | None | +| | * ``None`` - No eddy viscosity model | | | +| | * ``Smagorinsky-Lilly`` :cite:p:`Smag63,Lilly66` | | | +| | * ``WALE`` :cite:p:`ducros98` | | | +| | * ``usr`` | | | ++-----------------------------+----------------------------------------------------------------+--------+----------+ +| Smagorinsky-Lilly.constant | Smagorinsky-Lilly constant which usually has values | Real | None | +| | between 0.1 and 0.2. | | | +| | | | | +| | A value is required when using the ``Smagorinsky-Lilly`` | | | +| | eddy viscosity model. | | | ++-----------------------------+----------------------------------------------------------------+--------+----------+ +| WALE.constant | WALE eddy viscosity model constant. | Real | 0.325 | ++-----------------------------+----------------------------------------------------------------+--------+----------+ + + +Suspension viscosity +^^^^^^^^^^^^^^^^^^^^ + +The following inputs are defined using the prefix ``[fluid_name].viscosity.suspension``: + ++-----------------------+----------------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++=======================+================================================================+========+==========+ +| model | Specify suspension viscosity model of the form | String | None | +| | | | | +| | :math:`\mu_{susp} = \mu_{mol}(\mu^* - 1)` | | | +| | | | | +| | Options: | | | +| | | | | +| | * ``None`` - No eddy suspension model | | | +| | | | | +| | :math:`\mu^* = 1` | | | +| | | | | +| | * ``Einstein`` :cite:p:`einstein11` | | | +| | | | | +| | :math:`\mu^* = 1 + 2.5\varepsilon_s` | | | +| | | | | +| | * ``Brinkman`` :cite:p:`brinkman52,gibilaro07` | | | +| | | | | +| | :math:`\mu^* = (1-\varepsilon_s)^{-c}` | | | +| | | | | +| | * ``Roscoe`` :cite:p:`roscoe52,krieger59,maron56` | | | +| | | | | +| | :math:`\mu^* = (1-\varepsilon_s/c_1)^{-c_2}` | | | +| | | | | +| | * ``ChengLaw`` :cite:p:`cheng03` | | | +| | | | | +| | :math:`\mu^* = e^{2.5(1/(1-\varepsilon_s)^c-1)/c}` | | | +| | | | | +| | * ``Sato`` :cite:p:`sato81` | | | +| | | | | +| | |Sato_Eq| | | | +| | | | | +| | * ``Subramaniam`` :cite:p:`mehrabadi15` | | | +| | | | | +| | :math:`\mu_{pit} = C_\mu k_f^2 / \epsilon_f` | | | +| | | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Brinkman.constant | Constant for exponent in Brinkman suspension expression. | Real | None | +| | | | | +| | A value is required when using the ``Brinkman`` model. | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Roscoe.c1 | Constant for max packing in Roscoe suspension expression. | Real | None | +| | | | | +| | A value is required when using the ``Roscoe`` model. | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Roscoe.c2 | Constant for exponent in Roscoe suspension expression. | Real | None | +| | | | | +| | A value is required when using the ``Roscoe`` model. | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| ChengLaw.constant | Constant for exponent in ChengLaw suspension expression. | Real | None | +| | | | | +| | A value is required when using the ``ChengLaw`` model. | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Sato.constant | Constant for Sato suspension expression. | Real | 0.65 | +| | | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Subramaniam.constant | Constant for Subramaniam suspension expression. | Real | 0.09 | +| | | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ + +Maximum viscosity +^^^^^^^^^^^^^^^^^ + +The following inputs are defined using the prefix ``fluid.viscosity``: + ++-----------------------+----------------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++=======================+================================================================+========+==========+ +| max_effective_factor | Max limit of the effective viscosity as a factor of the | Real | 1.e6 | +| | molecular viscosity | | | +| | | | | +| | :math:`\mu_{eff} < fac*\mu_{mol}`, where | | | +| | |eff_visc| | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ + + +Molecular Weight +---------------- + +The following inputs are defined using the prefix ``[fluid_name]``: + ++-----------------------+----------------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++=======================+================================================================+========+==========+ +| molecular_weight | Constant fluid molecular weight. | Real | 0 | +| | | | | +| | A molecular weight should only be defined when using one | | | +| | of the ``IdealGas`` constraints and the species equations | | | +| | are not solved. | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ + + + +Specific Heat +------------- + +The following inputs are defined using the prefix ``[fluid_name].specific_heat``: + + ++------------------------------+----------------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++==============================+================================================================+========+==========+ +| model | Specify which specific heat model to use for the fluid. | String | None | +| | | | | +| | A specific heat model is required if advecting enthalpy. | | | +| | Furthermore, the model must be ``mixture`` if species | | | +| | equations are solved. | | | +| | | | | +| | Options: | | | +| | | | | +| | * ``constant`` - the fluid has a constant specific heat | | | +| | | | | +| | * ``NASA7-poly`` the fluid specific heat is defined by | | | +| | NASA-7 polynomials. | | | +| | | | | +| | NASA7 polynomial format: | | | +| | | | | +| | :math:`c_p(T)/R = \sum_{i=0}^4 a_{i}T^{i}` | | | +| | | | | +| | Additional information on NASA-7 polynomials is provided | | | +| | in :ref:`species specific heats`. | | | +| | | | | +| | * ``mixture`` - a *mixture* specific heat is computed | | | +| | from :ref:`species specific heats` | | | +| | and local species mass fractions. | | | +| | | | | +| | :math:`c_{p,\mathrm{mixture}} = \sum_n X_n c_{p,n}` | | | +| | | | | ++------------------------------+----------------------------------------------------------------+--------+----------+ +| constant | Constant fluid specific heat | Real | 0 | +| | A value is required for ``constant`` specific heat model. | | | +| | | | | ++------------------------------+----------------------------------------------------------------+--------+----------+ +| NASA7.a[i] | Specific heat polynomial coefficients. Polynomial | Reals | None | +| | coefficients are required if the fluid specific heat | | | +| | model is ``NASA7-poly``. | | | +| | | | | +| | Additional information on NASA-7 polynomials is provided | | | +| | in :ref:`species specific heats`. | | | +| | | | | ++------------------------------+----------------------------------------------------------------+--------+----------+ +| NASA7.Tsplit | Defines the transition temperature between NASA-7 polynomials. | Reals | 1000 | +| | | | | +| | If there are ``N`` sets of coefficients for ``N`` temperature | | | +| | ranges, then ``N-1`` transition temperatures must be specified.| | | +| | | | | +| | In the standard case of two temperature ranges, a | | | +| | transition temperature of 1000K is assumed if ``Tsplit`` is | | | +| | not provided. | | | ++------------------------------+----------------------------------------------------------------+--------+----------+ +| ignore_discontinuities | Ignore discontinuities in NASA-7 polynomials at transition | Int | 0 | +| | temperatures (``Tsplit``). More information is provided | | | +| | in :ref:`species specific heats`. | | | +| | | | | ++------------------------------+----------------------------------------------------------------+--------+----------+ + + +The following inputs are defined using the prefix ``[fluid_name]``. + ++------------------------------+----------------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++==============================+================================================================+========+==========+ +| reference_temperature | Reference temperature used to compute specific | Real | 298. | +| | enthalpy. | | | ++------------------------------+----------------------------------------------------------------+--------+----------+ + + + +Thermal conductivity +-------------------- + +.. |Sutherland_k_Eq| replace:: :math:`\kappa(T) = \kappa_{ref}\left(\frac{T}{T_{ref}}\right)^{3/2}\frac{T_{ref} + S}{T+S}` + +.. |PowerLaw_k_Eq| replace:: :math:`\kappa(T) = \left( \frac{T}{T_{ref}} \right)^n` + +The following inputs are defined using the prefix ``[fluid_name].thermal_conductivity``. + ++-----------------------+----------------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++=======================+================================================================+========+==========+ +| model | Specify which thermal conductivity model to use for | String | None | +| | fluid. Options: | | | +| | | | | +| | * ``constant`` - constant thermal conductivity | | | +| | * ``Sutherland`` :cite:p:`suth1893` - | | | +| | | | | +| | |Sutherland_k_Eq| | | | +| | | | | +| | * ``power_law`` : Power law formulation | | | +| | | | | +| | |PowerLaw_k_Eq| | | | +| | | | | +| | A thermal conductivity model is required if advecting | | | +| | enthalpy. | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| constant | Value of constant fluid thermal conductivity. | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Sutherland.T_ref | Sutherland model reference temperature. | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Sutherland.k_ref | Sutherland model reference conductivity at T_ref. | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Sutherland.S | Sutherland model temperature. | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| power_law.T_ref | Power law model reference temperature. | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| power_law.exponent | Power law model exponent :math:`n` | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ + + +Newton solver +------------- + +The following inputs are defined using the prefix ``fluid`` and control the convergence criteria +of the damped Newton solver used to compute temperature from enthalpy and specific heat. + ++------------------------------------------+----------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++==========================================+==========================================================+========+==========+ +| newton_solver.absolute_tol | Define absolute tolerance for the Newton solver | Real | 1.e-8 | ++------------------------------------------+----------------------------------------------------------+--------+----------+ +| newton_solver.relative_tol | Define relative tolerance for the Newton solver | Real | 1.e-8 | ++------------------------------------------+----------------------------------------------------------+--------+----------+ +| newton_solver.max_iterations | Define max number of iterations for the Newton solver | Int | 500 | ++------------------------------------------+----------------------------------------------------------+--------+----------+ + Example inputs @@ -273,7 +383,7 @@ are not solved. # ----------------------------------------------------------------------- fluid.solve = fluid0 - fluid0.viscosity.molecular = constant + fluid0.viscosity.molecular.model = constant fluid0.viscosity.molecular.constant = 1.8e-5 @@ -327,7 +437,7 @@ pressure when evaluating the equation of state. # ----------------------------------------------------------------------- fluid.solve = fluid0 - fluid0.viscosity.molecular = constant + fluid0.viscosity.molecular.model = constant fluid0.viscosity.molecular.constant = 1.8e-5 fluid0.molecular_weight = 29.0e-3 @@ -385,10 +495,10 @@ thermodynamic pressure for the system. # ----------------------------------------------------------------------- fluid.solve = fluid0 - fluid0.viscosity.molecular = constant + fluid0.viscosity.molecular.model = constant fluid0.viscosity.molecular.constant = 2.0e-5 - fluid0.thermal_conductivity = constant + fluid0.thermal_conductivity.model = constant fluid0.thermal_conductivity.constant = 0.026 fluid0.molecular_weight = 28.96518e-3 @@ -425,18 +535,5 @@ thermodynamic pressure for the system. bc.inlet.fluid0.temperature = 300.0 bc.outlet = po - bc.outlet.fluid0.pressure = 101325. - -The following inputs are defined using the prefix ``fluid`` and control the convergence criteria -of the damped Newton solver used to compute temperature from enthalpy and specific heat. - -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| | Description | Type | Default | -+==========================================+==========================================================+========+==========+ -| newton_solver.absolute_tol | Define absolute tolerance for the Newton solver | Real | 1.e-8 | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| newton_solver.relative_tol | Define relative tolerance for the Newton solver | Real | 1.e-8 | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| newton_solver.max_iterations | Define max number of iterations for the Newton solver | Int | 500 | -+------------------------------------------+----------------------------------------------------------+--------+----------+ + bc.outlet.fluid0.pressure = 101325. diff --git a/docs/source_docs/user_guide/inputs/geometry.rst b/docs/source_docs/user_guide/inputs/geometry.rst index 55818fc7b9fcd435d1c39d71815aa99d7b35508c..b1f024220af133e389564b270dfb111a4a01e3c0 100644 --- a/docs/source_docs/user_guide/inputs/geometry.rst +++ b/docs/source_docs/user_guide/inputs/geometry.rst @@ -19,9 +19,6 @@ The following inputs are defined using the prefix ``mfix``: | | * ``None`` - no embedded boundary -- all domain faces must be specified | | | | | | | | +------------------------+-------------------------------------------------------------------------------+----------+---------------------+ -| levelset_refinement | Refinement factor of levelset resolution relative to level 0 | Int | 1 | -| | resolution | | | -+------------------------+-------------------------------------------------------------------------------+----------+---------------------+ Most simulations require a user to specify some kind of geometry. For example, the geometry could be a basic cylinder used to model flow inside a pipe, or it may be an irregularly shaped solid to study external flow around a bluff body, or the geometry @@ -289,7 +286,7 @@ The ``generic`` geometry option is used to select the user-programed embedded bo .. _InputsGeometry_CSG: -Constructive solid geometry (CSG) +CSG (Constructive solid geometry) --------------------------------- * A constructive solid geometry can be created using OpenSCAD. @@ -317,8 +314,8 @@ The following inputs are defined using the prefix ``csg``: .. _InputsGeometry_STL: -STL (Standard Triangle Language) --------------------------------- +STL (Stereolithography file) +---------------------------- * An STL geometry can be created using numerous CAD programs. @@ -339,3 +336,36 @@ The following inputs are defined using the prefix ``stl``: .. note:: A full description of this feature is beyond the scope of this section. A future update to the documentation may include a tutorial to better demonstrate this feature. + + +Checkpoint geometry +------------------- + +Read EB geometry data from a checkpoint file. + +The following inputs are defined using the prefix ``mfix``. + ++----------------------+-----------------------------------------------------------------------+-------------+--------------+ +| | Description | Type | Default | ++======================+=======================================================================+=============+==============+ +| geom_chk_read | Flag to read the EB geometry data from the ``geom_chk_file`` | Bool | false | +| | :ref:`checkpoint file`. If levelset refinement | | | +| | is enabled, levelset data is read from ``geom_levelset_chk_file``. | | | ++----------------------+-----------------------------------------------------------------------+-------------+--------------+ + +Levelset refinement +------------------- + +For particle-wall interactions, the geometry is represented using a levelset function, and the grid storing this +levelset can be refined to capture geometric details more accurately. This refinement affects only particle-wall +interactions and does not alter the geometry representation used for solving the fluid equations. + +The following inputs are defined using the prefix ``mfix``: + ++------------------------+-------------------------------------------------------------------------------+----------+---------------------+ +| | Description | Type | Default | ++========================+===============================================================================+==========+=====================+ +| levelset_refinement | Refinement factor of levelset resolution relative to level 0 | Int | 1 | +| | resolution | | | ++------------------------+-------------------------------------------------------------------------------+----------+---------------------+ + diff --git a/docs/source_docs/user_guide/inputs/mesh_and_gridding.rst b/docs/source_docs/user_guide/inputs/gridding.rst similarity index 84% rename from docs/source_docs/user_guide/inputs/mesh_and_gridding.rst rename to docs/source_docs/user_guide/inputs/gridding.rst index c5c1bf043f11d8a065b9b27522f06899b4513cfb..fdf2fe86d1f8b9a62aff020318e47bb2b4270e70 100644 --- a/docs/source_docs/user_guide/inputs/mesh_and_gridding.rst +++ b/docs/source_docs/user_guide/inputs/gridding.rst @@ -1,79 +1,83 @@ .. sec:InputsMeshAndGridding: -Mesh, grids, and tiles -====================== +Grids and tiles +=============== -Mesh ----- -.. rubric:: Level-0 mesh +Grids +----- The following inputs are defined using the prefix ``amr``: -.. _InputsTable_mesh: - +----------------------+-----------------------------------------------------------------------+-------------+-----------+ | | Description | Type | Default | -| | | | | +======================+=======================================================================+=============+===========+ -| max_level | Maximum level of refinement. The default value, 0, means that there | Int | 0 | -| | is one cell size covering the entire domain (i.e., single-level). | | | +| max_grid_size_x | Maximum number of cells at level 0 in each grid in *X* | Ints | 32 | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| n_cell | Number of cells at level 0 in each coordinate direction. | Ints<3> | 0 0 0 | +| max_grid_size_y | Maximum number of cells at level 0 in each grid in *Y* | Ints | 32 | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| max_grid_size_z | Maximum number of cells at level 0 in each grid in *Z* | Ints | 32 | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| blocking_factor_x | Each grid in *X* must be divisible by ``blocking_factor_x`` | Ints | 8 | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| blocking_factor_y | Each grid in *Y* must be divisible by ``blocking_factor_y`` | Ints | 8 | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| blocking_factor_z | Each grid in *Z* must be divisible by ``blocking_factor_z`` | Ints | 8 | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| refine_grid_layout | If true, AMReX will attempt to chop new grids into smaller chunks | Bool | true | +| | ensuring at least one grid per MPI process, provided this does not | | | +| | violate the blocking factor constraint. | | | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ -The level 0 mesh spacing is computed for each direction by dividing the :ref:`domain length` by the -number of cells. The mesh spacing is required to be the same in all directions: - -.. math:: +Note, the default for ``max_grid_size`` is 64 for GPU runs. - \frac{\text{prob\_hi[0] - prob\_lo[0]}}{\text{n\_cell[0]}} - = \frac{\text{prob\_hi[1] - prob\_lo[1]}}{\text{n\_cell[1]}} - = \frac{\text{prob\_hi[2] - prob\_lo[2]}}{\text{n\_cell[2]}} +The domain is decomposed into grids by dividing the number of cells by the max grid size +for each direction (e.g., ``n_cells[0]/max_grid_size_x``). The blocking factor ensures that +the grids will be sufficiently coarsenable for good multigrid performance; therefore, the +``max_grid_size`` must be divisible by the corresponding ``blocking_factor``. +.. note:: -The inputs for defining the mesh for a single-level simulation are demonstrated in the -:ref:`following example` and illustrated in :numref:`fig_basic_mesh_ex`. -In this example, the domain is a :math:`4 \times 1 \times 1` cuboid, and there are -:math:`32 \times 8 \times 8` cells in the *X*, *Y*, and *Z* directions, respectively. -The result is a uniform mesh spacing of :math:`0.125` *m* in all three directions. + The `AMReX documentation `_ contains a significant + amount of information on grid creation and load balancing. Users are strongly encouraged to + read the relevant sections. -.. _inputs_mesh_ex: -.. code-block:: bash - :caption: Snippet of intpus for mesh example. This is not a complete input file. +----- - # Define periodicity and domain extents - # ------------------------------------------------------------- - geometry.coord_sys = 0 # Cartesian coordinates - geometry.is_periodic = 0 0 0 # periodicity for each direction - geometry.prob_lo = 0. 0. 0 # lo corner of physical domain. - geometry.prob_hi = 4. 1. 1. # hi corner of physical domain - # Define the maximum level of refinement and number of cells - # ------------------------------------------------------------- - arm.max_level = 0 - arm.n_cell = 32 8 8 +Tiles +----- +The following inputs are defined using the prefix ``fabarray``: -.. _fig_basic_mesh_ex: ++----------------------+-----------------------------------------------------------------------+----------+-------------+ +| | Description | Type | Default | ++======================+=======================================================================+==========+=============+ +| mfiter_tile_size | Maximum number of cells in each direction for (logical) tiles. | Ints<3> | 1024000 8 8 | ++----------------------+-----------------------------------------------------------------------+----------+-------------+ -.. figure:: ./images/geometry/mesh_lev0_ex.png - :width: 100% - :align: center - :alt: domain used with box embedded boundary +The following inputs are defined using the prefix ``particles``: - Example of a single-level mesh. ++----------------------+-----------------------------------------------------------------------+-------------+--------------+ +| | Description | Type | Default | ++======================+=======================================================================+=============+==============+ +| tile_size | Maximum number of cells in each direction for (logical) tiles | Ints<3> | 1024000 8 8 | +| | in the ParticleBoxArray if ``load_balance`` is ``DualGrid`` | | | ++----------------------+-----------------------------------------------------------------------+-------------+--------------+ -.. warning:: +When running on shared memory machines using an OpenMP enabled executable, *grids* are subdivided into +*tiles* and iterated over to improve data locality by cache blocking. - MFIX-Exa simulations with a non-uniform mesh will not run. +.. note:: + MFIX-Exa disables tiling when using GPU accelerators. ------ +.. sec:InputsMeshRefinement: -.. rubric:: Mesh refinement +Mesh refinement +=============== The following inputs are defined using the prefix ``amr``. These inputs control the automatic @@ -82,13 +86,17 @@ mesh refinement algorithm and are only applicable when ``amr.max_level > 0``. +----------------------+-----------------------------------------------------------------------+-------------+-----------+ | | Description | Type | Default | +======================+=======================================================================+=============+===========+ +| max_level | Maximum level of refinement. The default value, 0, means that there | Int | 0 | +| | is one cell size covering the entire domain (i.e., single-level). | | | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ | grid_eff | Threshold value to ensure grids do not contain too large a fraction | Real | 0.7 | | | of untagged cells. | | | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| n_error_buf | Controls the number of tagged cells before grids are defined. Used | Int | 1 | +| n_error_buf | Controls the number of tagged cells before grids are defined. Used | Ints | 0 | | | to ensure coarse/fine boundaries are not too close to tagged cells. | | | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ + .. caution:: **Mesh refinement limitations:** @@ -98,6 +106,21 @@ mesh refinement algorithm and are only applicable when ``amr.max_level > 0``. See the `AMReX documentation `_ for details on the adaptive mesh refinement algorithms. + +The following inputs are defined using the prefix ``mfix``. These inputs control the automatic +mesh refinement algorithm and are only applicable when ``amr.max_level > 0``. + ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| | Description | Type | Default | ++======================+=======================================================================+=============+===========+ +| regrid_int | How often to regrid (in number of steps at level 0). | Int | 0 | +| | If regrid_int <= 0 then no regridding will occur. | | | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ + + +Tagging for refinement +---------------------- + The following inputs are defined using the prefix ``mfix.tag``. They control how cells are tagged for the mesh refinement algorithm and are only applicable when ``amr.max_level > 0``. @@ -155,79 +178,3 @@ Cells intersected by the embedded boundary are always tagged for refinement, reg | regions | A list of predefined regions used to identify sections of the domain | Strings | None | | | for mesh refinement. | | | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ - - ------ - -Grids ------ - -The following inputs are defined using the prefix ``amr``: - -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| | Description | Type | Default | -+======================+=======================================================================+=============+===========+ -| blocking_factor_x | Each grid in *X* must be divisible by ``blocking_factor_x`` | Ints | 8 | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| blocking_factor_y | Each grid in *Y* must be divisible by ``blocking_factor_y`` | Ints | 8 | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| blocking_factor_z | Each grid in *Z* must be divisible by ``blocking_factor_z`` | Ints | 8 | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| max_grid_size_x | Maximum number of cells at level 0 in each grid in *X* | Int | 32 | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| max_grid_size_y | Maximum number of cells at level 0 in each grid in *Y* | Int | 32 | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| max_grid_size_z | Maximum number of cells at level 0 in each grid in *Z* | Int | 32 | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| refine_grid_layout | If true, AMReX will attempt to chop new grids into smaller chunks | Bool | true | -| | ensuring at least one grid per MPI process, provided this does not | | | -| | violate the blocking factor constraint. | | | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| regrid_int | How often to regrid (in number of steps at level 0). | Int | 0 | -| | If regrid_int <= 0 then no regridding will occur. | | | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ - - -Note, the default for ``max_grid_size`` is 64 for GPU runs. - -The domain is decomposed into grids by dividing the number of cells by the max grid size -for each direction (e.g., ``n_cells[0]/max_grid_size_x``). The blocking factor ensures that -the grids will be sufficiently coarsenable for good multigrid performance; therefore, the -``max_grid_size`` must be divisible by the corresponding ``blocking_factor``. - -.. note:: - - The `AMReX documentation `_ contains a significant - amount of information on grid creation and load balancing. Users are strongly encouraged to - read the relevant sections. - - ------ - - -Tiles ------ - -The following inputs are defined using the prefix ``fabarray``: - -+----------------------+-----------------------------------------------------------------------+----------+-------------+ -| | Description | Type | Default | -+======================+=======================================================================+==========+=============+ -| mfiter_tile_size | Maximum number of cells in each direction for (logical) tiles. | Ints<3> | 1024000 8 8 | -+----------------------+-----------------------------------------------------------------------+----------+-------------+ - -The following inputs are defined using the prefix ``particles``: - -+----------------------+-----------------------------------------------------------------------+-------------+--------------+ -| | Description | Type | Default | -+======================+=======================================================================+=============+==============+ -| tile_size | Maximum number of cells in each direction for (logical) tiles | Ints<3> | 1024000 8 8 | -| | in the ParticleBoxArray if ``load_balance`` is ``DualGrid`` | | | -+----------------------+-----------------------------------------------------------------------+-------------+--------------+ - -When running on shared memory machines using an OpenMP enabled executable, *grids* are subdivided into -*tiles* and iterated over to improve data locality by cache blocking. - -.. note:: - - MFIX-Exa disables tiling when using GPU accelerators. diff --git a/docs/source_docs/user_guide/inputs/initialization.rst b/docs/source_docs/user_guide/inputs/initialization.rst index 55c69490fa63397399385858d3b6b3470b3e2ba0..3cc0cca3dae99ce2fb35c50b728467fc126f5f74 100644 --- a/docs/source_docs/user_guide/inputs/initialization.rst +++ b/docs/source_docs/user_guide/inputs/initialization.rst @@ -1,12 +1,9 @@ -.. _Chap:InputsInitialization: - Initialization ============== The following inputs control how a calculation is initialized. They must be defined with the prefix ``mfix``: - +----------------------+-----------------------------------------------------------------------+-------------+--------------+ | | Description | Type | Default | +======================+=======================================================================+=============+==============+ @@ -19,13 +16,3 @@ They must be defined with the prefix ``mfix``: +----------------------+-----------------------------------------------------------------------+-------------+--------------+ | restart | If set, then restart from this file rather than from scratch. | String | None | +----------------------+-----------------------------------------------------------------------+-------------+--------------+ -| geom_chk_read | Flag to read the EB geometry data from the ``geom_chk_file`` | Bool | false | -| | :ref:`checkpoint file`. If levelset refinement | | | -| | is enabled, levelset data is read from ``geom_levelset_chk_file``. | | | -+----------------------+-----------------------------------------------------------------------+-------------+--------------+ -| repl_x | Replicate initial data by this factor in the x-direction. | Int | 1 | -+----------------------+-----------------------------------------------------------------------+-------------+--------------+ -| repl_y | Replicate initial data by this factor in the y-direction. | Int | 1 | -+----------------------+-----------------------------------------------------------------------+-------------+--------------+ -| repl_z | Replicate initial data by this factor in the z-direction. | Int | 1 | -+----------------------+-----------------------------------------------------------------------+-------------+--------------+ diff --git a/docs/source_docs/user_guide/inputs/model_options.rst b/docs/source_docs/user_guide/inputs/model_options.rst index b92e9853dc8ab7a993acce841ec7fb989ee67503..2775c3c19377f31df80f0eaa38f8aa524e67dcbe 100644 --- a/docs/source_docs/user_guide/inputs/model_options.rst +++ b/docs/source_docs/user_guide/inputs/model_options.rst @@ -4,171 +4,291 @@ Model options The following inputs are defined using the prefix ``mfix``: -+------------------------+----------------------------------------------------------------------------+----------+---------------------+ -| | Description | Type | Default | -+========================+============================================================================+==========+=====================+ -| gravity | Gravity vector. | Reals<3> | 0 0 0 | -+------------------------+----------------------------------------------------------------------------+----------+---------------------+ -| advect_density | Enable time evolution of fluid density. | Int | 0 | -+------------------------+----------------------------------------------------------------------------+----------+---------------------+ -| advect_enthalpy | Enable time evolution of fluid temperature and enthalpy. | Int | 0 | -+------------------------+----------------------------------------------------------------------------+----------+---------------------+ -| constraint | Select low Mach number constraint. | String | IncompressibleFluid | -| | | | | -| | Options (case-insensitive): | | | -| | | | | -| | * ``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. | | | -| | | | | -| | * ``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. | | | -| | | | | -+------------------------+----------------------------------------------------------------------------+----------+---------------------+ ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ +| | Description | Type | Default | ++==========================+============================================================================+==========+=====================+ +| gravity | Gravity vector. | Reals<3> | 0 0 0 | ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ + +Enabling solvers +---------------- + + + + +The following input is defined using the prefix ``mfix``: + ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ +| | Description | Type | Default | ++==========================+============================================================================+==========+=====================+ +| enable.fluid | Enable the fluid solver. | Bool | false | ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ +| enable.solids | Enable the solids solver for DEM or PIC. | Bool | false | ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ +| solve_species | Enable the MFIX species solver. | Int | 0 | ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ +| advect_enthalpy | Enable time evolution of fluid temperature and enthalpy. | Int | 0 | ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ +| advect_density | Enable time evolution of fluid density. | Int | 0 | ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ + + +Fluid options +------------- + +The following input is defined using the prefix ``mfix``: + ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| | Description | Type | Default | ++=================================+============================================================================+=============+=====================+ +| constraint | Select low Mach number constraint. | String | IncompressibleFluid | +| | | | | +| | Options (case-insensitive): | | | +| | | | | +| | * ``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. | | | +| | | | | +| | * ``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. | | | +| | | | | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| thermodynamic_pressure | Thermodynamic pressure. | Real | 0 | +| | A value is required when using the | | | +| | ``IdealGasClosedSystem`` constraint. If using the | | | +| | ``IdealGasOpenSystem`` constraint, if a value is provided then it must | | | +| | match all specified outflow pressures. | | | +| | | | | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| advection_type | Advection scheme. | String | Godunov | +| | | | | +| | Options: | | | +| | | | | +| | * ``MOL``- Predictor-Corrector Method of Lines. MAC | | | +| | (Marker-and-Cell) 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. | | | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| 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`` | | | +| | * ignored if ``mfix.fixed_dt = 1`` | | | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| redistribution_type | Algorithms to address the *'small cell problem'* associated with | String | StateRedist | +| | explicit cut-cell algorithms. | | | +| | | | | +| | Options: | | | +| | | | | +| | * ``StateRedist`` :cite:p:`berger21,giuliani22` | | | +| | * ``FluxRedist`` :cite:p:`chern87,colella06` | | | +| | * ``NoRedist`` - Do not redistribute fluxes. | | | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| redistribute_before_nodal_proj | Redistribute the velocity field before the nodal projection. | Bool | true | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| redistribute_nodal_proj | Redistribute the velocity field after the nodal projection. | Bool | false | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| correction_small_volfrac | Threshold volume fraction for correcting small cell velocity | | | +| | at the end of the predictor and corrector. | Real | 1.e-4 | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| godunov_include_diff_in_forcing | When using Godunov, include viscous/diffusive terms in forcing terms. | Bool | true | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| godunov_use_ppm | When using Godunov, use piecewise parabolic (PPM) instead of | Bool | false | +| | piecewise linear (PLM) reconstruction. | | | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| godunov_use_forces_in_trans | When using Godunov, add forcing terms in the construction of | Bool | false | +| | transverse velocities. | | | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| godunov_use_mac_phi | When using Godunov, don't include the pressure gradient in the | Bool | false | +| | forcing term passed into the Godunov routine; instead use gradient of | | | +| | mac phi which contains the full pressure. | | | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ .. 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 are defined using the prefix ``mfix``: -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -| Key | Description | Type | Default | -+=================================+=======================================================================+=============+==============+ -| advection_type | Advection scheme. | String | Godunov | -| | | | | -| | Options: | | | -| | | | | -| | * ``MOL``- Predictor-Corrector Method of Lines. MAC | | | -| | (Marker-and-Cell) 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 | Algorithms to address the '*small cell problem*' associated with | String | StateRedist | -| | explicit cut-cell algorithms. | | | -| | | | | -| | Options: | | | -| | | | | -| | * ``StateRedist`` :cite:p:`berger21,giuliani22` | | | -| | * ``FluxRedist`` :cite:p:`chern87,colella06` | | | -| | * ``NoRedist`` - Do not redistribute fluxes. | | | -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -| redistribute_before_nodal_proj | Redistribute the velocity field before the nodal projection. | Bool | true | -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -| redistribute_nodal_proj | Redistribute the velocity field after the nodal projection. | Bool | false | -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -| use_drag_coeff_in_proj_gp | Algebraically consistent p coeff in proj or (default) simplified form.| Bool | false | -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -| correction_small_volfrac | Threshold volume fraction for correcting small cell velocity | | | -| | at the end of the predictor and corrector. | Real | 1.e-4 | -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -| godunov_include_diff_in_forcing | When using Godunov, include viscous/diffusive terms in forcing terms. | Bool | true | -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -| godunov_use_ppm | When using Godunov, use piecewise parabolic (PPM) instead of | Bool | false | -| | piecewise linear (PLM) reconstruction. | | | -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -| godunov_use_forces_in_trans | When using Godunov, add forcing terms in the construction of | Bool | false | -| | transverse velocities. | | | -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -| godunov_use_mac_phi | When using Godunov, don't include the pressure gradient in the | Bool | false | -| | forcing term passed into the Godunov routine; instead use gradient of | | | -| | mac phi which contains the full pressure. | | | -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ +Particle options +---------------- +The following inputs are defined using the prefix ``solids``: ++---------------------+---------------------------------------------------------------------------+-------------+-----------+ +| | Description | Type | Default | ++=====================+===========================================================================+=============+===========+ +| enable.momentum | Flag to update particle velocity and position. | Int | 1 | ++---------------------+---------------------------------------------------------------------------+-------------+-----------+ +| enable.energy | Flag to update particle temperature and enthalpy. | Int | 1 | ++---------------------+---------------------------------------------------------------------------+-------------+-----------+ +| energy.source | User defined enthalpy source for particles. | Real | 0. | ++---------------------+---------------------------------------------------------------------------+-------------+-----------+ -Additional available constraints --------------------------------- + + +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 prefix ``particles``: +The following inputs are defined using the prefix ``solids.constraint``: +---------------------+---------------------------------------------------------------------------+-------------+-----------+ | | Description | Type | Default | +=====================+===========================================================================+=============+===========+ -| constraint | Constraint type. | String | None | -| | | | | -| | Options: | | | +| model | Constraint type. Options: | String | None | | | | | | | | * ``None`` - Particles evolve normally | | | | | * ``mean_velocity`` - Impose a mean velocity on particles at the end of | | | | | each solids update step. | | | | | | | | +---------------------+---------------------------------------------------------------------------+-------------+-----------+ - -For the `mean_velocity` constraint, the following inputs can be defined using the prefix ``particles.constraint``: - -+------------------------+------------------------------------------------------------------------+-------------+-----------+ -| | Description | Type | Default | -+========================+========================================================================+=============+===========+ -| mean_velocity_x | mean particle velocity in dir=0 | Real | Undefined | -+------------------------+------------------------------------------------------------------------+-------------+-----------+ -| mean_velocity_y | mean particle velocity in dir=1 | Real | Undefined | -+------------------------+------------------------------------------------------------------------+-------------+-----------+ -| mean_velocity_z | mean particle velocity in dir=2 | Real | Undefined | -+------------------------+------------------------------------------------------------------------+-------------+-----------+ +| mean_velocity_x | mean particle velocity in x-axial direction | Real | None | ++---------------------+---------------------------------------------------------------------------+-------------+-----------+ +| mean_velocity_y | mean particle velocity in y-axial direction | Real | None | ++---------------------+---------------------------------------------------------------------------+-------------+-----------+ +| mean_velocity_z | mean particle velocity in z-axial direction | Real | None | ++---------------------+---------------------------------------------------------------------------+-------------+-----------+ Below is an example for zero mean particle velocity in all three directions. .. code-block:: none - particles.constraint = "mean_velocity" + solids.constraint.model = "mean_velocity" - particles.constraint.mean_velocity_x = 0. - particles.constraint.mean_velocity_y = 0. - particles.constraint.mean_velocity_z = 0. + solids.constraint.mean_velocity_x = 0. + solids.constraint.mean_velocity_y = 0. + solids.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 ------------------ +Fluid-particle couping +---------------------- + +Drag coefficient +^^^^^^^^^^^^^^^^ + +The following input is defined using the prefix ``mfix.drag``: + + +.. |VirtualMass_Eq| replace:: :math:`\mathbf{F}_p,vm = -C_{p,vm} \rho_f \left( \frac{D\mathbf{u}_f}{Dt} - \frac{d\mathbf{u}_p}{dt}\right)\mathcal{V}_p` + +.. |VM_Zuber_Eq| replace:: :math:`C_{p,vm} = (\frac{1}{2})\frac{(1+2\varepsilon_p)}{(1-\varepsilon_p)}` + +.. |VM_Nijssen_Eq| replace:: :math:`\begin{split}C_{p,vm} &= C_{0,vm} \\ &+ \sum_{k=1}^3 \left\{ \left[ a_{k,0} + a_{k,1} \ln \left( \frac{\rho_p}{\rho_f} \right) \right] \varepsilon_p^k \right\}\end{split}` + ++--------------------------+-------------------------------------------------------------------------------------------+-----------+-----------+ +| | Description | Type | Default | ++==========================+===========================================================================================+===========+===========+ +| model | Fluid-particle drag model. Options: | String | None | +| | | | | +| | * ``WenYu``- Wen-Yu :cite:p:`Wen66` | | | +| | * ``Gidaspow`` :cite:p:`ding90,Lat00` | | | +| | * ``BVK2`` - Beetstra, van der Hoef, and Kuipers :cite:p:`Bee07,Bee071,tenneti11,tang15` | | | +| | * ``SyamOBrien`` - Syamlal-O'Brien :cite:p:`syam88` | | | +| | * ``UserDrag`` - User-supplied drag model | | | +| | | | | +| | | | | ++--------------------------+-------------------------------------------------------------------------------------------+-----------+-----------+ +| model.SyamOBrien.c1 | Fitting parameters for ``SyamOBrien`` drag model | Real | None | +| model.SyamOBrien.d1 | | | | ++--------------------------+-------------------------------------------------------------------------------------------+-----------+-----------+ +| virtual_mass | Include virtual mass force in fluid-particle momentum transfer. | String | None | +| | The virtual mass force is not included by default. | | | +| | | | | +| | |VirtualMass_Eq| | | | +| | | | | +| | Options: | | | +| | | | | +| | * ``None`` - virtual mass force calculation is skipped | | | +| | * ``Null`` - zero virtual mass coefficient, :math:`C_p,vm = 0` (for testing) | | | +| | * ``Constant`` - specified constant coefficient | | | +| | * ``Zuber`` - :cite:p:`zuber64` | | | +| | | | | +| | |VM_Zuber_Eq| | | | +| | | | | +| | * ``Nijssen`` - :cite:p:`nijssen20` | | | +| | | | | +| | |VM_Nijssen_Eq| | | | ++--------------------------+-------------------------------------------------------------------------------------------+-----------+-----------+ +| virtual_mass.constant | Constant virtual-mass coefficient. | Real | 0.5 | ++--------------------------+-------------------------------------------------------------------------------------------+-----------+-----------+ +| include_divtau | Interpolate the fluid shear stress to particles and include in the | Int | 0 | +| | fluid-particle drag force. The force is applied to the fluid by | | | +| | multiplying the shear stress by fluid volume fraction. | | | ++--------------------------+-------------------------------------------------------------------------------------------+-----------+-----------+ + + +.. note:: + + 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 MFIX-Exa. An example can be found in ``tests/DEM06-x``. + + +Heat transfer coefficient +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following input is defined using the prefix ``mfix.convection``: + ++-------------------+-----------------------------------------------------------------------+-------------+--------------+ +| | Description | Type | Default | ++===================+=======================================================================+=============+==============+ +| model | Fluid-particle heat transfer coefficient model. | String | RanzMarshall | +| | | | | +| | Options: | | | +| | | | | +| | * ``RanzMarshall`` :cite:p:`ranz52` | | | +| | * ``Gunn`` :cite:p:`gunn78` | | | +| | * ``None`` - disable fluid-particle heat transfer | | | +| | | | | ++-------------------+-----------------------------------------------------------------------+-------------+--------------+ -The following inputs are defined using the prefix ``mfix``: -+----------------------------+--------------------------------------------------------------------+-----------+---------------+ -| | Description | Type | Default | -+============================+====================================================================+===========+===============+ -| deposition_scheme | The algorithm used to transfer particle properties to the Eulerian | String | trilinear | -| | grid. An overview of the schemes is provided | | | -| | :ref:`below`. | | | -| | | | | -| | Options: | | | -| | | | | -| | * ``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 interval | | | -| | :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. | | | -+----------------------------+--------------------------------------------------------------------+-----------+---------------+ + + +Deposition scheme +^^^^^^^^^^^^^^^^^ + +The following inputs are defined using the prefix ``mfix.deposition``: + ++-----------------+--------------------------------------------------------------------+-----------+---------------+ +| | Description | Type | Default | ++=================+====================================================================+===========+===============+ +| type | The algorithm used to transfer particle properties to the Eulerian | String | trilinear | +| | grid. An overview of the schemes is provided | | | +| | :ref:`below`. | | | +| | | | | +| | Options: | | | +| | | | | +| | * ``centroid`` | | | +| | * ``trilinear`` | | | +| | * ``true-dpvm`` | | | +| | * ``trilinear-dpvm-square`` | | | ++-----------------+--------------------------------------------------------------------+-----------+---------------+ +| 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 interval | | | +| | :math:`[0,\Delta x/2]` where :math:`\Delta x` is the mesh spacing. | | | ++-----------------+--------------------------------------------------------------------+-----------+---------------+ .. _deposition_description: @@ -260,22 +380,21 @@ the *Y*-direction weights. The right image shows the resulting composite weights Example of trilinear dpvm square deposition. - Deposition redistribution -------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^ -The following inputs are defined using the prefix ``mfix``: +The following inputs are defined using the prefix ``mfix.deposition.redistribution``: +---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ | Key | Description | Type | Default | +=================================+=======================================================================+=============+==============+ -| deposition_redist_type | Algorithm used to redistribute excess solids to adjacent cells. This | String | MaxPack | +| type | Algorithm used to redistribute excess solids to adjacent cells. This | String | MaxPack | | | typically applies only to small cut-cells along the geometry. | | | | | | | | | | Options: | | | | | | | | | | * ``MaxPack`` - If the solids volume fraction exceeds the prescribed | | | -| | ``max_solids_volume_fraction``, then the local average solids | | | +| | ``maxpack.volfrac``, 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. | | | @@ -285,93 +404,43 @@ The following inputs are defined using the prefix ``mfix``: | | transferred quantities in small cells. | | | | | | | | +---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -| max_solids_volume_fraction | Threshold solids volume fraction for `MaxPack` redistribution. | Real | 0.6 | +| maxpack.volfrac | 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 | +| stateredist.volfrac | 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. | | | +---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ +Deposition filter +^^^^^^^^^^^^^^^^^ +The filtering operation solves a diffusion equation to smooth deposited particle properties. -Fluid-particle drag -------------------- - -The following input is defined using the prefix ``mfix.drag``: - - -.. |VirtualMass_Eq| replace:: :math:`\mathbf{F}_p,vm = -C_{p,vm} \rho_f \left( \frac{D\mathbf{u}_f}{Dt} - \frac{d\mathbf{u}_p}{dt}\right)\mathcal{V}_p` - -.. |VM_Zuber_Eq| replace:: :math:`C_{p,vm} = (\frac{1}{2})\frac{(1+2\varepsilon_p)}{(1-\varepsilon_p)}` - -.. |VM_Nijssen_Eq| replace:: :math:`C_{p,vm} = C_{0,vm} + \sum_{k=1}^3 \left\{ \left[ a_{k,0} + a_{k,1} \ln \left( \frac{\rho_p}{\rho_f} \right) \right] \varepsilon_p^k \right\}` - -+--------------------------+-----------------------------------------------------------------------------------------+-------------+-----------+ -| | Description | Type | Default | -+==========================+=========================================================================================+=============+===========+ -| model | Fluid-particle drag model. Options: | String | None | -| | | | | -| | * ``WenYu``- Wen-Yu :cite:p:`Wen66` | | | -| | * ``Gidaspow`` :cite:p:`ding90,Lat00` | | | -| | * ``BVK2`` - Beetstra, van der Hoef, and Kuipers :cite:p:`Bee07,Bee071,tenneti11,tang15`| | | -| | * ``SyamOBrien`` - Syamlal-O'Brien :cite:p:`syam88` | | | -| | * ``UserDrag`` - User-supplied drag model | | | -| | | | | -| | | | | -+--------------------------+-----------------------------------------------------------------------------------------+-------------+-----------+ -| model.SyamOBrien.c1 | Fitting parameters for ``SyamOBrien`` drag model | Real | None | -| model.SyamOBrien.d1 | | | | -+--------------------------+-----------------------------------------------------------------------------------------+-------------+-----------+ -| include_divtau | Interpolate the fluid shear stress to particles and include in the | Int | 0 | -| | fluid-particle drag force. The force is applied to the fluid by | | | -| | multiplying the shear stress by fluid volume fraction. | | | -+--------------------------+-----------------------------------------------------------------------------------------+-------------+-----------+ -| virtual_mass | Include virtual mass force in fluid-particle momentum transfer. | String | None | -| | The virtual mass force is not included by default. | | | -| | | | | -| | |VirtualMass_Eq| | | | -| | | | | -| | Options: | | | -| | | | | -| | * ``None`` - virtual mass force calculation is skipped | | | -| | * ``Null`` - zero virtual mass coefficient, :math:`C_p,vm = 0` (for testing) | | | -| | * ``Constant`` - specified constant coefficient | | | -| | * ``Zuber`` - :cite:p:`zuber64` | | | -| | | | | -| | |VM_Zuber_Eq| | | | -| | | | | -| | * ``Nijssen`` - :cite:p:`nijssen20` | | | -| | | | | -| | |VM_Nijssen_Eq| | | | -+--------------------------+-----------------------------------------------------------------------------------------+-------------+-----------+ -| virtual_mass.constant | Constant virtual-mass coefficient. | Real | 0.5 | -+--------------------------+-----------------------------------------------------------------------------------------+-------------+-----------+ - - -.. note:: - - 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 MFIX-Exa. An example can be found in ``tests/DEM06-x``. - - -Heat transfer coefficients --------------------------- - -The following input is defined using the prefix ``mfix.convection``: +The following inputs are defined using the prefix ``mfix.deposition.filter``: -+-------------------+-----------------------------------------------------------------------+-------------+--------------+ -| | Description | Type | Default | -+===================+=======================================================================+=============+==============+ -| model | Fluid-particle heat transfer coefficient model. | String | RanzMarshall | -| | | | | -| | Options: | | | -| | | | | -| | * ``RanzMarshall`` :cite:p:`ranz52` | | | -| | * ``Gunn`` :cite:p:`gunn78` | | | -| | * ``None`` - disable fluid-particle heat transfer | | | -| | | | | -+-------------------+-----------------------------------------------------------------------+-------------+--------------+ ++---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ +| Key | Description | Type | Default | ++=================================+=======================================================================+=============+==============+ +| type | Algorithm used to redistribute excess solids to adjacent cells. This | String | None | +| | typically applies only to small cut-cells along the geometry. | | | +| | | | | +| | Options: | | | +| | | | | +| | * ``None`` - No filtering of deposited particle properties. | | | +| | * ``constant`` - Filter deposited particle properties using a | | | +| | constant filter width. | | | +| | * ``variable`` - Filter deposited particle properties using a | | | +| | filter width computed from the solids volume fraction. | | | +| | | | | ++---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ +| constant.size | User defined constant filter size. | Real | Undefined | +| | Redistribution of transferred quantities only occurs when the | | | +| | solids volume fraction of a cell exceeds this value. | | | ++---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ +| variable.sample_size | Variable filter sample size | Real | 0.1 | ++---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ +| variable.min_eps | Variable filter minimum volume fraction. | Real | 0.1 | ++---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ diff --git a/docs/source_docs/user_guide/inputs/output/checkpointing.rst b/docs/source_docs/user_guide/inputs/output/checkpointing.rst index bb56591f1c246619d41d1076adb1c1c341dd966a..9eabcec23209bf9b91471f51f83454ed1d7a5d42 100644 --- a/docs/source_docs/user_guide/inputs/output/checkpointing.rst +++ b/docs/source_docs/user_guide/inputs/output/checkpointing.rst @@ -8,8 +8,6 @@ The following inputs must be preceded by the prefix ``mfix`` and control checkpo +-------------------------+------------------------------------------------------------------------+-------------+------------------+ | | Description | Type | Default | +=========================+========================================================================+=============+==================+ -| restart | If present, the name of file to restart from. | String | None | -+-------------------------+------------------------------------------------------------------------+-------------+------------------+ | check_file | Prefix to use for checkpoint output file name. | String | chk | +-------------------------+------------------------------------------------------------------------+-------------+------------------+ | check_int | Checkpoint output interval in number of timesteps (0 to disable). | Int | 0 | @@ -31,3 +29,21 @@ The following inputs must be preceded by the prefix ``mfix`` and control checkpo | | the refined geometry, i.e. when levelset refinement is enabled. | | | | | | | | +-------------------------+------------------------------------------------------------------------+-------------+------------------+ + + +Replication +----------- + +Domain replication is a restart capability that takes the domain stored in a checkpoint file and duplicates it according to the user‑specified replication factors. This feature is available only for fully periodic domains. Its primary purpose is to support scaling studies where the amount of work per processor must remain constant. + +The following inputs must be preceded by the prefix ``mfix``. + ++----------------------+-----------------------------------------------------------------------+-------------+--------------+ +| | Description | Type | Default | ++======================+=======================================================================+=============+==============+ +| repl_x | Replicate initial data by this factor in the x-direction. | Int | 1 | ++----------------------+-----------------------------------------------------------------------+-------------+--------------+ +| repl_y | Replicate initial data by this factor in the y-direction. | Int | 1 | ++----------------------+-----------------------------------------------------------------------+-------------+--------------+ +| repl_z | Replicate initial data by this factor in the z-direction. | Int | 1 | ++----------------------+-----------------------------------------------------------------------+-------------+--------------+ diff --git a/docs/source_docs/user_guide/inputs/solids_model.rst b/docs/source_docs/user_guide/inputs/solids_model.rst index fde7a31d43f61e35fc457af1c54652977adee1ed..da3eeaf1402cd409651dede6360944055498245c 100644 --- a/docs/source_docs/user_guide/inputs/solids_model.rst +++ b/docs/source_docs/user_guide/inputs/solids_model.rst @@ -3,133 +3,202 @@ Solids model .. _InputsSolids: -Solids settings ---------------- - Enabling the solids solver and specifying options common to both DEM and PIC models. The following inputs are defined with the prefix ``solids``: -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| | Description | Type | Default | -+==========================================+==============================================================+==========+==========+ -| types | Specified name(s) of the solids types or None to disable | Strings | None | -| | the solids solver. The user-defined names are used to | | | -| | specify DEM and/or PIC model inputs. | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| molecular_weight | Value of constant solid molecular weight. | Real | 0 | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| density | Specify which density model to use for solids. | String | None | -| | | | | -| | Options (case-insensive): | | | -| | | | | -| | * ``None`` - solids density specified through initial and | | | -| | boundary conditions; | | | -| | * ``Mixture`` - solids density computed as a weighted | | | -| | average of the solid phase species densities. It requires | | | -| | constant :ref:`species densities` to | | | -| | be defined by the user. | | | -| | | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| specific_heat | Specify which specific heat model to use for solids. | String | constant | -| | | | | -| | A specific heat model is required if advecting enthalpy. | | | -| | Furthermore, the model must be ``mixture`` if species | | | -| | equations are solved. | | | -| | | | | -| | Options: | | | -| | | | | -| | * ``constant`` - constant solid specific heat | | | -| | * ``NASA7-poly`` the solid specific heat is defined by | | | -| | NASA-7 polynomials. | | | -| | | | | -| | NASA7 polynomial format: | | | -| | | | | -| | :math:`c_p(T)/R = \sum_{i=0}^4 a_{i}T^{i}` | | | -| | | | | -| | Additional information on NASA-7 polynomials is provided | | | -| | in :ref:`species specific heats`. | | | -| | | | | -| | * ``mixture`` - a *mixture* specific heat is computed | | | -| | from :ref:`species specific heats` | | | -| | and local species mass fractions. | | | -| | | | | -| | :math:`c_{p,\mathrm{mixture}} = \sum_n X_n c_{p,n}` | | | -| | | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| specific_heat.constant | Constant solids specific heat value. | Real | 0 | -| | A value is required for ``constant`` specific heat model. | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| specific_heat.ignore_discontinuities | Ignore discontinuities in NASA-7 polynomials at transition | Int | 0 | -| | temperatures (``Tsplit``). More information is provided in | | | -| | :ref:`species specific heats`. | | | -| | | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| specific_heat.NASA7.a[i] | Specific heat polynomial coefficients. Polynomial | Reals | None | -| | coefficients are required if the fluid specific heat | | | -| | model is ``NASA7-poly``. | | | -| | | | | -| | Additional information on NASA-7 polynomials is provided | | | -| | in :ref:`species specific heats`. | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| specific_heat.NASA7.Tsplit | Defines the transition temperature between NASA-7 | Reals | 1000 | -| | polynomials. | | | -| | | | | -| | If there are ``N`` sets of coefficients for ``N`` temperature| | | -| | ranges, then ``N-1`` transition temperatures must be | | | -| | specified. | | | -| | | | | -| | In the standard case of two temperature ranges, a | | | -| | transition temperature of 1000K is assumed if ``Tsplit`` is | | | -| | not provided. | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| reference_temperature | Reference temperature used for specific enthalpy. | Real | 0 | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| species | Specify which species can constitute | Strings | None | -| | the solids phase. Defined species must | | | -| | be a subset of the species defined in ``species.solve`` | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| newton_solver.absolute_tol | Define absolute tolerance for damped Newton solver. | Real | 1.e-6 | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| newton_solver.relative_tol | Define relative tolerance for damped Newton solver. | Real | 1.e-6 | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| newton_solver.max_iterations | Define max number of iterations for damped Newton solver. | Int | 100 | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| thermal_conductivity | Specify which thermal conductivity model to use for solids. | String | constant | -| | Options: | | | -| | | | | -| | * ``constant`` - constant thermal conductivity | | | -| | | | | -| | A thermal conductivity model is not required for solids. | | | -| | Defining a thermal conductivity model enables conductive | | | -| | heat transfer for DEM. However, it has no effect for PIC | | | -| | solids heat transfer. | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| thermal_conductivity.constant | Constant solids thermal conductivity value. | Real | 0 | -| | A value is required for ``constant`` thermal conductivity | | | -| | model. | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| min_conduction_dist | The surface roughness separating two touching particles. | Real | 2.e-8 | -| | This value is used to remove the singularity that the | | | -| | particle-fluid-particle conduction model develops at | | | -| | the contact interface. | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| flpc | The fluid lens proportionality constant (flpc) is used to | Real | 0.4 | -| | calculate the radius of the fluid lens surrounding the | | | -| | particle for particle-fluid-particle conduction. | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ - - -Below is an example for specifying the solids solver model options. - -.. code-block:: none - - solids.types = my_solid0 my_solid1 - - solids.reference_temperature = 298.15 ++----------------------------+--------------------------------------------------------------+----------+----------+ +| | Description | Type | Default | ++============================+==============================================================+==========+==========+ +| types | Specified name(s) of the solids types or None to disable | Strings | None | +| | the solids solver. The user-defined names are used to | | | +| | specify DEM and/or PIC model inputs. | | | ++----------------------------+--------------------------------------------------------------+----------+----------+ +| species | Specify which species can constitute | Strings | None | +| | the solids phase. Defined species must | | | +| | be a subset of the species defined in ``species.solve`` | | | ++----------------------------+--------------------------------------------------------------+----------+----------+ + + +Molecular Weight +---------------- + +The following inputs are defined with the prefix ``solids``: + ++----------------------------+--------------------------------------------------------------+----------+----------+ +| | Description | Type | Default | ++============================+==============================================================+==========+==========+ +| molecular_weight | Value of constant solid molecular weight. | Real | 0 | ++----------------------------+--------------------------------------------------------------+----------+----------+ + + + +Specific Heat +------------- + + +The following inputs are defined with the prefix ``solids.specific_heat``: + ++----------------------------+----------------------------------------------------------------+----------+----------+ +| | Description | Type | Default | ++============================+================================================================+==========+==========+ +| model | Specify which specific heat model to use for solids. | String | constant | +| | | | | +| | A specific heat model is required if advecting enthalpy. | | | +| | Furthermore, the model must be ``mixture`` if species | | | +| | equations are solved. | | | +| | | | | +| | Options: | | | +| | | | | +| | * ``constant`` - constant solid specific heat | | | +| | * ``NASA7-poly`` the solid specific heat is defined by | | | +| | NASA-7 polynomials. | | | +| | | | | +| | NASA7 polynomial format: | | | +| | | | | +| | :math:`c_p(T)/R = \sum_{i=0}^4 a_{i}T^{i}` | | | +| | | | | +| | Additional information on NASA-7 polynomials is provided | | | +| | in :ref:`species specific heats`. | | | +| | | | | +| | * ``mixture`` - a *mixture* specific heat is computed | | | +| | from :ref:`species specific heats` | | | +| | and local species mass fractions. | | | +| | | | | +| | :math:`c_{p,\mathrm{mixture}} = \sum_n X_n c_{p,n}` | | | +| | | | | ++----------------------------+----------------------------------------------------------------+----------+----------+ +| constant | Constant solids specific heat value. | Real | 0 | +| | A value is required for ``constant`` specific heat model. | | | ++----------------------------+----------------------------------------------------------------+----------+----------+ +| ignore_discontinuities | Ignore discontinuities in NASA-7 polynomials at transition | Int | 0 | +| | temperatures (``Tsplit``). More information is provided in | | | +| | :ref:`species specific heats`. | | | +| | | | | ++----------------------------+----------------------------------------------------------------+----------+----------+ +| NASA7.a[i] | Specific heat polynomial coefficients. Polynomial | Reals | None | +| | coefficients are required if the fluid specific heat | | | +| | model is ``NASA7-poly``. | | | +| | | | | +| | Additional information on NASA-7 polynomials is provided | | | +| | in :ref:`species specific heats`. | | | ++----------------------------+----------------------------------------------------------------+----------+----------+ +| NASA7.Tsplit | Defines the transition temperature between NASA-7 | Reals | 1000 | +| | polynomials. | | | +| | | | | +| | If there are ``N`` sets of coefficients for ``N`` temperature | | | +| | ranges, then ``N-1`` transition temperatures must be specified.| | | +| | | | | +| | In the standard case of two temperature ranges, a | | | +| | transition temperature of 1000K is assumed if ``Tsplit`` is | | | +| | not provided. | | | ++----------------------------+----------------------------------------------------------------+----------+----------+ + +The following inputs are defined with the prefix ``solids``: + ++----------------------------+--------------------------------------------------------------+----------+----------+ +| | Description | Type | Default | ++============================+==============================================================+==========+==========+ +| reference_temperature | Reference temperature used for specific enthalpy. | Real | 0 | ++----------------------------+--------------------------------------------------------------+----------+----------+ + + +Thermal conductivity +-------------------- + +.. |Sutherland_k_Eq| replace:: :math:`\kappa(T) = \kappa_{ref}\left(\frac{T}{T_{ref}}\right)^{3/2}\frac{T_{ref} + S}{T+S}` + +.. |PowerLaw_k_Eq| replace:: :math:`\kappa(T) = \left( \frac{T}{T_{ref}} \right)^n` + +The following inputs are defined using the prefix ``[solid_name].thermal_conductivity``. + ++-----------------------+----------------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++=======================+================================================================+========+==========+ +| model | Specify the thermal conductivity model. Options: | String | None | +| | | | | +| | * ``constant`` - constant thermal conductivity | | | +| | * ``Sutherland`` :cite:p:`suth1893` - | | | +| | | | | +| | |Sutherland_k_Eq| | | | +| | | | | +| | * ``power_law`` : Power law formulation | | | +| | | | | +| | |PowerLaw_k_Eq| | | | +| | | | | +| | A thermal conductivity model is required if advecting | | | +| | enthalpy. | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| constant | Value of constant thermal conductivity. | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Sutherland.T_ref | Sutherland model reference temperature. | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Sutherland.k_ref | Sutherland model reference conductivity at T_ref. | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| Sutherland.S | Sutherland model temperature. | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| power_law.T_ref | Power law model reference temperature. | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| power_law.exponent | Power law model exponent :math:`n` | Real | None | ++-----------------------+----------------------------------------------------------------+--------+----------+ + + + +The following inputs are defined with the prefix ``solids``: + ++-----------------------+--------------------------------------------------------------+----------+----------+ +| | Description | Type | Default | ++=======================+==============================================================+==========+==========+ +| min_conduction_dist | The surface roughness separating two touching particles. | Real | 2.e-8 | +| | This value is used to remove the singularity that the | | | +| | particle-fluid-particle conduction model develops at | | | +| | the contact interface. | | | ++-----------------------+--------------------------------------------------------------+----------+----------+ +| flpc | The fluid lens proportionality constant (flpc) is used to | Real | 0.4 | +| | calculate the radius of the fluid lens surrounding the | | | +| | particle for particle-fluid-particle conduction. | | | ++-----------------------+--------------------------------------------------------------+----------+----------+ + + + +Density +------- + +The following inputs are defined with the prefix ``solids``: + ++-----------------------+--------------------------------------------------------------+----------+----------+ +| | Description | Type | Default | ++=======================+==============================================================+==========+==========+ +| density | Specify which density model to use for solids. | String | None | +| | | | | +| | Options (case-insensive): | | | +| | | | | +| | * ``None`` - solids density specified through initial and | | | +| | boundary conditions; | | | +| | * ``Mixture`` - solids density computed as a weighted | | | +| | average of the solid phase species densities. It requires | | | +| | constant :ref:`species densities` to | | | +| | be defined by the user. | | | +| | | | | ++-----------------------+--------------------------------------------------------------+----------+----------+ + + +Newton solver +------------- + + +The following inputs are defined with the prefix ``solids``: + ++------------------------------+--------------------------------------------------------------+----------+----------+ +| | Description | Type | Default | ++==============================+==============================================================+==========+==========+ +| newton_solver.absolute_tol | Define absolute tolerance for damped Newton solver. | Real | 1.e-6 | ++------------------------------+--------------------------------------------------------------+----------+----------+ +| newton_solver.relative_tol | Define relative tolerance for damped Newton solver. | Real | 1.e-6 | ++------------------------------+--------------------------------------------------------------+----------+----------+ +| newton_solver.max_iterations | Define max number of iterations for damped Newton solver. | Int | 100 | ++------------------------------+--------------------------------------------------------------+----------+----------+ - solids.specific_heat = mixture - solids.species = Fe2O3 FeO DEM model settings diff --git a/docs/source_docs/user_guide/inputs/species.rst b/docs/source_docs/user_guide/inputs/species.rst index 4e4e8f764039ef6ecd4bd8cba0e0a3a3276acf3d..d0a015888f65d4d52ce1fb0f824b56cf09a846be 100644 --- a/docs/source_docs/user_guide/inputs/species.rst +++ b/docs/source_docs/user_guide/inputs/species.rst @@ -4,154 +4,209 @@ Species solver ============== -Enabling the species solver ---------------------------- +The following inputs are defined using the prefix ``species``: -The following input is defined using the prefix ``mfix``: ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| | Description | Type | Default | ++========================+=========================================================================+==========+===========+ +| solve | Specified name(s) of the species or None to disable the | Strings | None | +| | species solver. The name assigned to the species | | | +| | solver is used to specify species inputs. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ -+-------------------------+------------------------------------------------------------------------+----------+-----------+ -| | Description | Type | Default | -+=========================+========================================================================+==========+===========+ -| solve_species | Enable the MFIX species solver. | Int | 0 | -+-------------------------+------------------------------------------------------------------------+----------+-----------+ -Species definitions -------------------- +Diffusivity +----------- -The following inputs are defined using the prefix ``species``: +The following inputs are defined using the prefix ``species.diffusivity``: + ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| | Description | Type | Default | ++========================+=========================================================================+==========+===========+ +| model | Fluid species diffusivity model. | String | None | +| | | | | +| | Options: | | | +| | | | | +| | * ``constant`` - a constant diffusion coefficient is used for | | | +| | all fluid species. | | | +| | | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| constant | Constant species diffusivity - required for | Real | 0 | +| | ``constant`` diffusivity model | | | +| | | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ + + +Molecular weight +---------------- + + +The following inputs are defined for each species using the prefix ``species.[species_name]``: -+--------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| | Description | Type | Default | -+======================================+=========================================================================+==========+===========+ -| solve | Specified name(s) of the species or None to disable the | Strings | None | -| | species solver. The name assigned to the species | | | -| | solver is used to specify species inputs. | | | -+--------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| diffusivity | Fluid species diffusivity model. | String | None | -| | | | | -| | Options: | | | -| | | | | -| | * ``constant`` - a constant diffusion coefficient is used for | | | -| | all fluid species. | | | -| | | | | -+--------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| diffusivity.constant | Constant species diffusivity - required for | Real | 0 | -| | ``constant`` diffusivity model | | | -| | | | | -+--------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| specific_heat | Species specific heat model. This setting only applies if either | String | | -| | ``fluid.specific_heat = mixture`` or | | | -| | ``solids.specific_heat = mixture`` | | | -| | | | | -| | Options (case-insensitive): | | | -| | | | | -| | * ``constant`` - a constant specific heat is defined for each species | | | -| | and a *mixture* specific heat is computed based on the fluid or | | | -| | particle composition. | | | -| | | | | -| | * ``NASA7-poly`` - the specific heat of each species is defined by one | | | -| | or more polynomials that are a function of temperature, then the | | | -| | *mixture* specific heat is computed based on the fluid or particle | | | -| | composition. | | | -| | | | | -| | NASA7 polynomial format: | | | -| | | | | -| | :math:`c_p(T)/R = \sum_{i=0}^4 a_{i}T^{i}` | | | -| | | | | -+--------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| specific_heat.ignore_discontinuities | MFIX-Exa checks that NASA-7 polynomials are continuous at the specified | Int | 0 | -| | transition temperature(s)(``Tsplit``). However, some polynomials do not | | | -| | have valid high temperature coefficients, for example, liquid water. By | | | -| | setting this keyword to 1, the simulation will only warn that the | | | -| | polynomials are discontinuous. Simulations that use discontinuous | | | -| | polynomials and cross ``Tsplit`` boundaries may fail when computing | | | -| | temperature from enthalpy. Therefore, this option should only be used | | | -| | when the simulation is not expected to cross over the transition | | | -| | temperature. | | | -+--------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| viscosity.molecular | Molecular viscosity model of species. This setting only applies when | String | None | -| | ``[fluid_name].viscosity.molecular`` = ``mixture``. | | | -| | | | | -| | Options: | | | -| | | | | -| | * ``None`` - no viscosity model | | | -| | * ``constant`` - constant viscosity | | | -| | * ``Sutherland`` :cite:p:`suth1893` | | | -| | * ``Reid`` :cite:p:`reid87` | | | -| | | | | -| | See :ref:`viscosity model descriptions ` | | | -| | in fluid section. | | | -+--------------------------------------+-------------------------------------------------------------------------+----------+-----------+ ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| | Description | Type | Default | ++========================+=========================================================================+==========+===========+ +| molecular_weight | Molecular weight of species. Required for mixture molecular weight | Real | 0 | +| | model and when including chemical reactions. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ + + + + +Specific heat +------------- + +The following inputs are defined using the prefix ``species.specific_heat``: + ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| | Description | Type | Default | ++========================+=========================================================================+==========+===========+ +| model | Species specific heat model. This setting only applies if either | String | | +| | ``fluid.specific_heat = mixture`` or | | | +| | ``solids.specific_heat = mixture`` | | | +| | | | | +| | Options (case-insensitive): | | | +| | | | | +| | * ``constant`` - a constant specific heat is defined for each species | | | +| | and a *mixture* specific heat is computed based on the fluid or | | | +| | particle composition. | | | +| | | | | +| | * ``NASA7-poly`` - the specific heat of each species is defined by one | | | +| | or more polynomials that are a function of temperature, then the | | | +| | *mixture* specific heat is computed based on the fluid or particle | | | +| | composition. | | | +| | | | | +| | NASA7 polynomial format: | | | +| | | | | +| | :math:`c_p(T)/R = \sum_{i=0}^4 a_{i}T^{i}` | | | +| | | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| ignore_discontinuities | MFIX-Exa checks that NASA-7 polynomials are continuous at the specified | Int | 0 | +| | transition temperature(s)(``Tsplit``). However, some polynomials do not | | | +| | have valid high temperature coefficients, for example, liquid water. By | | | +| | setting this keyword to 1, the simulation will only warn that the | | | +| | polynomials are discontinuous. Simulations that use discontinuous | | | +| | polynomials and cross ``Tsplit`` boundaries may fail when computing | | | +| | temperature from enthalpy. Therefore, this option should only be used | | | +| | when the simulation is not expected to cross over the transition | | | +| | temperature. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ + + + +The following inputs are defined for each species using the prefix ``species.[species_name].specific_heat``: + ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| | Description | Type | Default | ++========================+=========================================================================+==========+===========+ +| constant | Constant species specific heat. Required for all fluid (solids) | Real | 0 | +| | species if the fluid (solids) ``specific_heat.model = mixture`` and the | | | +| | specific heat model is ``constant`` | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| NASA7.a[i] | Species specific heat polynomial coefficients. Required for all fluid | Reals | None | +| | (solids) species if ``specific_heat.model = mixture`` and the specific | | | +| | heat model is ``NASA7-poly`` | | | +| | | | | +| | * Each polynomial is defined by six coefficients (``a0`` ... ``a5``). | | | +| | Coefficients ``a0`` through ``a4`` are use for computing specific | | | +| | heat while all six coefficients are used to compute enthalpy. | | | +| | The seventh coefficient, ``a6``, may be provided for completeness | | | +| | but is not used as MFIX-Exa presently does not need to compute | | | +| | entropy. | | | +| | | | | +| | * By default, two sets of coefficients are required. The coefficients | | | +| | * Typically, two sets of coefficients are used. The coefficients | | | +| | define two polynomials used to compute the specific heat and | | | +| | enthalpy across low and high temperatures. The transition temperature | | | +| | (``Tsplit``) defines the transition from low to high polynomials. | | | +| | | | | +| | * A single polynomial can be used for all temperatures by setting the | | | +| | transition temperature to -1. | | | +| | * If a single set of coefficients are supplied, they will be used for | | | +| | all temperatures and ``Tsplit`` is not required. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| NASA7.Tsplit | Defines the transition temperature between NASA-7 polynomials. | Reals | 1000 | +| | | | | +| | If there are ``N`` sets of coefficients for ``N`` temperature | | | +| | ranges, then ``N-1`` transition temperatures must be specified. | | | +| | | | | +| | In the standard case of two temperature ranges, a transition | | | +| | temperature of 1000K is assumed if ``Tsplit`` is | | | +| | not provided. | | | +| | | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +The following inputs are defined for each species using the prefix ``species.[species_name]``: + ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| | Description | Type | Default | ++========================+=========================================================================+==========+===========+ +| enthalpy_of_formation | Enthalpy of formation of species. Required only when | Real | 0 | +| | the specific heat model is ``constant`` and chemical reactions | | | +| | are defined. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ + + +Viscosity +--------- + + +The following input is defined using the prefix ``species.viscosity.molecular`` (all species use the same model): + ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| | Description | Type | Default | ++========================+=========================================================================+==========+===========+ +| model | Molecular viscosity model of species. This setting only applies when | String | None | +| | ``[fluid_name].viscosity.molecular`` = ``mixture``. | | | +| | | | | +| | Options: | | | +| | | | | +| | * ``None`` - no viscosity model | | | +| | * ``constant`` - constant viscosity | | | +| | * ``Sutherland`` :cite:p:`suth1893` | | | +| | * ``Reid`` :cite:p:`reid87` | | | +| | | | | +| | See :ref:`viscosity model descriptions ` | | | +| | in fluid section. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ + +The following inputs are defined for each species using the prefix ``species.[species_name].viscosity.molecular``: + ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| | Description | Type | Default | ++========================+=========================================================================+==========+===========+ +| constant | Constant species fluid viscosity. | Real | 0 | +| | | | | +| | A value is required for ``constant`` species viscosity model. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| Sutherland.T_ref | Sutherland model reference temperature for species. | Real | 0 | +| | | | | +| | A value is required for ``Sutherland`` species viscosity model. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| Sutherland.mu_ref | Sutherland model reference viscosity at T_ref for species. | Real | 0 | +| | | | | +| | A value is required for ``Sutherland`` species viscosity model. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| Sutherland.S | Sutherland model temperature for species. | Real | 0 | +| | | | | +| | A value is required for ``Sutherland`` species viscosity model. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| Reid.A | Reid model constants for species. | Real | 0 | +| Reid.B | | | | +| Reid.C | Values are required for ``Reid`` species viscosity model. | | | +| Reid.D | | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ + + +Density +------- + The following inputs are defined for each species using the prefix ``species.[species_name]``: +---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ | | Description | Type | Default | +=======================================+=========================================================================+==========+===========+ -| molecular_weight | Molecular weight of species. Required for mixture molecular weight | Real | 0 | -| | model and when including chemical reactions. | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| specific_heat.constant | Constant species specific heat. Required for all fluid (solids) | Real | 0 | -| | species if the fluid (solids) ``specific_heat = mixture`` and the | | | -| | specific heat model is ``constant`` | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| specific_heat.NASA7.a[i] | Species specific heat polynomial coefficients. Required for all fluid | Reals | None | -| | (solids) species if the fluid (solids) ``specific_heat = mixture`` | | | -| | and the specific heat model is ``NASA7-poly`` | | | -| | | | | -| | * Each polynomial is defined by six coefficients (``a0`` ... ``a5``). | | | -| | Coefficients ``a0`` through ``a4`` are use for computing specific | | | -| | heat while all six coefficients are used to compute enthalpy. | | | -| | The seventh coefficient, ``a6``, may be provided for completeness | | | -| | but is not used as MFIX-Exa presently does not need to compute | | | -| | entropy. | | | -| | | | | -| | * Typically, two sets of coefficients are used. The coefficients | | | -| | define two polynomials used to compute the specific heat and | | | -| | enthalpy across low and high temperatures. The transition temperature | | | -| | (``Tsplit``) defines the transition from low to high polynomials. | | | -| | | | | -| | * If a single set of coefficients are supplied, they will be used for | | | -| | all temperatures and ``Tsplit`` is not required. | | | -| | | | | -| | * Three or more polynomials can be used by defining multiple transition | | | -| | temperatures. | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| specific_heat.NASA7.Tsplit | Defines the transition temperature between NASA-7 polynomials. | Reals | 1000 | -| | | | | -| | If there are ``N`` sets of coefficients for ``N`` temperature | | | -| | ranges, then ``N-1`` transition temperatures must be specified. | | | -| | | | | -| | In the standard case of two temperature ranges, a transition | | | -| | temperature of 1000K is assumed if ``Tsplit`` is | | | -| | not provided. | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| enthalpy_of_formation | Enthalpy of formation of species. Required only when | Real | 0 | -| | the specific heat model is ``constant`` and chemical reactions | | | -| | are defined. | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| viscosity.molecular.constant | Constant species fluid viscosity. | Real | 0 | -| | | | | -| | A value is required for ``constant`` species viscosity model. | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| viscosity.molecular.Sutherland.T_ref | Sutherland model reference temperature for species. | Real | 0 | -| | | | | -| | A value is required for ``Sutherland`` species viscosity model. | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| viscosity.molecular.Sutherland.mu_ref | Sutherland model reference viscosity at T_ref for species. | Real | 0 | -| | | | | -| | A value is required for ``Sutherland`` species viscosity model. | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| viscosity.molecular.Sutherland.S | Sutherland model temperature for species. | Real | 0 | -| | | | | -| | A value is required for ``Sutherland`` species viscosity model. | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| viscosity.molecular.Reid.A | Reid model constants for species. | Real | 0 | -| viscosity.molecular.Reid.B | | | | -| viscosity.molecular.Reid.C | Values are required for ``Reid`` species viscosity model. | | | -| viscosity.molecular.Reid.D | | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ | density | Constant species density (only used for solid phase species). | Real | 0. | | | | | | | | Needed for all solid species if | | | @@ -189,7 +244,7 @@ local species concentrations do not affect the fluid. # ----------------------------------------------------------------------- species.solve = N2 O2 - species.diffusivity = constant + species.diffusivity.model = constant species.diffusivity.constant = 1.9e-5 @@ -197,7 +252,7 @@ local species concentrations do not affect the fluid. # ----------------------------------------------------------------------- fluid.solve = fluid - fluid.viscosity.molecular = constant + fluid.viscosity.molecular.model = constant fluid.viscosity.molecular.constant = 2.0e-5 fluid.species = N2 O2 @@ -262,10 +317,10 @@ outflow boundary condition pressure which is set here to 1 atmosphere. # ----------------------------------------------------------------------- species.solve = N2 O2 - species.diffusivity = constant + species.diffusivity.model = constant species.diffusivity.constant = 1.9e-5 - species.specific_heat = NASA7-poly + species.specific_heat.model = NASA7-poly # Oxygen species.O2.molecular_weight = 31.99880e-3 @@ -290,10 +345,10 @@ outflow boundary condition pressure which is set here to 1 atmosphere. # ----------------------------------------------------------------------- fluid.solve = fluid - fluid.viscosity.molecular = constant + fluid.viscosity.molecular.model = constant fluid.viscosity.molecular.constant = 2.0e-5 - fluid.thermal_conductivity = constant + fluid.thermal_conductivity.model = constant fluid.thermal_conductivity.constant = 0.026 fluid.specific_heat = mixture diff --git a/docs/source_docs/user_guide/inputs/time_stepping.rst b/docs/source_docs/user_guide/inputs/time_stepping.rst index 631924b8d84f0a66716d33d384b41c567fa9c52e..b91d44d57116c7b6e586300abf29c3651ed23b75 100644 --- a/docs/source_docs/user_guide/inputs/time_stepping.rst +++ b/docs/source_docs/user_guide/inputs/time_stepping.rst @@ -101,12 +101,6 @@ The following inputs are defined using the prefix ``mfix``: +----------------------+-----------------------------------------------------------------------+-------------+--------------+ | fixed_dt | If > 0, use a fixed time step. | Real | 0 | +----------------------+-----------------------------------------------------------------------+-------------+--------------+ -| 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`` | | | -| | * ignored if ``mfix.fixed_dt = 1`` | | | -+----------------------+-----------------------------------------------------------------------+-------------+--------------+ | dt_min | Abort if ``dt`` gets smaller than this value. | Real | 1.e-6 | +----------------------+-----------------------------------------------------------------------+-------------+--------------+ | dt_max | Maximum value of ``dt`` if ``fixed_dt`` is not set. | Real | 1.e14 | @@ -138,3 +132,7 @@ The following inputs are defined using the prefix ``mfix`` and are only relevant +-----------------------+-----------------------------------------------------------------------+-------------+------------+ | steady_state_maxiter | Maximum number of allowed iterations to converge to steady state. | Int | 100000000 | +-----------------------+-----------------------------------------------------------------------+-------------+------------+ + + +.. sec:InputsInitialization + diff --git a/docs/source_docs/user_guide/run-time_inputs.rst b/docs/source_docs/user_guide/run-time_inputs.rst index ba9655575af792de2d5dfe84526970fd56f4ed79..955d4e54c2fe45450797f5f0168a30812dcd2a07 100644 --- a/docs/source_docs/user_guide/run-time_inputs.rst +++ b/docs/source_docs/user_guide/run-time_inputs.rst @@ -39,21 +39,21 @@ keywords such as ``mfix``, ``amr``, ``geometry``, ``nodal_proj`` etc. :maxdepth: 1 :titlesonly: - inputs/initialization - inputs/time_stepping - inputs/mesh_and_gridding - inputs/model_options - inputs/multigrid_solvers inputs/domain inputs/geometry + inputs/model_options inputs/species inputs/fluid_model inputs/solids_model - inputs/chemical_reactions inputs/regions inputs/initial_conditions inputs/boundary_conditions + inputs/chemical_reactions inputs/porous_media inputs/output + inputs/initialization + inputs/time_stepping + inputs/gridding + inputs/multigrid_solvers inputs/advanced inputs/mpmd