- axial_power_profile_cdfFunction describing cumulative distribution function of the axial power profile as a function of time and position.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Function describing cumulative distribution function of the axial power profile as a function of time and position.
- boundaryThe list of boundary IDs from the mesh where this material applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundary IDs from the mesh where this material applies
- inlet_massflux_functionFunction for inlet mass flux in kg/m2/s as a function of time.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Function for inlet mass flux in kg/m2/s as a function of time.
- inlet_temperature_functionFunction for inlet temperature in K as a function of time.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Function for inlet temperature in K as a function of time.
- rod_linear_powerFunction describing linear power in W/m as a function of time.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Function describing linear power in W/m as a function of time.
- temperatureCoupled temperature variable. Only used in computing the heat flux for visualization and not in computation of coolant channel properties.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Coupled temperature variable. Only used in computing the heat flux for visualization and not in computation of coolant channel properties.
SodiumCoolantChannelMaterial
Computes the coolant temperature and heat transfer coefficient for sodium in a typical sodium fast reactor assembly. This material is to be used in conjunction with the ConvectiveHeatFluxBC boundary condition, This material can only be applied to boundaries.
Description
SodiumCoolantChannelMaterial computes two material properties, coolant_channel_htc and coolant_temperature, on a boundary. These two properties are then passed to ConvectiveHeatFluxBC or ADConvectiveHeatFluxBC to compute the heat flux and apply the proper boundary condition to the temperature variable. SodiumCoolantChannelMaterial is not an AD material as it does not depend on any other field variables such as temperature or displacements. Instead, SodiumCoolantChanelMaterial uses the flow channel parameters to compute the coolant channel temperature due to heat up of the coolant from the fuel pin, and the heat transfer coefficient of the sodium.
Sodium properties
SodiumCoolantChannelMaterial utilizes the SodiumProperties user object from the Fluid Properties module. This allows for a consistant set of properties for utilization in this, and other models, although SodiumCoolantChannelMaterial will only utilize the formulations for specific heat, , and thermal conductivity, .
Flow channel geometry
Several important parameters are required for calculation of the coolant temperature and heat transfer coefficient based on the pin geometry. In general, the assembly geometry can be defined using the rod diameter, , and wire wrap around the pin, . Following the formulations in Waltar et al. (2011), the flow area and wetted perimeters will be different depending on the location of the pin in the assembly (see Figure 1).

Figure 1: Schematic of flow channels in a typical sodium fast reactor (Waltar et al., 2011).
In a typical sodium fast reactor assembly, fuel rods are bundled, with their spacing enforced by the wire spacing. This results in a hexagonal pitch, or distance between the center of adjacent pins, that can be determined as, (1) This bundle of pins is then surrounded by a hexagonal steel duct that restricts sodium cross-flow between assemblies and mechanically constrains the pins. This results in three types of flow channels: interior, edge, and corner flow channels. The majority of the sodium flow passes through the "interior" channels within the assembly, in which a flow channel passes between three rods. A small subsection of the sodium will pass through the "edge" flow channels pins in which sodium flows between fuel pins and the side of the duct. An even smaller amount of sodium will flow through the "corner" of the duct in which the flow channel is comprised of the duct corner and one fuel pin.
Each of these flow channels will have different flow areas, and wetted perimeters, :
For interior flow channels, (2)
For edge flow channels, (3)
For corner flow channels, (4)
Each pin will impart energy to a combination of flow channels and areas, resulting in a fuel pin-centric flow area, and fuel pin-centric wetted perimeter, unique for "interior", "edge", and "corner" fuel pins:
For interior pins, (5)
For edge pins, (6)
For corner pins, (7)
From these, the hydraulic diameter can be computed for the given pin location, (8) using the formulations in Eq. (5), Eq. (6), and Eq. (7).
Coolant Temperature
The coolant temperature, , at a given axial position is computed from the inlet temperature as a function of the integrated linear power of the rod , the mass flow rate, , and the specific heat of the sodium, (9) where and are the axial coordinates of the top and bottom of the fuel respectively, and is evaluated at the inlet temperature in order to simplify the integral as it is only weakly dependent on temperature. Here, the mass flow rate is calculated from the mass flux, , and flow area, , (10) The integrated rod power in Eq. (9) is calculated by multiplying the rod linear power, , by the fuel pellet length, and the integrated axial power profile up to , (11) In SodiumCoolantChanelMaterial, the mass flux and total rod power are provided as time varying functions. While the axial power profile is also a function, it must be provided by PowerPeakingFunction using the cdf = true input parameter in order to correctly calculate the integral in Eq. (11).
Below the bottom of the fuel pellet, the integral in Eq. (9) is forced to be zero, thus there is no temperature rise. Above the top of the fuel pellet, the integral in Eq. (9) is forced to be one, resulting in an outlet coolant temperature at the top of the cladding to be the same as the coolant temperature at the top of the fuel pellet.
Heat Transfer Coefficient
The heat transfer coefficient can be computed externally from a function, or internally using either the Fast Flux Test Reactor (FFTF) correlation, or the Borishanskii, Gotovskii, and Firsova (BGF) correlation. For the FFTF and BGF correlation, the model specific Nusselt number is used to compute the local heat transfer coefficient by, (12) where the hydraulic diameter is calculated via Eq. (8). Here, each Nusselt number is determined by the local Peclet number: (13) where the specific heat and thermal conductivity are computed using the local coolant temperature.
FFTF Correlation
The FFTF correlation from Calamai et al. (1974) is valid for Peclet numbers between , for any pitch to diameter ratio: (14) In general, tends to be conservative by underestimating the number when compared to experimental data points and other correlations.
BFG correlation
The BGF correlation from Borishanskii et al. (1969) is valid for Peclet numbers between , and for pitch to diameter ratios between : (15) where From the discussion in Waltar et al. (2011), the BFG seems to be the most realistic heat transfer correlation.
Example Input Syntax
A typical implementation of SodiumCoolantChanelMaterial with the FFTF correlation is:
[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
[coolant]
type = SodiumCoolantChannelMaterial<<<{"description": "Computes the coolant temperature and heat transfer coefficient for sodium in a typical sodium fast reactor assembly. This material is to be used in conjunction with the ConvectiveHeatFluxBC boundary condition, This material can only be applied to boundaries.", "href": "SodiumCoolantChannelMaterial.html"}>>>
inlet_temperature_function<<<{"description": "Function for inlet temperature in K as a function of time."}>>> = 648.0
rod_linear_power<<<{"description": "Function describing linear power in W/m as a function of time."}>>> = dp16_power
inlet_massflux_function<<<{"description": "Function for inlet mass flux in kg/m2/s as a function of time."}>>> = 5262.0
axial_power_profile_cdf<<<{"description": "Function describing cumulative distribution function of the axial power profile as a function of time and position."}>>> = row_4_cdf
pellet_height<<<{"description": "Height of fuel pellet in m."}>>> = 3.442e-01
cladding_radius<<<{"description": "Cladding outer radius in m."}>>> = 2.921e-03
boundary<<<{"description": "The list of boundary IDs from the mesh where this material applies"}>>> = clad_outside_right
wire_wrap_diameter<<<{"description": "Diameter of wire wrap in m."}>>> = 1.067e-03
temperature<<<{"description": "Coupled temperature variable. Only used in computing the heat flux for visualization and not in computation of coolant channel properties."}>>> = temp
sodium_user_object<<<{"description": "Name of the sodium user object"}>>> = sodium_uo
htc_model<<<{"description": "Thermal conductivity model. Choices are: BGF FFTF function"}>>> = BGF
update_temperature<<<{"description": "Flag to update temperature due to heating. If false, the coolant temperature will always equal the inlet temperature."}>>> = true
pin_location<<<{"description": "Pin location in the assembly. Choices are: interior edge corner"}>>> = interior
peclet_limit_behavior<<<{"description": "Behavior when Peclet number is outside bounds of current htc model. Choices are: nothing warning error"}>>> = error
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
[]
[](test/tests/sodium_coolant_channel/dp16.i)As discussed above, SodiumCoolantChanelMaterial requires a PowerPeakingFunction using the cdf = true input parameter:
[Functions<<<{"href": "../../syntax/Functions/index.html"}>>>]
[row_4_cdf]
type = PowerPeakingFunction<<<{"description": "Computes an axial power profile applied to the fuel from a third order polynomial.", "href": "../functions/PowerPeakingFunction.html"}>>>
fit<<<{"description": "Fitting parameters for the 3rd order power peaking factor equation. Use EBR-II_ROW_3 for irradiaiton in rows 1-3, EBR-II_ROW_4 for irradiation in rows 4-6, and custom to manually input coefficients."}>>> = EBRII_ROW_4
pellet_length<<<{"description": "Length of fuel pellet."}>>> = 3.442e-01
pellet_y_start<<<{"description": "y position of start of fuel pellet."}>>> = 2.24e-3
zero_beyond_top_and_bottom<<<{"description": "Set the function to zero above and below the y position start and end. Note that this parameter will not ensure normalization of the function."}>>> = true
cdf<<<{"description": "Flag to return the cumulative distribution function."}>>> = true
[]
[](test/tests/sodium_coolant_channel/dp16.i)In addition, the material properties computed by SodiumCoolantChanelMaterial can be passed to ConvectiveHeatFluxBC
[BCs<<<{"href": "../../syntax/NuclearMaterials/BCs/index.html"}>>>]
[temp]
type = ConvectiveHeatFluxBC<<<{"description": "Convective heat transfer boundary condition with temperature and heat transfer coefficent given by material properties.", "href": "../bcs/ConvectiveHeatFluxBC.html"}>>>
T_infinity<<<{"description": "Material property for far-field temperature"}>>> = coolant_temperature
heat_transfer_coefficient<<<{"description": "Material property for heat transfer coefficient"}>>> = coolant_channel_htc
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temp
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'right'
[]
[](test/tests/sodium_coolant_channel/htc_function.i)Input Parameters
- cladding_radius-1Cladding outer radius in m.
Default:-1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Cladding outer radius in m.
- cladding_radius_mesh_property_namecladding_radiusThe mesh metadata name of cladding radius.
Default:cladding_radius
C++ Type:std::string
Controllable:No
Description:The mesh metadata name of cladding radius.
- computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
Default:True
C++ Type:bool
Controllable:No
Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
- constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
Default:NONE
C++ Type:MooseEnum
Controllable:No
Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
- 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.
- htc_functionFunction describing heat transfer coefficient as a function of temperature and position. Required if htc_model = function.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Function describing heat transfer coefficient as a function of temperature and position. Required if htc_model = function.
- htc_modelBGFThermal conductivity model. Choices are: BGF FFTF function
Default:BGF
C++ Type:MooseEnum
Controllable:No
Description:Thermal conductivity model. Choices are: BGF FFTF function
- htc_scalar1Scalar multiplied against the heat transfer coefficient
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Scalar multiplied against the heat transfer coefficient
- mesh_generatorThe name of the generator to use as the prefix for mesh meta data properties.
C++ Type:MeshGeneratorName
Controllable:No
Description:The name of the generator to use as the prefix for mesh meta data properties.
- peclet_limit_behaviorerrorBehavior when Peclet number is outside bounds of current htc model. Choices are: nothing warning error
Default:error
C++ Type:MooseEnum
Controllable:No
Description:Behavior when Peclet number is outside bounds of current htc model. Choices are: nothing warning error
- pellet_height-1Height of fuel pellet in m.
Default:-1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Height of fuel pellet in m.
- pellet_height_mesh_property_namefuel_heightThe mesh metadata name of pellet height.
Default:fuel_height
C++ Type:std::string
Controllable:No
Description:The mesh metadata name of pellet height.
- pin_locationinteriorPin location in the assembly. Choices are: interior edge corner
Default:interior
C++ Type:MooseEnum
Controllable:No
Description:Pin location in the assembly. Choices are: interior edge corner
- sodium_user_objectsodiumName of the sodium user object
Default:sodium
C++ Type:UserObjectName
Controllable:No
Description:Name of the sodium user object
- update_temperatureTrueFlag to update temperature due to heating. If false, the coolant temperature will always equal the inlet temperature.
Default:True
C++ Type:bool
Controllable:No
Description:Flag to update temperature due to heating. If false, the coolant temperature will always equal the inlet temperature.
- use_metadataFalseWhether to use the cladding radius, wire wrap diameter, and pellet height value from MeshMetaDataInterface.
Default:False
C++ Type:bool
Controllable:No
Description:Whether to use the cladding radius, wire wrap diameter, and pellet height value from MeshMetaDataInterface.
- wire_wrap_diameter-1Diameter of wire wrap in m.
Default:-1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Diameter of wire wrap in m.
- wire_wrap_diameter_mesh_property_namewire_wrap_diameterThe mesh metadata name of wire wrap diameter.
Default:wire_wrap_diameter
C++ Type:std::string
Controllable:No
Description:The mesh metadata name of wire wrap diameter.
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
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
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
Outputs 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
Input Files
- (test/tests/sodium_coolant_channel/htc_fftf_edge.i)
- (test/tests/sodium_coolant_channel/heated.i)
- (test/tests/metallic_fuel_coolant_wastage/cc_wastage_ht9_eff_full_pin.i)
- (test/tests/sodium_coolant_channel/dp16.i)
- (test/tests/sodium_coolant_channel/htc_fftf.i)
- (test/tests/ad_metallic_fuel_coolant_wastage/cc_wastage_ht9_eff_full_pin.i)
- (test/tests/sodium_coolant_channel/htc_function.i)
- (test/tests/sodium_coolant_channel/htc_fftf_corner.i)
- (test/tests/sodium_coolant_channel/htc_bgf.i)
- (test/tests/sodium_coolant_channel/dp11.i)
- (assessment/metallic_fuel/FBTA/analysis/steady_state/AK181/181193/IFR1_181193.i)
References
- V M Borishanskii, M A Gotovskii, and É V Firsova.
Heat transfer to liquid metals in longitudinally wetted bundles of rods.
Soviet Atomic Energy, 27(6):1347–1350, 1969.[BibTeX]
- GJ Calamai, RD Coffield, L Jossens, JL Kerian, JV Miller, EH Novendstern, GH Ursim, H West, and PJ Wood.
Steady state thermal and hydraulic characteristics of the fftf fuel assemblies.
FRT-1582, June, 1974.[BibTeX]
- A.E. Waltar, D.R. Todd, and P.V. Tsvetkov.
Fast Spectrum Reactors.
Springer US, 2011.
ISBN 9781441995728.
URL: https://books.google.com/books?id=z8z\_RNUZSbEC.[BibTeX]