- AArea of the flow channel, can be a constant or a function
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Area of the flow channel, can be a constant or a function
- fpFluid properties user object
C++ Type:UserObjectName
Controllable:No
Description:Fluid properties user object
- lengthLength of each axial section [m]
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Length of each axial section [m]
- n_elemsNumber of elements in each axial section
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Number of elements in each axial section
- orientationDirection of flow channel from start position to end position (no need to normalize). For curved flow channels, it is the (tangent) direction at the start position.
C++ Type:libMesh::VectorValue<double>
Unit:(no unit assumed)
Controllable:No
Description:Direction of flow channel from start position to end position (no need to normalize). For curved flow channels, it is the (tangent) direction at the start position.
- positionStart position of axis in 3-D space [m]
C++ Type:libMesh::Point
Controllable:No
Description:Start position of axis in 3-D space [m]
FlowChannel1Phase
This component is a single-phase flow channel, which implements the single-phase flow model.
Usage
The parameters "position", "orientation", "length", "n_elems", and "axial_region_names" are discussed in Axial Discretization.
"orientation" can only be used to specify a single direction and thus cannot be used to specify bends in a flow channel.
Each end of a flow channel must be connected to either a boundary or a junction (see Blocks and Boundaries for the boundary naming conventions).
The parameter "A" specifies the cross-sectional area of the flow channel.
The parameter "fp" specifies the name of a fluid properties object, and the parameter "closures" specifies the name of a closures object.
Initial conditions are specified for pressure, temperature, and velocity with the following parameters:
If passive transport variables should be modeled, then "passives_names" provides the names of these variables , and "initial_passives" provides the initial values. Note that the corresponding solution variables are , which appends _times_area to each of the provided names.
This component offers options to output quantities via vector post-processors:
"vpp_vars": Creates an ElementValueSampler with a vector for each of the listed variables (see below for a list of variables).
"create_flux_vpp": Creates a NumericalFlux3EqnInternalValues, which creates a vector for each numerical flux component (mass, momentum, energy) at the internal sides.
Input Parameters
- D_hHydraulic diameter [m]
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Hydraulic diameter [m]
- PoD1Pitch-to-diameter ratio for parallel bundle heat transfer [-]
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Pitch-to-diameter ratio for parallel bundle heat transfer [-]
- T_ref273.15Reference temperature [K]
Default:273.15
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Reference temperature [K]
- T_rel_step_tol1e-05Temperature relative step tolerance
Default:1e-05
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Temperature relative step tolerance
- axial_region_namesNames to assign to axial regions
C++ Type:std::vector<std::string>
Controllable:No
Description:Names to assign to axial regions
- closuresClosures object(s). This is optional since closure relations can be supplied directly by Materials as well.
C++ Type:std::vector<std::string>
Controllable:No
Description:Closures object(s). This is optional since closure relations can be supplied directly by Materials as well.
- create_flux_vppFalseIf true, create a VectorPostprocessor with the the mass, momentum, and energy side fluxes
Default:False
C++ Type:bool
Controllable:No
Description:If true, create a VectorPostprocessor with the the mass, momentum, and energy side fluxes
- energy_res_tol1e-05Energy equation normalized residual tolerance
Default:1e-05
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Energy equation normalized residual tolerance
- fWall friction factor [-]
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Wall friction factor [-]
- gravity_vector0 0 -9.81Gravitational acceleration vector [m/s^2]
Default:0 0 -9.81
C++ Type:libMesh::VectorValue<double>
Unit:(no unit assumed)
Controllable:No
Description:Gravitational acceleration vector [m/s^2]
- heat_transfer_geomPIPEConvective heat transfer geometry
Default:PIPE
C++ Type:MooseEnum
Controllable:No
Description:Convective heat transfer geometry
- initial_passivesInitial passive transport variable values in the flow channel, if any (units are [amount/m^3], where 'amount' may be mass (kg) or a number (molecules, moles, etc.))
C++ Type:std::vector<FunctionName>
Unit:(no unit assumed)
Controllable:No
Description:Initial passive transport variable values in the flow channel, if any (units are [amount/m^3], where 'amount' may be mass (kg) or a number (molecules, moles, etc.))
- mass_res_tol1e-05Mass equation normalized residual tolerance
Default:1e-05
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mass equation normalized residual tolerance
- momentum_res_tol1e-05Momentum equation normalized residual tolerance
Default:1e-05
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Momentum equation normalized residual tolerance
- name_multiple_ht_by_indexTrueIf true, when there are multiple heat transfer components connected to this flow channel, use their index for naming related quantities; otherwise, use the name of the heat transfer component.
Default:True
C++ Type:bool
Controllable:No
Description:If true, when there are multiple heat transfer components connected to this flow channel, use their index for naming related quantities; otherwise, use the name of the heat transfer component.
- p_ref101325Reference pressure [Pa]
Default:101325
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Reference pressure [Pa]
- p_rel_step_tol1e-05Pressure relative step tolerance
Default:1e-05
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Pressure relative step tolerance
- passives_namesNames for each passive transport variable [amount/m^3]. Note that the conserved (solution) variables will be an amount per unit volume multiplied by the channel cross-sectional area, yielding an amount per unit length; these solution variable names will append '_times_area' to the names given in this parameter.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Names for each passive transport variable [amount/m^3]. Note that the conserved (solution) variables will be an amount per unit volume multiplied by the channel cross-sectional area, yielding an amount per unit length; these solution variable names will append '_times_area' to the names given in this parameter.
- pipe_locationINTERIORPipe location within the bundle
Default:INTERIOR
C++ Type:MooseEnum
Controllable:No
Description:Pipe location within the bundle
- pipe_pars_transferredFalseSet to true if Dh, P_hf and A are going to be transferred in from an external source
Default:False
C++ Type:bool
Controllable:No
Description:Set to true if Dh, P_hf and A are going to be transferred in from an external source
- rotation0Angle of rotation about the x-axis [degrees]
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Angle of rotation about the x-axis [degrees]
- roughness0Roughness [m]
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Roughness [m]
- scaling_factor_passivesScaling factor for each passive transport variable
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Scaling factor for each passive transport variable
- vel_ref1Reference velocity [m/s]
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Reference velocity [m/s]
- vel_rel_step_tol1e-05Velocity relative step tolerance
Default:1e-05
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Velocity relative step tolerance
- vpp_varsVariables to add in an ElementValueSampler
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Variables to add in an ElementValueSampler
- wave_speed_formulationeinfeldtMethod for computing wave speeds
Default:einfeldt
C++ Type:MooseEnum
Controllable:No
Description:Method for computing wave speeds
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:No
Description:Set the enabled status of the MooseObject.
Advanced Parameters
- initial_TInitial temperature in the flow channel [K]
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:Yes
Description:Initial temperature in the flow channel [K]
- initial_pInitial pressure in the flow channel [Pa]
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:Yes
Description:Initial pressure in the flow channel [Pa]
- initial_velInitial velocity in the flow channel [m/s]
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:Yes
Description:Initial velocity in the flow channel [m/s]
Variable Initialization Parameters
- rdg_slope_reconstructionNONESlope reconstruction type for rDG spatial discretization
Default:NONE
C++ Type:MooseEnum
Controllable:No
Description:Slope reconstruction type for rDG spatial discretization
- scaling_factor_1phase1 1 1 Scaling factors for each single phase variable (rhoA, rhouA, rhoEA)
Default:1 1 1
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Scaling factors for each single phase variable (rhoA, rhouA, rhoEA)
Numerical Scheme Parameters
Mesh
Axial Discretization
This component generates a mesh along a line segment in 3D space. The line segment is defined with a "start" point , corresponding to either end, the direction to the other end, and the distance in that direction, . Thus the other end of the line segment is
These quantities are defined using the following parameters:
"position": the "start" point ,
"orientation": the direction (which gets automatically normalized), and
"length": the length(s) that sum to .
The most basic mesh specification is given by a single value for the parameters "length" and "n_elems", which correspond to the length of the component and number of uniformly-sized elements to use. For example, the following parameters would specify a total length m, divided into 100 elements (each with width 0.5 m):
length = 50
n_elems = 100
The "length" and "n_elems" parameters can also be supplied with multiple values. Multiple values correspond to splitting the length into segments that can have different element sizes. However, within each segment, the discretization is assumed uniform. The numbers of elements in each segment are specified with the parameter "n_elems", with entries corresponding to the entries in "length". For example, the following would also specify a total length m with 100 total elements, but in this case the first 10 m have 40 elements of size 0.25 m, whereas the last 40 m have 60 elements of size m.
length = '10 40'
n_elems = '40 60'
When using more than one entry in the "length" and "n_elems" parameters, the parameter "axial_region_names" is used to provide names that are used in the generation of corresponding block and boundary names (see Blocks and Boundaries).
Blocks and Boundaries
The user-given name to the flow channel component, say, <flow_channel>, is used internally to create a subdomain (also called a "block") name. If "length" has only one entry, then a single block of the name <flow_channel> is created; else the blocks <flow_channel>:<region> are created, where <region> is an entry in the "axial_region_names" parameter:
| Block | Description |
|---|---|
<flow_channel> | The 1D flow channel mesh (if only one entry in "length") |
<flow_channel>:<region> | The 1D flow channel mesh for region <region> (if more than one entry in "length") |
Additionally, two boundary names are created with the following convention:
| Boundary | Description |
|---|---|
<flow_channel_name>:in | The "start" end of the 1D flow channel mesh |
<flow_channel_name>:out | The "end" end of the 1D flow channel mesh |
Variables
The following solution variables are created on the flow channel:
| Variable | Symbol | Description |
|---|---|---|
rhoA | Mass per unit length [kg/m] | |
rhouA | Momentum per unit length; mass flow rate [kg/s] | |
rhoEA | Energy per unit length [J/m] | |
<passive_i>_times_area | Passive transport variable , if provided [amount/m] |
The following auxiliary variables are created on the flow channel:
| Variable | Symbol | Description |
|---|---|---|
A | Cross-sectional area [m] (piecewise constant) | |
A_linear | Cross-sectional area [m] (piecewise linear) | |
P_hf | Heated perimeter [m] | |
vel_x | Velocity component along the x-axis [m/s] (if specified to output vector-valued velocity) | |
vel_y | Velocity component along the y-axis [m/s] (if specified to output vector-valued velocity) | |
vel_z | Velocity component along the z-axis [m/s] (if specified to output vector-valued velocity) | |
vel | Velocity component along flow channel direction [m/s] (if specified not to output vector-valued velocity) | |
rho | Density [kg/m] | |
p | Pressure [Pa] | |
T | Temperature [K] | |
v | Specific volume [m/kg] | |
e | Specific internal energy [J/kg] | |
H | Specific total enthalpy [J/kg] |
Material Properties
The following material properties are created on the flow channel:
| Material Property | Symbol | Description |
|---|---|---|
direction | Flow channel direction vector [-] | |
rhoA | Mass per unit length [kg/m] (slope-reconstructed) | |
rhouA | Momentum per unit length; mass flow rate [kg/s] (slope-reconstructed) | |
rhoEA | Energy per unit length [J/m] (slope-reconstructed) | |
vel | Velocity component along flow channel direction [m/s] | |
rho | Density [kg/m] | |
p | Pressure [Pa] | |
T | Temperature [K] | |
v | Specific volume [m/kg] | |
e | Specific internal energy [J/kg] | |
h | Specific enthalpy [J/kg] | |
H | Specific total enthalpy [J/kg] | |
c | Sound speed [m/s] | |
cp | Isobaric specific heat capacity [J/(kg-K)] | |
cv | Isochoric specific heat capacity [J/(kg-K)] | |
k | Thermal conductivity [W/(m-K)] | |
mu | Dynamic viscosity [Pa-s] | |
f_D | Darcy friction factor [-] | |
D_h | Hydraulic diameter [m] | |
q_wall | Wall heat flux [W/m] (if no connected heat transfer) |
Formulation
See Berry et al. (2016) for a description of the single-phase flow formulation.
Convergence
If using ComponentsConvergence, a Convergence object of type MultiPostprocessorConvergence is used that returns CONVERGED if all of the following are true and returns ITERATING otherwise:
where
is the pressure at iteration ,
is the temperature at iteration ,
is the velocity at iteration ,
is a reference pressure,
is a reference temperature,
is a reference velocity,
is a reference density,
is a reference specific total energy,
is a reference cross-sectional area, evaluated at the midpoint of the channel,
is the minimum element size on the channel,
is a tolerance for the pressure step,
is a tolerance for the temperature step,
is a tolerance for the velocity step,
is the mass equation residual,
is the momentum equation residual,
is the energy equation residual,
is the mass equation tolerance,
is the momentum equation tolerance,
is the energy equation tolerance, and
is the norm over the channel.
This object always returns ITERATING for the first iteration due to the usage of step criteria.
The following parameters are relevant for these checks:
"p_ref": The reference pressure ,
"T_ref": The reference temperature ,
"vel_ref": The reference velocity ,
"p_rel_step_tol": The relative step tolerance for pressure ,
"T_rel_step_tol": The relative step tolerance for temperature ,
"vel_rel_step_tol": The relative step tolerance for velocity ,
"mass_res_tol": The mass residual tolerance ,
"momentum_res_tol": The momentum residual tolerance ,
"energy_res_tol": The energy residual tolerance .
References
- R. A. Berry, L. Zou, H. Zhao, H. Zhang, J. W. Peterson, R. C. Martineau, S. Y. Kadioglu, and D. Andrs.
RELAP-7 theory manual.
Technical Report INL/EXT-14-31366, Idaho National Laboratory, 2016.[BibTeX]