- friction_modelUpgradedFriction-factor parameterization for triangular wire-wrapped Chen-Todreas correlations.
Default:Upgraded
C++ Type:MooseEnum
Controllable:No
Description:Friction-factor parameterization for triangular wire-wrapped Chen-Todreas correlations.
SCMFrictionChenTodreas
Class that computes the axial friction factor using the Chen-Todreas correlations.
Overview
This class is used to model the axial friction factor for a subchannel assembly with wire-wrapped/bare fuel pins in a triangular lattice or bare fuel pins in a quadrilateral lattice.
For triangular lattices, two Chen-Todreas friction-factor parameterizations are available:
Upgraded, based on the upgraded Chen-Todreas correlation (UCTD) Todreas and Kazimi (2021), Chen et al. (2018);Pacio, based on the Pacio-Chen-Todreas parameterization (PCTD) Pacio et al. (2022).
Equation and table numbers below refer to the UCTD and PCTD papers cited above.
The desired triangular-lattice parameterization is selected using the friction_model parameter. The default is Upgraded.
The two models use the same general form of the Cheng-Todreas detailed subchannel friction correlation but use different empirical coefficients for the flow-regime transition, wire-drag and wire-sweep terms, and intermittent-regime interpolation.
Triangular lattices
Upgraded Chen-Todreas parameterization
For friction_model = Upgraded, the laminar and turbulent transition Reynolds numbers are given by Eqs. (3) and (2) of UCTD,
and
The turbulent wire-drag coefficient is evaluated as in Eq. (14) of UCTD, with the sign of the linear term corrected in Chen et al. (2018),
with the laminar coefficient from Eq. (19) of UCTD,
The turbulent wire-sweep coefficient is given by Eq. (21) of UCTD,
with Eq. (20) of UCTD,
The intermittent-regime interpolation, Eq. (4) of UCTD, uses
Pacio-Chen-Todreas parameterization
For friction_model = Pacio, the transition Reynolds numbers are independent of and are given by Eqs. (13) and (12) of PCTD with the coefficients of its Table 5,
The turbulent wire-drag coefficient is evaluated using Eq. (21) of PCTD as
with the laminar coefficient from Eq. (22) of PCTD,
The turbulent wire-sweep coefficient is given by Eq. (1) of PCTD,
with Eq. (26) of PCTD,
The intermittent-regime interpolation, Eq. (35) of PCTD, uses
Flow-regime interpolation
For both triangular-lattice parameterizations, the interpolation factor in the intermittent regime is evaluated using the bulk Reynolds number as in Eq. (5) of UCTD and Eq. (34) of PCTD,
The laminar and turbulent subchannel friction factors, Eqs. (A1) and (A2) of UCTD and Eqs. (16) and (15) of PCTD, are
and
where is the local subchannel Reynolds number and and include the appropriate bare-pin and, when present, wire-wrap contributions.
The intermittent friction factor is calculated as in Eq. (4) of UCTD and Eq. (35) of PCTD,
The values of , , , and are determined by the selected friction_model. Table 5 of PCTD compares all coefficients of both parameterizations.
Both and are evaluated at the local Reynolds number of the subchannel, from its current mass flux, as Eq. (35) of PCTD is written. The example calculation of PCTD, its Section 6.1.3, instead evaluates with the laminar flow split and with the turbulent flow split of the subchannel type, computed before the transition regime. In the transition regime this gives a different flow split than the PCTD curves of the paper, up to about 0.14 in the corner subchannel of a 37-pin bundle; the laminar and turbulent regimes are not affected. Friction Factor Closures Verification compares the two.
Applicability
For triangular lattices, the closure flags a solution warning when , wire-wrap , number of pins, or the bulk Reynolds number is outside the data range associated with the selected friction correlation. Both sets of ranges are the reported ranges of validity in Table 1 of PCTD.
For the Upgraded parameterization, the implemented applicability ranges are
and
For the Pacio parameterization, the implemented applicability ranges are
and
Quadrilateral lattices
The friction_model selection applies only to triangular lattices.
For quadrilateral lattices, the existing Cheng-Todreas bare-pin friction-factor formulation is retained. The transition Reynolds numbers are given by Eqs. (3) and (2) of UCTD,
and the intermittent-regime interpolation, Eq. (4) of UCTD, uses
Plots of the friction factor versus Reynolds number for all SCM friction closures are given in Friction Factor Closures Verification.
Input Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
Advanced 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/validation/Toshiba_37_pin/toshiba_37_pin.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS17_corrected.i)
- (modules/combined/test/tests/subchannel_thm_coupling/subchannel.i)
- (modules/subchannel/verification/friction_model_verification/friction_model/friction_factor_sampling.i)
- (modules/subchannel/test/tests/problems/SFR/sodium-7pin/case1_scm.i)
- (modules/subchannel/examples/MultiApp/fuel_assembly.i)
- (modules/subchannel/test/tests/problems/heat_transfer_correlations/XX09_SCM_SS17.i)
- (modules/subchannel/test/tests/problems/Lead-LBE-19pin/test_LBE-19pin.i)
- (modules/subchannel/validation/ORNL_19_pin/test_ORNL_19.i)
- (modules/subchannel/verification/friction_model_verification/friction_model/tri_bare_flow_split.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS45R.i)
- (modules/subchannel/test/tests/problems/psbt/psbt_explicit_v2.i)
- (modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_monolithic.i)
- (modules/subchannel/verification/friction_model_verification/friction_model/tri_wire_flow_split.i)
- (modules/subchannel/test/tests/problems/deformation/tri_pin_diameter.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS17.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_TR45R.i)
- (modules/subchannel/validation/areva_FCTF/FCTF_non_deformed.i)
- (modules/subchannel/test/tests/multiapp/sc_core.i)
- (modules/subchannel/test/tests/positions/pin_positions.i)
- (modules/subchannel/validation/areva_FCTF/FCTF_deformed.i)
- (modules/subchannel/validation/Blockage/THORS/FFM-5B_low.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_TR17.i)
- (modules/subchannel/validation/Blockage/THORS/FFM-3A.i)
- (modules/subchannel/verification/friction_model_verification/friction_model/pacio_paper.i)
- (modules/subchannel/test/tests/SCMTriPower/test_with_pins.i)
- (modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_implicit.i)
- (modules/subchannel/test/tests/problems/Lead-LBE-19pin/test_LEAD-19pin.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS45R_corrected.i)
- (modules/subchannel/test/tests/problems/SFR/EBR-II/XX09_SS_SHRT17.i)
- (modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_explicit.i)
- (modules/subchannel/verification/friction_model_verification/two_channel/two_channel2.i)
- (modules/subchannel/examples/duct/test.i)
- (modules/subchannel/validation/Blockage/THORS/FFM-5B_high.i)
References
- SK Chen, YM Chen, and NE Todreas.
Corrigendum to “the upgraded cheng and todreas correlation for pressure drop in hexagonal wire-wrapped rod bundles” [nucl. eng. des. 335 (2018) 356–373].
Nuclear Engineering and Design, 340:414, 2018.[Export]
BibTeX
@article{chen2018corrigendum, author = "Chen, SK and Chen, YM and Todreas, NE", title = "Corrigendum to ``The upgraded Cheng and Todreas correlation for pressure drop in hexagonal wire-wrapped rod bundles'' [Nucl. Eng. Des. 335 (2018) 356--373]", journal = "Nuclear Engineering and Design", volume = "340", pages = "414", year = "2018", publisher = "Elsevier" }RIS
TY - JOUR AU - Chen, SK AU - Chen, YM AU - Todreas, NE TI - Corrigendum to “The upgraded Cheng and Todreas correlation for pressure drop in hexagonal wire-wrapped rod bundles” [Nucl. Eng. Des. 335 (2018) 356–373] JO - Nuclear Engineering and Design PY - 2018 VL - 340 PB - Elsevier SP - 414 ER -Plain Text
SK Chen, YM Chen, and NE Todreas. Corrigendum to “the upgraded cheng and todreas correlation for pressure drop in hexagonal wire-wrapped rod bundles” [nucl. eng. des. 335 (2018) 356–373]. Nuclear Engineering and Design, 340:414, 2018. - SK Chen, YM Chen, and NE Todreas.
The upgraded cheng and todreas correlation for pressure drop in hexagonal wire-wrapped rod bundles.
Nuclear Engineering and Design, 335:356–373, 2018.[Export]
BibTeX
@article{chen2018upgraded, author = "Chen, SK and Chen, YM and Todreas, NE", title = "The upgraded Cheng and Todreas correlation for pressure drop in hexagonal wire-wrapped rod bundles", journal = "Nuclear Engineering and Design", volume = "335", pages = "356--373", year = "2018", publisher = "Elsevier" }RIS
TY - JOUR AU - Chen, SK AU - Chen, YM AU - Todreas, NE TI - The upgraded Cheng and Todreas correlation for pressure drop in hexagonal wire-wrapped rod bundles JO - Nuclear Engineering and Design PY - 2018 VL - 335 PB - Elsevier SP - 356 EP - 373 ER -Plain Text
SK Chen, YM Chen, and NE Todreas. The upgraded cheng and todreas correlation for pressure drop in hexagonal wire-wrapped rod bundles. Nuclear Engineering and Design, 335:356–373, 2018. - J Pacio, SK Chen, YM Chen, and NE Todreas.
Analysis of pressure losses and flow distribution in wire-wrapped hexagonal rod bundles for licensing. part i: the pacio-chen-todreas detailed model (pctd).
Nuclear Engineering and Design, 388:111607, 2022.[Export]
BibTeX
@article{pacio2022analysis, author = "Pacio, J and Chen, SK and Chen, YM and Todreas, NE", title = "Analysis of pressure losses and flow distribution in wire-wrapped hexagonal rod bundles for licensing. Part I: The Pacio-Chen-Todreas Detailed model (PCTD)", journal = "Nuclear Engineering and Design", volume = "388", pages = "111607", year = "2022", publisher = "Elsevier" }RIS
TY - JOUR AU - Pacio, J AU - Chen, SK AU - Chen, YM AU - Todreas, NE TI - Analysis of pressure losses and flow distribution in wire-wrapped hexagonal rod bundles for licensing. Part I: The Pacio-Chen-Todreas Detailed model (PCTD) JO - Nuclear Engineering and Design PY - 2022 VL - 388 PB - Elsevier SP - 111607 ER -Plain Text
J Pacio, SK Chen, YM Chen, and NE Todreas. Analysis of pressure losses and flow distribution in wire-wrapped hexagonal rod bundles for licensing. part i: the pacio-chen-todreas detailed model (pctd). Nuclear Engineering and Design, 388:111607, 2022. - Neil E Todreas and Mujid S Kazimi.
Nuclear systems volume I: Thermal hydraulic fundamentals.
CRC press, 2021.[Export]
BibTeX
@book{todreas2021nuclear1, author = "Todreas, Neil E and Kazimi, Mujid S", title = "Nuclear systems volume I: Thermal hydraulic fundamentals", year = "2021", publisher = "CRC press" }RIS
TY - BOOK AU - Todreas, Neil E AU - Kazimi, Mujid S TI - Nuclear systems volume I: Thermal hydraulic fundamentals PY - 2021 PB - CRC press ER -Plain Text
Neil E Todreas and Mujid S Kazimi. Nuclear systems volume I: Thermal hydraulic fundamentals. CRC press, 2021.
(modules/subchannel/validation/Toshiba_37_pin/toshiba_37_pin.i)
T_in = 660
# [1e+6 kg/m^2-hour] turns into kg/m^2-sec
mass_flux_in = '${fparse 1e+6 * 37.00 / 36000.*0.5}'
P_out = 2.0e5 # Pa
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = 4
n_cells = 20
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'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[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
[]
[mu]
block = subchannel
[]
[S]
block = subchannel
[]
[w_perim]
block = subchannel
[]
[q_prime]
block = fuel_pins
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-6
T_tol = 1.0e-3
implicit = true
segregated = false
staggered_pressure = false
verbose_multiapps = true
verbose_subchannel = false
pin_HTC_closure = 'Dittus-Boelter'
# friction model
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1.000e5 # W
filename = "pin_power_profile_37.txt"
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = 0.01
[]
[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
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[T_Planar_Mean]
type = SCMPlanarMean
variable = T
execute_on = 'TIMESTEP_END'
height = 1.0
[]
[DP_SubchannelDelta]
type = SubChannelDelta
variable = P
execute_on = 'TIMESTEP_END'
[]
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = "toshiba_37_pin_viz.i"
execute_on = "timestep_end"
[]
[]
###### Transfers to the detailedMesh at the end of the coupled simulations
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMSolutionTransfer
transfer_type = pin
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
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 = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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 = subchannel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[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 = SCMSolutionTransfer
transfer_type = pin
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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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'
[]
[]
[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-8
T_tol = 1.0e-8
rtol = 1.0e-10
atol = 1.0e-10
implicit = true
segregated = false
staggered_pressure = false
verbose_multiapps = true
verbose_subchannel = false
interpolation_scheme = 'upwind'
pin_HTC_closure = 'gnielinski'
friction_closure = 'Chen'
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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 = subchannel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = report_mass_flux_inlet
execute_on = 'timestep_begin'
block = subchannel
[]
[]
[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
transfer_type = subchannel
to_multi_app = viz
variable = 'mdot SumWij P h T rho mu S'
[]
[pin_transfer]
type = SCMSolutionTransfer
transfer_type = pin
to_multi_app = viz
variable = 'Tpin q_prime Dpin'
[]
[]
(modules/subchannel/verification/friction_model_verification/friction_model/friction_factor_sampling.i)
# Shared part of the friction factor sampling inputs. Each time step solves the assembly at a
# larger inlet mass flux, and the friction factor and Reynolds number of one interior, edge, and
# corner subchannel are reported. The including input defines the mesh, the problem type, the
# friction closure, the exponent G_exp0 of the initial inlet mass flux, and the center, edge, and
# corner subchannel indices.
T_in = 359.15 # K
P_out = 4.923e6 # Pa
# Inlet mass flux 10^(G_exp0 + 0.1 n) [kg/m^2-s] at step n. The bulk Reynolds number is about 1 at
# n = 1 and grows by 0.1 decades per step, so 56 steps stop the sweep just below the upper limit
# Re = 3e5 of the Pacio-Chen-Todreas applicability range
G_exp_rate = 0.1
# Each sweep step is a time step of the transient solve. The time derivative of the axial momentum
# equation, about dz (mdot - mdot_old) / dt, is about 9% of the laminar friction of the wire-wrapped
# assembly for dt = 1 s and skews the laminar flow split, so each step lasts 1e4 s, which makes it
# negligible
dt_step = 1e4 # s
# The inlet mass flux is uniform, and the flow split develops over about 1.5 m, so the friction
# factor is sampled near the outlet of the 3 m assembly, where the flow is developed. The closure
# at the outlet node of a cell uses the Reynolds number at the inlet node, so the Reynolds number
# is sampled one cell (0.1 m) below the friction factor
z_Re = 2.8
z_ff = 2.9
[FluidProperties]
[water]
type = Water97FluidProperties
[]
[]
[SubChannel]
fp = water
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = false
full_output = true
mixing_closure = 'constant_beta'
pin_HTC_closure = 'Dittus-Boelter'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[constant_beta]
type = SCMMixingConstantBeta
beta = 0.006
# No turbulent exchange of axial momentum, so the developed flow split is set by the friction
# closure alone
CT = 0.0
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[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
[]
[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
[]
[mu_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = water
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[Functions]
[mass_flux_fn]
type = ParsedFunction
expression = '10^(${G_exp0} + ${G_exp_rate} * t / ${dt_step})'
[]
[]
[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
execute_on = 'timestep_begin'
[]
[]
[Postprocessors]
[mass_flux]
type = FunctionValuePostprocessor
function = mass_flux_fn
execute_on = 'initial timestep_begin'
outputs = none
[]
[ff_center]
type = SubChannelPointValue
variable = ff
index = ${center}
height = ${z_ff}
[]
[ff_edge]
type = SubChannelPointValue
variable = ff
index = ${edge}
height = ${z_ff}
[]
[ff_corner]
type = SubChannelPointValue
variable = ff
index = ${corner}
height = ${z_ff}
[]
[mdot_center]
type = SubChannelPointValue
variable = mdot
index = ${center}
height = ${z_Re}
outputs = none
[]
[mdot_edge]
type = SubChannelPointValue
variable = mdot
index = ${edge}
height = ${z_Re}
outputs = none
[]
[mdot_corner]
type = SubChannelPointValue
variable = mdot
index = ${corner}
height = ${z_Re}
outputs = none
[]
[w_perim_center]
type = SubChannelPointValue
variable = w_perim
index = ${center}
height = ${z_Re}
outputs = none
[]
[w_perim_edge]
type = SubChannelPointValue
variable = w_perim
index = ${edge}
height = ${z_Re}
outputs = none
[]
[w_perim_corner]
type = SubChannelPointValue
variable = w_perim
index = ${corner}
height = ${z_Re}
outputs = none
[]
[mu_center]
type = SubChannelPointValue
variable = mu
index = ${center}
height = ${z_Re}
outputs = none
[]
[mu_edge]
type = SubChannelPointValue
variable = mu
index = ${edge}
height = ${z_Re}
outputs = none
[]
[mu_corner]
type = SubChannelPointValue
variable = mu
index = ${corner}
height = ${z_Re}
outputs = none
[]
# Subchannel Reynolds number (mdot / S) Dh / mu with Dh = 4 S / w_perim, as in the solver
[Re_center]
type = ParsedPostprocessor
expression = '4 * mdot_center / (w_perim_center * mu_center)'
pp_names = 'mdot_center w_perim_center mu_center'
[]
[Re_edge]
type = ParsedPostprocessor
expression = '4 * mdot_edge / (w_perim_edge * mu_edge)'
pp_names = 'mdot_edge w_perim_edge mu_edge'
[]
[Re_corner]
type = ParsedPostprocessor
expression = '4 * mdot_corner / (w_perim_corner * mu_corner)'
pp_names = 'mdot_corner w_perim_corner mu_corner'
[]
[]
[Outputs]
csv = true
[]
[Executioner]
type = Transient
start_time = 0.0
end_time = '${fparse 56 * dt_step}'
dt = ${dt_step}
[]
(modules/subchannel/test/tests/problems/SFR/sodium-7pin/case1_scm.i)
T_in = 667.15
outlet_pressure = 1.01325e5
assembly_power = 4000.0
volume_flow_rate = 0.002090242
rho_in = '${fparse 1004.23 - 0.21390 * T_in - 1.1046e-5 * T_in * T_in}'
mass_flow_rate = '${fparse volume_flow_rate * rho_in}'
core_length = 1.145
pin_pitch = 0.027813
pin_diameter = 0.024638
duct_inner_ftf = 0.0769620
n_pins = 7
flow_area = ${fparse sqrt(3)/2 * duct_inner_ftf ^2 - n_pins * pi * pin_diameter^2 / 4}
mass_flux_in = '${fparse mass_flow_rate / flow_area}'
axial_shape_scale = 1.33449883449883
[TriSubChannelMesh]
[assembly]
type = SCMTriAssemblyMeshGenerator
nrings = 2
n_cells = 20
heated_length = ${core_length}
flat_to_flat = ${duct_inner_ftf}
pin_diameter = ${pin_diameter}
pitch = ${pin_pitch}
dwire = 0.0
hwire = 0.0
spacer_z = '0.0'
spacer_k = '0.0'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[Functions]
[axial_heat_rate]
type = PiecewiseConstant
axis = z
x = '0.000 0.118 0.641 0.692 1.027'
y = '0.0 ${axial_shape_scale} 0.0 ${axial_shape_scale} 0.0'
direction = left
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${outlet_pressure}
compute_density = true
compute_viscosity = true
compute_power = true
implicit = true
segregated = false
interpolation_scheme = upwind
gravity = counter_flow
friction_closure = uctd_friction
mixing_closure = kim_chung_mixing
pin_HTC_closure = kazimi_carelli_htc
P_tol = 1.0e-8
T_tol = 1.0e-8
rtol = 1.0e-10
atol = 1.0e-10
full_output = true
verbose_subchannel = true
[]
[SCMClosures]
[uctd_friction]
type = SCMFrictionChenTodreas
[]
[kim_chung_mixing]
type = SCMMixingKimAndChung
[]
[kazimi_carelli_htc]
type = SCMHTCKazimiCarelli
[]
[]
[ICs]
[q_prime_ic]
type = SCMTriPowerIC
variable = q_prime
power = ${assembly_power}
filename = "pin_power_profile7.txt"
axial_heat_rate = axial_heat_rate
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = ${pin_diameter}
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[mu_ic]
type = ViscosityIC
variable = mu
p = ${outlet_pressure}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${outlet_pressure}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${outlet_pressure}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[inlet_temperature]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = timestep_begin
[]
[inlet_mass_flow]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = timestep_begin
[]
[]
[Postprocessors]
# For nrings = 2, channels 0-5 are center channels and the perimeter channels then alternate
# edge/corner. Sample one center, one edge, and one corner channel at the outlet.
[T_center_out]
type = SubChannelPointValue
variable = T
index = 0
execute_on = 'timestep_end'
height = ${core_length}
[]
[T_edge_out]
type = SubChannelPointValue
variable = T
index = 6
execute_on = 'timestep_end'
height = ${core_length}
[]
[T_corner_out]
type = SubChannelPointValue
variable = T
index = 7
execute_on = 'timestep_end'
height = ${core_length}
[]
[mdot_center_out]
type = SubChannelPointValue
variable = mdot
index = 0
execute_on = 'timestep_end'
height = ${core_length}
[]
[mdot_edge_out]
type = SubChannelPointValue
variable = mdot
index = 6
execute_on = 'timestep_end'
height = ${core_length}
[]
[mdot_corner_out]
type = SubChannelPointValue
variable = mdot
index = 7
execute_on = 'timestep_end'
height = ${core_length}
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
exodus = false
[]
(modules/subchannel/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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
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 = true
segregated = false
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 = 'Chen'
# Turbulent mixing Correlation
mixing_closure = 'Chen_Todreas'
# Output
compute_density = true
compute_viscosity = true
compute_power = true
verbose_multiapps = true
verbose_subchannel = false
full_output = true
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
[]
[]
[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 = subchannel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
block = subchannel
[]
[]
[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 = SCMSolutionTransfer
transfer_type = pin
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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = ${n_rings}
n_cells = 20
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pin_diameter = ${fuel_pin_diameter}
pitch = ${fuel_pin_pitch}
dwire = ${wire_diameter}
hwire = ${wire_z_spacing}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
nrings = ${n_rings}
n_cells = 20
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(pi/2)*sin(pi*z/L)*exp(-alpha*z)/(1.0/alpha*(1.0 - exp(-alpha*L)))*L'
symbol_names = 'L alpha'
symbol_values = '${heated_length} 1.8012'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-4
T_tol = 1.0e-5
implicit = true
segregated = false
interpolation_scheme = 'upwind'
verbose_subchannel = true
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[dittus-boelter]
type = SCMHTCDittusBoelter
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[negative-htc]
type = SCMHTCNegativeTest
[]
[kazimi-carelli]
type = SCMHTCKazimiCarelli
[]
[schad-modified]
type = SCMHTCSchadModified
[]
[graber-rieger]
type = SCMHTCGraberRieger
[]
[borishanskii]
type = SCMHTCBorishanskii
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
CT = 2.6
[]
[]
# Keep T manually declared and unrestricted so this legacy regression continues
# to compare against the pre-scoped AuxVariable golds. The automatic
# SubChannelAddVariablesAction path remains block-restricted for normal inputs.
[AuxVariables]
[T]
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power_initial}
filename = "pin_power_profile61_uniform.txt"
axial_heat_rate = axial_heat_rate
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = subchannel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
### Central pin inlet temperature
[Pin_Temp_0_Inlet]
type = SCMPinSurfaceTemperature
index = 0
height = ${fparse heated_length*0.01}
[]
### Central pin center temperature
[Pin_Temp_1_Center]
type = SCMPinSurfaceTemperature
index = 0
height = ${fparse heated_length*0.5}
[]
### Central pin outlet temperature
[Pin_Temp_2_Outlet]
type = SCMPinSurfaceTemperature
index = 0
height = ${fparse heated_length*0.99}
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/test/tests/problems/Lead-LBE-19pin/test_LBE-19pin.i)
T_in = 673.15
flow_area = 0.00128171 #m2
rho_in = 10453.21705
# [10 m^3/hour] turns into kg/m^2-sec
mass_flux_in = '${fparse 10*rho_in/3600/flow_area}'
P_out = 1.0e5 # Pa
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = 3
n_cells = 50
flat_to_flat = 0.05319936
heated_length = 0.87
unheated_length_entry = 0.0
unheated_length_exit = 0.402
pin_diameter = 8.2e-3
pitch = 0.01148
dwire = 0.0
hwire = 0.0
spacer_z = '0.177 0.547 0.870'
spacer_k = '1.1719 1.1719 1.1719'
[]
[]
[FluidProperties]
[LBE]
type = LeadBismuthFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = LBE
n_blocks = 1
P_out = 1.0e5
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-4
T_tol = 1.0e-4
implicit = true
segregated = false
verbose_subchannel = true
interpolation_scheme = upwind
pin_HTC_closure = 'Dittus-Boelter'
# friction model
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Kim_and_Chung'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[Kim_and_Chung]
type = SCMMixingKimAndChung
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = '${fparse 250000}'
filename = "pin_power_profile19.txt"
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = 8.2e-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 = LBE
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = LBE
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = LBE
[]
[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]
[T1]
type = SubChannelPointValue
variable = T
index = 37
execute_on = "timestep_end"
height = 0.87
[]
[T2]
type = SubChannelPointValue
variable = T
index = 36
execute_on = "timestep_end"
height = 0.87
[]
[T3]
type = SubChannelPointValue
variable = T
index = 20
execute_on = "timestep_end"
height = 0.87
[]
[T4]
type = SubChannelPointValue
variable = T
index = 10
execute_on = "timestep_end"
height = 0.87
[]
[T5]
type = SubChannelPointValue
variable = T
index = 4
execute_on = "timestep_end"
height = 0.87
[]
[T6]
type = SubChannelPointValue
variable = T
index = 1
execute_on = "timestep_end"
height = 0.87
[]
[T7]
type = SubChannelPointValue
variable = T
index = 14
execute_on = "timestep_end"
height = 0.87
[]
[T8]
type = SubChannelPointValue
variable = T
index = 28
execute_on = "timestep_end"
height = 0.87
[]
####### 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 = fuel_pins
[]
[]
[Outputs]
csv = true
[]
[Executioner]
type = Steady
[]
# ################################################################################
# # A multiapp that projects data to a detailed mesh
# ################################################################################
# [MultiApps]
# [viz]
# type = FullSolveMultiApp
# input_files = "3d_LBE_19.i"
# execute_on = "timestep_end"
# max_procs_per_app = 1
# []
# []
# [Transfers]
# [xfer]
# type = SCMSolutionTransfer
# to_multi_app = viz
# variable = 'mdot SumWij P DP h T rho mu q_prime S'
# []
# []
(modules/subchannel/validation/ORNL_19_pin/test_ORNL_19.i)
# M. Fontana, et al,
# "Temperature distribution in the duct wall and at the exit of a 19-pin simulated lmfbr fuel assembly (ffm bundle 2a),
# "Nuclear Technology, vol. 24, no. 2, pp. 176-200, 1974.
T_in = 588.5
A12 = 1.00423e3
A13 = -0.21390
A14 = -1.1046e-5
rho = '${fparse A12 + A13 * T_in + A14 * T_in * T_in}'
flow_area = 0.000467906 #m2
vol_flow = 4.67E-05 #low flow case
mass_flux_in = '${fparse rho * vol_flow / flow_area}'
P_out = 2.0e5 # Pa
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = 3
n_cells = 40
flat_to_flat = 3.41e-2
heated_length = 0.5334
unheated_length_entry = 0.4064
unheated_length_exit = 0.0762
pin_diameter = 5.84e-3
pitch = 7.26e-3
dwire = 1.42e-3
hwire = 0.3048
spacer_z = '0.0'
spacer_k = '0.0'
[]
[]
[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
P_tol = 1.0e-5
T_tol = 1.0e-4
implicit = true
segregated = false
verbose_multiapps = true
verbose_subchannel = true
interpolation_scheme = upwind
pin_HTC_closure = 'Dittus-Boelter'
# friction model
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
CT = 2.6
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 4966 #W
filename = "pin_power_profile19.txt"
[]
[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'
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[T1]
type = SubChannelPointValue
variable = T
index = 37
execute_on = "timestep_end"
height = 1.016
[]
[T2]
type = SubChannelPointValue
variable = T
index = 36
execute_on = "timestep_end"
height = 1.016
[]
[T3]
type = SubChannelPointValue
variable = T
index = 20
execute_on = "timestep_end"
height = 1.016
[]
[T4]
type = SubChannelPointValue
variable = T
index = 10
execute_on = "timestep_end"
height = 1.016
[]
[T5]
type = SubChannelPointValue
variable = T
index = 4
execute_on = "timestep_end"
height = 1.016
[]
[T6]
type = SubChannelPointValue
variable = T
index = 1
execute_on = "timestep_end"
height = 1.016
[]
[T7]
type = SubChannelPointValue
variable = T
index = 14
execute_on = "timestep_end"
height = 1.016
[]
[T8]
type = SubChannelPointValue
variable = T
index = 28
execute_on = "timestep_end"
height = 1.016
[]
####### 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 = fuel_pins
[]
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = "3d_ORNL_19.i"
execute_on = "timestep_end"
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMSolutionTransfer
transfer_type = pin
to_multi_app = viz
variable = q_prime
[]
[]
(modules/subchannel/verification/friction_model_verification/friction_model/tri_bare_flow_split.i)
# Developed flow split of the 19-pin LBE bare-pin triangular lattice of tri_bare.i. The assembly is
# solved in steady state at one inlet mass flux, which gives a bulk Reynolds number of about 3.3e4,
# the same as tri_wire_flow_split.i. The flow split, the mass flux of a subchannel divided by the
# bulk mass flux, of one interior, edge, and corner subchannel is reported at the outlet.
T_in = 359.15 # K
P_out = 4.923e6 # Pa
# Bulk mass flux that gives a bulk Reynolds number of about 3.3e4 with the bulk hydraulic diameter
# of this assembly, about 8.6 mm, and the inlet viscosity of tri_wire_flow_split.i
mass_flux = 1275 # kg/m^2-s
# The inlet mass flux is uniform, and the flow split develops over about 1.5 m, so it is sampled at
# the outlet of the 3 m assembly, where the flow is developed
z_out = 3.0
# Subchannel indices of an interior, an edge, and a corner subchannel, as in tri_bare.i
center = 0
edge = 24
corner = 25
# Number of interior, edge, and corner subchannels of the 3-ring assembly: 6 (nrings - 1)^2,
# 6 (nrings - 1), and 6
n_center = 24
n_edge = 12
n_corner = 6
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = 3
n_cells = 30
flat_to_flat = 0.05319936
heated_length = 3
pin_diameter = 0.0082
pitch = 0.01148
dwire = 0.0
hwire = 0.0
spacer_z = '0.0'
spacer_k = '0.0'
[]
[]
[FluidProperties]
[water]
type = Water97FluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = water
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = false
full_output = true
# Monolithic implicit solver. The explicit solver converges the developed turbulent flow split
# only to about 1% with the default tolerances.
implicit = true
segregated = false
P_tol = 1e-8
T_tol = 1e-8
rtol = 1e-10
atol = 1e-10
friction_closure = 'Chen'
mixing_closure = 'constant_beta'
pin_HTC_closure = 'Dittus-Boelter'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[constant_beta]
type = SCMMixingConstantBeta
beta = 0.006
# No turbulent exchange of axial momentum, so the developed flow split is set by the friction
# closure alone
CT = 0.0
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[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
[]
[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
[]
[mu_ic]
type = ViscosityIC
variable = mu
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'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux}
execute_on = 'timestep_begin'
[]
[]
[Postprocessors]
[mdot_center]
type = SubChannelPointValue
variable = mdot
index = ${center}
height = ${z_out}
outputs = none
[]
[mdot_edge]
type = SubChannelPointValue
variable = mdot
index = ${edge}
height = ${z_out}
outputs = none
[]
[mdot_corner]
type = SubChannelPointValue
variable = mdot
index = ${corner}
height = ${z_out}
outputs = none
[]
[S_center]
type = SubChannelPointValue
variable = S
index = ${center}
height = ${z_out}
outputs = none
[]
[S_edge]
type = SubChannelPointValue
variable = S
index = ${edge}
height = ${z_out}
outputs = none
[]
[S_corner]
type = SubChannelPointValue
variable = S
index = ${corner}
height = ${z_out}
outputs = none
[]
[w_perim_center]
type = SubChannelPointValue
variable = w_perim
index = ${center}
height = ${z_out}
outputs = none
[]
[w_perim_edge]
type = SubChannelPointValue
variable = w_perim
index = ${edge}
height = ${z_out}
outputs = none
[]
[w_perim_corner]
type = SubChannelPointValue
variable = w_perim
index = ${corner}
height = ${z_out}
outputs = none
[]
# The solver evaluates the bulk Reynolds number with the inlet viscosity
[mu_in]
type = SubChannelPointValue
variable = mu
index = ${center}
height = 0.0
outputs = none
[]
# Subchannel hydraulic diameters Dh = 4 S / w_perim, as in the solver
[Dh_center]
type = ParsedPostprocessor
expression = '4 * S_center / w_perim_center'
pp_names = 'S_center w_perim_center'
[]
[Dh_edge]
type = ParsedPostprocessor
expression = '4 * S_edge / w_perim_edge'
pp_names = 'S_edge w_perim_edge'
[]
[Dh_corner]
type = ParsedPostprocessor
expression = '4 * S_corner / w_perim_corner'
pp_names = 'S_corner w_perim_corner'
[]
# Bulk hydraulic diameter, 4 times the total flow area over the total wetted perimeter
[Dh_bulk]
type = ParsedPostprocessor
expression = '4 * (${n_center} * S_center + ${n_edge} * S_edge + ${n_corner} * S_corner)
/ (${n_center} * w_perim_center + ${n_edge} * w_perim_edge
+ ${n_corner} * w_perim_corner)'
pp_names = 'S_center S_edge S_corner w_perim_center w_perim_edge w_perim_corner'
[]
[Re_bulk]
type = ParsedPostprocessor
expression = '${mass_flux} * Dh_bulk / mu_in'
pp_names = 'Dh_bulk mu_in'
[]
# Flow split, the subchannel mass flux divided by the bulk mass flux
[X_center]
type = ParsedPostprocessor
expression = 'mdot_center / (S_center * ${mass_flux})'
pp_names = 'mdot_center S_center'
[]
[X_edge]
type = ParsedPostprocessor
expression = 'mdot_edge / (S_edge * ${mass_flux})'
pp_names = 'mdot_edge S_edge'
[]
[X_corner]
type = ParsedPostprocessor
expression = 'mdot_corner / (S_corner * ${mass_flux})'
pp_names = 'mdot_corner S_corner'
[]
[]
[Outputs]
csv = true
execute_on = final
[]
[Executioner]
type = Steady
[]
(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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
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 = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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 = subchannel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[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 = SCMSolutionTransfer
transfer_type = pin
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/subchannel/test/tests/problems/psbt/psbt_explicit_v2.i)
T_in = 359.15
# [1e+6 kg/m^2-hour] turns into kg/m^2-sec
mass_flux_in = '${fparse 1e+6 * 17.00 / 3600.}'
P_out = 4.923e6 # Pa
pin_diameter = 0.00950
[QuadSubChannelMesh]
[sub_channel]
type = SCMQuadAssemblyMeshGenerator
nx = 6
ny = 6
n_cells = 10
pitch = 0.0126
pin_diameter = ${pin_diameter}
side_gap = 0.00095
heated_length = 1.0
spacer_z = '0.0'
spacer_k = '0.0'
[]
[]
[FluidProperties]
[water]
type = Water97FluidProperties
[]
[]
[SubChannel]
type = QuadSubChannel1PhaseProblem
fp = water
n_blocks = 1
compute_density = true
compute_viscosity = true
compute_power = true
P_out = report_pressure_outlet
verbose_subchannel = true
mixing_closure = 'Kim_and_Chung'
friction_closure = 'Chen'
pin_HTC_closure = 'Dittus-Boelter'
full_output = true
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[Kim_and_Chung]
type = SCMMixingKimAndChung
CT = 2.6
[]
[]
[ICs]
[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 = report_mass_flux_inlet
execute_on = 'timestep_begin'
block = subchannel
[]
[q_prime_IC]
type = SCMQuadPowerAux
variable = q_prime
power = 1.0e6 # W
filename = "power_profile.txt" #type in name of file that describes radial power profile
execute_on = 'initial timestep_begin'
[]
[]
[Postprocessors]
[report_mass_flux_inlet]
type = Receiver
default = ${mass_flux_in}
[]
[report_pressure_outlet]
type = Receiver
default = ${P_out}
[]
[total_pressure_drop]
type = SubChannelDelta
variable = P
execute_on = "timestep_end"
[]
[T1]
type = SubChannelPointValue
variable = T
index = 0
execute_on = "timestep_end"
height = 1
[]
[T2]
type = SubChannelPointValue
variable = T
index = 7
execute_on = "timestep_end"
height = 1
[]
[T3]
type = SubChannelPointValue
variable = T
index = 14
execute_on = "timestep_end"
height = 1
[]
[T4]
type = SubChannelPointValue
variable = T
index = 21
execute_on = "timestep_end"
height = 1
[]
[T5]
type = SubChannelPointValue
variable = T
index = 28
execute_on = "timestep_end"
height = 1
[]
[T6]
type = SubChannelPointValue
variable = T
index = 35
execute_on = "timestep_end"
height = 1
[]
[]
[Outputs]
csv = true
[Temp_Out_MATRIX]
type = QuadSubChannelNormalSliceValues
variable = T
execute_on = final
file_base = "Temp_Out_Explicit.txt"
height = 1.0
[]
[]
[Executioner]
type = Steady
[]
(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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
spacer_z = '0'
spacer_k = '5.0'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
[]
[]
[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-8
P_tol = 1.0e-8
rtol = 1.0e-10
atol = 1.0e-10
mass_flow_equation_relaxation = 0.8
pressure_equation_relaxation = 0.8
crossflow_equation_relaxation = 0.08
mass_flow_relaxation = 0.8
pressure_relaxation = 0.8
crossflow_relaxation = 0.8
implicit = true
segregated = false
duct_HTC_closure = 'gnielinski'
pin_HTC_closure = 'gnielinski'
friction_closure = 'Chen'
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1000.0 # W
filename = "pin_power_profile19.txt"
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = 0.01
[]
[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 = fuel_pins
[]
[mdot-8]
type = SubChannelPointValue
variable = mdot
index = 28
execute_on = 'TIMESTEP_END'
height = 0.5
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/verification/friction_model_verification/friction_model/tri_wire_flow_split.i)
# Developed flow split of the 61-pin EBR-II XX09 wire-wrapped triangular lattice of tri_wire.i.
# The assembly is solved in steady state at one inlet mass flux, which gives a bulk Reynolds number
# of about 3.3e4, the bulk Reynolds number of the EBR-II XX09 SHRT-17 steady state. The flow split,
# the mass flux of a subchannel divided by the bulk mass flux, of one interior, edge, and corner
# subchannel is reported at the outlet.
T_in = 359.15 # K
P_out = 4.923e6 # Pa
# Bulk mass flux that gives a bulk Reynolds number of about 3.3e4
mass_flux = 4000 # kg/m^2-s
# The inlet mass flux is uniform, and the flow split develops over about 1.5 m, so it is sampled at
# the outlet of the 3 m assembly, where the flow is developed
z_out = 3.0
# Subchannel indices of an interior, an edge, and a corner subchannel
center = 0
edge = 100
corner = 97
# Number of interior, edge, and corner subchannels of the 5-ring assembly: 6 (nrings - 1)^2,
# 6 (nrings - 1), and 6
n_center = 96
n_edge = 24
n_corner = 6
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = 5
n_cells = 30
flat_to_flat = 0.0464
heated_length = 3
pin_diameter = 0.004419
pitch = 0.005664
dwire = 0.001244
hwire = 0.1524
spacer_z = '0.0'
spacer_k = '0.0'
[]
[]
[FluidProperties]
[water]
type = Water97FluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = water
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = false
full_output = true
# Monolithic implicit solver. The explicit solver converges the developed turbulent flow split
# only to about 1% with the default tolerances.
implicit = true
segregated = false
P_tol = 1e-8
T_tol = 1e-8
rtol = 1e-10
atol = 1e-10
friction_closure = 'Chen'
mixing_closure = 'constant_beta'
pin_HTC_closure = 'Dittus-Boelter'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[constant_beta]
type = SCMMixingConstantBeta
beta = 0.006
# No turbulent exchange of axial momentum, so the developed flow split is set by the friction
# closure alone
CT = 0.0
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[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
[]
[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
[]
[mu_ic]
type = ViscosityIC
variable = mu
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'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux}
execute_on = 'timestep_begin'
[]
[]
[Postprocessors]
[mdot_center]
type = SubChannelPointValue
variable = mdot
index = ${center}
height = ${z_out}
outputs = none
[]
[mdot_edge]
type = SubChannelPointValue
variable = mdot
index = ${edge}
height = ${z_out}
outputs = none
[]
[mdot_corner]
type = SubChannelPointValue
variable = mdot
index = ${corner}
height = ${z_out}
outputs = none
[]
[S_center]
type = SubChannelPointValue
variable = S
index = ${center}
height = ${z_out}
outputs = none
[]
[S_edge]
type = SubChannelPointValue
variable = S
index = ${edge}
height = ${z_out}
outputs = none
[]
[S_corner]
type = SubChannelPointValue
variable = S
index = ${corner}
height = ${z_out}
outputs = none
[]
[w_perim_center]
type = SubChannelPointValue
variable = w_perim
index = ${center}
height = ${z_out}
outputs = none
[]
[w_perim_edge]
type = SubChannelPointValue
variable = w_perim
index = ${edge}
height = ${z_out}
outputs = none
[]
[w_perim_corner]
type = SubChannelPointValue
variable = w_perim
index = ${corner}
height = ${z_out}
outputs = none
[]
# The solver evaluates the bulk Reynolds number with the inlet viscosity
[mu_in]
type = SubChannelPointValue
variable = mu
index = ${center}
height = 0.0
outputs = none
[]
# Subchannel hydraulic diameters Dh = 4 S / w_perim, as in the solver
[Dh_center]
type = ParsedPostprocessor
expression = '4 * S_center / w_perim_center'
pp_names = 'S_center w_perim_center'
[]
[Dh_edge]
type = ParsedPostprocessor
expression = '4 * S_edge / w_perim_edge'
pp_names = 'S_edge w_perim_edge'
[]
[Dh_corner]
type = ParsedPostprocessor
expression = '4 * S_corner / w_perim_corner'
pp_names = 'S_corner w_perim_corner'
[]
# Bulk hydraulic diameter, 4 times the total flow area over the total wetted perimeter
[Dh_bulk]
type = ParsedPostprocessor
expression = '4 * (${n_center} * S_center + ${n_edge} * S_edge + ${n_corner} * S_corner)
/ (${n_center} * w_perim_center + ${n_edge} * w_perim_edge
+ ${n_corner} * w_perim_corner)'
pp_names = 'S_center S_edge S_corner w_perim_center w_perim_edge w_perim_corner'
[]
[Re_bulk]
type = ParsedPostprocessor
expression = '${mass_flux} * Dh_bulk / mu_in'
pp_names = 'Dh_bulk mu_in'
[]
# Flow split, the subchannel mass flux divided by the bulk mass flux
[X_center]
type = ParsedPostprocessor
expression = 'mdot_center / (S_center * ${mass_flux})'
pp_names = 'mdot_center S_center'
[]
[X_edge]
type = ParsedPostprocessor
expression = 'mdot_edge / (S_edge * ${mass_flux})'
pp_names = 'mdot_edge S_edge'
[]
[X_corner]
type = ParsedPostprocessor
expression = 'mdot_corner / (S_corner * ${mass_flux})'
pp_names = 'mdot_corner S_corner'
[]
[]
[Outputs]
csv = true
execute_on = final
[]
[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]
[assembly]
type = SCMTriAssemblyMeshGenerator
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
[]
[]
[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 = 'Chen'
mixing_closure = 'Chen_Todreas'
pin_HTC_closure = 'gnielinski'
full_output = true
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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_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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
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 = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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 = subchannel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[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 = SCMSolutionTransfer
transfer_type = pin
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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'
[]
[]
[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 = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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 = subchannel
[]
[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 = SCMSolutionTransfer
transfer_type = pin
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(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 = SCMTriAssemblyMeshGenerator
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'
[]
[]
[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 = 'Chen'
full_output = true
# Turbulent mixing Correlation
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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 = SCMSolutionTransfer
transfer_type = pin
to_multi_app = viz
variable = 'Dpin Tpin q_prime'
[]
[]
(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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
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 = 'Chen'
full_output = true
# Mixing Correlation
mixing_closure = 'Kim'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[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 = subchannel
[]
[mdot_in_bc]
type = SCMFlatMassFlowRateAux
variable = mdot
boundary = inlet
mass_flow = ${mass_flow}
execute_on = 'timestep_begin'
block = subchannel
[]
[]
[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/test/tests/positions/pin_positions.i)
###################################################
# Thermal-hydraulics parameters
###################################################
P_out = 758423 # Pa
###################################################
# 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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
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}'
[]
[]
[AuxVariables]
[mdot]
block = subchannel
[]
[SumWij]
block = subchannel
[]
[P]
block = subchannel
initial_condition = 0
[]
[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
[]
[displacement]
block = subchannel
[]
[ff]
block = subchannel
[]
[HTC]
block = subchannel
[]
[q_prime]
block = fuel_pins
[]
[mu]
block = subchannel
[]
[duct_heat_flux]
block = duct
initial_condition = 0
[]
[Tduct]
block = duct
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[Problem]
type = TriSubChannel1PhaseProblem
fp = sodium
P_out = ${P_out}
solve = false
# Solver parameters
n_blocks = 10
implicit = false
segregated = true
staggered_pressure = false
# Tolerances
P_tol = 1.0e-4
T_tol = 1.0e-8
# Output
compute_density = true
compute_viscosity = true
compute_power = true
verbose_multiapps = true
verbose_subchannel = false
# friction model
friction_closure = 'Chen'
# HTC
pin_HTC_closure = Dittus-Boelter
duct_HTC_closure = Dittus-Boelter
# mixing model (beta)
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
[]
[]
[Executioner]
type = Steady
[]
[Positions]
[pin_positions]
type = SCMPinPositions
outputs = json
[]
[]
[Outputs]
json = true
[]
(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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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'
[]
[]
[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 = 'Chen'
full_output = true
# Turbulent mixing Correlation
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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 = 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 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 = SCMSolutionTransfer
transfer_type = pin
to_multi_app = viz
variable = 'Dpin Tpin q_prime'
[]
[]
(modules/subchannel/validation/Blockage/THORS/FFM-5B_low.i)
################################################################################
## THORS bundle 5B partial edge blockage benchmark ##
## SCM simulation, low flow casenn ##
## POC : Vasileios Kyriakopoulos, [email protected] ##
################################################################################
# Details on the experimental facility modeled can be found at:
# Han, J. T. "Blockages in LMFBR fuel assemblies: A review of experimental and theoretical studies." (1977).
# This input file models a block next to the duct of the of the assembly
# 102 mm above the start of the heated section.
# Boundary conditions
T_in = 541.55 #K, low flow case
A12 = 1.00423e3
A13 = -0.21390
A14 = -1.1046e-5
rho = '${fparse A12 + A13 * T_in + A14 * T_in * T_in}'
inlet_vel = 0.48 #m/sec, low flow case
mass_flux_in = '${fparse rho * inlet_vel}'
P_out = 2.0e5 # Pa
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = 3
n_cells = 50
flat_to_flat = 0.0324290
heated_length = 0.4572
unheated_length_entry = 0.4064
unheated_length_exit = 0.1524
pin_diameter = 0.005842
pitch = 7.2644e-3
dwire = 0.0014224
hwire = 0.3048
z_blockage = '0.49 0.52'
index_blockage = '29 31 30 32 34 33 35 15 16 8 17 18 9 19'
reduction_blockage = '0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08'
k_blockage = '4 4 4 4 4 4 4 4 4 4 4 4 4 4 '
[]
[]
[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
P_tol = 1.0e-4
T_tol = 1.0e-4
implicit = true
segregated = false
verbose_subchannel = true
interpolation_scheme = exponential
pin_HTC_closure = 'Dittus-Boelter'
# friction model
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
CT = 2.0
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[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
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = 0.005842
[]
[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
power = 52800 #W, low flow case
filename = "pin_power_profile_19.txt"
execute_on = 'initial timestep_begin'
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[1]
type = SubChannelPointValue
variable = T
index = 34
execute_on = 'initial timestep_end'
height = 0.94
[]
[2]
type = SubChannelPointValue
variable = T
index = 33
execute_on = 'initial timestep_end'
height = 0.94
[]
[3]
type = SubChannelPointValue
variable = T
index = 18
execute_on = 'initial timestep_end'
height = 0.94
[]
[4]
type = SubChannelPointValue
variable = T
index = 9
execute_on = 'initial timestep_end'
height = 0.94
[]
[5]
type = SubChannelPointValue
variable = T
index = 3
execute_on = 'initial timestep_end'
height = 0.94
[]
[6]
type = SubChannelPointValue
variable = T
index = 0
execute_on = 'initial timestep_end'
height = 0.94
[]
[7]
type = SubChannelPointValue
variable = T
index = 12
execute_on = 'initial timestep_end'
height = 0.94
[]
[8]
type = SubChannelPointValue
variable = T
index = 25
execute_on = 'initial timestep_end'
height = 0.94
[]
[]
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = "FFM-5B_viz.i"
execute_on = "timestep_end"
[]
[]
[Transfers]
[xfer_subchannel]
type = SCMSolutionTransfer
to_multi_app = viz
transfer_type = subchannel
variable = 'mdot SumWij P DP h T rho mu S displacement w_perim'
[]
[xfer_q_prime]
type = SCMSolutionTransfer
to_multi_app = viz
transfer_type = pin
variable = q_prime
[]
[]
(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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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'
[]
[]
[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 = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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 = subchannel
[]
[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 = SCMSolutionTransfer
transfer_type = pin
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/subchannel/validation/Blockage/THORS/FFM-3A.i)
################################################################################
## THORS bundle 3A central blockage benchmark ##
## SCM simulation ##
## POC : Vasileios Kyriakopoulos, [email protected] ##
################################################################################
# Details on the experimental facility modeled can be found at:
# Han, J. T. "Blockages in LMFBR fuel assemblies: A review of experimental and theoretical studies." (1977).
# The affected subchannels get an area reduction and a form loss coefficient
T_in = 714.261
A12 = 1.00423e3
A13 = -0.21390
A14 = -1.1046e-5
rho = '${fparse A12 + A13 * T_in + A14 * T_in * T_in}'
Total_surface_area = 0.000452826 #m2
Blocked_surface_area = 0.0 #m2
Flow_area = '${fparse Total_surface_area - Blocked_surface_area}'
vol_flow = 3.4E-03 #m3/s
mass_flux_in = '${fparse rho * vol_flow / Flow_area}'
P_out = 2.0e5 # Pa
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = 3
n_cells = 36
flat_to_flat = 0.0338514
heated_length = 0.5334
unheated_length_entry = 0.3048
unheated_length_exit = 0.0762
pin_diameter = 0.005842
pitch = 7.2644e-3
dwire = 0.0014224
hwire = 0.3048
spacer_z = '0.0'
spacer_k = '0.0'
z_blockage = '0.6858 0.69215'
index_blockage = '0 1 2 3 4 5'
reduction_blockage = '0.08 0.08 0.08 0.08 0.08 0.08'
k_blockage = '2.0 2.0 2.0 2.0 2.0 2.0'
[]
[]
[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
P_tol = 1.0e-4
T_tol = 1.0e-4
implicit = true
segregated = false
verbose_subchannel = true
interpolation_scheme = exponential
pin_HTC_closure = 'Dittus-Boelter'
# friction model
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
CT = 2.0
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 332500.0 #W
filename = "pin_power_profile_19.txt"
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = 0.005842
[]
[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
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[1]
type = SubChannelPointValue
variable = T
index = 37
execute_on = 'TIMESTEP_END'
height = 0.9144
[]
[2]
type = SubChannelPointValue
variable = T
index = 36
execute_on = 'TIMESTEP_END'
height = 0.9144
[]
[3]
type = SubChannelPointValue
variable = T
index = 20
execute_on = 'TIMESTEP_END'
height = 0.9144
[]
[4]
type = SubChannelPointValue
variable = T
index = 10
execute_on = 'TIMESTEP_END'
height = 0.9144
[]
[5]
type = SubChannelPointValue
variable = T
index = 4
execute_on = 'TIMESTEP_END'
height = 0.9144
[]
[6]
type = SubChannelPointValue
variable = T
index = 1
execute_on = 'TIMESTEP_END'
height = 0.9144
[]
[7]
type = SubChannelPointValue
variable = T
index = 14
execute_on = 'TIMESTEP_END'
height = 0.9144
[]
[8]
type = SubChannelPointValue
variable = T
index = 28
execute_on = 'TIMESTEP_END'
height = 0.9144
[]
[]
(modules/subchannel/verification/friction_model_verification/friction_model/pacio_paper.i)
# Shared part of the inputs that reproduce the calculations of the PCTD paper, Pacio et al. (2022),
# for the wire-wrapped triangular lattices of Kennedy et al. (2015) and Liang et al. (2020). Each
# time step solves the assembly at a larger inlet mass flux, which sets the bulk Reynolds number.
# The including input defines the mesh, the exponent G_exp0 of the initial inlet mass flux, the
# inlet mass flux 10^(G_exp0 + G_exp_rate n) [kg/m^2-s] at step n through G_exp_rate, the number of
# steps, the center, edge, and corner subchannel indices and counts, and includes the file
# with the mass flow rate and flow area of every subchannel at the outlet. The PCTD model lumps the
# subchannels of each type, so the flow split of a type is calculated from those in the plotting
# script. The bulk friction factor is calculated from the pressure gradient in the developed flow.
# The fluid is water and the assembly is unheated, so the density is nearly uniform and the flow split
# and friction factors depend only on the bulk Reynolds number and the geometry, as in the PCTD model.
T_in = 359.15 # K
P_out = 4.923e6 # Pa
# The inlet mass flux is uniform, and the flow split develops over about 1.5 m, so it is sampled at
# the outlet of the 3 m assembly, where the flow is developed
z_out = 3.0
# The pressure gradient is calculated between z_dp_in and z_dp_out, in the developed flow and away
# from the outlet boundary
z_dp_in = 2.0
z_dp_out = 2.9
# Each sweep step is a time step of the transient solve; the time derivative of the axial momentum
# equation is negligible for a time step this long, as in friction_factor_sampling.i
dt_step = 1e4 # s
[FluidProperties]
[water]
type = Water97FluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = water
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = false
full_output = true
# Monolithic implicit solver. The explicit solver converges the developed turbulent flow split
# only to about 1% with the default tolerances.
implicit = true
segregated = false
P_tol = 1e-8
T_tol = 1e-8
rtol = 1e-10
atol = 1e-10
# No gravity, so that the pressure gradient is the friction pressure gradient
gravity = none
friction_closure = 'Chen'
mixing_closure = 'Chen_Todreas'
pin_HTC_closure = 'Dittus-Boelter'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
friction_model = Pacio
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
mixing_model = Pacio
# C_T multiplies the mixing parameter in the axial momentum equation, whose mixing term is the
# exchange of axial momentum of the PCTD equations, Eq. (2) of Pacio et al. (2022); the enthalpy
# mixing uses the mixing parameter without C_T. C_T = 1 applies it unchanged, as in PCTD.
CT = 1.0
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[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
[]
[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
[]
[mu_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = water
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[Functions]
[mass_flux_fn]
type = ParsedFunction
expression = '10^(${G_exp0} + ${G_exp_rate} * t / ${dt_step})'
[]
[]
[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
execute_on = 'timestep_begin'
[]
[]
[Postprocessors]
[mass_flux]
type = FunctionValuePostprocessor
function = mass_flux_fn
execute_on = 'initial timestep_begin'
[]
[w_perim_center]
type = SubChannelPointValue
variable = w_perim
index = ${center}
height = ${z_out}
outputs = none
[]
[w_perim_edge]
type = SubChannelPointValue
variable = w_perim
index = ${edge}
height = ${z_out}
outputs = none
[]
[w_perim_corner]
type = SubChannelPointValue
variable = w_perim
index = ${corner}
height = ${z_out}
outputs = none
[]
# The solver evaluates the bulk Reynolds number with the inlet viscosity
[mu_in]
type = SubChannelPointValue
variable = mu
index = ${center}
height = 0.0
outputs = none
[]
# Subchannel hydraulic diameters Dh = 4 S / w_perim, as in the solver
[Dh_center]
type = ParsedPostprocessor
expression = '4 * S_${center} / w_perim_center'
pp_names = 'S_${center} w_perim_center'
[]
[Dh_edge]
type = ParsedPostprocessor
expression = '4 * S_${edge} / w_perim_edge'
pp_names = 'S_${edge} w_perim_edge'
[]
[Dh_corner]
type = ParsedPostprocessor
expression = '4 * S_${corner} / w_perim_corner'
pp_names = 'S_${corner} w_perim_corner'
[]
# Bulk hydraulic diameter, 4 times the total flow area over the total wetted perimeter
[Dh_bulk]
type = ParsedPostprocessor
expression = '4 * (${n_center} * S_${center} + ${n_edge} * S_${edge} + ${n_corner} * S_${corner})
/ (${n_center} * w_perim_center + ${n_edge} * w_perim_edge
+ ${n_corner} * w_perim_corner)'
pp_names = 'S_${center} S_${edge} S_${corner} w_perim_center w_perim_edge w_perim_corner'
[]
[Re_bulk]
type = ParsedPostprocessor
expression = 'mass_flux * Dh_bulk / mu_in'
pp_names = 'mass_flux Dh_bulk mu_in'
[]
# Bulk friction factor f_b = (dP/L) 2 Dh_bulk rho / mass_flux^2, from the pressure gradient of the
# developed flow
[P_dp_in]
type = SubChannelPointValue
variable = P
index = ${center}
height = ${z_dp_in}
outputs = none
[]
[P_dp_out]
type = SubChannelPointValue
variable = P
index = ${center}
height = ${z_dp_out}
outputs = none
[]
[rho_dp]
type = SubChannelPointValue
variable = rho
index = ${center}
height = ${z_dp_in}
outputs = none
[]
[f_bulk]
type = ParsedPostprocessor
expression = '(P_dp_in - P_dp_out) / (z_dp_out - z_dp_in) * 2 * Dh_bulk * rho_dp / mass_flux^2'
constant_names = 'z_dp_in z_dp_out'
constant_expressions = '${z_dp_in} ${z_dp_out}'
pp_names = 'P_dp_in P_dp_out Dh_bulk rho_dp mass_flux'
[]
[]
[Outputs]
csv = true
[]
[Executioner]
type = Transient
start_time = 0.0
end_time = '${fparse n_steps * dt_step}'
dt = ${dt_step}
[]
(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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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]
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
P_tol = 1.0e-4
T_tol = 1.0e-5
verbose_subchannel = true
interpolation_scheme = upwind
pin_HTC_closure = 'gnielinski'
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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/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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
spacer_z = '0'
spacer_k = '5.0'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
[]
[]
[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'
pin_HTC_closure = 'gnielinski'
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1000.0 # W
filename = "pin_power_profile19.txt"
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = 0.01
[]
[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 = fuel_pins
[]
[Total_power_SCMDuctPowerPostprocessor]
type = SCMDuctHeatRatePostprocessor
[]
[Total_power_SCMTHPowerPostprocessor]
type = SCMTHPowerPostprocessor
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/test/tests/problems/Lead-LBE-19pin/test_LEAD-19pin.i)
T_in = 673.15
flow_area = 0.00128171 #m2
rho_in = 10453.21705
# [10 m^3/hour] turns into kg/m^2-sec
mass_flux_in = '${fparse 10*rho_in/3600/flow_area}'
P_out = 1.0e5 # Pa
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = 3
n_cells = 50
flat_to_flat = 0.05319936
heated_length = 0.87
unheated_length_entry = 0.0
unheated_length_exit = 0.402
pin_diameter = 8.2e-3
pitch = 0.01148
dwire = 0.0
hwire = 0.0
spacer_z = '0.177 0.547 0.870'
spacer_k = '1.1719 1.1719 1.1719'
[]
[]
[FluidProperties]
[LEAD]
type = LeadFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = LEAD
n_blocks = 1
P_out = 1.0e5
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-4
T_tol = 1.0e-4
implicit = true
segregated = false
staggered_pressure = false
verbose_multiapps = true
verbose_subchannel = true
interpolation_scheme = upwind
pin_HTC_closure = 'Dittus-Boelter'
# friction model
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Kim_and_Chung'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[Kim_and_Chung]
type = SCMMixingKimAndChung
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = '${fparse 250000}'
filename = "pin_power_profile19.txt"
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = 8.2e-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 = LEAD
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = LEAD
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = LEAD
[]
[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]
csv = true
[]
[Postprocessors]
[T1]
type = SubChannelPointValue
variable = T
index = 37
execute_on = "timestep_end"
height = 0.87
[]
[T2]
type = SubChannelPointValue
variable = T
index = 36
execute_on = "timestep_end"
height = 0.87
[]
[T3]
type = SubChannelPointValue
variable = T
index = 20
execute_on = "timestep_end"
height = 0.87
[]
[T4]
type = SubChannelPointValue
variable = T
index = 10
execute_on = "timestep_end"
height = 0.87
[]
[T5]
type = SubChannelPointValue
variable = T
index = 4
execute_on = "timestep_end"
height = 0.87
[]
[T6]
type = SubChannelPointValue
variable = T
index = 1
execute_on = "timestep_end"
height = 0.87
[]
[T7]
type = SubChannelPointValue
variable = T
index = 14
execute_on = "timestep_end"
height = 0.87
[]
[T8]
type = SubChannelPointValue
variable = T
index = 28
execute_on = "timestep_end"
height = 0.87
[]
####### 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 = fuel_pins
[]
[]
[Executioner]
type = Steady
[]
# ################################################################################
# # A multiapp that projects data to a detailed mesh
# ################################################################################
# [MultiApps]
# [viz]
# type = FullSolveMultiApp
# input_files = "3d_LBE_19.i"
# execute_on = "timestep_end"
# max_procs_per_app = 1
# []
# []
# [Transfers]
# [xfer]
# type = SCMSolutionTransfer
# to_multi_app = viz
# variable = 'mdot SumWij P DP h T rho mu q_prime S'
# []
# []
(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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
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 = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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 = subchannel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[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 = SCMSolutionTransfer
transfer_type = pin
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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'
[]
[]
[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 = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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 = subchannel
[]
[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/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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
spacer_z = '0'
spacer_k = '5.0'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = subchannel
[]
[]
[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'
pin_HTC_closure = 'gnielinski'
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1000.0 # W
filename = "pin_power_profile19.txt"
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = 0.01
[]
[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 = fuel_pins
[]
[mdot-8]
type = SubChannelPointValue
variable = mdot
index = 28
execute_on = 'TIMESTEP_END'
height = 0.5
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/verification/friction_model_verification/two_channel/two_channel2.i)
T_in = 473.15 # K
mass_flux_in = 3500 # kg /sec m2
P_out = 155e+5 # Pa
[QuadSubChannelMesh]
[sub_channel]
type = SCMQuadAssemblyMeshGenerator
nx = 2
ny = 1
n_cells = 100
pitch = 0.0126
pin_diameter = 0.00950
side_gap = 0.00095
heated_length = 10.0
spacer_z = '0.0'
spacer_k = '0.0'
[]
[]
[Functions]
[S_fn]
type = ParsedFunction
expression = if(x>0.0,0.002,0.001)
[]
[]
[FluidProperties]
[water]
type = Water97FluidProperties
[]
[]
[SubChannel]
type = QuadSubChannel1PhaseProblem
fp = water
n_blocks = 1
compute_density = true
compute_viscosity = true
compute_power = true
P_out = ${P_out}
friction_closure = 'Chen'
full_output = true
mixing_closure ='constant_beta'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[constant_beta]
type = SCMMixingConstantBeta
beta = 0.006
CT = 0.0
[]
[]
[ICs]
[S_ic]
type = FunctionIC
variable = S
function = S_fn
[]
[w_perim_IC]
type = ConstantIC
variable = w_perim
value = 0.34188034
[]
[q_prime_IC]
type = ConstantIC
variable = q_prime
value = 0.0
[]
[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'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Postprocessors]
[mdot_1]
type = SubChannelPointValue
variable = mdot
index = 0
execute_on = 'initial timestep_end'
height = 10.0
[]
[mdot_2]
type = SubChannelPointValue
variable = mdot
index = 1
execute_on = 'initial timestep_end'
height = 10.0
[]
[]
[Outputs]
csv = true
[]
[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]
[subchannel]
type = SCMTriAssemblyMeshGenerator
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 = subchannel
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 = 'Chen'
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
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/validation/Blockage/THORS/FFM-5B_high.i)
################################################################################
## THORS bundle 5B partial edge blockage benchmark ##
## SCM simulation, high flow case ##
## POC : Vasileios Kyriakopoulos, [email protected] ##
################################################################################
# Details on the experimental facility modeled can be found at:
# Han, J. T. "Blockages in LMFBR fuel assemblies: A review of experimental and theoretical studies." (1977).
# This input file models a block next to the duct of the of the assembly
# 102 mm above the start of the heated section.
# Boundary conditions
T_in = 596.75 # K, high flow case
A12 = 1.00423e3
A13 = -0.21390
A14 = -1.1046e-5
rho = '${fparse A12 + A13 * T_in + A14 * T_in * T_in}'
inlet_vel = 6.93 #m/sec, high flow case
mass_flux_in = '${fparse rho * inlet_vel}'
P_out = 2.0e5 # Pa
[TriSubChannelMesh]
[subchannel]
type = SCMTriAssemblyMeshGenerator
nrings = 3
n_cells = 50
flat_to_flat = 0.0324290
heated_length = 0.4572
unheated_length_entry = 0.4064
unheated_length_exit = 0.1524
pin_diameter = 0.005842
pitch = 7.2644e-3
dwire = 0.0014224
hwire = 0.3048
z_blockage = '0.49 0.52'
index_blockage = '29 31 30 32 34 33 35 15 16 8 17 18 9 19'
reduction_blockage = '0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08'
k_blockage = '4 4 4 4 4 4 4 4 4 4 4 4 4 4 '
[]
[]
[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
P_tol = 1.0e-4
T_tol = 1.0e-4
implicit = true
segregated = false
verbose_subchannel = true
interpolation_scheme = exponential
pin_HTC_closure = 'Dittus-Boelter'
# friction model
friction_closure = 'Chen'
full_output = true
mixing_closure = 'Chen_Todreas'
[]
[SCMClosures]
[Chen]
type = SCMFrictionChenTodreas
[]
[Chen_Todreas]
type = SCMMixingChenTodreas
CT = 2.0
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 145000 #W, high flow case
filename = "pin_power_profile_19.txt"
[]
[Dpin_ic]
type = ConstantIC
variable = Dpin
value = 0.005842
[]
[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]
[1]
type = SubChannelPointValue
variable = T
index = 34
execute_on = 'initial timestep_end'
height = 0.94
[]
[2]
type = SubChannelPointValue
variable = T
index = 33
execute_on = 'initial timestep_end'
height = 0.94
[]
[3]
type = SubChannelPointValue
variable = T
index = 18
execute_on = 'initial timestep_end'
height = 0.94
[]
[4]
type = SubChannelPointValue
variable = T
index = 9
execute_on = 'initial timestep_end'
height = 0.94
[]
[5]
type = SubChannelPointValue
variable = T
index = 3
execute_on = 'initial timestep_end'
height = 0.94
[]
[6]
type = SubChannelPointValue
variable = T
index = 0
execute_on = 'initial timestep_end'
height = 0.94
[]
[7]
type = SubChannelPointValue
variable = T
index = 12
execute_on = 'initial timestep_end'
height = 0.94
[]
[8]
type = SubChannelPointValue
variable = T
index = 25
execute_on = 'initial timestep_end'
height = 0.94
[]
[]
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = "FFM-5B_viz.i"
execute_on = "timestep_end"
[]
[]
[Transfers]
[xfer_subchannel]
type = SCMSolutionTransfer
to_multi_app = viz
transfer_type = subchannel
variable = 'mdot SumWij P DP h T rho mu S displacement w_perim'
[]
[xfer_q_prime]
type = SCMSolutionTransfer
to_multi_app = viz
transfer_type = pin
variable = q_prime
[]
[]