- 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.
SCMHTCGnielinski
Class that computes the convective heat transfer coefficient using the Gnielinski correlation.
The HTC closure models inherit from: SCMHTCClosureBase.
Gnielinski Correlation for Turbulent Nusselt Number
Gnielinski extended the results of the significant work done by Petukhov to the transition Reynolds number by making small adjustments of the terms of the Petukhov correlation. A modified Gnielinski correlation for low Prandtl numbers is proposed here for calculating the Nusselt number for transitional and turbulent flows. The baseline correlation is presented originally here Gnielinski (1975) as well as in chapter 10 of Todreas and Kazimi (2021). The modified correlation reads as follows:
where:
: Nusselt number
: Reynolds number
: Prandtl number
: The friction factor for turbulent flow. Here we use the local subchannel friction factor.
A key modification in the correlation as implemented in SCM is the addition of to the Prandtl number. This modification retains predictions within experimental uncertainty at high numbers but enables the correlation to be used at low numbers. With this modification, at low numbers (approximately for ), one can expect behavior similar to that of the Lubarsky and Kaufman correlation Lubarsky and Kaufman (1955). It has an expanded range applicable for . This modified Gnielinski correlation reduces to the canonical Gnielinski correlation as Pr increases, which can be used for coolants (liquids/gases) in the range .
The effect of pipe length flow development and fluid property variations has not been considered in this implementation.
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
- (modules/subchannel/test/tests/SCMTriPower/test.i)
- (modules/subchannel/test/tests/SCMTriPower/test_with_pins.i)
- (modules/subchannel/test/tests/multiapp/sc_core.i)
- (modules/subchannel/validation/areva_FCTF/FCTF_non_deformed.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS45R_corrected.i)
- (modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_monolithic.i)
- (modules/subchannel/test/tests/problems/deformation/tri_pin_diameter.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_TR17.i)
- (modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_implicit.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_TR45R.i)
- (modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_explicit.i)
- (modules/subchannel/examples/duct/test.i)
- (modules/subchannel/test/tests/problems/SFR/EBR-II/XX09_SS_SHRT17.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS17_corrected.i)
- (modules/subchannel/examples/MultiApp/fuel_assembly.i)
- (modules/combined/test/tests/subchannel_thm_coupling/subchannel.i)
- (modules/subchannel/validation/areva_FCTF/FCTF_deformed.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS45R.i)
- (modules/subchannel/test/tests/problems/heat_transfer_correlations/XX09_SCM_SS17.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS17.i)
References
- Volker Gnielinski.
Neue gleichungen f"ur den w"arme-und den stoff"ubergang in turbulent durchstr"omten rohren und kan"alen.
Forschung im Ingenieurwesen A, 41(1):8–16, 1975.[BibTeX]
@Article{gnielinski1975neue, author = "Gnielinski, Volker", title = {Neue Gleichungen f{"u}r den W{"a}rme-und den Stoff{"u}bergang in turbulent durchstr{"o}mten Rohren und Kan{"a}len}, journal = "Forschung im Ingenieurwesen A", volume = "41", number = "1", pages = "8--16", year = "1975", publisher = "Springer" } - Bernard Lubarsky and Samuel J Kaufman.
Review of experimental investigations of liquid-metal heat transfer.
Technical Report, National Advisory Committee for Aeronautics, 1955.[BibTeX]
@TechReport{lubarsky1955review, author = "Lubarsky, Bernard and Kaufman, Samuel J", title = "Review of experimental investigations of liquid-metal heat transfer", institution = "National Advisory Committee for Aeronautics", year = "1955" } - Neil E Todreas and Mujid S Kazimi.
Nuclear systems volume I: Thermal hydraulic fundamentals.
CRC press, 2021.[BibTeX]
@book{todreas2021nuclear1, author = "Todreas, Neil E and Kazimi, Mujid S", title = "Nuclear systems volume I: Thermal hydraulic fundamentals", year = "2021", publisher = "CRC press" }
(modules/subchannel/test/tests/SCMTriPower/test.i)
T_in = 588.5
flow_area = 0.0004980799633447909 #m2
mass_flux_in = '${fparse 55*3.78541/10/60/flow_area}'
P_out = 2.0e5 # Pa
length = 0.5
num_cells = 40
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = 3
n_cells = ${num_cells}
flat_to_flat = 3.41e-2
heated_length = 0.5
unheated_length_entry = 0.4
unheated_length_exit = 0.1
pin_diameter = 5.84e-3
pitch = 7.26e-3
dwire = 1.42e-3
hwire = 0.3048
[]
[]
[AuxVariables]
[q_prime_aux]
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(pi/2)*sin(pi*z/L)'
symbol_names = 'L'
symbol_values = '${length}'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = true
compute_viscosity = true
compute_power = true
implicit = true
segregated = false
verbose_subchannel = true
interpolation_scheme = upwind
pin_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_ic]
type = SCMTriPowerIC
variable = q_prime
power = 20000 # W
filename = "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
[]
[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'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[q_prime_AUX]
type = SCMTriPowerAux
variable = q_prime_aux
power = 20000 # W
filename = "pin_power_profile.txt" #type in name of file that describes radial power profile
# axial_heat_rate = axial_heat_rate
execute_on = 'initial'
[]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[Total_power_IC_defaultPP]
type = ElementIntegralVariablePostprocessor
variable = q_prime
[]
[Total_power_Aux_defaultPP]
type = ElementIntegralVariablePostprocessor
variable = q_prime_aux
[]
[Total_power_SCMPinPowerPostprocessor]
type = SCMPinPowerPostprocessor
[]
[Total_power_SCMTHPowerPostprocessor]
type = SCMTHPowerPostprocessor
[]
[]
[Outputs]
csv = true
[]
(modules/subchannel/test/tests/SCMTriPower/test_with_pins.i)
T_in = 588.5
flow_area = 0.0004980799633447909 #m2
mass_flux_in = '${fparse 55*3.78541/10/60/flow_area}'
P_out = 2.0e5 # Pa
length = 0.5
num_cells = 40
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = 3
n_cells = ${num_cells}
flat_to_flat = 3.41e-2
heated_length = 0.5
unheated_length_entry = 0.4
unheated_length_exit = 0.1
pin_diameter = 5.84e-3
pitch = 7.26e-3
dwire = 1.42e-3
hwire = 0.3048
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = 3
n_cells = ${num_cells}
heated_length = 0.5
unheated_length_entry = 0.4
unheated_length_exit = 0.1
pitch = 7.26e-3
[]
[]
[AuxVariables]
[q_prime_aux]
block = fuel_pins
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(pi/2)*sin(pi*z/L)'
symbol_names = 'L'
symbol_values = '${length}'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = true
compute_viscosity = true
compute_power = true
implicit = true
segregated = false
verbose_subchannel = true
interpolation_scheme = upwind
pin_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_ic]
type = SCMTriPowerIC
variable = q_prime
power = 20000 # W
filename = "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
[]
[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'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[q_prime_AUX]
type = SCMTriPowerAux
variable = q_prime_aux
power = 20000 # W
filename = "pin_power_profile.txt" #type in name of file that describes radial power profile
axial_heat_rate = axial_heat_rate
execute_on = 'initial'
[]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[Total_power_IC_defaultPP]
type = ElementIntegralVariablePostprocessor
variable = q_prime
block = fuel_pins
[]
[Total_power_Aux_defaultPP]
type = ElementIntegralVariablePostprocessor
variable = q_prime_aux
block = fuel_pins
[]
[Total_power_SCMPinPowerPostprocessor]
type = SCMPinPowerPostprocessor
[]
[Total_power_SCMTHPowerPostprocessor]
type = SCMTHPowerPostprocessor
[]
[]
[VectorPostprocessors]
[line_check]
type = LineValueSampler
variable = 'q_prime q_prime_aux'
execute_on = 'TIMESTEP_END'
sort_by = 'z'
start_point = '0 0 0'
end_point = '0 0 1.0'
num_points = ${fparse num_cells + 1}
[]
[]
[Outputs]
csv = true
[]
(modules/subchannel/test/tests/multiapp/sc_core.i)
# Following Advanced Burner Test Reactor Preconceptual Design Report
# Vailable at: https://www.ne.anl.gov/eda/ABTR_1cv2_ws.pdf
###################################################
# Thermal-hydraulics parameters
###################################################
T_in = 866.0
P_out = 253727.1 # Pa
reactor_power = 671337.24 #WTh
mass_flow = '${fparse 6.15}' # kg/(s)
###################################################
# Geometric parameters
###################################################
# units are cm - do not forget to convert to meter
scale_factor = 0.01
fuel_pin_pitch = '${fparse 1.4478*scale_factor}'
fuel_pin_diameter = '${fparse 1.4268*scale_factor}'
wire_z_spacing = '${fparse 0*scale_factor}'
wire_diameter = '${fparse 0*scale_factor}'
n_rings = 8
length_heated_fuel = '${fparse 35.56*scale_factor}'
entry_length = 0
duct_inside = '${fparse 11.43*2*scale_factor}'
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = '${fparse n_rings}'
n_cells = 10
flat_to_flat = '${fparse duct_inside}'
heated_length = '${fparse length_heated_fuel}'
pin_diameter = '${fparse fuel_pin_diameter}'
pitch = '${fparse fuel_pin_pitch}'
dwire = '${fparse wire_diameter}'
hwire = '${fparse wire_z_spacing}'
spacer_z = '0'
spacer_k = '0'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = '${fparse n_rings}'
n_cells = 10
heated_length = '${fparse length_heated_fuel}'
pitch = '${fparse fuel_pin_pitch}'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = '${fparse n_rings}'
n_cells = 10
flat_to_flat = '${fparse duct_inside}'
heated_length = '${fparse length_heated_fuel}'
pitch = '${fparse fuel_pin_pitch}'
[]
[]
# All needed aux variables are automatically loaded if [SubChannel] block exists
# [AuxVariables]
# [mdot]
# block = subchannel
# []
# [SumWij]
# block = subchannel
# []
# [P]
# block = subchannel
# []
# [DP]
# block = subchannel
# []
# [h]
# block = subchannel
# []
# [T]
# block = subchannel
# []
# [Tpin]
# block = fuel_pins
# []
# [Dpin]
# block = fuel_pins
# []
# [rho]
# block = subchannel
# []
# [S]
# block = subchannel
# []
# [w_perim]
# block = subchannel
# []
# [q_prime]
# block = fuel_pins
# []
# [mu]
# block = subchannel
# []
# [q_prime_duct]
# block = duct
# initial_condition = 0
# []
# [Tduct]
# block = duct
# []
# [displacement]
# block = subchannel
# initial_condition = 0
# []
# []
[FluidProperties]
[sodium]
type = SimpleFluidProperties
molar_mass = 0.0355
cp = 873.0
cv = 873.0
specific_entropy = 1055
viscosity = 0.0001582
thermal_conductivity = 25.9
thermal_expansion = 2.77e-4
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${P_out}
P_tol = 1.0e-2
T_tol = 1.0e-2
# Solver settings
implicit = true
segregated = false
# Output
verbose_multiapps = true
verbose_subchannel = true
compute_density = false
compute_viscosity = false
compute_power = false
# Heat Transfer Correlations
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
# Friction Correlation
friction_closure = 'Cheng'
full_output = true
# Mixing Correlation
mixing_closure = 'Kim'
[]
[SCMClosures]
[Cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Kim]
type = SCMMixingKimAndChung
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${reactor_power} # W
filename = 'pin_p.txt'
[]
[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
[]
[T_duct_ic]
type = ConstantIC
variable = Tduct
value = ${T_in}
[]
[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 = sub_channel
[]
[mdot_in_bc]
type = SCMFlatMassFlowRateAux
variable = mdot
boundary = inlet
mass_flow = ${mass_flow}
execute_on = 'timestep_begin'
block = sub_channel
[]
[]
[Executioner]
type = Steady
[]
[VectorPostprocessors]
[sub]
type = LineValueSampler
start_point = '0 -0.00835888 ${entry_length}'
end_point = '0 -0.00835888 ${fparse entry_length + length_heated_fuel}'
num_points = 10
variable = 'h rho P'
sort_by = 'z'
execute_on = 'timestep_end'
[]
[]
[Outputs]
csv = true
[]
(modules/subchannel/validation/areva_FCTF/FCTF_non_deformed.i)
# Following Benchmark Specifications and Data Requirements for the AREVA heated-bundle test in its Fuel Cooling Test Facility (FCTF)
# as part of a U.S. DOE funded project: Towards a Longer-Life Core. In partnership with TerraPower, TAMU and ANL,
# AREVA NP tested a wire-wrapped pin bundle. The bundle consists of electrically heated pins and non-heated pins.
# This test collected measurements to evaluate thermal hydraulic performance of a wire wrapped bundle, useful for CFD and other software validation.
# Available at: https://www.osti.gov/servlets/purl/1346027/
###################################################
# Steady state subchannel calculation
# Thermal-hydraulics parameters
###################################################
T_in = 305.44 #Kelvin (32.29 C)
# mu = 0.0007646 #Pas
# Re = 20500
# Dh = 0.004535
Total_Surface_Area_SC = 0.00285294 #m2
Total_Surface_Area_EXP = 0.002808 #m2
P_out = 829370.355 # Pa (120.29 psia)
Power = 90640 # Watt Each heater pin had a max power of 30kW
# Heater 17 (18) not working.
# test:19 power = 22613 22610 22754 22663 [W], Total Power = 90640 [W], mdot_average = 9.576 [kg/s], Re = 20300
# Index of heated pins per silicon controled rectifiers (Areva notation):1 3 6 7 || 4 5 11 15 ||2 9 19 40 60 || 13 44 48 52 56 (from bottom to top)
# Index of heated pins per silicon controled rectifiers (SC notation):0 3 6 1 || 4 5 12 16 || 2 10 8 43 39 || 14 47 51 55 59 (from top to bottom) 38 areva->41 SC
# Relative power of pin per rectifier: 1.12266659312 || 1.12251765225 || 0.90373345101 || 0.90011915269
mdot_average = '${fparse 9.33 * Total_Surface_Area_SC / Total_Surface_Area_EXP}'
mass_flux_in = '${fparse mdot_average / Total_Surface_Area_SC}' #kg/m2
###################################################
# Geometric parameters (non-deformed heated bundle)
###################################################
fuel_pin_pitch = 0.01122652 #m
fuel_pin_diameter = 0.009514 #m
wire_z_spacing = 0.285 #m
wire_diameter = 0.0017062 #m
inner_duct_in = 0.092 #m
n_rings = 5
unheated_length_entry = 1.14 #m
heated_length = 1.71 #m
unheated_length_exit = 0.855 #m
###################################################
[TriSubChannelMesh]
[subchannel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 65
flat_to_flat = ${inner_duct_in}
unheated_length_entry = ${unheated_length_entry}
heated_length = ${heated_length}
unheated_length_exit = ${unheated_length_exit}
pin_diameter = ${fuel_pin_diameter}
pitch = ${fuel_pin_pitch}
dwire = ${wire_diameter}
hwire = ${wire_z_spacing}
spacer_z = '0.0'
spacer_k = '0.0'
[]
[pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 65
unheated_length_entry = ${unheated_length_entry}
heated_length = ${heated_length}
unheated_length_exit = ${unheated_length_exit}
pitch = ${fuel_pin_pitch}
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(0.4*pi/(pi-2))*sin(pi*z/L) + 1.4 - (0.4*pi/(pi-2))'
symbol_names = 'L'
symbol_values = '${heated_length}'
[]
[]
[FluidProperties]
[water]
type = Water97FluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = water
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-4
implicit = true
segregated = false
interpolation_scheme = 'upwind'
verbose_subchannel = true
# Heat Transfer Correlations
pin_HTC_closure = 'gnielinski'
# friction model
friction_closure = 'cheng'
full_output = true
# Turbulent mixing Correlation
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power}
filename = "pin_power_profile61.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 = water
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = water
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = water
[]
[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]
exodus = true
csv = true
[]
!include non_deformed_duct_pp.i
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3D.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S displacement'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Dpin Tpin q_prime'
[]
[]
(modules/subchannel/validation/EBR-II/XX09_SCM_SS45R_corrected.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 calculation
# Thermal-hydraulics parameters
###################################################
T_in = 616.4 #Kelvin
Total_Surface_Area = 0.000854322 #m2
Mass_In = 2.427 #kg/sec
mass_flux_in = '${fparse Mass_In / Total_Surface_Area}' #kg/m2
P_out = 2.0e5
Power_initial = 379800 #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]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
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}
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = ${n_rings}
n_cells = 50
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
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power_initial}
filename = "pin_power_profile61.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 = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[TTC-27]
type = SubChannelPointValue
variable = T
index = 91
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-28]
type = SubChannelPointValue
variable = T
index = 50
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-29]
type = SubChannelPointValue
variable = T
index = 21
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-30]
type = SubChannelPointValue
variable = T
index = 4
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 2
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-32]
type = SubChannelPointValue
variable = T
index = 16
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-33]
type = SubChannelPointValue
variable = T
index = 42
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-34]
type = SubChannelPointValue
variable = T
index = 80
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-35]
type = SubChannelPointValue
variable = T
index = 107
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[MTC-20]
type = SubChannelPointValue
variable = T
index = 33
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-22]
type = SubChannelPointValue
variable = T
index = 3
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-24]
type = SubChannelPointValue
variable = T
index = 28
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-25]
type = SubChannelPointValue
variable = T
index = 60
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-26]
type = SubChannelPointValue
variable = T
index = 106
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[14TC-37]
type = SubChannelPointValue
variable = T
index = 52
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-39]
type = SubChannelPointValue
variable = T
index = 6
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-41]
type = SubChannelPointValue
variable = T
index = 40
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-43]
type = SubChannelPointValue
variable = T
index = 105
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[]
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3d_SCM_SS.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_monolithic.i)
T_in = 660
mass_flux_in = '${fparse 1e+6 * 300.00 / 36000.*0.5}'
P_out = 2.0e5 # Pa
[GlobalParams]
nrings = 3
n_cells = 5
flat_to_flat = 0.056
heated_length = 0.5
pitch = 0.012
[]
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
spacer_z = '0'
spacer_k = '5.0'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = true
compute_viscosity = true
compute_power = true
T_tol = 1.0e-6
P_tol = 1.0e-6
implicit = true
segregated = false
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1000.0 # W
filename = "pin_power_profile19.txt"
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[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'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[T1]
type = SubChannelPointValue
variable = T
index = 37
execute_on = "timestep_end"
height = 0.5
[]
[T2]
type = SubChannelPointValue
variable = T
index = 36
execute_on = "timestep_end"
height = 0.5
[]
[T3]
type = SubChannelPointValue
variable = T
index = 20
execute_on = "timestep_end"
height = 0.5
[]
[T4]
type = SubChannelPointValue
variable = T
index = 10
execute_on = "timestep_end"
height = 0.5
[]
[T5]
type = SubChannelPointValue
variable = T
index = 4
execute_on = "timestep_end"
height = 0.5
[]
[T6]
type = SubChannelPointValue
variable = T
index = 1
execute_on = "timestep_end"
height = 0.5
[]
[T7]
type = SubChannelPointValue
variable = T
index = 14
execute_on = "timestep_end"
height = 0.5
[]
[T8]
type = SubChannelPointValue
variable = T
index = 28
execute_on = "timestep_end"
height = 0.5
[]
####### Assembly pressure drop
[DP_SubchannelDelta]
type = SubChannelDelta
variable = P
execute_on = 'TIMESTEP_END'
[]
#####
[Mean_Temp]
type = SCMPlanarMean
variable = T
height = 2
[]
[Total_power]
type = ElementIntegralVariablePostprocessor
variable = q_prime
block = sub_channel
[]
[mdot-8]
type = SubChannelPointValue
variable = mdot
index = 28
execute_on = 'TIMESTEP_END'
height = 0.5
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/test/tests/problems/deformation/tri_pin_diameter.i)
T_in = 588.5
P_out = 2.0e5
flow_area = 0.0004980799633447909
mass_flux_in = '${fparse 55*3.78541/10/60/flow_area}'
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = 3
n_cells = 5
flat_to_flat = 3.41e-2
heated_length = 0.5
pin_diameter = 5.5e-3
pitch = 7.26e-3
dwire = 1.42e-3
hwire = 0.3048
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = 3
n_cells = 5
heated_length = 0.5
pitch = 7.26e-3
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = false
implicit = true
segregated = false
interpolation_scheme = upwind
friction_closure = 'cheng'
mixing_closure = 'cheng_todreas'
pin_HTC_closure = 'gnielinski'
full_output = true
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = 5.84e-3
[]
[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'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Postprocessors]
[S_deformed]
type = SubChannelPointValue
variable = S
index = 0
height = 0.25
execute_on = 'timestep_end'
[]
[w_perim_deformed]
type = SubChannelPointValue
variable = w_perim
index = 0
height = 0.25
execute_on = 'timestep_end'
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
console = true
csv = true
[]
(modules/subchannel/validation/EBR-II/XX09_SCM_TR17.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
# Transient subchannel calculation
###################################################
# Thermal-hydraulics parameters
###################################################
T_in = 624.7 #Kelvin
Total_Surface_Area = 0.000854322 #m3
mass_flux_in = '${fparse 2.45 / Total_Surface_Area}'
P_out = 2.0e5
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]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
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}
spacer_z = '0.0'
spacer_k = '0.0'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[AuxVariables]
[q_prime_init]
block = fuel_pins
[]
[power_history_field]
block = fuel_pins
[]
[q_prime]
block = fuel_pins
[]
[]
[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-4
implicit = true
segregated = false
interpolation_scheme = 'upwind'
pin_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime_init
power = ${Power_initial}
filename = "pin_power_profile61_uniform.txt"
[]
[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
[]
[]
[Functions]
[power_func]
type = PiecewiseLinear
data_file = 'power_history_SHRT17.csv'
format = "columns"
scale_factor = 1.0
[]
[mass_flux_in]
type = PiecewiseLinear
data_file = 'massflow_SHRT17.csv'
format = "columns"
scale_factor = '${fparse mass_flux_in / 2.45}'
[]
[time_step_limiting]
type = PiecewiseLinear
xy_data = '0.1 0.1
10.0 10.0'
[]
[]
[Controls]
[mass_flux_ctrl]
type = RealFunctionControl
parameter = 'Postprocessors/mass_flux_PP/value'
function = 'mass_flux_in'
execute_on = 'initial timestep_begin'
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = mass_flux_PP
execute_on = 'timestep_begin'
[]
[populate_power_history]
type = FunctionAux
variable = power_history_field
function = 'power_func'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[change_q_prime]
type = ParsedAux
variable = q_prime
coupled_variables = 'q_prime_init power_history_field'
expression = 'q_prime_init*power_history_field'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[report_pressure_outlet]
type = Receiver
default = ${P_out}
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 0
execute_on = 'initial timestep_end'
height = 0.322
[]
[post_func]
type = ElementIntegralVariablePostprocessor
block = fuel_pins
variable = q_prime
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[mass_flux_PP]
type = ConstantPostprocessor
value = ${mass_flux_in}
[]
[mass_flow_PP]
type = ParsedPostprocessor
expression = '${Total_Surface_Area} * mass_flux_PP'
pp_names = 'mass_flux_PP'
[]
[]
[Executioner]
type = Transient
start_time = -1.0
end_time = 900.0
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.1
iteration_window = 5
optimal_iterations = 6
growth_factor = 1.1
cutback_factor = 0.8
timestep_limiting_function = 'time_step_limiting'
[]
dtmax = 20
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = TransientMultiApp
input_files = '3d_SCM_TR.i'
execute_on = 'INITIAL TIMESTEP_END'
catch_up = true
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_implicit.i)
T_in = 660
mass_flux_in = '${fparse 1e+6 * 300.00 / 36000.*0.5}'
P_out = 2.0e5 # Pa
[GlobalParams]
nrings = 3
n_cells = 5
flat_to_flat = 0.056
heated_length = 0.5
pitch = 0.012
[]
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
spacer_z = '0'
spacer_k = '5.0'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = true
compute_viscosity = true
compute_power = true
implicit = true
segregated = true
verbose_subchannel = true
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1000.0 # W
filename = "pin_power_profile19.txt"
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[duct_heat_flux_ic]
type = ConstantIC
variable = duct_heat_flux #W/m2
value = 1000.0
[]
[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'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[T1]
type = SubChannelPointValue
variable = T
index = 37
execute_on = "timestep_end"
height = 0.5
[]
[T2]
type = SubChannelPointValue
variable = T
index = 36
execute_on = "timestep_end"
height = 0.5
[]
[T3]
type = SubChannelPointValue
variable = T
index = 20
execute_on = "timestep_end"
height = 0.5
[]
[T4]
type = SubChannelPointValue
variable = T
index = 10
execute_on = "timestep_end"
height = 0.5
[]
[T5]
type = SubChannelPointValue
variable = T
index = 4
execute_on = "timestep_end"
height = 0.5
[]
[T6]
type = SubChannelPointValue
variable = T
index = 1
execute_on = "timestep_end"
height = 0.5
[]
[T7]
type = SubChannelPointValue
variable = T
index = 14
execute_on = "timestep_end"
height = 0.5
[]
[T8]
type = SubChannelPointValue
variable = T
index = 28
execute_on = "timestep_end"
height = 0.5
[]
####### Assembly pressure drop
[DP_SubchannelDelta]
type = SubChannelDelta
variable = P
execute_on = 'TIMESTEP_END'
[]
#####
[Mean_Temp]
type = SCMPlanarMean
variable = T
height = 2
[]
[mdot-8]
type = SubChannelPointValue
variable = mdot
index = 28
execute_on = 'TIMESTEP_END'
height = 0.5
[]
[Total_power]
type = ElementIntegralVariablePostprocessor
variable = q_prime
block = sub_channel
[]
[Total_power_SCMDuctPowerPostprocessor]
type = SCMDuctHeatRatePostprocessor
[]
[Total_power_SCMTHPowerPostprocessor]
type = SCMTHPowerPostprocessor
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/validation/EBR-II/XX09_SCM_TR45R.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
# Transient subchannel calculation
###################################################
# Thermal-hydraulics parameters
###################################################
T_in = 616.4 #Kelvin
Total_Surface_Area = 0.000854322 #m3
mass_flux_in = '${fparse 2.427 / Total_Surface_Area}'
P_out = 2.0e5
Power_initial = 379800 #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]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
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}
spacer_z = '0.0'
spacer_k = '0.0'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[AuxVariables]
[q_prime_init]
block = fuel_pins
[]
[power_history_field]
block = fuel_pins
[]
[q_prime]
block = fuel_pins
[]
[]
[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-4
implicit = true
segregated = false
interpolation_scheme = 'upwind'
pin_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime_init
power = ${Power_initial}
filename = "pin_power_profile61_uniform.txt"
[]
[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
[]
[]
[Functions]
[power_func]
type = PiecewiseLinear
data_file = 'power_history_SHRT45.csv'
format = "columns"
scale_factor = 1.0
[]
[mass_flux_in]
type = PiecewiseLinear
data_file = 'massflow_SHRT45.csv'
format = "columns"
scale_factor = '${fparse mass_flux_in / 2.427}'
[]
[dts]
type = PiecewiseLinear
xy_data = '0.0 0.1
5.0 2.0
100 2.0
110 20.0
900 20.0'
[]
[]
[Controls]
[mass_flux_ctrl]
type = RealFunctionControl
parameter = 'Postprocessors/mass_flux_PP/value'
function = 'mass_flux_in'
execute_on = 'initial timestep_begin'
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = mass_flux_PP
execute_on = 'timestep_begin'
[]
[populate_power_history]
type = FunctionAux
variable = power_history_field
function = 'power_func'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[change_q_prime]
type = ParsedAux
variable = q_prime
coupled_variables = 'q_prime_init power_history_field'
expression = 'q_prime_init*power_history_field'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[report_pressure_outlet]
type = Receiver
default = ${P_out}
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 0
execute_on = 'initial timestep_end'
height = 0.322
[]
[post_func]
type = ElementIntegralVariablePostprocessor
block = fuel_pins
variable = q_prime
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[mass_flux_PP]
type = ConstantPostprocessor
value = ${mass_flux_in}
[]
[mass_flow_PP]
type = ParsedPostprocessor
expression = '${Total_Surface_Area} * mass_flux_PP'
pp_names = 'mass_flux_PP'
[]
[]
[Executioner]
type = Transient
start_time = -1
end_time = 900.0
[TimeStepper]
type = FunctionDT
function = dts
min_dt = 0.1
growth_factor = 2.0
[]
dtmax = 20
# num_steps = 15
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = TransientMultiApp
input_files = '3d_SCM_TR.i'
execute_on = 'INITIAL TIMESTEP_END'
catch_up = true
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_explicit.i)
T_in = 660
mass_flux_in = '${fparse 1e+6 * 300.00 / 36000.*0.5}'
P_out = 2.0e5 # Pa
[GlobalParams]
nrings = 3
n_cells = 5
flat_to_flat = 0.056
heated_length = 0.5
pitch = 0.012
[]
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
spacer_z = '0'
spacer_k = '5.0'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = true
compute_viscosity = true
compute_power = true
implicit = false
segregated = true
verbose_subchannel = true
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1000.0 # W
filename = "pin_power_profile19.txt"
[]
[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'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[T1]
type = SubChannelPointValue
variable = T
index = 37
execute_on = "timestep_end"
height = 0.5
[]
[T2]
type = SubChannelPointValue
variable = T
index = 36
execute_on = "timestep_end"
height = 0.5
[]
[T3]
type = SubChannelPointValue
variable = T
index = 20
execute_on = "timestep_end"
height = 0.5
[]
[T4]
type = SubChannelPointValue
variable = T
index = 10
execute_on = "timestep_end"
height = 0.5
[]
[T5]
type = SubChannelPointValue
variable = T
index = 4
execute_on = "timestep_end"
height = 0.5
[]
[T6]
type = SubChannelPointValue
variable = T
index = 1
execute_on = "timestep_end"
height = 0.5
[]
[T7]
type = SubChannelPointValue
variable = T
index = 14
execute_on = "timestep_end"
height = 0.5
[]
[T8]
type = SubChannelPointValue
variable = T
index = 28
execute_on = "timestep_end"
height = 0.5
[]
####### Assembly pressure drop
[DP_SubchannelDelta]
type = SubChannelDelta
variable = P
execute_on = 'TIMESTEP_END'
[]
#####
[Mean_Temp]
type = SCMPlanarMean
variable = T
height = 2
[]
[Total_power]
type = ElementIntegralVariablePostprocessor
variable = q_prime
block = sub_channel
[]
[mdot-8]
type = SubChannelPointValue
variable = mdot
index = 28
execute_on = 'TIMESTEP_END'
height = 0.5
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/examples/duct/test.i)
T_in = 660
mass_flux_in = '${fparse 1e+6 * 37.00 / 36000.*0.5}'
P_out = 2.0e5 # Pa
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = 4
n_cells = 100
flat_to_flat = 0.085
heated_length = 1.0
pin_diameter = 0.01
pitch = 0.012
dwire = 0.002
hwire = 0.0833
spacer_z = '0 0.2 0.4 0.6 0.8'
spacer_k = '0.1 0.1 0.1 0.1 0.10'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
nrings = 4
n_cells = 100
flat_to_flat = 0.085
heated_length = 1.0
pitch = 0.012
[]
[]
[AuxVariables]
[mdot]
block = subchannel
[]
[SumWij]
block = subchannel
[]
[P]
block = subchannel
[]
[DP]
block = subchannel
[]
[h]
block = subchannel
[]
[T]
block = subchannel
[]
[rho]
block = subchannel
[]
[S]
block = subchannel
[]
[w_perim]
block = subchannel
[]
[q_prime]
block = subchannel
[]
[mu]
block = subchannel
[]
[displacement]
block = subchannel
[]
[duct_heat_flux]
block = duct
[]
[Tduct]
block = duct
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[Problem]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = false
compute_viscosity = false
compute_power = true
P_tol = 1.0e-5
T_tol = 1.0e-5
implicit = true
segregated = false
staggered_pressure = false
verbose_multiapps = true
verbose_subchannel = false
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 1.0
[]
[]
[ICs]
[S_IC]
type = SCMTriFlowAreaIC
variable = S
[]
[w_perim_IC]
type = SCMTriWettedPerimIC
variable = w_perim
[]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1e5 #1.000e5 # W
filename = "pin_power_profile37.txt"
[]
[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
[]
[T_duct_ic]
type = ConstantIC
variable = Tduct
value = ${T_in}
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[UserObjects]
[Tduct_avg_uo]
type = NearestPointLayeredAverage
direction = z
num_layers = 1000
variable = Tduct
block = duct
points = '0 0 0'
execute_on = 'TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 2
fixed_point_min_its = 2
fixed_point_rel_tol = 1e-6
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
# Multiapp to duct heat conduction module
[duct_map]
type = FullSolveMultiApp
input_files = wrapper.i # seperate file for multiapps due to radial power profile
execute_on = 'timestep_end'
positions = '0 0 0' #center of assembly
bounding_box_padding = '10.0 10.0 10.0'
[]
# Multiapp to detailed mesh for vizualization
[viz]
type = FullSolveMultiApp
input_files = "3d.i"
execute_on = 'timestep_end'
[]
[]
[Transfers]
[duct_temperature_transfer] # Send duct temperature to heat conduction
type = MultiAppInterpolationTransfer
to_multi_app = duct_map
source_variable = Tduct
variable = duct_surface_temperature
[]
[displacement_transfer]
type = MultiAppGeneralFieldNearestNodeTransfer
from_multi_app = duct_map
source_variable = disp_magnitude
variable = displacement
[]
[q_prime] # Recover q_prime from heat conduction solve
type = MultiAppInterpolationTransfer
from_multi_app = duct_map
source_variable = q_prime
variable = duct_heat_flux
[]
[xfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu q_prime S displacement'
[]
[]
(modules/subchannel/test/tests/problems/SFR/EBR-II/XX09_SS_SHRT17.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,with adapted massflow rate
# Thermal-hydraulics parameters
###################################################
T_in = 624.70556 #Kelvin
Total_Surface_Area = 0.000854322 #m3
mass_flux_in = '${fparse 2.6923 / Total_Surface_Area}' #
P_out = 2.0e5
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]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
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}
spacer_z = '0.0'
spacer_k = '0.0'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[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
pin_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power_initial}
filename = "pin_power_profile61_uniform.txt"
[]
[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 = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Postprocessors]
[TTC-27]
type = SubChannelPointValue
variable = T
index = 91
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-28]
type = SubChannelPointValue
variable = T
index = 50
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-29]
type = SubChannelPointValue
variable = T
index = 21
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-30]
type = SubChannelPointValue
variable = T
index = 4
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 2
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-32]
type = SubChannelPointValue
variable = T
index = 16
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-33]
type = SubChannelPointValue
variable = T
index = 42
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-34]
type = SubChannelPointValue
variable = T
index = 80
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-35]
type = SubChannelPointValue
variable = T
index = 107
execute_on = 'TIMESTEP_END'
height = 0.322
[]
####### Assembly pressure drop
[DP_SubchannelDelta]
type = SubChannelDelta
variable = P
execute_on = 'TIMESTEP_END'
[]
#####
[Mean_Temp]
type = SCMPlanarMean
variable = T
height = 2
[]
#####
[mdot-35]
type = SubChannelPointValue
variable = mdot
index = 107
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Executioner]
type = Steady
[]
(modules/subchannel/validation/EBR-II/XX09_SCM_SS17_corrected.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 calculation
# 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]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
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}
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = ${n_rings}
n_cells = 50
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
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power_initial}
filename = "pin_power_profile61.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 = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[TTC-27]
type = SubChannelPointValue
variable = T
index = 91
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-28]
type = SubChannelPointValue
variable = T
index = 50
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-29]
type = SubChannelPointValue
variable = T
index = 21
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-30]
type = SubChannelPointValue
variable = T
index = 4
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 2
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-32]
type = SubChannelPointValue
variable = T
index = 16
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-33]
type = SubChannelPointValue
variable = T
index = 42
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-34]
type = SubChannelPointValue
variable = T
index = 80
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-35]
type = SubChannelPointValue
variable = T
index = 107
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[MTC-20]
type = SubChannelPointValue
variable = T
index = 33
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-22]
type = SubChannelPointValue
variable = T
index = 3
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-24]
type = SubChannelPointValue
variable = T
index = 28
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-25]
type = SubChannelPointValue
variable = T
index = 60
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-26]
type = SubChannelPointValue
variable = T
index = 106
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[14TC-37]
type = SubChannelPointValue
variable = T
index = 52
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-39]
type = SubChannelPointValue
variable = T
index = 6
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-41]
type = SubChannelPointValue
variable = T
index = 40
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-43]
type = SubChannelPointValue
variable = T
index = 105
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[]
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3d_SCM_SS.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/subchannel/examples/MultiApp/fuel_assembly.i)
###################################################
# Thermal-hydraulics parameters
###################################################
T_in = 628.15 # K
P_out = 758423 # Pa
reactor_power = 250e6 #WTh
fuel_assemblies_per_power_unit = '${fparse 2.5}'
fuel_pins_per_assembly = 217
pin_power = '${fparse reactor_power/(fuel_assemblies_per_power_unit*fuel_pins_per_assembly)}' # Approx.
mass_flux_in = '${fparse 2786}' # kg/(m2.s)
###################################################
# Geometric parameters
###################################################
n_cells = 50
# units are cm - do not forget to convert to meter
scale_factor = 0.01
fuel_element_pitch = '${fparse 14.598*scale_factor}'
inter_assembly_gap = '${fparse 0.4*scale_factor}'
duct_thickness = '${fparse 0.3*scale_factor}'
fuel_pin_pitch = '${fparse 0.904*scale_factor}'
fuel_pin_diameter = '${fparse 0.8*scale_factor}'
wire_z_spacing = '${fparse 20.32*scale_factor}'
wire_diameter = '${fparse 0.103*scale_factor}'
n_rings = 9
# Reduced height for convenience
length_entry_fuel = '${fparse 20*scale_factor}'
length_heated_fuel = '${fparse 40*scale_factor}'
length_outlet_fuel = '${fparse 20*scale_factor}'
# height = '${fparse length_entry_fuel+length_heated_fuel+length_outlet_fuel}'
orifice_plate_height = '${fparse 5*scale_factor}'
duct_outside = '${fparse fuel_element_pitch - inter_assembly_gap}'
duct_inside = '${fparse duct_outside - 2 * duct_thickness}'
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = '${fparse n_rings}'
n_cells = ${n_cells}
flat_to_flat = '${fparse duct_inside}'
unheated_length_entry = '${fparse length_entry_fuel}'
heated_length = '${fparse length_heated_fuel}'
unheated_length_exit = '${fparse length_outlet_fuel}'
pin_diameter = '${fparse fuel_pin_diameter}'
pitch = '${fparse fuel_pin_pitch}'
dwire = '${fparse wire_diameter}'
hwire = '${fparse wire_z_spacing}'
spacer_z = '${fparse orifice_plate_height} ${fparse length_entry_fuel}'
spacer_k = '0.5 0.5'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = '${fparse n_rings}'
n_cells = ${n_cells}
unheated_length_entry = '${fparse length_entry_fuel}'
heated_length = '${fparse length_heated_fuel}'
unheated_length_exit = '${fparse length_outlet_fuel}'
pitch = '${fparse fuel_pin_pitch}'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = '${fparse n_rings}'
n_cells = ${n_cells}
flat_to_flat = '${fparse duct_inside}'
unheated_length_entry = '${fparse length_entry_fuel}'
heated_length = '${fparse length_heated_fuel}'
unheated_length_exit = '${fparse length_outlet_fuel}'
pitch = '${fparse fuel_pin_pitch}'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
P_out = ${P_out}
# Solver parameters
n_blocks = 10
implicit = false
segregated = true
staggered_pressure = false
# Tolerances
P_tol = 1.0e-4
T_tol = 1.0e-8
# Heat Transfer Correlation
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
# Friction Correlation
friction_closure = 'Cheng'
# Turbulent mixing Correlation
mixing_closure = 'cheng_todreas'
# Output
compute_density = true
compute_viscosity = true
compute_power = true
verbose_multiapps = true
verbose_subchannel = false
full_output = true
[]
[SCMClosures]
[Cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
[]
[]
[ICs]
# Geometry
# Operating conditions
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${pin_power} # W
filename = "pin_power_profile217.txt"
[]
[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
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[T_duct_ic]
type = ConstantIC
variable = Tduct
value = ${T_in}
[]
# Fluid properties
[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
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Executioner]
type = Transient
num_steps = 1
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = TransientMultiApp
input_files = "3d.i"
execute_on = "final"
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/combined/test/tests/subchannel_thm_coupling/subchannel.i)
# Based on M. Fontana, et al. this arbitrary subassembly is used for THM-SC coupling
T_in = 583.0 #K
flow_area = 0.0004980799633447909 #m2
mass_flux_in = '${fparse 1.0/flow_area}'
P_out = 2e5 # Pa
###################################################
# Geometric parameters
###################################################
n_cells = 25
n_rings = 3
fuel_pin_pitch = 7.26e-3
fuel_pin_diameter = 5.84e-3
wire_z_spacing = 0.3048
wire_diameter = 1.42e-3
inner_duct_in = 3.41e-2
heated_length = 1.0
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = ${n_cells}
flat_to_flat = ${inner_duct_in}
heated_length = ${heated_length}
pin_diameter = ${fuel_pin_diameter}
pitch = ${fuel_pin_pitch}
dwire = ${wire_diameter}
hwire = ${wire_z_spacing}
spacer_z = '0.0'
spacer_k = '0.0'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = ${n_cells}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[FluidProperties]
[Sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = Sodium
n_blocks = 1
P_out = report_pressure_outlet
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-3
T_tol = 1.0e-3
implicit = true
segregated = false
staggered_pressure = false
verbose_multiapps = true
verbose_subchannel = false
interpolation_scheme = 'upwind'
pin_HTC_closure = 'gnielinski'
friction_closure = 'Cheng'
mixing_closure = 'Cheng_Todreas'
[]
[SCMClosures]
[Cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Cheng_Todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[S_IC]
type = SCMTriFlowAreaIC
variable = S
[]
[w_perim_IC]
type = SCMTriWettedPerimIC
variable = w_perim
[]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 10000 #W
filename = "pin_power_profile19.txt"
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = ${fuel_pin_diameter}
[]
[P_ic]
type = ConstantIC
variable = P
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 = FunctorAux
functor = report_temperature_inlet
variable = T
boundary = inlet
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = report_mass_flux_inlet
execute_on = 'timestep_begin'
block = sub_channel
[]
[]
[Outputs]
csv = true
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[total_pressure_drop_SC]
type = SubChannelDelta
variable = P
execute_on = "timestep_end"
[]
[total_pressure_drop_SC_limited]
type = ParsedPostprocessor
pp_names = 'total_pressure_drop_SC'
expression = 'min(total_pressure_drop_SC, 1e6)'
execute_on = "timestep_end"
[]
[Total_power]
type = ElementIntegralVariablePostprocessor
variable = q_prime
block = fuel_pins
[]
[report_mass_flux_inlet]
type = Receiver
default = ${mass_flux_in}
[]
[report_temperature_inlet]
type = Receiver
default = ${T_in}
force_preaux = true
[]
[report_pressure_outlet]
type = Receiver
default = ${P_out}
[]
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3D.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Dpin Tpin q_prime'
[]
[]
(modules/subchannel/validation/areva_FCTF/FCTF_deformed.i)
# Following Benchmark Specifications and Data Requirements for the AREVA heated-bundle test in its Fuel Cooling Test Facility (FCTF)
# as part of a U.S. DOE funded project: Towards a Longer-Life Core. In partnership with TerraPower, TAMU and ANL,
# AREVA NP tested a wire-wrapped pin bundle. The bundle consists of electrically heated pins and non-heated pins.
# This test collected measurements to evaluate thermal hydraulic performance of a wire wrapped bundle, useful for CFD and other software validation.
# Available at: https://www.osti.gov/servlets/purl/1346027/
###################################################
# Steady state subchannel calculation
# Thermal-hydraulics parameters
###################################################
T_in = 305.68 #Kelvin (32.53 C)
# mu = 0.0007646 #Pas
# Re = 20500
# Dh = 0.004535
Total_Surface_Area_SC = 0.00285294 #m2
Total_Surface_Area_EXP = 0.002808 #m2
P_out = 829370.355 # Pa (120.29 psia)
Power = 90640 # Watt Each heater pin had a max power of 30kW
# Heater 17 (18) not working.
# test:19 power = 22613 22610 22754 22663 [W], Total Power = 90640 [W], mdot_average = 9.576 [kg/s], Re = 20300
# Index of heated pins per silicon controled rectifiers (Areva notation):1 3 6 7 || 4 5 11 15 ||2 9 19 40 60 || 13 44 48 52 56 (from bottom to top)
# Index of heated pins per silicon controled rectifiers (SC notation):0 3 6 1 || 4 5 12 16 || 2 10 8 43 39 || 14 47 51 55 59 (from top to bottom) 38 areva->41 SC
# Relative power of pin per rectifier: 1.12266659312 || 1.12251765225 || 0.90373345101 || 0.90011915269
mdot_average = '${fparse 9.43 * Total_Surface_Area_SC / Total_Surface_Area_EXP}'
mass_flux_in = '${fparse mdot_average / Total_Surface_Area_SC}' #kg/m2
###################################################
# Geometric parameters (non-deformed heated bundle)
###################################################
fuel_pin_pitch = 0.01122652 #m
fuel_pin_diameter = 0.009514 #m
wire_z_spacing = 0.285 #m
wire_diameter = 0.0017062 #m
inner_duct_in = 0.092 #m
n_rings = 5
unheated_length_entry = 1.14 #m
heated_length = 1.71 #m
unheated_length_exit = 0.855 #m
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 65
flat_to_flat = ${inner_duct_in}
unheated_length_entry = ${unheated_length_entry}
heated_length = ${heated_length}
unheated_length_exit = ${unheated_length_exit}
pin_diameter = ${fuel_pin_diameter}
pitch = ${fuel_pin_pitch}
dwire = ${wire_diameter}
hwire = ${wire_z_spacing}
spacer_z = '0.0'
spacer_k = '0.0'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 65
unheated_length_entry = ${unheated_length_entry}
heated_length = ${heated_length}
unheated_length_exit = ${unheated_length_exit}
pitch = ${fuel_pin_pitch}
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(0.4*pi/(pi-2))*sin(pi*z/L) + 1.4 - (0.4*pi/(pi-2))'
symbol_names = 'L'
symbol_values = '${heated_length}'
[]
[]
[FluidProperties]
[water]
type = Water97FluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = water
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-4
implicit = true
segregated = false
interpolation_scheme = 'upwind'
verbose_subchannel = true
# Heat Transfer Correlations
pin_HTC_closure = 'gnielinski'
# friction model
friction_closure = 'cheng'
full_output = true
# Turbulent mixing Correlation
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power}
filename = "pin_power_profile61.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 = water
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = water
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = water
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[displacement_ic]
type = FCTFdisplacementIC
variable = displacement
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
exodus = true
csv = true
[]
!include deformed_duct_pp.i
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3D.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S displacement'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Dpin Tpin q_prime'
[]
[]
(modules/subchannel/validation/EBR-II/XX09_SCM_SS45R.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 calculation
# Thermal-hydraulics parameters
###################################################
T_in = 616.4 #Kelvin
Total_Surface_Area = 0.000854322 #m2
Mass_In = 2.427 #kg/sec
mass_flux_in = '${fparse Mass_In / Total_Surface_Area}' #kg/m2
P_out = 2.0e5
Power_initial = 379800 #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]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
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}
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = ${n_rings}
n_cells = 50
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[AuxVariables]
[q_prime_init]
block = fuel_pins
[]
[power_history_field]
block = fuel_pins
[]
[]
[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
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[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 = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[TTC-27]
type = SubChannelPointValue
variable = T
index = 91
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-28]
type = SubChannelPointValue
variable = T
index = 50
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-29]
type = SubChannelPointValue
variable = T
index = 21
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-30]
type = SubChannelPointValue
variable = T
index = 4
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 2
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-32]
type = SubChannelPointValue
variable = T
index = 16
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-33]
type = SubChannelPointValue
variable = T
index = 42
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-34]
type = SubChannelPointValue
variable = T
index = 80
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-35]
type = SubChannelPointValue
variable = T
index = 107
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[MTC-20]
type = SubChannelPointValue
variable = T
index = 33
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-22]
type = SubChannelPointValue
variable = T
index = 3
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-24]
type = SubChannelPointValue
variable = T
index = 28
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-25]
type = SubChannelPointValue
variable = T
index = 60
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-26]
type = SubChannelPointValue
variable = T
index = 106
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[14TC-37]
type = SubChannelPointValue
variable = T
index = 52
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-39]
type = SubChannelPointValue
variable = T
index = 6
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-41]
type = SubChannelPointValue
variable = T
index = 40
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-43]
type = SubChannelPointValue
variable = T
index = 105
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[]
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3d_SCM_SS.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(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]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
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}
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 20
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
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 = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[dittus-boelter]
type = SCMHTCDittusBoelter
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[kazimi-carelli]
type = SCMHTCKazimiCarelli
[]
[schad-modified]
type = SCMHTCSchadModified
[]
[graber-rieger]
type = SCMHTCGraberRieger
[]
[borishanskii]
type = SCMHTCBorishanskii
[]
[cheng_todreas]
type = SCMMixingChengTodreas
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 = sub_channel
[]
[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
[]
(modules/subchannel/validation/EBR-II/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 calculation
# 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]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
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}
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = ${n_rings}
n_cells = 50
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
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[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 = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[TTC-27]
type = SubChannelPointValue
variable = T
index = 91
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-28]
type = SubChannelPointValue
variable = T
index = 50
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-29]
type = SubChannelPointValue
variable = T
index = 21
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-30]
type = SubChannelPointValue
variable = T
index = 4
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 2
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-32]
type = SubChannelPointValue
variable = T
index = 16
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-33]
type = SubChannelPointValue
variable = T
index = 42
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-34]
type = SubChannelPointValue
variable = T
index = 80
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-35]
type = SubChannelPointValue
variable = T
index = 107
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[MTC-20]
type = SubChannelPointValue
variable = T
index = 33
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-22]
type = SubChannelPointValue
variable = T
index = 3
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-24]
type = SubChannelPointValue
variable = T
index = 28
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-25]
type = SubChannelPointValue
variable = T
index = 60
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-26]
type = SubChannelPointValue
variable = T
index = 106
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[14TC-37]
type = SubChannelPointValue
variable = T
index = 52
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-39]
type = SubChannelPointValue
variable = T
index = 6
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-41]
type = SubChannelPointValue
variable = T
index = 40
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-43]
type = SubChannelPointValue
variable = T
index = 105
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[]
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3d_SCM_SS.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]