FlowChannel1Phase

This component is a single-phase flow channel.

Usage

The parameters "position", "orientation", "length", "n_elems", and "axial_region_names" are discussed in Axial Discretization.

commentnote

"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:

Input Parameters

  • AArea of the flow channel, can be a constant or a function

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:Yes

    Description:Area of the flow channel, can be a constant or a function

  • closuresClosures type

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:Closures type

  • fpFluid properties user object

    C++ Type:UserObjectName

    Unit:(no unit assumed)

    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>

    Unit:(no unit assumed)

    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

    Unit:(no unit assumed)

    Controllable:No

    Description:Start position of axis in 3-D space [m]

Required Parameters

  • D_hHydraulic diameter [m]

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:Yes

    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 [-]

  • axial_region_namesNames to assign to axial regions

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Names to assign to axial regions

  • fWall friction factor [-]

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:Yes

    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

    Unit:(no unit assumed)

    Options:HEX_ROD_BUNDLE, PIPE, ROD_BUNDLE

    Controllable:No

    Description:Convective heat transfer geometry

  • 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

    Unit:(no unit assumed)

    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.

  • pipe_locationINTERIORPipe location within the bundle

    Default:INTERIOR

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:CORNER, EDGE, INTERIOR

    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

    Unit:(no unit assumed)

    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]

Optional Parameters

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

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

    Unit:(no unit assumed)

    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

    Unit:(no unit assumed)

    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

  • lump_mass_matrixFalseLump the mass matrix

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Lump the mass matrix

  • rdg_slope_reconstructionNONESlope reconstruction type for rDG spatial discretization

    Default:NONE

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:FULL, MC, MINMOD, NONE, SUPERBEE

    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 xstart\mathbf{x}_\text{start}, corresponding to either end, the direction d\mathbf{d} to the other end, and the distance in that direction, LL. Thus the other end of the line segment is

xend=xstart+Ld\eqp\mathbf{x}_\text{end} = \mathbf{x}_\text{start} + L \mathbf{d} \eqp

These quantities are defined using the following parameters:

  • "position": the "start" point xstart\mathbf{x}_\text{start},

  • "orientation": the direction d\mathbf{d} (which gets automatically normalized), and

  • "length": the length(s) that sum to LL.

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 L=50L = 50 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 L=50L = 50 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 0.6ˉ0.\bar{6} 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:

BlockDescription
<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:

BoundaryDescription
<flow_channel_name>:inThe "start" end of the 1D flow channel mesh
<flow_channel_name>:outThe "end" end of the 1D flow channel mesh

Variables

The following solution variables are created on the flow channel:

VariableSymbolDescription
rhoAρA\rho AMass per unit length [kg/m]
rhouAρuA\rho u AMomentum per unit length; mass flow rate [kg/s]
rhoEAρEA\rho E AEnergy per unit length [J/m]

The following auxiliary variables are created on the flow channel:

VariableSymbolDescription
AAACross-sectional area [m2^2] (piecewise constant)
A_linearAACross-sectional area [m2^2] (piecewise linear)
P_hfPheatP_\text{heat}Heated perimeter [m]
vel_xuxu_xVelocity component along the x-axis [m/s] (if specified to output vector-valued velocity)
vel_yuyu_yVelocity component along the y-axis [m/s] (if specified to output vector-valued velocity)
vel_zuzu_zVelocity component along the z-axis [m/s] (if specified to output vector-valued velocity)
veluuVelocity component along flow channel direction [m/s] (if specified not to output vector-valued velocity)
rhoρ\rhoDensity [kg/m3^3]
pppPressure [Pa]
TTTTemperature [K]
vvvSpecific volume [m3^3/kg]
eeeSpecific internal energy [J/kg]
HHHSpecific total enthalpy [J/kg]

Material Properties

The following material properties are created on the flow channel:

Material PropertySymbolDescription
directiond\mathbf{d}Flow channel direction vector [-]
rhoAρA\rho AMass per unit length [kg/m] (slope-reconstructed)
rhouAρuA\rho u AMomentum per unit length; mass flow rate [kg/s] (slope-reconstructed)
rhoEAρEA\rho E AEnergy per unit length [J/m] (slope-reconstructed)
veluuVelocity component along flow channel direction [m/s]
rhoρ\rhoDensity [kg/m3^3]
pppPressure [Pa]
TTTTemperature [K]
vvvSpecific volume [m3^3/kg]
eeeSpecific internal energy [J/kg]
hhhSpecific enthalpy [J/kg]
HHHSpecific total enthalpy [J/kg]
cccSound speed [m/s]
cpcpc_pIsobaric specific heat capacity [J/(kg-K)]
cvcvc_vIsochoric specific heat capacity [J/(kg-K)]
kkkThermal conductivity [W/(m-K)]
muμ\muDynamic viscosity [Pa-s]
f_DfDf_DDarcy friction factor [-]
D_hDhD_hHydraulic diameter [m]
q_wallqwallq_\text{wall}Wall heat flux [W/m2^2] (if no connected heat transfer)

Formulation

See Berry et al. (2016) for a description of the single-phase flow formulation.

References

  1. 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]