From 4fdc759a96ce1a9a44838b4bdc4c397dc4922900 Mon Sep 17 00:00:00 2001 From: Charles G Waldman Date: Wed, 10 Dec 2025 13:24:41 -0600 Subject: [PATCH 1/4] clarify --- docs/source_docs/user_guide/inputs/porous_media.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source_docs/user_guide/inputs/porous_media.rst b/docs/source_docs/user_guide/inputs/porous_media.rst index 0de4984..6ab3c1f 100644 --- a/docs/source_docs/user_guide/inputs/porous_media.rst +++ b/docs/source_docs/user_guide/inputs/porous_media.rst @@ -3,7 +3,7 @@ Porous media definitions ======================== -Homogeneous porous media are modeled by the addition of a momentum +Homogeneous porous media are modeled by the introduction of a momentum source term, :math:`\boldsymbol{S}_{pm}`, to the fluid momentum equation. .. math:: -- GitLab From 57dcebd3fd51c224774b730f99f6d81990519395 Mon Sep 17 00:00:00 2001 From: Charles G Waldman Date: Wed, 10 Dec 2025 13:24:58 -0600 Subject: [PATCH 2/4] whitespace --- .../references/fluids/FluidEquations.rst | 61 +++++++++---------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/docs/source_docs/references/fluids/FluidEquations.rst b/docs/source_docs/references/fluids/FluidEquations.rst index e74da21..456cbb8 100644 --- a/docs/source_docs/references/fluids/FluidEquations.rst +++ b/docs/source_docs/references/fluids/FluidEquations.rst @@ -22,18 +22,18 @@ Conservation of fluid mass: .. math:: \frac{\partial (\varepsilon_g \rho_g)}{\partial t} + \nabla \cdot (\varepsilon_g \rho_g U_g) = 0 -Unlike two-fluid modeling, :math:`\varepsilon_g = 1 - \varepsilon_s`, is not a solution -variable. Rather, :math:`\varepsilon_s` is evaluated from the particle field through -volume filtering, +Unlike two-fluid modeling, :math:`\varepsilon_g = 1 - \varepsilon_s`, is not a solution +variable. Rather, :math:`\varepsilon_s` is evaluated from the particle field through +volume filtering, -.. math:: - (1 - \varepsilon_g) A (\boldsymbol{x},t) \approx - \sum_{i=1}^{N_p} A_i(\boldsymbol{X}_i,t) {\mathcal G} - (\left| \boldsymbol{x} - \boldsymbol{X}_i \right|) {\mathcal V}_i +.. math:: + (1 - \varepsilon_g) A (\boldsymbol{x},t) \approx + \sum_{i=1}^{N_p} A_i(\boldsymbol{X}_i,t) {\mathcal G} + (\left| \boldsymbol{x} - \boldsymbol{X}_i \right|) {\mathcal V}_i -where :math:`A_i` is a general particle property, :math:`{\mathcal V}_i` is the particle -volume and :math:`\mathcal G` is a transfer kernel with compact support--here linear hat. -Setting :math:`A_i = 1` gives the local void fraction. +where :math:`A_i` is a general particle property, :math:`{\mathcal V}_i` is the particle +volume and :math:`\mathcal G` is a transfer kernel with compact support--here linear hat. +Setting :math:`A_i = 1` gives the local void fraction. Assuming the fluid phase is incompressible, :math:`\frac{D \rho_g}{Dt} = 0`, the conservation of fluid mass is equivalent to the conservation of fluid volume: @@ -42,42 +42,39 @@ Assuming the fluid phase is incompressible, :math:`\frac{D \rho_g}{Dt} = 0`, the The conservation of fluid momentum is: -.. math:: \frac{ \partial (\varepsilon_g \rho_g U_g)}{\partial t} +.. math:: \frac{ \partial (\varepsilon_g \rho_g U_g)}{\partial t} + \nabla \cdot (\varepsilon_g \rho_g U_g U_g) + \varepsilon_g \nabla p_g = \nabla \cdot \tau + M_{sg} + \varepsilon_g \rho_g g -where :math:`M_{sg} = - M_{gs}` is the generalized interfacial momentum transfer from -the solid particles to the fluid-phase. Like :math:`\varepsilon_s`, -:math:`M_{gs}` is determined from the L-E transfer kernel by setting :math:`A_i = F_{gi}`, -where :math:`F_{gi}` is the force due to the fluid-phase on the ith particle. Following -MFiX classic (and many other CFD-DEM codes designed for high density ratio gas-solids -flows), only buoyancy (pressure gradient) and steady drag are considered: +where :math:`M_{sg} = - M_{gs}` is the generalized interfacial momentum transfer from +the solid particles to the fluid-phase. Like :math:`\varepsilon_s`, +:math:`M_{gs}` is determined from the L-E transfer kernel by setting :math:`A_i = F_{gi}`, +where :math:`F_{gi}` is the force due to the fluid-phase on the ith particle. Following +MFiX classic (and many other CFD-DEM codes designed for high density ratio gas-solids +flows), only buoyancy (pressure gradient) and steady drag are considered: .. math:: - F_{gi} = - \mathcal{V}_i \nabla p_g + F_{gi} = - \mathcal{V}_i \nabla p_g - \frac{1}{2} C_D \rho_g \boldsymbol{V}_{ig} \left|\boldsymbol{V}_{ig}\right| A_i^{(proj)} -where :math:`\boldsymbol{V}_{ig} = \boldsymbol{V}_i - \boldsymbol{U}_g ( \boldsymbol{X}_i )` -is the velocity of ith particle relative to the fluid-phase (at the particle position -:math:`\boldsymbol{X}_i`). :math:`F_{gi}` is closed by the specification of a drag -coefficient, :math:`C_D`. Currently, MFIX-Exa includes Wen-Yu, Gidaspow and BVK2 drag laws. +where :math:`\boldsymbol{V}_{ig} = \boldsymbol{V}_i - \boldsymbol{U}_g ( \boldsymbol{X}_i )` +is the velocity of ith particle relative to the fluid-phase (at the particle position +:math:`\boldsymbol{X}_i`). :math:`F_{gi}` is closed by the specification of a drag +coefficient, :math:`C_D`. Currently, MFIX-Exa includes Wen-Yu, Gidaspow, BVK2, and Syamlal-O'Brien drag laws. -.. wdf todo +.. wdf todo gidaspow form: C_D^{Gidaspow} = \chi C_D^{(Wen-Yu)} + \left(1 - \chi \right) C_D^{(Ergun)} \chi = \frac{\arctan 150 \left( \varepsilon_g - 0.8 \right)}{\pi} + \frac{1}{2} wen-yu: C_D^{(Wen-Yu)} = \max \left[\frac{24}{Re_i}\left(1 + 0.15 Re_i^{0.687}\right),\ 0.44 \right] \left( 1 - \varepsilon_g \right)^{-1.65} - ergun: C_D^{(Ergun)} = \frac{200 \left(1 - \varepsilon_g\right)}{Re_i} + \frac{7}{3} + ergun: C_D^{(Ergun)} = \frac{200 \left(1 - \varepsilon_g\right)}{Re_i} + \frac{7}{3} BVK2: C_D^{BVK2} = ... particle reynolds number: Re_i = \frac{\rho_g \left( 1 - \varepsilon_g \right) d_i \left| \boldsymbol{V}_{ig} \right| }{\mu_g} -In chemical engineering literature, it is common to lump all drag-related terms of -:math:`M_{gs}` into :math:`\beta`. With this simplification and some re-arrangement, -the fluid momentum takes the more convenient form: +In chemical engineering literature, it is common to lump all drag-related terms of +:math:`M_{gs}` into :math:`\beta`. With this simplification and some re-arrangement, +the fluid momentum takes the more convenient form: -.. math:: \frac{ \partial (\varepsilon_g \rho_g U_g)}{\partial t} - + \nabla \cdot (\varepsilon_g \rho_g U_g U_g) + \varepsilon_g \nabla p_g +.. math:: \frac{ \partial (\varepsilon_g \rho_g U_g)}{\partial t} + + \nabla \cdot (\varepsilon_g \rho_g U_g U_g) + \varepsilon_g \nabla p_g = \nabla \cdot \tau + \sum_p \beta_p (V_p - U_g) + \varepsilon_g \rho_g g - - - -- GitLab From b2cb6cc57278af6ef1b0ac3ead5937e63dc20a46 Mon Sep 17 00:00:00 2001 From: Charles G Waldman Date: Wed, 10 Dec 2025 13:25:08 -0600 Subject: [PATCH 3/4] spell out Syamlal --- docs/source_docs/user_guide/inputs/model_options.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source_docs/user_guide/inputs/model_options.rst b/docs/source_docs/user_guide/inputs/model_options.rst index 92ae7eb..7983264 100644 --- a/docs/source_docs/user_guide/inputs/model_options.rst +++ b/docs/source_docs/user_guide/inputs/model_options.rst @@ -318,7 +318,7 @@ The following input is defined using the prefix ``mfix.drag``: | | * ``WenYu`` :cite:p:`Wen66` | | | | | * ``Gidaspow`` :cite:p:`ding90,Lat00` | | | | | * ``BVK2`` :cite:p:`Bee07,Bee071,tenneti11,tang15` | | | -| | * ``SyamOBrien`` :cite:p:`syam88` | | | +| | * ``SyamOBrien`` -- Syamlal-O'Brien :cite:p:`syam88` | | | | | * ``UserDrag`` | | | | | | | | +--------------------------+-------------------------------------------------------------------------------+-------------+-----------+ -- GitLab From 343fae8a344bc09ec788069d1f308d3b120eb725 Mon Sep 17 00:00:00 2001 From: Charles G Waldman Date: Tue, 16 Dec 2025 14:14:56 -0600 Subject: [PATCH 4/4] fixed_dt is Real not Int --- .../user_guide/inputs/time_stepping.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/source_docs/user_guide/inputs/time_stepping.rst b/docs/source_docs/user_guide/inputs/time_stepping.rst index 4ae0a47..631924b 100644 --- a/docs/source_docs/user_guide/inputs/time_stepping.rst +++ b/docs/source_docs/user_guide/inputs/time_stepping.rst @@ -95,11 +95,11 @@ The following inputs are defined using the prefix ``mfix``: +----------------------+-----------------------------------------------------------------------+-------------+--------------+ | Key | Description | Type | Default | +======================+=======================================================================+=============+==============+ -| max_step | Maximum number of time steps to take | Int | -1 | +| max_step | Maximum number of time steps to take. | Int | -1 | +----------------------+-----------------------------------------------------------------------+-------------+--------------+ -| stop_time | Maximum time to reach (s) | Real | -1.0 | +| stop_time | Maximum time to reach (s). | Real | -1.0 | +----------------------+-----------------------------------------------------------------------+-------------+--------------+ -| fixed_dt | Use a fixed time step | Int | 0 | +| fixed_dt | If > 0, use a fixed time step. | Real | 0 | +----------------------+-----------------------------------------------------------------------+-------------+--------------+ | cfl | CFL constraint (dt < cfl * dx / u) | Real | See note | | | | | | @@ -107,16 +107,16 @@ The following inputs are defined using the prefix ``mfix``: | | * 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_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 | +| dt_max | Maximum value of ``dt`` if ``fixed_dt`` is not set. | Real | 1.e14 | +----------------------+-----------------------------------------------------------------------+-------------+--------------+ -| tcoll_ratio | DEM time step equals the min collision time divided by this value | Real | 50.0 | +| tcoll_ratio | DEM time step equals the min collision time divided by this value. | Real | 50.0 | +----------------------+-----------------------------------------------------------------------+-------------+--------------+ | walltime_limit | Runtime limit specified with format HH:MM:SS. When the runtime has | String | "" | | | almost reached the limit (approaching is computed by considering the | | | | | average runtime needed for each step), then the simulation ends and | | | -| | a clean exit is performed | | | +| | a clean exit is performed. | | | +----------------------+-----------------------------------------------------------------------+-------------+--------------+ | clean_exit | The name of a file that, if found in the run | String | "" | | | folder, makes the solver stop and perform a clean exit. | | | @@ -136,5 +136,5 @@ The following inputs are defined using the prefix ``mfix`` and are only relevant | steady_state_tol | Tolerance for checking if steady state has been reached. | Real | None | | | (Must be set if steady_state is enabled) | | | +-----------------------+-----------------------------------------------------------------------+-------------+------------+ -| steady_state_maxiter | Maximum number of allowed iterations to converge to steady state | Int | 100000000 | +| steady_state_maxiter | Maximum number of allowed iterations to converge to steady state. | Int | 100000000 | +-----------------------+-----------------------------------------------------------------------+-------------+------------+ -- GitLab