From edf0ee9f7b810041df25f59bc1f621a689a6e210 Mon Sep 17 00:00:00 2001 From: Jordan Musser Date: Sun, 25 Jan 2026 10:36:53 -0500 Subject: [PATCH 1/8] Reorg to improve GUI workflow --- .../user_guide/inputs/advanced.rst | 3 - docs/source_docs/user_guide/inputs/domain.rst | 63 ++++++ .../user_guide/inputs/fluid_model.rst | 20 -- .../user_guide/inputs/geometry.rst | 22 +- .../{mesh_and_gridding.rst => gridding.rst} | 199 +++++++----------- .../user_guide/inputs/initialization.rst | 13 -- .../user_guide/inputs/model_options.rst | 99 ++++++--- .../inputs/output/checkpointing.rst | 20 +- .../user_guide/inputs/solids_model.rst | 4 - .../source_docs/user_guide/inputs/species.rst | 10 - .../user_guide/inputs/time_stepping.rst | 4 + .../user_guide/run-time_inputs.rst | 12 +- 12 files changed, 259 insertions(+), 210 deletions(-) rename docs/source_docs/user_guide/inputs/{mesh_and_gridding.rst => gridding.rst} (86%) diff --git a/docs/source_docs/user_guide/inputs/advanced.rst b/docs/source_docs/user_guide/inputs/advanced.rst index 3a55d2e..3b83a9e 100644 --- a/docs/source_docs/user_guide/inputs/advanced.rst +++ b/docs/source_docs/user_guide/inputs/advanced.rst @@ -93,9 +93,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 f49b9c8..4472854 100644 --- a/docs/source_docs/user_guide/inputs/domain.rst +++ b/docs/source_docs/user_guide/inputs/domain.rst @@ -29,3 +29,66 @@ 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 | 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 + # ------------------------------------------------------------- + arm.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 dd689c5..857d7f7 100644 --- a/docs/source_docs/user_guide/inputs/fluid_model.rst +++ b/docs/source_docs/user_guide/inputs/fluid_model.rst @@ -3,19 +3,6 @@ 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 | -| | ``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``. | | | -+--------------------------------------------+-------------------------------------------------------------+--------+----------+ - - 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. @@ -238,13 +225,6 @@ a single fluid; therefore, it is common to name the fluid ``fluid``. This is ill | | 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 | | | +--------------------------------------------+----------------------------------------------------------------+--------+----------+ diff --git a/docs/source_docs/user_guide/inputs/geometry.rst b/docs/source_docs/user_guide/inputs/geometry.rst index 63582d8..c8a7bd2 100644 --- a/docs/source_docs/user_guide/inputs/geometry.rst +++ b/docs/source_docs/user_guide/inputs/geometry.rst @@ -340,7 +340,7 @@ in the ``regions`` section, then they are used to specify two no-slip wall bound .. _InputsGeometry_CSG: -Constructive solid geometry (CSG) +CSG (Constructive solid geometry) --------------------------------- * A constructive solid geometry can be created using OpenSCAD. @@ -368,8 +368,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. @@ -390,3 +390,19 @@ 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. + + +Chechpoint 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``. | | | ++----------------------+-----------------------------------------------------------------------+-------------+--------------+ diff --git a/docs/source_docs/user_guide/inputs/mesh_and_gridding.rst b/docs/source_docs/user_guide/inputs/gridding.rst similarity index 86% rename from docs/source_docs/user_guide/inputs/mesh_and_gridding.rst rename to docs/source_docs/user_guide/inputs/gridding.rst index cdd2078..35a76cb 100644 --- a/docs/source_docs/user_guide/inputs/mesh_and_gridding.rst +++ b/docs/source_docs/user_guide/inputs/gridding.rst @@ -1,79 +1,93 @@ .. 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* | Int | 32 | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| n_cell | Number of cells at level 0 in each coordinate direction. | Ints | 0 0 0 | +| 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 | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| blocking_factor_x | Each grid in *X* must be divisible by ``blocking_factor_x`` | Int | 8 | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| blocking_factor_y | Each grid in *Y* must be divisible by ``blocking_factor_y`` | Int | 8 | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| blocking_factor_z | Each grid in *Z* must be divisible by ``blocking_factor_z`` | Int | 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:: +The following inputs are defined using the prefix ``mfix``: - \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]}} ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ +| | Description | Type | Default | ++======================+=======================================================================+=============+===========+ +| grid_pruning | Remove all covered grids from the base mesh; this may result in | Bool | false | +| | disjoined grids | | | ++----------------------+-----------------------------------------------------------------------+-------------+-----------+ + +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 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 | 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 | 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,6 +96,9 @@ 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. | | | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ @@ -89,6 +106,7 @@ mesh refinement algorithm and are only applicable when ``amr.max_level > 0``. | | to ensure coarse/fine boundaries are not too close to tagged cells. | | | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ + .. caution:: **Mesh refinement limitations:** @@ -98,6 +116,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 +188,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`` | Int | 8 | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| blocking_factor_y | Each grid in *Y* must be divisible by ``blocking_factor_y`` | Int | 8 | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| blocking_factor_z | Each grid in *Z* must be divisible by ``blocking_factor_z`` | Int | 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 | 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 | 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 55c6949..3cc0cca 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 80dd9c8..3cd2339 100644 --- a/docs/source_docs/user_guide/inputs/model_options.rst +++ b/docs/source_docs/user_guide/inputs/model_options.rst @@ -1,37 +1,80 @@ Model options ============= +Enabling the species solver +--------------------------- + +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 | +| | ``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``. | | | ++--------------------------------------------+-------------------------------------------------------------+--------+----------+ + + +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. | | | ++------------------------------------------+--------------------------------------------------------------+----------+----------+ + +The following input is defined using the prefix ``mfix``: + ++-------------------------+------------------------------------------------------------------------+----------+-----------+ +| | Description | Type | Default | ++=========================+========================================================================+==========+===========+ +| solve_species | Enable the MFIX species solver. | Int | 0 | ++-------------------------+------------------------------------------------------------------------+----------+-----------+ + The following inputs are defined using the prefix ``mfix``: -+------------------------+----------------------------------------------------------------------------+----------+---------------------+ -| | Description | Type | Default | -+========================+============================================================================+==========+=====================+ -| gravity | Gravity vector [required] | Reals | 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 [required] | Reals | 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. | | | +| | | | | ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ +| 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. | | | +| | | | | ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ + .. note:: The thermodynamic pressure is a scalar value, not a scalar field. This is a consequence of diff --git a/docs/source_docs/user_guide/inputs/output/checkpointing.rst b/docs/source_docs/user_guide/inputs/output/checkpointing.rst index bb56591..9eabcec 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 68cf8d4..5e63bbb 100644 --- a/docs/source_docs/user_guide/inputs/solids_model.rst +++ b/docs/source_docs/user_guide/inputs/solids_model.rst @@ -12,10 +12,6 @@ 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 | diff --git a/docs/source_docs/user_guide/inputs/species.rst b/docs/source_docs/user_guide/inputs/species.rst index ebd5c72..b284f56 100644 --- a/docs/source_docs/user_guide/inputs/species.rst +++ b/docs/source_docs/user_guide/inputs/species.rst @@ -4,16 +4,6 @@ Species solver ============== -Enabling the species solver ---------------------------- - -The following input is defined using the prefix ``mfix``: - -+-------------------------+------------------------------------------------------------------------+----------+-----------+ -| | Description | Type | Default | -+=========================+========================================================================+==========+===========+ -| solve_species | Enable the MFIX species solver. | Int | 0 | -+-------------------------+------------------------------------------------------------------------+----------+-----------+ Species definitions ------------------- diff --git a/docs/source_docs/user_guide/inputs/time_stepping.rst b/docs/source_docs/user_guide/inputs/time_stepping.rst index 631924b..806cc91 100644 --- a/docs/source_docs/user_guide/inputs/time_stepping.rst +++ b/docs/source_docs/user_guide/inputs/time_stepping.rst @@ -138,3 +138,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 ba96555..955d4e5 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 -- GitLab From a35d44a35964edf8ee96d4931747fafcb880c566 Mon Sep 17 00:00:00 2001 From: Jordan Musser Date: Sun, 25 Jan 2026 14:42:29 -0500 Subject: [PATCH 2/8] Fix spelling --- docs/source_docs/user_guide/inputs/geometry.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source_docs/user_guide/inputs/geometry.rst b/docs/source_docs/user_guide/inputs/geometry.rst index c8a7bd2..ef1f48a 100644 --- a/docs/source_docs/user_guide/inputs/geometry.rst +++ b/docs/source_docs/user_guide/inputs/geometry.rst @@ -392,7 +392,7 @@ The following inputs are defined using the prefix ``stl``: the documentation may include a tutorial to better demonstrate this feature. -Chechpoint geometry +Checkpoint geometry ------------------- Read EB geometry data from a checkpoint file. -- GitLab From 0873067d4047d60e11470d4855596be970a4ee4d Mon Sep 17 00:00:00 2001 From: Jordan Musser Date: Tue, 27 Jan 2026 10:24:36 -0500 Subject: [PATCH 3/8] Last updates for layout --- .../user_guide/inputs/fluid_model.rst | 13 ++ .../user_guide/inputs/model_options.rst | 200 ++++++++---------- .../user_guide/inputs/solids_model.rst | 4 + 3 files changed, 108 insertions(+), 109 deletions(-) diff --git a/docs/source_docs/user_guide/inputs/fluid_model.rst b/docs/source_docs/user_guide/inputs/fluid_model.rst index 857d7f7..653f57c 100644 --- a/docs/source_docs/user_guide/inputs/fluid_model.rst +++ b/docs/source_docs/user_guide/inputs/fluid_model.rst @@ -3,6 +3,19 @@ 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 | +| | ``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``. | | | ++--------------------------------------------+-------------------------------------------------------------+--------+----------+ + 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. diff --git a/docs/source_docs/user_guide/inputs/model_options.rst b/docs/source_docs/user_guide/inputs/model_options.rst index 3cd2339..126d2e8 100644 --- a/docs/source_docs/user_guide/inputs/model_options.rst +++ b/docs/source_docs/user_guide/inputs/model_options.rst @@ -1,138 +1,120 @@ Model options ============= -Enabling the species solver ---------------------------- - -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 | -| | ``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``. | | | -+--------------------------------------------+-------------------------------------------------------------+--------+----------+ +The following inputs are defined using the prefix ``mfix``: -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 | ++==========================+============================================================================+==========+=====================+ +| gravity | Gravity vector [required] | Reals | 0 0 0 | ++--------------------------+----------------------------------------------------------------------------+----------+---------------------+ -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| | 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. | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ +Enabling solvers +---------------- -The following input is defined using the prefix ``mfix``: -+-------------------------+------------------------------------------------------------------------+----------+-----------+ -| | Description | Type | Default | -+=========================+========================================================================+==========+===========+ -| solve_species | Enable the MFIX species solver. | Int | 0 | -+-------------------------+------------------------------------------------------------------------+----------+-----------+ -The following inputs are defined using the prefix ``mfix``: +The following input is defined using the prefix ``mfix``: +--------------------------+----------------------------------------------------------------------------+----------+---------------------+ | | Description | Type | Default | +==========================+============================================================================+==========+=====================+ -| gravity | Gravity vector [required] | Reals | 0 0 0 | +| enable.fluid | Enable the fluid solver. | Bool | false | +--------------------------+----------------------------------------------------------------------------+----------+---------------------+ -| advect_density | Enable time evolution of fluid density. | Int | 0 | +| enable.solids | Enable the solids solver for DEM or PIC. | Bool | false | +--------------------------+----------------------------------------------------------------------------+----------+---------------------+ -| advect_enthalpy | Enable time evolution of fluid temperature and enthalpy. | Int | 0 | +| solve_species | Enable the MFIX species solver. | 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. | | | -| | | | | +| advect_enthalpy | Enable time evolution of fluid temperature and enthalpy. | Int | 0 | +--------------------------+----------------------------------------------------------------------------+----------+---------------------+ -| 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. | | | -| | | | | +| advect_density | Enable time evolution of fluid density. | Int | 0 | +--------------------------+----------------------------------------------------------------------------+----------+---------------------+ -.. note:: - The thermodynamic pressure is a scalar value, not a scalar field. This is a consequence of - the low Mach number assumption. +Fluid solver +------------ +The following input is defined using the prefix ``mfix``: -Fluid discretization --------------------- ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| | 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. | | | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ +| 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. | | | ++---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ -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. | | | -+---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ +.. note:: + The thermodynamic pressure is a scalar value, not a scalar field. This is a consequence of + the low Mach number assumption. Additional available constraints diff --git a/docs/source_docs/user_guide/inputs/solids_model.rst b/docs/source_docs/user_guide/inputs/solids_model.rst index 5e63bbb..68cf8d4 100644 --- a/docs/source_docs/user_guide/inputs/solids_model.rst +++ b/docs/source_docs/user_guide/inputs/solids_model.rst @@ -12,6 +12,10 @@ 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 | -- GitLab From 8b9c46ad9abb1138e33d78191414a43e676e86fd Mon Sep 17 00:00:00 2001 From: Jordan Musser Date: Mon, 2 Feb 2026 17:40:44 -0500 Subject: [PATCH 4/8] Working in changes for GUI flow --- docs/source_docs/user_guide/inputs/domain.rst | 4 +- .../user_guide/inputs/fluid_model.rst | 546 ++++++++++-------- .../user_guide/inputs/geometry.rst | 20 +- .../user_guide/inputs/gridding.rst | 105 +--- .../user_guide/inputs/model_options.rst | 8 +- .../user_guide/inputs/solids_model.rst | 2 +- .../source_docs/user_guide/inputs/species.rst | 332 ++++++----- .../user_guide/inputs/time_stepping.rst | 6 - 8 files changed, 548 insertions(+), 475 deletions(-) diff --git a/docs/source_docs/user_guide/inputs/domain.rst b/docs/source_docs/user_guide/inputs/domain.rst index 113dd07..9320c20 100644 --- a/docs/source_docs/user_guide/inputs/domain.rst +++ b/docs/source_docs/user_guide/inputs/domain.rst @@ -42,7 +42,7 @@ The following inputs are defined using the prefix ``amr``: | | Description | Type | Default | | | | | | +======================+=======================================================================+=============+===========+ -| n_cell | Number of cells at level 0 in each coordinate direction. | Ints | 0 0 0 | +| 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 @@ -90,5 +90,3 @@ The result is a uniform mesh spacing of :math:`0.125` *m* in all three direction .. 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 653f57c..5203f6c 100644 --- a/docs/source_docs/user_guide/inputs/fluid_model.rst +++ b/docs/source_docs/user_guide/inputs/fluid_model.rst @@ -15,11 +15,22 @@ The following inputs are defined using the prefix ``fluid``: | | 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 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)}` .. |Reid_4parm_Eq| replace:: :math:`\mu(T) = Ae^{\left(\frac{B}{T} + CT + DT^2 \right)}` @@ -29,218 +40,306 @@ 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 | -| | | | | -| | * Setting ``Tsplit = -1`` signifies that a single | | | -| | polynomial defines the specific heat and enthalpy for all | | | -| | temperatures. | | | -| | | | | -| | * Specifying ``N`` temperatures signifies that ``N+1`` | | | -| | polynomials are used to define the specific heat | | | -| | and enthalpy. | | | -| | | | | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| 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. | | | -| | | | | -+--------------------------------------------+----------------------------------------------------------------+--------+----------+ -| 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 | +| | | | | +| | * Setting ``Tsplit = -1`` signifies that a single | | | +| | polynomial defines the specific heat and enthalpy for all | | | +| | temperatures. | | | +| | | | | +| | * Specifying ``N`` temperatures signifies that ``N+1`` | | | +| | polynomials are used to define the specific heat | | | +| | and enthalpy. | | | +| | | | | +| | | | | ++------------------------------+----------------------------------------------------------------+--------+----------+ +| 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 +-------------------- + +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`` - the fluid has a constant thermal | | | +| | conductivity model | | | +| | | | | +| | A thermal conductivity model is required if advecting | | | +| | enthalpy. | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ +| constant | Constant fluid thermal conductivity. | Real | 0 | +| | A value is required for ``constant`` thermal conductivity | | | +| | model. | | | +| | | | | ++-----------------------+----------------------------------------------------------------+--------+----------+ + + +Newton sovler +------------- + +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 @@ -269,7 +368,7 @@ are not solved. # ----------------------------------------------------------------------- fluid.solve = fluid0 - fluid0.viscosity.molecular = constant + fluid0.viscosity.molecular.model = constant fluid0.viscosity.molecular.constant = 1.8e-5 @@ -323,7 +422,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 @@ -381,10 +480,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 @@ -421,18 +520,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 4bc5761..b1f0242 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 @@ -355,3 +352,20 @@ The following inputs are defined using the prefix ``mfix``. | | :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/gridding.rst b/docs/source_docs/user_guide/inputs/gridding.rst index 2800f09..fdf2fe8 100644 --- a/docs/source_docs/user_guide/inputs/gridding.rst +++ b/docs/source_docs/user_guide/inputs/gridding.rst @@ -12,32 +12,23 @@ The following inputs are defined using the prefix ``amr``: +----------------------+-----------------------------------------------------------------------+-------------+-----------+ | | Description | Type | Default | +======================+=======================================================================+=============+===========+ -| max_grid_size_x | Maximum number of cells at level 0 in each grid in *X* | Int | 32 | +| max_grid_size_x | Maximum number of cells at level 0 in each grid in *X* | Ints | 32 | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| max_grid_size_y | Maximum number of cells at level 0 in each grid in *Y* | Int | 32 | +| 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* | Int | 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`` | Int | 8 | +| 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`` | Int | 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`` | Int | 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 following inputs are defined using the prefix ``mfix``: - -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ -| | Description | Type | Default | -+======================+=======================================================================+=============+===========+ -| n_cell | Number of cells at level 0 in each coordinate direction. | Ints<3> | 0 0 0 | -+----------------------+-----------------------------------------------------------------------+-------------+-----------+ - 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 @@ -63,7 +54,7 @@ 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 | 1024000 8 8 | +| 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``: @@ -71,7 +62,7 @@ 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 | 1024000 8 8 | +| 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`` | | | +----------------------+-----------------------------------------------------------------------+-------------+--------------+ @@ -101,7 +92,7 @@ mesh refinement algorithm and are only applicable when ``amr.max_level > 0``. | 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. | | | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ @@ -187,81 +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. | | | +----------------------+-----------------------------------------------------------------------+-------------+-----------+ -<<<<<<< HEAD:docs/source_docs/user_guide/inputs/gridding.rst -======= - - ------ - -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/model_options.rst b/docs/source_docs/user_guide/inputs/model_options.rst index 451e27f..1355db8 100644 --- a/docs/source_docs/user_guide/inputs/model_options.rst +++ b/docs/source_docs/user_guide/inputs/model_options.rst @@ -79,6 +79,12 @@ The following input is defined using the prefix ``mfix``: | | 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. | | | | | | | | @@ -92,8 +98,6 @@ The following input is defined using the prefix ``mfix``: +---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ | 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 | +---------------------------------+----------------------------------------------------------------------------+-------------+---------------------+ diff --git a/docs/source_docs/user_guide/inputs/solids_model.rst b/docs/source_docs/user_guide/inputs/solids_model.rst index 68cf8d4..7a076dd 100644 --- a/docs/source_docs/user_guide/inputs/solids_model.rst +++ b/docs/source_docs/user_guide/inputs/solids_model.rst @@ -30,7 +30,7 @@ models. The following inputs are defined with the prefix ``solids``: | | be defined by the user. | | | | | | | | +------------------------------------------+--------------------------------------------------------------+----------+----------+ -| specific_heat | Specify which specific heat model to use for solids. | String | constant | +| specific_heat.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 | | | diff --git a/docs/source_docs/user_guide/inputs/species.rst b/docs/source_docs/user_guide/inputs/species.rst index b284f56..2f30522 100644 --- a/docs/source_docs/user_guide/inputs/species.rst +++ b/docs/source_docs/user_guide/inputs/species.rst @@ -4,144 +4,208 @@ Species solver ============== +The following inputs are defined using the prefix ``species``: -Species definitions -------------------- ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| | 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. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ -The following inputs are defined using the prefix ``species``: -+--------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| | 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. | | | -+--------------------------------------+-------------------------------------------------------------------------+----------+-----------+ +Diffusivity +----------- + +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 | ++========================+=========================================================================+==========+===========+ +| 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 | | | +| | 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. | | | +| | | | | +| | * Three or more polynomials can be used by defining multiple transition | | | +| | temperatures. | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| NASA7.Tsplit | Defines the transition temperature between NASA-7 polynomials. | Reals | 1000 | +| | | | | +| | * Setting ``Tsplit = -1`` signifies that a single polynomial defines | | | +| | the specific heat and enthalpy for all temperatures. | | | +| | | | | +| | * Specifying ``N`` temperatures signifies that ``N+1`` polynomials are | | | +| | used to define the specific heat and enthalpy. | | | +| | | | | ++------------------------+-------------------------------------------------------------------------+----------+-----------+ + + +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 inputs are defined for each species using the prefix ``species.viscosity.molecular``: + ++------------------------+-------------------------------------------------------------------------+----------+-----------+ +| | 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. | | | -| | | | | -| | * By default, two sets of coefficients are required. 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. | | | -| | | | | -| | * 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 | -| | | | | -| | * Setting ``Tsplit = -1`` signifies that a single polynomial defines | | | -| | the specific heat and enthalpy for all temperatures. | | | -| | | | | -| | * Specifying ``N`` temperatures signifies that ``N+1`` polynomials are | | | -| | used to define the specific heat and enthalpy. | | | -| | | | | -+---------------------------------------+-------------------------------------------------------------------------+----------+-----------+ -| 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 | | | @@ -179,7 +243,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 @@ -187,7 +251,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 @@ -252,10 +316,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 @@ -280,10 +344,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 806cc91..b91d44d 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 | -- GitLab From bc6ec65a862458d4d3fec7028a8114404aaf5fc4 Mon Sep 17 00:00:00 2001 From: Jordan Musser Date: Tue, 3 Feb 2026 13:02:06 -0500 Subject: [PATCH 5/8] Fix typo --- docs/source_docs/user_guide/inputs/fluid_model.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source_docs/user_guide/inputs/fluid_model.rst b/docs/source_docs/user_guide/inputs/fluid_model.rst index 5203f6c..94a49c0 100644 --- a/docs/source_docs/user_guide/inputs/fluid_model.rst +++ b/docs/source_docs/user_guide/inputs/fluid_model.rst @@ -324,7 +324,7 @@ The following inputs are defined using the prefix ``[fluid_name].thermal_conduct +-----------------------+----------------------------------------------------------------+--------+----------+ -Newton sovler +Newton solver ------------- The following inputs are defined using the prefix ``fluid`` and control the convergence criteria -- GitLab From 87b49eee5ae4c006fe1514eb4c59ffe722e2b6b5 Mon Sep 17 00:00:00 2001 From: Jordan Musser Date: Tue, 3 Feb 2026 15:08:06 -0500 Subject: [PATCH 6/8] Adding more keywords --- .../user_guide/inputs/advanced.rst | 3 + .../user_guide/inputs/model_options.rst | 254 +++++++++++------- 2 files changed, 153 insertions(+), 104 deletions(-) diff --git a/docs/source_docs/user_guide/inputs/advanced.rst b/docs/source_docs/user_guide/inputs/advanced.rst index 3b83a9e..39aeedf 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 diff --git a/docs/source_docs/user_guide/inputs/model_options.rst b/docs/source_docs/user_guide/inputs/model_options.rst index 1355db8..73291b2 100644 --- a/docs/source_docs/user_guide/inputs/model_options.rst +++ b/docs/source_docs/user_guide/inputs/model_options.rst @@ -33,8 +33,8 @@ The following input is defined using the prefix ``mfix``: +--------------------------+----------------------------------------------------------------------------+----------+---------------------+ -Fluid solver ------------- +Fluid options +------------- The following input is defined using the prefix ``mfix``: @@ -119,56 +119,153 @@ The following input is defined using the prefix ``mfix``: the low Mach number assumption. -Additional available constraints --------------------------------- + + +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. | ++---------------------+---------------------------------------------------------------------------+-------------+-----------+ + + + +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. +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 | | | +| | | | | ++-------------------+-----------------------------------------------------------------------+-------------+--------------+ + + + + Deposition scheme ------------------ +^^^^^^^^^^^^^^^^^ The following inputs are defined using the prefix ``mfix``: @@ -287,9 +384,8 @@ 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``: @@ -322,83 +418,33 @@ The following inputs are defined using the prefix ``mfix``: +---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ +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:`\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 | | | | -+--------------------------+-----------------------------------------------------------------------------------------+-------------+-----------+ -| 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 | ++---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ -- GitLab From 2306bba3b22476558d25df370ecb5f7b3d147d39 Mon Sep 17 00:00:00 2001 From: Jordan Musser Date: Fri, 6 Feb 2026 11:20:39 -0500 Subject: [PATCH 7/8] Update and add new keywords --- .../user_guide/inputs/fluid_model.rst | 29 +- .../user_guide/inputs/model_options.rst | 58 ++-- .../user_guide/inputs/solids_model.rst | 314 +++++++++++------- 3 files changed, 242 insertions(+), 159 deletions(-) diff --git a/docs/source_docs/user_guide/inputs/fluid_model.rst b/docs/source_docs/user_guide/inputs/fluid_model.rst index 94a49c0..5607729 100644 --- a/docs/source_docs/user_guide/inputs/fluid_model.rst +++ b/docs/source_docs/user_guide/inputs/fluid_model.rst @@ -303,6 +303,10 @@ The following inputs are defined using the prefix ``[fluid_name]``. 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``. +-----------------------+----------------------------------------------------------------+--------+----------+ @@ -311,16 +315,29 @@ The following inputs are defined using the prefix ``[fluid_name].thermal_conduct | model | Specify which thermal conductivity model to use for | String | None | | | fluid. Options: | | | | | | | | -| | * ``constant`` - the fluid has a constant thermal | | | -| | conductivity model | | | +| | * ``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 | Constant fluid thermal conductivity. | Real | 0 | -| | A value is required for ``constant`` thermal conductivity | | | -| | model. | | | -| | | | | +| constant.value | 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 | +-----------------------+----------------------------------------------------------------+--------+----------+ diff --git a/docs/source_docs/user_guide/inputs/model_options.rst b/docs/source_docs/user_guide/inputs/model_options.rst index 73291b2..6f89978 100644 --- a/docs/source_docs/user_guide/inputs/model_options.rst +++ b/docs/source_docs/user_guide/inputs/model_options.rst @@ -267,32 +267,28 @@ The following input is defined using the prefix ``mfix.convection``: Deposition scheme ^^^^^^^^^^^^^^^^^ -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. | | | -+----------------------------+--------------------------------------------------------------------+-----------+---------------+ +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: @@ -387,18 +383,18 @@ the *Y*-direction weights. The right image shows the resulting composite weights 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. | | | @@ -408,11 +404,11 @@ 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. | | | +---------------------------------+-----------------------------------------------------------------------+-------------+--------------+ diff --git a/docs/source_docs/user_guide/inputs/solids_model.rst b/docs/source_docs/user_guide/inputs/solids_model.rst index 7a076dd..5483803 100644 --- a/docs/source_docs/user_guide/inputs/solids_model.rst +++ b/docs/source_docs/user_guide/inputs/solids_model.rst @@ -3,133 +3,203 @@ 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.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}` | | | -| | | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| 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. | | | -| | | | | -| | * Setting ``Tsplit = -1`` signifies that a single polynomial | | | -| | defines the specific heat and enthalpy for all | | | -| | temperatures. | | | -| | | | | -| | * Specifying ``N`` temperatures signifies that ``N+1`` | | | -| | polynomials are used to define the specific heat and | | | -| | enthalpy. | | | -+------------------------------------------+--------------------------------------------------------------+----------+----------+ -| 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. | | | +| | | | | +| | * Setting ``Tsplit = -1`` signifies that a single polynomial | | | +| | defines the specific heat and enthalpy for all | | | +| | temperatures. | | | +| | | | | +| | * Specifying ``N`` temperatures signifies that ``N+1`` | | | +| | polynomials are used to define the specific heat and | | | +| | enthalpy. | | | ++----------------------------+--------------------------------------------------------------+----------+----------+ + +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 | 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 -- GitLab From a4750e416ecf412b14eb106bdd259caa7b9fd38a Mon Sep 17 00:00:00 2001 From: Charles G Waldman Date: Mon, 9 Feb 2026 11:11:09 -0600 Subject: [PATCH 8/8] checkpoint --- docs/source_docs/user_guide/inputs/domain.rst | 2 +- docs/source_docs/user_guide/inputs/fluid_model.rst | 11 ++++++----- docs/source_docs/user_guide/inputs/model_options.rst | 2 +- docs/source_docs/user_guide/inputs/solids_model.rst | 2 +- docs/source_docs/user_guide/inputs/species.rst | 2 +- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/source_docs/user_guide/inputs/domain.rst b/docs/source_docs/user_guide/inputs/domain.rst index 9320c20..f5fc9af 100644 --- a/docs/source_docs/user_guide/inputs/domain.rst +++ b/docs/source_docs/user_guide/inputs/domain.rst @@ -75,7 +75,7 @@ The result is a uniform mesh spacing of :math:`0.125` *m* in all three direction # Define the maximum level of refinement and number of cells # ------------------------------------------------------------- - arm.n_cell = 32 8 8 + amr.n_cell = 32 8 8 .. _fig_basic_mesh_ex: diff --git a/docs/source_docs/user_guide/inputs/fluid_model.rst b/docs/source_docs/user_guide/inputs/fluid_model.rst index 973b6d1..d1a601a 100644 --- a/docs/source_docs/user_guide/inputs/fluid_model.rst +++ b/docs/source_docs/user_guide/inputs/fluid_model.rst @@ -9,7 +9,7 @@ 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 | | | @@ -22,9 +22,10 @@ The following inputs are defined using the prefix ``fluid``: | | for additional details. | | | +--------------------------------------------+-------------------------------------------------------------+--------+----------+ -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. +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. Viscosity @@ -324,7 +325,7 @@ The following inputs are defined using the prefix ``[fluid_name].thermal_conduct | | A thermal conductivity model is required if advecting | | | | | enthalpy. | | | +-----------------------+----------------------------------------------------------------+--------+----------+ -| constant.value | Constant fluid thermal conductivity. | Real | None | +| constant | Value of constant fluid thermal conductivity. | Real | None | +-----------------------+----------------------------------------------------------------+--------+----------+ | Sutherland.T_ref | Sutherland model reference temperature. | Real | None | +-----------------------+----------------------------------------------------------------+--------+----------+ diff --git a/docs/source_docs/user_guide/inputs/model_options.rst b/docs/source_docs/user_guide/inputs/model_options.rst index 6822709..2775c3c 100644 --- a/docs/source_docs/user_guide/inputs/model_options.rst +++ b/docs/source_docs/user_guide/inputs/model_options.rst @@ -85,7 +85,7 @@ The following input is defined using the prefix ``mfix``: | | * 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 | +| redistribution_type | Algorithms to address the *'small cell problem'* associated with | String | StateRedist | | | explicit cut-cell algorithms. | | | | | | | | | | Options: | | | diff --git a/docs/source_docs/user_guide/inputs/solids_model.rst b/docs/source_docs/user_guide/inputs/solids_model.rst index 44d3ed6..da3eeaf 100644 --- a/docs/source_docs/user_guide/inputs/solids_model.rst +++ b/docs/source_docs/user_guide/inputs/solids_model.rst @@ -128,7 +128,7 @@ The following inputs are defined using the prefix ``[solid_name].thermal_conduct | | A thermal conductivity model is required if advecting | | | | | enthalpy. | | | +-----------------------+----------------------------------------------------------------+--------+----------+ -| constant.value | Constant thermal conductivity. | Real | None | +| constant | Value of constant thermal conductivity. | Real | None | +-----------------------+----------------------------------------------------------------+--------+----------+ | Sutherland.T_ref | Sutherland model reference temperature. | Real | None | +-----------------------+----------------------------------------------------------------+--------+----------+ diff --git a/docs/source_docs/user_guide/inputs/species.rst b/docs/source_docs/user_guide/inputs/species.rst index 4233759..d0a0158 100644 --- a/docs/source_docs/user_guide/inputs/species.rst +++ b/docs/source_docs/user_guide/inputs/species.rst @@ -152,7 +152,7 @@ Viscosity --------- -The following inputs are defined for each species using the prefix ``species.viscosity.molecular``: +The following input is defined using the prefix ``species.viscosity.molecular`` (all species use the same model): +------------------------+-------------------------------------------------------------------------+----------+-----------+ | | Description | Type | Default | -- GitLab