diff --git a/docs/source_docs/user_guide/inputs/fluid_model.rst b/docs/source_docs/user_guide/inputs/fluid_model.rst index caa84499f50fa594cb30cd8db6707d345c988483..955256ab81a47cf7e37d3b312ad43724fe29d722 100644 --- a/docs/source_docs/user_guide/inputs/fluid_model.rst +++ b/docs/source_docs/user_guide/inputs/fluid_model.rst @@ -1,76 +1,292 @@ Fluid model =========== -Enabling the fluid solver and specifying fluid model options. -The following inputs must be preceded by the given to the fluid solver e.g., "fluid." +The following inputs are defined using the ``fluid`` prefix. -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| | Description | Type | Default | -+==========================================+==========================================================+========+==========+ -| solve | Specify the names of the fluids or None to disable the | String | None | -| | fluid solver. The name assigned to the fluid solver is | | | -| | used to specify fluids inputs. | | | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| molecular_weight | Value of constant fluid molecular weight | Real | 0 | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| viscosity | Specify which viscosity model to use for fluid | String | None | -| | [required]. Available options include: | | | -| | | | | -| | * 'constant' for constant viscosity model | | | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| viscosity.constant | Value of constant fluid viscosity [required if | Real | 0 | -| | viscosity_model='constant']. | | | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| specific_heat | Specify which specific heat model to use for fluid | String | None | -| | [required if advect_enthalpy]. Available options | | | -| | include: | | | -| | | | | -| | * 'constant' for constant specific heat model | | | -| | * 'mixture' required when fluid is a mixture of species | | | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| specific_heat.constant | Value of constant fluid specific heat [required if | Real | 0 | -| | specific_heat_model='constant']. | | | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| thermal_conductivity | Specify which thermal conductivity model to use for | String | None | -| | fluid [required if advect_enthalpy=1]. available | | | -| | options include: | | | -| | | | | -| | * 'constant' for constant thermal conductivity model | | | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| thermal_conductivity.constant | Value of constant fluid thermal conductivity [required | Real | 0 | -| | if thermal_conductivity_model='constant']. | | | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| thermodynamic_pressure | Value of the thermodynamic pressure [required if the | Real | 0 | -| | constraint type is IdealGasClosedSystem] | | | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| reference_temperature | Value of the reference temperature used for specific | Real | 0 | -| | enthalpy | Real | 0 | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| species | Specify which species can constitute the fluid phase | String | None | -| | [defined species must be a subset of the species.solve | | | -| | arguments] | | | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| newton_solver.absolute_tol | Define absolute tolerance for Damped-Newton solver | Real | 1.e-8 | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| newton_solver.relative_tol | Define relative tolerance for Damped-Newton solver | Real | 1.e-8 | -+------------------------------------------+----------------------------------------------------------+--------+----------+ -| newton_solver.max_iterations | Define max number of iterations for Damped-Newton solver | int | 500 | -+------------------------------------------+----------------------------------------------------------+--------+----------+ ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| | Description | Type | Default | ++==========================================+============================================================+========+==========+ +| solve | Specify the name of the fluid or set to None to disable | String | None | +| | the fluid solver. The name assigned to the fluid solver is | | | +| | used to specify fluid initial and boundary conditions. | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| viscosity | Specify which viscosity model to use for the fluid. | String | None | +| | Available options include: | | | +| | | | | +| | * ``constant`` for constant viscosity model | | | +| | | | | +| | A viscosity model is required if the fluid solver is | | | +| | enabled. | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| viscosity.constant | Constant fluid viscosity. | Real | 0 | +| | A value is required for ``constant`` viscosity model. | | | +| | | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| species | Specify the species that constitute the fluid. | String | 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 *ideal gas* constraints and the species equations | | | +| | are not solved. | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| specific_heat | Specify which specific heat model to use for the fluid. | String | None | +| | Available options include: | | | +| | | | | +| | * ``constant`` - the fluid has a constant specific heat | | | +| | | | | +| | * ``NASA7-poly`` the fluid specific heat is defined by a | | | +| | low-temperature (T < 1000K) polynomial and a | | | +| | high-temprature (T > 1000K) polynomial. | | | +| | | | | +| | NASA7 polynomial format: | | | +| | | | | +| | :math:`c_p(T) = \sum_{i=0}^5 a_iT^i` | | | +| | | | | +| | * ``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}` | | | +| | | | | +| | A specific heat model is required if advecting enthalpy. | | | +| | Furthermore, the model must be ``mixture`` if species | | | +| | equations are solved. | | | +| | | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| specific_heat.constant | Constant fluid specific heat | Real | 0 | +| | A value is required for ``constant`` specific heat model. | | | +| | | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| specific_heat.NASA7.a[i] | Specific heat polynomial coefficients. Polynomial | Real | 0. 0. | +| | coefficients are required if the fluid specific heat | | | +| | model is ``NASA7-poly``. | | | +| | | | | +| | Each polynomial is defined by six coefficients (``a0``, | | | +| | ..., ``a5``), and two values are required for each | | | +| | coefficient. The first value is the low temperature | | | +| | polynomial coefficient (T < 1000K) and the second is the | | | +| | coefficient for the high temperature polynomial | | | +| | (T > 1000K). A total of twelve coefficients are required. | | | +| | | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| thermal_conductivity | Specify which thermal conductivity model to use for | String | None | +| | fluid. Available options include: | | | +| | | | | +| | * ``constant`` - the fluid has a constant thermal | | | +| | conductivity model | | | +| | | | | +| | A thermal conductivity model is required if advecting | | | +| | enthalpy. | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| thermal_conductivity.constant | Constant fluid thermal conductivity. | Real | 0 | +| | A value is required for ``constant`` thermal conductivity | | | +| | model. | | | +| | | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| thermodynamic_pressure | Thermodynamic pressure. | Real | 0 | +| | A value is required when using the | | | +| | ``IdealGasClosedSystem`` constraint. If using the | | | +| | ``IdealGasOpenSystem`` constraint, then the value must | | | +| | match all specified outflow pressures. | | | +| | | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ +| reference_temperature | Reference temperature used to compute specific | Real | 298. | +| | enthalpy | | | ++------------------------------------------+------------------------------------------------------------+--------+----------+ + + +Example inputs +-------------- + +Incompressible fluid +^^^^^^^^^^^^^^^^^^^^ + +The following setup shows how to define the most basic fluid model where the +only required physical property is fluid viscosity. We are using the ``IncompressibleFluid`` +constraint; therefore, the *constant* fluid density is defined +by the initial and boundary conditions. The fluid energy and species equations +are not solved. + +.. code-block:: bash + :caption: Snippet of inputs defining a simple incompressible fluid. This is not a complete input file. + + mfix.constraint_type = IncompressibleFluid + + mfix.advect_density = 0 + mfix.advect_enthalpy = 0 + mfix.solve_species = 0 + + # Fluid model settings + # ----------------------------------------------------------------------- + fluid.solve = fluid0 + + fluid.viscosity = constant + fluid.viscosity.constant = 1.8e-5 + + + # Initial Conditions + # ----------------------------------------------------------------------- + ic.regions = full-domain + + ic.full-domain.fluid0.volfrac = 1.0 + ic.full-domain.fluid0.density = 1.0 + + ic.full-domain.fluid0.velocity = 0.0 0.0 0.0 + + # Boundary Conditions + # ----------------------------------------------------------------------- + bc.regions = inlet outlet + + bc.inlet = mi + bc.inlet.fluid0.volfrac = 1.0 + bc.inlet.fluid0.density = 1.0 + + bc.inlet.fluid0.velocity = 1.0e-8 0.0 0.0 + + bc.outlet = po + bc.outlet.fluid0.pressure = 0. + + +Simple ideal gas +^^^^^^^^^^^^^^^^ + +In the following example, we use the ``IdealGasOpenSystem`` so that the fluid +density is calculated from the ideal gas equation of state. In addition to +viscosity, we must also provide the fluid molecular weight. The fluid energy +and species equations are not solved, but the *constant* fluid temperature is +required in the initial and boundary conditions to fully specify the equation +of state. Lastly, the outflow boundary pressure is taken as the thermodynamic +pressure when evaluating the equation of state. + + +.. code-block:: bash + :caption: Snippet of inputs defining a simple ideal gas. This is not a complete input file. + + mfix.constraint_type = IdealGasOpenSystem -Below is an example for specifying fluid solver model options. + mfix.advect_density = 1 + mfix.advect_enthalpy = 0 + mfix.solve_species = 0 -.. code-block:: none - fluid.solve = my_fluid + # Fluid model settings + # ----------------------------------------------------------------------- + fluid.solve = fluid0 - fluid.viscosity = constant + fluid.viscosity = constant fluid.viscosity.constant = 1.8e-5 - fluid.reference_temperature = 298.15 + fluid.molecular_weight = 29.0e-3 + + + # Initial Conditions + # ----------------------------------------------------------------------- + ic.regions = full-domain + + ic.full-domain.fluid0.volfrac = 1.0 + + ic.full-domain.fluid0.velocity = 0.0 0.0 0.0 + + ic.full-domain.fluid0.temperature = 300.0 + + + # Boundary Conditions + # ----------------------------------------------------------------------- + bc.regions = inlet outlet + + bc.inlet = mi + bc.inlet.fluid0.volfrac = 1.0 + + bc.inlet.fluid0.velocity = 1.0e-8 0.0 0.0 + + bc.inlet.fluid0.temperature = 300.0 + + bc.outlet = po + bc.outlet.fluid0.pressure = 101325. + + + +Ideal gas with energy +^^^^^^^^^^^^^^^^^^^^^ + +In the last example, we use the ``IdealGasOpenSystem``, however unlike the +previous demonstration, the energy equation is solved. Therefore, we must +define the fluid viscosity, molecular weight, thermal conductivity, and +specific heat. Again, the fluid temperature is required in the initial and +boundary conditions, and the outflow boundary pressure is taken as the +thermodynamic pressure for the system. + + +.. code-block:: bash + :caption: Snippet of inputs defining an idea gas with energy. This is not a complete input file. + + mfix.constraint_type = IdealGasOpenSystem + + mfix.advect_density = 1 + mfix.advect_enthalpy = 1 + mfix.solve_species = 0 + + # Fluid model settings + # ----------------------------------------------------------------------- + fluid.solve = fluid0 + + fluid.viscosity = constant + fluid.viscosity.constant = 2.0e-5 fluid.thermal_conductivity = constant - fluid.thermal_conductivity.constant = 0.024 + fluid.thermal_conductivity.constant = 0.026 - fluid.specific_heat = mixture + fluid.molecular_weight = 28.96518e-3 - fluid.species = O2 CO CO2 + fluid.specific_heat = NASA7-poly + + fluid.specific_heat.NASA7.a0 = 5.95960930E+00 3.08792717E+00 + fluid.specific_heat.NASA7.a1 = 3.56839620E+00 1.24597184E-03 + fluid.specific_heat.NASA7.a2 = -6.78729429E-04 -4.23718945E-07 + fluid.specific_heat.NASA7.a3 = 1.55371476E-06 6.74774789E-11 + fluid.specific_heat.NASA7.a4 = -3.29937060E-12 -3.97076972E-15 + fluid.specific_heat.NASA7.a5 = -4.66395387E-13 -9.95262755E+02 + + + # Initial Conditions + # ----------------------------------------------------------------------- + ic.regions = full-domain + + ic.full-domain.fluid0.volfrac = 1.0 + + ic.full-domain.fluid0.velocity = 0.0 0.0 0.0 + + ic.full-domain.fluid0.temperature = 300.0 + + # Boundary Conditions + # ----------------------------------------------------------------------- + bc.regions = inlet outlet + + bc.inlet = mi + bc.inlet.fluid0.volfrac = 1.0 + + bc.inlet.fluid0.velocity = 1.0e-8 0.0 0.0 + + bc.inlet.fluid0.temperature = 300.0 + + bc.outlet = po + bc.outlet.fluid0.pressure = 101325. + + +The following inputs are defined using the ``fluid`` prefix 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 | ++------------------------------------------+----------------------------------------------------------+--------+----------+ diff --git a/docs/source_docs/user_guide/inputs/species_defs.rst b/docs/source_docs/user_guide/inputs/species_defs.rst index 14e88f2c784d219825dfb4f1b6e4edcee3b7172b..4ae644e8eb53aa4fd3004a0fadcad9ce1803e3ed 100644 --- a/docs/source_docs/user_guide/inputs/species_defs.rst +++ b/docs/source_docs/user_guide/inputs/species_defs.rst @@ -1,3 +1,5 @@ +.. _InputsSpeciesDefs: + Species definitions =================== @@ -92,8 +94,8 @@ local species concentrations do not affect the fluid. mfix.constraint_type = IncompressibleFluid mfix.advect_density = 0 - mfix.solve_species = 1 mfix.advect_enthalpy = 0 + mfix.solve_species = 1 # Species model settings diff --git a/docs/source_docs/user_guide/run-time_inputs.rst b/docs/source_docs/user_guide/run-time_inputs.rst index 4441f98d21eedb5601511059c17b3fb8723d23f3..c232438b2dd34587777168a729bb7853258a9bec 100644 --- a/docs/source_docs/user_guide/run-time_inputs.rst +++ b/docs/source_docs/user_guide/run-time_inputs.rst @@ -47,9 +47,9 @@ keywords such as ``mfix``, ``amr``, ``geometry``, ``nodal_proj`` etc. inputs/mesh_and_gridding inputs/multigrid-solvers inputs/model_options - inputs/species_defs inputs/fluid_model inputs/solids_model + inputs/species_defs inputs/chemical_reactions inputs/regions_defs inputs/initial_conditions