CaloricallyImperfectGas

Fluid properties for an ideal gas with imperfect caloric behavior.

This class implements fluid properties for a gas that behaves like an ideal gas except that the specific heat capacities are a function of temperature (as opposed to constants as for the ideal gas).

The relationship between pressure, density, and temperature is identical to an ideal gas:

where is pressure, is specific volume, is the specific gas constant, and is temperature.

The internal energy is a user-provided function of temperature:

The function is provided via parameter "e". The time argument is interpreted as temperature.

The enthalpy is computed by:

The specific heat capacities at constant volume and pressure and are computed by:

warningwarning

The specific heat capacities are computed from using the timeDerivative method of the Function class. The type of function that is used for must implement the timeDerivative method.

The inverse functions and are obtained as follows:

  1. Ensure that within the acceptable temperature range (parameters min_temperature and max_temperature) .

  2. Compute the minimum and maximum values of and .

  1. Sample

    and for each solve

    for . Create tabulation . Create a similar tabulation for enthalpy.

  2. Evaluating uses linear interpolation in .

Evaluating Entropy

From the first and second law of thermodynamics is follows that:

where is an infinitesimal amount of heat. Solving for and using the ideal gas law leads to:

Integrating this equation leads to an expression for the entropy:

where the prime indicates that these variables are dummy variables of integration. We are free to select a zero-point for entropy and we select . We also select and . Then we define:

Entropy is computed from the expression:

where is computed using a trapezoidal rule and tabulated between and . It is linearly interpolated.

The derivatives of entropy with respect to , , , are given by:

These derivatives are implemented in the 5 argument versions of the s_from_x_y functions.

Input Parameters

  • eSpecific internal energy as a function of temperature [J/kg]

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Specific internal energy as a function of temperature [J/kg]

  • kThermal conductivity, [W/(m-K)]

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Thermal conductivity, [W/(m-K)]

  • max_temperatureLargest temperature for lookup tables [K]

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Largest temperature for lookup tables [K]

  • min_temperatureSmallest temperature for lookup tables [K]

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Smallest temperature for lookup tables [K]

  • molar_massConstant molar mass of the fluid [kg/mol]

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Constant molar mass of the fluid [kg/mol]

  • muDynamic viscosity, [Pa-s]

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Dynamic viscosity, [Pa-s]

Required Parameters

  • T_c0Critical temperature, [K]

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Critical temperature, [K]

  • e_c0Specific internal energy at the critical point, [J/kg]

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Specific internal energy at the critical point, [J/kg]

  • emit_on_nannoneWhether to raise a warning, an exception (usually triggering a retry with a smaller time step) or an error (ending the simulation)

    Default:none

    C++ Type:MooseEnum

    Options:none, warning, exception, error

    Controllable:No

    Description:Whether to raise a warning, an exception (usually triggering a retry with a smaller time step) or an error (ending the simulation)

  • out_of_bound_errorTrueError if out of bounds

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Error if out of bounds

  • rho_c0Critical density, [kg/m3]

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Critical density, [kg/m3]

  • temperature_resolution1Step size in temperature for creating the inverse lookup T(e)

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Step size in temperature for creating the inverse lookup T(e)

Optional Parameters

  • T_initial_guess400Temperature initial guess for Newton Method variable set conversion

    Default:400

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Temperature initial guess for Newton Method variable set conversion

  • max_newton_its100Maximum number of Newton iterations for variable set conversions

    Default:100

    C++ Type:unsigned int

    Controllable:No

    Description:Maximum number of Newton iterations for variable set conversions

  • p_initial_guess200000Pressure initial guess for Newton Method variable set conversion

    Default:200000

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Pressure initial guess for Newton Method variable set conversion

  • tolerance1e-08Tolerance for 2D Newton variable set conversion

    Default:1e-08

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Tolerance for 2D Newton variable set conversion

Variable Set Conversions Newton Solve Parameters

  • allow_imperfect_jacobiansFalsetrue to allow unimplemented property derivative terms to be set to zero for the AD API

    Default:False

    C++ Type:bool

    Controllable:No

    Description:true to allow unimplemented property derivative terms to be set to zero for the AD API

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • fp_typesingle-phase-fpType of the fluid property object

    Default:single-phase-fp

    C++ Type:FPType

    Controllable:No

    Description:Type of the fluid property object

Advanced Parameters

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Material Property Retrieval Parameters

References

No citations exist within this document.