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 |
None |
constant |
Constant fluid viscosity. A value is required for |
Real |
0 |
Sutherland.T_ref |
Sutherland model reference temperature. A value is required for |
Real |
0 |
Sutherland.mu_ref |
Sutherland model reference viscosity at T_ref. A value is required for |
Real |
0 |
Sutherland.S |
Sutherland model temperature. A value is required for |
Real |
0 |
Reid.A Reid.B Reid.C Reid.D |
Reid model constants. Values are required for |
Real |
0 |
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 |
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_name].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 \(\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 |
|
|---|---|---|---|
reference_temperature |
Reference temperature used to compute specific enthalpy. |
Real |
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 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 |
Newton solver
The following inputs are defined using the prefix fluid and control the convergence criteria
of the damped Newton solver used to compute temperature from enthalpy and specific heat.
Description |
Type |
Default |
|
|---|---|---|---|
newton_solver.absolute_tol |
Define absolute tolerance for the Newton solver |
Real |
1.e-8 |
newton_solver.relative_tol |
Define relative tolerance for the Newton solver |
Real |
1.e-8 |
newton_solver.max_iterations |
Define max number of iterations for the Newton solver |
Int |
500 |
Example inputs
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.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.
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.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.
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.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.