- T_fluidFluid temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
Controllable:No
Description:Fluid temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- hSpecific Enthalpy. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
Controllable:No
Description:Specific Enthalpy. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- pressurePressure. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
Controllable:No
Description:Pressure. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
LinearFVEnthalpyFunctorMaterial
This FunctorMaterial class is needed when the user wants to solve for the enthalpy conservation for the linear finite-volume implementation of the incompressible/weakly-compressible Navier-Stokes equations.
This material class defines the functors to convert from specific enthalpy and pressure to temperature ('T_from_p_h') and to convert from temperature and pressure to specific enthalpy ('h_from_p_T').
When solving the enthalpy conservation equation and obtaining the specific enthalpy () as the solution, two functors are required. The 'T_from_p_h' functor computes the temperature field, which is then used to evaluate temperature-dependent thermophysical properties. The 'h_from_p_T' functor is primarily utilized for setting boundary conditions where the temperature is specified.
The specific enthalpy is defined as:
where
is the pressure and temperature-dependent specific heat
is a reference temperature where the reference enthalpy is defined
Example input syntax 1: Fluid Properties
In this input, a LinearFVEnthalpyFunctorMaterial
is defined to solve for a 1D heated channel using lead fluid properties with a fixed mass flux.
The FluidProperties
object for lead is defined in
[FluidProperties<<<{"href": "../../syntax/FluidProperties/index.html"}>>>]
[lead]
type = LeadFluidProperties<<<{"description": "Fluid properties for Lead", "href": "../fluidproperties/LeadFluidProperties.html"}>>>
[]
[]
(moose/modules/navier_stokes/test/tests/finite_volume/wcns/enthalpy_equation/1d_test_h_fp.i)Then, the LinearFVEnthalpyFunctorMaterial
is defined taking the FluidProperties
object as an input, which already contains the 'h_from_p_T' and 'T_from_p_h' functors defined.
[FunctorMaterials<<<{"href": "../../syntax/FunctorMaterials/index.html"}>>>]
[enthalpy_material]
type = LinearFVEnthalpyFunctorMaterial<<<{"description": "Creates functors for conversions between specific enthalpy and temperature", "href": "LinearFVEnthalpyFunctorMaterial.html"}>>>
pressure<<<{"description": "Pressure. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${p_ref}
T_fluid<<<{"description": "Fluid temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = T
h<<<{"description": "Specific Enthalpy. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = h
fp<<<{"description": "Fluid properties userobject"}>>> = lead
[]
[]
(moose/modules/navier_stokes/test/tests/finite_volume/wcns/enthalpy_equation/1d_test_h_fp.i)Example input syntax 2: User-Defined Properties
In this input, a LinearFVEnthalpyFunctorMaterial
is defined to solve for a 1D heated channel using FLiNaK properties with a fixed mass flux, defined by the user.
[FunctorMaterials<<<{"href": "../../syntax/FunctorMaterials/index.html"}>>>]
[enthalpy_material]
type = LinearFVEnthalpyFunctorMaterial<<<{"description": "Creates functors for conversions between specific enthalpy and temperature", "href": "LinearFVEnthalpyFunctorMaterial.html"}>>>
pressure<<<{"description": "Pressure. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${p_ref}
T_fluid<<<{"description": "Fluid temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = T
h<<<{"description": "Specific Enthalpy. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = h
h_from_p_T_functor<<<{"description": "User specified enthalpy from temperature functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = h_from_p_T_functor
T_from_p_h_functor<<<{"description": "User specified temperature from enthalpy functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = T_from_p_h_functor
[]
[]
(moose/modules/navier_stokes/test/tests/finite_volume/wcns/enthalpy_equation/1d_test_h.i)This functor material takes the user-defined 'h_from_p_T' and 'T_from_p_h' functors as inputs. The functors are defined in
[FunctorMaterials<<<{"href": "../../syntax/FunctorMaterials/index.html"}>>>]
[h_from_p_T_functor]
type = ParsedFunctorMaterial<<<{"description": "Computes a functor material from a parsed expression of other functors.", "href": "ParsedFunctorMaterial.html"}>>>
property_name<<<{"description": "Name to give the new functor material property"}>>> = 'h_from_p_T_functor'
functor_names<<<{"description": "Functors to use in the parsed expression"}>>> = 'T'
expression<<<{"description": "Expression to parse for the new functor material"}>>> = '${A_cp}*T+${B_cp}/2*(T^2)'
[]
[]
(moose/modules/navier_stokes/test/tests/finite_volume/wcns/enthalpy_equation/1d_test_h.i)[FunctorMaterials<<<{"href": "../../syntax/FunctorMaterials/index.html"}>>>]
[T_from_p_h_functor]
type = ParsedFunctorMaterial<<<{"description": "Computes a functor material from a parsed expression of other functors.", "href": "ParsedFunctorMaterial.html"}>>>
property_name<<<{"description": "Name to give the new functor material property"}>>> = 'T_from_p_h_functor'
functor_names<<<{"description": "Functors to use in the parsed expression"}>>> = 'h'
expression<<<{"description": "Expression to parse for the new functor material"}>>> = '(-${A_cp}+sqrt(${A_cp}^2+2*h*${B_cp}))/${B_cp}'
[]
[]
(moose/modules/navier_stokes/test/tests/finite_volume/wcns/enthalpy_equation/1d_test_h.i)for the linear specific heat:
[FunctorMaterials<<<{"href": "../../syntax/FunctorMaterials/index.html"}>>>]
[cp]
type = ADParsedFunctorMaterial<<<{"description": "Computes a functor material from a parsed expression of other functors.", "href": "ParsedFunctorMaterial.html"}>>>
property_name<<<{"description": "Name to give the new functor material property"}>>> = 'cp'
functor_names<<<{"description": "Functors to use in the parsed expression"}>>> = 'T'
expression<<<{"description": "Expression to parse for the new functor material"}>>> = '${A_cp}+${B_cp}*T'
[]
[]
(moose/modules/navier_stokes/test/tests/finite_volume/wcns/enthalpy_equation/1d_test_h.i)If using user-defined properties, it is the responsibility of the user to update these properties often enough. For example auxiliary variable properties would only be updated at the end of every time step by default, which would introduce a lag.
Input Parameters
- T_from_p_h_functorUser specified temperature from enthalpy functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
Controllable:No
Description:User specified temperature from enthalpy functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- declare_suffixAn optional suffix parameter that can be appended to any declared 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 declared properties. The suffix will be prepended with a '_' character.
- execute_onALWAYSThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:ALWAYS
C++ Type:ExecFlagEnum
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
- fpFluid properties userobject
C++ Type:UserObjectName
Controllable:No
Description:Fluid properties userobject
- h_from_p_T_functorUser specified enthalpy from temperature functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
Controllable:No
Description:User specified enthalpy from temperature functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
Optional Parameters
- 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.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
Advanced Parameters
- output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)
C++ Type:std::vector<std::string>
Controllable:No
Description:List of material properties, from this material, to output (outputs must also be defined to an output type)
- outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object
Default:none
C++ Type:std::vector<OutputName>
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object