- boundaryThe list of boundary IDs from the mesh where this boundary condition applies
C++ Type:std::vector
Description:The list of boundary IDs from the mesh where this boundary condition applies
- variableThe name of the variable that this boundary condition applies to
C++ Type:std::vector
Description:The name of the variable that this boundary condition applies to
SideAverageValue
Computes the average value of a variable on a sideset. Note that this cannot be used on the centerline of an axisymmetric model.
Description
SideAverageValue
computes the area- or volume-weighted average of the integral of the specified variable. It may be used, for example, to calculate the average temperature over a side set.
SideAverageValue
is not suitable for use when computing the average integral value of a variable when one of the coordinates in the sideset has a value of zero. In those cases, such as when computing the value of a variable on the centerline of an axisymmetric simulation, use AxisymmetricCenterlineAverageValue
Example Input Syntax
[Postprocessors]
[./ave_stress_bottom]
type = SideAverageValue
variable = stress_yy
boundary = bottom
[../]
[./ave_strain_bottom]
type = SideAverageValue
variable = strain_yy
boundary = bottom
[../]
[]
(modules/tensor_mechanics/tutorials/basics/part_2.3.i)/opt/civet/build_0/moose/modules/tensor_mechanics/tutorials/basics/part_2.3.i
#Tensor Mechanics tutorial: the basics
#Step 2, part 3
#2D axisymmetric RZ simulation of uniaxial tension with J2 plasticity with no
#hardening
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = necking_quad4.e
uniform_refine = 0
second_order = true
[]
[Modules/TensorMechanics/Master]
[./block1]
strain = FINITE
add_variables = true
generate_output = 'stress_yy strain_yy' #use the yy option to get the zz component in axisymmetric coords
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1e-9
plastic_models = J2
[../]
[]
[UserObjects]
[./str]
type = TensorMechanicsHardeningConstant
value = 2.4e2
[../]
[./J2]
type = TensorMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_r
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_z
boundary = top
function = '0.0007*t'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.25
end_time = 20
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 101'
[]
[Postprocessors]
[./ave_stress_bottom]
type = SideAverageValue
variable = stress_yy
boundary = bottom
[../]
[./ave_strain_bottom]
type = SideAverageValue
variable = strain_yy
boundary = bottom
[../]
[]
[Outputs]
exodus = true
perf_graph = true
csv = true
print_linear_residuals = false
[]
Input Parameters
- execute_onTIMESTEP_ENDThe 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.
Default:TIMESTEP_END
C++ Type:ExecFlagEnum
Options:NONE INITIAL LINEAR NONLINEAR TIMESTEP_END TIMESTEP_BEGIN FINAL CUSTOM TRANSFER
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.
Optional Parameters
- allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
Default:False
C++ Type:bool
Options:
Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector
Options:
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Options:
Description:Set the enabled status of the MooseObject.
- outputsVector of output names were you would like to restrict the output of variables(s) associated with this object
C++ Type:std::vector
Options:
Description:Vector of output names were you would like to restrict the output of variables(s) associated with this object
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Options:
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
Input Files
- modules/combined/test/tests/gap_heat_transfer_htonly/planar_xz.i
- modules/tensor_mechanics/tutorials/basics/part_2.3.i
- modules/combined/test/tests/gap_heat_transfer_radiation/gap_heat_transfer_radiation_test.i
- modules/tensor_mechanics/test/tests/radial_disp_aux/cylinder_3d_cartesian.i
- tutorials/darcy_thermo_mech/step10_multiapps/problems/step10_micro.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/creep.i
- modules/combined/test/tests/cavity_pressure/multiple_postprocessors.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/lps_dual.i
- modules/functional_expansion_tools/examples/2D_interface_no_material/main.i
- modules/combined/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_it_plot_test.i
- modules/combined/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rz_test.i
- modules/heat_conduction/test/tests/radiation_transfer_action/radiative_transfer_no_action.i
- test/tests/mesh/named_entities/named_entities_test_xda.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/gtn_single.i
- modules/combined/test/tests/gap_heat_transfer_htonly/cyl3D.i
- test/tests/functions/pps_function/pp_function.i
- modules/combined/test/tests/phase_field_fracture/crack2d_aniso_hist_false.i
- modules/combined/test/tests/gap_heat_transfer_htonly/planar_xy.i
- modules/tensor_mechanics/test/tests/ad_thermal_expansion_function/mean.i
- modules/tensor_mechanics/test/tests/radial_disp_aux/cylinder_2d_cartesian.i
- modules/tensor_mechanics/tutorials/basics/part_3_1.i
- modules/combined/examples/phase_field-mechanics/kks_mechanics_KHS.i
- test/tests/functions/parsed/steady.i
- modules/phase_field/examples/measure_interface_energy/1Dinterface_energy.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/lps_single_split.i
- test/tests/userobjects/interface_user_object/interface_value_user_object_QP.i
- modules/combined/test/tests/phase_field_fracture/crack2d_aniso.i
- test/tests/mesh/named_entities/named_entities_test.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/lps_single.i
- modules/combined/test/tests/cavity_pressure/3d.i
- modules/functional_expansion_tools/examples/2D_interface_different_submesh/main.i
- modules/heat_conduction/test/tests/radiation_transfer_action/radiative_transfer_action.i
- modules/combined/test/tests/gap_heat_transfer_htonly/sphere2DRZ.i
- modules/combined/test/tests/ad_cavity_pressure/multiple_postprocessors.i
- modules/tensor_mechanics/tutorials/basics/part_2.4.i
- modules/combined/examples/effective_properties/effective_th_cond.i
- test/tests/userobjects/side_user_object_no_boundary_error/side_no_boundary.i
- modules/tensor_mechanics/test/tests/ad_thermal_expansion_function/instantaneous.i
- modules/combined/test/tests/cavity_pressure/initial_temperature.i
- modules/combined/test/tests/ad_cavity_pressure/3d.i
- test/tests/controls/time_periods/user_objects/user_object.i
- modules/combined/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_test.i
- modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_finitestrain_plastic.i
- modules/combined/examples/phase_field-mechanics/kks_mechanics_VTS.i
- modules/combined/test/tests/gap_heat_transfer_htonly/cyl2D_yz.i
- modules/combined/test/tests/ad_cavity_pressure/rz.i
- modules/tensor_mechanics/test/tests/radial_disp_aux/cylinder_2d_axisymmetric.i
- test/tests/postprocessors/side_average_value/side_average_value_test.i
- modules/tensor_mechanics/test/tests/radial_disp_aux/sphere_2d_axisymmetric.i
- modules/combined/test/tests/gap_heat_transfer_htonly/planar_yz.i
- modules/tensor_mechanics/test/tests/thermal_expansion_function/instantaneous.i
- modules/tensor_mechanics/test/tests/radial_disp_aux/sphere_3d_cartesian.i
- modules/combined/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rspherical.i
- modules/functional_expansion_tools/examples/2D_interface/main.i
- modules/combined/test/tests/gap_heat_transfer_htonly/cyl2D.i
- modules/combined/test/tests/cavity_pressure/rz.i
- modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_finitestrain_elastic.i
- modules/heat_conduction/test/tests/recover/recover.i
- modules/combined/test/tests/ad_cavity_pressure/initial_temperature.i
- modules/heat_conduction/test/tests/recover/ad_recover.i
- modules/tensor_mechanics/test/tests/ad_thermal_expansion_function/dilatation.i
- modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_smallstrain.i
- modules/combined/test/tests/gap_heat_transfer_htonly/sphere3D.i
- modules/combined/test/tests/gap_heat_transfer_htonly/cyl2D_xz.i
- modules/functional_expansion_tools/test/tests/standard_use/interface_coupled.i
- modules/porous_flow/test/tests/sinks/PorousFlowPiecewiseLinearSink_BC_eg1.i
- modules/tensor_mechanics/test/tests/thermal_expansion_function/dilatation.i
- modules/tensor_mechanics/test/tests/thermal_expansion_function/mean.i
- modules/heat_conduction/test/tests/heat_source_bar/heat_source_bar.i
- modules/tensor_mechanics/test/tests/czm/czm_3DC_3D_base_input.i
- modules/heat_conduction/test/tests/heat_source_bar/ad_heat_source_bar.i
modules/combined/test/tests/gap_heat_transfer_htonly/planar_xz.i
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks in the x-z plane. Each element block
# is a square. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far bottom boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far top
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
# The heat flux across the gap at time = 1 is then:
#
# Flux = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors. These results
# are the same as for the unit 1-D gap heat transfer between two unit cubes.
[Mesh]
[file]
type = FileMeshGenerator
file = simple_2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 0'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-12
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_bottom]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_top]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_bottom]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_top]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/tutorials/basics/part_2.3.i
#Tensor Mechanics tutorial: the basics
#Step 2, part 3
#2D axisymmetric RZ simulation of uniaxial tension with J2 plasticity with no
#hardening
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = necking_quad4.e
uniform_refine = 0
second_order = true
[]
[Modules/TensorMechanics/Master]
[./block1]
strain = FINITE
add_variables = true
generate_output = 'stress_yy strain_yy' #use the yy option to get the zz component in axisymmetric coords
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1e-9
plastic_models = J2
[../]
[]
[UserObjects]
[./str]
type = TensorMechanicsHardeningConstant
value = 2.4e2
[../]
[./J2]
type = TensorMechanicsPlasticJ2
yield_strength = str
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_r
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_z
boundary = top
function = '0.0007*t'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.25
end_time = 20
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 101'
[]
[Postprocessors]
[./ave_stress_bottom]
type = SideAverageValue
variable = stress_yy
boundary = bottom
[../]
[./ave_strain_bottom]
type = SideAverageValue
variable = strain_yy
boundary = bottom
[../]
[]
[Outputs]
exodus = true
perf_graph = true
csv = true
print_linear_residuals = false
[]
modules/combined/test/tests/gap_heat_transfer_radiation/gap_heat_transfer_radiation_test.i
#
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a helium-filled gap including radiation.
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit cube. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit, and then held fixed for an additional
# time unit. The temperature of the far right boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * h_gap
#
# where h_gap = h_gas + h_cont + h_rad
#
# By setting the contact pressure, roughnesses, and jump distances to zero, the gap
# conductance simplifies to:
#
# h_gap = gapK/d_gap + sigma*Fe*(T_left^2 + T_right^2)*(T_left + T_right)
#
# where Fe = 1/(1/eps_left + 1/eps_right - 1)
# eps = emissivity
#
# For pure helium, BISON computes the gas conductivity as:
#
# gapK(Tavg) = 2.639e-3*Tavg^0.7085
#
# For the test, the final (t=2) average gas temperature is (200 +100)/2 = 150,
# giving gapK(150) = 0.09187557
#
# Assuming ems_left = ems_right = 0.5, Fe = 1/3
#
# The heat flux across the gap at that time is then:
#
# Flux(2) = 100 * ((0.09187557/1.0) + (5.669e-8/3)*(200^2 + 100^2)*(200 + 100))
# = 37.532557
#
# The flux post processors give 37.53255
#
[Mesh]
file = gap_heat_transfer_radiation_test.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '200 200'
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[ThermalContact]
[./gap]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
gap_conductivity = 0.09187557
emissivity_1 = 0.5
emissivity_2 = 0.5
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 10000000.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_abs_tol = 1e-6
nl_rel_tol = 1e-10
l_tol = 1e-3
l_max_its = 100
start_time = 0.0
dt = 1
end_time = 1.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/radial_disp_aux/cylinder_3d_cartesian.i
# The purpose of this set of tests is to check the values computed
# by the RadialDisplacementAux AuxKernel. They should match the
# radial component of the displacment for a cylindrical or spherical
# model.
# This particular model is of a cylinder subjected to uniform thermal
# expansion represented using a 3D Cartesian model.
[Mesh]
type = FileMesh
file = cylinder_sector_3d.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
[]
[AuxVariables]
[./temp]
[../]
[./rad_disp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t+300.0
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
add_variables = true
eigenstrain_names = eigenstrain
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
use_displaced_mesh = false
[../]
[./raddispaux]
type = RadialDisplacementCylinderAux
variable = rad_disp
origin = '0 0 0'
axis_vector = '0 0 1'
[../]
[]
[BCs]
[./x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[./z]
type = DirichletBC
variable = disp_z
boundary = '3 4'
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 300
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '51'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
start_time = 0.0
end_time = 1
dt = 1
dtmin = 1
[]
[Outputs]
csv = true
exodus = true
[]
#[Postprocessors]
# [./strain_xx]
# type = SideAverageValue
# variable =
# block = 0
# [../]
#[]
tutorials/darcy_thermo_mech/step10_multiapps/problems/step10_micro.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
ymax = 0.1
xmax = 0.1
uniform_refine = 0
[]
[Adaptivity]
max_h_level = 4
initial_steps = 6
initial_marker = error_marker
cycles_per_step = 2
marker = error_marker
[Indicators]
[phi_jump]
type = GradientJumpIndicator
variable = phi
[]
[]
[Markers]
[error_marker]
type = ErrorFractionMarker
indicator = phi_jump
refine = 0.8
coarsen = 0.1
[]
[]
[]
[Variables]
[temperature]
initial_condition = 300
[]
[]
[AuxVariables]
[phi]
[]
[por_var]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[corrosion]
type = RandomCorrosion
variable = phi
reference_temperature = 300
temperature = temperature_in
execute_on = 'INITIAL TIMESTEP_END'
[]
[por_var]
type = MaterialRealAux
variable = por_var
property = porosity
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Kernels]
[heat_conduction]
type = ADHeatConduction
variable = temperature
[]
[]
[BCs]
[left]
type = PostprocessorDirichletBC
variable = temperature
boundary = left
postprocessor = temperature_in
[]
[right]
type = NeumannBC
variable = temperature
boundary = right
value = 100 # prescribed flux
[]
[]
[Materials]
[column]
type = PackedColumn
temperature = temperature
radius = 1 # mm
phase = phi
[]
[]
[Postprocessors]
[temperature_in]
type = Receiver
default = 301
[]
[k_eff]
type = ThermalConductivity
variable = temperature
T_hot = temperature_in
flux = 100
dx = 0.1
boundary = right
length_scale = 1
k0 = 12.05
execute_on = 'INITIAL TIMESTEP_END'
[]
[por_var]
type = ElementAverageValue
variable = por_var
execute_on = 'INITIAL TIMESTEP_END'
[]
[t_right]
type = SideAverageValue
boundary = right
variable = temperature
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Executioner]
type = Transient
end_time = 1000
dt = 1
steady_state_tolerance = 1e-9
steady_state_detection = true
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
automatic_scaling = true
[]
[Outputs]
execute_on = 'initial timestep_end'
exodus = true
[]
[ICs]
[close_pack]
radius = 0.01 # meter
outvalue = 0 # water
variable = phi
invalue = 1 # steel
type = ClosePackIC
[]
[]
modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/creep.i
# This test is provided as a check to ensure ADComputeMultiplePorousInelasticStress
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 2
ny = 2
xmax = 0.002
ymax = 0.002
[]
[Modules/TensorMechanics/Master/All]
strain = FINITE
add_variables = true
base_name = 'total'
generate_output = 'strain_xx strain_yy strain_xy hydrostatic_stress vonmises_stress'
use_automatic_differentiation = true
[]
[Functions]
[./pull]
type = PiecewiseLinear
x = '0 0.1'
y = '0 1e-5'
[../]
[]
[Materials]
active='elasticity_tensor porous_stress creep'
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0.3
base_name = 'total'
[../]
[./porous_stress]
type = ADComputeMultiplePorousInelasticStress
inelastic_models = creep
initial_porosity = 0.1
outputs = all
base_name = 'total'
[../]
[./regular_stress]
type = ADComputeMultipleInelasticStress
inelastic_models = creep
outputs = all
base_name = 'total'
[../]
[./porosity]
type = GenericConstantMaterial
prop_names = porosity
prop_values = 0.1
outputs = all
[../]
[./creep]
type = ADPowerLawCreepStressUpdate
activation_energy = 4e4
temperature = 1200
coefficient = 1e-18
gas_constant = 1.987
n_exponent = 3
base_name = 'creep'
outputs = all
[../]
[]
[BCs]
[./no_disp_x]
type = ADDirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_disp_y]
type = ADDirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./pull_disp_y]
type = ADFunctionDirichletBC
variable = disp_y
boundary = top
function = pull
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
dt = 0.01
end_time = 0.12
[]
[Postprocessors]
[./disp_x]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./disp_y]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[./avg_hydro]
type = ElementAverageValue
variable = total_hydrostatic_stress
[../]
[./avg_vonmises]
type = ElementAverageValue
variable = total_vonmises_stress
[../]
[./dt]
type = TimestepSize
[../]
[./num_lin]
type = NumLinearIterations
outputs = console
[../]
[./num_nonlin]
type = NumNonlinearIterations
outputs = console
[../]
[./eff_creep_strain]
type = ElementAverageValue
variable = creep_effective_creep_strain
[../]
[./porosity]
type = ElementAverageValue
variable = porosity
[../]
[]
[Outputs]
csv = true
[]
modules/combined/test/tests/cavity_pressure/multiple_postprocessors.i
#
# Cavity Pressure Test (Volume input as a vector of postprocessors)
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V0 + gamma * t
# with
# alpha = n0
# beta = T0 / 2
# gamma = - (0.003322259...) * V0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# In this test the internal volume is calculated as the sum of two Postprocessors
# internalVolumeInterior and internalVolumeExterior. This sum equals the value
# reported by the internalVolume postprocessor.
#
# The parameters combined at t = 1 gives p = 301.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
file = 3d.e
[]
[Functions]
[./displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[../]
[./displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[../]
[./temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[../]
[./material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.35'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 240.54443866068704
[../]
[./material_input]
[../]
[]
[AuxVariables]
[./pressure_residual_x]
[../]
[./pressure_residual_y]
[../]
[./pressure_residual_z]
[../]
[./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_zx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat]
type = Diffusion
variable = temp
use_displaced_mesh = true
[../]
[./material_input_dummy]
type = Diffusion
variable = material_input
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
[]
[BCs]
[./no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[../]
[./no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[../]
[./no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[../]
[./prescribed_left]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[../]
[./prescribed_right]
type = FunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[../]
[./no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[../]
[./no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[../]
[./no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[../]
[./temperatureInterior]
type = FunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[../]
[./MaterialInput]
type = FunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[../]
[./CavityPressure]
[./1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
volume = 'internalVolumeInterior internalVolumeExterior'
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
[../]
[../]
[]
[Materials]
[./elast_tensor1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e1
poissons_ratio = 0
block = 1
[../]
[./strain1]
type = ComputeFiniteStrain
block = 1
[../]
[./stress1]
type = ComputeFiniteStrainElasticStress
block = 1
[../]
[./elast_tensor2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0
block = 2
[../]
[./strain2]
type = ComputeFiniteStrain
block = 2
[../]
[./stress2]
type = ComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[../]
[./aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[../]
[./internalVolumeInterior]
type = InternalVolume
boundary = '1 2 3 4 5 6'
execute_on = 'initial linear'
[../]
[./internalVolumeExterior]
type = InternalVolume
boundary = '13 14 15 16 17 18'
execute_on = 'initial linear'
[../]
[./materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/lps_dual.i
# This test provides an example of combining two LPS viscoplasticity models with different stress
# exponents.
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmax = 0.002
ymax = 0.002
[]
[Modules/TensorMechanics/Master/All]
strain = FINITE
add_variables = true
generate_output = 'strain_xx strain_yy strain_xy hydrostatic_stress vonmises_stress'
use_automatic_differentiation = true
[]
[Functions]
[./pull]
type = PiecewiseLinear
x = '0 0.1'
y = '0 1e-5'
[../]
[./tot_effective_viscoplasticity]
type = ParsedFunction
vals = 'lps_1_eff_creep_strain lps_3_eff_creep_strain'
vars = 'lps_1_eff_creep_strain lps_3_eff_creep_strain'
value = 'lps_1_eff_creep_strain+lps_3_eff_creep_strain'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0.3
[../]
[./stress]
type = ADComputeMultiplePorousInelasticStress
inelastic_models = 'one two'
initial_porosity = 0.1
outputs = all
[../]
[./one]
type = ADViscoplasticityStressUpdate
coefficient = 'coef_3'
power = 3
base_name = 'lps_1'
outputs = all
relative_tolerance = 1e-11
[../]
[./two]
type = ADViscoplasticityStressUpdate
coefficient = 1e-10
power = 1
base_name = 'lps_3'
outputs = all
relative_tolerance = 1e-11
[../]
[./coef]
type = ParsedMaterial
f_name = coef_3
# Example of creep power law
function = '0.5e-18 * exp(-4e4 / 1.987 / 1200)'
[../]
[]
[BCs]
[./no_disp_x]
type = ADDirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_disp_y]
type = ADDirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./pull_disp_y]
type = ADFunctionDirichletBC
variable = disp_y
boundary = top
function = pull
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
dt = 0.01
end_time = 0.12
[]
[Postprocessors]
[./disp_x]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./disp_y]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[./avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
[../]
[./avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
[../]
[./dt]
type = TimestepSize
[../]
[./num_lin]
type = NumLinearIterations
outputs = console
[../]
[./num_nonlin]
type = NumNonlinearIterations
outputs = console
[../]
[./lps_1_eff_creep_strain]
type = ElementAverageValue
variable = lps_1_effective_viscoplasticity
[../]
[./lps_3_eff_creep_strain]
type = ElementAverageValue
variable = lps_3_effective_viscoplasticity
[../]
[./lps_1_gauge_stress]
type = ElementAverageValue
variable = lps_1_gauge_stress
[../]
[./lps_3_gauge_stress]
type = ElementAverageValue
variable = lps_3_gauge_stress
[../]
[./eff_creep_strain_tot]
type = FunctionValuePostprocessor
function = tot_effective_viscoplasticity
[../]
[./porosity]
type = ElementAverageValue
variable = porosity
[../]
[]
[Outputs]
csv = true
[]
modules/functional_expansion_tools/examples/2D_interface_no_material/main.i
# Derived from the example '2D_interface' with the following differences:
#
# 1) No materials are used
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0.0
xmax = 0.4
nx = 6
ymin = 0.0
ymax = 10.0
ny = 20
[]
[Variables]
[./m]
[../]
[]
[Kernels]
[./diff_m]
type = Diffusion
variable = m
[../]
[./time_diff_m]
type = TimeDerivative
variable = m
[../]
[./source_m]
type = BodyForce
variable = m
value = 100
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
value = 2
variable = m
[../]
[]
[BCs]
[./interface_value]
type = FXValueBC
variable = m
boundary = right
function = FX_Basis_Value_Main
[../]
[./interface_flux]
type = FXFluxBC
boundary = right
variable = m
function = FX_Basis_Flux_Main
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '4'
physical_bounds = '0.0 10'
y = Legendre
[../]
[./FX_Basis_Flux_Main]
type = FunctionSeries
series_type = Cartesian
orders = '5'
physical_bounds = '0.0 10'
y = Legendre
[../]
[]
[UserObjects]
[./FX_Flux_UserObject_Main]
type = FXBoundaryFluxUserObject
function = FX_Basis_Flux_Main
variable = m
boundary = right
diffusivity = 0.1
[../]
[]
[Postprocessors]
[./average_interface_value]
type = SideAverageValue
variable = m
boundary = right
[../]
[./total_flux]
type = SideFluxIntegral
variable = m
boundary = right
diffusivity = 0.1
[../]
[./picard_iterations]
type = NumPicardIterations
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
picard_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
picard_rel_tol = 1e-8
picard_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
sub_cycling = true
[../]
[]
[Transfers]
[./FluxToSub]
type = MultiAppFXTransfer
direction = to_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Flux_UserObject_Main
multi_app_object_name = FX_Basis_Flux_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
direction = from_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[./FluxToMe]
type = MultiAppFXTransfer
direction = from_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Basis_Flux_Main
multi_app_object_name = FX_Flux_UserObject_Sub
[../]
[]
modules/combined/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_it_plot_test.i
#
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit cube. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit, and then held fixed for an additional
# time unit. The temperature of the far right boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
#
# The heat flux across the gap at time = 2 is then:
#
# Flux(2) = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors
#
[Mesh]
file = gap_heat_transfer_htonly_test.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_abs_tol = 1e-5
nl_rel_tol = 1e-12
l_tol = 1e-10
l_max_its = 100
start_time = 0.0
dt = 1e-1
end_time = 2.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
[Outputs]
file_base = out_it_plot
[./exodus]
type = Exodus
execute_on = 'initial timestep_end nonlinear'
nonlinear_residual_dt_divisor = 100
[../]
[]
modules/combined/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rz_test.i
#
# 2-D RZ Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit cube. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit, and then held fixed for an additional
# time unit. The temperature of the far right boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks, or cylinders in the case of RZ.:
#
# Flux = (T_left - T_right) * (gapK/(r*ln(r2/r1)))
#
# For gapK = 1 (default value)
#
# The integrated heat flux across the gap at time 2 is then:
#
# 2*pi*h*k*delta_T/(ln(r2/r1))
# 2*pi*1*1*100/(ln(2/1)) = 906.5 watts
#
# For comparison, see results from the flux post processors.
#
# As a second test, use the rectilinear (parallel plate) form of the gap heat transfer.
#
# Flux = (T_left - T_right) * (gapK/gapL)
#
# For gapK = 1 (default value)
#
# The integrated heat flux across the gap at time 2 is then:
#
# 2*pi*h*k*delta_T/(1)
# 2*pi*1*1*100/(1) = 628.3 watts
#
# For comparison, see results from the flux post processors.
#
[Problem]
coord_type = RZ
rz_coord_axis = Y # this is modified through CLI args to test Z-R as opposed to R-Z
[]
[Mesh]
active = 'file'
[file]
type = FileMeshGenerator
file = gap_heat_transfer_htonly_rz_test.e
[]
[rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '90 0 0'
input = file
[]
[]
[Functions]
[./ramp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
[../]
[./thermal_contact2]
type = GapHeatTransfer
variable = temp2
master = 3
slave = 2
gap_geometry_type = PLATE
appended_property_name = 2
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[./temp2]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond2]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat2]
type = HeatConduction
variable = temp2
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = ramp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[./temp_far_left2]
type = FunctionDirichletBC
boundary = 1
variable = temp2
function = ramp
[../]
[./temp_far_right2]
type = DirichletBC
boundary = 4
variable = temp2
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[./conductance2]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond2
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1e6
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
# petsc_options = '-snes_mf_operator -ksp_monitor -snes_ksp_ew'
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
# petsc_options_iname = '-snes_type -snes_ls -snes_linesearch_type -ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
# petsc_options_value = 'ls basic basic 201 hypre boomeramg 4'
# petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
# petsc_options_value = '201 hypre boomeramg 4'
nl_abs_tol = 1e-3
nl_rel_tol = 1e-8
l_tol = 1e-6
l_max_its = 100
start_time = 0.0
dt = 1e-1
dtmin = 1e-1
end_time = 2.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[./temp_left2]
type = SideAverageValue
boundary = 2
variable = temp2
execute_on = 'initial timestep_end'
[../]
[./temp_right2]
type = SideAverageValue
boundary = 3
variable = temp2
execute_on = 'initial timestep_end'
[../]
[./flux_left2]
type = SideFluxIntegral
variable = temp2
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right2]
type = SideFluxIntegral
variable = temp2
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
[Outputs]
exodus = true
[]
modules/heat_conduction/test/tests/radiation_transfer_action/radiative_transfer_no_action.i
[Problem]
kernel_coverage_check = false
[]
[Mesh]
type = MeshGeneratorMesh
[./cmg]
type = CartesianMeshGenerator
dim = 2
dx = '1 1.3 1.9'
ix = '3 3 3'
dy = '2 1.2 0.9'
iy = '3 3 3'
subdomain_id = '0 1 0
4 5 2
0 3 0'
[../]
[./inner_bottom]
type = SideSetsBetweenSubdomainsGenerator
input = cmg
master_block = 1
paired_block = 5
new_boundary = 'inner_bottom'
[../]
[./inner_left]
type = SideSetsBetweenSubdomainsGenerator
input = inner_bottom
master_block = 4
paired_block = 5
new_boundary = 'inner_left'
[../]
[./inner_right]
type = SideSetsBetweenSubdomainsGenerator
input = inner_left
master_block = 2
paired_block = 5
new_boundary = 'inner_right'
[../]
[./inner_top]
type = SideSetsBetweenSubdomainsGenerator
input = inner_right
master_block = 3
paired_block = 5
new_boundary = 'inner_top'
[../]
[./rename]
type = RenameBlockGenerator
old_block_id = '1 2 3 4'
new_block_id = '0 0 0 0'
input = inner_top
[../]
[./split_inner_bottom]
type = PatchSidesetGenerator
sideset = 4
n_patches = 2
partitioner = centroid
centroid_partitioner_direction = x
input = rename
[../]
[./split_inner_left]
type = PatchSidesetGenerator
sideset = 5
n_patches = 2
partitioner = centroid
centroid_partitioner_direction = y
input = split_inner_bottom
[../]
[./split_inner_right]
type = PatchSidesetGenerator
sideset = 6
n_patches = 2
partitioner = centroid
centroid_partitioner_direction = y
input = split_inner_left
[../]
[./split_inner_top]
type = PatchSidesetGenerator
sideset = 7
n_patches = 3
partitioner = centroid
centroid_partitioner_direction = x
input = split_inner_right
[../]
[]
[Variables]
[./temperature]
block = 0
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temperature
block = 0
diffusion_coefficient = 5
[../]
[]
[UserObjects]
[./gray_lambert]
type = ViewFactorObjectSurfaceRadiation
boundary = 'inner_bottom_0 inner_bottom_1
inner_left_0 inner_left_1
inner_right_0 inner_right_1
inner_top_0 inner_top_1 inner_top_2'
fixed_temperature_boundary = 'inner_bottom_0 inner_bottom_1'
fixed_boundary_temperatures = '1200 1200'
adiabatic_boundary = 'inner_top_0 inner_top_1 inner_top_2'
emissivity = '0.9 0.9
0.8 0.8
0.4 0.4
1 1 1'
temperature = temperature
view_factor_object_name = view_factor
execute_on = 'LINEAR TIMESTEP_END'
[../]
[./view_factor]
type = UnobstructedPlanarViewFactor
boundary = 'inner_bottom_0 inner_bottom_1
inner_left_0 inner_left_1
inner_right_0 inner_right_1
inner_top_0 inner_top_1 inner_top_2'
normalize_view_factor = true
execute_on = 'INITIAL'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = temperature
boundary = left
value = 600
[../]
[./right]
type = DirichletBC
variable = temperature
boundary = right
value = 300
[../]
[./radiation]
type = GrayLambertNeumannBC
variable = temperature
surface_radiation_object_name = gray_lambert
boundary = 'inner_bottom_0 inner_bottom_1
inner_left_0 inner_left_1
inner_right_0 inner_right_1
inner_top_0 inner_top_1 inner_top_2'
[../]
[]
[Postprocessors]
[./average_T_inner_right]
type = SideAverageValue
variable = temperature
boundary = inner_right
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
test/tests/mesh/named_entities/named_entities_test_xda.i
[Mesh]
file = named_entities.xda
uniform_refine = 1
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
block = '1 center_block 3'
[./InitialCondition]
type = ConstantIC
value = 20
block = 'center_block 3'
[../]
[../]
[]
[AuxVariables]
[./reporter]
order = CONSTANT
family = MONOMIAL
block = 'left_block 3'
[../]
[]
[ICs]
[./reporter_ic]
type = ConstantIC
variable = reporter
value = 10
[../]
[]
[Kernels]
active = 'diff body_force'
[./diff]
type = Diffusion
variable = u
# Note we are using both names and numbers here
block = 'left_block 2 right_block'
[../]
[./body_force]
type = BodyForce
variable = u
block = 'center_block'
value = 10
[../]
[]
[AuxKernels]
[./hardness]
type = MaterialRealAux
variable = reporter
property = 'hardness'
block = 'left_block 3'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = 'left_side'
value = 1
[../]
[./right]
type = DirichletBC
variable = u
boundary = 'right_side'
value = 1
[../]
[]
[Postprocessors]
[./elem_average]
type = ElementAverageValue
variable = u
block = 'center_block'
execute_on = 'initial timestep_end'
[../]
[./side_average]
type = SideAverageValue
variable = u
boundary = 'right_side'
execute_on = 'initial timestep_end'
[../]
[]
[Materials]
[./constant]
type = GenericConstantMaterial
prop_names = 'hardness'
prop_values = 10
block = '1 right_block'
[../]
[./empty]
type = MTMaterial
block = 'center_block'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/gtn_single.i
# This test provides an example of an individual GTN viscoplasticity model
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmax = 0.002
ymax = 0.002
[]
[Modules/TensorMechanics/Master/All]
strain = FINITE
add_variables = true
base_name = 'total'
generate_output = 'strain_xx strain_yy strain_xy hydrostatic_stress vonmises_stress'
use_automatic_differentiation = true
[]
[Functions]
[./pull]
type = PiecewiseLinear
x = '0 0.1'
y = '0 1e-5'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0.3
base_name = 'total'
[../]
[./stress]
type = ADComputeMultiplePorousInelasticStress
inelastic_models = gtn
initial_porosity = 0.1
outputs = all
base_name = 'total'
[../]
[./gtn]
type = ADViscoplasticityStressUpdate
total_strain_base_name = 'total'
coefficient = 'coef'
power = 3
viscoplasticity_model = GTN
outputs = all
relative_tolerance = 1e-11
[../]
[./coef]
type = ParsedMaterial
f_name = coef
# Example of creep power law
function = '1e-18 * exp(-4e4 / 1.987 / 1200)'
[../]
[]
[BCs]
[./no_disp_x]
type = ADDirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_disp_y]
type = ADDirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./pull_disp_y]
type = ADFunctionDirichletBC
variable = disp_y
boundary = top
function = pull
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
dt = 0.01
end_time = 0.12
[]
[Postprocessors]
[./disp_x]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./disp_y]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[./avg_hydro]
type = ElementAverageValue
variable = total_hydrostatic_stress
[../]
[./avg_vonmises]
type = ElementAverageValue
variable = total_vonmises_stress
[../]
[./dt]
type = TimestepSize
[../]
[./num_lin]
type = NumLinearIterations
outputs = console
[../]
[./num_nonlin]
type = NumNonlinearIterations
outputs = console
[../]
[./eff_creep_strain]
type = ElementAverageValue
variable = effective_viscoplasticity
[../]
[./porosity]
type = ElementAverageValue
variable = porosity
[../]
[]
[Outputs]
csv = true
[]
modules/combined/test/tests/gap_heat_transfer_htonly/cyl3D.i
#
# 3D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 3D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2. In other words, the gap between
# them is 1 radial unit in length.
#
# The conductivity of both cylinders is set very large to achieve a uniform
# temperature in each cylinder. The temperature of the center node of the
# inner cylinder is ramped from 100 to 200 over one time unit. The temperature
# of the outside of the outer, hollow cylinder is held fixed at 100.
#
# A simple analytical solution is possible for the integrated heat flux
# between the inner and outer cylinders:
#
# Integrated Flux = (T_left - T_right) * (gapK/(r*ln(r2/r1))) * Area
#
# For gapK = 1 (default value)
#
# The area is taken as the area of the slave (inner) surface:
#
# Area = 2 * pi * h * r, where h is the height of the cylinder.
#
# The integrated heat flux across the gap at time 1 is then:
#
# 2*pi*h*k*delta_T/(ln(r2/r1))
# 2*pi*1*1*100/(ln(2/1)) = 906.5 watts
#
# For comparison, see results from the integrated flux post processors.
# This simulation makes use of symmetry, so only 1/4 of the cylinders is meshed
# As such, the integrated flux from the post processors is 1/4 of the total,
# or 226.6 watts.
# The value coming from the post processor is slightly less than this
# but converges as mesh refinement increases.
#
# Simulating contact is challenging. Regression tests that exercise
# contact features can be difficult to solve consistently across multiple
# platforms. While designing these tests, we felt it worth while to note
# some aspects of these tests. The following applies to:
# sphere3D.i, sphere2DRZ.i, cyl2D.i, and cyl3D.i.
# 1. We decided that to perform consistently across multiple platforms we
# would use very small convergence tolerance. In this test we chose an
# nl_rel_tol of 1e-12.
# 2. Due to such a high value for thermal conductivity (used here so that the
# domains come to a uniform temperature) the integrated flux at time = 0
# was relatively large (the value coming from SideIntegralFlux =
# -_diffusion_coef[_qp]*_grad_u[_qp]*_normals[_qp] where the diffusion coefficient
# here is thermal conductivity).
# Even though _grad_u[_qp] is small, in this case the diffusion coefficient
# is large. The result is a number that isn't exactly zero and tends to
# fail exodiff. For this reason the parameter execute_on = initial should not
# be used. That parameter is left to default settings in these regression tests.
#
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = cyl3D.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
gap_conductivity = 1
quadrature = true
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 1 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 5
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
#Preconditioned JFNK (default)
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[./Console]
type = Console
[../]
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
test/tests/functions/pps_function/pp_function.i
[Mesh]
file = square.e
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./function_force]
function = pp_func
variable = u
type = BodyForce
[../]
[]
[BCs]
active = 'left right'
[./left]
type = DirichletBC
variable = u
boundary = 1
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 2
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
file_base = out
exodus = true
[]
[Functions]
[./pp_func]
pp = right_value
type = PostprocessorFunction
[../]
[]
[Postprocessors]
[./right_value]
variable = u
execute_on = linear
boundary = 2
type = SideAverageValue
[../]
[]
modules/combined/test/tests/phase_field_fracture/crack2d_aniso_hist_false.i
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Modules]
[./TensorMechanics]
[./Master]
[./All]
add_variables = true
strain = SMALL
additional_generate_output = 'strain_yy stress_yy'
planar_formulation = PLANE_STRAIN
[../]
[../]
[../]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 1e-6'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '127.0 70.8 70.8 127.0 70.8 127.0 73.55 73.55 73.55'
fill_method = symmetric9
euler_angle_1 = 30
euler_angle_2 = 0
euler_angle_3 = 0
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
f_name = L
function = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
f_name = kappa_op
function = 'gc_prop * l'
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = stress_spectral
[../]
[./degradation]
type = DerivativeParsedMaterial
f_name = degradation
args = 'c'
function = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '1.0e-6'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
f_name = local_fracture_energy
args = 'c'
material_property_names = 'gc_prop l'
function = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
args = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
f_name = F
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 2e-6
num_steps = 5
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/gap_heat_transfer_htonly/planar_xy.i
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks in the x-y plane. Each element block
# is a square. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far bottom boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far top
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
# The heat flux across the gap at time = 1 is then:
#
# Flux = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors. These results
# are the same as for the unit 1-D gap heat transfer between two unit cubes.
[Mesh]
file = simple_2D.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-14
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_bottom]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_top]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_bottom]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_top]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/ad_thermal_expansion_function/mean.i
# This test checks the thermal expansion calculated via a mean thermal expansion coefficient.
# The coefficient is selected so as to result in a 1e-4 strain in the x-axis, and to cross over
# from positive to negative strain.
[Mesh]
[./gen]
type = GeneratedMeshGenerator
dim = 3
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = SMALL
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
use_automatic_differentiation = true
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
function = '1 + t'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.3
[../]
[./stress]
type = ADComputeLinearElasticStress
[../]
[./thermal_expansion_strain]
type = ADComputeMeanThermalExpansionFunctionEigenstrain
thermal_expansion_function = cte_func_mean
thermal_expansion_function_reference_temperature = 1.2
stress_free_temperature = 1.5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Functions]
[./cte_func_mean]
type = ParsedFunction
vars = 'T T_stress_free T_ref end_strain'
vals = '2 1.5 1.2 1e-4'
value = 'end_strain / (T - T_stress_free - end_strain * (T_stress_free - T_ref))'
[../]
[]
[Postprocessors]
[./disp_x_max]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./temp_avg]
type = ElementAverageValue
variable = temp
[../]
[]
[Executioner]
type = Transient
end_time = 1.0
dt = 0.1
[]
[Outputs]
csv = true
[]
modules/tensor_mechanics/test/tests/radial_disp_aux/cylinder_2d_cartesian.i
# The purpose of this set of tests is to check the values computed
# by the RadialDisplacementAux AuxKernel. They should match the
# radial component of the displacment for a cylindrical or spherical
# model.
# This particular model is of a cylinder subjected to uniform thermal
# expansion represented using a 2D Cartesian model.
[Mesh]
type = FileMesh
file = circle_sector_2d.e
[]
[GlobalParams]
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
[]
[AuxVariables]
[./temp]
[../]
[./rad_disp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t+300.0
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
add_variables = true
eigenstrain_names = eigenstrain
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
use_displaced_mesh = false
[../]
[./raddispaux]
type = RadialDisplacementCylinderAux
variable = rad_disp
origin = '0 0 0'
[../]
[]
[BCs]
[./x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 300
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '51'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
end_time = 1
dt = 1
dtmin = 1
[]
[Outputs]
csv = true
exodus = true
[]
#[Postprocessors]
# [./strain_xx]
# type = SideAverageValue
# variable =
# block = 0
# [../]
#[]
modules/tensor_mechanics/tutorials/basics/part_3_1.i
#Tensor Mechanics tutorial: the basics
#Step 3, part 1
#3D simulation of uniaxial tension with J2 plasticity
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[file_mesh]
type = FileMeshGenerator
file = necking_quad4.e
[]
[extrude]
type = MeshExtruderGenerator
extrusion_vector = '0 0 0.5'
num_layers = 2
bottom_sideset = 'back'
top_sideset = 'front'
input = file_mesh
[]
uniform_refine = 0
second_order = true
[]
[Modules/TensorMechanics/Master]
[./block1]
strain = FINITE
add_variables = true
generate_output = 'stress_yy strain_yy'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1e-9
plastic_models = J2
[../]
[]
[UserObjects]
[./hardening]
type = TensorMechanicsHardeningCubic
value_0 = 2.4e2
value_residual = 3.0e2
internal_0 = 0
internal_limit = 0.005
[../]
[./J2]
type = TensorMechanicsPlasticJ2
yield_strength = hardening
yield_function_tolerance = 1E-3
internal_constraint_tolerance = 1E-9
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x #change the variable to reflect the new displacement names
boundary = 1
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z #change the variable to reflect the new displacement names
boundary = back
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y #change the variable to reflect the new displacement names
boundary = 3
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_y #change the variable to reflect the new displacement names
boundary = 4
function = '0.0007*t'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.25
end_time = 16
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 101'
[]
[Postprocessors]
[./ave_stress_bottom]
type = SideAverageValue
variable = stress_yy
boundary = 3
[../]
[./ave_strain_bottom]
type = SideAverageValue
variable = strain_yy
boundary = 3
[../]
[]
[Outputs]
exodus = true
perf_graph = true
csv = true
print_linear_residuals = false
[]
modules/combined/examples/phase_field-mechanics/kks_mechanics_KHS.i
# KKS phase-field model coupled with elasticity using Khachaturyan's scheme as
# described in L.K. Aagesen et al., Computational Materials Science, 140, 10-21 (2017)
# Original run #170403a
[Mesh]
type = GeneratedMesh
dim = 3
nx = 640
ny = 1
nz = 1
xmin = -10
xmax = 10
ymin = 0
ymax = 0.03125
zmin = 0
zmax = 0.03125
elem_type = HEX8
[]
[Variables]
# order parameter
[./eta]
order = FIRST
family = LAGRANGE
[../]
# solute concentration
[./c]
order = FIRST
family = LAGRANGE
[../]
# chemical potential
[./w]
order = FIRST
family = LAGRANGE
[../]
# solute phase concentration (matrix)
[./cm]
order = FIRST
family = LAGRANGE
[../]
# solute phase concentration (precipitate)
[./cp]
order = FIRST
family = LAGRANGE
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[ICs]
[./eta_ic]
variable = eta
type = FunctionIC
function = ic_func_eta
block = 0
[../]
[./c_ic]
variable = c
type = FunctionIC
function = ic_func_c
block = 0
[../]
[./w_ic]
variable = w
type = ConstantIC
value = 0.00991
block = 0
[../]
[./cm_ic]
variable = cm
type = ConstantIC
value = 0.131
block = 0
[../]
[./cp_ic]
variable = cp
type = ConstantIC
value = 0.236
block = 0
[../]
[]
[Functions]
[./ic_func_eta]
type = ParsedFunction
value = '0.5*(1.0+tanh((x)/delta_eta/sqrt(2.0)))'
vars = 'delta_eta'
vals = '0.8034'
[../]
[./ic_func_c]
type = ParsedFunction
value = '0.2389*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^3*(6*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^2-15*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))+10)+0.1339*(1-(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^3*(6*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^2-15*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))+10))'
vars = 'delta'
vals = '0.8034'
[../]
[./psi_eq_int]
type = ParsedFunction
value = 'volume*psi_alpha'
vars = 'volume psi_alpha'
vals = 'volume psi_alpha'
[../]
[./gamma]
type = ParsedFunction
value = '(psi_int - psi_eq_int) / dy / dz'
vars = 'psi_int psi_eq_int dy dz'
vals = 'psi_int psi_eq_int 0.03125 0.03125'
[../]
[]
[AuxVariables]
[./sigma11]
order = CONSTANT
family = MONOMIAL
[../]
[./sigma22]
order = CONSTANT
family = MONOMIAL
[../]
[./sigma33]
order = CONSTANT
family = MONOMIAL
[../]
[./e11]
order = CONSTANT
family = MONOMIAL
[../]
[./e12]
order = CONSTANT
family = MONOMIAL
[../]
[./e22]
order = CONSTANT
family = MONOMIAL
[../]
[./e33]
order = CONSTANT
family = MONOMIAL
[../]
[./e_el11]
order = CONSTANT
family = MONOMIAL
[../]
[./e_el12]
order = CONSTANT
family = MONOMIAL
[../]
[./e_el22]
order = CONSTANT
family = MONOMIAL
[../]
[./f_el]
order = CONSTANT
family = MONOMIAL
[../]
[./eigen_strain00]
order = CONSTANT
family = MONOMIAL
[../]
[./Fglobal]
order = CONSTANT
family = MONOMIAL
[../]
[./psi]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./matl_sigma11]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = sigma11
[../]
[./matl_sigma22]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = sigma22
[../]
[./matl_sigma33]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = sigma33
[../]
[./matl_e11]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 0
index_j = 0
variable = e11
[../]
[./f_el]
type = MaterialRealAux
variable = f_el
property = f_el_mat
execute_on = timestep_end
[../]
[./GlobalFreeEnergy]
variable = Fglobal
type = KKSGlobalFreeEnergy
fa_name = fm
fb_name = fp
w = 0.0264
kappa_names = kappa
interfacial_vars = eta
[../]
[./psi_potential]
variable = psi
type = ParsedAux
args = 'Fglobal w c f_el sigma11 e11'
function = 'Fglobal - w*c + f_el - sigma11*e11'
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[./front_y]
type = DirichletBC
variable = disp_y
boundary = front
value = 0
[../]
[./back_y]
type = DirichletBC
variable = disp_y
boundary = back
value = 0
[../]
[./top_z]
type = DirichletBC
variable = disp_z
boundary = top
value = 0
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0
[../]
[]
[Materials]
# Chemical free energy of the matrix
[./fm]
type = DerivativeParsedMaterial
f_name = fm
args = 'cm'
function = '6.55*(cm-0.13)^2'
[../]
# Chemical Free energy of the precipitate phase
[./fp]
type = DerivativeParsedMaterial
f_name = fp
args = 'cp'
function = '6.55*(cp-0.235)^2'
[../]
# Elastic energy of the precipitate
[./elastic_free_energy_p]
type = ElasticEnergyMaterial
f_name = f_el_mat
args = 'eta'
outputs = exodus
[../]
# h(eta)
[./h_eta]
type = SwitchingFunctionMaterial
h_order = HIGH
eta = eta
[../]
# 1- h(eta), putting in function explicitly
[./one_minus_h_eta_explicit]
type = DerivativeParsedMaterial
f_name = one_minus_h_explicit
args = eta
function = 1-eta^3*(6*eta^2-15*eta+10)
outputs = exodus
[../]
# g(eta)
[./g_eta]
type = BarrierFunctionMaterial
g_order = SIMPLE
eta = eta
[../]
# constant properties
[./constants]
type = GenericConstantMaterial
prop_names = 'M L kappa misfit'
prop_values = '0.7 0.7 0.01704 0.00377'
[../]
#Mechanical properties
[./Stiffness_matrix]
type = ComputeElasticityTensor
base_name = C_matrix
C_ijkl = '103.3 74.25 74.25 103.3 74.25 103.3 46.75 46.75 46.75'
fill_method = symmetric9
[../]
[./Stiffness_ppt]
type = ComputeElasticityTensor
C_ijkl = '100.7 71.45 71.45 100.7 71.45 100.7 50.10 50.10 50.10'
base_name = C_ppt
fill_method = symmetric9
[../]
[./C]
type = CompositeElasticityTensor
args = eta
tensors = 'C_matrix C_ppt'
weights = 'one_minus_h_explicit h'
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
eigenstrain_names = 'eigenstrain_ppt'
[../]
[./eigen_strain]
type = ComputeVariableEigenstrain
eigen_base = '0.00377 0.00377 0.00377 0 0 0'
prefactor = h
args = eta
eigenstrain_name = 'eigenstrain_ppt'
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
# enforce c = (1-h(eta))*cm + h(eta)*cp
[./PhaseConc]
type = KKSPhaseConcentration
ca = cm
variable = cp
c = c
eta = eta
[../]
# enforce pointwise equality of chemical potentials
[./ChemPotVacancies]
type = KKSPhaseChemicalPotential
variable = cm
cb = cp
fa_name = fm
fb_name = fp
[../]
#
# Cahn-Hilliard Equation
#
[./CHBulk]
type = KKSSplitCHCRes
variable = c
ca = cm
fa_name = fm
w = w
[../]
[./dcdt]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[./ckernel]
type = SplitCHWRes
mob_name = M
variable = w
[../]
#
# Allen-Cahn Equation
#
[./ACBulkF]
type = KKSACBulkF
variable = eta
fa_name = fm
fb_name = fp
w = 0.0264
args = 'cp cm'
[../]
[./ACBulkC]
type = KKSACBulkC
variable = eta
ca = cm
cb = cp
fa_name = fm
[../]
[./ACBulk_el] #This adds df_el/deta for strain interpolation
type = AllenCahn
variable = eta
f_name = f_el_mat
[../]
[./ACInterface]
type = ACInterface
variable = eta
kappa_name = kappa
[../]
[./detadt]
type = TimeDerivative
variable = eta
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type'
petsc_options_value = 'asm ilu nonzero'
l_max_its = 30
nl_max_its = 10
l_tol = 1.0e-4
nl_rel_tol = 1.0e-8
nl_abs_tol = 1.0e-11
num_steps = 200
[./TimeStepper]
type = SolutionTimeAdaptiveDT
dt = 0.5
[../]
[]
[Postprocessors]
[./f_el_int]
type = ElementIntegralMaterialProperty
mat_prop = f_el_mat
[../]
[./c_alpha]
type = SideAverageValue
boundary = left
variable = c
[../]
[./c_beta]
type = SideAverageValue
boundary = right
variable = c
[../]
[./e11_alpha]
type = SideAverageValue
boundary = left
variable = e11
[../]
[./e11_beta]
type = SideAverageValue
boundary = right
variable = e11
[../]
[./s11_alpha]
type = SideAverageValue
boundary = left
variable = sigma11
[../]
[./s22_alpha]
type = SideAverageValue
boundary = left
variable = sigma22
[../]
[./s33_alpha]
type = SideAverageValue
boundary = left
variable = sigma33
[../]
[./s11_beta]
type = SideAverageValue
boundary = right
variable = sigma11
[../]
[./s22_beta]
type = SideAverageValue
boundary = right
variable = sigma22
[../]
[./s33_beta]
type = SideAverageValue
boundary = right
variable = sigma33
[../]
[./f_el_alpha]
type = SideAverageValue
boundary = left
variable = f_el
[../]
[./f_el_beta]
type = SideAverageValue
boundary = right
variable = f_el
[../]
[./f_c_alpha]
type = SideAverageValue
boundary = left
variable = Fglobal
[../]
[./f_c_beta]
type = SideAverageValue
boundary = right
variable = Fglobal
[../]
[./chem_pot_alpha]
type = SideAverageValue
boundary = left
variable = w
[../]
[./chem_pot_beta]
type = SideAverageValue
boundary = right
variable = w
[../]
[./psi_alpha]
type = SideAverageValue
boundary = left
variable = psi
[../]
[./psi_beta]
type = SideAverageValue
boundary = right
variable = psi
[../]
[./total_energy]
type = ElementIntegralVariablePostprocessor
variable = Fglobal
[../]
# Get simulation cell size from postprocessor
[./volume]
type = ElementIntegralMaterialProperty
mat_prop = 1
[../]
[./psi_eq_int]
type = FunctionValuePostprocessor
function = psi_eq_int
[../]
[./psi_int]
type = ElementIntegralVariablePostprocessor
variable = psi
[../]
[./gamma]
type = FunctionValuePostprocessor
function = gamma
[../]
[./int_position]
type = FindValueOnLine
start_point = '-10 0 0'
end_point = '10 0 0'
v = eta
target = 0.5
[../]
[]
#
# Precondition using handcoded off-diagonal terms
#
[Preconditioning]
[./full]
type = SMP
full = true
[../]
[]
[Outputs]
[./exodus]
type = Exodus
interval = 20
[../]
checkpoint = true
[./csv]
type = CSV
execute_on = 'final'
[../]
[]
test/tests/functions/parsed/steady.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
initial_condition = 2
[../]
[]
[Functions]
[./right_bc]
type = ParsedFunction
value = a+1
vals = left_avg
vars = a
[../]
[./left_bc]
type = ParsedFunction
value = a
vals = left_avg
vars = a
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = FunctionDirichletBC
variable = u
boundary = left
function = left_bc
[../]
[./right]
type = FunctionDirichletBC
variable = u
boundary = 'right right'
function = right_bc
[../]
[]
[Postprocessors]
[./left_avg]
type = SideAverageValue
variable = u
execute_on = initial
boundary = left
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
modules/phase_field/examples/measure_interface_energy/1Dinterface_energy.i
[Mesh]
type = GeneratedMesh
dim = 1
nx = 100
xmax = 100
xmin = 0
elem_type = EDGE
[]
[AuxVariables]
[./local_energy]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./local_free_energy]
type = TotalFreeEnergy
variable = local_energy
kappa_names = kappa_c
interfacial_vars = c
[../]
[]
[Variables]
[./c]
order = FIRST
family = LAGRANGE
scaling = 1e1
[./InitialCondition]
type = RampIC
variable = c
value_left = 0
value_right = 1
[../]
[../]
[./w]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./c_res]
type = SplitCHParsed
variable = c
f_name = F
kappa_name = kappa_c
w = w
[../]
[./w_res]
type = SplitCHWRes
variable = w
mob_name = M
[../]
[./time]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[]
[Functions]
[./Int_energy]
type = ParsedFunction
vals = 'total_solute Cleft Cright Fleft Fright volume'
value = '((total_solute-Cleft*volume)/(Cright-Cleft))*Fright+(volume-(total_solute-Cleft*volume)/(Cright-Cleft))*Fleft'
vars = 'total_solute Cleft Cright Fleft Fright volume'
[../]
[./Diff]
type = ParsedFunction
vals = 'total_free_energy total_no_int'
vars = 'total_free_energy total_no_int'
value = total_free_energy-total_no_int
[../]
[]
[Materials]
[./consts]
type = GenericConstantMaterial
prop_names = 'kappa_c M'
prop_values = '25 150'
[../]
[./Free_energy]
type = DerivativeParsedMaterial
f_name = F
function = 'c^2*(c-1)^2'
args = c
derivative_order = 2
[../]
[]
[Postprocessors]
# The total free energy of the simulation cell to observe the energy reduction.
[./total_free_energy]
type = ElementIntegralVariablePostprocessor
variable = local_energy
[../]
# for testing we also monitor the total solute amount, which should be conserved,
# gives Cavg in % for this problem.
[./total_solute]
type = ElementIntegralVariablePostprocessor
variable = c
[../]
# Get simulation cell size (1D volume) from postprocessor
[./volume]
type = ElementIntegralMaterialProperty
mat_prop = 1
[../]
# Find concentration in each phase using SideAverageValue
[./Cleft]
type = SideAverageValue
boundary = left
variable = c
[../]
[./Cright]
type = SideAverageValue
boundary = right
variable = c
[../]
# Find local energy in each phase by checking boundaries
[./Fleft]
type = SideAverageValue
boundary = left
variable = local_energy
[../]
[./Fright]
type = SideAverageValue
boundary = right
variable = local_energy
[../]
# Use concentrations and energies to find total free energy without any interface,
# only applies once equilibrium is reached!!
# Difference between energy with and without interface
# gives interface energy per unit area.
[./total_no_int]
type = FunctionValuePostprocessor
function = Int_energy
[../]
[./Energy_of_Interface]
type = FunctionValuePostprocessor
function = Diff
[../]
[]
[Preconditioning]
# This preconditioner makes sure the Jacobian Matrix is fully populated. Our
# kernels compute all Jacobian matrix entries.
# This allows us to use the Newton solver below.
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
scheme = 'bdf2'
# Automatic differentiation provides a _full_ Jacobian in this example
# so we can safely use NEWTON for a fast solve
solve_type = 'NEWTON'
l_max_its = 15
l_tol = 1.0e-6
nl_max_its = 15
nl_rel_tol = 1.0e-10
nl_abs_tol = 1.0e-4
start_time = 0.0
# make sure that the result obtained for the interfacial free energy is fully converged
end_time = 40
[./TimeStepper]
type = SolutionTimeAdaptiveDT
dt = 0.5
[../]
[]
[Outputs]
gnuplot = true
csv = true
[./exodus]
type = Exodus
show = 'c local_energy'
execute_on = 'failed initial nonlinear timestep_end final'
[../]
[./console]
type = Console
execute_on = 'FAILED INITIAL NONLINEAR TIMESTEP_END final'
[../]
perf_graph = true
[]
modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/lps_single_split.i
# This test provides an example of combining two LPS viscoplasticity model.
# The answer should be close, but not exactly the same, as lps_single.i
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmax = 0.002
ymax = 0.002
[]
[Modules/TensorMechanics/Master/All]
strain = FINITE
add_variables = true
generate_output = 'strain_xx strain_yy strain_xy hydrostatic_stress vonmises_stress'
use_automatic_differentiation = true
[]
[Functions]
[./pull]
type = PiecewiseLinear
x = '0 0.1'
y = '0 1e-5'
[../]
[./tot_effective_viscoplasticity]
type = ParsedFunction
vals = 'lps_1_eff_creep_strain lps_2_eff_creep_strain'
vars = 'lps_1_eff_creep_strain lps_2_eff_creep_strain'
value = 'lps_1_eff_creep_strain+lps_2_eff_creep_strain'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0.3
[../]
[./stress]
type = ADComputeMultiplePorousInelasticStress
inelastic_models = 'one two'
initial_porosity = 0.1
outputs = all
[../]
[./one]
type = ADViscoplasticityStressUpdate
coefficient = 'coef'
power = 3
base_name = 'lps_first'
outputs = all
relative_tolerance = 1e-11
[../]
[./two]
type = ADViscoplasticityStressUpdate
coefficient = 'coef'
power = 3
base_name = 'lps_second'
outputs = all
relative_tolerance = 1e-11
[../]
[./coef]
type = ParsedMaterial
f_name = coef
# Example of creep power law
function = '0.5e-18 * exp(-4e4 / 1.987 / 1200)'
[../]
[]
[BCs]
[./no_disp_x]
type = ADDirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_disp_y]
type = ADDirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./pull_disp_y]
type = ADFunctionDirichletBC
variable = disp_y
boundary = top
function = pull
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
dt = 0.01
end_time = 0.12
[]
[Postprocessors]
[./disp_x]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./disp_y]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[./avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
[../]
[./avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
[../]
[./dt]
type = TimestepSize
[../]
[./num_lin]
type = NumLinearIterations
outputs = console
[../]
[./num_nonlin]
type = NumNonlinearIterations
outputs = console
[../]
[./lps_1_eff_creep_strain]
type = ElementAverageValue
variable = lps_first_effective_viscoplasticity
outputs = none
[../]
[./lps_2_eff_creep_strain]
type = ElementAverageValue
variable = lps_second_effective_viscoplasticity
outputs = none
[../]
[./eff_creep_strain_tot]
type = FunctionValuePostprocessor
function = tot_effective_viscoplasticity
[../]
[./porosity]
type = ElementAverageValue
variable = porosity
[../]
[]
[Outputs]
csv = true
[]
test/tests/userobjects/interface_user_object/interface_value_user_object_QP.i
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 2
xmax = 2
ny = 2
ymax = 2
elem_type = QUAD4
[]
[./subdomain_id]
input = gen
type = SubdomainBoundingBoxGenerator
bottom_left = '0 0 0'
top_right = '1 1 0'
block_id = 1
[../]
[./interface]
type = SideSetsBetweenSubdomainsGenerator
input = subdomain_id
master_block = '0'
paired_block = '1'
new_boundary = 'interface'
[../]
[]
[Functions]
[./fn_exact]
type = ParsedFunction
value = 'x*x+y*y'
[../]
[./ffn]
type = ParsedFunction
value = -4
[../]
[]
[UserObjects]
[./interface_value_uo]
type = InterfaceQpValueUserObject
var = diffusivity_1
var_neighbor = diffusivity_2
boundary = 'interface'
execute_on = 'initial timestep_end'
interface_value_type = average
[../]
[./interface_master_minus_slave_uo]
type = InterfaceQpValueUserObject
var = diffusivity_1
var_neighbor = diffusivity_2
boundary = 'interface'
execute_on = 'initial timestep_end'
interface_value_type = jump_master_minus_slave
[../]
[./interface_slave_minus_master_uo]
type = InterfaceQpValueUserObject
var = diffusivity_1
var_neighbor = diffusivity_2
boundary = 'interface'
execute_on = 'initial timestep_end'
interface_value_type = jump_slave_minus_master
[../]
[./interface_absolute_jump_uo]
type = InterfaceQpValueUserObject
var = diffusivity_1
var_neighbor = diffusivity_2
boundary = 'interface'
execute_on = 'initial timestep_end'
interface_value_type = jump_abs
[../]
[./interface_master_uo]
type = InterfaceQpValueUserObject
var = diffusivity_1
var_neighbor = diffusivity_2
boundary = 'interface'
execute_on = 'initial timestep_end'
interface_value_type = master
[../]
[./interface_slave_uo]
type = InterfaceQpValueUserObject
var = diffusivity_1
var_neighbor = diffusivity_2
boundary = 'interface'
execute_on = 'initial timestep_end'
interface_value_type = slave
[../]
[]
[Variables]
[./u]
family = LAGRANGE
order = FIRST
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./ffn]
type = BodyForce
variable = u
function = ffn
[../]
[]
[BCs]
[./all]
type = FunctionDirichletBC
variable = u
boundary = '0 1 2 3'
function = fn_exact
[../]
[]
[Materials]
[./stateful1]
type = StatefulMaterial
block = 0
initial_diffusivity = 5
# outputs = all
[../]
[./stateful2]
type = StatefulMaterial
block = 1
initial_diffusivity = 2
# outputs = all
[../]
[]
[AuxKernels]
[./diffusivity_1]
type = MaterialRealAux
property = diffusivity
variable = diffusivity_1
[]
[./diffusivity_2]
type = MaterialRealAux
property = diffusivity
variable = diffusivity_2
[]
[./interface_avg_qp_aux]
type = InterfaceValueUserObjectAux
variable = avg_qp
boundary = 'interface'
interface_uo_name = interface_value_uo
[]
[./interface_master_minus_slave_qp_aux]
type = InterfaceValueUserObjectAux
variable = master_minus_slave_qp
boundary = 'interface'
interface_uo_name = interface_master_minus_slave_uo
[../]
[./interface_slave_minus_master_qp_aux]
type = InterfaceValueUserObjectAux
variable = slave_minus_master_qp
boundary = 'interface'
interface_uo_name = interface_slave_minus_master_uo
[../]
[./interface_absolute_jump_qp_aux]
type = InterfaceValueUserObjectAux
variable = abs_jump_qp
boundary = 'interface'
interface_uo_name = interface_absolute_jump_uo
[../]
[./interface_master_qp_aux]
type = InterfaceValueUserObjectAux
variable = master_qp
boundary = 'interface'
interface_uo_name = interface_master_uo
[../]
[./interface_slave_qp_aux]
type = InterfaceValueUserObjectAux
variable = slave_qp
boundary = 'interface'
interface_uo_name = interface_slave_uo
[../]
[]
[AuxVariables]
[./diffusivity_1]
family = MONOMIAL
order = CONSTANT
[]
[./diffusivity_2]
family = MONOMIAL
order = CONSTANT
[]
[./avg_qp]
family = MONOMIAL
order = CONSTANT
[]
[./master_minus_slave_qp]
family = MONOMIAL
order = CONSTANT
[]
[./slave_minus_master_qp]
family = MONOMIAL
order = CONSTANT
[]
[./abs_jump_qp]
family = MONOMIAL
order = CONSTANT
[]
[./master_qp]
family = MONOMIAL
order = CONSTANT
[]
[./slave_qp]
family = MONOMIAL
order = CONSTANT
[]
[]
[Postprocessors]
[./interface_average_PP]
type = SideAverageValue
boundary = interface
variable = avg_qp
[../]
[./master_minus_slave_qp_PP]
type = SideAverageValue
boundary = interface
variable = master_minus_slave_qp
[../]
[./slave_minus_master_qp_PP]
type = SideAverageValue
boundary = interface
variable = slave_minus_master_qp
[../]
[./abs_jump_qp_PP]
type = SideAverageValue
boundary = interface
variable = abs_jump_qp
[../]
[./master_qp_PP]
type = SideAverageValue
boundary = interface
variable = master_qp
[../]
[./slave_qp_PP]
type = SideAverageValue
boundary = interface
variable = slave_qp
[../]
[]
[Executioner]
type = Steady
solve_type = NEWTON
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/phase_field_fracture/crack2d_aniso.i
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Modules]
[./TensorMechanics]
[./Master]
[./All]
add_variables = true
strain = SMALL
additional_generate_output = 'strain_yy stress_yy'
planar_formulation = PLANE_STRAIN
[../]
[../]
[../]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = F
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[./off_disp]
type = AllenCahnElasticEnergyOffDiag
variable = c
displacements = 'disp_x disp_y'
mob_name = L
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 1e-6'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '127.0 70.8 70.8 127.0 70.8 127.0 73.55 73.55 73.55'
fill_method = symmetric9
euler_angle_1 = 30
euler_angle_2 = 0
euler_angle_3 = 0
[../]
[./define_mobility]
type = ParsedMaterial
material_property_names = 'gc_prop visco'
f_name = L
function = '1.0/(gc_prop * visco)'
[../]
[./define_kappa]
type = ParsedMaterial
material_property_names = 'gc_prop l'
f_name = kappa_op
function = 'gc_prop * l'
[../]
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = stress_spectral
use_current_history_variable = true
[../]
[./degradation]
type = DerivativeParsedMaterial
f_name = degradation
args = 'c'
function = '(1.0-c)^2*(1.0 - eta) + eta'
constant_names = 'eta'
constant_expressions = '1.0e-6'
derivative_order = 2
[../]
[./local_fracture_energy]
type = DerivativeParsedMaterial
f_name = local_fracture_energy
args = 'c'
material_property_names = 'gc_prop l'
function = 'c^2 * gc_prop / 2 / l'
derivative_order = 2
[../]
[./fracture_driving_energy]
type = DerivativeSumMaterial
args = c
sum_materials = 'elastic_energy local_fracture_energy'
derivative_order = 2
f_name = F
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 5e-5
num_steps = 2
[]
[Outputs]
exodus = true
[]
test/tests/mesh/named_entities/named_entities_test.i
[Mesh]
file = named_entities.e
uniform_refine = 1
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
block = '1 center_block 3'
[./InitialCondition]
type = ConstantIC
value = 20
block = 'center_block 3'
[../]
[../]
[]
[AuxVariables]
[./reporter]
order = CONSTANT
family = MONOMIAL
block = 'left_block 3'
[../]
[]
[ICs]
[./reporter_ic]
type = ConstantIC
variable = reporter
value = 10
[../]
[]
[Kernels]
active = 'diff body_force'
[./diff]
type = Diffusion
variable = u
# Note we are using both names and numbers here
block = 'left_block 2 right_block'
[../]
[./body_force]
type = BodyForce
variable = u
block = 'center_block'
value = 10
[../]
[]
[AuxKernels]
[./hardness]
type = MaterialRealAux
variable = reporter
property = 'hardness'
block = 'left_block 3'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = 'left_side'
value = 1
[../]
[./right]
type = DirichletBC
variable = u
boundary = 'right_side'
value = 1
[../]
[]
[Postprocessors]
[./elem_average]
type = ElementAverageValue
variable = u
block = 'center_block'
execute_on = 'initial timestep_end'
[../]
[./side_average]
type = SideAverageValue
variable = u
boundary = 'right_side'
execute_on = 'initial timestep_end'
[../]
[]
[Materials]
[./constant]
type = GenericConstantMaterial
prop_names = 'hardness'
prop_values = 10
block = '1 right_block'
[../]
[./empty]
type = MTMaterial
block = 'center_block'
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/lps_single.i
# This test provides an example of an individual LPS viscoplasticity model
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 1
xmax = 0.002
ymax = 0.002
[]
[Modules/TensorMechanics/Master/All]
strain = FINITE
add_variables = true
generate_output = 'strain_xx strain_yy strain_xy hydrostatic_stress vonmises_stress'
use_automatic_differentiation = true
[]
[Functions]
[./pull]
type = PiecewiseLinear
x = '0 0.1'
y = '0 1e-5'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0.3
[../]
[./stress]
type = ADComputeMultiplePorousInelasticStress
inelastic_models = lps
initial_porosity = 0.1
outputs = all
[../]
[./lps]
type = ADViscoplasticityStressUpdate
coefficient = 'coef'
power = 3
outputs = all
relative_tolerance = 1e-11
[../]
[./coef]
type = ParsedMaterial
f_name = coef
# Example of creep power law
function = '1e-18 * exp(-4e4 / 1.987 / 1200)'
[../]
[]
[BCs]
[./no_disp_x]
type = ADDirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./no_disp_y]
type = ADDirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./pull_disp_y]
type = ADFunctionDirichletBC
variable = disp_y
boundary = top
function = pull
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
dt = 0.01
end_time = 0.12
[]
[Postprocessors]
[./disp_x]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./disp_y]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[./avg_hydro]
type = ElementAverageValue
variable = hydrostatic_stress
[../]
[./avg_vonmises]
type = ElementAverageValue
variable = vonmises_stress
[../]
[./dt]
type = TimestepSize
[../]
[./num_lin]
type = NumLinearIterations
outputs = console
[../]
[./num_nonlin]
type = NumNonlinearIterations
outputs = console
[../]
[./eff_creep_strain]
type = ElementAverageValue
variable = effective_viscoplasticity
[../]
[./porosity]
type = ElementAverageValue
variable = porosity
[../]
[]
[Outputs]
csv = true
[]
modules/combined/test/tests/cavity_pressure/3d.i
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V0 + gamma * t
# with
# alpha = n0
# beta = T0 / 2
# gamma = - (0.003322259...) * V0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# The parameters combined at t = 1 gives p = 301.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
file = 3d.e
[]
[Functions]
[./displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[../]
[./displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[../]
[./temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[../]
[./material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.35'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 240.54443866068704
[../]
[./material_input]
[../]
[]
[AuxVariables]
[./pressure_residual_x]
[../]
[./pressure_residual_y]
[../]
[./pressure_residual_z]
[../]
[./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_zx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat]
type = Diffusion
variable = temp
use_displaced_mesh = true
[../]
[./material_input_dummy]
type = Diffusion
variable = material_input
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
[]
[BCs]
[./no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[../]
[./no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[../]
[./no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[../]
[./prescribed_left]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[../]
[./prescribed_right]
type = FunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[../]
[./no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[../]
[./no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[../]
[./no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[../]
[./temperatureInterior]
type = FunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[../]
[./MaterialInput]
type = FunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[../]
[./CavityPressure]
[./1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
volume = internalVolume
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
[../]
[../]
[]
[Materials]
[./elast_tensor1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e1
poissons_ratio = 0
block = 1
[../]
[./strain1]
type = ComputeFiniteStrain
block = 1
[../]
[./stress1]
type = ComputeFiniteStrainElasticStress
block = 1
[../]
[./elast_tensor2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0
block = 2
[../]
[./strain2]
type = ComputeFiniteStrain
block = 2
[../]
[./stress2]
type = ComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[../]
[./aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[../]
[./materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[../]
[]
[Outputs]
exodus = true
[]
modules/functional_expansion_tools/examples/2D_interface_different_submesh/main.i
# Derived from the example '2D_interface' with the following differences:
#
# 1) The number of y divisions in the sub app is not the same as the master app
# 2) The subapp mesh is skewed in y
# 3) The Functional Expansion order for the flux term was increased to 7
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0.0
xmax = 0.4
nx = 6
ymin = 0.0
ymax = 10.0
ny = 20
[]
[Variables]
[./m]
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./source_m]
type = BodyForce
variable = m
value = 100
[../]
[]
[Materials]
[./Impervium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '0.00001 50.0 100.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
value = 2
variable = m
[../]
[]
[BCs]
[./interface_value]
type = FXValueBC
variable = m
boundary = right
function = FX_Basis_Value_Main
[../]
[./interface_flux]
type = FXFluxBC
boundary = right
variable = m
function = FX_Basis_Flux_Main
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '4'
physical_bounds = '0.0 10'
y = Legendre
[../]
[./FX_Basis_Flux_Main]
type = FunctionSeries
series_type = Cartesian
orders = '7'
physical_bounds = '0.0 10'
y = Legendre
[../]
[]
[UserObjects]
[./FX_Flux_UserObject_Main]
type = FXBoundaryFluxUserObject
function = FX_Basis_Flux_Main
variable = m
boundary = right
diffusivity = thermal_conductivity
[../]
[]
[Postprocessors]
[./average_interface_value]
type = SideAverageValue
variable = m
boundary = right
[../]
[./total_flux]
type = SideFluxIntegral
variable = m
boundary = right
diffusivity = thermal_conductivity
[../]
[./picard_iterations]
type = NumPicardIterations
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
picard_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
picard_rel_tol = 1e-8
picard_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
sub_cycling = true
[../]
[]
[Transfers]
[./FluxToSub]
type = MultiAppFXTransfer
direction = to_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Flux_UserObject_Main
multi_app_object_name = FX_Basis_Flux_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
direction = from_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[./FluxToMe]
type = MultiAppFXTransfer
direction = from_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Basis_Flux_Main
multi_app_object_name = FX_Flux_UserObject_Sub
[../]
[]
modules/heat_conduction/test/tests/radiation_transfer_action/radiative_transfer_action.i
[Problem]
kernel_coverage_check = false
[]
[Mesh]
type = MeshGeneratorMesh
[./cmg]
type = CartesianMeshGenerator
dim = 2
dx = '1 1.3 1.9'
ix = '3 3 3'
dy = '2 1.2 0.9'
iy = '3 3 3'
subdomain_id = '0 1 0
4 5 2
0 3 0'
[../]
[./inner_bottom]
type = SideSetsBetweenSubdomainsGenerator
input = cmg
master_block = 1
paired_block = 5
new_boundary = 'inner_bottom'
[../]
[./inner_left]
type = SideSetsBetweenSubdomainsGenerator
input = inner_bottom
master_block = 4
paired_block = 5
new_boundary = 'inner_left'
[../]
[./inner_right]
type = SideSetsBetweenSubdomainsGenerator
input = inner_left
master_block = 2
paired_block = 5
new_boundary = 'inner_right'
[../]
[./inner_top]
type = SideSetsBetweenSubdomainsGenerator
input = inner_right
master_block = 3
paired_block = 5
new_boundary = 'inner_top'
[../]
[./rename]
type = RenameBlockGenerator
old_block_id = '1 2 3 4'
new_block_id = '0 0 0 0'
input = inner_top
[../]
[]
[Variables]
[./temperature]
block = 0
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temperature
block = 0
diffusion_coefficient = 5
[../]
[]
[GrayDiffuseRadiation]
[./cavity]
sidesets = '4 5 6 7'
emissivity = '0.9 0.8 0.4 1'
n_patches = '2 2 2 3'
partitioners = 'centroid centroid centroid centroid'
centroid_partitioner_directions = 'x y y x'
final_mesh_generator = rename
temperature = temperature
adiabatic_sidesets = '7'
fixed_temperature_sidesets = '4'
fixed_boundary_temperatures = '1200'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = temperature
boundary = left
value = 600
[../]
[./right]
type = DirichletBC
variable = temperature
boundary = right
value = 300
[../]
[]
[Postprocessors]
[./average_T_inner_right]
type = SideAverageValue
variable = temperature
boundary = inner_right
[../]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/gap_heat_transfer_htonly/sphere2DRZ.i
#
# 2DRZ Spherical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid sphere of radius = 1 unit, and outer
# hollow sphere with an inner radius of 2. In other words, the gap between
# them is 1 radial unit in length.
#
# The conductivity of both spheres is set very large to achieve a uniform
# temperature in each sphere. The temperature of the center node of the
# inner sphere is ramped from 100 to 200 over one time unit. The
# temperature of the outside of the outer, hollow sphere is held fixed
# at 100.
#
# A simple analytical solution is possible for the integrated heat flux
# between the inner and outer spheres:
#
# Integrated Flux = (T_left - T_right) * (gapK/(r^2*((1/r1)-(1/r2)))) * Area
#
# For gapK = 1 (default value)
#
# The area is taken as the area of the slave (inner) surface:
#
# Area = 4 * pi * 1^2 (4*pi*r^2)
#
# The integrated heat flux across the gap at time 1 is then:
#
# 4*pi*k*delta_T/((1/r1)-(1/r2))
# 4*pi*1*100/((1/1) - (1/2)) = 2513.3 watts
#
# For comparison, see results from the integrated flux post processors.
# This simulation makes use of symmetry, so only 1/2 of the spheres is meshed
# As such, the integrated flux from the post processors is 1/2 of the total,
# or 1256.6 watts... i.e. 400*pi.
# The value coming from the post processor is slightly less than this
# but converges as mesh refinement increases.
#
# Simulating contact is challenging. Regression tests that exercise
# contact features can be difficult to solve consistently across multiple
# platforms. While designing these tests, we felt it worth while to note
# some aspects of these tests. The following applies to:
# sphere3D.i, sphere2DRZ.i, cyl2D.i, and cyl3D.i.
# 1. We decided that to perform consistently across multiple platforms we
# would use very small convergence tolerance. In this test we chose an
# nl_rel_tol of 1e-12.
# 2. Due to such a high value for thermal conductivity (used here so that the
# domains come to a uniform temperature) the integrated flux at time = 0
# was relatively large (the value coming from SideIntegralFlux =
# -_diffusion_coef[_qp]*_grad_u[_qp]*_normals[_qp] where the diffusion coefficient
# here is thermal conductivity).
# Even though _grad_u[_qp] is small, in this case the diffusion coefficient
# is large. The result is a number that isn't exactly zero and tends to
# fail exodiff. For this reason the parameter execute_on = initial should not
# be used. That parameter is left to default settings in these regression tests.
#
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = cyl2D.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
gap_conductivity = 1
quadrature = true
gap_geometry_type = SPHERE
sphere_origin = '0 0 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[./Console]
type = Console
[../]
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
modules/combined/test/tests/ad_cavity_pressure/multiple_postprocessors.i
#
# Cavity Pressure Test (Volume input as a vector of postprocessors)
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V0 + gamma * t
# with
# alpha = n0
# beta = T0 / 2
# gamma = - (0.003322259...) * V0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# In this test the internal volume is calculated as the sum of two Postprocessors
# internalVolumeInterior and internalVolumeExterior. This sum equals the value
# reported by the internalVolume postprocessor.
#
# The parameters combined at t = 1 gives p = 301.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
file = 3d.e
[]
[Functions]
[./displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[../]
[./displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[../]
[./temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[../]
[./material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.35'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 240.54443866068704
[../]
[./material_input]
[../]
[]
[AuxVariables]
[./pressure_residual_x]
[../]
[./pressure_residual_y]
[../]
[./pressure_residual_z]
[../]
[./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_zx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
use_automatic_differentiation = true
[../]
[./heat]
type = ADDiffusion
variable = temp
use_displaced_mesh = true
[../]
[./material_input_dummy]
type = ADDiffusion
variable = material_input
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
[]
[BCs]
[./no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[../]
[./no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[../]
[./no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[../]
[./prescribed_left]
type = ADFunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[../]
[./prescribed_right]
type = ADFunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[../]
[./no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[../]
[./no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[../]
[./no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[../]
[./temperatureInterior]
type = ADFunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[../]
[./MaterialInput]
type = ADFunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[../]
[./CavityPressure]
[./1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
volume = 'internalVolumeInterior internalVolumeExterior'
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
use_automatic_differentiation = true
[../]
[../]
[]
[Materials]
[./elast_tensor1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e1
poissons_ratio = 0
block = 1
[../]
[./strain1]
type = ADComputeFiniteStrain
block = 1
[../]
[./stress1]
type = ADComputeFiniteStrainElasticStress
block = 1
[../]
[./elast_tensor2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0
block = 2
[../]
[./strain2]
type = ADComputeFiniteStrain
block = 2
[../]
[./stress2]
type = ADComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[../]
[./aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[../]
[./internalVolumeInterior]
type = InternalVolume
boundary = '1 2 3 4 5 6'
execute_on = 'initial linear'
[../]
[./internalVolumeExterior]
type = InternalVolume
boundary = '13 14 15 16 17 18'
execute_on = 'initial linear'
[../]
[./materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/tutorials/basics/part_2.4.i
#Tensor Mechanics tutorial: the basics
#Step 2, part 4
#2D axisymmetric RZ simulation of uniaxial tension with J2 plasticity with
#hardening
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = necking_quad4.e
uniform_refine = 0
second_order = true
[]
[Modules/TensorMechanics/Master]
[./block1]
strain = FINITE
add_variables = true
generate_output = 'stress_yy strain_yy vonmises_stress'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeMultiPlasticityStress
ep_plastic_tolerance = 1e-9
plastic_models = J2
[../]
[]
[UserObjects]
[./hardening]
type = TensorMechanicsHardeningCubic
value_0 = 2.4e2
value_residual = 3.0e2
internal_0 = 0
internal_limit = 0.005
[../]
[./J2]
type = TensorMechanicsPlasticJ2
yield_strength = hardening
yield_function_tolerance = 1E-9
internal_constraint_tolerance = 1E-9
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_r
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0.0
[../]
[./top]
type = FunctionDirichletBC
variable = disp_z
boundary = top
function = '0.0007*t'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
dt = 0.25
end_time = 20
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
petsc_options_value = 'asm lu 1 101'
[]
[Postprocessors]
[./ave_stress_bottom]
type = SideAverageValue
variable = stress_yy
boundary = bottom
[../]
[./ave_strain_bottom]
type = SideAverageValue
variable = strain_yy
boundary = bottom
[../]
[]
[Outputs]
exodus = true
perf_graph = true
csv = true
print_linear_residuals = false
[]
modules/combined/examples/effective_properties/effective_th_cond.i
# This example calculates the effective thermal conductivity across a microstructure
# with circular second phase precipitates. Two methods are used to calculate the effective thermal conductivity,
# the direct method that applies a temperature to one side and a heat flux to the other,
# and the AEH method.
[Mesh] #Sets mesh size to 10 microns by 10 microns
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 100
ny = 100
xmax = 10
ymax = 10
[]
[./new_nodeset]
input = gen
type = ExtraNodesetGenerator
coord = '5 5'
new_boundary = 100
[../]
[]
[Variables] #Adds variables needed for two ways of calculating effective thermal cond.
[./T] #Temperature used for the direct calculation
initial_condition = 800
[../]
[./Tx_AEH] #Temperature used for the x-component of the AEH solve
initial_condition = 800
scaling = 1.0e4 #Scales residual to improve convergence
[../]
[./Ty_AEH] #Temperature used for the y-component of the AEH solve
initial_condition = 800
scaling = 1.0e4 #Scales residual to improve convergence
[../]
[]
[AuxVariables] #Creates second constant phase
[./phase2]
[../]
[]
[ICs] #Sets the IC for the second constant phase
[./phase2_IC] #Creates circles with smooth interfaces at random locations
variable = phase2
type = MultiSmoothCircleIC
int_width = 0.3
numbub = 20
bubspac = 1.5
radius = 0.5
outvalue = 0
invalue = 1
block = 0
[../]
[]
[Kernels]
[./HtCond] #Kernel for direct calculation of thermal cond
type = HeatConduction
variable = T
[../]
[./heat_x] #All other kernels are for AEH approach to calculate thermal cond.
type = HeatConduction
variable = Tx_AEH
[../]
[./heat_rhs_x]
type = HomogenizedHeatConduction
variable = Tx_AEH
component = 0
[../]
[./heat_y]
type = HeatConduction
variable = Ty_AEH
[../]
[./heat_rhs_y]
type = HomogenizedHeatConduction
variable = Ty_AEH
component = 1
[../]
[]
[BCs]
[./Periodic]
[./all]
auto_direction = 'x y'
variable = 'Tx_AEH Ty_AEH'
[../]
[../]
[./left_T] #Fix temperature on the left side
type = DirichletBC
variable = T
boundary = left
value = 800
[../]
[./right_flux] #Set heat flux on the right side
type = NeumannBC
variable = T
boundary = right
value = 5e-6
[../]
[./fix_x] #Fix Tx_AEH at a single point
type = DirichletBC
variable = Tx_AEH
value = 800
boundary = 100
[../]
[./fix_y] #Fix Ty_AEH at a single point
type = DirichletBC
variable = Ty_AEH
value = 800
boundary = 100
[../]
[]
[Materials]
[./thcond] #The equation defining the thermal conductivity is defined here, using two ifs
# The k in the bulk is k_b, in the precipitate k_p2, and across the interaface k_int
type = ParsedMaterial
block = 0
constant_names = 'length_scale k_b k_p2 k_int'
constant_expressions = '1e-6 5 1 0.1'
function = 'sk_b:= length_scale*k_b; sk_p2:= length_scale*k_p2; sk_int:= k_int*length_scale; if(phase2>0.1,if(phase2>0.95,sk_p2,sk_int),sk_b)'
outputs = exodus
f_name = thermal_conductivity
args = phase2
[../]
[]
[Postprocessors]
[./right_T]
type = SideAverageValue
variable = T
boundary = right
[../]
[./k_x_direct] #Effective thermal conductivity from direct method
# This value is lower than the AEH value because it is impacted by second phase
# on the right boundary
type = ThermalConductivity
variable = T
flux = 5e-6
length_scale = 1e-06
T_hot = 800
dx = 10
boundary = right
[../]
[./k_x_AEH] #Effective thermal conductivity in x-direction from AEH
type = HomogenizedThermalConductivity
variable = Tx_AEH
temp_x = Tx_AEH
temp_y = Ty_AEH
component = 0
scale_factor = 1e6 #Scale due to length scale of problem
[../]
[./k_y_AEH] #Effective thermal conductivity in x-direction from AEH
type = HomogenizedThermalConductivity
variable = Ty_AEH
temp_x = Tx_AEH
temp_y = Ty_AEH
component = 1
scale_factor = 1e6 #Scale due to length scale of problem
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
off_diag_row = 'Tx_AEH Ty_AEH'
off_diag_column = 'Ty_AEH Tx_AEH'
[../]
[]
[Executioner]
type = Steady
l_max_its = 15
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart -pc_hypre_boomeramg_strong_threshold'
petsc_options_value = 'hypre boomeramg 31 0.7'
l_tol = 1e-04
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
csv = true
[]
test/tests/userobjects/side_user_object_no_boundary_error/side_no_boundary.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Postprocessors]
[./avg]
type = SideAverageValue
variable = u
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/ad_thermal_expansion_function/instantaneous.i
# This test checks the thermal expansion calculated via a instantaneous thermal expansion coefficient.
# The coefficient is selected so as to result in a 1e-4 strain in the x-axis, and to cross over
# from positive to negative strain.
[Mesh]
[./gen]
type = GeneratedMeshGenerator
dim = 3
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = SMALL
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
use_automatic_differentiation = true
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
function = '1 + t'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.3
[../]
[./stress]
type = ADComputeLinearElasticStress
[../]
[./thermal_expansion_strain]
type = ADComputeInstantaneousThermalExpansionFunctionEigenstrain
thermal_expansion_function = 4e-4
stress_free_temperature = 1.5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Postprocessors]
[./disp_x_max]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./temp_avg]
type = ElementAverageValue
variable = temp
[../]
[]
[Executioner]
type = Transient
end_time = 1.0
dt = 0.1
[]
[Outputs]
csv = true
[]
modules/combined/test/tests/cavity_pressure/initial_temperature.i
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V0 + gamma * t
# with
# alpha = n0
# beta = T0 / 2
# gamma = -(0.003322259...) * V0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# The parameters combined at t = 1 gives p = 301.
#
# This test sets the initial temperature to 500, but the CavityPressure
# is told that that initial temperature is T0. Thus, the final solution
# is unchanged.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 3d.e
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[Functions]
[./displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[../]
[./displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[../]
[./temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[../]
[./material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.35'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 500
[../]
[./material_input]
[../]
[]
[AuxVariables]
[./pressure_residual_x]
[../]
[./pressure_residual_y]
[../]
[./pressure_residual_z]
[../]
[./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_zx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat]
type = Diffusion
variable = temp
use_displaced_mesh = true
[../]
[./material_input_dummy]
type = Diffusion
variable = material_input
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
[]
[BCs]
[./no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[../]
[./no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[../]
[./no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[../]
[./prescribed_left]
type = FunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[../]
[./prescribed_right]
type = FunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[../]
[./no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[../]
[./no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[../]
[./no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[../]
[./temperatureInterior]
type = FunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[../]
[./MaterialInput]
type = FunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[../]
[./CavityPressure]
[./1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
initial_temperature = 240.54443866068704
volume = internalVolume
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
[../]
[../]
[]
[Materials]
[./elast_tensor1]
type = ComputeElasticityTensor
C_ijkl = '0 5'
fill_method = symmetric_isotropic
block = 1
[../]
[./strain1]
type = ComputeFiniteStrain
block = 1
[../]
[./stress1]
type = ComputeFiniteStrainElasticStress
block = 1
[../]
[./elast_tensor2]
type = ComputeElasticityTensor
C_ijkl = '0 5'
fill_method = symmetric_isotropic
block = 2
[../]
[./strain2]
type = ComputeFiniteStrain
block = 2
[../]
[./stress2]
type = ComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[../]
[./aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[../]
[./materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[../]
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/ad_cavity_pressure/3d.i
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V0 + gamma * t
# with
# alpha = n0
# beta = T0 / 2
# gamma = - (0.003322259...) * V0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# The parameters combined at t = 1 gives p = 301.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
file = 3d.e
[]
[Functions]
[./displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[../]
[./displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[../]
[./temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[../]
[./material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.35'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 240.54443866068704
[../]
[./material_input]
[../]
[]
[AuxVariables]
[./pressure_residual_x]
[../]
[./pressure_residual_y]
[../]
[./pressure_residual_z]
[../]
[./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_zx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
use_automatic_differentiation = true
[../]
[./heat]
type = ADDiffusion
variable = temp
use_displaced_mesh = true
[../]
[./material_input_dummy]
type = ADDiffusion
variable = material_input
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
[]
[BCs]
[./no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[../]
[./no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[../]
[./no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[../]
[./prescribed_left]
type = ADFunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[../]
[./prescribed_right]
type = ADFunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[../]
[./no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[../]
[./no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[../]
[./no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[../]
[./temperatureInterior]
type = ADFunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[../]
[./MaterialInput]
type = ADFunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[../]
[./CavityPressure]
[./1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
volume = internalVolume
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
use_automatic_differentiation = true
[../]
[../]
[]
[Materials]
[./elast_tensor1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e1
poissons_ratio = 0
block = 1
[../]
[./strain1]
type = ADComputeFiniteStrain
block = 1
[../]
[./stress1]
type = ADComputeFiniteStrainElasticStress
block = 1
[../]
[./elast_tensor2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0
block = 2
[../]
[./strain2]
type = ADComputeFiniteStrain
block = 2
[../]
[./stress2]
type = ADComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[../]
[./aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[../]
[./materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[../]
[]
[Outputs]
exodus = true
[]
test/tests/controls/time_periods/user_objects/user_object.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
initial_condition = 0.01
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Postprocessors]
[./nodal]
type = AverageNodalVariableValue
variable = u
execute_on = 'TIMESTEP_END'
[../]
[./elemental]
type = ElementAverageValue
variable = u
execute_on = 'TIMESTEP_END'
[../]
[./general]
type = PointValue
point = '0.5 0.5 0'
variable = u
execute_on = 'TIMESTEP_END'
[../]
[./internal_side]
type = NumInternalSides
[../]
[./side]
type = SideAverageValue
boundary = right
variable = u
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
csv = true
[]
[Controls]
[./pp_control]
type = TimePeriod
enable_objects = '*/nodal */elemental */general */internal_side */side'
start_time = 0.5
end_time = 1
execute_on = 'INITIAL TIMESTEP_END'
[../]
[]
modules/combined/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_test.i
#
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks containing one element each. Each
# element is a unit cube. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far right
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
#
# The heat flux across the gap at time = 1 is then:
#
# Flux(2) = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors
#
# This test has been augmented with a second scalar field that solves nearly
# the same problem. The conductivity has been changed to 10. Thus, the
# flux for the second field is 1000.
#
[Mesh]
file = gap_heat_transfer_htonly_test.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
[../]
[./awesomium_contact]
type = GapHeatTransfer
variable = awesomium
master = 3
slave = 2
gap_conductivity = 10
appended_property_name = _awesomium
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[./awesomium]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[./gap_cond_awesomium]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./awe]
type = HeatConduction
variable = awesomium
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[./awesomium_far_left]
type = FunctionDirichletBC
boundary = 1
variable = awesomium
function = temp
[../]
[./awesomium_far_right]
type = DirichletBC
boundary = 4
variable = awesomium
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[./conductance_awe]
type = MaterialRealAux
property = gap_conductance_awesomium
variable = gap_cond_awesomium
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-12
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./awe_left]
type = SideAverageValue
boundary = 2
variable = awesomium
execute_on = 'initial timestep_end'
[../]
[./awe_right]
type = SideAverageValue
boundary = 3
variable = awesomium
execute_on = 'initial timestep_end'
[../]
[./awe_flux_left]
type = SideFluxIntegral
variable = awesomium
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./awe_flux_right]
type = SideFluxIntegral
variable = awesomium
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_finitestrain_plastic.i
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./elastic_strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./plastic_strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[./uncracked_stress_yy]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./All]
add_variables = true
strain = FINITE
planar_formulation = PLANE_STRAIN
additional_generate_output = 'stress_yy vonmises_stress'
strain_base_name = uncracked
[../]
[../]
[../]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = E_el
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[./off_disp]
type = AllenCahnElasticEnergyOffDiag
variable = c
displacements = 'disp_x disp_y'
mob_name = L
[../]
[]
[AuxKernels]
[./strain_yy]
type = RankTwoAux
variable = strain_yy
rank_two_tensor = uncracked_mechanical_strain
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[../]
[./elastic_strain_yy]
type = RankTwoAux
variable = elastic_strain_yy
rank_two_tensor = uncracked_elastic_strain
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[../]
[./plastic_strain_yy]
type = RankTwoAux
variable = plastic_strain_yy
rank_two_tensor = uncracked_plastic_strain
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[../]
[./uncracked_stress_yy]
type = RankTwoAux
variable = uncracked_stress_yy
rank_two_tensor = uncracked_stress
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[]
[Functions]
[./hf]
type = PiecewiseLinear
x = '0 0.001 0.003 0.023'
y = '0.85 1.0 1.25 1.5'
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 5e-3'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
base_name = uncracked
[../]
[./isotropic_plasticity]
type = IsotropicPlasticityStressUpdate
yield_stress = 0.85
hardening_function = hf
base_name = uncracked
[../]
[./radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'isotropic_plasticity'
base_name = uncracked
[../]
[./cracked_stress]
type = ComputeCrackedStress
c = c
F_name = E_el
use_current_history_variable = true
uncracked_base_name = uncracked
finite_strain_model = true
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[./av_uncracked_stress_yy]
type = ElementAverageValue
variable = uncracked_stress_yy
[../]
[./max_c]
type = ElementExtremeValue
variable = c
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 2.0e-5
num_steps = 2
[]
[Outputs]
exodus = true
[]
modules/combined/examples/phase_field-mechanics/kks_mechanics_VTS.i
# KKS phase-field model coupled with elasticity using the Voigt-Taylor scheme as
# described in L.K. Aagesen et al., Computational Materials Science, 140, 10-21 (2017)
# Original run #170329e
[Mesh]
type = GeneratedMesh
dim = 3
nx = 640
ny = 1
nz = 1
xmin = -10
xmax = 10
ymin = 0
ymax = 0.03125
zmin = 0
zmax = 0.03125
elem_type = HEX8
[]
[Variables]
# order parameter
[./eta]
order = FIRST
family = LAGRANGE
[../]
# solute concentration
[./c]
order = FIRST
family = LAGRANGE
[../]
# chemical potential
[./w]
order = FIRST
family = LAGRANGE
[../]
# solute phase concentration (matrix)
[./cm]
order = FIRST
family = LAGRANGE
[../]
# solute phase concentration (precipitate)
[./cp]
order = FIRST
family = LAGRANGE
[../]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[]
[ICs]
[./eta_ic]
variable = eta
type = FunctionIC
function = ic_func_eta
block = 0
[../]
[./c_ic]
variable = c
type = FunctionIC
function = ic_func_c
block = 0
[../]
[./w_ic]
variable = w
type = ConstantIC
value = 0.00991
block = 0
[../]
[./cm_ic]
variable = cm
type = ConstantIC
value = 0.131
block = 0
[../]
[./cp_ic]
variable = cp
type = ConstantIC
value = 0.236
block = 0
[../]
[]
[Functions]
[./ic_func_eta]
type = ParsedFunction
value = '0.5*(1.0+tanh((x)/delta_eta/sqrt(2.0)))'
vars = 'delta_eta'
vals = '0.8034'
[../]
[./ic_func_c]
type = ParsedFunction
value = '0.2388*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^3*(6*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^2-15*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))+10)+0.1338*(1-(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^3*(6*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))^2-15*(0.5*(1.0+tanh(x/delta/sqrt(2.0))))+10))'
vars = 'delta'
vals = '0.8034'
[../]
[./psi_eq_int]
type = ParsedFunction
value = 'volume*psi_alpha'
vars = 'volume psi_alpha'
vals = 'volume psi_alpha'
[../]
[./gamma]
type = ParsedFunction
value = '(psi_int - psi_eq_int) / dy / dz'
vars = 'psi_int psi_eq_int dy dz'
vals = 'psi_int psi_eq_int 0.03125 0.03125'
[../]
[]
[AuxVariables]
[./sigma11]
order = CONSTANT
family = MONOMIAL
[../]
[./sigma22]
order = CONSTANT
family = MONOMIAL
[../]
[./sigma33]
order = CONSTANT
family = MONOMIAL
[../]
[./e11]
order = CONSTANT
family = MONOMIAL
[../]
[./e12]
order = CONSTANT
family = MONOMIAL
[../]
[./e22]
order = CONSTANT
family = MONOMIAL
[../]
[./e33]
order = CONSTANT
family = MONOMIAL
[../]
[./e_el11]
order = CONSTANT
family = MONOMIAL
[../]
[./e_el12]
order = CONSTANT
family = MONOMIAL
[../]
[./e_el22]
order = CONSTANT
family = MONOMIAL
[../]
[./f_el]
order = CONSTANT
family = MONOMIAL
[../]
[./eigen_strain00]
order = CONSTANT
family = MONOMIAL
[../]
[./Fglobal]
order = CONSTANT
family = MONOMIAL
[../]
[./psi]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./matl_sigma11]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = sigma11
[../]
[./matl_sigma22]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = sigma22
[../]
[./matl_sigma33]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = sigma33
[../]
[./matl_e11]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 0
index_j = 0
variable = e11
[../]
[./matl_e12]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 0
index_j = 1
variable = e12
[../]
[./matl_e22]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 1
index_j = 1
variable = e22
[../]
[./matl_e33]
type = RankTwoAux
rank_two_tensor = total_strain
index_i = 2
index_j = 2
variable = e33
[../]
[./f_el]
type = MaterialRealAux
variable = f_el
property = f_el_mat
execute_on = timestep_end
[../]
[./GlobalFreeEnergy]
variable = Fglobal
type = KKSGlobalFreeEnergy
fa_name = fm
fb_name = fp
w = 0.0264
kappa_names = kappa
interfacial_vars = eta
[../]
[./psi_potential]
variable = psi
type = ParsedAux
args = 'Fglobal w c f_el sigma11 e11'
function = 'Fglobal - w*c + f_el - sigma11*e11'
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0
[../]
[./right_x]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[./front_y]
type = DirichletBC
variable = disp_y
boundary = front
value = 0
[../]
[./back_y]
type = DirichletBC
variable = disp_y
boundary = back
value = 0
[../]
[./top_z]
type = DirichletBC
variable = disp_z
boundary = top
value = 0
[../]
[./bottom_z]
type = DirichletBC
variable = disp_z
boundary = bottom
value = 0
[../]
[]
[Materials]
# Chemical free energy of the matrix
[./fm]
type = DerivativeParsedMaterial
f_name = fm
args = 'cm'
function = '6.55*(cm-0.13)^2'
[../]
# Elastic energy of the matrix
[./elastic_free_energy_m]
type = ElasticEnergyMaterial
base_name = matrix
f_name = fe_m
args = ' '
outputs = exodus
[../]
# Total free energy of the matrix
[./Total_energy_matrix]
type = DerivativeSumMaterial
f_name = f_total_matrix
sum_materials = 'fm fe_m'
args = 'cm'
[../]
# Free energy of the precipitate phase
[./fp]
type = DerivativeParsedMaterial
f_name = fp
args = 'cp'
function = '6.55*(cp-0.235)^2'
[../]
# Elastic energy of the precipitate
[./elastic_free_energy_p]
type = ElasticEnergyMaterial
base_name = ppt
f_name = fe_p
args = ' '
outputs = exodus
[../]
# Total free energy of the precipitate
[./Total_energy_ppt]
type = DerivativeSumMaterial
f_name = f_total_ppt
sum_materials = 'fp fe_p'
args = 'cp'
[../]
# Total elastic energy
[./Total_elastic_energy]
type = DerivativeTwoPhaseMaterial
eta = eta
f_name = f_el_mat
fa_name = fe_m
fb_name = fe_p
outputs = exodus
W = 0
[../]
# h(eta)
[./h_eta]
type = SwitchingFunctionMaterial
h_order = HIGH
eta = eta
[../]
# g(eta)
[./g_eta]
type = BarrierFunctionMaterial
g_order = SIMPLE
eta = eta
[../]
# constant properties
[./constants]
type = GenericConstantMaterial
prop_names = 'M L kappa misfit'
prop_values = '0.7 0.7 0.01704 0.00377'
[../]
#Mechanical properties
[./Stiffness_matrix]
type = ComputeElasticityTensor
C_ijkl = '103.3 74.25 74.25 103.3 74.25 103.3 46.75 46.75 46.75'
base_name = matrix
fill_method = symmetric9
[../]
[./Stiffness_ppt]
type = ComputeElasticityTensor
C_ijkl = '100.7 71.45 71.45 100.7 71.45 100.7 50.10 50.10 50.10'
base_name = ppt
fill_method = symmetric9
[../]
[./stress_matrix]
type = ComputeLinearElasticStress
base_name = matrix
[../]
[./stress_ppt]
type = ComputeLinearElasticStress
base_name = ppt
[../]
[./strain_matrix]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
base_name = matrix
[../]
[./strain_ppt]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
base_name = ppt
eigenstrain_names = 'eigenstrain_ppt'
[../]
[./eigen_strain]
type = ComputeEigenstrain
base_name = ppt
eigen_base = '1 1 1 0 0 0'
prefactor = misfit
eigenstrain_name = 'eigenstrain_ppt'
[../]
[./global_stress]
type = TwoPhaseStressMaterial
base_A = matrix
base_B = ppt
[../]
[./global_strain]
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Kernels]
[./TensorMechanics]
displacements = 'disp_x disp_y disp_z'
[../]
# enforce c = (1-h(eta))*cm + h(eta)*cp
[./PhaseConc]
type = KKSPhaseConcentration
ca = cm
variable = cp
c = c
eta = eta
[../]
# enforce pointwise equality of chemical potentials
[./ChemPotVacancies]
type = KKSPhaseChemicalPotential
variable = cm
cb = cp
fa_name = f_total_matrix
fb_name = f_total_ppt
[../]
#
# Cahn-Hilliard Equation
#
[./CHBulk]
type = KKSSplitCHCRes
variable = c
ca = cm
fa_name = f_total_matrix
w = w
[../]
[./dcdt]
type = CoupledTimeDerivative
variable = w
v = c
[../]
[./ckernel]
type = SplitCHWRes
mob_name = M
variable = w
[../]
#
# Allen-Cahn Equation
#
[./ACBulkF]
type = KKSACBulkF
variable = eta
fa_name = f_total_matrix
fb_name = f_total_ppt
w = 0.0264
args = 'cp cm'
[../]
[./ACBulkC]
type = KKSACBulkC
variable = eta
ca = cm
cb = cp
fa_name = f_total_matrix
[../]
[./ACInterface]
type = ACInterface
variable = eta
kappa_name = kappa
[../]
[./detadt]
type = TimeDerivative
variable = eta
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type'
petsc_options_value = 'asm ilu nonzero'
l_max_its = 30
nl_max_its = 10
l_tol = 1.0e-4
nl_rel_tol = 1.0e-8
nl_abs_tol = 1.0e-11
num_steps = 200
[./TimeStepper]
type = SolutionTimeAdaptiveDT
dt = 0.5
[../]
[]
[VectorPostprocessors]
#[./eta]
# type = LineValueSampler
# start_point = '-10 0 0'
# end_point = '10 0 0'
# variable = eta
# num_points = 321
# sort_by = id
#[../]
#[./eta_position]
# type = FindValueOnLineSample
# vectorpostprocessor = eta
# variable_name = eta
# search_value = 0.5
#[../]
# [./f_el]
# type = LineMaterialRealSampler
# start = '-20 0 0'
# end = '20 0 0'
# sort_by = id
# property = f_el
# [../]
# [./f_el_a]
# type = LineMaterialRealSampler
# start = '-20 0 0'
# end = '20 0 0'
# sort_by = id
# property = fe_m
# [../]
# [./f_el_b]
# type = LineMaterialRealSampler
# start = '-20 0 0'
# end = '20 0 0'
# sort_by = id
# property = fe_p
# [../]
# [./h_out]
# type = LineMaterialRealSampler
# start = '-20 0 0'
# end = '20 0 0'
# sort_by = id
# property = h
# [../]
# [./fm_out]
# type = LineMaterialRealSampler
# start = '-20 0 0'
# end = '20 0 0'
# sort_by = id
# property = fm
# [../]
[]
[Postprocessors]
[./f_el_int]
type = ElementIntegralMaterialProperty
mat_prop = f_el_mat
[../]
[./c_alpha]
type = SideAverageValue
boundary = left
variable = c
[../]
[./c_beta]
type = SideAverageValue
boundary = right
variable = c
[../]
[./e11_alpha]
type = SideAverageValue
boundary = left
variable = e11
[../]
[./e11_beta]
type = SideAverageValue
boundary = right
variable = e11
[../]
[./s11_alpha]
type = SideAverageValue
boundary = left
variable = sigma11
[../]
[./s22_alpha]
type = SideAverageValue
boundary = left
variable = sigma22
[../]
[./s33_alpha]
type = SideAverageValue
boundary = left
variable = sigma33
[../]
[./s11_beta]
type = SideAverageValue
boundary = right
variable = sigma11
[../]
[./s22_beta]
type = SideAverageValue
boundary = right
variable = sigma22
[../]
[./s33_beta]
type = SideAverageValue
boundary = right
variable = sigma33
[../]
[./f_el_alpha]
type = SideAverageValue
boundary = left
variable = f_el
[../]
[./f_el_beta]
type = SideAverageValue
boundary = right
variable = f_el
[../]
[./f_c_alpha]
type = SideAverageValue
boundary = left
variable = Fglobal
[../]
[./f_c_beta]
type = SideAverageValue
boundary = right
variable = Fglobal
[../]
[./chem_pot_alpha]
type = SideAverageValue
boundary = left
variable = w
[../]
[./chem_pot_beta]
type = SideAverageValue
boundary = right
variable = w
[../]
[./psi_alpha]
type = SideAverageValue
boundary = left
variable = psi
[../]
[./psi_beta]
type = SideAverageValue
boundary = right
variable = psi
[../]
[./total_energy]
type = ElementIntegralVariablePostprocessor
variable = Fglobal
[../]
# Get simulation cell size from postprocessor
[./volume]
type = ElementIntegralMaterialProperty
mat_prop = 1
[../]
[./psi_eq_int]
type = FunctionValuePostprocessor
function = psi_eq_int
[../]
[./psi_int]
type = ElementIntegralVariablePostprocessor
variable = psi
[../]
[./gamma]
type = FunctionValuePostprocessor
function = gamma
[../]
[]
#
# Precondition using handcoded off-diagonal terms
#
[Preconditioning]
[./full]
type = SMP
full = true
[../]
[]
[Outputs]
[./exodus]
type = Exodus
interval = 20
[../]
[./csv]
type = CSV
execute_on = 'final'
[../]
#[./console]
# type = Console
# output_file = true
# [../]
[]
modules/combined/test/tests/gap_heat_transfer_htonly/cyl2D_yz.i
#
# 2D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2 in the y-z plane. In other words,
# the gap between them is 1 radial unit in length.
#
# The calculated results are the same as for the cyl2D.i case in the x-y plane.
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
[file]
type = FileMeshGenerator
file = cyl2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 90'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
gap_conductivity = 1
quadrature = true
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '1 0 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
modules/combined/test/tests/ad_cavity_pressure/rz.i
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (2) with an interior cavity of volume 8.
# Block 1 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts T in the following way:
# T => T0 + beta * t
# with
# beta = T0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# At t = 1, p = 200.
[Problem]
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Mesh]
file = rz.e
[]
[Functions]
[./temperature]
type = PiecewiseLinear
x = '0 1'
y = '1 2'
scale_factor = 240.54443866068704
[../]
[]
[Variables]
[./disp_r]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 240.54443866068704
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
use_automatic_differentiation = true
[../]
[./heat]
type = ADDiffusion
variable = temp
use_displaced_mesh = true
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_r
boundary = '1 2'
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_z
boundary = '1 2'
value = 0.0
[../]
[./temperatureInterior]
type = ADFunctionDirichletBC
preset = false
boundary = 2
function = temperature
variable = temp
[../]
[./CavityPressure]
[./1]
boundary = 2
initial_pressure = 100
R = 8.314472
temperature = aveTempInterior
volume = internalVolume
startup_time = 0.5
output = ppress
use_automatic_differentiation = true
[../]
[../]
[]
[Materials]
[./elastic_tensor1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 1
[../]
[./strain1]
type = ADComputeAxisymmetricRZFiniteStrain
block = 1
[../]
[./stress1]
type = ADComputeFiniteStrainElasticStress
block = 1
[../]
[./elastic_tensor2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 2
[../]
[./strain2]
type = ADComputeAxisymmetricRZFiniteStrain
block = 2
[../]
[./stress2]
type = ADComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_abs_tol = 1e-10
l_max_its = 20
dt = 0.5
end_time = 1.0
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 2
execute_on = 'initial linear'
[../]
[./aveTempInterior]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial linear'
[../]
[]
[Outputs]
exodus = true
[./checkpoint]
type = Checkpoint
num_files = 1
[../]
[]
modules/tensor_mechanics/test/tests/radial_disp_aux/cylinder_2d_axisymmetric.i
# The purpose of this set of tests is to check the values computed
# by the RadialDisplacementAux AuxKernel. They should match the
# radial component of the displacment for a cylindrical or spherical
# model.
# This particular model is of a cylinder subjected to uniform thermal
# expansion represented using a 2D axisymmetric model.
[Mesh]
type = GeneratedMesh
dim = 2
elem_type = QUAD8
nx = 4
ny = 4
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 1.0
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
[]
[AuxVariables]
[./temp]
[../]
[./rad_disp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t+300.0
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
add_variables = true
eigenstrain_names = eigenstrain
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
use_displaced_mesh = false
[../]
[./raddispaux]
type = RadialDisplacementCylinderAux
variable = rad_disp
[../]
[]
[BCs]
[./x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = 'bottom top'
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 300
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '51'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
end_time = 1
dt = 1
dtmin = 1
[]
[Outputs]
csv = true
exodus = true
[]
#[Postprocessors]
# [./strain_xx]
# type = SideAverageValue
# variable =
# block = 0
# [../]
#[]
test/tests/postprocessors/side_average_value/side_average_value_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
xmin = 0
xmax = 2
ymin = 0
ymax = 1
[]
[Variables]
active = 'u'
[./u]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
active = 'diff'
[./diff]
type = Diffusion
variable = u
[../]
[]
[BCs]
active = 'left right'
[./left]
type = DirichletBC
variable = u
boundary = 3
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = 1
value = 1
[../]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
[]
[Postprocessors]
[./average]
type = SideAverageValue
boundary = 0
variable = u
[../]
[]
[Outputs]
file_base = out
exodus = true
[]
modules/tensor_mechanics/test/tests/radial_disp_aux/sphere_2d_axisymmetric.i
# The purpose of this set of tests is to check the values computed
# by the RadialDisplacementAux AuxKernel. They should match the
# radial component of the displacment for a cylindrical or spherical
# model.
# This particular model is of a sphere subjected to uniform thermal
# expansion represented using a 2D axisymmetric model.
[Mesh]
type = FileMesh
file = circle_sector_2d.e
[]
[GlobalParams]
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
[]
[Problem]
coord_type = RZ
[]
[AuxVariables]
[./temp]
[../]
[./rad_disp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t+300.0
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
add_variables = true
eigenstrain_names = eigenstrain
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
use_displaced_mesh = false
[../]
[./raddispaux]
type = RadialDisplacementSphereAux
variable = rad_disp
origin = '0 0 0'
[../]
[]
[BCs]
[./x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 300
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '51'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
start_time = 0.0
end_time = 1
dt = 1
dtmin = 1
[]
[Outputs]
csv = true
exodus = true
[]
#[Postprocessors]
# [./strain_xx]
# type = SideAverageValue
# variable =
# block = 0
# [../]
#[]
modules/combined/test/tests/gap_heat_transfer_htonly/planar_yz.i
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks in the y-z plane. Each element block
# is a square. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far bottom boundary
# is ramped from 100 to 200 over one time unit. The temperature of the far top
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
# The heat flux across the gap at time = 1 is then:
#
# Flux = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors. These results
# are the same as for the unit 1-D gap heat transfer between two unit cubes.
[Mesh]
[file]
type = FileMeshGenerator
file = simple_2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 90'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_bottom]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_top]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_rel_tol = 1e-12
l_tol = 1e-3
l_max_its = 100
dt = 1e-1
end_time = 1.0
[]
[Postprocessors]
[./temp_bottom]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_top]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_bottom]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[./flux_top]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/thermal_expansion_function/instantaneous.i
# This test checks the thermal expansion calculated via a instantaneous thermal expansion coefficient.
# The coefficient is selected so as to result in a 1e-4 strain in the x-axis, and to cross over
# from positive to negative strain.
[Mesh]
[./gen]
type = GeneratedMeshGenerator
dim = 3
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = SMALL
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
function = '1 + t'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeInstantaneousThermalExpansionFunctionEigenstrain
thermal_expansion_function = 4e-4
stress_free_temperature = 1.5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Postprocessors]
[./disp_x_max]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./temp_avg]
type = ElementAverageValue
variable = temp
[../]
[]
[Executioner]
type = Transient
end_time = 1.0
dt = 0.1
[]
[Outputs]
csv = true
[]
modules/tensor_mechanics/test/tests/radial_disp_aux/sphere_3d_cartesian.i
# The purpose of this set of tests is to check the values computed
# by the RadialDisplacementAux AuxKernel. They should match the
# radial component of the displacment for a cylindrical or spherical
# model.
# This particular model is of a sphere subjected to uniform thermal
# expansion represented using a 3D Cartesian model.
[Mesh]
type = FileMesh
file = sphere_sector_3d.e
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
[]
[AuxVariables]
[./temp]
[../]
[./rad_disp]
[../]
[]
[Functions]
[./temperature_load]
type = ParsedFunction
value = t+300.0
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = FINITE
add_variables = true
eigenstrain_names = eigenstrain
[../]
[]
[AuxKernels]
[./tempfuncaux]
type = FunctionAux
variable = temp
function = temperature_load
use_displaced_mesh = false
[../]
[./raddispaux]
type = RadialDisplacementSphereAux
variable = rad_disp
origin = '0 0 0'
[../]
[]
[BCs]
[./x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./y]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[../]
[./z]
type = DirichletBC
variable = disp_z
boundary = 3
value = 0.0
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.1e5
poissons_ratio = 0.3
[../]
[./small_stress]
type = ComputeFiniteStrainElasticStress
[../]
[./thermal_expansion]
type = ComputeThermalExpansionEigenstrain
stress_free_temperature = 300
thermal_expansion_coeff = 1.3e-5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '51'
line_search = 'none'
l_max_its = 50
nl_max_its = 50
nl_rel_tol = 1e-12
nl_abs_tol = 1e-10
start_time = 0.0
end_time = 1
dt = 1
dtmin = 1
[]
[Outputs]
csv = true
exodus = true
[]
#[Postprocessors]
# [./strain_xx]
# type = SideAverageValue
# variable =
# block = 0
# [../]
#[]
modules/combined/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rspherical.i
#
# 1-D spherical Gap Heat Transfer Test
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two "blocks" with a mesh biased toward the gap
# between them. Each block is unit length. The gap between them is one
# unit in length.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far left boundary
# is ramped from 100 to 200 over one time unit, and then held fixed for an additional
# time unit. The temperature of the far right boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks, or spheres in the case of RSPHERICAL.:
#
# Flux = (T_left - T_right) * (gapK/(r^2*((1/r1)-(1/r2))))
#
# For gapK = 1 (default value)
#
# The area is taken as the area of the slave (inner) surface:
#
# Area = 4 * pi * 1 * 1
#
# The integrated heat flux across the gap at time 2 is then:
#
# 4*pi*k*delta_T/((1/r1)-(1/r2))
# 4*pi*1*100/((1/1) - (1/2)) = 2513.3 watts
#
# For comparison, see results from the flux post processors.
#
#
[Problem]
coord_type = RSPHERICAL
[]
[Mesh]
file = gap_heat_transfer_htonly_rspherical.e
construct_side_list_from_node_list = true
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1 2'
y = '100 200 200'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
[../]
[]
[Variables]
[./temp]
order = FIRST
family = LAGRANGE
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[]
[BCs]
[./temp_far_left]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[AuxKernels]
[./conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1e6
[../]
[./density]
type = Density
block = '1 2'
density = 1.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
# I don't know enough about this test to say why it needs such a
# loose nl_abs_tol... after timestep 10 the residual basically can't
# be reduced much beyond the initial residual. The test probably
# needs to be revisited to determine why.
nl_abs_tol = 1e-3
nl_rel_tol = 1e-10
l_tol = 1e-6
l_max_its = 100
line_search = 'none'
nl_max_its = 10
dt = 1e-1
dtmin = 1e-1
end_time = 2.0
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial timestep_end'
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
[Outputs]
exodus = true
[]
modules/functional_expansion_tools/examples/2D_interface/main.i
# Basic example coupling a master and sub app at an interface in a 2D model.
# The master app provides a flux term to the sub app via Functional Expansions, which then performs
# its calculations. The sub app's interface conditions, both value and flux, are transferred back
# to the master app
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0.0
xmax = 0.4
nx = 6
ymin = 0.0
ymax = 10.0
ny = 20
[]
[Variables]
[./m]
[../]
[]
[Kernels]
[./diff_m]
type = HeatConduction
variable = m
[../]
[./time_diff_m]
type = HeatConductionTimeDerivative
variable = m
[../]
[./source_m]
type = BodyForce
variable = m
value = 100
[../]
[]
[Materials]
[./Impervium]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '0.00001 50.0 100.0' # W/(cm K), J/(g K), g/cm^3
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
value = 2
variable = m
[../]
[]
[BCs]
[./interface_value]
type = FXValueBC
variable = m
boundary = right
function = FX_Basis_Value_Main
[../]
[./interface_flux]
type = FXFluxBC
boundary = right
variable = m
function = FX_Basis_Flux_Main
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '4'
physical_bounds = '0.0 10'
y = Legendre
[../]
[./FX_Basis_Flux_Main]
type = FunctionSeries
series_type = Cartesian
orders = '5'
physical_bounds = '0.0 10'
y = Legendre
[../]
[]
[UserObjects]
[./FX_Flux_UserObject_Main]
type = FXBoundaryFluxUserObject
function = FX_Basis_Flux_Main
variable = m
boundary = right
diffusivity = thermal_conductivity
[../]
[]
[Postprocessors]
[./average_interface_value]
type = SideAverageValue
variable = m
boundary = right
[../]
[./total_flux]
type = SideFluxIntegral
variable = m
boundary = right
diffusivity = thermal_conductivity
[../]
[./picard_iterations]
type = NumPicardIterations
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
picard_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
picard_rel_tol = 1e-8
picard_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = sub.i
sub_cycling = true
[../]
[]
[Transfers]
[./FluxToSub]
type = MultiAppFXTransfer
direction = to_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Flux_UserObject_Main
multi_app_object_name = FX_Basis_Flux_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
direction = from_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[./FluxToMe]
type = MultiAppFXTransfer
direction = from_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Basis_Flux_Main
multi_app_object_name = FX_Flux_UserObject_Sub
[../]
[]
modules/combined/test/tests/gap_heat_transfer_htonly/cyl2D.i
#
# 2D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2 in the x-y plane. In other words,
# the gap between them is 1 radial unit in length.
#
# The conductivity of both cylinders is set very large to achieve a uniform
# temperature in each cylinder. The temperature of the center node of the
# inner cylinder is ramped from 100 to 200 over one time unit. The temperature
# of the outside of the outer, hollow cylinder is held fixed at 100.
#
# A simple analytical solution is possible for the integrated heat flux
# between the inner and outer cylinders:
#
# Integrated Flux = (T_left - T_right) * (gapK/(r*ln(r2/r1))) * Area
#
# For gapK = 1 (default value)
#
# The area is taken as the area of the slave (inner) surface:
#
# Area = 2 * pi * h * r, where h is the height of the cylinder.
#
# The integrated heat flux across the gap at time 1 is then:
#
# 2*pi*h*k*delta_T/(ln(r2/r1))
# 2*pi*1*1*100/(ln(2/1)) = 906.5 watts
#
# For comparison, see results from the integrated flux post processors.
# This simulation makes use of symmetry, so only 1/4 of the cylinders is meshed
# As such, the integrated flux from the post processors is 1/4 of the total,
# or 226.6 watts.
# The value coming from the post processor is slightly less than this
# but converges as mesh refinement increases.
# Note that the 2D and 3D results are the same.
#
# Simulating contact is challenging. Regression tests that exercise
# contact features can be difficult to solve consistently across multiple
# platforms. While designing these tests, we felt it worth while to note
# some aspects of these tests. The following applies to:
# sphere3D.i, sphere2DRZ.i, cyl2D.i, and cyl3D.i.
# 1. We decided that to perform consistently across multiple platforms we
# would use very small convergence tolerance. In this test we chose an
# nl_rel_tol of 1e-12.
# 2. Due to such a high value for thermal conductivity (used here so that the
# domains come to a uniform temperature) the integrated flux at time = 0
# was relatively large (the value coming from SideIntegralFlux =
# -_diffusion_coef[_qp]*_grad_u[_qp]*_normals[_qp] where the diffusion coefficient
# here is thermal conductivity).
# Even though _grad_u[_qp] is small, in this case the diffusion coefficient
# is large. The result is a number that isn't exactly zero and tends to
# fail exodiff. For this reason the parameter execute_on = initial should not
# be used. That parameter is left to default settings in these regression tests.
#
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = cyl2D.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
gap_conductivity = 1
quadrature = true
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 0 1'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[./Console]
type = Console
[../]
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
modules/combined/test/tests/cavity_pressure/rz.i
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (2) with an interior cavity of volume 8.
# Block 1 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts T in the following way:
# T => T0 + beta * t
# with
# beta = T0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# At t = 1, p = 200.
[Problem]
coord_type = RZ
[]
[GlobalParams]
displacements = 'disp_r disp_z'
[]
[Mesh]
file = rz.e
[]
[Functions]
[./temperature]
type = PiecewiseLinear
x = '0 1'
y = '1 2'
scale_factor = 240.54443866068704
[../]
[]
[Variables]
[./disp_r]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 240.54443866068704
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
[../]
[./heat]
type = Diffusion
variable = temp
use_displaced_mesh = true
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_r
boundary = '1 2'
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_z
boundary = '1 2'
value = 0.0
[../]
[./temperatureInterior]
type = FunctionDirichletBC
boundary = 2
function = temperature
variable = temp
[../]
[./CavityPressure]
[./1]
boundary = 2
initial_pressure = 100
R = 8.314472
temperature = aveTempInterior
volume = internalVolume
startup_time = 0.5
output = ppress
[../]
[../]
[]
[Materials]
[./elastic_tensor1]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 1
[../]
[./strain1]
type = ComputeAxisymmetricRZFiniteStrain
block = 1
[../]
[./stress1]
type = ComputeFiniteStrainElasticStress
block = 1
[../]
[./elastic_tensor2]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0.3
block = 2
[../]
[./strain2]
type = ComputeAxisymmetricRZFiniteStrain
block = 2
[../]
[./stress2]
type = ComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_abs_tol = 1e-10
l_max_its = 20
dt = 0.5
end_time = 1.0
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 2
execute_on = 'initial linear'
[../]
[./aveTempInterior]
type = SideAverageValue
boundary = 2
variable = temp
execute_on = 'initial linear'
[../]
[]
[Outputs]
exodus = true
[./checkpoint]
type = Checkpoint
num_files = 1
[../]
[]
modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_finitestrain_elastic.i
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./All]
add_variables = true
strain = FINITE
planar_formulation = PLANE_STRAIN
additional_generate_output = 'stress_yy'
strain_base_name = uncracked
[../]
[../]
[../]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = E_el
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[./off_disp]
type = AllenCahnElasticEnergyOffDiag
variable = c
displacements = 'disp_x disp_y'
mob_name = L
[../]
[]
[AuxKernels]
[./strain_yy]
type = RankTwoAux
variable = strain_yy
rank_two_tensor = uncracked_mechanical_strain
index_i = 1
index_j = 1
execute_on = TIMESTEP_END
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 1e-4'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '120.0 80.0'
fill_method = symmetric_isotropic
base_name = uncracked
[../]
[./elastic]
type = ComputeFiniteStrainElasticStress
base_name = uncracked
[../]
[./cracked_stress]
type = ComputeCrackedStress
c = c
kdamage = 1e-5
F_name = E_el
use_current_history_variable = true
uncracked_base_name = uncracked
finite_strain_model = true
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 3e-5
num_steps = 2
[]
[Outputs]
exodus = true
[]
modules/heat_conduction/test/tests/recover/recover.i
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = recover_in.e
[]
[Variables]
[./temp]
initial_condition = 580.0
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heat_source]
type = BodyForce
variable = temp
block = pellet_type_1
value = 1e3
function = 't'
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 5
slave = 10
quadrature = true
[../]
[]
[BCs]
[./outside]
type = DirichletBC
value = 580
boundary = '1 2 3'
variable = temp
[../]
[./edge]
type = DirichletBC
value = 700
boundary = 10
variable = temp
[../]
[]
[Materials]
[./thermal_3]
type = HeatConductionMaterial
block = 3
thermal_conductivity = 5
specific_heat = 12
[../]
[./thermal_1]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-11
start_time = -200
n_startup_steps = 1
end_time = 1.02e5
num_steps = 10
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2.0e2
optimal_iterations = 15
iteration_window = 2
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/ad_cavity_pressure/initial_temperature.i
#
# Cavity Pressure Test
#
# This test is designed to compute an internal pressure based on
# p = n * R * T / V
# where
# p is the pressure
# n is the amount of material in the volume (moles)
# R is the universal gas constant
# T is the temperature
# V is the volume
#
# The mesh is composed of one block (1) with an interior cavity of volume 8.
# Block 2 sits in the cavity and has a volume of 1. Thus, the total
# initial volume is 7.
# The test adjusts n, T, and V in the following way:
# n => n0 + alpha * t
# T => T0 + beta * t
# V => V0 + gamma * t
# with
# alpha = n0
# beta = T0 / 2
# gamma = -(0.003322259...) * V0
# T0 = 240.54443866068704
# V0 = 7
# n0 = f(p0)
# p0 = 100
# R = 8.314472 J * K^(-1) * mol^(-1)
#
# So, n0 = p0 * V0 / R / T0 = 100 * 7 / 8.314472 / 240.544439
# = 0.35
#
# The parameters combined at t = 1 gives p = 301.
#
# This test sets the initial temperature to 500, but the CavityPressure
# is told that that initial temperature is T0. Thus, the final solution
# is unchanged.
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
file = 3d.e
[]
[GlobalParams]
volumetric_locking_correction = true
[]
[Functions]
[./displ_positive]
type = PiecewiseLinear
x = '0 1'
y = '0 0.0029069767441859684'
[../]
[./displ_negative]
type = PiecewiseLinear
x = '0 1'
y = '0 -0.0029069767441859684'
[../]
[./temp1]
type = PiecewiseLinear
x = '0 1'
y = '1 1.5'
scale_factor = 240.54443866068704
[../]
[./material_input_function]
type = PiecewiseLinear
x = '0 1'
y = '0 0.35'
[../]
[]
[Variables]
[./disp_x]
[../]
[./disp_y]
[../]
[./disp_z]
[../]
[./temp]
initial_condition = 500
[../]
[./material_input]
[../]
[]
[AuxVariables]
[./pressure_residual_x]
[../]
[./pressure_residual_y]
[../]
[./pressure_residual_z]
[../]
[./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_zx]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./TensorMechanics]
use_displaced_mesh = true
use_automatic_differentiation = true
[../]
[./heat]
type = ADDiffusion
variable = temp
use_displaced_mesh = true
[../]
[./material_input_dummy]
type = ADDiffusion
variable = material_input
use_displaced_mesh = true
[../]
[]
[AuxKernels]
[./stress_xx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 0
variable = stress_xx
[../]
[./stress_yy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 1
variable = stress_yy
[../]
[./stress_zz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 2
variable = stress_zz
[../]
[./stress_xy]
type = RankTwoAux
rank_two_tensor = stress
index_i = 0
index_j = 1
variable = stress_xy
[../]
[./stress_yz]
type = RankTwoAux
rank_two_tensor = stress
index_i = 1
index_j = 2
variable = stress_yz
[../]
[./stress_zx]
type = RankTwoAux
rank_two_tensor = stress
index_i = 2
index_j = 0
variable = stress_zx
[../]
[]
[BCs]
[./no_x_exterior]
type = DirichletBC
variable = disp_x
boundary = '7 8'
value = 0.0
[../]
[./no_y_exterior]
type = DirichletBC
variable = disp_y
boundary = '9 10'
value = 0.0
[../]
[./no_z_exterior]
type = DirichletBC
variable = disp_z
boundary = '11 12'
value = 0.0
[../]
[./prescribed_left]
type = ADFunctionDirichletBC
variable = disp_x
boundary = 13
function = displ_positive
[../]
[./prescribed_right]
type = ADFunctionDirichletBC
variable = disp_x
boundary = 14
function = displ_negative
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = '15 16'
value = 0.0
[../]
[./no_z]
type = DirichletBC
variable = disp_z
boundary = '17 18'
value = 0.0
[../]
[./no_x_interior]
type = DirichletBC
variable = disp_x
boundary = '1 2'
value = 0.0
[../]
[./no_y_interior]
type = DirichletBC
variable = disp_y
boundary = '3 4'
value = 0.0
[../]
[./no_z_interior]
type = DirichletBC
variable = disp_z
boundary = '5 6'
value = 0.0
[../]
[./temperatureInterior]
type = ADFunctionDirichletBC
boundary = 100
function = temp1
variable = temp
[../]
[./MaterialInput]
type = ADFunctionDirichletBC
boundary = '100 13 14 15 16'
function = material_input_function
variable = material_input
[../]
[./CavityPressure]
[./1]
boundary = 100
initial_pressure = 100
material_input = materialInput
R = 8.314472
temperature = aveTempInterior
initial_temperature = 240.54443866068704
volume = internalVolume
startup_time = 0.5
output = ppress
save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
use_automatic_differentiation = true
[../]
[../]
[]
[Materials]
[./elast_tensor1]
type = ComputeElasticityTensor
C_ijkl = '0 5'
fill_method = symmetric_isotropic
block = 1
[../]
[./strain1]
type = ADComputeFiniteStrain
block = 1
[../]
[./stress1]
type = ADComputeFiniteStrainElasticStress
block = 1
[../]
[./elast_tensor2]
type = ComputeElasticityTensor
C_ijkl = '0 5'
fill_method = symmetric_isotropic
block = 2
[../]
[./strain2]
type = ADComputeFiniteStrain
block = 2
[../]
[./stress2]
type = ADComputeFiniteStrainElasticStress
block = 2
[../]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
nl_rel_tol = 1e-12
l_tol = 1e-12
l_max_its = 20
dt = 0.5
end_time = 1.0
[]
[Postprocessors]
[./internalVolume]
type = InternalVolume
boundary = 100
execute_on = 'initial linear'
[../]
[./aveTempInterior]
type = SideAverageValue
boundary = 100
variable = temp
execute_on = 'initial linear'
[../]
[./materialInput]
type = SideAverageValue
boundary = '7 8 9 10 11 12'
variable = material_input
execute_on = linear
[../]
[]
[Outputs]
exodus = true
[]
modules/heat_conduction/test/tests/recover/ad_recover.i
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Problem]
coord_type = RZ
[]
[Mesh]
file = recover_in.e
[]
[Variables]
[./temp]
initial_condition = 580.0
[../]
[]
[AuxVariables]
[./gap_cond]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat]
type = ADHeatConduction
variable = temp
[../]
[./heat_source]
type = ADMatHeatSource
material_property = volumetric_heat
variable = temp
scalar = 1e3
block = pellet_type_1
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 5
slave = 10
quadrature = true
[../]
[]
[BCs]
[./outside]
type = DirichletBC
value = 580
boundary = '1 2 3'
variable = temp
[../]
[./edge]
type = DirichletBC
value = 700
boundary = 10
variable = temp
[../]
[]
[Materials]
[./volumetric_heat]
type = GenericFunctionMaterial
prop_names = 'volumetric_heat'
prop_values = 't'
[../]
[./thermal_3]
type = HeatConductionMaterial
block = 3
thermal_conductivity = 5
specific_heat = 12
[../]
[./thermal_1]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-11
start_time = -200
n_startup_steps = 1
end_time = 1.02e5
num_steps = 10
dtmax = 2e6
dtmin = 1
[./TimeStepper]
type = IterationAdaptiveDT
dt = 2.0e2
optimal_iterations = 15
iteration_window = 2
[../]
[./Quadrature]
order = FIFTH
side_order = SEVENTH
[../]
[]
[Postprocessors]
[./ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[../]
[./avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[../]
[./flux_from_clad]
type = SideFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[../]
[./_dt]
type = TimestepSize
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/ad_thermal_expansion_function/dilatation.i
# This test checks the thermal expansion calculated via an dilatation function.
# The coefficient is selected so as to result in a 1e-4 strain in the x-axis, and to cross over
# from positive to negative strain.
[Mesh]
[./gen]
type = GeneratedMeshGenerator
dim = 3
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = SMALL
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
use_automatic_differentiation = true
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
function = '1 + t'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.3
[../]
[./stress]
type = ADComputeLinearElasticStress
[../]
[./thermal_expansion_strain]
type = ADComputeDilatationThermalExpansionFunctionEigenstrain
dilatation_function = cte_dilatation
stress_free_temperature = 1.5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Functions]
[./cte_dilatation]
type = PiecewiseLinear
x = '1 2'
y = '-1e-4 1e-4'
[../]
[]
[Postprocessors]
[./disp_x_max]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./temp_avg]
type = ElementAverageValue
variable = temp
[../]
[]
[Executioner]
type = Transient
end_time = 1.0
dt = 0.1
[]
[Outputs]
csv = true
[]
modules/combined/test/tests/phase_field_fracture/crack2d_computeCrackedStress_smallstrain.i
#This input uses PhaseField-Nonconserved Action to add phase field fracture bulk rate kernels
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 40
ny = 20
ymax = 0.5
[]
[./noncrack]
type = BoundingBoxNodeSetGenerator
new_boundary = noncrack
bottom_left = '0.5 0 0'
top_right = '1 0 0'
input = gen
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[AuxVariables]
[./strain_yy]
family = MONOMIAL
order = CONSTANT
[../]
[]
[Modules]
[./TensorMechanics]
[./Master]
[./All]
add_variables = true
strain = SMALL
planar_formulation = PLANE_STRAIN
additional_generate_output = 'stress_yy'
strain_base_name = uncracked
[../]
[../]
[../]
[./PhaseField]
[./Nonconserved]
[./c]
free_energy = E_el
kappa = kappa_op
mobility = L
[../]
[../]
[../]
[]
[Kernels]
[./solid_x]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_x
component = 0
c = c
[../]
[./solid_y]
type = PhaseFieldFractureMechanicsOffDiag
variable = disp_y
component = 1
c = c
[../]
[./off_disp]
type = AllenCahnElasticEnergyOffDiag
variable = c
displacements = 'disp_x disp_y'
mob_name = L
[../]
[]
[AuxKernels]
[./strain_yy]
type = RankTwoAux
variable = strain_yy
rank_two_tensor = uncracked_mechanical_strain
index_i = 1
index_j = 1
[../]
[]
[BCs]
[./ydisp]
type = FunctionDirichletBC
variable = disp_y
boundary = top
function = 't'
[../]
[./yfix]
type = DirichletBC
variable = disp_y
boundary = noncrack
value = 0
[../]
[./xfix]
type = DirichletBC
variable = disp_x
boundary = right
value = 0
[../]
[]
[Materials]
[./pfbulkmat]
type = GenericConstantMaterial
prop_names = 'gc_prop l visco'
prop_values = '1e-3 0.05 1e-6'
[../]
[./elasticity_tensor]
type = ComputeElasticityTensor
C_ijkl = '127.0 70.8 70.8 127.0 70.8 127.0 73.55 73.55 73.55'
fill_method = symmetric9
base_name = uncracked
euler_angle_1 = 30
euler_angle_2 = 0
euler_angle_3 = 0
[../]
[./elastic]
type = ComputeLinearElasticStress
base_name = uncracked
[../]
[./cracked_stress]
type = ComputeCrackedStress
c = c
kdamage = 1e-6
F_name = E_el
use_current_history_variable = true
uncracked_base_name = uncracked
[../]
[]
[Postprocessors]
[./av_stress_yy]
type = ElementAverageValue
variable = stress_yy
[../]
[./av_strain_yy]
type = SideAverageValue
variable = disp_y
boundary = top
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solving_package'
petsc_options_value = 'lu superlu_dist'
nl_rel_tol = 1e-8
l_tol = 1e-4
l_max_its = 100
nl_max_its = 10
dt = 5e-5
num_steps = 2
[]
[Outputs]
exodus = true
[]
modules/combined/test/tests/gap_heat_transfer_htonly/sphere3D.i
#
# 3D Spherical Gap Heat Transfer Test.
#
# This test exercises 3D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid sphere of radius = 1 unit, and outer
# hollow sphere with an inner radius of 2. In other words, the gap between
# them is 1 radial unit in length.
#
# The conductivity of both spheres is set very large to achieve a uniform
# temperature in each sphere. The temperature of the center node of the
# inner sphere is ramped from 100 to 200 over one time unit. The
# temperature of the outside of the outer, hollow sphere is held fixed
# at 100.
#
# A simple analytical solution is possible for the integrated heat flux
# between the inner and outer spheres:
#
# Integrated Flux = (T_left - T_right) * (gapK/(r^2*((1/r1)-(1/r2)))) * Area
#
# For gapK = 1 (default value)
#
# The area is taken as the area of the slave (inner) surface:
#
# Area = 4 * pi * 1^2 (4*pi*r^2)
#
# The integrated heat flux across the gap at time 1 is then:
#
# 4*pi*k*delta_T/((1/r1)-(1/r2))
# 4*pi*1*100/((1/1) - (1/2)) = 2513.3 watts
#
# For comparison, see results from the integrated flux post processors.
# This simulation makes use of symmetry, so only 1/8 of the spheres is meshed
# As such, the integrated flux from the post processors is 1/8 of the total,
# or 314.159 watts... i.e. 100*pi.
# The value coming from the post processor is slightly less than this
# but converges as mesh refinement increases.
#
# Simulating contact is challenging. Regression tests that exercise
# contact features can be difficult to solve consistently across multiple
# platforms. While designing these tests, we felt it worth while to note
# some aspects of these tests. The following applies to:
# sphere3D.i, sphere2DRZ.i, cyl2D.i, and cyl3D.i.
# 1. We decided that to perform consistently across multiple platforms we
# would use very small convergence tolerance. In this test we chose an
# nl_rel_tol of 1e-12.
# 2. Due to such a high value for thermal conductivity (used here so that the
# domains come to a uniform temperature) the integrated flux at time = 0
# was relatively large (the value coming from SideIntegralFlux =
# -_diffusion_coef[_qp]*_grad_u[_qp]*_normals[_qp] where the diffusion coefficient
# here is thermal conductivity).
# Even though _grad_u[_qp] is small, in this case the diffusion coefficient
# is large. The result is a number that isn't exactly zero and tends to
# fail exodiff. For this reason the parameter execute_on = initial should not
# be used. That parameter is left to default settings in these regression tests.
#
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
file = sphere3D.e
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 100000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
gap_conductivity = 1
quadrature = true
gap_geometry_type = SPHERE
sphere_origin = '0 0 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 5
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[./Console]
type = Console
[../]
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
modules/combined/test/tests/gap_heat_transfer_htonly/cyl2D_xz.i
#
# 2D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2 in the x-z plane. In other words,
# the gap between them is 1 radial unit in length.
#
# The calculated results are the same as for the cyl2D.i case in the x-y plane.
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
[file]
type = FileMeshGenerator
file = cyl2D.e
[]
[./rotate]
type = TransformGenerator
transform = ROTATE
vector_value = '0 90 0'
input = file
[../]
[]
[Functions]
[./temp]
type = PiecewiseLinear
x = '0 1'
y = '100 200'
[../]
[]
[Variables]
[./temp]
initial_condition = 100
[../]
[]
[AuxVariables]
[./gap_conductance]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Kernels]
[./heat_conduction]
type = HeatConduction
variable = temp
[../]
[]
[AuxKernels]
[./gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 2
[../]
[]
[Materials]
[./heat1]
type = HeatConductionMaterial
block = '1 2'
specific_heat = 1.0
thermal_conductivity = 1000000.0
[../]
[]
[ThermalContact]
[./thermal_contact]
type = GapHeatTransfer
variable = temp
master = 3
slave = 2
gap_conductivity = 1
quadrature = true
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 1 0'
[../]
[]
[BCs]
[./mid]
type = FunctionDirichletBC
boundary = 1
variable = temp
function = temp
[../]
[./temp_far_right]
type = DirichletBC
boundary = 4
variable = temp
value = 100
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
dt = 1
dtmin = 0.01
end_time = 1
nl_rel_tol = 1e-12
nl_abs_tol = 1e-7
[./Quadrature]
order = fifth
side_order = seventh
[../]
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[./temp_left]
type = SideAverageValue
boundary = 2
variable = temp
[../]
[./temp_right]
type = SideAverageValue
boundary = 3
variable = temp
[../]
[./flux_left]
type = SideFluxIntegral
variable = temp
boundary = 2
diffusivity = thermal_conductivity
[../]
[./flux_right]
type = SideFluxIntegral
variable = temp
boundary = 3
diffusivity = thermal_conductivity
[../]
[]
modules/functional_expansion_tools/test/tests/standard_use/interface_coupled.i
[Mesh]
type = GeneratedMesh
dim = 2
xmin = 0.0
xmax = 0.4
nx = 6
ymin = 0.0
ymax = 10.0
ny = 20
[]
[Variables]
[./m]
[../]
[]
[Kernels]
[./diff_m]
type = Diffusion
variable = m
[../]
[./time_diff_m]
type = TimeDerivative
variable = m
[../]
[./source_m]
type = BodyForce
variable = m
value = 100
[../]
[]
[ICs]
[./start_m]
type = ConstantIC
value = 2
variable = m
[../]
[]
[BCs]
[./interface_value]
type = FXValueBC
variable = m
boundary = right
function = FX_Basis_Value_Main
[../]
[./interface_flux]
type = FXFluxBC
boundary = right
variable = m
function = FX_Basis_Flux_Main
[../]
[]
[Functions]
[./FX_Basis_Value_Main]
type = FunctionSeries
series_type = Cartesian
orders = '4'
physical_bounds = '0.0 10'
y = Legendre
[../]
[./FX_Basis_Flux_Main]
type = FunctionSeries
series_type = Cartesian
orders = '5'
physical_bounds = '0.0 10'
y = Legendre
[../]
[]
[UserObjects]
[./FX_Flux_UserObject_Main]
type = FXBoundaryFluxUserObject
function = FX_Basis_Flux_Main
variable = m
boundary = right
diffusivity = 0.1
[../]
[]
[Postprocessors]
[./average_interface_value]
type = SideAverageValue
variable = m
boundary = right
[../]
[./total_flux]
type = SideFluxIntegral
variable = m
boundary = right
diffusivity = 0.1
[../]
[./picard_iterations]
type = NumPicardIterations
execute_on = 'initial timestep_end'
[../]
[]
[Executioner]
type = Transient
num_steps = 4
dt = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
picard_max_its = 30
nl_rel_tol = 1e-8
nl_abs_tol = 1e-9
picard_rel_tol = 1e-8
picard_abs_tol = 1e-9
[]
[Outputs]
exodus = true
[]
[MultiApps]
[./FXTransferApp]
type = TransientMultiApp
input_files = interface_sub.i
sub_cycling = true
[../]
[]
[Transfers]
[./FluxToSub]
type = MultiAppFXTransfer
direction = to_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Flux_UserObject_Main
multi_app_object_name = FX_Basis_Flux_Sub
[../]
[./ValueToMe]
type = MultiAppFXTransfer
direction = from_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Basis_Value_Main
multi_app_object_name = FX_Value_UserObject_Sub
[../]
[./FluxToMe]
type = MultiAppFXTransfer
direction = from_multiapp
multi_app = FXTransferApp
this_app_object_name = FX_Basis_Flux_Main
multi_app_object_name = FX_Flux_UserObject_Sub
[../]
[]
modules/porous_flow/test/tests/sinks/PorousFlowPiecewiseLinearSink_BC_eg1.i
## This is an example input file showing how to set a Type I (Dirichlet) BC with PorousFlowPiecewiseLinearSink
##
## Problem setup:
## - The boundaries are set to P(x = 0) = 2e6 Pa, P(x = 1) = 1e6 and run to steady state.
## - The 2d domain is 1 m x 1 m
## - The permeability is set to 1E-15 m2, fluid viscosity = 1E-3 Pa-s
## - The steady state flux is calculated q = -k/mu*grad(P) = 1e-6 m/s
##
## Problem verification (in csv output):
## - The flux in and out of the domain are 1e-6 m/s (matching steady state solution)
## - The pressure at the left and right boundaries are set to 2e6 and 1e6 Pa, respectively
[Mesh]
type = GeneratedMesh
dim = 2
nx = 5
xmin = 0
xmax = 1
ny = 2
ymin = 0
ymax = 1
[]
[GlobalParams]
PorousFlowDictator = dictator
[]
[Variables]
[./porepressure]
initial_condition = 1.5e6 # initial pressure in domain
[../]
[]
[PorousFlowBasicTHM]
porepressure = porepressure
coupling_type = Hydro
gravity = '0 0 0'
fp = the_simple_fluid
[]
[AuxVariables]
[./fluxes_out]
[../]
[./fluxes_in]
[../]
[]
[BCs]
[./in_left]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = 'left'
pt_vals = '-1e9 1e9' # x coordinates defining g
multipliers = '-1e9 1e9' # y coordinates defining g
PT_shift = 2.E6 # BC pressure
flux_function = 1E-5 # Variable C
fluid_phase = 0
save_in = fluxes_out
[../]
[./out_right]
type = PorousFlowPiecewiseLinearSink
variable = porepressure
boundary = 'right'
pt_vals = '-1e9 1e9' # x coordinates defining g
multipliers = '-1e9 1e9' # y coordinates defining g
PT_shift = 1.E6 # BC pressure
flux_function = 1E-6 # Variable C
fluid_phase = 0
save_in = fluxes_in
[../]
[]
[Postprocessors]
[./left_flux]
type = NodalSum
boundary = 'left'
variable = fluxes_out
execute_on = 'timestep_end'
[../]
[./right_flux]
type = NodalSum
boundary = 'right'
variable = fluxes_in
execute_on = 'timestep_end'
[../]
[./left_pressure]
type = SideAverageValue
boundary = 'left'
variable = porepressure
execute_on = 'timestep_end'
[../]
[./right_pressure]
type = SideAverageValue
boundary = 'right'
variable = porepressure
execute_on = 'timestep_end'
[../]
[]
[Modules]
[./FluidProperties]
[./the_simple_fluid]
type = SimpleFluidProperties
thermal_expansion = 0
viscosity = 1.0E-3
density0 = 1000.0
[../]
[../]
[]
[Materials]
[./porosity]
type = PorousFlowPorosity
porosity_zero = 0.1
[../]
[./biot_modulus]
type = PorousFlowConstantBiotModulus
biot_coefficient = 0.8
solid_bulk_compliance = 2E-7
fluid_bulk_modulus = 1E7
[../]
[./permeability_aquifer]
type = PorousFlowPermeabilityConst
permeability = '1E-15 0 0 0 1E-15 0 0 0 1E-15'
[../]
[]
[Executioner]
type = Transient
solve_type = Newton
end_time = 1E6
dt = 1E5
nl_abs_tol = 1E-10
[]
[Outputs]
csv = true
[]
modules/tensor_mechanics/test/tests/thermal_expansion_function/dilatation.i
# This test checks the thermal expansion calculated via an dilatation function.
# The coefficient is selected so as to result in a 1e-4 strain in the x-axis, and to cross over
# from positive to negative strain.
[Mesh]
[./gen]
type = GeneratedMeshGenerator
dim = 3
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = SMALL
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
function = '1 + t'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeDilatationThermalExpansionFunctionEigenstrain
dilatation_function = cte_dilatation
stress_free_temperature = 1.5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Functions]
[./cte_dilatation]
type = PiecewiseLinear
x = '1 2'
y = '-1e-4 1e-4'
[../]
[]
[Postprocessors]
[./disp_x_max]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./temp_avg]
type = ElementAverageValue
variable = temp
[../]
[]
[Executioner]
type = Transient
end_time = 1.0
dt = 0.1
[]
[Outputs]
csv = true
[]
modules/tensor_mechanics/test/tests/thermal_expansion_function/mean.i
# This test checks the thermal expansion calculated via a mean thermal expansion coefficient.
# The coefficient is selected so as to result in a 1e-4 strain in the x-axis, and to cross over
# from positive to negative strain.
[Mesh]
[./gen]
type = GeneratedMeshGenerator
dim = 3
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[./temp]
[../]
[]
[Modules/TensorMechanics/Master]
[./all]
strain = SMALL
add_variables = true
eigenstrain_names = eigenstrain
generate_output = 'strain_xx strain_yy strain_zz'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[AuxKernels]
[./temp]
type = FunctionAux
variable = temp
function = '1 + t'
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1
poissons_ratio = 0.3
[../]
[./stress]
type = ComputeLinearElasticStress
[../]
[./thermal_expansion_strain]
type = ComputeMeanThermalExpansionFunctionEigenstrain
thermal_expansion_function = cte_func_mean
thermal_expansion_function_reference_temperature = 1.2
stress_free_temperature = 1.5
temperature = temp
eigenstrain_name = eigenstrain
[../]
[]
[Functions]
[./cte_func_mean]
type = ParsedFunction
vars = 'T T_stress_free T_ref end_strain'
vals = '2 1.5 1.2 1e-4'
value = 'end_strain / (T - T_stress_free - end_strain * (T_stress_free - T_ref))'
[../]
[]
[Postprocessors]
[./disp_x_max]
type = SideAverageValue
variable = disp_x
boundary = right
[../]
[./temp_avg]
type = ElementAverageValue
variable = temp
[../]
[]
[Executioner]
type = Transient
end_time = 1.0
dt = 0.1
[]
[Outputs]
csv = true
[]
modules/heat_conduction/test/tests/heat_source_bar/heat_source_bar.i
# This is a simple 1D test of the volumetric heat source with material properties
# of a representative ceramic material. A bar is uniformly heated, and a temperature
# boundary condition is applied to the left side of the bar.
# Important properties of problem:
# Length: 0.01 m
# Thermal conductivity = 3.0 W/(mK)
# Specific heat = 300.0 J/K
# density = 10431.0 kg/m^3
# Prescribed temperature on left side: 600 K
# When it has reached steady state, the temperature as a function of position is:
# T = -q/(2*k) (x^2 - 2*x*length) + 600
# or
# T = -6.3333e+7 * (x^2 - 0.02*x) + 600
# on left side: T=600, on right side, T=6933.3
[Mesh]
type = GeneratedMesh
dim = 1
xmax = 0.01
nx = 20
[]
[Variables]
[./temp]
initial_condition = 300.0
[../]
[]
[Kernels]
[./heat]
type = HeatConduction
variable = temp
[../]
[./heatsource]
type = HeatSource
function = volumetric_heat
variable = temp
[../]
[]
[BCs]
[./lefttemp]
type = DirichletBC
boundary = left
variable = temp
value = 600
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'density thermal_conductivity'
prop_values = '10431.0 3.0'
[../]
[]
[Functions]
[./volumetric_heat]
type = ParsedFunction
value = 3.8e+8
[../]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[./right]
type = SideAverageValue
variable = temp
boundary = right
[../]
[./error]
type = NodalL2Error
function = '-3.8e+8/(2*3) * (x^2 - 2*x*0.01) + 600'
variable = temp
[../]
[]
[Outputs]
execute_on = FINAL
exodus = true
[]
modules/tensor_mechanics/test/tests/czm/czm_3DC_3D_base_input.i
[Mesh]
[./msh]
type = GeneratedMeshGenerator
[]
[./subdomain_1]
type = SubdomainBoundingBoxGenerator
input = msh
bottom_left = '0 0 0'
block_id = 1
top_right = '0.5 1 1'
[]
[./subdomain_2]
type = SubdomainBoundingBoxGenerator
input = subdomain_1
bottom_left = '0.5 0 0'
block_id = 2
top_right = '1 1 1'
[]
[./breakmesh]
input = subdomain_2
type = BreakMeshByBlockGenerator
[../]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Modules/TensorMechanics/Master]
[./all]
strain = SMALL
add_variables = true
generate_output = 'stress_xx stress_yy stress_zz stress_yz stress_xz stress_xy'
[../]
[]
[Modules/TensorMechanics/CohesiveZoneMaster]
[./czm1]
boundary = 'interface'
displacements = 'disp_x disp_y disp_z'
[../]
[]
[BCs]
[./left_x]
type = DirichletBC
variable = disp_x
preset = false
boundary = left
value = 0.0
[../]
[./left_y]
type = DirichletBC
variable = disp_y
preset = false
boundary = left
value = 0.0
[../]
[./left_z]
type = DirichletBC
variable = disp_z
preset = false
boundary = left
value = 0.0
[../]
[./right_x]
type = FunctionDirichletBC
variable = disp_x
preset = false
boundary = right
[../]
[./right_y]
type = FunctionDirichletBC
variable = disp_y
preset = false
boundary = right
[../]
[./right_z]
type = FunctionDirichletBC
variable = disp_z
preset = false
boundary = right
[../]
[]
[Materials]
[./Elasticity_tensor]
type = ComputeElasticityTensor
block = '1 2'
fill_method = symmetric_isotropic
C_ijkl = '0.3 0.5e8'
[../]
[./stress]
type = ComputeLinearElasticStress
block = '1 2'
[../]
[./czm_3dc]
type = SalehaniIrani3DCTraction
boundary = 'interface'
normal_gap_at_maximum_normal_traction = 1
tangential_gap_at_maximum_shear_traction = 0.5
maximum_normal_traction = 100
maximum_shear_traction = 70
displacements = 'disp_x disp_y disp_z'
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
solve_type = NEWTON
nl_abs_tol = 1e-8
nl_rel_tol = 1e-6
nl_max_its = 5
l_tol = 1e-10
l_max_its = 50
start_time = 0.0
dt = 0.2
end_time = 5
dtmin = 0.2
line_search = none
[]
[Outputs]
[./out]
type = Exodus
[../]
[]
[Postprocessors]
[./sxx]
type = SideAverageValue
variable = stress_xx
execute_on = 'INITIAL TIMESTEP_END'
boundary = 'interface'
[../]
[./syy]
type = SideAverageValue
variable = stress_yy
execute_on = 'INITIAL TIMESTEP_END'
boundary = 'interface'
[../]
[./szz]
type = SideAverageValue
variable = stress_zz
execute_on = 'INITIAL TIMESTEP_END'
boundary = 'interface'
[../]
[./syz]
type = SideAverageValue
variable = stress_yz
execute_on = 'INITIAL TIMESTEP_END'
boundary = 'interface'
[../]
[./sxz]
type = SideAverageValue
variable = stress_xz
execute_on = 'INITIAL TIMESTEP_END'
boundary = 'interface'
[../]
[./sxy]
type = SideAverageValue
variable = stress_xy
execute_on = 'INITIAL TIMESTEP_END'
boundary = 'interface'
[../]
[./disp_x]
type = SideAverageValue
variable = disp_x
execute_on = 'INITIAL TIMESTEP_END'
boundary = 'right'
[../]
[./disp_y]
type = SideAverageValue
variable = disp_y
execute_on = 'INITIAL TIMESTEP_END'
boundary = 'right'
[../]
[./disp_z]
type = SideAverageValue
variable = disp_z
execute_on = 'INITIAL TIMESTEP_END'
boundary = 'right'
[../]
[]
modules/heat_conduction/test/tests/heat_source_bar/ad_heat_source_bar.i
# This is a simple 1D test of the volumetric heat source with material properties
# of a representative ceramic material. A bar is uniformly heated, and a temperature
# boundary condition is applied to the left side of the bar.
# Important properties of problem:
# Length: 0.01 m
# Thermal conductivity = 3.0 W/(mK)
# Specific heat = 300.0 J/K
# density = 10431.0 kg/m^3
# Prescribed temperature on left side: 600 K
# When it has reached steady state, the temperature as a function of position is:
# T = -q/(2*k) (x^2 - 2*x*length) + 600
# or
# T = -6.3333e+7 * (x^2 - 0.02*x) + 600
# on left side: T=600, on right side, T=6933.3
[Mesh]
type = GeneratedMesh
dim = 1
xmax = 0.01
nx = 20
[]
[Variables]
[./temp]
initial_condition = 300.0
[../]
[]
[Kernels]
[./heat]
type = ADHeatConduction
variable = temp
thermal_conductivity = thermal_conductivity
[../]
[./heatsource]
type = ADMatHeatSource
material_property = volumetric_heat
variable = temp
scalar = 10
[../]
[]
[BCs]
[./lefttemp]
type = DirichletBC
boundary = left
variable = temp
value = 600
[../]
[]
[Materials]
[./density]
type = GenericConstantMaterial
prop_names = 'density thermal_conductivity volumetric_heat '
prop_values = '10431.0 3.0 3.8e7'
[../]
[]
[Preconditioning]
[./full]
type = SMP
full = true
[../]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[./right]
type = SideAverageValue
variable = temp
boundary = right
[../]
[./error]
type = NodalL2Error
function = '-3.8e+8/(2*3) * (x^2 - 2*x*0.01) + 600'
variable = temp
[../]
[]
[Outputs]
execute_on = FINAL
exodus = true
[]
Child Objects
- modules/heat_conduction/include/postprocessors/ThermalConductivity.h
- framework/include/postprocessors/AxisymmetricCenterlineAverageValue.h
modules/heat_conduction/include/postprocessors/ThermalConductivity.h
// This file is part of the MOOSE framework
// https://www.mooseframework.org
//
// All rights reserved, see COPYRIGHT for full restrictions
// https://github.com/idaholab/moose/blob/master/COPYRIGHT
//
// Licensed under LGPL 2.1, please see LICENSE for details
// https://www.gnu.org/licenses/lgpl-2.1.html
#pragma once
#include "SideAverageValue.h"
// Forward Declarations
class ThermalConductivity;
template <>
InputParameters validParams<ThermalConductivity>();
/**
* This postprocessor computes the thermal conductivity of the bulk.
*/
class ThermalConductivity : public SideAverageValue
{
public:
static InputParameters validParams();
ThermalConductivity(const InputParameters & parameters);
virtual Real getValue();
protected:
const Real _dx;
const PostprocessorValue & _flux;
const PostprocessorValue & _T_hot;
const Real _length_scale;
const Real _k0;
private:
/// True if this is the zeroth timestep (timestep < 1). At the zero
/// timestep, the initial value of thermal conductivity should be returned.
/// This boolean is delcared as a reference so that the variable is restartable
/// data: if we restart, the code will not think it is the zero timestep again.
bool & _step_zero;
};
framework/include/postprocessors/AxisymmetricCenterlineAverageValue.h
// This file is part of the MOOSE framework
// https://www.mooseframework.org
//
// All rights reserved, see COPYRIGHT for full restrictions
// https://github.com/idaholab/moose/blob/master/COPYRIGHT
//
// Licensed under LGPL 2.1, please see LICENSE for details
// https://www.gnu.org/licenses/lgpl-2.1.html
#pragma once
#include "SideAverageValue.h"
// Forward Declarations
class AxisymmetricCenterlineAverageValue;
template <>
InputParameters validParams<AxisymmetricCenterlineAverageValue>();
/**
* This postprocessor computes a line integral of the specified variable
* along the centerline of an axisymmetric domain.
*/
class AxisymmetricCenterlineAverageValue : public SideAverageValue
{
public:
static InputParameters validParams();
AxisymmetricCenterlineAverageValue(const InputParameters & parameters);
protected:
virtual Real computeIntegral() override;
virtual Real volume() override;
Real _volume;
};