- flat_to_flatFlat to flat distance for the hexagonal assembly [m]
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Flat to flat distance for the hexagonal assembly [m]
- heated_lengthHeated length [m]
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Heated length [m]
- inputThe corresponding subchannel mesh
C++ Type:MeshGeneratorName
Controllable:No
Description:The corresponding subchannel mesh
- n_cellsThe number of cells in the axial direction
C++ Type:unsigned int
Controllable:No
Description:The number of cells in the axial direction
- nringsNumber of fuel Pin rings in the assembly [-]
C++ Type:unsigned int
Controllable:No
Description:Number of fuel Pin rings in the assembly [-]
- pitchPitch is the distance between adjacent pins [m]
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Pitch is the distance between adjacent pins [m]
SCMTriDuctMeshGenerator
Creates a mesh of 2D duct cells around a triangular lattice subassembly
Overview
This mesh generator creates the mesh (with Quad4 elements) where the variables associated with the duct live.
The subdomain name used for the duct will match the name of this mesh generator.
AuxVariables
Defining this mesh automatically creates the auxvariables detailed here.
Example Input File Syntax
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = 4
n_cells = 100
flat_to_flat = 0.085
heated_length = 1.0
pin_diameter = 0.01
pitch = 0.012
dwire = 0.002
hwire = 0.0833
spacer_z = '0 0.2 0.4 0.6 0.8'
spacer_k = '0.1 0.1 0.1 0.1 0.10'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
nrings = 4
n_cells = 100
flat_to_flat = 0.085
heated_length = 1.0
pitch = 0.012
[]
[](modules/subchannel/examples/duct/test.i)Input Parameters
- block_id2Domain Index
Default:2
C++ Type:unsigned int
Controllable:No
Description:Domain Index
- unheated_length_entry0Unheated length at entry [m]
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Unheated length at entry [m]
- unheated_length_exit0Unheated length at exit [m]
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Unheated length at exit [m]
Optional Parameters
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.
- save_with_nameKeep the mesh from this mesh generator in memory with the name specified
C++ Type:std::string
Controllable:No
Description:Keep the mesh from this mesh generator in memory with the name specified
Advanced Parameters
- nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)
- outputFalseWhether or not to output the mesh file after generating the mesh
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to output the mesh file after generating the mesh
- show_infoFalseWhether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)
Debugging Parameters
Input Files
- (modules/subchannel/examples/duct/test.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS17_corrected.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS45R_corrected.i)
- (modules/subchannel/test/tests/multiapp/sc_core.i)
- (modules/subchannel/test/tests/mesh/tri_subchannel_duct_mesh/coords.i)
- (modules/subchannel/examples/MultiApp/fuel_assembly.i)
- (modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_implicit.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/positions/pin_positions.i)
- (modules/subchannel/test/tests/mesh/tri_sub_channel_pin_mesh/coords.i)
- (modules/subchannel/test/tests/problems/heat_transfer_correlations/XX09_SCM_SS17.i)
- (modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_explicit.i)
- (modules/subchannel/validation/EBR-II/XX09_SCM_SS17.i)
(modules/subchannel/examples/duct/test.i)
T_in = 660
mass_flux_in = '${fparse 1e+6 * 37.00 / 36000.*0.5}'
P_out = 2.0e5 # Pa
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = 4
n_cells = 100
flat_to_flat = 0.085
heated_length = 1.0
pin_diameter = 0.01
pitch = 0.012
dwire = 0.002
hwire = 0.0833
spacer_z = '0 0.2 0.4 0.6 0.8'
spacer_k = '0.1 0.1 0.1 0.1 0.10'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
nrings = 4
n_cells = 100
flat_to_flat = 0.085
heated_length = 1.0
pitch = 0.012
[]
[]
[AuxVariables]
[mdot]
block = subchannel
[]
[SumWij]
block = subchannel
[]
[P]
block = subchannel
[]
[DP]
block = subchannel
[]
[h]
block = subchannel
[]
[T]
block = subchannel
[]
[rho]
block = subchannel
[]
[S]
block = subchannel
[]
[w_perim]
block = subchannel
[]
[q_prime]
block = subchannel
[]
[mu]
block = subchannel
[]
[displacement]
block = subchannel
[]
[duct_heat_flux]
block = duct
[]
[Tduct]
block = duct
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[Problem]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = false
compute_viscosity = false
compute_power = true
P_tol = 1.0e-5
T_tol = 1.0e-5
implicit = true
segregated = false
staggered_pressure = false
verbose_multiapps = true
verbose_subchannel = false
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 1.0
[]
[]
[ICs]
[S_IC]
type = SCMTriFlowAreaIC
variable = S
[]
[w_perim_IC]
type = SCMTriWettedPerimIC
variable = w_perim
[]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1e5 #1.000e5 # W
filename = "pin_power_profile37.txt"
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[T_duct_ic]
type = ConstantIC
variable = Tduct
value = ${T_in}
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[UserObjects]
[Tduct_avg_uo]
type = NearestPointLayeredAverage
direction = z
num_layers = 1000
variable = Tduct
block = duct
points = '0 0 0'
execute_on = 'TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 2
fixed_point_min_its = 2
fixed_point_rel_tol = 1e-6
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
# Multiapp to duct heat conduction module
[duct_map]
type = FullSolveMultiApp
input_files = wrapper.i # seperate file for multiapps due to radial power profile
execute_on = 'timestep_end'
positions = '0 0 0' #center of assembly
bounding_box_padding = '10.0 10.0 10.0'
[]
# Multiapp to detailed mesh for vizualization
[viz]
type = FullSolveMultiApp
input_files = "3d.i"
execute_on = 'timestep_end'
[]
[]
[Transfers]
[duct_temperature_transfer] # Send duct temperature to heat conduction
type = MultiAppInterpolationTransfer
to_multi_app = duct_map
source_variable = Tduct
variable = duct_surface_temperature
[]
[displacement_transfer]
type = MultiAppGeneralFieldNearestNodeTransfer
from_multi_app = duct_map
source_variable = disp_magnitude
variable = displacement
[]
[q_prime] # Recover q_prime from heat conduction solve
type = MultiAppInterpolationTransfer
from_multi_app = duct_map
source_variable = q_prime
variable = duct_heat_flux
[]
[xfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu q_prime S displacement'
[]
[]
(modules/subchannel/examples/duct/test.i)
T_in = 660
mass_flux_in = '${fparse 1e+6 * 37.00 / 36000.*0.5}'
P_out = 2.0e5 # Pa
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = 4
n_cells = 100
flat_to_flat = 0.085
heated_length = 1.0
pin_diameter = 0.01
pitch = 0.012
dwire = 0.002
hwire = 0.0833
spacer_z = '0 0.2 0.4 0.6 0.8'
spacer_k = '0.1 0.1 0.1 0.1 0.10'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
nrings = 4
n_cells = 100
flat_to_flat = 0.085
heated_length = 1.0
pitch = 0.012
[]
[]
[AuxVariables]
[mdot]
block = subchannel
[]
[SumWij]
block = subchannel
[]
[P]
block = subchannel
[]
[DP]
block = subchannel
[]
[h]
block = subchannel
[]
[T]
block = subchannel
[]
[rho]
block = subchannel
[]
[S]
block = subchannel
[]
[w_perim]
block = subchannel
[]
[q_prime]
block = subchannel
[]
[mu]
block = subchannel
[]
[displacement]
block = subchannel
[]
[duct_heat_flux]
block = duct
[]
[Tduct]
block = duct
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[Problem]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = false
compute_viscosity = false
compute_power = true
P_tol = 1.0e-5
T_tol = 1.0e-5
implicit = true
segregated = false
staggered_pressure = false
verbose_multiapps = true
verbose_subchannel = false
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 1.0
[]
[]
[ICs]
[S_IC]
type = SCMTriFlowAreaIC
variable = S
[]
[w_perim_IC]
type = SCMTriWettedPerimIC
variable = w_perim
[]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1e5 #1.000e5 # W
filename = "pin_power_profile37.txt"
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[T_duct_ic]
type = ConstantIC
variable = Tduct
value = ${T_in}
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[UserObjects]
[Tduct_avg_uo]
type = NearestPointLayeredAverage
direction = z
num_layers = 1000
variable = Tduct
block = duct
points = '0 0 0'
execute_on = 'TIMESTEP_END'
[]
[]
[Outputs]
exodus = true
[]
[Executioner]
type = Steady
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
fixed_point_max_its = 2
fixed_point_min_its = 2
fixed_point_rel_tol = 1e-6
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
# Multiapp to duct heat conduction module
[duct_map]
type = FullSolveMultiApp
input_files = wrapper.i # seperate file for multiapps due to radial power profile
execute_on = 'timestep_end'
positions = '0 0 0' #center of assembly
bounding_box_padding = '10.0 10.0 10.0'
[]
# Multiapp to detailed mesh for vizualization
[viz]
type = FullSolveMultiApp
input_files = "3d.i"
execute_on = 'timestep_end'
[]
[]
[Transfers]
[duct_temperature_transfer] # Send duct temperature to heat conduction
type = MultiAppInterpolationTransfer
to_multi_app = duct_map
source_variable = Tduct
variable = duct_surface_temperature
[]
[displacement_transfer]
type = MultiAppGeneralFieldNearestNodeTransfer
from_multi_app = duct_map
source_variable = disp_magnitude
variable = displacement
[]
[q_prime] # Recover q_prime from heat conduction solve
type = MultiAppInterpolationTransfer
from_multi_app = duct_map
source_variable = q_prime
variable = duct_heat_flux
[]
[xfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu q_prime S displacement'
[]
[]
(modules/subchannel/validation/EBR-II/XX09_SCM_SS17_corrected.i)
# Following Benchmark Specifications and Data Requirements for EBR-II Shutdown Heat Removal Tests SHRT-17 and SHRT-45R
# Available at: https://publications.anl.gov/anlpubs/2012/06/73647.pdf
###################################################
# Steady state subchannel calculation
# Thermal-hydraulics parameters
###################################################
T_in = 624.70556 #Kelvin
Total_Surface_Area = 0.000854322 #m2
Mass_In = 2.45 #kg/sec
mass_flux_in = '${fparse Mass_In / Total_Surface_Area}' #kg/m2
P_out = 2.0e5 #Pa
Power_initial = 486200 #W (Page 26,35 of ANL document)
###################################################
# Geometric parameters
###################################################
scale_factor = 0.01
fuel_pin_pitch = '${fparse 0.5664*scale_factor}'
fuel_pin_diameter = '${fparse 0.4419*scale_factor}'
wire_z_spacing = '${fparse 15.24*scale_factor}'
wire_diameter = '${fparse 0.1244*scale_factor}'
inner_duct_in = '${fparse 4.64*scale_factor}'
n_rings = 5
heated_length = '${fparse 34.3*scale_factor}'
unheated_length_exit = '${fparse 26.9*scale_factor}'
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pin_diameter = ${fuel_pin_diameter}
pitch = ${fuel_pin_pitch}
dwire = ${wire_diameter}
hwire = ${wire_z_spacing}
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = ${n_rings}
n_cells = 50
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(pi/2)*sin(pi*z/L)*exp(-alpha*z)/(1.0/alpha*(1.0 - exp(-alpha*L)))*L'
symbol_names = 'L alpha'
symbol_values = '${heated_length} 1.8012'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-4
T_tol = 1.0e-5
implicit = true
segregated = false
interpolation_scheme = 'upwind'
verbose_subchannel = true
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power_initial}
filename = "pin_power_profile61.txt"
axial_heat_rate = axial_heat_rate
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[TTC-27]
type = SubChannelPointValue
variable = T
index = 91
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-28]
type = SubChannelPointValue
variable = T
index = 50
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-29]
type = SubChannelPointValue
variable = T
index = 21
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-30]
type = SubChannelPointValue
variable = T
index = 4
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 2
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-32]
type = SubChannelPointValue
variable = T
index = 16
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-33]
type = SubChannelPointValue
variable = T
index = 42
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-34]
type = SubChannelPointValue
variable = T
index = 80
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-35]
type = SubChannelPointValue
variable = T
index = 107
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[MTC-20]
type = SubChannelPointValue
variable = T
index = 33
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-22]
type = SubChannelPointValue
variable = T
index = 3
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-24]
type = SubChannelPointValue
variable = T
index = 28
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-25]
type = SubChannelPointValue
variable = T
index = 60
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-26]
type = SubChannelPointValue
variable = T
index = 106
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[14TC-37]
type = SubChannelPointValue
variable = T
index = 52
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-39]
type = SubChannelPointValue
variable = T
index = 6
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-41]
type = SubChannelPointValue
variable = T
index = 40
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-43]
type = SubChannelPointValue
variable = T
index = 105
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[]
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3d_SCM_SS.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/subchannel/validation/EBR-II/XX09_SCM_SS45R_corrected.i)
# Following Benchmark Specifications and Data Requirements for EBR-II Shutdown Heat Removal Tests SHRT-17 and SHRT-45R
# Available at: https://publications.anl.gov/anlpubs/2012/06/73647.pdf
###################################################
# Steady state subchannel calculation
# Thermal-hydraulics parameters
###################################################
T_in = 616.4 #Kelvin
Total_Surface_Area = 0.000854322 #m2
Mass_In = 2.427 #kg/sec
mass_flux_in = '${fparse Mass_In / Total_Surface_Area}' #kg/m2
P_out = 2.0e5
Power_initial = 379800 #W (Page 26,35 of ANL document)
###################################################
# Geometric parameters
###################################################
scale_factor = 0.01
fuel_pin_pitch = '${fparse 0.5664*scale_factor}'
fuel_pin_diameter = '${fparse 0.4419*scale_factor}'
wire_z_spacing = '${fparse 15.24*scale_factor}'
wire_diameter = '${fparse 0.1244*scale_factor}'
inner_duct_in = '${fparse 4.64*scale_factor}'
n_rings = 5
heated_length = '${fparse 34.3*scale_factor}'
unheated_length_exit = '${fparse 26.9*scale_factor}'
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pin_diameter = ${fuel_pin_diameter}
pitch = ${fuel_pin_pitch}
dwire = ${wire_diameter}
hwire = ${wire_z_spacing}
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = ${n_rings}
n_cells = 50
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(pi/2)*sin(pi*z/L)*exp(-alpha*z)/(1.0/alpha*(1.0 - exp(-alpha*L)))*L'
symbol_names = 'L alpha'
symbol_values = '${heated_length} 1.8012'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-4
T_tol = 1.0e-5
implicit = true
segregated = false
interpolation_scheme = 'upwind'
verbose_subchannel = true
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power_initial}
filename = "pin_power_profile61.txt"
axial_heat_rate = axial_heat_rate
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[TTC-27]
type = SubChannelPointValue
variable = T
index = 91
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-28]
type = SubChannelPointValue
variable = T
index = 50
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-29]
type = SubChannelPointValue
variable = T
index = 21
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-30]
type = SubChannelPointValue
variable = T
index = 4
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 2
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-32]
type = SubChannelPointValue
variable = T
index = 16
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-33]
type = SubChannelPointValue
variable = T
index = 42
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-34]
type = SubChannelPointValue
variable = T
index = 80
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-35]
type = SubChannelPointValue
variable = T
index = 107
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[MTC-20]
type = SubChannelPointValue
variable = T
index = 33
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-22]
type = SubChannelPointValue
variable = T
index = 3
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-24]
type = SubChannelPointValue
variable = T
index = 28
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-25]
type = SubChannelPointValue
variable = T
index = 60
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-26]
type = SubChannelPointValue
variable = T
index = 106
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[14TC-37]
type = SubChannelPointValue
variable = T
index = 52
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-39]
type = SubChannelPointValue
variable = T
index = 6
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-41]
type = SubChannelPointValue
variable = T
index = 40
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-43]
type = SubChannelPointValue
variable = T
index = 105
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[]
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3d_SCM_SS.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/subchannel/test/tests/multiapp/sc_core.i)
# Following Advanced Burner Test Reactor Preconceptual Design Report
# Vailable at: https://www.ne.anl.gov/eda/ABTR_1cv2_ws.pdf
###################################################
# Thermal-hydraulics parameters
###################################################
T_in = 866.0
P_out = 253727.1 # Pa
reactor_power = 671337.24 #WTh
mass_flow = '${fparse 6.15}' # kg/(s)
###################################################
# Geometric parameters
###################################################
# units are cm - do not forget to convert to meter
scale_factor = 0.01
fuel_pin_pitch = '${fparse 1.4478*scale_factor}'
fuel_pin_diameter = '${fparse 1.4268*scale_factor}'
wire_z_spacing = '${fparse 0*scale_factor}'
wire_diameter = '${fparse 0*scale_factor}'
n_rings = 8
length_heated_fuel = '${fparse 35.56*scale_factor}'
entry_length = 0
duct_inside = '${fparse 11.43*2*scale_factor}'
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = '${fparse n_rings}'
n_cells = 10
flat_to_flat = '${fparse duct_inside}'
heated_length = '${fparse length_heated_fuel}'
pin_diameter = '${fparse fuel_pin_diameter}'
pitch = '${fparse fuel_pin_pitch}'
dwire = '${fparse wire_diameter}'
hwire = '${fparse wire_z_spacing}'
spacer_z = '0'
spacer_k = '0'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = '${fparse n_rings}'
n_cells = 10
heated_length = '${fparse length_heated_fuel}'
pitch = '${fparse fuel_pin_pitch}'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = '${fparse n_rings}'
n_cells = 10
flat_to_flat = '${fparse duct_inside}'
heated_length = '${fparse length_heated_fuel}'
pitch = '${fparse fuel_pin_pitch}'
[]
[]
# All needed aux variables are automatically loaded if [SubChannel] block exists
# [AuxVariables]
# [mdot]
# block = subchannel
# []
# [SumWij]
# block = subchannel
# []
# [P]
# block = subchannel
# []
# [DP]
# block = subchannel
# []
# [h]
# block = subchannel
# []
# [T]
# block = subchannel
# []
# [Tpin]
# block = fuel_pins
# []
# [Dpin]
# block = fuel_pins
# []
# [rho]
# block = subchannel
# []
# [S]
# block = subchannel
# []
# [w_perim]
# block = subchannel
# []
# [q_prime]
# block = fuel_pins
# []
# [mu]
# block = subchannel
# []
# [q_prime_duct]
# block = duct
# initial_condition = 0
# []
# [Tduct]
# block = duct
# []
# [displacement]
# block = subchannel
# initial_condition = 0
# []
# []
[FluidProperties]
[sodium]
type = SimpleFluidProperties
molar_mass = 0.0355
cp = 873.0
cv = 873.0
specific_entropy = 1055
viscosity = 0.0001582
thermal_conductivity = 25.9
thermal_expansion = 2.77e-4
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${P_out}
P_tol = 1.0e-2
T_tol = 1.0e-2
# Solver settings
implicit = true
segregated = false
# Output
verbose_multiapps = true
verbose_subchannel = true
compute_density = false
compute_viscosity = false
compute_power = false
# Heat Transfer Correlations
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
# Friction Correlation
friction_closure = 'Cheng'
full_output = true
# Mixing Correlation
mixing_closure = 'Kim'
[]
[SCMClosures]
[Cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[Kim]
type = SCMMixingKimAndChung
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${reactor_power} # W
filename = 'pin_p.txt'
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[T_duct_ic]
type = ConstantIC
variable = Tduct
value = ${T_in}
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMFlatMassFlowRateAux
variable = mdot
boundary = inlet
mass_flow = ${mass_flow}
execute_on = 'timestep_begin'
block = sub_channel
[]
[]
[Executioner]
type = Steady
[]
[VectorPostprocessors]
[sub]
type = LineValueSampler
start_point = '0 -0.00835888 ${entry_length}'
end_point = '0 -0.00835888 ${fparse entry_length + length_heated_fuel}'
num_points = 10
variable = 'h rho P'
sort_by = 'z'
execute_on = 'timestep_end'
[]
[]
[Outputs]
csv = true
[]
(modules/subchannel/test/tests/mesh/tri_subchannel_duct_mesh/coords.i)
[GlobalParams]
heated_length = 1.0
nrings = 5
flat_to_flat = 1.2
pitch = 0.13
n_cells = 2
[]
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
pin_diameter = 0.1
dwire = 0.03
hwire = 0.3
spacer_k = '0.5'
spacer_z = '0'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
[]
[]
(modules/subchannel/examples/MultiApp/fuel_assembly.i)
###################################################
# Thermal-hydraulics parameters
###################################################
T_in = 628.15 # K
P_out = 758423 # Pa
reactor_power = 250e6 #WTh
fuel_assemblies_per_power_unit = '${fparse 2.5}'
fuel_pins_per_assembly = 217
pin_power = '${fparse reactor_power/(fuel_assemblies_per_power_unit*fuel_pins_per_assembly)}' # Approx.
mass_flux_in = '${fparse 2786}' # kg/(m2.s)
###################################################
# Geometric parameters
###################################################
n_cells = 50
# units are cm - do not forget to convert to meter
scale_factor = 0.01
fuel_element_pitch = '${fparse 14.598*scale_factor}'
inter_assembly_gap = '${fparse 0.4*scale_factor}'
duct_thickness = '${fparse 0.3*scale_factor}'
fuel_pin_pitch = '${fparse 0.904*scale_factor}'
fuel_pin_diameter = '${fparse 0.8*scale_factor}'
wire_z_spacing = '${fparse 20.32*scale_factor}'
wire_diameter = '${fparse 0.103*scale_factor}'
n_rings = 9
# Reduced height for convenience
length_entry_fuel = '${fparse 20*scale_factor}'
length_heated_fuel = '${fparse 40*scale_factor}'
length_outlet_fuel = '${fparse 20*scale_factor}'
# height = '${fparse length_entry_fuel+length_heated_fuel+length_outlet_fuel}'
orifice_plate_height = '${fparse 5*scale_factor}'
duct_outside = '${fparse fuel_element_pitch - inter_assembly_gap}'
duct_inside = '${fparse duct_outside - 2 * duct_thickness}'
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = '${fparse n_rings}'
n_cells = ${n_cells}
flat_to_flat = '${fparse duct_inside}'
unheated_length_entry = '${fparse length_entry_fuel}'
heated_length = '${fparse length_heated_fuel}'
unheated_length_exit = '${fparse length_outlet_fuel}'
pin_diameter = '${fparse fuel_pin_diameter}'
pitch = '${fparse fuel_pin_pitch}'
dwire = '${fparse wire_diameter}'
hwire = '${fparse wire_z_spacing}'
spacer_z = '${fparse orifice_plate_height} ${fparse length_entry_fuel}'
spacer_k = '0.5 0.5'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = '${fparse n_rings}'
n_cells = ${n_cells}
unheated_length_entry = '${fparse length_entry_fuel}'
heated_length = '${fparse length_heated_fuel}'
unheated_length_exit = '${fparse length_outlet_fuel}'
pitch = '${fparse fuel_pin_pitch}'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = '${fparse n_rings}'
n_cells = ${n_cells}
flat_to_flat = '${fparse duct_inside}'
unheated_length_entry = '${fparse length_entry_fuel}'
heated_length = '${fparse length_heated_fuel}'
unheated_length_exit = '${fparse length_outlet_fuel}'
pitch = '${fparse fuel_pin_pitch}'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
P_out = ${P_out}
# Solver parameters
n_blocks = 10
implicit = false
segregated = true
staggered_pressure = false
# Tolerances
P_tol = 1.0e-4
T_tol = 1.0e-8
# Heat Transfer Correlation
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
# Friction Correlation
friction_closure = 'Cheng'
# Turbulent mixing Correlation
mixing_closure = 'cheng_todreas'
# Output
compute_density = true
compute_viscosity = true
compute_power = true
verbose_multiapps = true
verbose_subchannel = false
full_output = true
[]
[SCMClosures]
[Cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
[]
[]
[ICs]
# Geometry
# Operating conditions
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${pin_power} # W
filename = "pin_power_profile217.txt"
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[T_duct_ic]
type = ConstantIC
variable = Tduct
value = ${T_in}
[]
# Fluid properties
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Executioner]
type = Transient
num_steps = 1
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = TransientMultiApp
input_files = "3d.i"
execute_on = "final"
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_implicit.i)
T_in = 660
mass_flux_in = '${fparse 1e+6 * 300.00 / 36000.*0.5}'
P_out = 2.0e5 # Pa
[GlobalParams]
nrings = 3
n_cells = 5
flat_to_flat = 0.056
heated_length = 0.5
pitch = 0.012
[]
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
spacer_z = '0'
spacer_k = '5.0'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = true
compute_viscosity = true
compute_power = true
implicit = true
segregated = true
verbose_subchannel = true
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1000.0 # W
filename = "pin_power_profile19.txt"
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[duct_heat_flux_ic]
type = ConstantIC
variable = duct_heat_flux #W/m2
value = 1000.0
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[T1]
type = SubChannelPointValue
variable = T
index = 37
execute_on = "timestep_end"
height = 0.5
[]
[T2]
type = SubChannelPointValue
variable = T
index = 36
execute_on = "timestep_end"
height = 0.5
[]
[T3]
type = SubChannelPointValue
variable = T
index = 20
execute_on = "timestep_end"
height = 0.5
[]
[T4]
type = SubChannelPointValue
variable = T
index = 10
execute_on = "timestep_end"
height = 0.5
[]
[T5]
type = SubChannelPointValue
variable = T
index = 4
execute_on = "timestep_end"
height = 0.5
[]
[T6]
type = SubChannelPointValue
variable = T
index = 1
execute_on = "timestep_end"
height = 0.5
[]
[T7]
type = SubChannelPointValue
variable = T
index = 14
execute_on = "timestep_end"
height = 0.5
[]
[T8]
type = SubChannelPointValue
variable = T
index = 28
execute_on = "timestep_end"
height = 0.5
[]
####### Assembly pressure drop
[DP_SubchannelDelta]
type = SubChannelDelta
variable = P
execute_on = 'TIMESTEP_END'
[]
#####
[Mean_Temp]
type = SCMPlanarMean
variable = T
height = 2
[]
[mdot-8]
type = SubChannelPointValue
variable = mdot
index = 28
execute_on = 'TIMESTEP_END'
height = 0.5
[]
[Total_power]
type = ElementIntegralVariablePostprocessor
variable = q_prime
block = sub_channel
[]
[Total_power_SCMDuctPowerPostprocessor]
type = SCMDuctHeatRatePostprocessor
[]
[Total_power_SCMTHPowerPostprocessor]
type = SCMTHPowerPostprocessor
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/validation/EBR-II/XX09_SCM_SS45R.i)
# Following Benchmark Specifications and Data Requirements for EBR-II Shutdown Heat Removal Tests SHRT-17 and SHRT-45R
# Available at: https://publications.anl.gov/anlpubs/2012/06/73647.pdf
###################################################
# Steady state subchannel calculation
# Thermal-hydraulics parameters
###################################################
T_in = 616.4 #Kelvin
Total_Surface_Area = 0.000854322 #m2
Mass_In = 2.427 #kg/sec
mass_flux_in = '${fparse Mass_In / Total_Surface_Area}' #kg/m2
P_out = 2.0e5
Power_initial = 379800 #W (Page 26,35 of ANL document)
###################################################
# Geometric parameters
###################################################
scale_factor = 0.01
fuel_pin_pitch = '${fparse 0.5664*scale_factor}'
fuel_pin_diameter = '${fparse 0.4419*scale_factor}'
wire_z_spacing = '${fparse 15.24*scale_factor}'
wire_diameter = '${fparse 0.1244*scale_factor}'
inner_duct_in = '${fparse 4.64*scale_factor}'
n_rings = 5
heated_length = '${fparse 34.3*scale_factor}'
unheated_length_exit = '${fparse 26.9*scale_factor}'
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pin_diameter = ${fuel_pin_diameter}
pitch = ${fuel_pin_pitch}
dwire = ${wire_diameter}
hwire = ${wire_z_spacing}
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = ${n_rings}
n_cells = 50
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[AuxVariables]
[q_prime_init]
block = fuel_pins
[]
[power_history_field]
block = fuel_pins
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(pi/2)*sin(pi*z/L)*exp(-alpha*z)/(1.0/alpha*(1.0 - exp(-alpha*L)))*L'
symbol_names = 'L alpha'
symbol_values = '${heated_length} 1.8012'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-4
T_tol = 1.0e-5
implicit = true
segregated = false
interpolation_scheme = 'upwind'
verbose_subchannel = true
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power_initial}
filename = "pin_power_profile61_uniform.txt"
axial_heat_rate = axial_heat_rate
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[TTC-27]
type = SubChannelPointValue
variable = T
index = 91
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-28]
type = SubChannelPointValue
variable = T
index = 50
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-29]
type = SubChannelPointValue
variable = T
index = 21
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-30]
type = SubChannelPointValue
variable = T
index = 4
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 2
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-32]
type = SubChannelPointValue
variable = T
index = 16
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-33]
type = SubChannelPointValue
variable = T
index = 42
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-34]
type = SubChannelPointValue
variable = T
index = 80
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-35]
type = SubChannelPointValue
variable = T
index = 107
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[MTC-20]
type = SubChannelPointValue
variable = T
index = 33
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-22]
type = SubChannelPointValue
variable = T
index = 3
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-24]
type = SubChannelPointValue
variable = T
index = 28
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-25]
type = SubChannelPointValue
variable = T
index = 60
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-26]
type = SubChannelPointValue
variable = T
index = 106
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[14TC-37]
type = SubChannelPointValue
variable = T
index = 52
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-39]
type = SubChannelPointValue
variable = T
index = 6
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-41]
type = SubChannelPointValue
variable = T
index = 40
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-43]
type = SubChannelPointValue
variable = T
index = 105
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[]
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3d_SCM_SS.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]
(modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_monolithic.i)
T_in = 660
mass_flux_in = '${fparse 1e+6 * 300.00 / 36000.*0.5}'
P_out = 2.0e5 # Pa
[GlobalParams]
nrings = 3
n_cells = 5
flat_to_flat = 0.056
heated_length = 0.5
pitch = 0.012
[]
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
spacer_z = '0'
spacer_k = '5.0'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = true
compute_viscosity = true
compute_power = true
T_tol = 1.0e-6
P_tol = 1.0e-6
implicit = true
segregated = false
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1000.0 # W
filename = "pin_power_profile19.txt"
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[T1]
type = SubChannelPointValue
variable = T
index = 37
execute_on = "timestep_end"
height = 0.5
[]
[T2]
type = SubChannelPointValue
variable = T
index = 36
execute_on = "timestep_end"
height = 0.5
[]
[T3]
type = SubChannelPointValue
variable = T
index = 20
execute_on = "timestep_end"
height = 0.5
[]
[T4]
type = SubChannelPointValue
variable = T
index = 10
execute_on = "timestep_end"
height = 0.5
[]
[T5]
type = SubChannelPointValue
variable = T
index = 4
execute_on = "timestep_end"
height = 0.5
[]
[T6]
type = SubChannelPointValue
variable = T
index = 1
execute_on = "timestep_end"
height = 0.5
[]
[T7]
type = SubChannelPointValue
variable = T
index = 14
execute_on = "timestep_end"
height = 0.5
[]
[T8]
type = SubChannelPointValue
variable = T
index = 28
execute_on = "timestep_end"
height = 0.5
[]
####### Assembly pressure drop
[DP_SubchannelDelta]
type = SubChannelDelta
variable = P
execute_on = 'TIMESTEP_END'
[]
#####
[Mean_Temp]
type = SCMPlanarMean
variable = T
height = 2
[]
[Total_power]
type = ElementIntegralVariablePostprocessor
variable = q_prime
block = sub_channel
[]
[mdot-8]
type = SubChannelPointValue
variable = mdot
index = 28
execute_on = 'TIMESTEP_END'
height = 0.5
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/test/tests/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]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = '${fparse n_rings}'
n_cells = ${n_cells}
flat_to_flat = '${fparse duct_inside}'
unheated_length_entry = '${fparse length_entry_fuel}'
heated_length = '${fparse length_heated_fuel}'
unheated_length_exit = '${fparse length_outlet_fuel}'
pin_diameter = '${fparse fuel_pin_diameter}'
pitch = '${fparse fuel_pin_pitch}'
dwire = '${fparse wire_diameter}'
hwire = '${fparse wire_z_spacing}'
spacer_z = '${fparse orifice_plate_height} ${fparse length_entry_fuel}'
spacer_k = '0.5 0.5'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = '${fparse n_rings}'
n_cells = ${n_cells}
unheated_length_entry = '${fparse length_entry_fuel}'
heated_length = '${fparse length_heated_fuel}'
unheated_length_exit = '${fparse length_outlet_fuel}'
pitch = '${fparse fuel_pin_pitch}'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = '${fparse n_rings}'
n_cells = ${n_cells}
flat_to_flat = '${fparse duct_inside}'
unheated_length_entry = '${fparse length_entry_fuel}'
heated_length = '${fparse length_heated_fuel}'
unheated_length_exit = '${fparse length_outlet_fuel}'
pitch = '${fparse fuel_pin_pitch}'
[]
[]
[AuxVariables]
[mdot]
block = sub_channel
[]
[SumWij]
block = sub_channel
[]
[P]
block = sub_channel
initial_condition = 0
[]
[DP]
block = sub_channel
[]
[h]
block = sub_channel
[]
[T]
block = sub_channel
[]
[Tpin]
block = fuel_pins
[]
[Dpin]
block = fuel_pins
[]
[rho]
block = sub_channel
[]
[S]
block = sub_channel
[]
[w_perim]
block = sub_channel
[]
[displacement]
block = sub_channel
[]
[ff]
block = sub_channel
[]
[HTC]
block = sub_channel
[]
[q_prime]
block = fuel_pins
[]
[mu]
block = sub_channel
[]
[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 = 'cheng'
# HTC
pin_HTC_closure = Dittus-Boelter
duct_HTC_closure = Dittus-Boelter
# mixing model (beta)
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[Cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[Dittus-Boelter]
type = SCMHTCDittusBoelter
[]
[cheng_todreas]
type = SCMMixingChengTodreas
[]
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[]
[Executioner]
type = Steady
[]
[Positions]
[pin_positions]
type = SCMPinPositions
outputs = json
[]
[]
[Outputs]
json = true
[]
(modules/subchannel/test/tests/mesh/tri_sub_channel_pin_mesh/coords.i)
[GlobalParams]
nrings = 3
n_cells = 20
flat_to_flat = 0.056
heated_length = 0.2
pitch = 0.012
[]
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
spacer_z = '0'
spacer_k = '5.0'
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
[]
[]
(modules/subchannel/test/tests/problems/heat_transfer_correlations/XX09_SCM_SS17.i)
# Following Benchmark Specifications and Data Requirements for EBR-II Shutdown Heat Removal Tests SHRT-17 and SHRT-45R
# Available at: https://publications.anl.gov/anlpubs/2012/06/73647.pdf
###################################################
# Steady state subchannel calcultion
# Thermal-hydraulics parameters
###################################################
T_in = 624.70556 #Kelvin
Total_Surface_Area = 0.000854322 #m2
Mass_In = 2.45 #kg/sec
mass_flux_in = '${fparse Mass_In / Total_Surface_Area}' #kg/m2
P_out = 2.0e5 #Pa
Power_initial = 486200 #W (Page 26,35 of ANL document)
###################################################
# Geometric parameters
###################################################
scale_factor = 0.01
fuel_pin_pitch = '${fparse 0.5664*scale_factor}'
fuel_pin_diameter = '${fparse 0.4419*scale_factor}'
wire_z_spacing = '${fparse 15.24*scale_factor}'
wire_diameter = '${fparse 0.1244*scale_factor}'
inner_duct_in = '${fparse 4.64*scale_factor}'
n_rings = 5
heated_length = '${fparse 34.3*scale_factor}'
unheated_length_exit = '${fparse 26.9*scale_factor}'
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 20
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pin_diameter = ${fuel_pin_diameter}
pitch = ${fuel_pin_pitch}
dwire = ${wire_diameter}
hwire = ${wire_z_spacing}
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 20
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = ${n_rings}
n_cells = 20
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(pi/2)*sin(pi*z/L)*exp(-alpha*z)/(1.0/alpha*(1.0 - exp(-alpha*L)))*L'
symbol_names = 'L alpha'
symbol_values = '${heated_length} 1.8012'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-4
T_tol = 1.0e-5
implicit = true
segregated = false
interpolation_scheme = 'upwind'
verbose_subchannel = true
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[dittus-boelter]
type = SCMHTCDittusBoelter
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[kazimi-carelli]
type = SCMHTCKazimiCarelli
[]
[schad-modified]
type = SCMHTCSchadModified
[]
[graber-rieger]
type = SCMHTCGraberRieger
[]
[borishanskii]
type = SCMHTCBorishanskii
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
# Keep T manually declared and unrestricted so this legacy regression continues
# to compare against the pre-scoped AuxVariable golds. The automatic
# SubChannelAddVariablesAction path remains block-restricted for normal inputs.
[AuxVariables]
[T]
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power_initial}
filename = "pin_power_profile61_uniform.txt"
axial_heat_rate = axial_heat_rate
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
### Central pin inlet temperature
[Pin_Temp_0_Inlet]
type = SCMPinSurfaceTemperature
index = 0
height = ${fparse heated_length*0.01}
[]
### Central pin center temperature
[Pin_Temp_1_Center]
type = SCMPinSurfaceTemperature
index = 0
height = ${fparse heated_length*0.5}
[]
### Central pin outlet temperature
[Pin_Temp_2_Outlet]
type = SCMPinSurfaceTemperature
index = 0
height = ${fparse heated_length*0.99}
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/test/tests/problems/SFR/sodium-19pin/test19_explicit.i)
T_in = 660
mass_flux_in = '${fparse 1e+6 * 300.00 / 36000.*0.5}'
P_out = 2.0e5 # Pa
[GlobalParams]
nrings = 3
n_cells = 5
flat_to_flat = 0.056
heated_length = 0.5
pitch = 0.012
[]
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
spacer_z = '0'
spacer_k = '5.0'
[]
[duct]
type = SCMTriDuctMeshGenerator
input = sub_channel
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = 2.0e5
compute_density = true
compute_viscosity = true
compute_power = true
implicit = false
segregated = true
verbose_subchannel = true
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = 1000.0 # W
filename = "pin_power_profile19.txt"
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[T1]
type = SubChannelPointValue
variable = T
index = 37
execute_on = "timestep_end"
height = 0.5
[]
[T2]
type = SubChannelPointValue
variable = T
index = 36
execute_on = "timestep_end"
height = 0.5
[]
[T3]
type = SubChannelPointValue
variable = T
index = 20
execute_on = "timestep_end"
height = 0.5
[]
[T4]
type = SubChannelPointValue
variable = T
index = 10
execute_on = "timestep_end"
height = 0.5
[]
[T5]
type = SubChannelPointValue
variable = T
index = 4
execute_on = "timestep_end"
height = 0.5
[]
[T6]
type = SubChannelPointValue
variable = T
index = 1
execute_on = "timestep_end"
height = 0.5
[]
[T7]
type = SubChannelPointValue
variable = T
index = 14
execute_on = "timestep_end"
height = 0.5
[]
[T8]
type = SubChannelPointValue
variable = T
index = 28
execute_on = "timestep_end"
height = 0.5
[]
####### Assembly pressure drop
[DP_SubchannelDelta]
type = SubChannelDelta
variable = P
execute_on = 'TIMESTEP_END'
[]
#####
[Mean_Temp]
type = SCMPlanarMean
variable = T
height = 2
[]
[Total_power]
type = ElementIntegralVariablePostprocessor
variable = q_prime
block = sub_channel
[]
[mdot-8]
type = SubChannelPointValue
variable = mdot
index = 28
execute_on = 'TIMESTEP_END'
height = 0.5
[]
[]
[Executioner]
type = Steady
[]
(modules/subchannel/validation/EBR-II/XX09_SCM_SS17.i)
# Following Benchmark Specifications and Data Requirements for EBR-II Shutdown Heat Removal Tests SHRT-17 and SHRT-45R
# Available at: https://publications.anl.gov/anlpubs/2012/06/73647.pdf
###################################################
# Steady state subchannel calculation
# Thermal-hydraulics parameters
###################################################
T_in = 624.70556 #Kelvin
Total_Surface_Area = 0.000854322 #m2
Mass_In = 2.45 #kg/sec
mass_flux_in = '${fparse Mass_In / Total_Surface_Area}' #kg/m2
P_out = 2.0e5 #Pa
Power_initial = 486200 #W (Page 26,35 of ANL document)
###################################################
# Geometric parameters
###################################################
scale_factor = 0.01
fuel_pin_pitch = '${fparse 0.5664*scale_factor}'
fuel_pin_diameter = '${fparse 0.4419*scale_factor}'
wire_z_spacing = '${fparse 15.24*scale_factor}'
wire_diameter = '${fparse 0.1244*scale_factor}'
inner_duct_in = '${fparse 4.64*scale_factor}'
n_rings = 5
heated_length = '${fparse 34.3*scale_factor}'
unheated_length_exit = '${fparse 26.9*scale_factor}'
###################################################
[TriSubChannelMesh]
[sub_channel]
type = SCMTriSubChannelMeshGenerator
nrings = ${n_rings}
n_cells = 50
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pin_diameter = ${fuel_pin_diameter}
pitch = ${fuel_pin_pitch}
dwire = ${wire_diameter}
hwire = ${wire_z_spacing}
[]
[fuel_pins]
type = SCMTriPinMeshGenerator
input = sub_channel
nrings = ${n_rings}
n_cells = 50
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[duct]
type = SCMTriDuctMeshGenerator
input = fuel_pins
nrings = ${n_rings}
n_cells = 50
flat_to_flat = ${inner_duct_in}
unheated_length_exit = ${unheated_length_exit}
heated_length = ${heated_length}
pitch = ${fuel_pin_pitch}
[]
[]
[Functions]
[axial_heat_rate]
type = ParsedFunction
expression = '(pi/2)*sin(pi*z/L)*exp(-alpha*z)/(1.0/alpha*(1.0 - exp(-alpha*L)))*L'
symbol_names = 'L alpha'
symbol_values = '${heated_length} 1.8012'
[]
[]
[FluidProperties]
[sodium]
type = PBSodiumFluidProperties
[]
[]
[SubChannel]
type = TriSubChannel1PhaseProblem
fp = sodium
n_blocks = 1
P_out = ${P_out}
compute_density = true
compute_viscosity = true
compute_power = true
P_tol = 1.0e-4
T_tol = 1.0e-5
implicit = true
segregated = false
interpolation_scheme = 'upwind'
verbose_subchannel = true
pin_HTC_closure = 'gnielinski'
duct_HTC_closure = 'gnielinski'
friction_closure = 'cheng'
full_output = true
mixing_closure = 'cheng_todreas'
[]
[SCMClosures]
[cheng]
type = SCMFrictionUpdatedChengTodreas
[]
[gnielinski]
type = SCMHTCGnielinski
[]
[cheng_todreas]
type = SCMMixingChengTodreas
CT = 2.6
[]
[]
[ICs]
[q_prime_IC]
type = SCMTriPowerIC
variable = q_prime
power = ${Power_initial}
filename = "pin_power_profile61_uniform.txt"
axial_heat_rate = axial_heat_rate
[]
[T_ic]
type = ConstantIC
variable = T
value = ${T_in}
[]
[P_ic]
type = ConstantIC
variable = P
value = 0.0
[]
[DP_ic]
type = ConstantIC
variable = DP
value = 0.0
[]
[Viscosity_ic]
type = ViscosityIC
variable = mu
p = ${P_out}
T = T
fp = sodium
[]
[rho_ic]
type = RhoFromPressureTemperatureIC
variable = rho
p = ${P_out}
T = T
fp = sodium
[]
[h_ic]
type = SpecificEnthalpyFromPressureTemperatureIC
variable = h
p = ${P_out}
T = T
fp = sodium
[]
[mdot_ic]
type = ConstantIC
variable = mdot
value = 0.0
[]
[]
[AuxKernels]
[T_in_bc]
type = ConstantAux
variable = T
boundary = inlet
value = ${T_in}
execute_on = 'timestep_begin'
block = sub_channel
[]
[mdot_in_bc]
type = SCMMassFlowRateAux
variable = mdot
boundary = inlet
area = S
mass_flux = ${mass_flux_in}
execute_on = 'timestep_begin'
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[TTC-27]
type = SubChannelPointValue
variable = T
index = 91
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-28]
type = SubChannelPointValue
variable = T
index = 50
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-29]
type = SubChannelPointValue
variable = T
index = 21
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-30]
type = SubChannelPointValue
variable = T
index = 4
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-31]
type = SubChannelPointValue
variable = T
index = 2
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-32]
type = SubChannelPointValue
variable = T
index = 16
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-33]
type = SubChannelPointValue
variable = T
index = 42
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-34]
type = SubChannelPointValue
variable = T
index = 80
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[TTC-35]
type = SubChannelPointValue
variable = T
index = 107
execute_on = 'TIMESTEP_END'
height = 0.322
[]
[MTC-20]
type = SubChannelPointValue
variable = T
index = 33
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-22]
type = SubChannelPointValue
variable = T
index = 3
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-24]
type = SubChannelPointValue
variable = T
index = 28
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-25]
type = SubChannelPointValue
variable = T
index = 60
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[MTC-26]
type = SubChannelPointValue
variable = T
index = 106
execute_on = 'TIMESTEP_END'
height = 0.172
[]
[14TC-37]
type = SubChannelPointValue
variable = T
index = 52
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-39]
type = SubChannelPointValue
variable = T
index = 6
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-41]
type = SubChannelPointValue
variable = T
index = 40
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[14TC-43]
type = SubChannelPointValue
variable = T
index = 105
execute_on = 'TIMESTEP_END'
height = 0.480
[]
[]
[Executioner]
type = Steady
[]
################################################################################
# A multiapp that projects data to a detailed mesh
################################################################################
[MultiApps]
[viz]
type = FullSolveMultiApp
input_files = '3d_SCM_SS.i'
execute_on = 'FINAL'
[]
[]
[Transfers]
[subchannel_transfer]
type = SCMSolutionTransfer
to_multi_app = viz
variable = 'mdot SumWij P DP h T rho mu S'
[]
[pin_transfer]
type = SCMPinSolutionTransfer
to_multi_app = viz
variable = 'Tpin q_prime'
[]
[]