- axisThe axis used (x, y, or z) if this is to be a function of position
C++ Type:MooseEnum
Controllable:No
Description:The axis used (x, y, or z) if this is to be a function of position
- data_fileFile holding CSV data
C++ Type:FileName
Controllable:No
Description:File holding CSV data
- directionLEFTDirection to look to find value: LEFT RIGHT LEFT_INCLUSIVE RIGHT_INCLUSIVE
Default:LEFT
C++ Type:MooseEnum
Controllable:No
Description:Direction to look to find value: LEFT RIGHT LEFT_INCLUSIVE RIGHT_INCLUSIVE
- execute_onLINEARThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, ALWAYS.
Default:LINEAR
C++ Type:ExecFlagEnum
Controllable:No
Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, ALWAYS.
- formatrowsFormat of csv data file that is in either in columns or rows
Default:rows
C++ Type:MooseEnum
Controllable:No
Description:Format of csv data file that is in either in columns or rows
- scale_factor1Scale factor to be applied to the ordinate values
Default:1
C++ Type:double
Controllable:Yes
Description:Scale factor to be applied to the ordinate values
- xThe abscissa values
C++ Type:std::vector<double>
Controllable:No
Description:The abscissa values
- x_index_in_file0The abscissa index in the data file
Default:0
C++ Type:unsigned int
Controllable:No
Description:The abscissa index in the data file
- xy_dataAll function data, supplied in abscissa, ordinate pairs
C++ Type:std::vector<double>
Controllable:No
Description:All function data, supplied in abscissa, ordinate pairs
- xy_in_file_onlyTrueIf the data file only contains abscissa and ordinate data
Default:True
C++ Type:bool
Controllable:No
Description:If the data file only contains abscissa and ordinate data
- yThe ordinate values
C++ Type:std::vector<double>
Controllable:No
Description:The ordinate values
- y_index_in_file1The ordinate index in the data file
Default:1
C++ Type:unsigned int
Controllable:No
Description:The ordinate index in the data file
PiecewiseConstant
Defines data using a set of x-y data pairs
Description
The PiecewiseConstant
function defines the data using a set of x-y data pairs. Instead of linearly interpolating between the values, however, the PiecewiseConstant
function is constant when the abscissa is between the values provided by the user. The direction
parameter controls whether the function takes the value of the abscissa of the user-provided point to the right
or left
value at which the function is evaluated. Also available is right_inclusive
and left_inclusive
options, which will return the value of the function at the specified abscissa.
Example Input Syntax
[Functions]
[./a]
type = PiecewiseConstant
xy_data = '0.5 0.1
1.0 0.2
1.5 0.1'
direction = left
[../]
[./b]
type = PiecewiseConstant
x = '0.5 1.0 1.5'
y = '0.1 0.2 0.1'
direction = right
[../]
[./c]
type = PiecewiseConstant
data_file = pc.csv
direction = left
format = columns
[../]
[./d]
type = PiecewiseConstant
data_file = pc.csv
direction = right
format = columns
[../]
[]
(test/tests/functions/piecewise_constant/piecewise_constant.i)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/problems/sedov_blast_wave/sedov_blast_wave.i)
- (test/tests/dgkernels/1d_advection_dg/1d_advection_dg.i)
- (test/tests/time_steppers/iteration_adaptive/multi_piecewise.i)
- (modules/thermal_hydraulics/test/tests/userobjects/function_element_loop_integral_uo/function_element_loop_integral_uo.i)
- (modules/thermal_hydraulics/test/tests/problems/lax_shock_tube/lax_shock_tube.i)
- (modules/thermal_hydraulics/test/tests/problems/square_wave/square_wave.i)
- (modules/thermal_hydraulics/test/tests/components/hs_boundary_ambient_convection/from_file_3d.i)
- (test/tests/functions/piecewise_constant/piecewise_constant_simple.i)
- (modules/thermal_hydraulics/test/tests/components/hs_boundary_ambient_convection/cylindrical.i)
- (modules/tensor_mechanics/test/tests/rom_stress_update/ADverification.i)
- (modules/thermal_hydraulics/test/tests/problems/sod_shock_tube/sod_shock_tube.i)
- (modules/rdg/test/tests/advection_1d/block_restrictable.i)
- (modules/tensor_mechanics/test/tests/rom_stress_update/3tile_json.i)
- (test/tests/postprocessors/element_extreme_material_property/element_extreme_material_property.i)
- (test/tests/time_steppers/function_dt/function_dt_no_interpolation.i)
- (modules/thermal_hydraulics/test/tests/controls/thm_solve_postprocessor_control/test.i)
- (modules/porous_flow/examples/flow_through_fractured_media/fine_thick_fracture_transient.i)
- (modules/tensor_mechanics/test/tests/rom_stress_update/ad_verification.i)
- (modules/thermal_hydraulics/test/tests/components/junction_one_to_one_1phase/junction_one_to_one_1phase.i)
- (modules/porous_flow/test/tests/dirackernels/hfrompps.i)
- (test/tests/multiapps/sub_cycling_failure/sub_gold.i)
- (modules/tensor_mechanics/test/tests/rom_stress_update/nonad_verification.i)
- (modules/rdg/test/tests/advection_1d/1d_aefv_square_wave.i)
- (test/tests/time_steppers/iteration_adaptive/adapt_tstep_reject_large_dt.i)
- (modules/tensor_mechanics/test/tests/lagrangian/total/special/rotate.i)
- (modules/porous_flow/examples/flow_through_fractured_media/fine_transient.i)
- (modules/thermal_hydraulics/test/tests/problems/woodward_colella_blast_wave/woodward_colella_blast_wave.i)
- (modules/tensor_mechanics/test/tests/rom_stress_update/3tile.i)
- (test/tests/postprocessors/element_average_material_property/element_average_material_property.i)
- (modules/tensor_mechanics/test/tests/rom_stress_update/verification.i)
- (test/tests/ics/postprocessor_interface/postprocessor_interface.i)
- (test/tests/time_steppers/iteration_adaptive/piecewise_constant.i)
- (modules/thermal_hydraulics/test/tests/problems/double_rarefaction/1phase.i)
- (modules/thermal_hydraulics/test/tests/components/shaft_connected_turbine_1phase/turbine_startup.i)
- (modules/tensor_mechanics/test/tests/lagrangian/updated/special/rotate.i)
- (test/tests/functions/piecewise_constant/piecewise_constant.i)
- (modules/porous_flow/test/tests/dirackernels/frompps.i)
- (modules/thermal_hydraulics/test/tests/components/hs_boundary_ambient_convection/plate.i)
- (test/tests/time_steppers/iteration_adaptive/multi_piecewise_sync_dt.i)
- (modules/thermal_hydraulics/test/tests/problems/water_hammer/3eqn.i)
- (modules/thermal_hydraulics/test/tests/problems/area_constriction/area_constriction.i)
- (modules/thermal_hydraulics/test/tests/components/junction_one_to_one_1phase/no_junction_1phase.i)
(test/tests/functions/piecewise_constant/piecewise_constant.i)
# This tests the PiecewiseConstant function.
# There are four variables and four functions: a,b,c, and d. The diffusion equation is "solved"
# for each of these variables with a boundary condition of type FunctionDirchletBC applied to a boundary
# (i.e. node set) that includes every node in the element, so the solution is the boundary condition defined by the function.
# Each boundary condition uses a function of type PiecewiseConstant.
#
# The value of the variables should correspond to the function.
[Mesh]
file = cube.e
# This problem only has 1 element, so using DistributedMesh in parallel
# isn't really an option, and we don't care that much about DistributedMesh
# in serial.
parallel_type = replicated
[]
[Variables]
[./aVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[../]
[./bVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[../]
[./cVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[../]
[./dVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[../]
[]
[Functions]
[./a]
type = PiecewiseConstant
xy_data = '0.5 0.1
1.0 0.2
1.5 0.1'
direction = left
[../]
[./b]
type = PiecewiseConstant
x = '0.5 1.0 1.5'
y = '0.1 0.2 0.1'
direction = right
[../]
[./c]
type = PiecewiseConstant
data_file = pc.csv
direction = left
format = columns
[../]
[./d]
type = PiecewiseConstant
data_file = pc.csv
direction = right
format = columns
[../]
[]
[Kernels]
[./diffa]
type = Diffusion
variable = aVar
[../]
[./diffb]
type = Diffusion
variable = bVar
[../]
[./diffc]
type = Diffusion
variable = cVar
[../]
[./diffd]
type = Diffusion
variable = dVar
[../]
[]
[BCs]
[./a]
type = FunctionDirichletBC
variable = aVar
boundary = '1'
function = a
[../]
[./b]
type = FunctionDirichletBC
variable = bVar
boundary = '1'
function = b
[../]
[./c]
type = FunctionDirichletBC
variable = cVar
boundary = '1'
function = c
[../]
[./d]
type = FunctionDirichletBC
variable = dVar
boundary = '1'
function = d
[../]
[]
[Executioner]
type = Transient
dt = 0.2
end_time = 3
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
[]
(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'
[]
[]
[Modules/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'
[]
[]
(test/tests/dgkernels/1d_advection_dg/1d_advection_dg.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmin = 0
xmax = 1
[]
[Functions]
[./ic_u]
type = PiecewiseConstant
axis = x
direction = right
xy_data = '0.1 0.0
0.6 1.0
1.0 0.0'
[../]
[]
[Variables]
[./u]
order = FIRST
family = MONOMIAL
[../]
[]
[Kernels]
[./time_u]
type = TimeDerivative
variable = u
[../]
[./adv_u]
implicit = false
type = ConservativeAdvection
variable = u
velocity = '1 0 0'
[../]
[]
[DGKernels]
[./dg_advection_u]
implicit = false
type = DGConvection
variable = u
velocity = '1 0 0'
[../]
[]
[ICs]
[./u_ic]
type = FunctionIC
variable = u
function = ic_u
[../]
[]
[Executioner]
type = Transient
[./TimeIntegrator]
type = ExplicitMidpoint
[../]
solve_type = 'LINEAR'
num_steps = 4
dt = 2e-4
[]
[Outputs]
exodus = true
[]
(test/tests/time_steppers/iteration_adaptive/multi_piecewise.i)
[Mesh]
type = GeneratedMesh
dim = 1
[]
[Problem]
solve = false
[]
[Functions]
[./temp_spike1]
type = PiecewiseLinear
x = '1 3 5'
y = '1 4 4'
[../]
[./temp_spike2]
type = PiecewiseLinear
x = '0 2 4'
y = '1 1 2'
[../]
[./temp_spike3]
type = PiecewiseConstant
x = '1 6 8'
y = '1 4 4'
[../]
[./temp_spike4]
type = PiecewiseConstant
x = '0 7 9'
y = '1 1 2'
[../]
[]
[Executioner]
type = Transient
end_time = 10
verbose = true
[./TimeStepper]
type = IterationAdaptiveDT
dt = 10
timestep_limiting_function = 'temp_spike1 temp_spike2 temp_spike3 temp_spike4'
force_step_every_function_point = true
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Outputs]
csv = true
[]
(modules/thermal_hydraulics/test/tests/userobjects/function_element_loop_integral_uo/function_element_loop_integral_uo.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 10
nx = 10
[]
[Functions]
# Integral of this function should be 2*3 + 3*6 + 5*2 = 34
[test_fn]
type = PiecewiseConstant
axis = x
x = '0 2 5'
y = '3 6 2'
[]
[]
[UserObjects]
[test_uo]
type = FunctionElementLoopIntegralUserObject
function = test_fn
execute_on = 'INITIAL'
[]
[]
[Postprocessors]
[test_pp]
type = FunctionElementLoopIntegralGetValueTestPostprocessor
function_element_loop_integral_uo = test_uo
execute_on = 'INITIAL'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(modules/thermal_hydraulics/test/tests/problems/lax_shock_tube/lax_shock_tube.i)
# This test problem is the Lax shock tube 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'
rdg_slope_reconstruction = minmod
closures = simple_closures
[]
[Functions]
[p_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '3.52874226 0.571'
[]
[T_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '11.1016610426966 1.5988'
[]
[vel_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '0.692 0.0'
[]
[]
[Modules/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 = 100
A = 1.0
# IC
initial_T = T_ic_fn
initial_p = p_ic_fn
initial_vel = vel_ic_fn
f = 0
[]
[left_boundary]
type = FreeBoundary1Phase
input = 'pipe:in'
[]
[right_boundary]
type = FreeBoundary1Phase
input = 'pipe:out'
[]
[]
[Executioner]
type = Transient
[TimeIntegrator]
type = ExplicitSSPRungeKutta
# add order via 'cli_args' in 'tests'
[]
solve_type = LINEAR
l_tol = 1e-4
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
nl_max_its = 60
# run to t = 0.15
start_time = 0.0
dt = 1e-3
num_steps = 150
abort_on_solve_fail = true
[]
[Outputs]
file_base = 'lax_shock_tube'
velocity_as_vector = false
execute_on = 'initial timestep_end'
[out]
type = Exodus
show = 'rho p vel'
[]
[]
(modules/thermal_hydraulics/test/tests/problems/square_wave/square_wave.i)
# Square wave problem
[GlobalParams]
gravity_vector = '0 0 0'
rdg_slope_reconstruction = minmod
closures = simple_closures
[]
[Functions]
[T_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.1 0.6 1.0'
y = '2.8 1.4 2.8'
[]
[]
[Modules/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 = 400
A = 1.0
# IC
initial_T = T_ic_fn
initial_p = 1
initial_vel = 1
f = 0
[]
[left_boundary]
type = FreeBoundary1Phase
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.3
start_time = 0.0
dt = 2e-4
num_steps = 1500
abort_on_solve_fail = true
[]
[Outputs]
file_base = 'square_wave'
velocity_as_vector = false
execute_on = 'initial timestep_end'
[out]
type = Exodus
show = 'p T vel'
[]
[]
(modules/thermal_hydraulics/test/tests/components/hs_boundary_ambient_convection/from_file_3d.i)
T_hs = 300
T_ambient1 = 500
htc1 = 100
T_ambient2 = 400
htc2 = 300
t = 0.001
# dimensions of the side 'left'
height = 5
depth = 2
# SS 316
density = 8.0272e3
specific_heat_capacity = 502.1
conductivity = 16.26
A = ${fparse height * depth}
heat_flux_avg = ${fparse 0.5 * (htc1 * (T_ambient1 - T_hs) + htc2 * (T_ambient2 - T_hs))}
heat_flux_integral = ${fparse heat_flux_avg * A}
scale = 0.8
E_change = ${fparse scale * heat_flux_integral * t}
[Functions]
[T_ambient_fn]
type = PiecewiseConstant
axis = z
x = '-2.5 0'
y = '${T_ambient1} ${T_ambient2}'
[]
[htc_ambient_fn]
type = PiecewiseConstant
axis = z
x = '-2.5 0'
y = '${htc1} ${htc2}'
[]
[]
[Materials]
[mat]
type = ADGenericConstantMaterial
block = 'hs:brick'
prop_names = 'density specific_heat thermal_conductivity'
prop_values = '${density} ${specific_heat_capacity} ${conductivity}'
[]
[]
[Components]
[hs]
type = HeatStructureFromFile3D
file = box.e
position = '0 0 0'
initial_T = ${T_hs}
[]
[ambient_convection]
type = HSBoundaryAmbientConvection
boundary = 'hs:left'
hs = hs
T_ambient = T_ambient_fn
htc_ambient = htc_ambient_fn
scale_pp = bc_scale_pp
[]
[]
[Postprocessors]
[bc_scale_pp]
type = FunctionValuePostprocessor
function = ${scale}
execute_on = 'INITIAL TIMESTEP_END'
[]
[E_hs]
type = ADHeatStructureEnergy3D
block = 'hs:brick'
execute_on = 'INITIAL TIMESTEP_END'
[]
[E_hs_change]
type = ChangeOverTimePostprocessor
postprocessor = E_hs
execute_on = 'INITIAL TIMESTEP_END'
[]
[E_change_relerr]
type = RelativeDifferencePostprocessor
value1 = E_hs_change
value2 = ${E_change}
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Executioner]
type = Transient
[TimeIntegrator]
type = ActuallyExplicitEuler
solve_type = lumped
[]
dt = ${t}
num_steps = 1
abort_on_solve_fail = true
[]
[Outputs]
[out]
type = CSV
show = 'E_change_relerr'
execute_on = 'FINAL'
[]
exodus = true
[]
(test/tests/functions/piecewise_constant/piecewise_constant_simple.i)
[Mesh]
type = GeneratedMesh
dim = 1
[]
[Problem]
solve = false
[]
[Functions]
[./left]
type = PiecewiseConstant
xy_data = '-8 4
-7 3
-5.5 2
-2 1
2 1
5.5 2
7 3
8 4'
direction = left
scale_factor = 2
[../]
[./right]
type = PiecewiseConstant
x = '-8 -7 -5.5 -2 2 5.5 7 8'
y = ' 4 3 2 1 1 2 3 4'
direction = right
scale_factor = 2
[../]
[./left_inclusive]
type = PiecewiseConstant
x = '-8 -7 -5.5 -2 2 5.5 7 8'
y = ' 4 3 2 1 1 2 3 4'
direction = left_inclusive
scale_factor = 2
[../]
[./right_inclusive]
type = PiecewiseConstant
x = '-8 -7 -5.5 -2 2 5.5 7 8'
y = ' 4 3 2 1 1 2 3 4'
direction = right_inclusive
scale_factor = 2
[../]
[]
[Postprocessors]
[left]
type = FunctionValuePostprocessor
function = left
execute_on = 'TIMESTEP_END INITIAL'
[]
[right]
type = FunctionValuePostprocessor
function = right
execute_on = 'TIMESTEP_END INITIAL'
[]
[left_inclusive]
type = FunctionValuePostprocessor
function = left_inclusive
execute_on = 'TIMESTEP_END INITIAL'
[]
[right_inclusive]
type = FunctionValuePostprocessor
function = right_inclusive
execute_on = 'TIMESTEP_END INITIAL'
[]
[]
[Executioner]
type = Transient
dt = 1
start_time = -10
end_time = 10
[]
[Outputs]
csv = true
[]
(modules/thermal_hydraulics/test/tests/components/hs_boundary_ambient_convection/cylindrical.i)
T_hs = 300
T_ambient1 = 500
htc1 = 100
T_ambient2 = 400
htc2 = 300
t = 0.001
L = 2
D_i = 0.2
thickness = 0.5
# SS 316
density = 8.0272e3
specific_heat_capacity = 502.1
conductivity = 16.26
R_i = ${fparse 0.5 * D_i}
D_o = ${fparse D_i + 2 * thickness}
A = ${fparse pi * D_o * L}
heat_flux_avg = ${fparse 0.5 * (htc1 * (T_ambient1 - T_hs) + htc2 * (T_ambient2 - T_hs))}
heat_flux_integral = ${fparse heat_flux_avg * A}
scale = 0.8
E_change = ${fparse scale * heat_flux_integral * t}
[Functions]
[T_ambient_fn]
type = PiecewiseConstant
axis = z
x = '0 1'
y = '${T_ambient1} ${T_ambient2}'
[]
[htc_ambient_fn]
type = PiecewiseConstant
axis = z
x = '0 1'
y = '${htc1} ${htc2}'
[]
[]
[HeatStructureMaterials]
[hs_mat]
type = SolidMaterialProperties
rho = ${density}
cp = ${specific_heat_capacity}
k = ${conductivity}
[]
[]
[Components]
[hs]
type = HeatStructureCylindrical
orientation = '0 0 1'
position = '0 0 0'
length = ${L}
n_elems = 10
inner_radius = ${R_i}
widths = '${thickness}'
n_part_elems = '10'
materials = 'hs_mat'
names = 'region'
initial_T = ${T_hs}
[]
[ambient_convection]
type = HSBoundaryAmbientConvection
boundary = 'hs:outer'
hs = hs
T_ambient = T_ambient_fn
htc_ambient = htc_ambient_fn
scale_pp = bc_scale_pp
[]
[]
[Postprocessors]
[bc_scale_pp]
type = FunctionValuePostprocessor
function = ${scale}
execute_on = 'INITIAL TIMESTEP_END'
[]
[E_hs]
type = ADHeatStructureEnergyRZ
block = 'hs:region'
axis_dir = '0 0 1'
axis_point = '0 0 0'
execute_on = 'INITIAL TIMESTEP_END'
[]
[E_hs_change]
type = ChangeOverTimePostprocessor
postprocessor = E_hs
execute_on = 'INITIAL TIMESTEP_END'
[]
[E_change_relerr]
type = RelativeDifferencePostprocessor
value1 = E_hs_change
value2 = ${E_change}
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Executioner]
type = Transient
[TimeIntegrator]
type = ActuallyExplicitEuler
solve_type = lumped
[]
dt = ${t}
num_steps = 1
abort_on_solve_fail = true
[]
[Outputs]
[out]
type = CSV
show = 'E_change_relerr'
execute_on = 'FINAL'
[]
[]
(modules/tensor_mechanics/test/tests/rom_stress_update/ADverification.i)
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temperature]
[../]
[]
[AuxKernels]
[./temp_aux]
type = FunctionAux
variable = temperature
function = temp_fcn
execute_on = 'initial timestep_begin'
[../]
[]
[Functions]
[./rhom_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
xy_in_file_only = false
direction = right
[../]
[./rhoi_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 2
format = columns
xy_in_file_only = false
direction = right
[../]
[./vmJ2_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 3
format = columns
xy_in_file_only = false
direction = right
[../]
[./evm_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 4
format = columns
xy_in_file_only = false
direction = right
[../]
[./temp_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 5
format = columns
xy_in_file_only = false
direction = right
[../]
[./rhom_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 7
format = columns
xy_in_file_only = false
direction = right
[../]
[./rhoi_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 8
format = columns
xy_in_file_only = false
direction = right
[../]
[./creep_rate_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 10
format = columns
xy_in_file_only = false
direction = right
[../]
[./rhom_diff_fcn]
type = ParsedFunction
vars = 'rhom_soln rhom'
vals = 'rhom_soln rhom'
value = 'abs(rhom_soln - rhom) / rhom_soln'
[../]
[./rhoi_diff_fcn]
type = ParsedFunction
vars = 'rhoi_soln rhoi'
vals = 'rhoi_soln rhoi'
value = 'abs(rhoi_soln - rhoi) / rhoi_soln'
[../]
[./creep_rate_diff_fcn]
type = ParsedFunction
vars = 'creep_rate_soln creep_rate'
vals = 'creep_rate_soln creep_rate'
value = 'abs(creep_rate_soln - creep_rate) / creep_rate_soln'
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
add_variables = true
generate_output = 'vonmises_stress'
use_automatic_differentiation = true
[../]
[]
[BCs]
[./symmx]
type = ADDirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmy]
type = ADDirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmz]
type = ADDirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./pressure_x]
type = ADPressure
variable = disp_x
component = 0
boundary = right
function = vmJ2_fcn
constant = 0.5e6
[../]
[./pressure_y]
type = ADPressure
variable = disp_y
component = 1
boundary = top
function = vmJ2_fcn
constant = -0.5e6
[../]
[./pressure_z]
type = ADPressure
variable = disp_z
component = 2
boundary = front
function = vmJ2_fcn
constant = -0.5e6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 1e11
poissons_ratio = 0.3
[../]
[./stress]
type = ADComputeMultipleInelasticStress
inelastic_models = rom_stress_prediction
[../]
[./rom_stress_prediction]
type = ADSS316HLAROMANCEStressUpdateTest
temperature = temperature
effective_inelastic_strain_name = effective_creep_strain
internal_solve_full_iteration_history = true
outputs = all
wall_dislocation_density_forcing_function = rhoi_fcn
cell_dislocation_density_forcing_function = rhom_fcn
old_creep_strain_forcing_function = evm_fcn
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_ksp_ew -snes_converged_reason -ksp_converged_reason'# -ksp_error_if_not_converged -snes_error_if_not_converged'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
automatic_scaling = true
compute_scaling_once = false
nl_abs_tol = 1e-10
dt = 1e-3
end_time = 1e-2
[]
[Postprocessors]
[./effective_strain_avg]
type = ElementAverageValue
variable = effective_creep_strain
outputs = console
[../]
[./temperature]
type = ElementAverageValue
variable = temperature
outputs = console
[../]
[./rhom]
type = ElementAverageValue
variable = cell_dislocations
[../]
[./rhoi]
type = ElementAverageValue
variable = wall_dislocations
[../]
[./vonmises_stress]
type = ElementAverageValue
variable = vonmises_stress
outputs = console
[../]
[./creep_rate]
type = ElementAverageValue
variable = creep_rate
[../]
[./rhom_in]
type = FunctionValuePostprocessor
function = rhom_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[../]
[./rhoi_in]
type = FunctionValuePostprocessor
function = rhoi_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[../]
[./vmJ2_in]
type = FunctionValuePostprocessor
function = vmJ2_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[../]
[./rhom_soln]
type = FunctionValuePostprocessor
function = rhom_soln_fcn
outputs = console
[../]
[./rhoi_soln]
type = FunctionValuePostprocessor
function = rhoi_soln_fcn
outputs = console
[../]
[./creep_rate_soln]
type = FunctionValuePostprocessor
function = creep_rate_soln_fcn
outputs = console
[../]
[./rhom_diff]
type = FunctionValuePostprocessor
function = rhom_diff_fcn
outputs = console
[../]
[./rhoi_diff]
type = FunctionValuePostprocessor
function = rhoi_diff_fcn
outputs = console
[../]
[./creep_rate_diff]
type = FunctionValuePostprocessor
function = creep_rate_diff_fcn
outputs = console
[../]
[./rhom_max_diff]
type = TimeExtremeValue
postprocessor = rhom_diff
outputs = console
[../]
[./rhoi_max_diff]
type = TimeExtremeValue
postprocessor = rhoi_diff
outputs = console
[../]
[./creep_rate_max_diff]
type = TimeExtremeValue
postprocessor = creep_rate_diff
outputs = console
[../]
[]
[Outputs]
csv = true
file_base = 'verification_1e-3_out'
[]
(modules/thermal_hydraulics/test/tests/problems/sod_shock_tube/sod_shock_tube.i)
# This test problem is the classic Sod shock tube 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.2
# Left initial values:
# * rho = 1
# * vel = 0
# * p = 1
# Right initial values:
# * rho = 0.125
# * vel = 0
# * p = 0.1
#
# The output can be viewed by opening Paraview with the state file `plot.pvsm`:
# paraview --state=plot.pvsm
# This will plot the numerical solution against the analytical solution
[GlobalParams]
gravity_vector = '0 0 0'
rdg_slope_reconstruction = minmod
closures = simple_closures
[]
[Functions]
[p_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '1.0 0.1'
[]
[T_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '1.4 1.12'
[]
[]
[Modules/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 = 100
A = 1.0
# IC
initial_T = T_ic_fn
initial_p = p_ic_fn
initial_vel = 0
f = 0
[]
[left_boundary]
type = FreeBoundary1Phase
input = 'pipe:in'
[]
[right_boundary]
type = FreeBoundary1Phase
input = 'pipe:out'
[]
[]
[Executioner]
type = Transient
[TimeIntegrator]
type = ExplicitSSPRungeKutta
[]
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.2
start_time = 0.0
dt = 1e-3
num_steps = 200
abort_on_solve_fail = true
[]
[Outputs]
file_base = 'sod_shock_tube'
velocity_as_vector = false
execute_on = 'initial timestep_end'
[out]
type = Exodus
show = 'rho p vel'
[]
[]
(modules/rdg/test/tests/advection_1d/block_restrictable.i)
############################################################
[GlobalParams]
order = CONSTANT
family = MONOMIAL
u = u
slope_limiting = lslope
implicit = false
[]
############################################################
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
xmin = 0
xmax = 1
nx = 100
[]
[./subdomain1]
type = SubdomainBoundingBoxGenerator
bottom_left = '0.5 0 0'
block_id = 1
top_right = '1.0 1.0 0'
input = gen
[../]
[./interface]
type = SideSetsBetweenSubdomainsGenerator
primary_block = '0'
paired_block = '1'
new_boundary = 'primary0_interface'
input = subdomain1
[../]
[./interface_again]
type = SideSetsBetweenSubdomainsGenerator
primary_block = '1'
paired_block = '0'
new_boundary = 'primary1_interface'
input = interface
[../]
[]
############################################################
[Functions]
[./ic_u]
type = PiecewiseConstant
axis = x
direction = right
xy_data = '0.1 0.5
0.4 1.0
0.5 0.5'
[../]
[]
############################################################
[UserObjects]
[./lslope]
type = AEFVSlopeLimitingOneD
execute_on = 'linear'
scheme = 'superbee' #none | minmod | mc | superbee
block = 0
[../]
[./internal_side_flux]
type = AEFVUpwindInternalSideFlux
execute_on = 'linear'
[../]
[./free_outflow_bc]
type = AEFVFreeOutflowBoundaryFlux
execute_on = 'linear'
[../]
[]
############################################################
[Variables]
[./u]
block = 0
[../]
[./v]
block = 1
family = LAGRANGE
order = FIRST
[../]
[]
############################################################
[ICs]
[./u_ic]
type = FunctionIC
variable = 'u'
function = ic_u
[../]
[]
############################################################
[Kernels]
[./time_u]
implicit = true
type = TimeDerivative
variable = u
block = 0
[../]
[./diff_v]
implicit = true
type = Diffusion
variable = v
block = 1
[../]
[./time_v]
implicit = true
type = TimeDerivative
variable = v
block = 1
[../]
[]
############################################################
[DGKernels]
[./concentration]
type = AEFVKernel
variable = u
component = 'concentration'
flux = internal_side_flux
block = 0
[../]
[]
############################################################
[BCs]
[./concentration]
type = AEFVBC
boundary = 'left primary0_interface'
variable = u
component = 'concentration'
flux = free_outflow_bc
[../]
[./v_left]
type = DirichletBC
boundary = 'primary1_interface'
variable = v
value = 1
[../]
[./v_right]
type = DirichletBC
boundary = 'right'
variable = v
value = 0
[../]
[]
############################################################
[Materials]
[./aefv]
type = AEFVMaterial
block = 0
[../]
[./dummy_1]
type = GenericConstantMaterial
block = 1
prop_names = ''
prop_values = ''
[../]
[]
############################################################
[Executioner]
type = Transient
[./TimeIntegrator]
type = ExplicitMidpoint
[../]
solve_type = 'LINEAR'
l_tol = 1e-4
nl_rel_tol = 1e-20
nl_abs_tol = 1e-8
nl_max_its = 60
start_time = 0.0
num_steps = 4 # 4 | 400 for complete run
dt = 5e-4
dtmin = 1e-6
[]
[Outputs]
[./out]
type = Exodus
interval = 2
[../]
perf_graph = true
[]
(modules/tensor_mechanics/test/tests/rom_stress_update/3tile_json.i)
# Tests the tile and partition assembly for overlapping partitions and
# a variety of different overlapping tile conditions.
# Creep_rate should always be 2.718281828459
endtime = 1.9
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temp_aux]
type = FunctionAux
variable = temperature
function = temp_fcn
execute_on = 'initial timestep_begin'
[]
[]
[Functions]
[rhom_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12'
direction = LEFT_INCLUSIVE
[]
[rhoi_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11'
direction = LEFT_INCLUSIVE
[]
[vmJ2_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '25.68 25.68 45.0 55.28 63.0 67.12 85.0 85.0 85.0 85.0 85.0 85.0 55.28 63.0 67.12 63.0 63.0 55.28 96.72 63.0'
direction = LEFT_INCLUSIVE
[]
[evm_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01'
direction = LEFT_INCLUSIVE
[]
[temp_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '940.0 940.0 940.0 940.0 940.0 940.0 940.0 905.0 897.0 881.0 860.0 821.0 860.0 881.0 897.0 897.0 905.0 897.0 860.0 860.0'
direction = LEFT_INCLUSIVE
[]
[]
[Modules/TensorMechanics/Master]
[all]
strain = FINITE
add_variables = true
generate_output = 'vonmises_stress'
[]
[]
[BCs]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[pull_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 1e-5 # This is required to make a non-zero effective trial stress so radial return is engaged
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
shear_modulus = 1e13
poissons_ratio = 0.3
[]
[stress]
type = ComputeMultipleInelasticStress
inelastic_models = rom_stress_prediction
[]
[rom_stress_prediction]
type = LAROMANCEPartitionStressUpdate
model = laromance/test/3tile.json
temperature = temperature
effective_inelastic_strain_name = effective_creep_strain
internal_solve_full_iteration_history = true
apply_strain = false
outputs = all
verbose = true
wall_dislocation_density_forcing_function = rhoi_fcn
cell_dislocation_density_forcing_function = rhom_fcn
old_creep_strain_forcing_function = evm_fcn
wall_input_window_low_failure = ERROR
wall_input_window_high_failure = ERROR
cell_input_window_low_failure = ERROR
cell_input_window_high_failure = ERROR
temperature_input_window_low_failure = DONOTHING
temperature_input_window_high_failure = ERROR
stress_input_window_low_failure = DONOTHING
stress_input_window_high_failure = ERROR
old_strain_input_window_low_failure = ERROR
old_strain_input_window_high_failure = ERROR
environment_input_window_low_failure = ERROR
environment_input_window_high_failure = ERROR
effective_stress_forcing_function = vmJ2_fcn
initial_cell_dislocation_density = 4.0e12
max_relative_cell_dislocation_increment = 0.5
initial_wall_dislocation_density = 5.0e12
max_relative_wall_dislocation_increment = 0.5
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-1 # Nothing is really being solved here, so loose tolerances are okay
dt = 0.1
end_time = ${endtime}
timestep_tolerance = 1e-3
[]
[Postprocessors]
[extrapolation]
type = ElementAverageValue
variable = ROM_extrapolation
outputs = console
[]
[old_strain_in]
type = FunctionValuePostprocessor
function = evm_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[partition_weight]
type = ElementAverageMaterialProperty
mat_prop = partition_weight
[]
[rhom_in]
type = FunctionValuePostprocessor
function = rhom_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[rhoi_in]
type = FunctionValuePostprocessor
function = rhoi_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[vmJ2_in]
type = FunctionValuePostprocessor
function = vmJ2_fcn
execute_on = 'TIMESTEP_END initial'
[]
[creep_rate]
type = ElementAverageMaterialProperty
mat_prop = creep_rate
[]
[rhom_rate]
type = ElementAverageMaterialProperty
mat_prop = cell_dislocation_rate
[]
[rhoi_rate]
type = ElementAverageMaterialProperty
mat_prop = wall_dislocation_rate
[]
[]
[Outputs]
csv = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
(test/tests/postprocessors/element_extreme_material_property/element_extreme_material_property.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 4
xmin = 0
xmax = 1
[]
[Functions]
[./fn]
type = PiecewiseConstant
axis = x
x = '0 0.25 0.50 0.75'
y = '5 2 3 4'
[../]
[]
[Materials]
[./mat]
type = GenericFunctionMaterial
prop_names = 'mat_prop'
prop_values = 'fn'
[../]
[]
[Postprocessors]
[./min]
type = ElementExtremeMaterialProperty
mat_prop = mat_prop
value_type = min
execute_on = 'INITIAL'
[../]
[./max]
type = ElementExtremeMaterialProperty
mat_prop = mat_prop
value_type = max
execute_on = 'INITIAL'
[../]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
execute_on = 'INITIAL'
[]
(test/tests/time_steppers/function_dt/function_dt_no_interpolation.i)
[Mesh]
type = GeneratedMesh
dim = 2
xmin = -1
xmax = 1
ymin = -1
ymax = 1
nx = 2
ny = 2
elem_type = QUAD9
[]
[Functions]
[./exact_fn]
type = ParsedFunction
value = t*t*(x*x+y*y)
[../]
[./forcing_fn]
type = ParsedFunction
value = 2*t*(x*x+y*y)-4*t*t
[../]
[./dts]
type = PiecewiseConstant
x = '0 4 8 12 20'
y = '0 1 2 4 8'
direction = right
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = SECOND
[../]
[]
[ICs]
[./u_var]
type = FunctionIC
variable = u
function = exact_fn
[../]
[]
[Kernels]
[./td]
type = TimeDerivative
variable = u
[../]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = forcing_fn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = 'left right top bottom'
function = exact_fn
[../]
[]
[Executioner]
type = Transient
start_time = 0
end_time = 20
[./TimeStepper]
type = FunctionDT
function = dts
[../]
[]
[Outputs]
exodus = true
[]
(modules/thermal_hydraulics/test/tests/controls/thm_solve_postprocessor_control/test.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = CoefDiffusion
variable = u
coef = 0.1
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Functions]
[active_fn]
type = PiecewiseConstant
direction = right
xy_data = '
0.2 0
0.4 1
0.6 0'
[]
[]
[Postprocessors]
[active]
type = FunctionValuePostprocessor
function = active_fn
[]
[]
[Components]
[]
[ControlLogic]
[solve_on_off]
type = THMSolvePostprocessorControl
postprocessor = active
[]
[]
[Executioner]
type = Transient
dt = 0.1
num_steps = 6
abort_on_solve_fail = true
[]
[Outputs]
csv = true
[]
(modules/porous_flow/examples/flow_through_fractured_media/fine_thick_fracture_transient.i)
# Using a single-dimensional mesh
# Transient flow and solute transport along a fracture in a porous matrix
# advective dominated flow in the fracture and diffusion into the porous matrix
#
# Note that fine_thick_fracture_steady.i must be run to initialise the porepressure properly
[Mesh]
file = 'gold/fine_thick_fracture_steady_out.e'
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[pp]
initial_from_file_var = pp
initial_from_file_timestep = 1
[]
[massfrac0]
[]
[]
[AuxVariables]
[velocity_x]
family = MONOMIAL
order = CONSTANT
block = fracture
[]
[velocity_y]
family = MONOMIAL
order = CONSTANT
block = fracture
[]
[]
[AuxKernels]
[velocity_x]
type = PorousFlowDarcyVelocityComponent
variable = velocity_x
component = x
[]
[velocity_y]
type = PorousFlowDarcyVelocityComponent
variable = velocity_y
component = y
[]
[]
[ICs]
[massfrac0]
type = ConstantIC
variable = massfrac0
value = 0
[]
[]
[BCs]
[top]
type = DirichletBC
value = 0
variable = massfrac0
boundary = top
[]
[bottom]
type = DirichletBC
value = 1
variable = massfrac0
boundary = bottom
[]
[ptop]
type = DirichletBC
variable = pp
boundary = top
value = 1e6
[]
[pbottom]
type = DirichletBC
variable = pp
boundary = bottom
value = 1.002e6
[]
[]
[Kernels]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pp
[]
[adv0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pp
[]
[diff0]
type = PorousFlowDispersiveFlux
fluid_component = 0
variable = pp
disp_trans = 0
disp_long = 0
[]
[mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = massfrac0
[]
[adv1]
type = PorousFlowAdvectiveFlux
fluid_component = 1
variable = massfrac0
[]
[diff1]
type = PorousFlowDispersiveFlux
fluid_component = 1
variable = massfrac0
disp_trans = 0
disp_long = 0
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'pp massfrac0'
number_fluid_phases = 1
number_fluid_components = 2
[]
[]
[Modules]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[]
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[ppss]
type = PorousFlow1PhaseFullySaturated
porepressure = pp
[]
[massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = massfrac0
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[poro_fracture]
type = PorousFlowPorosityConst
porosity = 1.0 # this is the true porosity of the fracture
block = 'fracture'
[]
[poro_matrix]
type = PorousFlowPorosityConst
porosity = 0.1
block = 'matrix1 matrix2'
[]
[diff1]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1e-9 1e-9'
tortuosity = 1.0
block = 'fracture'
[]
[diff2]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1e-9 1e-9'
tortuosity = 0.1
block = 'matrix1 matrix2'
[]
[relp]
type = PorousFlowRelativePermeabilityConst
phase = 0
[]
[permeability1]
type = PorousFlowPermeabilityConst
permeability = '3e-8 0 0 0 3e-8 0 0 0 3e-8' # this is the true permeability of the fracture
block = 'fracture'
[]
[permeability2]
type = PorousFlowPermeabilityConst
permeability = '1e-20 0 0 0 1e-20 0 0 0 1e-20'
block = 'matrix1 matrix2'
[]
[]
[Functions]
[dt_controller]
type = PiecewiseConstant
x = '0 30 40 100 200 83200'
y = '0.01 0.1 1 10 100 32'
[]
[]
[Preconditioning]
active = basic
[mumps_is_best_for_parallel_jobs]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[]
[basic]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = 'gmres asm lu NONZERO 2 '
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
end_time = 86400
#dt = 0.01
[TimeStepper]
type = FunctionDT
function = dt_controller
[]
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
[]
[VectorPostprocessors]
[xmass]
type = LineValueSampler
start_point = '0.4 0 0'
end_point = '0.5 0 0'
sort_by = x
num_points = 167
variable = massfrac0
[]
[]
[Outputs]
perf_graph = true
console = true
csv = true
exodus = true
[]
(modules/tensor_mechanics/test/tests/rom_stress_update/ad_verification.i)
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temp_aux]
type = FunctionAux
variable = temperature
function = temp_fcn
execute_on = 'initial timestep_begin'
[]
[]
[Functions]
[rhom_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[rhoi_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 2
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[vmJ2_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 3
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[evm_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 4
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[temp_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 5
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[rhom_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 7
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[rhoi_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 8
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[creep_rate_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 10
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[]
[Modules/TensorMechanics/Master]
[all]
strain = FINITE
add_variables = true
generate_output = 'vonmises_stress'
use_automatic_differentiation = true
[]
[]
[BCs]
[symmx]
type = ADDirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmy]
type = ADDirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmz]
type = ADDirichletBC
variable = disp_z
boundary = back
value = 0
[]
[pull_x]
type = ADDirichletBC
variable = disp_x
boundary = right
value = 1e-5 # This is required to make a non-zero effective trial stress so radial return is engaged
[]
[]
[Materials]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
shear_modulus = 1e13
poissons_ratio = 0.3
[]
[stress]
type = ADComputeMultipleInelasticStress
inelastic_models = rom_stress_prediction
[]
[rom_stress_prediction]
type = ADSS316HLAROMANCEStressUpdateTest
temperature = temperature
effective_inelastic_strain_name = effective_creep_strain
internal_solve_full_iteration_history = true
apply_strain = false
outputs = all
wall_dislocation_density_forcing_function = rhoi_fcn
cell_dislocation_density_forcing_function = rhom_fcn
old_creep_strain_forcing_function = evm_fcn
wall_input_window_low_failure = ERROR
wall_input_window_high_failure = ERROR
cell_input_window_low_failure = ERROR
cell_input_window_high_failure = ERROR
temperature_input_window_low_failure = ERROR
temperature_input_window_high_failure = ERROR
stress_input_window_low_failure = ERROR
stress_input_window_high_failure = ERROR
old_strain_input_window_low_failure = ERROR
old_strain_input_window_high_failure = ERROR
environment_input_window_low_failure = ERROR
environment_input_window_high_failure = ERROR
effective_stress_forcing_function = vmJ2_fcn
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-1 # Nothing is really being solved here, so loose tolerances are okay
dt = 1e-3
end_time = 1e-2
timestep_tolerance = 1e-3
[]
[Postprocessors]
[extrapolation]
type = ElementAverageValue
variable = ROM_extrapolation
outputs = console
[]
[old_strain_in]
type = FunctionValuePostprocessor
function = evm_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[temperature]
type = ElementAverageValue
variable = temperature
outputs = console
[]
[rhom]
type = ElementAverageValue
variable = cell_dislocations
[]
[rhoi]
type = ElementAverageValue
variable = wall_dislocations
[]
[creep_rate]
type = ElementAverageValue
variable = creep_rate
[]
[rhom_in]
type = FunctionValuePostprocessor
function = rhom_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[rhoi_in]
type = FunctionValuePostprocessor
function = rhoi_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[vmJ2_in]
type = FunctionValuePostprocessor
function = vmJ2_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[rhom_soln]
type = FunctionValuePostprocessor
function = rhom_soln_fcn
outputs = console
[]
[rhoi_soln]
type = FunctionValuePostprocessor
function = rhoi_soln_fcn
outputs = console
[]
[creep_rate_soln]
type = FunctionValuePostprocessor
function = creep_rate_soln_fcn
[]
[rhom_diff]
type = ParsedPostprocessor
pp_names = 'rhom_soln rhom'
function = '(rhom_soln - rhom) / rhom_soln'
outputs = console
[]
[rhoi_diff]
type = ParsedPostprocessor
pp_names = 'rhoi_soln rhoi'
function = '(rhoi_soln - rhoi) / rhoi_soln'
outputs = console
[]
[creep_rate_diff]
type = ParsedPostprocessor
pp_names = 'creep_rate creep_rate_soln'
function = '(creep_rate_soln - creep_rate) / creep_rate_soln'
outputs = console
[]
[z_rhom_max_diff]
type = TimeExtremeValue
postprocessor = rhom_diff
value_type = abs_max
[]
[z_rhoi_max_diff]
type = TimeExtremeValue
postprocessor = rhoi_diff
value_type = abs_max
[]
[z_creep_rate_max_diff]
type = TimeExtremeValue
postprocessor = creep_rate_diff
value_type = abs_max
[]
[]
[Outputs]
csv = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
(modules/thermal_hydraulics/test/tests/components/junction_one_to_one_1phase/junction_one_to_one_1phase.i)
# This input file simulates the Sod shock tube using a junction in the middle
# of the domain. The solution should be exactly equivalent to the problem with
# no junction. This test examines the solutions at the junction connections
# and compares them to gold values generated from a version of this input file
# that has no junction.
[GlobalParams]
gravity_vector = '0 0 0'
closures = simple_closures
[]
[Functions]
[p_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '1.0 0.1'
[]
[T_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '1.4 1.12'
[]
[]
[Modules/FluidProperties]
[fp]
type = IdealGasFluidProperties
gamma = 1.4
molar_mass = 11.64024372
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[left_boundary]
type = FreeBoundary1Phase
input = 'left_channel:in'
[]
[left_channel]
type = FlowChannel1Phase
fp = fp
position = '0 0 0'
orientation = '1 0 0'
length = 0.5
n_elems = 50
A = 1.0
initial_T = T_ic_fn
initial_p = p_ic_fn
initial_vel = 0
f = 0
[]
[junction]
type = JunctionOneToOne1Phase
connections = 'left_channel:out right_channel:in'
[]
[right_channel]
type = FlowChannel1Phase
fp = fp
position = '0.5 0 0'
orientation = '1 0 0'
length = 0.5
n_elems = 50
A = 1.0
initial_T = T_ic_fn
initial_p = p_ic_fn
initial_vel = 0
f = 0
[]
[right_boundary]
type = FreeBoundary1Phase
input = 'right_channel:out'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = bdf2
solve_type = NEWTON
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
nl_max_its = 60
l_tol = 1e-4
start_time = 0.0
dt = 1e-3
num_steps = 5
abort_on_solve_fail = true
[]
[Postprocessors]
[rhoA_left]
type = SideAverageValue
variable = rhoA
boundary = left_channel:out
execute_on = 'initial timestep_end'
[]
[rhouA_left]
type = SideAverageValue
variable = rhouA
boundary = left_channel:out
execute_on = 'initial timestep_end'
[]
[rhoEA_left]
type = SideAverageValue
variable = rhoEA
boundary = left_channel:out
execute_on = 'initial timestep_end'
[]
[rhoA_right]
type = SideAverageValue
variable = rhoA
boundary = right_channel:in
execute_on = 'initial timestep_end'
[]
# rhouA_right is added by tests file
[rhoEA_right]
type = SideAverageValue
variable = rhoEA
boundary = right_channel:in
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
show = 'rhoA_left rhouA_left rhoEA_left rhoA_right rhouA_right rhoEA_right'
execute_on = 'initial timestep_end'
[]
(modules/porous_flow/test/tests/dirackernels/hfrompps.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 3
ny = 3
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[pressure]
[]
[temperature]
scaling = 1E-6
[]
[]
[ICs]
[pressure_ic]
type = ConstantIC
variable = pressure
value = 1e6
[]
[temperature_ic]
type = ConstantIC
variable = temperature
value = 400
[]
[]
[Kernels]
[P_time_deriv]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pressure
[]
[P_flux]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pressure
gravity = '0 -9.8 0'
[]
[energy_dot]
type = PorousFlowEnergyTimeDerivative
variable = temperature
[]
[heat_conduction]
type = PorousFlowHeatConduction
variable = temperature
[]
[heat_advection]
type = PorousFlowHeatAdvection
variable = temperature
gravity = '0 -9.8 0'
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'pressure temperature'
number_fluid_phases = 1
number_fluid_components = 1
[]
[pc]
type = PorousFlowCapillaryPressureConst
[]
[]
[Functions]
[mass_flux_in_fn]
type = PiecewiseConstant
direction = left
xy_data = '
0 0
100 0.1
300 0
600 0.1
1400 0
1500 0.2'
[]
[T_in_fn]
type = PiecewiseLinear
xy_data = '
0 400
600 450'
[]
[]
[Modules]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
[]
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
temperature = temperature
[]
[ppss]
type = PorousFlow1PhaseP
porepressure = pressure
capillary_pressure = pc
[]
[massfrac]
type = PorousFlowMassFraction
at_nodes = true
[]
[fluid_props]
type = PorousFlowSingleComponentFluid
phase = 0
fp = simple_fluid
[]
[relperm]
type = PorousFlowRelativePermeabilityCorey
n = 1
phase = 0
[]
[fp_mat]
type = FluidPropertiesMaterialPT
pressure = pressure
temperature = temperature
fp = simple_fluid
[]
[rock_heat]
type = PorousFlowMatrixInternalEnergy
specific_heat_capacity = 830.0
density = 2750
[]
[thermal_conductivity]
type = PorousFlowThermalConductivityIdeal
dry_thermal_conductivity = '2.5 0 0 0 2.5 0 0 0 2.5'
[]
[permeability]
type = PorousFlowPermeabilityConst
permeability = '1.0E-15 0 0 0 1.0E-15 0 0 0 1.0E-14'
[]
[porosity]
type = PorousFlowPorosityConst
porosity = 0.1
[]
[]
[DiracKernels]
[source]
type = PorousFlowPointSourceFromPostprocessor
variable = pressure
mass_flux = mass_flux_in
point = '0.5 0.5 0'
[]
[source_h]
type = PorousFlowPointEnthalpySourceFromPostprocessor
variable = temperature
mass_flux = mass_flux_in
point = '0.5 0.5 0'
T_in = T_in
pressure = pressure
fp = simple_fluid
[]
[]
[Preconditioning]
[preferred]
type = SMP
full = true
petsc_options_iname = '-pc_type'
petsc_options_value = ' lu '
[]
[]
[Postprocessors]
[total_mass]
type = PorousFlowFluidMass
execute_on = 'initial timestep_end'
[]
[total_heat]
type = PorousFlowHeatEnergy
[]
[mass_flux_in]
type = FunctionValuePostprocessor
function = mass_flux_in_fn
execute_on = 'initial timestep_end'
[]
[avg_temp]
type = ElementAverageValue
variable = temperature
execute_on = 'initial timestep_end'
[]
[T_in]
type = FunctionValuePostprocessor
function = T_in_fn
execute_on = 'initial timestep_end'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
nl_abs_tol = 1e-14
dt = 100
end_time = 2000
[]
[Outputs]
csv = true
execute_on = 'initial timestep_end'
file_base = hfrompps
[]
(test/tests/multiapps/sub_cycling_failure/sub_gold.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Functions]
[./dts]
# These mimic the behavior of the failing solve
type = PiecewiseConstant
x = '0 0.1 0.105'
y = '0.01 0.005 0.01'
[../]
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./td]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Executioner]
type = Transient
num_steps = 4
dt = 0.01
[./TimeStepper]
type = FunctionDT
function = dts
[../]
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
(modules/tensor_mechanics/test/tests/rom_stress_update/nonad_verification.i)
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temp_aux]
type = FunctionAux
variable = temperature
function = temp_fcn
execute_on = 'initial timestep_begin'
[]
[]
[Functions]
[rhom_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[rhoi_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 2
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[vmJ2_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 3
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[evm_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 4
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[temp_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 5
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[rhom_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 7
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[rhoi_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 8
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[creep_rate_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 10
format = columns
xy_in_file_only = false
direction = LEFT_INCLUSIVE
[]
[]
[Modules/TensorMechanics/Master]
[all]
strain = FINITE
add_variables = true
generate_output = 'vonmises_stress'
[]
[]
[BCs]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[pull_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 1e-5 # This is required to make a non-zero effective trial stress so radial return is engaged
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
shear_modulus = 1e13
poissons_ratio = 0.3
[]
[stress]
type = ComputeMultipleInelasticStress
inelastic_models = rom_stress_prediction
[]
[rom_stress_prediction]
type = SS316HLAROMANCEStressUpdateTest
temperature = temperature
effective_inelastic_strain_name = effective_creep_strain
internal_solve_full_iteration_history = true
apply_strain = false
outputs = all
wall_dislocation_density_forcing_function = rhoi_fcn
cell_dislocation_density_forcing_function = rhom_fcn
old_creep_strain_forcing_function = evm_fcn
wall_input_window_low_failure = ERROR
wall_input_window_high_failure = ERROR
cell_input_window_low_failure = ERROR
cell_input_window_high_failure = ERROR
temperature_input_window_low_failure = ERROR
temperature_input_window_high_failure = ERROR
stress_input_window_low_failure = ERROR
stress_input_window_high_failure = ERROR
old_strain_input_window_low_failure = ERROR
old_strain_input_window_high_failure = ERROR
environment_input_window_low_failure = ERROR
environment_input_window_high_failure = ERROR
effective_stress_forcing_function = vmJ2_fcn
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-1 # Nothing is really being solved here, so loose tolerances are okay
dt = 1e-3
end_time = 1e-2
timestep_tolerance = 1e-3
[]
[Postprocessors]
[extrapolation]
type = ElementAverageValue
variable = ROM_extrapolation
outputs = console
[]
[old_strain_in]
type = FunctionValuePostprocessor
function = evm_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[temperature]
type = ElementAverageValue
variable = temperature
outputs = console
[]
[rhom]
type = ElementAverageValue
variable = cell_dislocations
[]
[rhoi]
type = ElementAverageValue
variable = wall_dislocations
[]
[creep_rate]
type = ElementAverageValue
variable = creep_rate
[]
[rhom_in]
type = FunctionValuePostprocessor
function = rhom_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[rhoi_in]
type = FunctionValuePostprocessor
function = rhoi_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[vmJ2_in]
type = FunctionValuePostprocessor
function = vmJ2_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[rhom_soln]
type = FunctionValuePostprocessor
function = rhom_soln_fcn
outputs = console
[]
[rhoi_soln]
type = FunctionValuePostprocessor
function = rhoi_soln_fcn
outputs = console
[]
[creep_rate_soln]
type = FunctionValuePostprocessor
function = creep_rate_soln_fcn
[]
[rhom_diff]
type = ParsedPostprocessor
pp_names = 'rhom_soln rhom'
function = '(rhom_soln - rhom) / rhom_soln'
outputs = console
[]
[rhoi_diff]
type = ParsedPostprocessor
pp_names = 'rhoi_soln rhoi'
function = '(rhoi_soln - rhoi) / rhoi_soln'
outputs = console
[]
[creep_rate_diff]
type = ParsedPostprocessor
pp_names = 'creep_rate creep_rate_soln'
function = '(creep_rate_soln - creep_rate) / creep_rate_soln'
outputs = console
[]
[z_rhom_max_diff]
type = TimeExtremeValue
postprocessor = rhom_diff
value_type = abs_max
[]
[z_rhoi_max_diff]
type = TimeExtremeValue
postprocessor = rhoi_diff
value_type = abs_max
[]
[z_creep_rate_max_diff]
type = TimeExtremeValue
postprocessor = creep_rate_diff
value_type = abs_max
[]
[]
[Outputs]
csv = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
(modules/rdg/test/tests/advection_1d/1d_aefv_square_wave.i)
############################################################
[GlobalParams]
order = CONSTANT
family = MONOMIAL
u = u
slope_limiting = lslope
implicit = false
[]
############################################################
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 1
nx = 100
[]
############################################################
[Functions]
[./ic_u]
type = PiecewiseConstant
axis = x
direction = right
xy_data = '0.1 0.5
0.6 1.0
1.0 0.5'
[../]
[]
############################################################
[UserObjects]
[./lslope]
type = AEFVSlopeLimitingOneD
execute_on = 'linear'
scheme = 'none' #none | minmod | mc | superbee
[../]
[./internal_side_flux]
type = AEFVUpwindInternalSideFlux
execute_on = 'linear'
[../]
[./free_outflow_bc]
type = AEFVFreeOutflowBoundaryFlux
execute_on = 'linear'
[../]
[]
############################################################
[Variables]
[./u]
[../]
[]
############################################################
[ICs]
[./u_ic]
type = FunctionIC
variable = 'u'
function = ic_u
[../]
[]
############################################################
[Kernels]
[./time_u]
implicit = true
type = TimeDerivative
variable = u
[../]
[]
############################################################
[DGKernels]
[./concentration]
type = AEFVKernel
variable = u
component = 'concentration'
flux = internal_side_flux
[../]
[]
############################################################
[BCs]
[./concentration]
type = AEFVBC
boundary = 'left right'
variable = u
component = 'concentration'
flux = free_outflow_bc
[../]
[]
############################################################
[Materials]
[./aefv]
type = AEFVMaterial
block = 0
[../]
[]
############################################################
[Executioner]
type = Transient
[./TimeIntegrator]
type = ExplicitMidpoint
[../]
solve_type = 'LINEAR'
l_tol = 1e-4
nl_rel_tol = 1e-20
nl_abs_tol = 1e-8
nl_max_its = 60
start_time = 0.0
num_steps = 4 # 4 | 400 for complete run
dt = 5e-4
dtmin = 1e-6
[]
[Outputs]
[./Exodus]
type = Exodus
file_base = 1d_aefv_square_wave_none_out
interval = 2
[../]
perf_graph = true
[]
(test/tests/time_steppers/iteration_adaptive/adapt_tstep_reject_large_dt.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 50
ny = 2
xmax = 5
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Functions]
[./timestep_fn]
type = PiecewiseConstant
x = '0. 10.0'
y = '10.0 1.0'
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./dt]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 10
[../]
[./right]
type = NeumannBC
variable = u
boundary = right
value = -1
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
end_time = 12.0
dtmax = 10.0
dtmin = 0.1
[./TimeStepper]
type = IterationAdaptiveDT
timestep_limiting_postprocessor = timestep_pp
reject_large_step = true
reject_large_step_threshold = 0.5
dt = 3.0
growth_factor = 1.0
[../]
[]
[Postprocessors]
[./_dt]
type = TimestepSize
[../]
# Just use a simple postprocessor to test capability to limit the time step length to the postprocessor value
[./timestep_pp]
type = FunctionValuePostprocessor
function = timestep_fn
[../]
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
checkpoint = true
[]
(modules/tensor_mechanics/test/tests/lagrangian/total/special/rotate.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Kernels]
[sdx]
type = TotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = TotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = TotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[angles]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0 1.5707963'
[]
[stretch]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.1 0.1'
[]
[move_y]
type = ParsedFunction
value = 'y*cos(theta) - z * (1 + a)*sin(theta) - y'
vars = 'a theta'
vals = 'stretch angles'
[]
[move_z]
type = ParsedFunction
value = 'y*sin(theta) + z*(1+a)*cos(theta) - z'
vars = 'a theta'
vals = 'stretch angles'
[]
[dts]
type = PiecewiseConstant
x = '0 1 2'
y = '0.1 0.001 0.001'
direction = 'LEFT_INCLUSIVE'
[]
[]
[BCs]
[fix]
type = DirichletBC
preset = true
value = 0.0
boundary = left
variable = disp_x
[]
[front_y]
type = FunctionDirichletBC
boundary = front
variable = disp_y
function = move_y
preset = true
[]
[back_y]
type = FunctionDirichletBC
boundary = back
variable = disp_y
function = move_y
preset = true
[]
[front_z]
type = FunctionDirichletBC
boundary = front
variable = disp_z
function = move_z
preset = true
[]
[back_z]
type = FunctionDirichletBC
boundary = back
variable = disp_z
function = move_z
preset = true
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[sxx]
type = ElementAverageValue
variable = stress_xx
[]
[syy]
type = ElementAverageValue
variable = stress_yy
[]
[szz]
type = ElementAverageValue
variable = stress_zz
[]
[syz]
type = ElementAverageValue
variable = stress_yz
[]
[sxz]
type = ElementAverageValue
variable = stress_xz
[]
[sxy]
type = ElementAverageValue
variable = stress_xy
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
start_time = 0.0
end_time = 2.0
[TimeStepper]
type = FunctionDT
function = dts
interpolate = False
[]
[]
[Outputs]
exodus = true
csv = true
[]
(modules/porous_flow/examples/flow_through_fractured_media/fine_transient.i)
# Using a mixed-dimensional mesh
# Transient flow and solute transport along a fracture in a porous matrix
# advective dominated flow in the fracture and diffusion into the porous matrix
#
# Note that fine_steady.i must be run to initialise the porepressure properly
[Mesh]
file = 'gold/fine_steady_out.e'
[]
[GlobalParams]
PorousFlowDictator = dictator
gravity = '0 0 0'
[]
[Variables]
[pp]
initial_from_file_var = pp
initial_from_file_timestep = 1
[]
[massfrac0]
[]
[]
[AuxVariables]
[velocity_x]
family = MONOMIAL
order = CONSTANT
block = fracture
[]
[velocity_y]
family = MONOMIAL
order = CONSTANT
block = fracture
[]
[]
[AuxKernels]
[velocity_x]
type = PorousFlowDarcyVelocityComponentLowerDimensional
variable = velocity_x
component = x
aperture = 6E-4
[]
[velocity_y]
type = PorousFlowDarcyVelocityComponentLowerDimensional
variable = velocity_y
component = y
aperture = 6E-4
[]
[]
[ICs]
[massfrac0]
type = ConstantIC
variable = massfrac0
value = 0
[]
[]
[BCs]
[top]
type = DirichletBC
value = 0
variable = massfrac0
boundary = top
[]
[bottom]
type = DirichletBC
value = 1
variable = massfrac0
boundary = bottom
[]
[ptop]
type = DirichletBC
variable = pp
boundary = top
value = 1e6
[]
[pbottom]
type = DirichletBC
variable = pp
boundary = bottom
value = 1.002e6
[]
[]
[Kernels]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pp
[]
[adv0]
type = PorousFlowAdvectiveFlux
fluid_component = 0
variable = pp
[]
[diff0]
type = PorousFlowDispersiveFlux
fluid_component = 0
variable = pp
disp_trans = 0
disp_long = 0
[]
[mass1]
type = PorousFlowMassTimeDerivative
fluid_component = 1
variable = massfrac0
[]
[adv1]
type = PorousFlowAdvectiveFlux
fluid_component = 1
variable = massfrac0
[]
[diff1]
type = PorousFlowDispersiveFlux
fluid_component = 1
variable = massfrac0
disp_trans = 0
disp_long = 0
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = 'pp massfrac0'
number_fluid_phases = 1
number_fluid_components = 2
[]
[]
[Modules]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
viscosity = 1e-3
[]
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[ppss]
type = PorousFlow1PhaseFullySaturated
porepressure = pp
[]
[massfrac]
type = PorousFlowMassFraction
mass_fraction_vars = massfrac0
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[poro_fracture]
type = PorousFlowPorosityConst
porosity = 6e-4 # = a * phif
block = 'fracture'
[]
[poro_matrix]
type = PorousFlowPorosityConst
porosity = 0.1
block = 'matrix1 matrix2'
[]
[diff1]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1e-9 1e-9'
tortuosity = 1.0
block = 'fracture'
[]
[diff2]
type = PorousFlowDiffusivityConst
diffusion_coeff = '1e-9 1e-9'
tortuosity = 0.1
block = 'matrix1 matrix2'
[]
[relp]
type = PorousFlowRelativePermeabilityConst
phase = 0
[]
[permeability_fracture]
type = PorousFlowPermeabilityConst
permeability = '1.8e-11 0 0 0 1.8e-11 0 0 0 1.8e-11' # kf=3e-8, a=6e-4m. 1.8e-11 = kf * a
block = 'fracture'
[]
[permeability_matrix]
type = PorousFlowPermeabilityConst
permeability = '1e-20 0 0 0 1e-20 0 0 0 1e-20'
block = 'matrix1 matrix2'
[]
[]
[Functions]
[dt_controller]
type = PiecewiseConstant
x = '0 30 40 100 200 83200'
y = '0.01 0.1 1 10 100 32'
[]
[]
[Preconditioning]
active = basic
[mumps_is_best_for_parallel_jobs]
type = SMP
full = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu mumps'
[]
[basic]
type = SMP
full = true
petsc_options_iname = '-ksp_type -pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
petsc_options_value = 'gmres asm lu NONZERO 2 '
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
end_time = 86400
[TimeStepper]
type = FunctionDT
function = dt_controller
[]
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-14
nl_abs_tol = 1e-9
[]
[VectorPostprocessors]
[xmass]
type = LineValueSampler
start_point = '0.4 0 0'
end_point = '0.5 0 0'
sort_by = x
num_points = 167
variable = massfrac0
[]
[]
[Outputs]
perf_graph = true
console = true
csv = true
exodus = true
[]
(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'
[]
[]
[Modules/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/tensor_mechanics/test/tests/rom_stress_update/3tile.i)
# Tests the tile and partition assembly for overlapping partitions and
# a variety of different overlapping tile conditions.
# Creep_rate should always be 2.718281828459
endtime = 1.9
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[temperature]
[]
[]
[AuxKernels]
[temp_aux]
type = FunctionAux
variable = temperature
function = temp_fcn
execute_on = 'initial timestep_begin'
[]
[]
[Functions]
[rhom_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12 5.7e12'
direction = LEFT_INCLUSIVE
[]
[rhoi_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11 4.83e11'
direction = LEFT_INCLUSIVE
[]
[vmJ2_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '25.68 25.68 45.0 55.28 63.0 67.12 85.0 85.0 85.0 85.0 85.0 85.0 55.28 63.0 67.12 63.0 63.0 55.28 96.72 63.0'
direction = LEFT_INCLUSIVE
[]
[evm_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01'
direction = LEFT_INCLUSIVE
[]
[temp_fcn]
type = PiecewiseConstant
x = '0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9'
y = '940.0 940.0 940.0 940.0 940.0 940.0 940.0 905.0 897.0 881.0 860.0 821.0 860.0 881.0 897.0 897.0 905.0 897.0 860.0 860.0'
direction = LEFT_INCLUSIVE
[]
[]
[Modules/TensorMechanics/Master]
[all]
strain = FINITE
add_variables = true
generate_output = 'vonmises_stress'
[]
[]
[BCs]
[symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[]
[symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[]
[symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[]
[pull_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 1e-5 # This is required to make a non-zero effective trial stress so radial return is engaged
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
shear_modulus = 1e13
poissons_ratio = 0.3
[]
[stress]
type = ComputeMultipleInelasticStress
inelastic_models = rom_stress_prediction
[]
[rom_stress_prediction]
type = LAROMANCE3TileTest
temperature = temperature
effective_inelastic_strain_name = effective_creep_strain
internal_solve_full_iteration_history = true
apply_strain = false
outputs = all
verbose = true
wall_dislocation_density_forcing_function = rhoi_fcn
cell_dislocation_density_forcing_function = rhom_fcn
old_creep_strain_forcing_function = evm_fcn
wall_input_window_low_failure = ERROR
wall_input_window_high_failure = ERROR
cell_input_window_low_failure = ERROR
cell_input_window_high_failure = ERROR
temperature_input_window_low_failure = DONOTHING
temperature_input_window_high_failure = ERROR
stress_input_window_low_failure = DONOTHING
stress_input_window_high_failure = ERROR
old_strain_input_window_low_failure = ERROR
old_strain_input_window_high_failure = ERROR
environment_input_window_low_failure = ERROR
environment_input_window_high_failure = ERROR
effective_stress_forcing_function = vmJ2_fcn
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_abs_tol = 1e-1 # Nothing is really being solved here, so loose tolerances are okay
dt = 0.1
end_time = ${endtime}
timestep_tolerance = 1e-3
[]
[Postprocessors]
[extrapolation]
type = ElementAverageValue
variable = ROM_extrapolation
outputs = console
[]
[old_strain_in]
type = FunctionValuePostprocessor
function = evm_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[partition_weight]
type = ElementAverageMaterialProperty
mat_prop = partition_weight
[]
[rhom_in]
type = FunctionValuePostprocessor
function = rhom_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[rhoi_in]
type = FunctionValuePostprocessor
function = rhoi_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[]
[vmJ2_in]
type = FunctionValuePostprocessor
function = vmJ2_fcn
execute_on = 'TIMESTEP_END initial'
[]
[creep_rate]
type = ElementAverageMaterialProperty
mat_prop = creep_rate
[]
[rhom_rate]
type = ElementAverageMaterialProperty
mat_prop = cell_dislocation_rate
[]
[rhoi_rate]
type = ElementAverageMaterialProperty
mat_prop = wall_dislocation_rate
[]
[]
[Outputs]
csv = true
execute_on = 'INITIAL TIMESTEP_END FINAL'
[]
(test/tests/postprocessors/element_average_material_property/element_average_material_property.i)
[Mesh]
type = GeneratedMesh
dim = 1
nx = 4
xmin = 0
xmax = 1
[]
[Functions]
[./fn]
type = PiecewiseConstant
axis = x
x = '0 0.25 0.50 0.75'
y = '5 2 3 6'
[../]
[]
[Materials]
[./mat]
type = GenericFunctionMaterial
prop_names = 'mat_prop'
prop_values = 'fn'
[../]
[]
[Postprocessors]
[./avg]
type = ElementAverageMaterialProperty
mat_prop = mat_prop
execute_on = 'INITIAL'
[../]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
execute_on = 'INITIAL'
[]
(modules/tensor_mechanics/test/tests/rom_stress_update/verification.i)
[Mesh]
type = GeneratedMesh
dim = 3
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temperature]
[../]
[]
[AuxKernels]
[./temp_aux]
type = FunctionAux
variable = temperature
function = temp_fcn
execute_on = 'initial timestep_begin'
[../]
[]
[Functions]
[./rhom_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
xy_in_file_only = false
direction = right
[../]
[./rhoi_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 2
format = columns
xy_in_file_only = false
direction = right
[../]
[./vmJ2_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 3
format = columns
xy_in_file_only = false
direction = right
[../]
[./evm_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 4
format = columns
xy_in_file_only = false
direction = right
[../]
[./temp_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 5
format = columns
xy_in_file_only = false
direction = right
[../]
[./rhom_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 7
format = columns
xy_in_file_only = false
direction = right
[../]
[./rhoi_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 8
format = columns
xy_in_file_only = false
direction = right
[../]
[./creep_rate_soln_fcn]
type = PiecewiseConstant
data_file = ss316_verification_data.csv
x_index_in_file = 0
y_index_in_file = 10
format = columns
xy_in_file_only = false
direction = right
[../]
[./rhom_diff_fcn]
type = ParsedFunction
vars = 'rhom_soln rhom'
vals = 'rhom_soln rhom'
value = 'abs(rhom_soln - rhom) / rhom_soln'
[../]
[./rhoi_diff_fcn]
type = ParsedFunction
vars = 'rhoi_soln rhoi'
vals = 'rhoi_soln rhoi'
value = 'abs(rhoi_soln - rhoi) / rhoi_soln'
[../]
[./creep_rate_diff_fcn]
type = ParsedFunction
vars = 'creep_rate_soln creep_rate'
vals = 'creep_rate_soln creep_rate'
value = 'abs(creep_rate_soln - creep_rate) / creep_rate_soln'
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
add_variables = true
generate_output = 'vonmises_stress'
[../]
[]
[BCs]
[./symmx]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./symmy]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0
[../]
[./symmz]
type = DirichletBC
variable = disp_z
boundary = back
value = 0
[../]
[./pressure_x]
type = Pressure
variable = disp_x
boundary = right
function = vmJ2_fcn
factor = 0.5e6
[../]
[./pressure_y]
type = Pressure
variable = disp_y
boundary = top
function = vmJ2_fcn
factor = -0.5e6
[../]
[./pressure_z]
type = Pressure
variable = disp_z
boundary = front
function = vmJ2_fcn
factor = -0.5e6
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e11
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeMultipleInelasticStress
inelastic_models = rom_stress_prediction
[../]
[./rom_stress_prediction]
type = SS316HLAROMANCEStressUpdateTest
temperature = temperature
effective_inelastic_strain_name = effective_creep_strain
internal_solve_full_iteration_history = true
outputs = all
wall_dislocation_density_forcing_function = rhoi_fcn
cell_dislocation_density_forcing_function = rhom_fcn
old_creep_strain_forcing_function = evm_fcn
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_ksp_ew -snes_converged_reason -ksp_converged_reason'# -ksp_error_if_not_converged -snes_error_if_not_converged'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
automatic_scaling = true
compute_scaling_once = false
nl_abs_tol = 1e-10
dt = 1e-3
end_time = 1e-2
[]
[Postprocessors]
[./effective_strain_avg]
type = ElementAverageValue
variable = effective_creep_strain
outputs = console
[../]
[./temperature]
type = ElementAverageValue
variable = temperature
outputs = console
[../]
[./rhom]
type = ElementAverageValue
variable = cell_dislocations
[../]
[./rhoi]
type = ElementAverageValue
variable = wall_dislocations
[../]
[./vonmises_stress]
type = ElementAverageValue
variable = vonmises_stress
outputs = console
[../]
[./creep_rate]
type = ElementAverageValue
variable = creep_rate
[../]
[./rhom_in]
type = FunctionValuePostprocessor
function = rhom_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[../]
[./rhoi_in]
type = FunctionValuePostprocessor
function = rhoi_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[../]
[./vmJ2_in]
type = FunctionValuePostprocessor
function = vmJ2_fcn
execute_on = 'TIMESTEP_END initial'
outputs = console
[../]
[./rhom_soln]
type = FunctionValuePostprocessor
function = rhom_soln_fcn
outputs = console
[../]
[./rhoi_soln]
type = FunctionValuePostprocessor
function = rhoi_soln_fcn
outputs = console
[../]
[./creep_rate_soln]
type = FunctionValuePostprocessor
function = creep_rate_soln_fcn
outputs = console
[../]
[./rhom_diff]
type = FunctionValuePostprocessor
function = rhom_diff_fcn
outputs = console
[../]
[./rhoi_diff]
type = FunctionValuePostprocessor
function = rhoi_diff_fcn
outputs = console
[../]
[./creep_rate_diff]
type = FunctionValuePostprocessor
function = creep_rate_diff_fcn
outputs = console
[../]
[./rhom_max_diff]
type = TimeExtremeValue
postprocessor = rhom_diff
outputs = console
[../]
[./rhoi_max_diff]
type = TimeExtremeValue
postprocessor = rhoi_diff
outputs = console
[../]
[./creep_rate_max_diff]
type = TimeExtremeValue
postprocessor = creep_rate_diff
outputs = console
[../]
[]
[Outputs]
csv = true
file_base = 'verification_1e-3_out'
[]
(test/tests/ics/postprocessor_interface/postprocessor_interface.i)
[Mesh]
type = GeneratedMesh
dim = 1
xmin = 0
xmax = 10
nx = 10
[]
[Functions]
# The integral of this function is 2*3 + 3*6 + 5*2 = 34
[test_fn]
type = PiecewiseConstant
axis = x
x = '0 2 5'
y = '3 6 2'
[]
[]
[Postprocessors]
[integral_pp]
type = FunctionElementIntegral
function = test_fn
execute_on = 'INITIAL'
[]
[pp2]
type = FunctionValuePostprocessor
function = 6
execute_on = 'INITIAL'
[]
[]
[AuxVariables]
[test_var]
order = CONSTANT
family = MONOMIAL
[]
[]
[ICs]
[test_var_ic]
type = PostprocessorIC
variable = test_var
pp1 = integral_pp
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Postprocessors]
# This PP should have the sum of the other two PPs: 34 + 6 = 40
[test_var_pp]
type = ElementAverageValue
variable = test_var
execute_on = 'INITIAL'
[]
[]
[Outputs]
csv = true
[]
(test/tests/time_steppers/iteration_adaptive/piecewise_constant.i)
[Mesh]
type = GeneratedMesh
dim = 1
[]
[Problem]
solve = false
[]
[Functions]
[./temp_spike]
type = PiecewiseConstant
x = '0 1 1.1 1.2 2'
y = '1 1 2 1 1'
[../]
[]
[Executioner]
type = Transient
end_time = 2.0
verbose = true
[./TimeStepper]
type = IterationAdaptiveDT
dt = 0.9
timestep_limiting_function = temp_spike
force_step_every_function_point = true
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Outputs]
csv = true
[]
(modules/thermal_hydraulics/test/tests/problems/double_rarefaction/1phase.i)
# Riemann problem that has a double-rarefaction solution
[GlobalParams]
gravity_vector = '0 0 0'
rdg_slope_reconstruction = minmod
closures = simple_closures
[]
[Functions]
[vel_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = ' 0.0 0.1'
y = '-1.0 1.0'
[]
[]
[Modules/FluidProperties]
[fp]
type = IdealGasFluidProperties
gamma = 1.4
molar_mass = 11.64024372
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[pipe]
type = FlowChannel1Phase
fp = fp
# geometry
position = '-1 0 0'
orientation = '1 0 0'
length = 2.0
n_elems = 100
A = 1.0
# IC
initial_T = 0.04
initial_p = 0.2
initial_vel = vel_ic_fn
f = 0
[]
[left_boundary]
type = FreeBoundary1Phase
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.6
start_time = 0.0
dt = 1e-3
num_steps = 600
abort_on_solve_fail = true
[]
[Outputs]
file_base = '1phase'
velocity_as_vector = false
execute_on = 'initial timestep_end'
[out]
type = Exodus
show = 'p T vel'
[]
[]
(modules/thermal_hydraulics/test/tests/components/shaft_connected_turbine_1phase/turbine_startup.i)
# This test tests that the turbine can startup from rest and reach full power.
# The mass flow rate for the inlet component is ramped up over 10s. The dyno
# component and pid_ctrl controler are used to maintain the turbine's rated shaft
# speed. The turbine should supply ~1e6 W of power to the shaft by the end of the test.
omega_rated = 450
mdot = 5.0
T_in = 1000.0
p_out = 1e6
[GlobalParams]
f = 1
scaling_factor_1phase = '0.04 0.04 0.04e-5'
closures = simple_closures
n_elems = 20
initial_T = ${T_in}
initial_p = ${p_out}
initial_vel = 0
initial_vel_x = 0
initial_vel_y = 0
initial_vel_z = 0
[]
[Modules/FluidProperties]
[eos]
type = IdealGasFluidProperties
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[ch_in]
type = FlowChannel1Phase
position = '-1 0 0'
orientation = '1 0 0'
length = 1
A = 0.1
D_h = 1
fp = eos
[]
[inlet]
type = InletMassFlowRateTemperature1Phase
input = 'ch_in:in'
m_dot = 0
T = ${T_in}
[]
[turbine]
type = ShaftConnectedTurbine1Phase
inlet = 'ch_in:out'
outlet = 'ch_out:in'
position = '0 0 0'
scaling_factor_rhoEV = 1e-5
A_ref = 0.1
volume = 0.0002
inertia_coeff = '1 1 1 1'
inertia_const = 1.61397
speed_cr_I = 1e12
speed_cr_fr = 0
tau_fr_coeff = '0 0 0 0'
tau_fr_const = 0
omega_rated = ${omega_rated}
D_wheel = 0.4
head_coefficient = head
power_coefficient = power
[]
[ch_out]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
A = 0.1
D_h = 1
fp = eos
[]
[outlet]
type = Outlet1Phase
input = 'ch_out:out'
p = ${p_out}
[]
[dyno]
type = ShaftConnectedMotor
inertia = 10
torque = -450
[]
[shaft]
type = Shaft
connected_components = 'turbine dyno'
initial_speed = ${omega_rated}
[]
[]
[Functions]
[head]
type = PiecewiseLinear
x = '0 7e-3 1e-2'
y = '0 15 20'
[]
[power]
type = PiecewiseLinear
x = '0 6e-3 1e-2'
y = '0 0.05 0.18'
[]
[mfr_fn]
type = PiecewiseLinear
x = '0 10'
y = '1e-6 ${mdot}'
[]
[dts]
type = PiecewiseConstant
y = '5e-3 1e-2 5e-2 5e-1'
x = '0 0.5 1 10'
[]
[]
[ControlLogic]
[mfr_cntrl]
type = TimeFunctionComponentControl
component = inlet
parameter = m_dot
function = mfr_fn
[]
[speed_set_point]
type = GetFunctionValueControl
function = ${omega_rated}
[]
[pid_ctrl]
type = PIDControl
input = omega
set_point = speed_set_point:value
K_i = 2
K_p = 5
K_d = 5
initial_value = -450
[]
[set_torque_value]
type = SetComponentRealValueControl
component = dyno
parameter = torque
value = pid_ctrl:output
[]
[]
[Postprocessors]
[omega]
type = ScalarVariable
variable = shaft:omega
execute_on = 'initial timestep_end'
[]
[flow_coefficient]
type = ScalarVariable
variable = turbine:flow_coeff
execute_on = 'initial timestep_end'
[]
[delta_p]
type = ScalarVariable
variable = turbine:delta_p
execute_on = 'initial timestep_end'
[]
[power]
type = ScalarVariable
variable = turbine:power
execute_on = 'initial timestep_end'
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'implicit-euler'
start_time = 0
[TimeStepper]
type = FunctionDT
function = dts
[]
end_time = 20
abort_on_solve_fail = true
solve_type = 'PJFNK'
line_search = 'basic'
nl_rel_tol = 1e-6
nl_abs_tol = 1e-4
nl_max_its = 30
l_tol = 1e-4
l_max_its = 20
[Quadrature]
type = GAUSS
order = SECOND
[]
[]
[Outputs]
[console]
type = Console
max_rows = 1
[]
print_linear_residuals = false
[]
(modules/tensor_mechanics/test/tests/lagrangian/updated/special/rotate.i)
# Simple 3D test
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
large_kinematics = true
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[Mesh]
[msh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = -0.5
xmax = 0.5
ymin = -0.5
ymax = 0.5
zmin = -0.5
zmax = 0.5
[]
[]
[Kernels]
[sdx]
type = UpdatedLagrangianStressDivergence
variable = disp_x
component = 0
use_displaced_mesh = true
[]
[sdy]
type = UpdatedLagrangianStressDivergence
variable = disp_y
component = 1
use_displaced_mesh = true
[]
[sdz]
type = UpdatedLagrangianStressDivergence
variable = disp_z
component = 2
use_displaced_mesh = true
[]
[]
[AuxVariables]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xy]
order = CONSTANT
family = MONOMIAL
[]
[stress_yz]
order = CONSTANT
family = MONOMIAL
[]
[stress_xz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[angles]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0 1.5707963'
[]
[stretch]
type = PiecewiseLinear
x = '0 1 2'
y = '0 0.1 0.1'
[]
[move_y]
type = ParsedFunction
value = 'y*cos(theta) - z * (1 + a)*sin(theta) - y'
vars = 'a theta'
vals = 'stretch angles'
[]
[move_z]
type = ParsedFunction
value = 'y*sin(theta) + z*(1+a)*cos(theta) - z'
vars = 'a theta'
vals = 'stretch angles'
[]
[dts]
type = PiecewiseConstant
x = '0 1 2'
y = '0.1 0.001 0.001'
direction = 'LEFT_INCLUSIVE'
[]
[]
[BCs]
[fix]
type = DirichletBC
preset = true
value = 0.0
boundary = left
variable = disp_x
[]
[front_y]
type = FunctionDirichletBC
boundary = front
variable = disp_y
function = move_y
preset = true
[]
[back_y]
type = FunctionDirichletBC
boundary = back
variable = disp_y
function = move_y
preset = true
[]
[front_z]
type = FunctionDirichletBC
boundary = front
variable = disp_z
function = move_z
preset = true
[]
[back_z]
type = FunctionDirichletBC
boundary = back
variable = disp_z
function = move_z
preset = true
[]
[]
[AuxKernels]
[stress_xx]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[stress_xy]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xy
index_i = 0
index_j = 1
execute_on = timestep_end
[]
[stress_xz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_xz
index_i = 0
index_j = 2
execute_on = timestep_end
[]
[stress_yz]
type = RankTwoAux
rank_two_tensor = cauchy_stress
variable = stress_yz
index_i = 1
index_j = 2
execute_on = timestep_end
[]
[]
[Materials]
[elastic_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1000.0
poissons_ratio = 0.25
[]
[compute_stress]
type = ComputeLagrangianLinearElasticStress
[]
[compute_strain]
type = ComputeLagrangianStrain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Postprocessors]
[sxx]
type = ElementAverageValue
variable = stress_xx
[]
[syy]
type = ElementAverageValue
variable = stress_yy
[]
[szz]
type = ElementAverageValue
variable = stress_zz
[]
[syz]
type = ElementAverageValue
variable = stress_yz
[]
[sxz]
type = ElementAverageValue
variable = stress_xz
[]
[sxy]
type = ElementAverageValue
variable = stress_xy
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
line_search = none
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
l_max_its = 2
l_tol = 1e-14
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
start_time = 0.0
end_time = 2.0
[TimeStepper]
type = FunctionDT
function = dts
interpolate = False
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/functions/piecewise_constant/piecewise_constant.i)
# This tests the PiecewiseConstant function.
# There are four variables and four functions: a,b,c, and d. The diffusion equation is "solved"
# for each of these variables with a boundary condition of type FunctionDirchletBC applied to a boundary
# (i.e. node set) that includes every node in the element, so the solution is the boundary condition defined by the function.
# Each boundary condition uses a function of type PiecewiseConstant.
#
# The value of the variables should correspond to the function.
[Mesh]
file = cube.e
# This problem only has 1 element, so using DistributedMesh in parallel
# isn't really an option, and we don't care that much about DistributedMesh
# in serial.
parallel_type = replicated
[]
[Variables]
[./aVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[../]
[./bVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[../]
[./cVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[../]
[./dVar]
order = FIRST
family = LAGRANGE
initial_condition = 0.1
[../]
[]
[Functions]
[./a]
type = PiecewiseConstant
xy_data = '0.5 0.1
1.0 0.2
1.5 0.1'
direction = left
[../]
[./b]
type = PiecewiseConstant
x = '0.5 1.0 1.5'
y = '0.1 0.2 0.1'
direction = right
[../]
[./c]
type = PiecewiseConstant
data_file = pc.csv
direction = left
format = columns
[../]
[./d]
type = PiecewiseConstant
data_file = pc.csv
direction = right
format = columns
[../]
[]
[Kernels]
[./diffa]
type = Diffusion
variable = aVar
[../]
[./diffb]
type = Diffusion
variable = bVar
[../]
[./diffc]
type = Diffusion
variable = cVar
[../]
[./diffd]
type = Diffusion
variable = dVar
[../]
[]
[BCs]
[./a]
type = FunctionDirichletBC
variable = aVar
boundary = '1'
function = a
[../]
[./b]
type = FunctionDirichletBC
variable = bVar
boundary = '1'
function = b
[../]
[./c]
type = FunctionDirichletBC
variable = cVar
boundary = '1'
function = c
[../]
[./d]
type = FunctionDirichletBC
variable = dVar
boundary = '1'
function = d
[../]
[]
[Executioner]
type = Transient
dt = 0.2
end_time = 3
nl_rel_tol = 1e-12
[]
[Outputs]
exodus = true
[]
(modules/porous_flow/test/tests/dirackernels/frompps.i)
# Test PorousFlowPointSourceFromPostprocessor DiracKernel
[Mesh]
type = GeneratedMesh
dim = 2
bias_x = 1.1
bias_y = 1.1
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Functions]
[mass_flux_fn]
type = PiecewiseConstant
direction = left
xy_data = '
0 0
100 -0.1
300 0
600 -0.1
1400 0
1500 0.2
2000 0.2'
[]
[]
[Variables]
[pp]
[]
[]
[Kernels]
[mass0]
type = PorousFlowMassTimeDerivative
fluid_component = 0
variable = pp
[]
[]
[UserObjects]
[dictator]
type = PorousFlowDictator
porous_flow_vars = pp
number_fluid_phases = 1
number_fluid_components = 1
[]
[]
[Modules]
[FluidProperties]
[simple_fluid]
type = SimpleFluidProperties
bulk_modulus = 2e9
density0 = 1000
thermal_expansion = 0
[]
[]
[]
[Materials]
[temperature]
type = PorousFlowTemperature
[]
[ppss]
type = PorousFlow1PhaseFullySaturated
porepressure = pp
[]
[massfrac]
type = PorousFlowMassFraction
[]
[simple_fluid]
type = PorousFlowSingleComponentFluid
fp = simple_fluid
phase = 0
[]
[porosity]
type = PorousFlowPorosityConst
porosity = 0.2
[]
[]
[Postprocessors]
[total_mass]
type = PorousFlowFluidMass
execute_on = 'initial timestep_end'
[]
[mass_flux_in]
type = FunctionValuePostprocessor
function = mass_flux_fn
execute_on = 'initial timestep_begin'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = Newton
nl_abs_tol = 1e-14
dt = 100
end_time = 2000
[]
[Outputs]
perf_graph = true
csv = true
execute_on = 'initial timestep_end'
file_base = frompps
[]
[ICs]
[PressureIC]
variable = pp
type = ConstantIC
value = 20e6
[]
[]
[DiracKernels]
[source]
type = PorousFlowPointSourceFromPostprocessor
variable = pp
mass_flux = mass_flux_in
point = '0.5 0.5 0'
[]
[]
(modules/thermal_hydraulics/test/tests/components/hs_boundary_ambient_convection/plate.i)
T_hs = 300
T_ambient1 = 500
htc1 = 100
T_ambient2 = 400
htc2 = 300
t = 0.001
L = 2
thickness = 0.5
depth = 0.6
# SS 316
density = 8.0272e3
specific_heat_capacity = 502.1
conductivity = 16.26
A = ${fparse L * depth}
heat_flux_avg = ${fparse 0.5 * (htc1 * (T_ambient1 - T_hs) + htc2 * (T_ambient2 - T_hs))}
heat_flux_integral = ${fparse heat_flux_avg * A}
scale = 0.8
E_change = ${fparse scale * heat_flux_integral * t}
[Functions]
[T_ambient_fn]
type = PiecewiseConstant
axis = z
x = '0 1'
y = '${T_ambient1} ${T_ambient2}'
[]
[htc_ambient_fn]
type = PiecewiseConstant
axis = z
x = '0 1'
y = '${htc1} ${htc2}'
[]
[]
[HeatStructureMaterials]
[hs_mat]
type = SolidMaterialProperties
rho = ${density}
cp = ${specific_heat_capacity}
k = ${conductivity}
[]
[]
[Components]
[hs]
type = HeatStructurePlate
orientation = '0 0 1'
position = '0 0 0'
length = ${L}
n_elems = 10
depth = ${depth}
widths = '${thickness}'
n_part_elems = '10'
materials = 'hs_mat'
names = 'region'
initial_T = ${T_hs}
[]
[ambient_convection]
type = HSBoundaryAmbientConvection
boundary = 'hs:outer'
hs = hs
T_ambient = T_ambient_fn
htc_ambient = htc_ambient_fn
scale_pp = bc_scale_pp
[]
[]
[Postprocessors]
[bc_scale_pp]
type = FunctionValuePostprocessor
function = ${scale}
execute_on = 'INITIAL TIMESTEP_END'
[]
[E_hs]
type = ADHeatStructureEnergy
block = 'hs:region'
plate_depth = ${depth}
execute_on = 'INITIAL TIMESTEP_END'
[]
[E_hs_change]
type = ChangeOverTimePostprocessor
postprocessor = E_hs
execute_on = 'INITIAL TIMESTEP_END'
[]
[E_change_relerr]
type = RelativeDifferencePostprocessor
value1 = E_hs_change
value2 = ${E_change}
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Executioner]
type = Transient
[TimeIntegrator]
type = ActuallyExplicitEuler
solve_type = lumped
[]
dt = ${t}
num_steps = 1
abort_on_solve_fail = true
[]
[Outputs]
[out]
type = CSV
show = 'E_change_relerr'
execute_on = 'FINAL'
[]
[]
(test/tests/time_steppers/iteration_adaptive/multi_piecewise_sync_dt.i)
[Mesh]
type = GeneratedMesh
dim = 1
[]
[Problem]
solve = false
[]
[Functions]
[./temp_spike1]
type = PiecewiseLinear
x = '1 3 5'
y = '1 4 4'
[../]
[./temp_spike2]
type = PiecewiseLinear
x = '0 2 4'
y = '1 1 2'
[../]
[./temp_spike3]
type = PiecewiseConstant
x = '1 6 8'
y = '1 4 4'
[../]
[./temp_spike4]
type = PiecewiseConstant
x = '0 7 9'
y = '1 1 2'
[../]
[]
[Executioner]
type = Transient
end_time = 10
verbose = true
[./TimeStepper]
type = IterationAdaptiveDT
dt = 10
timestep_limiting_function = 'temp_spike1 temp_spike2 temp_spike3 temp_spike4'
force_step_every_function_point = true
post_function_sync_dt = .1
[../]
[]
[Postprocessors]
[./dt]
type = TimestepSize
[../]
[]
[Outputs]
csv = true
[]
(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
[]
[Modules/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/problems/area_constriction/area_constriction.i)
# This test features air flowing through a channel whose cross-sectional area
# shrinks to half its value in the right half. Assuming incompressible flow
# conditions, such as having a low Mach number, the velocity should approximately
# double from inlet to outlet.
p_outlet = 1e5
[GlobalParams]
gravity_vector = '0 0 0'
initial_T = 300
initial_p = ${p_outlet}
initial_vel = initial_vel_fn
fp = fp
closures = simple_closures
f = 0
scaling_factor_1phase = '1 1 1e-5'
[]
[Modules/FluidProperties]
[fp]
type = IdealGasFluidProperties
gamma = 1.4
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Functions]
[A_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '1.0 0.5'
[]
[initial_vel_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '1.0 2'
[]
[]
[Components]
[inlet]
type = InletDensityVelocity1Phase
input = 'pipe:in'
rho = 1.16263315948279 # rho @ (p = 1e5 Pa, T = 300 K)
vel = 1
[]
[pipe]
type = FlowChannel1Phase
position = '0 0 0'
orientation = '1 0 0'
length = 1
n_elems = 100
A = A_fn
[]
[outlet]
type = Outlet1Phase
input = 'pipe:out'
p = ${p_outlet}
[]
[]
[Preconditioning]
[pc]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
end_time = 10
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.001
optimal_iterations = 5
iteration_window = 1
growth_factor = 1.2
[]
steady_state_detection = true
solve_type = PJFNK
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
nl_max_its = 15
l_tol = 1e-3
l_max_its = 10
[]
[Outputs]
exodus = true
velocity_as_vector = false
show = 'A rho vel p'
[]
(modules/thermal_hydraulics/test/tests/components/junction_one_to_one_1phase/no_junction_1phase.i)
# This input file is used to generate gold values for the junction_one_to_one_1phase.i
# test. Unlike junction_one_to_one_1phase.i, this file has no junction in the
# middle of the domain. In junction_one_to_one_1phase.i, the post-processors are
# side post-processors, but in this input file, side post-processors cannot be
# used to obtain the solution at these positions since there are no sides there.
# Therefore, the solution is sampled at points just to the left and right of
# the middle to obtain the piecewise constant solution values to either side of
# the interface.
[GlobalParams]
gravity_vector = '0 0 0'
closures = simple_closures
[]
[Functions]
[p_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '1.0 0.1'
[]
[T_ic_fn]
type = PiecewiseConstant
axis = x
direction = right
x = '0.5 1.0'
y = '1.4 1.12'
[]
[]
[Modules/FluidProperties]
[fp]
type = IdealGasFluidProperties
gamma = 1.4
molar_mass = 11.64024372
[]
[]
[Closures]
[simple_closures]
type = Closures1PhaseSimple
[]
[]
[Components]
[left_boundary]
type = FreeBoundary1Phase
input = 'channel:in'
[]
[channel]
type = FlowChannel1Phase
fp = fp
position = '0 0 0'
orientation = '1 0 0'
length = 1.0
n_elems = 100
A = 1.0
initial_T = T_ic_fn
initial_p = p_ic_fn
initial_vel = 0
f = 0
[]
[right_boundary]
type = FreeBoundary1Phase
input = 'channel:out'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
scheme = bdf2
solve_type = NEWTON
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
nl_max_its = 60
l_tol = 1e-4
start_time = 0.0
dt = 1e-3
num_steps = 5
abort_on_solve_fail = true
[]
[Postprocessors]
[rhoA_left]
type = PointValue
variable = rhoA
point = '0.4999 0 0'
execute_on = 'initial timestep_end'
[]
[rhouA_left]
type = PointValue
variable = rhouA
point = '0.4999 0 0'
execute_on = 'initial timestep_end'
[]
[rhoEA_left]
type = PointValue
variable = rhoEA
point = '0.4999 0 0'
execute_on = 'initial timestep_end'
[]
[rhoA_right]
type = PointValue
variable = rhoA
point = '0.5001 0 0'
execute_on = 'initial timestep_end'
[]
[rhouA_right]
type = PointValue
variable = rhouA
point = '0.5001 0 0'
execute_on = 'initial timestep_end'
[]
[rhoEA_right]
type = PointValue
variable = rhoEA
point = '0.5001 0 0'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
file_base = 'junction_one_to_one_1phase_out'
execute_on = 'initial timestep_end'
[]