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 |
|
species |
Specify the species that constitute the fluid. All listed species must be properly defined. See the species definition documentation for additional details. |
Strings |
None |
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¶
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. Options:
A viscosity model is required if the fluid solver is enabled. |
String |
constant |
constant |
Constant fluid viscosity. A value is required for |
Real |
None |
Sutherland.T_ref |
Sutherland model reference temperature. A value is required for |
Real |
None |
Sutherland.mu_ref |
Sutherland model reference viscosity at T_ref. A value is required for |
Real |
None |
Sutherland.S |
Sutherland model temperature. A value is required for |
Real |
None |
Reid.A Reid.B Reid.C Reid.D |
Reid model constants. Values are required for |
Real |
None |
Eddy viscosity¶
The following inputs are defined using the prefix fluid.viscosity.eddy:
Description |
Type |
Default |
|
|---|---|---|---|
model |
Specify eddy viscosity model. Options: |
String |
None |
Smagorinsky-Lilly.constant |
Smagorinsky-Lilly constant which usually has values between 0.1 and 0.2. A value is required when using the |
Real |
None |
WALE.constant |
WALE eddy viscosity model constant. |
Real |
0.325 |
Suspension viscosity¶
The following inputs are defined using the prefix fluid.viscosity.suspension:
Description |
Type |
Default |
|
|---|---|---|---|
model |
Specify suspension viscosity model of the form
Options:
|
String |
None |
Brinkman.constant |
Constant for exponent in Brinkman suspension expression. A value is required when using the |
Real |
None |
Roscoe.c1 |
Constant for max packing in Roscoe suspension expression. A value is required when using the |
Real |
None |
Roscoe.c2 |
Constant for exponent in Roscoe suspension expression. A value is required when using the |
Real |
None |
ChengLaw.constant |
Constant for exponent in ChengLaw suspension expression. A value is required when using the |
Real |
None |
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 molecular viscosity \(\mu_{eff} < fac*\mu_{mol}\), where \(\displaystyle\mu_{eff} = \mu_{mol} + \mu_{eddy} + \mu_{susp} + \mu_{pit}\) |
Real |
1.e6 |
Molecular weight¶
The following inputs are defined using the prefix [fluid_name]:
Description |
Type |
Default |
|
|---|---|---|---|
molecular_weight |
Constant fluid molecular weight. A molecular weight should only be defined when using one
of the |
Real |
0 |
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. A specific heat model is required if advecting enthalpy.
Furthermore, the model must be Options:
|
String |
None |
constant |
Constant fluid specific heat.
A value is required for |
Real |
0 |
NASA7.a[i] |
Specific heat polynomial coefficients. Polynomial
coefficients are required if the fluid specific heat
model is Additional information on NASA-7 polynomials is provided in species specific heats. |
Reals |
None |
NASA7.Tsplit |
Defines the transition temperature between NASA-7 polynomials. If there are In the standard case of two temperature ranges, a
transition temperature of 1000K is assumed if |
Reals |
1000 |
ignore_discontinuities |
Ignore discontinuities in NASA-7 polynomials at transition
temperatures ( |
Int |
0 |
The following inputs are defined using the prefix [fluid_name].
Description |
Type |
Default |
|
|---|---|---|---|
enthalpy_of_formation |
Enthalpy of formation of fluid. Only used when the fluid
specific heat model is |
Real |
0 |
reference_temperature |
Reference temperature used to compute fluid specific
enthalpy when using |
Real |
298.0 |
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 the fluid. Options:
A thermal conductivity model is required if advecting enthalpy. |
String |
None |
constant |
Value of constant fluid thermal conductivity. |
Real |
None |
Sutherland.T_ref |
Sutherland model reference temperature. |
Real |
None |
Sutherland.k_ref |
Sutherland model reference conductivity at T_ref. |
Real |
None |
Sutherland.S |
Sutherland model temperature. |
Real |
None |
power_law.T_ref |
Power law model reference temperature. |
Real |
None |
power_law.exponent |
Power law model exponent \(n\) |
Real |
None |
Radiation¶
The following inputs are defined using the prefix [fluid_name].radiation.
Description |
Type |
Default |
|
|---|---|---|---|
scattering_coeff |
Scattering coefficient of the fluid. |
Real |
None |
absorption.model |
Specify which radiation absorption coefficient model to use for the fluid. Options:
An absorption model is required if radiation is enabled. |
String |
None |
Gray polynomial¶
The following inputs are defined using the prefix [fluid_name].radiation.absorption.
Description |
Type |
Default |
|
|---|---|---|---|
form |
Specifies the polynomial form used to represent the absorption coefficient as a function of temperature. Options:
|
Int |
0 |
T_range |
Valid temperature range for the polynomial. If no temperature is provided, then the polynomial is assumed valid for all temperatures. Piecewise polynomials are defined by specify multiple ranges. For example, two piecewise polynomials can be specified by providing three temperatures: low, mid and high. |
Reals |
None |
polynomial_coeffs |
Polynomial coefficient. Polynomials can be up to 5-th order, and a set of polynomial coefficients must be defined for each temperature range. |
Reals |
None |
Example: A single temperature-dependent polynomial
A single polynomial is used over the entire valid temperature range. Here, the absorption coefficient is represented by one set of polynomial coefficients (e.g., 0th–2nd order).:
fluid0.radiation.absorption.model = gray-poly
fluid0.radiation.absorption.T_range = 300. 2400.
fluid0.radiation.absorption.polynomial_coeffs = 32.2454, 4.057e-3, -3.89e-6
Example: Three piecewise constants
The absorption coefficient is defined using multiple temperature segments. Providing three temperatures defines two piecewise regions. Because each region is specified with a single coefficient, the absorption coefficient is constant within each segment.:
fluid0.radiation.absorption.model = gray-poly
fluid0.radiation.absorption.T_range = 300. 600. 1200.
fluid0.radiation.absorption.polynomial_coeffs = 1.
fluid0.radiation.absorption.polynomial_coeffs = 0.1
fluid0.radiation.absorption.polynomial_coeffs = 0.01
Gray WSGG (Weighted Sum of Gray Gases)¶
The following inputs are defined using the prefix [fluid_name].radiation.absorption.
Description |
Type |
Default |
|
|---|---|---|---|
pressure-path_length |
The pressure path length product |
Real |
None |
path_length |
The path length of the gas, |
Real |
None |
gases |
List of absorbing gas species. The total partial pressure
based on the local composition |
Strings |
None |
T_range |
Valid temperature range for the polynomial. If no temperature is provided, then the polynomial is assumed valid for all temperatures. Piecewise polynomials are defined by specify multiple ranges. For example, two piecewise polynomials can be specified by providing three temperatures: low, mid and high. |
Reals |
None |
coeffs |
Weighted sum of gray gas coefficients. |
Reals |
None |
polynomial_coeffs |
Polynomial coefficient. Polynomials can be up to 5-th order, and a set of polynomial coefficients must be defined for each temperature range. |
Reals |
None |
Example: WSGG model with five gray gases
Example inputs defining a WSGG model. Here, five gray gases are included in the absorption‑coefficient model. This is not a complete input file, nor does it represent a real WSGG model.
Dummy values are provided for illustration only.:
fluid0.radiation.absorption.model = gray-wsgg
fluid0.radiation.absorption.T_range = 600. 2400.
fluid0.radiation.absorption.pressure-path_length = 2.0
fluid0.radiation.absorption.coeffs = 100. 10. 1. 0.1 0.01
fluid0.radiation.absorption.polynomial_coeffs = 0.4068 -1.83E-04 8.68E-09
fluid0.radiation.absorption.polynomial_coeffs = 0.3390 -1.53E-04 7.24E-09
fluid0.radiation.absorption.polynomial_coeffs = 0.2712 -1.22E-04 5.79E-09
fluid0.radiation.absorption.polynomial_coeffs = 0.2034 -9.16E-05 4.34E-09
fluid0.radiation.absorption.polynomial_coeffs = 0.1356 -6.11E-05 2.89E-09
Each polynomial_coeffs line corresponds to one gray gas and provides the polynomial coefficients \(b_{n,i}\) in the temperature‑dependent term \(\sum_i b_{n,i}T^{i-1}\).
Example: WSGG model with partial‑pressure path‑length
Example inputs defining a weighted‑sum‑of‑gray‑gases model using three gray gases. In this case, the
pressure path‑length product PS is computed from the partial pressures of real gases CO2 and
H2O. As before, this is not a complete input file and does not represent a real WSGG dataset.:
species.solve = O2 H2O CO2 coal ash
fluid.species = CO2 H2O O2
fluid0.radiation.absorption.T_range = 600. 2400.
fluid0.radiation.absorption.path_length = 1.0
fluid0.radiation.absorption.gases = CO2 H2O
fluid0.radiation.absorption.coeffs = 75., 5., 1.
fluid0.radiation.absorption.polynomial_coeffs = 0.6280, -1.69E-04, -8.78E-08, 2.22E-11
fluid0.radiation.absorption.polynomial_coeffs = 0.3768, -1.01E-04, -5.27E-08, 1.33E-11
fluid0.radiation.absorption.polynomial_coeffs = 0.2512, -6.75E-05, -3.51E-08, 8.90E-12
coeffs supplies the gray‑gas absorption coefficients \(k_n\), and each polynomial_coeffs
line provides the \(b_{n,i}\) for the corresponding gray gas. The specified gases (CO2, H2O)
are used to compute the local partial‑pressure path‑length PS.
Newton solver¶
The following inputs are defined using the prefix fluid.newton_solver and control the convergence criteria
of the damped Newton solver used to compute temperature from enthalpy and specific heat.
Description |
Type |
Default |
|
|---|---|---|---|
absolute_tol |
Define absolute tolerance for the Newton solver |
Real |
1.e-8 |
relative_tol |
Define relative tolerance for the Newton solver |
Real |
1.e-8 |
max_iterations |
Define max number of iterations for the Newton solver |
Int |
500 |
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.
mfix.constraint = IncompressibleFluid
mfix.advect_density = 0
mfix.advect_enthalpy = 0
mfix.solve_species = 0
# Fluid model settings
# -----------------------------------------------------------------------
fluid.solve = fluid0
fluid0.viscosity.molecular.model = constant
fluid0.viscosity.molecular.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.density = 1.0
bc.inlet.fluid0.inflow_type = velocity
bc.inlet.fluid0.velocity = 1.0e-8
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.
mfix.constraint = IdealGasOpenSystem
mfix.advect_density = 1
mfix.advect_enthalpy = 0
mfix.solve_species = 0
# Fluid model settings
# -----------------------------------------------------------------------
fluid.solve = fluid0
fluid0.viscosity.molecular.model = constant
fluid0.viscosity.molecular.constant = 1.8e-5
fluid0.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.inflow_type = velocity
bc.inlet.fluid0.velocity = 1.0e-8
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.
mfix.constraint = IdealGasOpenSystem
mfix.advect_density = 1
mfix.advect_enthalpy = 1
mfix.solve_species = 0
# Fluid model settings
# -----------------------------------------------------------------------
fluid.solve = fluid0
fluid0.viscosity.molecular.model = constant
fluid0.viscosity.molecular.constant = 2.0e-5
fluid0.thermal_conductivity.model = constant
fluid0.thermal_conductivity.constant = 0.026
fluid0.molecular_weight = 28.96518e-3
fluid0.specific_heat = NASA7-poly
fluid0.specific_heat.NASA7.a0 = 5.95960930E+00 3.08792717E+00
fluid0.specific_heat.NASA7.a1 = 3.56839620E+00 1.24597184E-03
fluid0.specific_heat.NASA7.a2 = -6.78729429E-04 -4.23718945E-07
fluid0.specific_heat.NASA7.a3 = 1.55371476E-06 6.74774789E-11
fluid0.specific_heat.NASA7.a4 = -3.29937060E-12 -3.97076972E-15
fluid0.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.inflow_type = velocity
bc.inlet.fluid0.velocity = 1.0e-8
bc.inlet.fluid0.temperature = 300.0
bc.outlet = po
bc.outlet.fluid0.pressure = 101325.