Fluid model

The following inputs are defined using the prefix fluid:

Description

Type

Default

solve

Specify the name of the fluid or set to 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.

String

None

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.

Description

Type

Default

viscosity.molecular

Specify which molecular viscosity model to use.

Options:

  • None - no viscosity model.

  • constant - constant viscosity

  • Sutherland [Sut93] -

    \(\mu(T) = \mu_{ref}\left(\frac{T}{T_{ref}}\right)^{3/2}\frac{T_{ref} + S}{T+S}\)

  • Reid [RPP87] -

    \(\mu(T) = Ae^{\left(\frac{B}{T} + CT + DT^2 \right)}\)

  • mixture - a mixture viscosity is computed from species viscosities and local species mass fractions [BSL06]

    \(\mu_{mix} = \sum_{\alpha=1}^{N} \frac{X_{\alpha} \mu_{\alpha}}{\sum_{\beta} X_{\beta} \phi_{\alpha \beta}}\)

A viscosity model is required if the fluid solver is enabled.

String

None

viscosity.molecular.constant

Constant fluid viscosity.

A value is required for constant viscosity model.

Real

0

viscosity.molecular.Sutherland.T_ref

Sutherland model reference temperature.

A value is required for Sutherland viscosity model.

Real

0

viscosity.molecular.Sutherland.mu_ref

Sutherland model reference viscosity at T_ref.

A value is required for Sutherland viscosity model.

Real

0

viscosity.molecular.Sutherland.S

Sutherland model temperature.

A value is required for Sutherland viscosity model.

Real

0

viscosity.molecular.Reid.A viscosity.molecular.Reid.B viscosity.molecular.Reid.C viscosity.molecular.Reid.D

Reid model constants.

Values are required for Reid viscosity model.

Real

0

viscosity.eddy

Specify eddy viscosity model.

Options:

  • None - No eddy viscosity model

  • Smagorinsky-Lilly [Lil66, Sma63]

  • WALE [DNP98]

  • usr

String

None

viscosity.eddy.Smagorinsky-Lilly.constant

Smagorinsky-Lilly constant which usually has values between 0.1 and 0.2.

A value is required when using the Smagorinsky-Lilly eddy viscosity model.

Real

None

viscosity.eddy.WALE.constant

WALE eddy viscosity model constant.

Real

0.325

viscosity.suspension

Specify suspension viscosity model of the form

\(\mu_{susp} = \mu_{mol}(\mu^* - 1)\)

Options:

  • None - No eddy suspension model

    \(\mu^* = 1\)

  • Einstein [Ein11]

    \(\mu^* = 1 + 2.5\varepsilon_s\)

  • Brinkman [Bri52, GLGP07]

    \(\mu^* = (1-\varepsilon_s)^{-c}\)

  • Roscoe [KD59, MP56, Ros52]

    \(\mu^* = (1-\varepsilon_s/c_1)^{-c_2}\)

  • ChengLaw [CL03]

    \(\mu^* = e^{2.5(1/(1-\varepsilon_s)^c-1)/c}\)

  • Sato [SS81]

    \(\mu_{pit} = C d_s \rho \left|\boldsymbol{u} - \boldsymbol{u_s}\right|\)

  • Subramaniam [MTGS15]

    \(\mu_{pit} = C_\mu k_f^2 / \epsilon_f\)

String

None

viscosity.suspension.Brinkman.constant

Constant for exponent in Brinkman suspension expression.

A value is required when using the Brinkman model.

Real

None

viscosity.suspension.Roscoe.c1

Constant for max packing in Roscoe suspension expression.

A value is required when using the Roscoe model.

Real

None

viscosity.suspension.Roscoe.c2

Constant for exponent in Roscoe suspension expression.

A value is required when using the Roscoe model.

Real

None

viscosity.suspension.ChengLaw.constant

Constant for exponent in ChengLaw suspension expression.

A value is required when using the ChengLaw model.

Real

None

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 molecular viscosity

\(\mu_{eff} < fac*\mu_{mol}\), where \(\mu_{eff} = \mu_{mol} + \mu_{eddy} + \mu_{susp} + \mu_{pit}\)

Real

1.e6

species

Specify the species that constitute the fluid.

All listed species must be properly defined. See the species definition documentation for additional details.

String

None

molecular_weight

Constant fluid molecular weight.

A molecular weight should only be defined when using one of the ideal gas constraints and the species equations are not solved.

Real

0

specific_heat

Specify which specific heat model to use for the fluid. Options:

  • constant - the fluid has a constant specific heat

  • NASA7-poly the fluid specific heat is defined by NASA-7 polynomials.

    NASA7 polynomial format:

    \(c_p(T)/R = \sum_{i=0}^4 a_{i}T^{i}\)

    Additional information on NASA-7 polynomials is provided in species specific heats.

  • mixture - a mixture specific heat is computed from species specific heats and local species mass fractions.

    \(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.

String

None

specific_heat.constant

Constant fluid specific heat A value is required for constant specific heat model.

Real

0

specific_heat.NASA7.a[i]

Specific heat polynomial coefficients. Polynomial coefficients are required if the fluid specific heat model is NASA7-poly.

Additional information on NASA-7 polynomials is provided in species specific heats.

Real

None

thermal_conductivity

Specify which thermal conductivity model to use for fluid. Options:

  • constant - the fluid has a constant thermal conductivity model

A thermal conductivity model is required if advecting enthalpy.

String

None

thermal_conductivity.constant

Constant fluid thermal conductivity. A value is required for constant thermal conductivity model.

Real

0

thermodynamic_pressure

Thermodynamic pressure. A value is required when using the IdealGasClosedSystem constraint. If using the IdealGasOpenSystem constraint, then the value must match all specified outflow pressures.

Real

0

reference_temperature

Reference temperature used to compute specific enthalpy

Real

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.

Listing 5 Snippet of inputs defining a simple incompressible fluid. This is not a complete input file.
mfix.constraint = IncompressibleFluid

mfix.advect_density  = 0
mfix.advect_enthalpy = 0
mfix.solve_species   = 0


# Fluid model settings
# -----------------------------------------------------------------------
fluid.solve = fluid0

fluid0.viscosity.molecular = 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.

Listing 6 Snippet of inputs defining a simple ideal gas. This is not a complete input file.
mfix.constraint = IdealGasOpenSystem

mfix.advect_density  = 1
mfix.advect_enthalpy = 0
mfix.solve_species   = 0


# Fluid model settings
# -----------------------------------------------------------------------
fluid.solve = fluid0

fluid0.viscosity.molecular = 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.

Listing 7 Snippet of inputs defining an idea gas with energy. This is not a complete input file.
mfix.constraint = IdealGasOpenSystem

mfix.advect_density  = 1
mfix.advect_enthalpy = 1
mfix.solve_species   = 0


# Fluid model settings
# -----------------------------------------------------------------------
fluid.solve = fluid0

fluid0.viscosity.molecular = constant
fluid0.viscosity.molecular.constant = 2.0e-5

fluid0.thermal_conductivity = 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.

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