- CT1Turbulent momentum, modeling parameter [-].
Default:1
C++ Type:Real
Unit:(no unit assumed)
Controllable:No
Description:Turbulent momentum, modeling parameter [-].
- mixing_model1986Mixing-model parameterization for triangular wire-wrapped Chen-Todreas correlations.
Default:1986
C++ Type:MooseEnum
Controllable:No
Description:Mixing-model parameterization for triangular wire-wrapped Chen-Todreas correlations.
SCMMixingChenTodreas
Class that models the turbulent mixing coefficient for wire-wrapped triangular assemblies using the Chen Todreas correlations.
Overview
This closure class is used to model the turbulent mixing coefficient using the Chen-Todreas correlations for triangular assemblies with wire-wrapped pins. Two mixing-model parameterizations are available: the original Cheng-Todreas (1986) model and the Pacio-Chen-Todreas model.
The implementation is based on:
Hydrodynamic models and correlations for bare and wire-wrapped hexagonal rod bundles—bundle friction factors, subchannel friction factors and mixing parameters, Cheng and Todreas Cheng and Todreas (1986).
The Pacio-Chen-Todreas formulation Pacio et al. (2022), which introduces an updated mixing treatment to improve the prediction of flow redistribution between interior, edge, and corner subchannels.
The desired parameterization is selected using the mixing_model parameter:
1986uses the original Cheng-Todreas mixing correlation. In addition it calculates the sweep coefficient for the periphery gaps.Pacioretains the original Cheng-Todreas treatment where applicable and applies the Pacio mixing formulation to center-edge and edge-corner interfaces.
Cheng-Todreas (1986) mixing
For the 1986 model, the base turbulent mixing parameter is applied to gaps connected to a center subchannel. The mixing parameter is used in the global turbulent crossflow relation
The laminar and turbulent mixing coefficients are calculated using the original Cheng-Todreas formulation and the center-subchannel projected wire area and bare flow area .
The flow-regime transition limits are
and
In the intermittent regime, the interpolation factor is evaluated with the bulk Reynolds number,
which simplifies Cheng and Todreas (1986). Their Eqs. (10a) to (10c) and (11) use one interpolation factor per type of subchannel, from the local Reynolds number between the bounds and , with the laminar and turbulent flow splits and . The mixing coefficient is interpolated according to
The resulting turbulent mixing parameter is
Pacio-Chen-Todreas mixing
When mixing_model = Pacio is selected, the Pacio formulation is applied specifically to interfaces involving the edge subchannel:
center-edge interfaces use the Pacio mixing formulation;
edge-corner interfaces use the Pacio mixing formulation;
center-center interfaces retain the original Cheng-Todreas (1986) mixing formulation.
sweep-flow implementation remains unchanged.
Thus, selecting Pacio does not globally replace the original Cheng-Todreas mixing model. Instead, it replaces or supplements the mixing treatment at the interfaces for which the Pacio formulation is applied.
The Pacio mixing coefficient depends on the flow-split parameters
where and are the axial velocities of the two types of subchannels on either side of the gap and is the bundle bulk velocity. As in the PCTD model, where the flow split is defined per type of subchannel, the velocity of each type (interior, edge, or corner) is lumped over all subchannels of that type in each axial cell: the sum of their mass flow rates divided by the sum of their density times flow area. The velocities of the three types are divided by their area-weighted mean, so that the flow splits satisfy the mass balance of Eq. (11) of Pacio et al. (2022) at every axial level, also in a heated assembly, where the bulk velocity rises above its inlet value as the density decreases. The Pacio mixing coefficients are therefore computed once per axial cell for the center-edge and edge-corner gaps, before the turbulent crossflow is computed. The Cheng-Todreas (1986) mixing and sweep-flow coefficients depend only on the geometry and the bulk Reynolds number and are computed once per solve.
For the turbulent regime, the flow-split dependence is evaluated from Eq. (31) of Pacio et al. (2022):
with the turbulent wire mixing coefficient and the turbulent exponent of Table 5 of Pacio et al. (2022).
The denominator is rather than the of Eq. (32) of Pacio et al. (2022), which is the effective crossflow and already includes the mean velocity of the two subchannels. SCM applies that mean velocity to the mixing parameter through the average mass flux of the gap.
When , the limiting value of the fractional term is used to avoid division by zero:
For the Pacio parameterization, the transition limits are
For the laminar regime, Eq. (33) of Pacio et al. (2022) gives
with the laminar wire mixing coefficient of Table 5, and in the intermittent regime the mixing coefficient is interpolated with the same transition formula as the Pacio-Chen-Todreas friction factor, Eq. (35) of Pacio et al. (2022),
with and of Table 5 of Pacio et al. (2022),
where the intermittency factor is evaluated with the bulk Reynolds number, as in Eq. (34) of Pacio et al. (2022),
In the transition regime, Eq. (36) of Pacio et al. (2022) evaluates the flow-split term with the turbulent flow splits and . SCM evaluates it with the current flow split of each subchannel type. Because the flow-split term varies as about , this changes the mixing parameter by less than 1% for flow splits between 0.8 and 1.2.
For both center-edge and edge-corner interfaces, the Pacio mixing parameter uses the edge-subchannel projected wire area and bare flow area :
The last factor adapts the lumped crossflow of Pacio et al. (2022) to the gaps of SCM. In the PCTD model, the effective crossflow between all subchannels of two types is times the contact perimeter between them, Eqs. (30), (A.24), and (A.25) of Pacio et al. (2022), while SCM multiplies by the width of each gap. is the contact perimeter per gap, so that the sum over the gaps of SCM gives the crossflow of PCTD:
center-edge gaps: over the pin-pin gaps of width , so ;
edge-corner gaps: over the 12 pin-duct gaps of width , so ,
where is the number of pin rings around the center pin and is the pin-to-duct gap. The text of Pacio et al. (2022) states that half of the geometric perimeter is used for , while its Eqs. (A.24) and (A.25) apply the factor of one half to ; the equations are used here. Eq. (A.25) subtracts the wire term once from the whole edge-corner perimeter, while Eq. (A.24) subtracts it from every center-edge gap. The corrigendum of the paper, Nucl. Eng. Des. 395 (2022) 111846, corrects the authors' implementation to be consistent with Eq. (A.25) as printed, so that form is used here.
The Pacio mixing treatment is therefore applied according to the following interface behavior:
| Interface | 1986 | Pacio |
|---|---|---|
| center-center | Cheng-Todreas (1986) | Cheng-Todreas (1986) |
| center-edge | Cheng-Todreas (1986) | Pacio-Chen-Todreas |
| edge-edge | none | none |
| edge-corner | none | Pacio-Chen-Todreas |
| corner-corner | none | none |
Peripheral sweep flow
The Cheng-Todreas peripheral sweep-flow model is treated separately from the base turbulent mixing parameter.
For edge and corner gaps, computeSweepFlowMixingParameter() returns the sweep-flow parameter used by the triangular-assembly enthalpy equation. This contribution is not added to the global turbulent crossflow parameter which in the Cheng-Todreas (1986) case is zero for the periphery gaps.
The peripheral sweep-flow correlation always uses the original Cheng-Todreas (1986) formulation, including when mixing_model = Pacio is selected. The Pacio parameterization modifies only the turbulent mixing treatment described above and does not replace the Cheng-Todreas peripheral sweep-flow correlation.
The sweep-flow transition limits therefore remain
for both values of mixing_model.
The sweep-flow parameter uses the edge-subchannel projected wire area and bare flow area .
The sweep-flow parameter is calculated as
where is the Cheng-Todreas sweep-flow coefficient evaluated according to the flow regime.
Applicability
The closure flags a solution warning when , , the number of pins, or the bulk Reynolds number is outside the data range associated with the selected mixing correlation.
Information about the use of can be found in Turbulent crossflow. Additionally, the user may opt to provide the turbulent momentum mixing parameter CT. Information about the use of this parameter can be found in Turbulent momentum transfer.
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/examples/MultiApp/fuel_assembly.i)
- (modules/subchannel/test/tests/problems/heat_transfer_correlations/XX09_SCM_SS17.i)
- (modules/subchannel/validation/ORNL_19_pin/test_ORNL_19.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS45R.i)
- (modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_monolithic.i)
- (modules/subchannel/test/tests/problems/deformation/tri_pin_diameter.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS17.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_TR45R.i)
- (modules/subchannel/validation/areva_FCTF/FCTF_non_deformed.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/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/examples/duct/test.i)
- (modules/subchannel/validation/Blockage/THORS/FFM-5B_high.i)
References
- Shih-Kuei Cheng and Neil E Todreas.
Hydrodynamic models and correlations for bare and wire-wrapped hexagonal rod bundles—bundle friction factors, subchannel friction factors and mixing parameters.
Nuclear engineering and design, 92(2):227–251, 1986.[Export]
BibTeX
@article{cheng1986hydrodynamic, author = "Cheng, Shih-Kuei and Todreas, Neil E", title = "Hydrodynamic models and correlations for bare and wire-wrapped hexagonal rod bundles—bundle friction factors, subchannel friction factors and mixing parameters", journal = "Nuclear engineering and design", volume = "92", number = "2", pages = "227--251", year = "1986", publisher = "Elsevier" }RIS
TY - JOUR AU - Cheng, Shih-Kuei AU - Todreas, Neil E TI - Hydrodynamic models and correlations for bare and wire-wrapped hexagonal rod bundles—bundle friction factors, subchannel friction factors and mixing parameters JO - Nuclear engineering and design PY - 1986 VL - 92 IS - 2 PB - Elsevier SP - 227 EP - 251 ER -Plain Text
Shih-Kuei Cheng and Neil E Todreas. Hydrodynamic models and correlations for bare and wire-wrapped hexagonal rod bundles—bundle friction factors, subchannel friction factors and mixing parameters. Nuclear engineering and design, 92(2):227–251, 1986. - 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.
(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/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/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/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/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/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/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/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/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
[]
[]