- 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.
SCMHTCKazimiCarelli
Class that computes the convective heat transfer coefficient using the Kazimi-Carelli correlation. Only use for fuel-pins.
The HTC closure models inherit from: SCMHTCClosureBase.
Kazimi-Carelli Correlation for Turbulent Nusselt Number
The Kazimi-Carelli correlation Kazimi and Carelli (1976) is used for calculating the Nusselt number in triangular fuel-pin bundles, considering the geometry of the bundle.
where:
: Nusselt number
: Pitch, the center-to-center distance between neighboring fuel-pins
: Diameter of the fuel-pin
: Pitch-to-diameter ratio
: Peclet number ()
: Reynolds number
: Prandtl number
The Kazimi-Carelli correlation is not currently implemented for computing the duct surface temperature.
It is applicable for fuel pin bundles with and . The Kazimi and Carelli correlation under-estimates Nu at high values of P/D Todreas and Kazimi (2021).
Input 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
References
- MS Kazimi and MD Carelli.
Clinch river breeder reactor plant. heat transfer correlation for analysis of crbrp assemblies.
Technical Report, Westinghouse Electric Corp., Madison, PA (United States). Advanced Reactors Div., 1976.[Export]
BibTeX
@techreport{kazimi1976, author = "Kazimi, MS and Carelli, MD", title = "Clinch River breeder reactor plant. Heat transfer correlation for analysis of CRBRP assemblies", year = "1976", institution = "Westinghouse Electric Corp., Madison, PA (United States). Advanced Reactors Div." }RIS
TY - RPRT AU - Kazimi, MS AU - Carelli, MD TI - Clinch River breeder reactor plant. Heat transfer correlation for analysis of CRBRP assemblies PY - 1976 ER -Plain Text
MS Kazimi and MD Carelli. Clinch river breeder reactor plant. heat transfer correlation for analysis of crbrp assemblies. Technical Report, Westinghouse Electric Corp., Madison, PA (United States). Advanced Reactors Div., 1976. - Neil E Todreas and Mujid S Kazimi.
Nuclear systems volume I: Thermal hydraulic fundamentals.
CRC press, 2021.[Export]
BibTeX
@book{todreas2021nuclear1, author = "Todreas, Neil E and Kazimi, Mujid S", title = "Nuclear systems volume I: Thermal hydraulic fundamentals", year = "2021", publisher = "CRC press" }RIS
TY - BOOK AU - Todreas, Neil E AU - Kazimi, Mujid S TI - Nuclear systems volume I: Thermal hydraulic fundamentals PY - 2021 PB - CRC press ER -Plain Text
Neil E Todreas and Mujid S Kazimi. Nuclear systems volume I: Thermal hydraulic fundamentals. CRC press, 2021.
(modules/subchannel/test/tests/SCMTriPower/postprocessor_power.i)
# Assigns q_prime with SCMTriPowerIC from a power supplied by a postprocessor, without solving for
# the coolant, and integrates q_prime over the pins to check that it carries that power
power = 7000.0 # W
# Seven pins: the center pin and one ring of six
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = 2
n_cells = 10
heated_length = 1.0
flat_to_flat = 0.0769620
pin_diameter = 0.024638
pitch = 0.027813
dwire = 0.0
hwire = 0.0
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = 'sin(pi*z)'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 1.01325e5 # Pa
compute_density = false
compute_viscosity = false
compute_power = false
# Only q_prime is assigned and checked, so the coolant is not solved for
solve = false
friction_closure = uctd_friction
mixing_closure = kim_chung_mixing
pin_HTC_closure = kazimi_carelli_htc
[]
[SCMClosures]
[uctd_friction]
type = SCMFrictionUpgradedChengTodreas
[]
[kim_chung_mixing]
type = SCMMixingKimAndChung
[]
[kazimi_carelli_htc]
type = SCMHTCKazimiCarelli
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = power_pp
filename = 'seven_pin_power_profile.txt'
axial_heat_rate = axial_heat_rate
[]
[]
[Postprocessors]
[power_pp]
type = FunctionValuePostprocessor
function = ${power}
execute_on = 'initial'
[]
# Trapezoidal integral of q_prime over the pins, as used by the subchannel solver
[q_prime_power]
type = SCMPinPowerPostprocessor
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(modules/subchannel/test/tests/problems/SFR/sodium-7pin/case1_scm.i)
T_in = 667.15
outlet_pressure = 1.01325e5
assembly_power = 4000.0
volume_flow_rate = 0.002090242
rho_in = '${fparse 1004.23 - 0.21390 * T_in - 1.1046e-5 * T_in * T_in}'
mass_flow_rate = '${fparse volume_flow_rate * rho_in}'
core_length = 1.145
pin_pitch = 0.027813
pin_diameter = 0.024638
duct_inner_ftf = 0.0769620
n_pins = 7
flow_area = ${fparse sqrt(3)/2 * duct_inner_ftf ^2 - n_pins * pi * pin_diameter^2 / 4}
mass_flux_in = '${fparse mass_flow_rate / flow_area}'
axial_shape_scale = 1.33449883449883
[TriSubChannelMesh]
[assembly]
type = SCMTriAssemblyMeshGenerator
nrings = 2
n_cells = 20
heated_length = ${core_length}
flat_to_flat = ${duct_inner_ftf}
pin_diameter = ${pin_diameter}
pitch = ${pin_pitch}
dwire = 0.0
hwire = 0.0
spacer_z = '0.0'
spacer_k = '0.0'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[Functions]
[axial_heat_rate]
type = PiecewiseConstant
axis = z
x = '0.000 0.118 0.641 0.692 1.027'
y = '0.0 ${axial_shape_scale} 0.0 ${axial_shape_scale} 0.0'
direction = left
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${outlet_pressure}
compute_density = true
compute_viscosity = true
compute_power = true
implicit = true
segregated = false
interpolation_scheme = upwind
gravity = counter_flow
friction_closure = uctd_friction
mixing_closure = kim_chung_mixing
pin_HTC_closure = kazimi_carelli_htc
P_tol = 1.0e-8
T_tol = 1.0e-8
rtol = 1.0e-10
atol = 1.0e-10
full_output = true
verbose_subchannel = true
[]
[SCMClosures]
[uctd_friction]
type = SCMFrictionChenTodreas
[]
[kim_chung_mixing]
type = SCMMixingKimAndChung
[]
[kazimi_carelli_htc]
type = SCMHTCKazimiCarelli
[]
[]
[ICs]
[q_prime_ic]
type = SCMTriPowerIC
variable = q_prime
power = ${assembly_power}
filename = "pin_power_profile7.txt"
axial_heat_rate = axial_heat_rate
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = ${pin_diameter}
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[mu_ic]
type = ViscosityIC
variable = mu
p = ${outlet_pressure}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${outlet_pressure}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${outlet_pressure}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[inlet_temperature]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = timestep_begin
[]
[inlet_mass_flow]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = timestep_begin
[]
[]
[Postprocessors]
# For nrings = 2, channels 0-5 are center channels and the perimeter channels then alternate
# edge/corner. Sample one center, one edge, and one corner channel at the outlet.
[T_center_out]
type = SubChannelPointValue
variable = T
index = 0
execute_on = 'timestep_end'
height = ${core_length}
[]
[T_edge_out]
type = SubChannelPointValue
variable = T
index = 6
execute_on = 'timestep_end'
height = ${core_length}
[]
[T_corner_out]
type = SubChannelPointValue
variable = T
index = 7
execute_on = 'timestep_end'
height = ${core_length}
[]
[mdot_center_out]
type = SubChannelPointValue
variable = mdot
index = 0
execute_on = 'timestep_end'
height = ${core_length}
[]
[mdot_edge_out]
type = SubChannelPointValue
variable = mdot
index = 6
execute_on = 'timestep_end'
height = ${core_length}
[]
[mdot_corner_out]
type = SubChannelPointValue
variable = mdot
index = 7
execute_on = 'timestep_end'
height = ${core_length}
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
exodus = false
[]
(modules/subchannel/test/tests/SCMTriPower/seven_pin_shapes.i)
T_in = 667.15
outlet_pressure = 1.01325e5 # Pa
volume_flow_rate = 0.002090242 # m^3/s
rho_in = '${fparse 1004.23 - 0.21390 * T_in - 1.1046e-5 * T_in * T_in}'
duct_inner_ftf = 0.0769620
pin_diameter = 0.024638
flow_area = '${fparse sqrt(3)/2 * duct_inner_ftf^2 - 7 * pi * pin_diameter^2 / 4}'
mass_flux_in = '${fparse volume_flow_rate * rho_in / flow_area}'
heated_length = 1.0
pin_pitch = 0.027813
# Uniform radial weights, so each of the 7 pins should receive 1/7 of this power
power = 7000.0 # W
# Seven pins: the center pin at the origin and six outer pins one pitch away from it
[TriSubChannelMesh]
[assembly]
type = SCMTriAssemblyMeshGenerator
nrings = 2
n_cells = 10
heated_length = ${heated_length}
flat_to_flat = ${duct_inner_ftf}
pin_diameter = ${pin_diameter}
pitch = ${pin_pitch}
dwire = 0.0
hwire = 0.0
[]
[]
[Functions]
# A sine shape on the center pin and a linear shape on the outer pins. Neither is normalized
# to the heated length. The break at half a pitch from the center lies between the pins.
[axial_heat_rate]
type = ParsedFunction
expression = 'if(sqrt(x*x + y*y) < 0.5*p, sin(pi*z/L), 5*z/L)'
symbol_names = 'L p'
symbol_values = '${heated_length} ${pin_pitch}'
[]
[]
[AuxVariables]
[q_prime_aux]
block = fuel_pins
[]
[q_prime_IC_center]
block = fuel_pins
[]
[q_prime_IC_outer]
block = fuel_pins
[]
[q_prime_aux_center]
block = fuel_pins
[]
[q_prime_aux_outer]
block = fuel_pins
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${outlet_pressure}
compute_density = true
compute_viscosity = true
compute_power = true
implicit = true
segregated = false
interpolation_scheme = upwind
friction_closure = uctd_friction
mixing_closure = kim_chung_mixing
pin_HTC_closure = kazimi_carelli_htc
P_tol = 1.0e-8
T_tol = 1.0e-8
rtol = 1.0e-10
atol = 1.0e-10
[]
[SCMClosures]
[uctd_friction]
type = SCMFrictionUpgradedChengTodreas
[]
[kim_chung_mixing]
type = SCMMixingKimAndChung
[]
[kazimi_carelli_htc]
type = SCMHTCKazimiCarelli
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${power}
filename = 'seven_pin_power_profile.txt'
axial_heat_rate = axial_heat_rate
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[mu_ic]
type = ViscosityIC
variable = mu
p = ${outlet_pressure}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${outlet_pressure}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${outlet_pressure}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[q_prime_AUX]
type = SCMTriPowerAux
variable = q_prime_aux
power = ${power}
filename = 'seven_pin_power_profile.txt'
axial_heat_rate = axial_heat_rate
execute_on = 'initial'
[]
# Split q_prime between the center pin and the outer pins so each power is integrated separately
[IC_center]
type = ParsedAux
variable = q_prime_IC_center
coupled_variables = 'q_prime'
expression = 'if(sqrt(x*x + y*y) < 0.5*${pin_pitch}, q_prime, 0)'
use_xyzt = true
[]
[IC_outer]
type = ParsedAux
variable = q_prime_IC_outer
coupled_variables = 'q_prime'
expression = 'if(sqrt(x*x + y*y) > 0.5*${pin_pitch}, q_prime, 0)'
use_xyzt = true
[]
[aux_center]
type = ParsedAux
variable = q_prime_aux_center
coupled_variables = 'q_prime_aux'
expression = 'if(sqrt(x*x + y*y) < 0.5*${pin_pitch}, q_prime_aux, 0)'
use_xyzt = true
[]
[aux_outer]
type = ParsedAux
variable = q_prime_aux_outer
coupled_variables = 'q_prime_aux'
expression = 'if(sqrt(x*x + y*y) > 0.5*${pin_pitch}, q_prime_aux, 0)'
use_xyzt = true
[]
[inlet_temperature]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
[]
[inlet_mass_flow]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Postprocessors]
[center_pin_power_IC]
type = ElementIntegralVariablePostprocessor
variable = q_prime_IC_center
block = fuel_pins
[]
[outer_pins_power_IC]
type = ElementIntegralVariablePostprocessor
variable = q_prime_IC_outer
block = fuel_pins
[]
[center_pin_power_aux]
type = ElementIntegralVariablePostprocessor
variable = q_prime_aux_center
block = fuel_pins
[]
[outer_pins_power_aux]
type = ElementIntegralVariablePostprocessor
variable = q_prime_aux_outer
block = fuel_pins
[]
[total_power_TH]
type = SCMTHPowerPostprocessor
[]
[]
[VectorPostprocessors]
# Axial q_prime profile of all pins
[q_prime_profiles]
type = NodalValueSampler
variable = 'q_prime q_prime_aux'
block = fuel_pins
sort_by = id
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(modules/subchannel/test/tests/problems/heat_transfer_correlations/XX09_SCM_SS17.i)
# Following Benchmark Specifications and Data Requirements for EBR-II Shutdown Heat Removal Tests SHRT-17 and SHRT-45R
# Available at: https://publications.anl.gov/anlpubs/2012/06/73647.pdf
###################################################
# Steady state subchannel calcultion
# Thermal-hydraulics parameters
###################################################
T_in = 624.70556 #Kelvin
Total_Surface_Area = 0.000854322 #m2
Mass_In = 2.45 #kg/sec
mass_flux_in = '${fparse Mass_In / Total_Surface_Area}' #kg/m2
P_out = 2.0e5 #Pa
Power_initial = 486200 #W (Page 26,35 of ANL document)
###################################################
# Geometric parameters
###################################################
scale_factor = 0.01
fuel_pin_pitch = '${fparse 0.5664*scale_factor}'
fuel_pin_diameter = '${fparse 0.4419*scale_factor}'
wire_z_spacing = '${fparse 15.24*scale_factor}'
wire_diameter = '${fparse 0.1244*scale_factor}'
inner_duct_in = '${fparse 4.64*scale_factor}'
n_rings = 5
heated_length = '${fparse 34.3*scale_factor}'
unheated_length_exit = '${fparse 26.9*scale_factor}'
###################################################
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = ${n_rings}
n_cells = 20
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pin_diameter = ${fuel_pin_diameter}
pitch = ${fuel_pin_pitch}
dwire = ${wire_diameter}
hwire = ${wire_z_spacing}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
nrings = ${n_rings}
n_cells = 20
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(pi/2)*sin(pi*z/L)*exp(-alpha*z)/(1.0/alpha*(1.0 - exp(-alpha*L)))*L'
symbol_names = 'L alpha'
symbol_values = '${heated_length} 1.8012'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-4
T_tol = 1.0e-5
implicit = true
segregated = false
interpolation_scheme = 'upwind'
verbose_subchannel = true
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[dittus-boelter]
type = SCMHTCDittusBoelter
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[negative-htc]
type = SCMHTCNegativeTest
[]
[kazimi-carelli]
type = SCMHTCKazimiCarelli
[]
[schad-modified]
type = SCMHTCSchadModified
[]
[graber-rieger]
type = SCMHTCGraberRieger
[]
[borishanskii]
type = SCMHTCBorishanskii
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
CT = 2.6
[]
[]
# Keep T manually declared and unrestricted so this legacy regression continues
# to compare against the pre-scoped AuxVariable golds. The automatic
# SubChannelAddVariablesAction path remains block-restricted for normal inputs.
[AuxVariables]
[T]
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power_initial}
filename = "pin_power_profile61_uniform.txt"
axial_heat_rate = axial_heat_rate
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = subchannel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
### Central pin inlet temperature
[Pin_Temp_0_Inlet]
type = SCMPinSurfaceTemperature
index = 0
height = ${fparse heated_length*0.01}
[]
### Central pin center temperature
[Pin_Temp_1_Center]
type = SCMPinSurfaceTemperature
index = 0
height = ${fparse heated_length*0.5}
[]
### Central pin outlet temperature
[Pin_Temp_2_Outlet]
type = SCMPinSurfaceTemperature
index = 0
height = ${fparse heated_length*0.99}
[]
[]
[Executioner]
type = Steady
[]