- inputName of the input
C++ Type:BoundaryName
Controllable:No
Description:Name of the input
SolidWall1Phase
This is a single-phase 1-D flow boundary component corresponding to a solid wall. This component should be used where a flow channel ends with no inlet or outlet.
Usage
This component must be connected to a FlowChannel1Phase. See how to connect a flow boundary component.
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:No
Description:Set the enabled status of the MooseObject.
Advanced Parameters
Input Files
- (modules/thermal_hydraulics/test/tests/components/volume_junction_1phase/t_junction_1phase.i)
- (modules/thermal_hydraulics/test/tests/problems/sedov_blast_wave/sedov_blast_wave.i)
- (modules/thermal_hydraulics/test/tests/components/heat_source_volumetric_1phase/phy.conservation.1phase.i)
- (modules/thermal_hydraulics/test/tests/misc/initial_from_file/flow_channel/err.non_existent_block.i)
- (modules/thermal_hydraulics/test/tests/components/flow_connection/err.connection_format.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_1phase/phy.heat_structure_multiple_3eqn.i)
- (modules/thermal_hydraulics/test/tests/components/shaft_connected_turbine_1phase/jac.test.i)
- (modules/thermal_hydraulics/test/tests/misc/displaced_components/displaced_components.i)
- (modules/thermal_hydraulics/test/tests/output/paraview_component_annotation_map/test.i)
- (modules/thermal_hydraulics/test/tests/components/elbow_pipe_1phase/phy.position.i)
- (modules/thermal_hydraulics/test/tests/postprocessors/heat_rate_convection_1phase/heat_rate_convection_1phase.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_1phase/phy.T_wall_transfer_3eqn_y.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_flux_1phase/phy.energy_heatflux_ss_1phase.i)
- (modules/thermal_hydraulics/test/tests/components/pump_1phase/pump_mass_energy_conservation.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_3d/phy.conservation.i)
- (modules/thermal_hydraulics/test/tests/components/deprecated/heat_source_volumetric.i)
- (modules/thermal_hydraulics/test/tests/base/component_groups/test.i)
- (modules/thermal_hydraulics/test/tests/closures/none_1phase/phy.test.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_flux_1phase/phy.q_wall_multiple_3eqn.i)
- (modules/thermal_hydraulics/test/tests/problems/woodward_colella_blast_wave/woodward_colella_blast_wave.i)
- (modules/thermal_hydraulics/test/tests/components/solid_wall_1phase/jacobian.i)
- (modules/thermal_hydraulics/test/tests/components/solid_wall_1phase/phy.3eqn.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_1phase/phy.T_wall_transfer_3eqn_z.i)
- (modules/thermal_hydraulics/test/tests/base/simulation/loop_identification.i)
- (modules/thermal_hydraulics/test/tests/components/shaft_connected_compressor_1phase/jac.test.i)
- (modules/thermal_hydraulics/test/tests/misc/uniform_refine/test.i)
- (modules/thermal_hydraulics/test/tests/components/outlet_1phase/phy.solidwall_outlet_3eqn.i)
- (modules/thermal_hydraulics/test/tests/components/flow_channel_1phase/phy.sub_discretization.i)
- (modules/thermal_hydraulics/test/tests/components/flow_channel_1phase/phy.par_fn.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_1phase/phy.conservation_1phase.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_1phase/phy.T_wall_transfer_3eqn_x.i)
- (modules/thermal_hydraulics/test/tests/components/volume_junction_1phase/phy.deadend.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_specified_temperature_1phase/phy.energy_walltemperature_ss_1phase.i)
- (modules/thermal_hydraulics/test/tests/components/shaft_connected_test_component/jacobian.i)
- (modules/thermal_hydraulics/test/tests/problems/water_hammer/3eqn.i)
- (modules/thermal_hydraulics/test/tests/components/heat_transfer_from_external_app_1phase/phy.q_wall_transfer_3eqn.child.i)
Formulation
This boundary condition uses a ghost cell formulation, where the ghost cell solution is the same as the interior solution but with opposite velocity:
This produces a zero velocity in the boundary flux computation.
(modules/thermal_hydraulics/test/tests/components/volume_junction_1phase/t_junction_1phase.i)
# Junction between 3 pipes, 1 of which goes to a dead-end. All ends are walls,
# and 1 of the pipes is pressurized higher than the others.
A_big = 1
A_small = 0.5
[GlobalParams]
gravity_vector = '0 0 0'
scaling_factor_1phase = '1 1 1e-5'
scaling_factor_rhoV = 1
scaling_factor_rhouV = 1
scaling_factor_rhovV = 1
scaling_factor_rhowV = 1
scaling_factor_rhoEV = 1e-5
initial_T = 300
initial_vel = 0
n_elems = 20
length = 1
f = 0
fp = fp
rdg_slope_reconstruction = minmod
closures = simple_closures
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 1.4
cv = 725
q = 0
q_prime = 0
p_inf = 0
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe1]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
A = ${A_big}
# This pipe is pressurized higher than the others.
initial_p = 1.05e5
[]
[pipe2]
type = FlowChannel1Phase
position = '1 0 0'
orientation = '1 0 0'
A = ${A_big}
initial_p = 1e5
[]
[pipe3]
type = FlowChannel1Phase
position = '1 0 0'
orientation = '0 1 0'
# This pipe is smaller than the others.
A = ${A_small}
initial_p = 1e5
[]
[junction]
type = VolumeJunction1Phase
connections = 'pipe1:out pipe2:in pipe3:in'
position = '1 0 0'
volume = 0.37
initial_p = 1e5
initial_vel_x = 0
initial_vel_y = 0
initial_vel_z = 0
[]
[pipe1_wall]
type = SolidWall1Phase
input = 'pipe1:in'
[]
[pipe2_wall]
type = SolidWall1Phase
input = 'pipe2:out'
[]
[pipe3_wall]
type = SolidWall1Phase
input = 'pipe3:out'
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
end_time = 5
dt = 0.05
num_steps = 5
abort_on_solve_fail = true
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
nl_max_its = 10
l_tol = 1e-3
l_max_its = 10
[Quadrature]
type = GAUSS
order = SECOND
[]
[]
[Postprocessors]
# mass conservation
[mass_pipes]
type = ElementIntegralVariablePostprocessor
variable = rhoA
block = 'pipe1 pipe2 pipe3'
execute_on = 'initial timestep_end'
[]
[mass_junction]
type = ScalarVariable
variable = junction:rhoV
execute_on = 'initial timestep_end'
[]
[mass_tot]
type = SumPostprocessor
values = 'mass_pipes mass_junction'
execute_on = 'initial timestep_end'
[]
[mass_tot_change]
type = ChangeOverTimePostprocessor
change_with_respect_to_initial = true
postprocessor = mass_tot
compute_relative_change = true
execute_on = 'initial timestep_end'
[]
# energy conservation
[E_pipes]
type = ElementIntegralVariablePostprocessor
variable = rhoEA
block = 'pipe1 pipe2 pipe3'
execute_on = 'initial timestep_end'
[]
[E_junction]
type = ScalarVariable
variable = junction:rhoEV
execute_on = 'initial timestep_end'
[]
[E_tot]
type = SumPostprocessor
values = 'E_pipes E_junction'
execute_on = 'initial timestep_end'
[]
[E_tot_change]
type = ChangeOverTimePostprocessor
change_with_respect_to_initial = true
postprocessor = E_tot
compute_relative_change = true
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
[out]
type = CSV
show = 'mass_tot_change E_tot_change'
[]
[]
(modules/thermal_hydraulics/test/tests/problems/sedov_blast_wave/sedov_blast_wave.i)
# This test problem is the Sedov blast wave test problem,
# which is a Riemann problem with the following parameters:
# * domain = (0,1)
# * gravity = 0
# * EoS: Ideal gas EoS with gamma = 1.4, R = 0.71428571428571428571
# * interface: x = 0.5
# * typical end time: 0.15
# Left initial values:
# * rho = 0.445
# * vel = 0.692
# * p = 3.52874226
# Right initial values:
# * rho = 0.5
# * vel = 0
# * p = 0.571
[GlobalParams]
gravity_vector = '0 0 0'
closures = simple_closures
[]
[Functions]
[p_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.0025 1'
y = '1.591549333333333e+06 6.666666666666668e-09'
[]
[T_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.0025 1'
y = '2.228169066666667e+06 9.333333333333334e-09'
[]
[]
[FluidProperties]
[fp]
type = IdealGasFluidProperties
gamma = 1.66666666666666666667
molar_mass = 11.64024372
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
fp = fp
# geometry
position = '0 0 0'
orientation = '1 0 0'
length = 1.0
n_elems = 400
A = 1.0
# IC
initial_T = T_ic_fn
initial_p = p_ic_fn
initial_vel = 0
f = 0
[]
[left_boundary]
type = SolidWall1Phase
input = 'pipe:in'
[]
[right_boundary]
type = FreeBoundary1Phase
input = 'pipe:out'
[]
[]
[Executioner]
type = Transient
[TimeIntegrator]
type = ExplicitSSPRungeKutta
order = 2
[]
solve_type = LINEAR
l_tol = 1e-4
nl_rel_tol = 1e-20
nl_abs_tol = 1e-8
nl_max_its = 60
# run to t = 0.005
start_time = 0.0
dt = 1e-6
num_steps = 5000
abort_on_solve_fail = true
[]
[Outputs]
file_base = 'sedov_blast_wave'
velocity_as_vector = false
execute_on = 'initial timestep_end'
[out]
type = Exodus
show = 'p T vel'
[]
[]
(modules/thermal_hydraulics/test/tests/components/heat_source_volumetric_1phase/phy.conservation.1phase.i)
# Tests energy conservation for HeatSourceVolumetric component with 1-phase flow
[GlobalParams]
scaling_factor_1phase = '1 1e-2 1e-4'
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[flow_channel]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 10
A = 1
f = 0
fp = fp
closures = simple_closures
initial_T = 310
initial_p = 1e5
initial_vel = 0
[]
[wall1]
type = SolidWall1Phase
input = flow_channel:in
[]
[wall2]
type = SolidWall1Phase
input = flow_channel:out
[]
[heat_source]
type = HeatSourceVolumetric1Phase
flow_channel = flow_channel
q = 1e3
[]
[]
[Postprocessors]
[E_tot]
type = ElementIntegralVariablePostprocessor
variable = rhoEA
execute_on = 'initial timestep_end'
[]
[E_tot_change]
type = ChangeOverTimePostprocessor
change_with_respect_to_initial = true
postprocessor = E_tot
execute_on = 'initial timestep_end'
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
line_search = 'basic'
nl_rel_tol = 0
nl_abs_tol = 1e-6
nl_max_its = 15
l_tol = 1e-3
l_max_its = 10
start_time = 0.0
dt = 0.1
end_time = 1
abort_on_solve_fail = true
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[]
[Outputs]
csv = true
show = 'E_tot_change'
execute_on = 'final'
[]
(modules/thermal_hydraulics/test/tests/misc/initial_from_file/flow_channel/err.non_existent_block.i)
[GlobalParams]
closures = simple_closures
initial_from_file = 'steady_state_out.e'
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 2.35
cv = 1816.0
q = -1.167e6
p_inf = 1.0e9
q_prime = 0
k = 0.5
mu = 281.8e-6
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[asdf]
type = FlowChannel1Phase
fp = fp
# geometry
position = '1 0 0'
orientation = '1 0 0'
length = 1
n_elems = 3
A = 1.907720E-04
D_h = 1.698566E-02
f = 0.1
[]
[inlet]
type = SolidWall1Phase
input = 'asdf:in'
[]
[outlet]
type = SolidWall1Phase
input = 'asdf:out'
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
[]
(modules/thermal_hydraulics/test/tests/components/flow_connection/err.connection_format.i)
[FluidProperties]
[fp]
type = IdealGasFluidProperties
gamma = 1.4
molar_mass = 28.964e-3
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[left_wall]
type = SolidWall1Phase
[]
[pipe]
type = FlowChannel1Phase
fp = fp
closures = simple_closures
position = '0 0 0'
orientation = '1 0 0'
length = 1.0
n_elems = 5
A = 1.0
initial_T = 300
initial_p = 1e5
initial_vel = 0
f = 0
[]
[right_wall]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
nl_rel_tol = 0
nl_abs_tol = 1e-6
nl_max_its = 15
l_tol = 1e-3
l_max_its = 10
start_time = 0.0
dt = 0.01
num_steps = 1
abort_on_solve_fail = true
[Quadrature]
type = GAUSS
order = SECOND
[]
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_1phase/phy.heat_structure_multiple_3eqn.i)
# Tests that energy conservation is satisfied in 1-phase flow when there are
# multiple heat structures are connected to the same pipe.
#
# This problem has 2 heat structures with different material properties and
# initial conditions connected to the same flow channel, which has solid wall
# boundary conditions at both ends. An ideal gas equation of state is used for
# the fluid:
# e(T) = cv * T
# From energy conservation, an analytic expression for the steady-state
# temperature results:
# (rho(p,T)*e(T)*V)_fluid + (rho*cp*T*V)_hs1 + (rho*cp*T*V)_hs2 = constant
# The following are constant:
# V_i domain volumes for flow channel and heat structures
# rho_fluid fluid density (due to conservation of mass)
# rho_hsi heat structure densities
# cp_hsi heat structure specific heats
# Furthermore, all volumes are set equal to 1. Therefore the expression for the
# steady-state temperature is the following:
# T = E0 / C0
# where
# E0 = (rho(p0,T0)*e(T0))_fluid + (rho*cp*T0)_hs1 + (rho*cp*T0)_hs2
# C0 = (rho(p0,T0)*cv)_fluid + (rho*cp)_hs1 + (rho*cp)_hs2
#
# An ideal gas is defined by (gamma, R), and the relation between R and cv is as
# follows:
# cp = gamma * R / (gamma - 1)
# cv = cp / gamma = R / (gamma - 1)
# For the EOS parameters
# gamma = 1.0001
# R = 100 J/kg-K
# the relevant specific heat is
# cv = 1e6 J/kg-K
#
# For the initial conditions
# p = 100 kPa
# T = 300 K
# the density and specific internal energy should be
# rho = 3.3333333333333 kg/m^3
# e = 300000000 J/kg
#
# The following heat structure parameters are used:
# T0_hs1 = 290 K T0_hs2 = 310 K
# rho_hs1 = 8000 kg/m^3 rho_hs2 = 6000 kg/m^3
# cp_hs1 = 500 J/kg-K cp_hs2 = 600 J/kg-K
#
# E0 = 1e9 + 8000 * 500 * 290 + 6000 * 600 * 310
# = 3276000000 J
# C0 = 3.3333333333333e6 + 8000 * 500 + 6000 * 600
# = 10933333.3333333 J/K
# T = E0 / C0
# = 3276000000 / 10933333.3333333
# = 299.6341463414643 K
#
T1 = 290
k1 = 50
rho1 = 8000
cp1 = 500
T2 = 310
k2 = 100
rho2 = 6000
cp2 = 600
[GlobalParams]
gravity_vector = '0 0 0'
initial_T = 300
initial_p = 100e3
initial_vel = 0
scaling_factor_1phase = '1e-3 1e-3 1e-8'
closures = simple_closures
[]
[FluidProperties]
[fp]
type = IdealGasFluidProperties
gamma = 1.0001
molar_mass = 0.083144598
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[SolidProperties]
[hs1_mat]
type = ThermalFunctionSolidProperties
k = ${k1}
rho = ${rho1}
cp = ${cp1}
[]
[hs2_mat]
type = ThermalFunctionSolidProperties
k = ${k2}
rho = ${rho2}
cp = ${cp2}
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 10
A = 1
f = 0
fp = fp
[]
[hs1]
type = HeatStructurePlate
position = '0 -1 0'
orientation = '1 0 0'
length = 1
depth = 1
n_elems = 10
solid_properties = 'hs1_mat'
solid_properties_T_ref = '300'
n_part_elems = '5'
widths = '1'
names = 'solid'
initial_T = ${T1}
[]
[hs2]
type = HeatStructurePlate
position = '0 -1 0'
orientation = '1 0 0'
length = 1
depth = 1
n_elems = 10
solid_properties = 'hs2_mat'
solid_properties_T_ref = '300'
n_part_elems = '5'
widths = '1'
names = 'solid'
initial_T = ${T2}
[]
[ht1]
type = HeatTransferFromHeatStructure1Phase
hs = hs1
hs_side = outer
flow_channel = pipe
Hw = 1e5
P_hf = 0.5
[]
[ht2]
type = HeatTransferFromHeatStructure1Phase
hs = hs2
hs_side = outer
flow_channel = pipe
Hw = 1e5
P_hf = 0.5
[]
[left]
type = SolidWall1Phase
input = 'pipe:in'
[]
[right]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Preconditioning]
[preconditioner]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
end_time = 4e5
dt = 1e4
abort_on_solve_fail = true
solve_type = 'newton'
line_search = 'basic'
nl_rel_tol = 0
nl_abs_tol = 1e-6
nl_max_its = 10
l_tol = 1e-3
l_max_its = 100
[Quadrature]
type = GAUSS
order = SECOND
[]
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu'
[]
[Postprocessors]
[T_steady_state_predicted]
type = FunctionValuePostprocessor
# This value is computed in the input file description
function = 299.6341463414643
[]
[T_fluid_average]
type = ElementAverageValue
variable = T
block = pipe
[]
[relative_error]
type = RelativeDifferencePostprocessor
value1 = T_steady_state_predicted
value2 = T_fluid_average
[]
[]
[Outputs]
[out]
type = CSV
show = 'relative_error'
execute_on = 'final'
[]
[]
(modules/thermal_hydraulics/test/tests/components/shaft_connected_turbine_1phase/jac.test.i)
[GlobalParams]
initial_p = 2e5
initial_T = 500
initial_vel = 100
initial_vel_x = 100
initial_vel_y = 0
initial_vel_z = 0
length = 1
n_elems = 2
A = 0.1
A_ref = 0.1
closures = simple_closures
fp = fp
f = 0.01
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 1.4
cv = 725
p_inf = 0
q = 0
q_prime = 0
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[sw1]
type = SolidWall1Phase
input = fch1:in
[]
[fch1]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
initial_p = 2e6
[]
[turbine]
type = ShaftConnectedTurbine1Phase
inlet = 'fch1:out'
outlet = 'fch2:in'
position = '1 0 0'
volume = 0.3
inertia_coeff = '1 1 1 1'
inertia_const = 1.61397
speed_cr_I = 1e12
speed_cr_fr = 0
tau_fr_coeff = '0 0 12 0'
tau_fr_const = 0
omega_rated = 295
D_wheel = 0.4
head_coefficient = head
power_coefficient = power
[]
[fch2]
type = FlowChannel1Phase
position = '1 0 0'
orientation = '1 0 0'
[]
[sw2]
type = SolidWall1Phase
input = fch2:out
[]
[shaft]
type = Shaft
connected_components = 'turbine'
initial_speed = 300
[]
[]
[Functions]
[head]
type = PiecewiseLinear
x = '0 0.1 1'
y = '0 15 20'
[]
[power]
type = PiecewiseLinear
x = '0 0.1 1'
y = '0 0.05 0.18'
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
dt = 0.001
num_steps = 1
abort_on_solve_fail = true
solve_type = 'newton'
line_search = 'basic'
petsc_options_iname = '-snes_test_err'
petsc_options_value = '1e-9'
automatic_scaling = true
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 15
l_tol = 1e-4
l_max_its = 10
[]
(modules/thermal_hydraulics/test/tests/misc/displaced_components/displaced_components.i)
[GlobalParams]
initial_T = 300
initial_p = 1e5
initial_vel = 0
initial_vel_x = 0
initial_vel_y = 0
initial_vel_z = 0
gravity_vector = '0 0 0'
scaling_factor_1phase = '1.e0 1.e-4 1.e-6'
closures = simple_closures
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe1]
type = FlowChannel1Phase
fp = eos
position = '0 0 0'
orientation = '1 0 0'
A = 1.
D_h = 1.12837916709551
f = 0
length = 1
n_elems = 10
[]
[pipe2]
type = FlowChannel1Phase
fp = eos
position = '0 0 0'
orientation = '0 1 0'
A = 1.
D_h = 1.12837916709551
f = 0
length = 1
n_elems = 10
[]
[pipe3]
type = FlowChannel1Phase
fp = eos
position = '0 0 0'
orientation = '0 0 1'
A = 1.
D_h = 1.12837916709551
f = 0
length = 1
n_elems = 10
[]
[junction]
type = VolumeJunction1Phase
connections = 'pipe1:in pipe2:in pipe3:in'
position = '0 0 0'
volume = 1e-5
[]
[in1]
type = SolidWall1Phase
input = 'pipe1:out'
[]
[in2]
type = SolidWall1Phase
input = 'pipe2:out'
[]
[in3]
type = SolidWall1Phase
input = 'pipe3:out'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
dt = 1e-5
num_steps = 1
abort_on_solve_fail = true
solve_type = 'PJFNK'
nl_rel_tol = 1e-5
nl_abs_tol = 1e-6
nl_max_its = 10
l_tol = 1e-3
l_max_its = 100
[]
[Outputs]
exodus = true
show = 'A'
[]
(modules/thermal_hydraulics/test/tests/output/paraview_component_annotation_map/test.i)
[GlobalParams]
initial_p = 1e5
initial_T = 300
initial_vel = 0
closures = simple_closures
f = 0
fp = fp
gravity_vector = '0 0 0'
[]
[FluidProperties]
[fp]
type = IdealGasFluidProperties
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[SolidProperties]
[m]
type = ThermalFunctionSolidProperties
rho = 1
cp = 1
k = 1
[]
[]
[Components]
[fch1]
type = FlowChannel1Phase
position = '-0.1 0 0'
orientation = '0 0 1'
length = 1
A = 1
n_elems = 10
[]
[wall1i]
type = SolidWall1Phase
input = fch1:in
[]
[wall1o]
type = SolidWall1Phase
input = fch1:out
[]
[hs1]
type = HeatStructureCylindrical
position = '-0.2 0 0'
orientation = '0 0 1'
length = 1
n_elems = 10
names = '1 2'
widths = '0.2 0.3'
solid_properties = 'm m'
solid_properties_T_ref = '300 300'
n_part_elems = '1 1'
rotation = 90
[]
[fch2]
type = FlowChannel1Phase
position = '0.1 0 0'
orientation = '0 0 1'
length = '0.6 0.4'
A = 1
n_elems = '5 5'
axial_region_names = 'longer shorter'
[]
[wall2i]
type = SolidWall1Phase
input = fch2:in
[]
[wall2o]
type = SolidWall1Phase
input = fch2:out
[]
[hs2]
type = HeatStructureCylindrical
position = '0.2 0 0'
orientation = '0 0 1'
length = '0.6 0.4'
axial_region_names = 'longer shorter'
n_elems = '5 5'
names = '1 2'
widths = '0.2 0.3'
solid_properties = 'm m'
solid_properties_T_ref = '300 300'
n_part_elems = '1 1'
rotation = 270
[]
[]
[Executioner]
type = Transient
dt = 0.1
num_steps = 1
automatic_scaling = true
nl_abs_tol = 1e-7
[]
[Outputs]
[map]
type = ParaviewComponentAnnotationMap
[]
[]
(modules/thermal_hydraulics/test/tests/components/elbow_pipe_1phase/phy.position.i)
[GlobalParams]
gravity_vector = '0 -9.81 0'
initial_T = 310
initial_p = 1e5
initial_vel = 0
scaling_factor_1phase = '1e0 1e-2 1e-4'
closures = simple_closures
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 2.35
cv = 1816.0
q = -1.167e6
p_inf = 1.0e9
q_prime = 0
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = ElbowPipe1Phase
# geometry
position = '0 0 0'
orientation = '1 0 0'
start_angle = 270
end_angle = 360
radius = 0.25
n_elems = 50
# d = 0.1 m
A = 7.8539816340e-03
D_h = 1.0000000000e-01
f = 0.1
fp = fp
[]
[inlet]
type = SolidWall1Phase
input = 'pipe:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
dt = 1e-2
num_steps = 1
abort_on_solve_fail = true
solve_type = 'PJFNK'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
nl_max_its = 30
l_tol = 1e-2
l_max_its = 30
[]
[Outputs]
exodus = true
show = 'A'
[]
(modules/thermal_hydraulics/test/tests/postprocessors/heat_rate_convection_1phase/heat_rate_convection_1phase.i)
# Gold value should be the following:
# htc * (T_wall - T) * P_hf * L
T_wall = 350
T = 300
htc = 50
P_hf = 0.3
L = 2.0
[GlobalParams]
gravity_vector = '0 0 0'
closures = simple_closures
[]
[FluidProperties]
[fp]
type = IdealGasFluidProperties
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[left_wall]
type = SolidWall1Phase
input = 'pipe:in'
[]
[pipe]
type = FlowChannel1Phase
fp = fp
position = '0 0 0'
orientation = '1 0 0'
length = ${L}
n_elems = 10
A = 1
f = 0.
initial_p = 1e6
initial_T = ${T}
initial_vel = 0
[]
[right_wall]
type = SolidWall1Phase
input = 'pipe:out'
[]
[heat_flux]
type = HeatTransferFromSpecifiedTemperature1Phase
flow_channel = pipe
Hw = ${htc}
T_wall = ${T_wall}
P_hf = ${P_hf}
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = bdf2
start_time = 0.0
dt = 0.01
num_steps = 0
abort_on_solve_fail = true
solve_type = 'PJFNK'
line_search = 'basic'
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
nl_max_its = 10
l_tol = 1e-3
l_max_its = 10
[]
[Postprocessors]
[heat_rate]
type = ADHeatRateConvection1Phase
P_hf = P_hf
execute_on = 'INITIAL'
[]
[]
[Outputs]
csv = true
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_1phase/phy.T_wall_transfer_3eqn_y.i)
# Testing that T_solid gets properly projected onto a pipe
# That's why Hw in pipe1 is set to 0, so we do not have any heat exchange
# Note that the pipe and the heat structure have an opposite orientation, which
# is crucial for this test.
[GlobalParams]
initial_p = 1.e5
initial_vel = 0.
initial_T = 300.
closures = simple_closures
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[SolidProperties]
[wall-mat]
type = ThermalFunctionSolidProperties
k = 100.0
rho = 100.0
cp = 100.0
[]
[]
[Functions]
[T_init]
type = ParsedFunction
expression = '290 + sin((1 - y) * pi * 1.4)'
[]
[]
[Components]
[pipe1]
type = FlowChannel1Phase
position = '0.2 0 0'
orientation = '0 1 0'
length = 1
n_elems = 50
A = 9.6858407346e-01
D_h = 6.1661977237e+00
f = 0.01
fp = eos
[]
[hs]
type = HeatStructureCylindrical
position = '0.1 1 0'
orientation = '0 -1 0'
length = 1
n_elems = 50
solid_properties = 'wall-mat'
solid_properties_T_ref = '300'
n_part_elems = 3
widths = '0.1'
names = 'wall'
initial_T = T_init
[]
[hxconn]
type = HeatTransferFromHeatStructure1Phase
hs = hs
hs_side = outer
flow_channel = pipe1
Hw = 0
P_hf = 6.2831853072e-01
[]
[inlet]
type = SolidWall1Phase
input = 'pipe1:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe1:out'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
dt = 1
abort_on_solve_fail = true
solve_type = 'NEWTON'
line_search = 'basic'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-3
l_max_its = 300
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
start_time = 0.0
num_steps = 1
[]
[Outputs]
[out]
type = Exodus
show = 'T_wall T_solid'
[]
print_linear_residuals = false
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_flux_1phase/phy.energy_heatflux_ss_1phase.i)
# This test tests conservation of energy at steady state for 1-phase flow when a
# heat flux is specified. Conservation is checked by comparing the integral of
# the heat flux against the difference of the boundary fluxes.
[GlobalParams]
initial_p = 7.0e6
initial_vel = 0
initial_T = 513
gravity_vector = '0.0 0.0 0.0'
closures = simple_closures
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '0 0 1'
length = 3.66
n_elems = 10
A = 1.907720E-04
D_h = 1.698566E-02
f = 0.0
fp = eos
[]
[ht_pipe]
type = HeatTransferFromHeatFlux1Phase
flow_channel = pipe
q_wall = 1.0e5
Hw = 1.0e4
P_hf = 4.4925e-2
[]
[inlet]
type = SolidWall1Phase
input = 'pipe:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Postprocessors]
[E]
type = ElementIntegralVariablePostprocessor
variable = rhoEA
execute_on = 'initial timestep_end'
[]
[E_change]
type = ChangeOverTimePostprocessor
postprocessor = E
execute_on = 'initial timestep_end'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
abort_on_solve_fail = true
dt = 1
solve_type = 'NEWTON'
line_search = 'basic'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-7
nl_max_its = 50
l_tol = 1e-3
l_max_its = 60
start_time = 0
num_steps = 10
[]
[Outputs]
[out]
type = CSV
show = 'E_change'
[]
[console]
type = Console
show = 'E_change'
[]
[]
(modules/thermal_hydraulics/test/tests/components/pump_1phase/pump_mass_energy_conservation.i)
# This test tests that mass and energy are conserved.
dt = 1.e-2
head = 95.
volume = 1.
A = 1.
g = 9.81
[GlobalParams]
initial_T = 393.15
initial_vel = 0
f = 0
fp = fp
scaling_factor_1phase = '0.04 0.04 0.04e-5'
closures = simple_closures
A = ${A}
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[wall_in]
type = SolidWall1Phase
input = 'pipe1:in'
[]
[pipe1]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
initial_p = 1.7E+07
n_elems = 10
gravity_vector = '0 0 0'
[]
[pump]
type = Pump1Phase
connections = 'pipe1:out pipe2:in'
position = '1.02 0 0'
initial_p = 1.3e+07
scaling_factor_rhoEV = 1e-5
head = ${head}
A_ref = ${A}
volume = ${volume}
initial_vel_x = 0
initial_vel_y = 0
initial_vel_z = 0
[]
[pipe2]
type = FlowChannel1Phase
position = '1.04 0 0'
orientation = '1 0 0'
length = 1
initial_p = 1.3e+07
n_elems = 10
gravity_vector = '0 0 0'
[]
[wall_out]
type = SolidWall1Phase
input = 'pipe2:out'
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
start_time = 0
dt = ${dt}
num_steps = 6
abort_on_solve_fail = true
solve_type = 'PJFNK'
line_search = 'basic'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 15
l_tol = 1e-4
l_max_its = 10
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
[Quadrature]
type = GAUSS
order = SECOND
[]
[]
[Postprocessors]
# mass conservation
[mass_pipes]
type = ElementIntegralVariablePostprocessor
variable = rhoA
block = 'pipe1 pipe2'
execute_on = 'initial timestep_end'
[]
[mass_pump]
type = ScalarVariable
variable = pump:rhoV
execute_on = 'initial timestep_end'
[]
[mass_tot]
type = SumPostprocessor
values = 'mass_pipes mass_pump'
execute_on = 'initial timestep_end'
[]
[mass_tot_change]
type = ChangeOverTimePostprocessor
postprocessor = mass_tot
change_with_respect_to_initial = true
compute_relative_change = true
execute_on = 'initial timestep_end'
[]
# energy conservation
[E_pipes]
type = ElementIntegralVariablePostprocessor
variable = rhoEA
block = 'pipe1 pipe2'
execute_on = 'initial timestep_end'
[]
[E_pump]
type = ScalarVariable
variable = pump:rhoEV
execute_on = 'initial timestep_end'
[]
[E_tot]
type = LinearCombinationPostprocessor
pp_coefs = '1 1'
pp_names = 'E_pipes E_pump'
execute_on = 'initial timestep_end'
[]
[S_energy]
type = FunctionValuePostprocessor
function = S_energy_fcn
execute_on = 'initial timestep_end'
[]
[E_change]
type = ChangeOverTimePostprocessor
postprocessor = E_tot
execute_on = 'initial timestep_end'
[]
# this should also execute on initial, this value is
# lagged by one timestep as a workaround to moose issue #13262
[E_conservation]
type = FunctionValuePostprocessor
function = E_conservation_fcn
execute_on = 'timestep_end'
[]
[]
[Functions]
[S_energy_fcn]
type = ParsedFunction
expression = 'rhouV * g * head * A / volume'
symbol_names = 'rhouV g head A volume'
symbol_values = 'pump:rhouV ${g} ${head} ${A} ${volume}'
[]
[E_conservation_fcn]
type = ParsedFunction
expression = '(E_change - S_energy * dt) / E_tot'
symbol_names = 'E_change S_energy dt E_tot'
symbol_values = 'E_change S_energy ${dt} E_tot'
[]
[]
[Outputs]
[out]
type = CSV
execute_on = 'FINAL'
show = 'mass_tot_change E_conservation'
[]
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_3d/phy.conservation.i)
# Testing energy conservation with fluid at rest
P_hf = ${fparse 0.6 * sin (pi/24)}
[GlobalParams]
gravity_vector = '0 0 0'
[]
[Materials]
[mat]
type = ADGenericConstantMaterial
block = 'blk:0'
prop_names = 'density specific_heat thermal_conductivity'
prop_values = '1000 100 30'
[]
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 2.35
cv = 1816.0
q = -1.167e6
p_inf = 1.0e9
q_prime = 0
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Functions]
[T_init]
type = ParsedFunction
expression = '1000*y+300+30*z'
[]
[]
[Components]
[in1]
type = SolidWall1Phase
input = 'fch1:in'
[]
[fch1]
type = FlowChannel1Phase
position = '0.15 0 0'
orientation = '0 0 1'
fp = fp
n_elems = 10
length = 1
initial_T = 300
initial_p = 1.01e5
initial_vel = 0
closures = simple_closures
A = 0.00314159
f = 0.0
[]
[out1]
type = SolidWall1Phase
input = 'fch1:out'
[]
[in2]
type = SolidWall1Phase
input = 'fch2:in'
[]
[fch2]
type = FlowChannel1Phase
position = '0 0.15 0'
orientation = '0 0 1'
fp = fp
n_elems = 10
length = 1
initial_T = 350
initial_p = 1.01e5
initial_vel = 0
closures = simple_closures
A = 0.00314159
f = 0.0
[]
[out2]
type = SolidWall1Phase
input = 'fch2:out'
[]
[blk]
type = HeatStructureFromFile3D
file = mesh.e
position = '0 0 0'
initial_T = T_init
[]
[ht]
type = HeatTransferFromHeatStructure3D1Phase
flow_channels = 'fch1 fch2'
hs = blk
boundary = blk:rmin
Hw = 10000
P_hf = ${P_hf}
[]
[]
[Postprocessors]
[energy_hs]
type = ADHeatStructureEnergy3D
block = blk:0
execute_on = 'INITIAL TIMESTEP_END'
[]
[energy_fch1]
type = ElementIntegralVariablePostprocessor
block = fch1
variable = rhoEA
execute_on = 'INITIAL TIMESTEP_END'
[]
[energy_fch2]
type = ElementIntegralVariablePostprocessor
block = fch2
variable = rhoEA
execute_on = 'INITIAL TIMESTEP_END'
[]
[total_energy]
type = SumPostprocessor
values = 'energy_fch1 energy_fch2 energy_hs'
execute_on = 'INITIAL TIMESTEP_END'
[]
[energy_change]
type = ChangeOverTimePostprocessor
change_with_respect_to_initial = true
postprocessor = total_energy
compute_relative_change = true
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = bdf2
dt = 0.1
num_steps = 10
solve_type = NEWTON
line_search = basic
abort_on_solve_fail = true
nl_abs_tol = 1e-8
[]
[Outputs]
file_base = 'phy.conservation'
[csv]
type = CSV
show = 'energy_change'
execute_on = 'FINAL'
[]
[]
(modules/thermal_hydraulics/test/tests/components/deprecated/heat_source_volumetric.i)
[GlobalParams]
scaling_factor_1phase = '1 1e-2 1e-4'
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[flow_channel]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 10
A = 1
f = 0
fp = fp
closures = simple_closures
initial_T = 310
initial_p = 1e5
initial_vel = 0
[]
[wall1]
type = SolidWall1Phase
input = flow_channel:in
[]
[wall2]
type = SolidWall1Phase
input = flow_channel:out
[]
[heat_source]
type = HeatSourceVolumetric
flow_channel = flow_channel
q = 1e3
[]
[]
[Postprocessors]
[E_tot]
type = ElementIntegralVariablePostprocessor
variable = rhoEA
execute_on = 'initial timestep_end'
[]
[E_tot_change]
type = ChangeOverTimePostprocessor
change_with_respect_to_initial = true
postprocessor = E_tot
execute_on = 'initial timestep_end'
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
line_search = 'basic'
nl_rel_tol = 0
nl_abs_tol = 1e-6
nl_max_its = 15
l_tol = 1e-3
l_max_its = 10
start_time = 0.0
dt = 0.1
end_time = 1
abort_on_solve_fail = true
[]
(modules/thermal_hydraulics/test/tests/base/component_groups/test.i)
[GlobalParams]
closures = simple_closures
initial_p = 1e6
initial_T = 300
initial_vel = 0
[]
[FluidProperties]
[fp_liquid]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[SolidProperties]
[hx:wall]
type = ThermalFunctionSolidProperties
k = 1
cp = 1
rho = 1
[]
[]
[Components]
[pri_inlet]
type = SolidWall1Phase
input = 'hx/primary:out'
[]
[pri_outlet]
type = SolidWall1Phase
input = 'hx/primary:in'
[]
# heat exchanger
[hx]
n_elems = 2
length = 1
[primary]
type = FlowChannel1Phase
position = '0 1 0'
orientation = '1 0 0'
n_elems = ${n_elems}
length = ${length}
A = 1
f = 1
fp = fp_liquid
[]
[wall]
type = HeatStructurePlate
position = '0 0 0'
orientation = '1 0 0'
solid_properties = 'hx:wall'
solid_properties_T_ref = '300'
n_elems = ${n_elems}
length = ${length}
n_part_elems = 1
names = 0
widths = 1
depth = 1
initial_T = 300
[]
[ht_primary]
type = HeatTransferFromHeatStructure1Phase
hs = hx/wall
flow_channel = hx/primary
hs_side = outer
Hw = 0
[]
[ht_secondary]
type = HeatTransferFromHeatStructure1Phase
hs = hx/wall
flow_channel = hx/secondary
hs_side = inner
Hw = 0
[]
[secondary]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
n_elems = ${n_elems}
length = ${length}
A = 1
f = 1
fp = fp_liquid
[]
[]
[sec_inlet]
type = SolidWall1Phase
input = 'hx/secondary:out'
[]
[sec_outlet]
type = SolidWall1Phase
input = 'hx/secondary:in'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Outputs]
[console]
type = Console
system_info = ''
enable = false
[]
[]
[Debug]
print_component_loops = true
[]
(modules/thermal_hydraulics/test/tests/closures/none_1phase/phy.test.i)
# Using no closure option and setting up custom materials that computes f_D and Hw.
# In this case, these custom materials are computing just constant values
[GlobalParams]
gravity_vector = '0 0 0'
scaling_factor_1phase = '1 1 1e-8'
initial_vel = 0
initial_p = 1e5
initial_T = 300
closures = no_closures
[]
[FluidProperties]
[water]
type = StiffenedGasFluidProperties
gamma = 2.35
cv = 1816.0
q = -1.167e6
p_inf = 1.0e9
q_prime = 0
[]
[]
[Closures]
[no_closures]
type = Closures1PhaseNone
[]
[]
[Materials]
[f_wall_mat]
type = ADGenericConstantMaterial
block = 'pipe'
prop_names = 'f_D'
prop_values = '0.123'
[]
[htc_wall_mat]
type = ADGenericConstantMaterial
block = 'pipe'
prop_names = 'Hw'
prop_values = '4.321'
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
fp = water
position = '0 0 0'
orientation = '1 0 0'
A = 1e-4
length = 1
n_elems = 10
[]
[inlet]
type = SolidWall1Phase
input = 'pipe:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe:out'
[]
[ht]
type = HeatTransferFromSpecifiedTemperature1Phase
flow_channel = pipe
T_wall = 300
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
num_steps = 2
dt = 1e-6
abort_on_solve_fail = true
solve_type = 'PJFNK'
line_search = basic
nl_rel_tol = 1e-9
nl_abs_tol = 1e-8
nl_max_its = 5
l_tol = 1e-3
l_max_its = 10
[]
[Outputs]
[out]
type = Exodus
output_material_properties = true
show_material_properties = 'f_D Hw'
show = 'f_D Hw'
[]
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_flux_1phase/phy.q_wall_multiple_3eqn.i)
# Tests that energy conservation is satisfied in 1-phase flow when there are
# multiple heat transfer components connected to the same pipe, using specified
# wall heat flux.
#
# This problem has 2 wall heat flux sources, each with differing parameters.
# Solid wall boundary conditions are imposed such that there should be no flow,
# and the solution should be spatially uniform. With no other sources, the
# energy balance is
# (rho*e*A)^{n+1} = (rho*e*A)^n + dt * [(q1*P1) + (q2*P2)]
# Note that spatial integration is dropped here due to spatial uniformity, and
# E has been replaced with e since velocity should be zero.
#
# For the initial conditions
# p = 100 kPa
# T = 300 K
# the density and specific internal energy should be
# rho = 1359.792245 kg/m^3
# e = 1.1320645935e+05 J/kg
#
# With the following heat source parameters:
# q1 = 10 MW/m^2 P1 = 0.2 m
# q2 = 20 MW/m^2 P2 = 0.4 m
# and A = 1 m^2 and dt = 2 s, the new energy solution value should be
# (rho*e*A)^{n+1} = 1359.792245 * 1.1320645935e+05 * 1 + 2 * (10e6 * 0.2 + 20e6 * 0.4)
# = 173937265.50803775 J/m
#
[GlobalParams]
gravity_vector = '0 0 0'
initial_T = 300
initial_p = 100e3
initial_vel = 0
closures = simple_closures
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
fp = fp
position = '0 0 0'
orientation = '1 0 0'
A = 1
f = 0
# length and number of elements should be arbitrary for the test
length = 10
n_elems = 1
[]
[ht1]
type = HeatTransferFromHeatFlux1Phase
flow_channel = pipe
q_wall = 10e6
P_hf = 0.2
Hw = 1
[]
[ht2]
type = HeatTransferFromHeatFlux1Phase
flow_channel = pipe
q_wall = 20e6
P_hf = 0.4
Hw = 1
[]
[left]
type = SolidWall1Phase
input = 'pipe:in'
[]
[right]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Preconditioning]
[preconditioner]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
dt = 2
num_steps = 1
abort_on_solve_fail = true
solve_type = 'NEWTON'
line_search = 'basic'
nl_rel_tol = 0
nl_abs_tol = 1e-6
nl_max_its = 5
l_tol = 1e-10
l_max_its = 10
[]
[Postprocessors]
[rhoEA_predicted]
type = ElementAverageValue
variable = rhoEA
block = pipe
[]
# This is included to test the naming of heat transfer quantities in the case
# of multiple heat transfers connected to a flow channel. This PP is not used
# in output but just included to ensure that an error does not occur (which is
# the case if the expected material property name does not exist).
# See https://github.com/idaholab/moose/issues/26286.
[q_wall_name_check]
type = ADElementAverageMaterialProperty
mat_prop = 'q_wall:2'
[]
[]
[Outputs]
[out]
type = CSV
show = 'rhoEA_predicted'
execute_on = 'final'
[]
[]
(modules/thermal_hydraulics/test/tests/problems/woodward_colella_blast_wave/woodward_colella_blast_wave.i)
# Woodward-Colella blast wave problem
[GlobalParams]
gravity_vector = '0 0 0'
closures = simple_closures
[]
[Functions]
[p_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.1 0.9 1.0'
y = '1000 0.01 100'
[]
[T_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.1 0.9 1.0'
y = '1400 0.014 140'
[]
[]
[FluidProperties]
[fp]
type = IdealGasFluidProperties
gamma = 1.4
molar_mass = 11.64024372
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
fp = fp
# geometry
position = '0 0 0'
orientation = '1 0 0'
length = 1.0
n_elems = 500
A = 1.0
# IC
initial_T = T_ic_fn
initial_p = p_ic_fn
initial_vel = 0
f = 0
[]
[left_wall]
type = SolidWall1Phase
input = 'pipe:in'
[]
[right_wall]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Executioner]
type = Transient
[TimeIntegrator]
type = ExplicitSSPRungeKutta
order = 2
[]
solve_type = LINEAR
l_tol = 1e-4
nl_rel_tol = 1e-20
nl_abs_tol = 1e-8
nl_max_its = 60
# run to t = 0.038
start_time = 0.0
dt = 1e-5
num_steps = 3800
abort_on_solve_fail = true
[]
[Outputs]
file_base = 'woodward_colella_blast_wave'
velocity_as_vector = false
execute_on = 'initial timestep_end'
[out]
type = Exodus
show = 'p T vel'
[]
[]
(modules/thermal_hydraulics/test/tests/components/solid_wall_1phase/jacobian.i)
[GlobalParams]
initial_p = 9.5e4
initial_T = 310
initial_vel = 2
gravity_vector = '9.81 0 0'
closures = simple_closures
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
fp = eos
# geometry
position = '0 0 0'
orientation = '1 0 0'
A = 1e-4
D_h = 1.12837916709551
f = 0.0
length = 1
n_elems = 3
[]
[inlet]
type = SolidWall1Phase
input = 'pipe:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1
num_steps = 1
abort_on_solve_fail = true
solve_type = 'NEWTON'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-8
nl_max_its = 30
l_tol = 1e-3
l_max_its = 100
petsc_options_iname = '-snes_type -snes_test_err'
petsc_options_value = 'test 1e-11'
[]
(modules/thermal_hydraulics/test/tests/components/solid_wall_1phase/phy.3eqn.i)
[GlobalParams]
gravity_vector = '0 0 0'
initial_p = 101325
initial_T = 300
initial_vel = 0
scaling_factor_1phase = '1 1 1e-5'
closures = simple_closures
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 10
A = 1.0000000000e-04
D_h = 1.1283791671e-02
f = 0.0
fp = eos
[]
[inlet]
type = SolidWall1Phase
input = 'pipe:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
dt = 1e-4
num_steps = 10
abort_on_solve_fail = true
solve_type = 'NEWTON'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 30
l_tol = 1e-3
l_max_its = 100
[]
[Outputs]
[out]
type = Exodus
[]
velocity_as_vector = false
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_1phase/phy.T_wall_transfer_3eqn_z.i)
# Testing that T_solid gets properly projected onto a pipe
# That's why Hw in pipe1 is set to 0, so we do not have any heat exchange
# Note that the pipe and the heat structure have an opposite orientation, which
# is crucial for this test.
[GlobalParams]
initial_p = 1.e5
initial_vel = 0.
initial_T = 300.
closures = simple_closures
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[SolidProperties]
[wall-mat]
type = ThermalFunctionSolidProperties
k = 100.0
rho = 100.0
cp = 100.0
[]
[]
[Functions]
[T_init]
type = ParsedFunction
expression = '290 + sin((1 - z) * pi * 1.4)'
[]
[]
[Components]
[pipe1]
type = FlowChannel1Phase
position = '0.2 0 0'
orientation = '0 0 1'
length = 1
n_elems = 50
A = 9.6858407346e-01
D_h = 6.1661977237e+00
f = 0.01
fp = eos
[]
[hs]
type = HeatStructureCylindrical
position = '0.1 0 1'
orientation = '0 0 -1'
length = 1
n_elems = 50
rotation = 90
solid_properties = 'wall-mat'
solid_properties_T_ref = '300'
n_part_elems = 2
widths = '0.1'
names = 'wall'
initial_T = T_init
[]
[hxconn]
type = HeatTransferFromHeatStructure1Phase
hs = hs
hs_side = outer
flow_channel = pipe1
Hw = 0
P_hf = 6.2831853072e-01
[]
[inlet]
type = SolidWall1Phase
input = 'pipe1:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe1:out'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
dt = 1
abort_on_solve_fail = true
solve_type = 'NEWTON'
line_search = 'basic'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-3
l_max_its = 300
start_time = 0.0
num_steps = 1
[]
[Outputs]
[out]
type = Exodus
show = 'T_wall T_solid'
[]
print_linear_residuals = false
[]
(modules/thermal_hydraulics/test/tests/base/simulation/loop_identification.i)
# This test tests the loop identification function, which creates a map of component
# names to a loop name. "Loops" are defined to be sets of components which are
# physically connected - heat exchanger connections do not constitute physical
# connections in this sense. Note that this test is not meant to actually perform
# any physical computations, so dummy values are provided for the required parameters.
#
# The test configuration for this test is the following:
#
# pipe1 -> corechannel:pipe -> pipe2 -> hx:primary -> pipe1
# j1 j2 j3 j4
#
# inlet -> hx:secondary -> outlet
#
# This test uses the command-line option "--print-component-loops" to print out
# the lists of components in each loop, with the desired output being the
# following:
#
# Loop 1:
#
# corechannel:pipe
# hx:primary
# j1
# j2
# j3
# j4
# pipe1
# pipe2
#
# Loop 2:
#
# hx:secondary
# inlet
# outlet
[GlobalParams]
closures = simple_closures
initial_p = 1e6
initial_T = 300
initial_vel = 0
[]
[FluidProperties]
[fp_liquid]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[SolidProperties]
[hx:wall]
type = ThermalFunctionSolidProperties
k = 1
cp = 1
rho = 1
[]
[]
[Components]
# PRIMARY LOOP
[pipe1]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 1
A = 1
f = 1
fp = fp_liquid
[]
[j1]
type = JunctionOneToOne1Phase
connections = 'pipe1:out corechannel:in'
[]
[corechannel]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 1
A = 1
f = 1
fp = fp_liquid
[]
[j2]
type = JunctionOneToOne1Phase
connections = 'corechannel:out pipe2:in'
[]
[pipe2]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 1
A = 1
f = 1
fp = fp_liquid
[]
[j3]
type = JunctionOneToOne1Phase
connections = 'pipe2:out hx:primary:in'
[]
[hx:primary]
type = FlowChannel1Phase
position = '0 1 0'
orientation = '1 0 0'
length = 1
n_elems = 1
A = 1
f = 1
fp = fp_liquid
[]
[j4]
type = JunctionOneToOne1Phase
connections = 'hx:primary:out pipe1:in'
[]
# HEAT EXCHANGER
[hs]
type = HeatStructurePlate
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 1
solid_properties = hx:wall
solid_properties_T_ref = '300'
n_part_elems = 1
names = 0
widths = 1
depth = 1
initial_T = 300
[]
[ht_primary]
type = HeatTransferFromHeatStructure1Phase
hs = hs
flow_channel = hx:primary
hs_side = outer
Hw = 0
[]
[ht_secondary]
type = HeatTransferFromHeatStructure1Phase
hs = hs
flow_channel = hx:secondary
hs_side = inner
Hw = 0
[]
# SECONDARY LOOP
[inlet]
type = SolidWall1Phase
input = 'hx:secondary:out'
[]
[hx:secondary]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 1
A = 1
f = 1
fp = fp_liquid
[]
[outlet]
type = SolidWall1Phase
input = 'hx:secondary:in'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Outputs]
[console]
type = Console
system_info = ''
enable = false
[]
[]
(modules/thermal_hydraulics/test/tests/components/shaft_connected_compressor_1phase/jac.test.i)
[GlobalParams]
initial_p = 1e5
initial_T = 300
initial_vel = 0
initial_vel_x = 0
initial_vel_y = 0
initial_vel_z = 0
length = 1
n_elems = 1
A = 0.1
A_ref = 0.1
closures = simple_closures
fp = fp
f = 0
scaling_factor_1phase = '1e-2 1e-2 1e-5'
scaling_factor_rhoEV = 1e-5
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 1.4
cv = 725
p_inf = 0
q = 0
q_prime = 0
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[sw1]
type = SolidWall1Phase
input = fch1:in
[]
[fch1]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
[]
[compressor]
type = ShaftConnectedCompressor1Phase
inlet = 'fch1:out'
outlet = 'fch2:in'
position = '1 0 0'
volume = 0.3
inertia_coeff = '1 1 1 1'
inertia_const = 1.61397
speed_cr_I = 1e12
speed_cr_fr = 0
tau_fr_coeff = '0 0 9.084 0'
tau_fr_const = 0
omega_rated = 1476.6
mdot_rated = 2
rho0_rated = 1.3
c0_rated = 350
speeds = '-1.0 0.0 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.5'
Rp_functions = 'Rp00 Rp00 Rp04 Rp05 Rp06 Rp07 Rp08 Rp09 Rp10 Rp11 Rp11'
eff_functions = 'eff00 eff00 eff04 eff05 eff06 eff07 eff08 eff09 eff10 eff11 eff11'
[]
[fch2]
type = FlowChannel1Phase
position = '1 0 0'
orientation = '1 0 0'
[]
[sw2]
type = SolidWall1Phase
input = fch2:out
[]
[shaft]
type = Shaft
connected_components = 'compressor'
initial_speed = 1476.6
[]
[]
[Functions]
[Rp00]
type = PiecewiseLinear
x = '0 0.3736 0.4216'
y = '1 0.9701 0.9619'
[]
[eff00]
type = PiecewiseLinear
x = '0 0.3736 0.4216'
y = '0.001 0.8941 0.6641'
[]
[Rp04]
type = PiecewiseLinear
x = '0.3736 0.3745 0.3753 0.3762 0.3770 0.3919 0.4067 0.4216 0.4826'
y = '1.0789 1.0779 1.0771 1.0759 1.0749 1.0570 1.0388 1.0204 0.9450'
[]
[eff04]
type = PiecewiseLinear
x = '0.3736 0.3745 0.3753 0.3762 0.3770 0.3919 0.4067 0.4216 0.4826'
y = '0.8941 0.8929 0.8925 0.8915 0.8901 0.8601 0.7986 0.6641 0.1115'
[]
[Rp05]
type = PiecewiseLinear
x = '0.3736 0.4026 0.4106 0.4186 0.4266 0.4346 0.4426 0.4506 0.4586 0.4666 0.4746 0.4826 0.5941'
y = '1.2898 1.2442 1.2316 1.2189 1.2066 1.1930 1.1804 1.1677 1.1542 1.1413 1.1279 1.1150 0.9357'
[]
[eff05]
type = PiecewiseLinear
x = '0.3736 0.4026 0.4106 0.4186 0.4266 0.4346 0.4426 0.4506 0.4586 0.4666 0.4746 0.4826 0.5941'
y = '0.9281 0.9263 0.9258 0.9244 0.9226 0.9211 0.9195 0.9162 0.9116 0.9062 0.8995 0.8914 0.7793'
[]
[Rp06]
type = PiecewiseLinear
x = '0.4026 0.4613 0.4723 0.4834 0.4945 0.5055 0.5166 0.5277 0.5387 0.5609 0.5719 0.583 0.5941 0.7124'
y = '1.5533 1.4438 1.4232 1.4011 1.3793 1.3589 1.3354 1.3100 1.2867 1.2376 1.2131 1.1887 1.1636 0.896'
[]
[eff06]
type = PiecewiseLinear
x = '0.4026 0.4613 0.4723 0.4834 0.4945 0.5055 0.5166 0.5277 0.5387 0.5609 0.5719 0.583 0.5941 0.7124'
y = '0.9148 0.9255 0.9275 0.9277 0.9282 0.9295 0.9290 0.9269 0.9242 0.9146 0.9080 0.900 0.8920 0.8061'
[]
[Rp07]
type = PiecewiseLinear
x = '0.4613 0.5447 0.5587 0.5726 0.5866 0.6006 0.6145 0.6285 0.6425 0.6565 0.6704 0.6844 0.6984 0.7124 0.8358'
y = '1.8740 1.6857 1.6541 1.6168 1.5811 1.5430 1.5067 1.4684 1.4292 1.3891 1.3479 1.3061 1.2628 1.2208 0.8498'
[]
[eff07]
type = PiecewiseLinear
x = '0.4613 0.5447 0.5587 0.5726 0.5866 0.6006 0.6145 0.6285 0.6425 0.6565 0.6704 0.6844 0.6984 0.7124 0.8358'
y = '0.9004 0.9232 0.9270 0.9294 0.9298 0.9312 0.9310 0.9290 0.9264 0.9225 0.9191 0.9128 0.9030 0.8904 0.7789'
[]
[Rp08]
type = PiecewiseLinear
x = '0.5447 0.6638 0.6810 0.6982 0.7154 0.7326 0.7498 0.7670 0.7842 0.8014 0.8186 0.8358 0.9702'
y = '2.3005 1.9270 1.8732 1.8195 1.7600 1.7010 1.6357 1.5697 1.5019 1.4327 1.3638 1.2925 0.7347'
[]
[eff08]
type = PiecewiseLinear
x = '0.5447 0.6638 0.6810 0.6982 0.7154 0.7326 0.7498 0.7670 0.7842 0.8014 0.8186 0.8358 0.9702'
y = '0.9102 0.9276 0.9301 0.9313 0.9319 0.9318 0.9293 0.9256 0.9231 0.9153 0.9040 0.8933 0.8098'
[]
[Rp09]
type = PiecewiseLinear
x = '0.6638 0.7762 0.7938 0.8115 0.8291 0.8467 0.8644 0.8820 0.8997 0.9173 0.9349 0.9526 0.9702 1.1107 1.25120'
y = '2.6895 2.2892 2.2263 2.1611 2.0887 2.0061 1.9211 1.8302 1.7409 1.6482 1.5593 1.4612 1.3586 0.5422 -0.2742'
[]
[eff09]
type = PiecewiseLinear
x = '0.6638 0.7762 0.7938 0.8115 0.8291 0.8467 0.8644 0.8820 0.8997 0.9173 0.9349 0.9526 0.9702 1.1107 1.2512'
y = '0.8961 0.9243 0.9288 0.9323 0.9330 0.9325 0.9319 0.9284 0.9254 0.9215 0.9134 0.9051 0.8864 0.7380 0.5896'
[]
[Rp10]
type = PiecewiseLinear
x = '0.7762 0.9255 0.9284 0.9461 0.9546 0.9816 0.9968 1.0170 1.039 1.0525 1.0812 1.0880 1.1056 1.1107 1.2511'
y = '3.3162 2.6391 2.6261 2.5425 2.5000 2.3469 2.2521 2.1211 1.974 1.8806 1.6701 1.6169 1.4710 1.4257 0.1817'
[]
[eff10]
type = PiecewiseLinear
x = '0.7762 0.9255 0.9284 0.9461 0.9546 0.9816 0.9968 1.0170 1.0390 1.0525 1.0812 1.0880 1.1056 1.1107 1.2511'
y = '0.8991 0.9276 0.9281 0.9308 0.9317 0.9329 0.9318 0.9291 0.9252 0.9223 0.9116 0.9072 0.8913 0.8844 0.6937'
[]
[Rp11]
type = PiecewiseLinear
x = '0.9255 1.0749 1.134 1.2511'
y = '3.9586 2.9889 2.605 1.4928'
[]
[eff11]
type = PiecewiseLinear
x = '0.9255 1.0749 1.1340 1.2511'
y = '0.9257 0.9308 0.9328 0.8823'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
dt = 0.001
num_steps = 1
abort_on_solve_fail = true
solve_type = 'newton'
line_search = 'basic'
petsc_options_iname = '-snes_test_err'
petsc_options_value = '1e-10'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 15
l_tol = 1e-4
l_max_its = 10
[]
(modules/thermal_hydraulics/test/tests/misc/uniform_refine/test.i)
[GlobalParams]
gravity_vector = '0 0 0'
initial_p = 1e5
initial_T = 300
initial_vel = 0
closures = simple_closures
rdg_slope_reconstruction = FULL
f = 0
fp = eos
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[SolidProperties]
[mat1]
type = ThermalFunctionSolidProperties
rho = 10
cp = 1
k = 1
[]
[]
[Components]
[pipe1]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 2
A = 1
[]
[pipe2]
type = FlowChannel1Phase
position = '1 0 0'
orientation = '1 0 0'
length = 1
n_elems = 3
A = 1
[]
[junction]
type = VolumeJunction1Phase
connections = 'pipe1:out pipe2:in'
volume = 1e-5
position = '1 0 0'
initial_vel_x = 0
initial_vel_y = 0
initial_vel_z = 0
[]
[inlet]
type = SolidWall1Phase
input = 'pipe1:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe2:out'
[]
[hs]
type = HeatStructureCylindrical
position = '0 1 0'
orientation = '1 0 0'
length = '1'
n_elems = '2'
names = '0'
widths = 0.5
n_part_elems = '1'
solid_properties = 'mat1'
solid_properties_T_ref = '300'
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
start_time = 0
dt = 1e-4
num_steps = 1
abort_on_solve_fail = true
solve_type = 'NEWTON'
nl_rel_tol = 1e-5
nl_abs_tol = 1e-7
nl_max_its = 10
l_tol = 1e-3
l_max_its = 10
automatic_scaling = true
[]
[Outputs]
exodus = true
show = 'A'
[]
[Debug]
show_actions = true
[]
(modules/thermal_hydraulics/test/tests/components/outlet_1phase/phy.solidwall_outlet_3eqn.i)
# This test problem simulates a tube filled with steam that is suddenly opened
# on one end to an environment with a lower pressure.
[GlobalParams]
gravity_vector = '0 0 0'
closures = simple_closures
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 1.43
cv = 1040.0
q = 2.03e6
p_inf = 0.0
q_prime = -2.3e4
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
fp = fp
# geometry
position = '0 0 0'
orientation = '1 0 0'
length = 1.0
n_elems = 100
A = 1.0
# IC
initial_T = 400
initial_p = 1e5
initial_vel = 0
f = 0
[]
[left_wall]
type = SolidWall1Phase
input = 'pipe:in'
[]
[outlet]
type = Outlet1Phase
input = 'pipe:out'
p = 0.95e5
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
line_search = 'basic'
nl_rel_tol = 0
nl_abs_tol = 1e-5
nl_max_its = 15
l_tol = 1e-3
l_max_its = 10
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
start_time = 0.0
end_time = 0.2
dt = 0.01
abort_on_solve_fail = true
automatic_scaling = true
[]
[Outputs]
file_base = 'phy.solidwall_outlet_3eqn'
velocity_as_vector = false
[exodus]
type = Exodus
show = 'p T vel'
[]
[]
(modules/thermal_hydraulics/test/tests/components/flow_channel_1phase/phy.sub_discretization.i)
#
# Testing the ability to discretize the Pipe by dividing it into
# subsections
#
[GlobalParams]
initial_p = 1e5
initial_T = 300
initial_vel = 0
closures = simple_closures
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
cv = 1816.0
q = -1.167e6
p_inf = 1.0e9
q_prime = 0
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
axial_region_names = 'r1 r2'
length = '1 1'
n_elems = '1 2'
A = 1
f = 0
fp = eos
[]
[inlet]
type = SolidWall1Phase
input = 'pipe:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 0
[]
[Outputs]
[out]
type = Exodus
show = 'A'
[]
[]
(modules/thermal_hydraulics/test/tests/components/flow_channel_1phase/phy.par_fn.i)
#
# Tests the ability to set the hydraulic diameter by function.
#
D_h = 5
[GlobalParams]
gravity_vector = '0 0 0'
initial_p = 1e6
initial_T = 453.1
initial_vel = 0.0
closures = simple_closures
[]
[Functions]
[dh_fn]
type = ConstantFunction
value = ${D_h}
[]
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
cv = 1816.0
q = -1.167e6
p_inf = 1.0e9
q_prime = 0
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[left_wall]
type = SolidWall1Phase
input = pipe:in
[]
[pipe]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 1
A = 1.0e-4
D_h = dh_fn
f = 0.0
fp = eos
[]
[right_wall]
type = SolidWall1Phase
input = pipe:out
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0.0
dt = 1
num_steps = 1
abort_on_solve_fail = true
solve_type = 'PJFNK'
line_search = 'basic'
nl_rel_tol = 1e-5
nl_abs_tol = 1e-6
nl_max_its = 30
l_tol = 1e-3
l_max_its = 100
[]
[Postprocessors]
[D_h]
type = ADElementIntegralMaterialProperty
mat_prop = D_h
block = pipe
[]
[]
[Outputs]
csv = true
show = 'D_h'
execute_on = 'timestep_end'
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_1phase/phy.conservation_1phase.i)
# Tests conservation for heat transfer between a cylindrical heat structure and
# a 1-phase flow channel
[GlobalParams]
gravity_vector = '0 0 0'
scaling_factor_1phase = '1e-3 1e-3 1e-8'
scaling_factor_temperature = 1e-3
closures = simple_closures
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[SolidProperties]
[main-material]
type = ThermalFunctionSolidProperties
k = 1e4
cp = 500.0
rho = 100.0
[]
[]
[Functions]
[T0_fn]
type = ParsedFunction
expression = '290 + 20 * (y - 1)'
[]
[]
[Components]
[left_wall]
type = SolidWall1Phase
input = 'pipe:in'
[]
[pipe]
type = FlowChannel1Phase
fp = fp
position = '0 2 0'
orientation = '1 0 0'
length = 1.0
n_elems = 5
A = 1.0
initial_T = 300
initial_p = 1e5
initial_vel = 0
f = 0
[]
[right_wall]
type = SolidWall1Phase
input = 'pipe:out'
[]
[heat_transfer]
type = HeatTransferFromHeatStructure1Phase
flow_channel = pipe
hs = heat_structure
hs_side = inner
Hw = 1e3
[]
[heat_structure]
#type = set externally
num_rods = 5
position = '0 2 0'
orientation = '1 0 0'
length = 1.0
n_elems = 5
names = 'main'
solid_properties = 'main-material'
solid_properties_T_ref = '300'
widths = '1.0'
n_part_elems = '5'
initial_T = T0_fn
[]
[]
[Postprocessors]
[E_pipe]
type = ElementIntegralVariablePostprocessor
variable = rhoEA
block = pipe
execute_on = 'initial timestep_end'
[]
[E_heat_structure]
block = 'heat_structure:main'
n_units = 5
execute_on = 'initial timestep_end'
[]
[E_tot]
type = SumPostprocessor
values = 'E_pipe E_heat_structure'
execute_on = 'initial timestep_end'
[]
[E_tot_change]
type = ChangeOverTimePostprocessor
change_with_respect_to_initial = true
postprocessor = E_tot
compute_relative_change = true
execute_on = 'initial timestep_end'
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'PJFNK'
line_search = 'basic'
nl_rel_tol = 0
nl_abs_tol = 1e-6
nl_max_its = 15
l_tol = 1e-3
l_max_its = 10
start_time = 0.0
dt = 0.01
num_steps = 5
abort_on_solve_fail = true
[Quadrature]
type = GAUSS
order = SECOND
[]
[]
[Outputs]
file_base = 'phy.conservation_1phase_cylinder'
csv = true
show = 'E_tot_change'
execute_on = 'final'
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_heat_structure_1phase/phy.T_wall_transfer_3eqn_x.i)
# Testing that T_solid gets properly projected onto a pipe
# That's why Hw in pipe1 is set to 0, so we do not have any heat exchange
# Note that the pipe and the heat structure have an opposite orientation, which
# is crucial for this test.
[GlobalParams]
initial_p = 1.e5
initial_vel = 0.
initial_T = 300.
closures = simple_closures
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[SolidProperties]
[wall-mat]
type = ThermalFunctionSolidProperties
k = 100.0
rho = 100.0
cp = 100.0
[]
[]
[Functions]
[T_init]
type = ParsedFunction
expression = '290 + sin((1 - x) * pi * 1.4)'
[]
[]
[Components]
[pipe1]
type = FlowChannel1Phase
position = '0 -0.2 0'
orientation = '1 0 0'
length = 1
n_elems = 50
A = 9.6858407346e-01
D_h = 6.1661977237e+00
f = 0.01
fp = eos
[]
[hs]
type = HeatStructureCylindrical
position = '1 -0.1 0'
orientation = '-1 0 0'
length = 1
n_elems = 50
#rotation = 90
solid_properties = 'wall-mat'
solid_properties_T_ref = '300'
n_part_elems = 3
widths = '0.1'
names = 'wall'
initial_T = T_init
[]
[hxconn]
type = HeatTransferFromHeatStructure1Phase
hs = hs
hs_side = outer
flow_channel = pipe1
Hw = 0
P_hf = 6.2831853072e-01
[]
[inlet]
type = SolidWall1Phase
input = 'pipe1:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe1:out'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
dt = 1
abort_on_solve_fail = true
solve_type = 'NEWTON'
line_search = 'basic'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-5
l_max_its = 300
start_time = 0.0
num_steps = 1
[]
[Outputs]
[out]
type = Exodus
show = 'T_wall T_solid'
[]
print_linear_residuals = false
[]
(modules/thermal_hydraulics/test/tests/components/volume_junction_1phase/phy.deadend.i)
# Junction between 3 pipes, 1 of which goes to a dead-end. In the steady-state,
# no flow should go into the dead-end pipe.
[GlobalParams]
gravity_vector = '0 0 0'
scaling_factor_1phase = '1 1 1e-5'
initial_T = 250
initial_p = 1e5
initial_vel_x = 1
initial_vel_y = 0
initial_vel_z = 0
closures = simple_closures
[]
[AuxVariables]
[p0]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[p0_kernel]
type = StagnationPressureAux
variable = p0
fp = eos
e = e
v = v
vel = vel
[]
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 1.4
cv = 725
q = 0
q_prime = 0
p_inf = 0
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Functions]
[T0]
type = ParsedFunction
expression = 'if (x < 1, 300 + 50 * sin(2*pi*x + 1.5*pi), 250)'
[]
[]
[Components]
[inlet]
type = InletDensityVelocity1Phase
input = 'inlet_pipe:in'
rho = 1.37931034483
vel = 1
[]
[inlet_pipe]
type = FlowChannel1Phase
fp = eos
position = '0 0 0'
orientation = '1 0 0'
length = 1
A = 1
f = 0
initial_T = T0
initial_p = 1e5
initial_vel = 1
n_elems = 20
[]
[junction1]
type = VolumeJunction1Phase
connections = 'inlet_pipe:out deadend_pipe:in outlet_pipe:in'
position = '1 0 0'
volume = 1e-8
[]
[outlet_pipe]
type = FlowChannel1Phase
fp = eos
position = '1 0 0'
orientation = '1 0 0'
length = 1
A = 1
f = 0
initial_T = 250
initial_p = 1e5
initial_vel = 1
n_elems = 20
[]
[outlet]
type = Outlet1Phase
input = 'outlet_pipe:out'
p = 1e5
[]
[deadend_pipe]
type = FlowChannel1Phase
fp = eos
position = '1 0 0'
orientation = '0 1 0'
length = 1
A = 1
f = 0
initial_T = 250
initial_p = 1e5
initial_vel = 0
n_elems = 20
[]
[deadend]
type = SolidWall1Phase
input = 'deadend_pipe:out'
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
solve_type = 'NEWTON'
line_search = 'basic'
nl_rel_tol = 0
nl_abs_tol = 1e-6
nl_max_its = 10
l_tol = 1e-6
l_max_its = 10
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
start_time = 0
end_time = 5
dt = 0.1
abort_on_solve_fail = true
[]
[Postprocessors]
# These post-processors are used for testing that the stagnation pressure in
# the dead-end pipe is equal to the inlet stagnation pressure.
[p0_inlet]
type = SideAverageValue
variable = p0
boundary = inlet_pipe:in
[]
[p0_deadend]
type = SideAverageValue
variable = p0
boundary = deadend_pipe:out
[]
[test_rel_err]
type = RelativeDifferencePostprocessor
value1 = p0_deadend
value2 = p0_inlet
[]
[]
[Outputs]
[out]
type = CSV
show = test_rel_err
sync_only = true
sync_times = '1 2 3 4 5'
[]
velocity_as_vector = false
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_specified_temperature_1phase/phy.energy_walltemperature_ss_1phase.i)
# This test tests conservation of energy at steady state for 1-phase flow when
# wall temperature is specified. Conservation is checked by comparing the
# integral of the heat flux against the difference of the boundary fluxes.
[GlobalParams]
initial_p = 7.0e6
initial_vel = 0
initial_T = 513
gravity_vector = '0.0 0.0 0.0'
closures = simple_closures
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
cv = 1816.0
q = -1.167e6
p_inf = 1.0e9
q_prime = 0
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '0 0 1'
length = 3.66
n_elems = 10
A = 1.907720E-04
D_h = 1.698566E-02
f = 0.0
fp = eos
[]
[ht_pipe]
type = HeatTransferFromSpecifiedTemperature1Phase
flow_channel = pipe
T_wall = 550
Hw = 1.0e3
P_hf = 4.4925e-2
[]
[inlet]
type = SolidWall1Phase
input = 'pipe:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe:out'
[]
[]
[Postprocessors]
[hf_pipe]
type = ADHeatRateConvection1Phase
block = pipe
T_wall = T_wall
T = T
Hw = Hw
P_hf = P_hf
execute_on = 'initial timestep_end'
[]
[heat_added]
type = TimeIntegratedPostprocessor
value = hf_pipe
execute_on = 'initial timestep_end'
[]
[E]
type = ElementIntegralVariablePostprocessor
variable = rhoEA
execute_on = 'initial timestep_end'
[]
[E_change]
type = ChangeOverTimePostprocessor
postprocessor = E
change_with_respect_to_initial = true
execute_on = 'initial timestep_end'
[]
[E_conservation]
type = DifferencePostprocessor
value1 = heat_added
value2 = E_change
execute_on = 'initial timestep_end'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = crank-nicolson
abort_on_solve_fail = true
dt = 1e-1
solve_type = 'NEWTON'
line_search = 'basic'
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-8
nl_max_its = 50
l_tol = 1e-3
l_max_its = 60
start_time = 0
num_steps = 10
[]
[Outputs]
[out]
type = CSV
show = 'E_conservation'
[]
[console]
type = Console
show = 'E_conservation'
[]
[]
(modules/thermal_hydraulics/test/tests/components/shaft_connected_test_component/jacobian.i)
[GlobalParams]
initial_p = 1e5
initial_T = 300
initial_vel = 0
closures = simple_closures
fp = fp
f = 0
[]
[FluidProperties]
[fp]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[sw1]
type = SolidWall1Phase
input = fch1:in
[]
[fch1]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 2
A = 1
[]
[test_comp]
type = ShaftConnectedTestComponent
position = '1 0 0'
volume = 1
connections = 'fch1:out fch2:in'
[]
[fch2]
type = FlowChannel1Phase
position = '1 0 0'
orientation = '1 0 0'
length = 1
n_elems = 2
A = 1
[]
[sw2]
type = SolidWall1Phase
input = fch2:out
[]
[shaft]
type = Shaft
connected_components = 'test_comp'
initial_speed = 1
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
num_steps = 1
abort_on_solve_fail = true
solve_type = 'newton'
line_search = 'basic'
petsc_options_iname = '-snes_test_err'
petsc_options_value = '1e-9'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 15
l_tol = 1e-4
l_max_its = 10
[]
(modules/thermal_hydraulics/test/tests/problems/water_hammer/3eqn.i)
[GlobalParams]
gravity_vector = '0 0 0'
initial_T = 517.252072255516
initial_vel = 0
scaling_factor_1phase = '1.e0 1.e0 1.e-2'
closures = simple_closures
[]
[FluidProperties]
[eos]
type = StiffenedGasFluidProperties
gamma = 2.35
q = -1167e3
q_prime = 0
p_inf = 1.e9
cv = 1816
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Functions]
[p_fn]
type = PiecewiseConstant
axis = x
x = '0 0.5 1'
y = '7.5e6 6.5e6 6.5e6'
[]
[]
[Components]
[pipe1]
type = FlowChannel1Phase
fp = eos
# geometry
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 200
A = 1.907720E-04
D_h = 1.698566E-02
f = 0.
initial_p = p_fn
[]
# BCs
[left]
type = SolidWall1Phase
input = 'pipe1:in'
[]
[right]
type = SolidWall1Phase
input = 'pipe1:out'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
start_time = 0
dt = 1e-5
num_steps = 10
abort_on_solve_fail = true
solve_type = 'PJFNK'
line_search = 'basic'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 10
l_tol = 1e-3
l_max_its = 100
[]
[Outputs]
velocity_as_vector = false
[out]
type = Exodus
[]
[]
(modules/thermal_hydraulics/test/tests/components/heat_transfer_from_external_app_1phase/phy.q_wall_transfer_3eqn.child.i)
# This is a part of phy.q_wall_transfer_3eqn test. See the master file for details.
[GlobalParams]
initial_p = 1.e5
initial_vel = 0.
initial_T = 300.
closures = simple_closures
[]
[FluidProperties]
[eos]
type = IdealGasFluidProperties
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe1]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 10
A = 9.6858407346e-01
D_h = 6.1661977237e+00
f = 0.01
fp = eos
[]
[hxconn]
type = HeatTransferFromExternalAppHeatFlux1Phase
flow_channel = pipe1
Hw = 1e3
[]
[inlet]
type = SolidWall1Phase
input = 'pipe1:in'
[]
[outlet]
type = SolidWall1Phase
input = 'pipe1:out'
[]
[]
[Preconditioning]
[SMP_PJFNK]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
dt = 0.5
dtmin = 1e-7
abort_on_solve_fail = true
solve_type = 'PJFNK'
line_search = 'basic'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-3
l_max_its = 300
start_time = 0.0
end_time = 5
[Quadrature]
type = GAUSS
order = SECOND
[]
[]
[Outputs]
exodus = true
show = 'q_wall'
[]