- rateThe constant rate in 'du/dt = rate'
C++ Type:double
Description:The constant rate in 'du/dt = rate'
- variableThe name of the variable that this boundary condition applies to
C++ Type:NonlinearVariableName
Description:The name of the variable that this boundary condition applies to
ConstantRate

The ConstantRate has not been documented. The content listed below should be used as a starting point for documenting the class, which includes the typical automatic documentation associated with a MooseObject; however, what is contained is ultimately determined by what is necessary to make the documentation clear for users.
# ConstantRate
!syntax description /NodalKernels/ConstantRate
## Overview
!! Replace these lines with information regarding the ConstantRate object.
## Example Input File Syntax
!! Describe and include an example of how to use the ConstantRate object.
!syntax parameters /NodalKernels/ConstantRate
!syntax inputs /NodalKernels/ConstantRate
!syntax children /NodalKernels/ConstantRate
!syntax description /NodalKernels/ConstantRate
Input Parameters
- blockThe list of block ids (SubdomainID) that this object will be applied
C++ Type:std::vector
Options:
Description:The list of block ids (SubdomainID) that this object will be applied
- boundaryThe list of boundary IDs from the mesh where this boundary condition applies
C++ Type:std::vector
Options:
Description:The list of boundary IDs from the mesh where this boundary condition applies
- diag_save_inThe name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector
Options:
Description:The name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- save_inThe name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector
Options:
Description:The name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
Optional Parameters
- 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.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Options:
Description:Determines whether this object is calculated using an implicit or explicit form
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Options:
Description:The seed for the master random number generator
- 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
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector
Options:
Description:The extra tags for the matrices this Kernel should fill
- extra_vector_tagsThe extra tags for the vectors this Kernel should fill
C++ Type:std::vector
Options:
Description:The extra tags for the vectors this Kernel should fill
- matrix_tagssystemThe tag for the matrices this Kernel should fill
Default:system
C++ Type:MultiMooseEnum
Options:nontime system
Description:The tag for the matrices this Kernel should fill
- vector_tagsnontimeThe tag for the vectors this Kernel should fill
Default:nontime
C++ Type:MultiMooseEnum
Options:nontime time
Description:The tag for the vectors this Kernel should fill
Tagging Parameters
Input Files
- modules/tensor_mechanics/test/tests/shell/static/beam_bending_moment_AD_2.i
- modules/tensor_mechanics/test/tests/beam/static/torsion_2.i
- test/tests/tag/tag_nodal_kernels.i
- modules/tensor_mechanics/test/tests/volumetric_locking_verification/42_node.i
- modules/tensor_mechanics/test/tests/beam/action/2_block_common.i
- test/tests/nodalkernels/constant_rate/constant_rate.i
- test/tests/nodalkernels/jac_test/jac_test.i
- modules/tensor_mechanics/test/tests/beam/static/euler_pipe_bend.i
- modules/tensor_mechanics/test/tests/beam/static/timoshenko_small_strain_y.i
- modules/tensor_mechanics/test/tests/beam/static/timoshenko_small_strain_z.i
- test/tests/controls/time_periods/nodalkernels/nodal.i
- modules/tensor_mechanics/test/tests/beam/static/euler_pipe_axial_force.i
- modules/tensor_mechanics/test/tests/shell/static/plate_bending.i
- modules/tensor_mechanics/test/tests/beam/action/2_block.i
- modules/tensor_mechanics/test/tests/shell/static/plate_bending2.i
- modules/tensor_mechanics/test/tests/beam/static/torsion_1.i
- modules/tensor_mechanics/test/tests/beam/static/euler_small_strain_y_action.i
- modules/tensor_mechanics/test/tests/beam/static/euler_small_strain_z.i
- modules/tensor_mechanics/test/tests/beam/action/beam_action_chk.i
- modules/tensor_mechanics/test/tests/shell/static/beam_bending_moment_AD.i
- modules/tensor_mechanics/test/tests/beam/static/euler_small_strain_y.i
- modules/tensor_mechanics/test/tests/critical_time_step/timoshenko_smallstrain_critstep.i
modules/tensor_mechanics/test/tests/shell/static/beam_bending_moment_AD_2.i
# Test that models bending of a rotated cantilever beam using shell elements
# A cantilever beam of length 10 m (in Z direction) and cross-section
# 1 m x 0.1 m is modeled using 4 shell elements placed along the length
# (Figure 6a from Dvorkin and Bathe, 1984). All displacements and
# X rotations are fixed on the bottom boundary. E = 2100000 and v = 0.0.
# A load of 0.5 N (in the Y direction) is applied at each node on the top
# boundary resulting in a total load of 1 N.
# The analytical solution for displacement at tip using small strain/rotations # is PL^3/3EI + PL/AG = 1.90485714 m
# The FEM solution using 4 shell elements is 1.875095 m with a relative error
# of 1.5%.
# Similarly, the analytical solution for slope at tip is PL^2/2EI = 0.285714286
# The FEM solution is 0.2857143 and the relative error is 5e-6%.
# The stress_zz for the four elements at y = -0.57735 * (t/2) (first qp below mid-surface of shell) are:
# 3031.089 Pa, 2165.064 Pa, 1299.038 Pa and 433.0127 Pa.
# Note the above values are the average stresses in each element.
# Analytically, stress_zz decreases linearly from z = 0 to z = 10 m.
# The maximum value of stress_zz at z = 0 is My/I = PL * 0.57735*(t/2)/I = 3464.1 Pa
# Therefore, the analytical value of stress at y = -0.57735 * (t/2) at the mid-point
# of the four elements are:
# 3031.0875 Pa, 2165.0625 Pa, 1299.0375 Pa ,433.0125 Pa
# The relative error in stress_zz is in the order of 5e-5%.
# The stress_yz at y = -0.57735 * (t/2) at all four elements from the simulation is 10 Pa.
# The analytical solution for the shear stress is: V/2/I *((t^2)/4 - y^2), where the shear force (V)
# is 1 N at any z along the length of the beam. Therefore, the analytical shear stress at
# y = -0.57735 * (t/2) is 10 Pa at any location along the length of the beam.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 4
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 10.0
[]
[MeshModifiers]
[./rotate]
type = Transform
transform = ROTATE
vector_value = '0 90 0'
[../]
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./stress_zz]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_zz]
type = RankTwoAux
variable = stress_zz
rank_two_tensor = global_stress_t_points_0
index_i = 2
index_j = 2
[../]
[./stress_yz]
type = RankTwoAux
variable = stress_yz
rank_two_tensor = global_stress_t_points_0
index_i = 1
index_j = 2
[../]
[]
[BCs]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = 'bottom'
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = 'bottom'
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = 'bottom'
value = 0.0
[../]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = 'bottom'
value = 0.0
[../]
[]
[NodalKernels]
[./force_y2]
type = ConstantRate
variable = disp_y
boundary = 'top'
rate = 0.5
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_max_its = 2
nl_rel_tol = 1e-10
nl_abs_tol = 5e-4
dt = 1
dtmin = 1
end_time = 1
[]
[Kernels]
[./solid_disp_x]
type = ADStressDivergenceShell
block = '0'
component = 0
variable = disp_x
through_thickness_order = SECOND
[../]
[./solid_disp_y]
type = ADStressDivergenceShell
block = '0'
component = 1
variable = disp_y
through_thickness_order = SECOND
[../]
[./solid_disp_z]
type = ADStressDivergenceShell
block = '0'
component = 2
variable = disp_z
through_thickness_order = SECOND
[../]
[./solid_rot_x]
type = ADStressDivergenceShell
block = '0'
component = 3
variable = rot_x
through_thickness_order = SECOND
[../]
[./solid_rot_y]
type = ADStressDivergenceShell
block = '0'
component = 4
variable = rot_y
through_thickness_order = SECOND
[../]
[]
[Materials]
[./elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 2100000
poissons_ratio = 0.0
block = 0
through_thickness_order = SECOND
[../]
[./strain]
type = ADComputeIncrementalShellStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 0.1
through_thickness_order = SECOND
[../]
[./stress]
type = ADComputeShellStress
block = 0
through_thickness_order = SECOND
[../]
[]
[Postprocessors]
[./disp_z_tip]
type = PointValue
point = '1.0 0.0 10.0'
variable = disp_y
[../]
[./rot_y_tip]
type = PointValue
point = '0.0 0.0 10.0'
variable = rot_y
[../]
[./stress_zz_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_zz
[../]
[./stress_zz_el_1]
type = ElementalVariableValue
elementid = 1
variable = stress_zz
[../]
[./stress_zz_el_2]
type = ElementalVariableValue
elementid = 2
variable = stress_zz
[../]
[./stress_zz_el_3]
type = ElementalVariableValue
elementid = 3
variable = stress_zz
[../]
[./stress_yz_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_yz
[../]
[./stress_yz_el_1]
type = ElementalVariableValue
elementid = 1
variable = stress_yz
[../]
[./stress_yz_el_2]
type = ElementalVariableValue
elementid = 2
variable = stress_yz
[../]
[./stress_yz_el_3]
type = ElementalVariableValue
elementid = 3
variable = stress_yz
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/static/torsion_2.i
# Torsion test with user provided Ix
# A beam of length 1 m is fixed at one end and a moment of 5 Nm
# is applied along the axis of the beam.
# G = 7.69e9
# Ix = 1e-5
# The axial twist at the free end of the beam is:
# phi = TL/GIx = 6.5e-4
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 1.0
displacements = 'disp_x disp_y disp_z'
[]
[Modules/TensorMechanics/LineElementMaster]
[./block_all]
add_variables = true
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# Geometry parameters
area = 0.5
Iy = 1e-5
Iz = 1e-5
Ix = 1e-5
y_orientation = '0.0 1.0 0.0'
block = 0
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_y2]
type = ConstantRate
variable = rot_x
boundary = right
rate = 5.0
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dt = 1
dtmin = 1
end_time = 2
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 2.0e9
poissons_ratio = 0.3
shear_coefficient = 1.0
block = 0
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[]
[Postprocessors]
[./disp_x]
type = PointValue
point = '1.0 0.0 0.0'
variable = rot_x
[../]
[]
[Outputs]
csv = true
exodus = true
[]
test/tests/tag/tag_nodal_kernels.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./nodal_ode]
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./time]
type = TimeDerivative
variable = u
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[NodalKernels]
[./td]
type = TimeDerivativeNodalKernel
variable = nodal_ode
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./constant_rate]
type = ConstantRate
variable = nodal_ode
rate = 1.0
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1 vec_tag2'
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 10
extra_matrix_tags = 'mat_tag1 mat_tag2'
extra_vector_tags = 'vec_tag1'
[../]
[]
[Problem]
type = TagTestProblem
test_tag_vectors = 'time nontime residual vec_tag1 vec_tag2'
test_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_matrices = 'mat_tag1 mat_tag2'
extra_tag_vectors = 'vec_tag1 vec_tag2'
[]
[AuxVariables]
[./tag_variable1]
order = FIRST
family = LAGRANGE
[../]
[./tag_variable2]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./TagVectorAux1]
type = TagVectorAux
variable = tag_variable1
v = nodal_ode
vector_tag = vec_tag2
execute_on = timestep_end
[../]
[./TagVectorAux2]
type = TagMatrixAux
variable = tag_variable2
v = u
matrix_tag = mat_tag2
execute_on = timestep_end
[../]
[]
[Executioner]
type = Transient
num_steps = 10
nl_rel_tol = 1e-08
dt = 0.01
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/volumetric_locking_verification/42_node.i
# Test for volumetric locking correction
# 2D cook's membrane problem with a trapezoid
# that is fixed at one end and is sheared at
# other end. Poisson's ratio is 0.4999.
# Using Quad4 elements and no volumetric locking,
# vertical displacement at top right corner is 3.78
# due to locking.
# Using Quad4 elements with volumetric locking, vertical
# dispalcement at top right corner is 7.78.
# Results match with Nakshatrala et al., Comp. Mech., 41, 2008.
# Check volumetric locking correction documentation for
# more details about this problem.
[GlobalParams]
displacements = 'disp_x disp_y'
volumetric_locking_correction = true
[]
[Mesh]
file = 42_node_side.e
[]
[Modules]
[./TensorMechanics]
[./Master]
[./all]
add_variables = true
strain = SMALL
incremental = true
[../]
[../]
[../]
[]
[BCs]
[./no_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./no_y]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[]
[NodalKernels]
[./y_force]
type = ConstantRate
variable = disp_y
boundary = 2
rate = 2.38095238095
[../]
[]
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 250.0
poissons_ratio = 0.4999
[../]
[./stress]
type = ComputeFiniteStrainElasticStress
[../]
[]
[Preconditioning]
[./SMP]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
num_steps = 1
[]
[Postprocessors]
[./a_disp_y]
type = PointValue
variable = disp_y
point = '48.0 60.0 0.0'
[../]
[]
[Outputs]
exodus = true
csv = true
[]
modules/tensor_mechanics/test/tests/beam/action/2_block_common.i
# Test for LineElementAction on multiple blocks by placing parameters
# common to all blocks outside of the individual action blocks
# 2 beams of length 1m are fixed at one end and a force of 1e-4 N
# is applied at the other end of the beams. Beam 1 is in block 1
# and beam 2 is in block 2. All the material properties for the two
# beams are identical. The moment of inertia of beam 2 is twice that
# of beam 1.
# Since the end displacement of a cantilever beam is inversely proportional
# to the moment of inertia, the y displacement at the end of beam 1 should be twice
# that of beam 2.
[Mesh]
type = FileMesh
file = 2_beam_block.e
displacements = 'disp_x disp_y disp_z'
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = 1
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = 1
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = 1
value = 0.0
[../]
[]
[NodalKernels]
[./force_1]
type = ConstantRate
variable = disp_y
boundary = 2
rate = 1e-4
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dt = 1
dtmin = 1
end_time = 2
[]
[Modules/TensorMechanics/LineElementMaster]
# parameters common to all blocks
add_variables = true
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# Geometry parameters
area = 0.5
y_orientation = '0.0 1.0 0.0'
[./block_1]
Iy = 1e-5
Iz = 1e-5
block = 1
[../]
[./block_2]
Iy = 2e-5
Iz = 2e-5
block = 2
[../]
[]
[Materials]
[./stress]
type = ComputeBeamResultants
block = '1 2'
[../]
[./elasticity_1]
type = ComputeElasticityBeam
youngs_modulus = 2.0
poissons_ratio = 0.3
shear_coefficient = 1.0
block = '1 2'
[../]
[]
[Postprocessors]
[./disp_y_1]
type = PointValue
point = '1.0 0.0 0.0'
variable = disp_y
[../]
[./disp_y_2]
type = PointValue
point = '1.0 1.0 0.0'
variable = disp_y
[../]
[]
[Outputs]
file_base = '2_block_out'
exodus = true
[]
test/tests/nodalkernels/constant_rate/constant_rate.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./nodal_ode]
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[NodalKernels]
[./td]
type = TimeDerivativeNodalKernel
variable = nodal_ode
[../]
[./constant_rate]
type = ConstantRate
variable = nodal_ode
rate = 1.0
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Executioner]
type = Transient
num_steps = 20
dt = 0.1
[]
[Outputs]
exodus = true
[]
test/tests/nodalkernels/jac_test/jac_test.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./nodal_ode]
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[NodalKernels]
[./td]
type = TimeDerivativeNodalKernel
variable = nodal_ode
[../]
[./constant_rate]
type = ConstantRate
variable = nodal_ode
rate = 1.0
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Executioner]
type = Transient
num_steps = 20
dt = 0.1
solve_type = NEWTON
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
nl_max_its = 1
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/static/euler_pipe_bend.i
# Test for small strain Euler beam bending in y direction
# Modeling a tube with an outer radius of 15 mm and inner radius of 13 mm
# The length of the tube is 1.0 m
# E = 2.068e11 Pa and G = 7.956e10 with nu = 0.3
# A load of 5 N is applied at the end of the beam in the y-dir
# The displacement at the end is given by
# y = - W * L^3 / 3 * E * I
# y = - 5 * 1.0^3 / 3 * 2.068e11 * 1.7329e-8 = 4.65e-4 m
# where I = pi/2 * (r_o^4 - r_i^4)
# I = pi /2 * (0.015^4 - 0.013^4) = 1.7329e-8
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 1.0
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_z]
order = FIRST
family = LAGRANGE
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_y2]
type = ConstantRate
variable = disp_y
boundary = right
rate = 5.0
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dt = 1
dtmin = 1
end_time = 2
[]
[Kernels]
[./solid_disp_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 0
variable = disp_x
[../]
[./solid_disp_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 1
variable = disp_y
[../]
[./solid_disp_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 2
variable = disp_z
[../]
[./solid_rot_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 3
variable = rot_x
[../]
[./solid_rot_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 4
variable = rot_y
[../]
[./solid_rot_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 5
variable = rot_z
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 2.068e11
poissons_ratio = 0.3
shear_coefficient = 1.0
block = 0
outputs = exodus
output_properties = 'material_stiffness material_flexure'
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 1.759e-4
Ay = 0.0
Az = 0.0
Iy = 1.7329e-8
Iz = 1.7329e-8
y_orientation = '0.0 1.0 0.0'
[../]
[./stress]
type = ComputeBeamResultants
block = 0
outputs = exodus
output_properties = 'forces moments'
[../]
[]
[Postprocessors]
[./disp_x]
type = PointValue
point = '1.0 0.0 0.0'
variable = disp_x
[../]
[./disp_y]
type = PointValue
point = '1.0 0.0 0.0'
variable = disp_y
[../]
[./forces_y]
type = PointValue
point = '1.0 0.0 0.0'
variable = forces_y
[../]
[]
[Outputs]
csv = true
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/static/timoshenko_small_strain_y.i
# Test for small strain timoshenko beam bending in y direction
# A unit load is applied at the end of a cantilever beam of length 4m.
# The properties of the cantilever beam are as follows:
# Young's modulus (E) = 2.60072400269
# Shear modulus (G) = 1.00027846257
# Poisson's ratio (nu) = 0.3
# Shear coefficient (k) = 0.85
# Cross-section area (A) = 0.554256
# Iy = 0.0141889 = Iz
# Length = 4 m
# For this beam, the dimensionless parameter alpha = kAGL^2/EI = 204.3734
# The small deformation analytical deflection of the beam is given by
# delta = PL^3/3EI * (1 + 3.0 / alpha) = 5.868e-4 m
# Using 10 elements to discretize the beam element, the FEM solution is 5.852e-2m.
# This deflection matches the FEM solution given in Prathap and Bhashyam (1982).
# References:
# Prathap and Bhashyam (1982), International journal for numerical methods in engineering, vol. 18, 195-210.
# Note that the force is scaled by 1e-4 compared to the reference problem.
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 4.0
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_z]
order = FIRST
family = LAGRANGE
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_y2]
type = ConstantRate
variable = disp_y
boundary = right
rate = 1.0e-4
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 1
dtmin = 1
end_time = 2
[]
[Kernels]
[./solid_disp_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 0
variable = disp_x
[../]
[./solid_disp_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 1
variable = disp_y
[../]
[./solid_disp_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 2
variable = disp_z
[../]
[./solid_rot_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 3
variable = rot_x
[../]
[./solid_rot_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 4
variable = rot_y
[../]
[./solid_rot_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 5
variable = rot_z
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 2.60072400269
poissons_ratio = 0.3
shear_coefficient = 0.85
block = 0
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 0.554256
Ay = 0.0
Az = 0.0
Iy = 0.0141889
Iz = 0.0141889
y_orientation = '0.0 1.0 0.0'
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[]
[Postprocessors]
[./disp_x]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_x
[../]
[./disp_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_y
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/static/timoshenko_small_strain_z.i
# Test for small strain timoshenko beam bending in z direction
# A unit load is applied at the end of a cantilever beam of length 4m.
# The properties of the cantilever beam are as follows:
# Young's modulus (E) = 2.60072400269
# Shear modulus (G) = 1.00027846257
# Poisson's ratio (nu) = 0.3
# Shear coefficient (k) = 0.85
# Cross-section area (A) = 0.554256
# Iy = 0.0141889 = Iz
# Length = 4 m
# For this beam, the dimensionless parameter alpha = kAGL^2/EI = 204.3734
# The small deformation analytical deflection of the beam is given by
# delta = PL^3/3EI * (1 + 3.0 / alpha) = 5.868e-2m
# Using 10 elements to discretize the beam element, the FEM solution is 5.852e-2 m.
# This deflection matches the FEM solution given in Prathap and Bhashyam (1982).
# References:
# Prathap and Bhashyam (1982), International journal for numerical methods in engineering, vol. 18, 195-210.
# Note that the force is scaled by 1e-4 compared to the reference problem.
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 4.0
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_z]
order = FIRST
family = LAGRANGE
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_z2]
type = ConstantRate
variable = disp_z
boundary = right
rate = 1.0e-4
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 1
dtmin = 1
end_time = 2
[]
[Kernels]
[./solid_disp_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 0
variable = disp_x
[../]
[./solid_disp_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 1
variable = disp_y
[../]
[./solid_disp_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 2
variable = disp_z
[../]
[./solid_rot_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 3
variable = rot_x
[../]
[./solid_rot_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 4
variable = rot_y
[../]
[./solid_rot_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 5
variable = rot_z
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 2.60072400269
poissons_ratio = 0.3
shear_coefficient = 0.85
block = 0
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 0.554256
Ay = 0.0
Az = 0.0
Iy = 0.0141889
Iz = 0.0141889
y_orientation = '0.0 1.0 0.0'
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[]
[Postprocessors]
[./disp_x]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_x
[../]
[./disp_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_z
[../]
[]
[Outputs]
exodus = true
[]
test/tests/controls/time_periods/nodalkernels/nodal.i
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Variables]
[./u]
[../]
[./nodal_ode]
[../]
[]
[Kernels]
[./diff]
type = CoefDiffusion
variable = u
coef = 0.1
[../]
[./time]
type = TimeDerivative
variable = u
[../]
[]
[NodalKernels]
[./td]
type = TimeDerivativeNodalKernel
variable = nodal_ode
[../]
[./constant_rate]
type = ConstantRate
variable = nodal_ode
rate = 1.0
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = u
boundary = left
value = 0
[../]
[./right]
type = DirichletBC
variable = u
boundary = right
value = 1
[../]
[]
[Executioner]
type = Transient
num_steps = 10
dt = 0.1
[]
[Controls]
[./time_period]
type = TimePeriod
enable_objects = '*::constant_rate'
start_time = 0.5
end_time = 1
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/static/euler_pipe_axial_force.i
# Test for small strain Euler beam axial loading in x direction.
# Modeling a pipe with an OD of 10 inches and ID of 8 inches
# The length of the pipe is 5 feet (60 inches) and E = 30e6
# G = 11.5384615385e6 with nu = 0.3
# The applied axial load is 50000 lb which results in a
# displacement of 3.537e-3 inches at the end
# delta = PL/AE = 50000 * 60 / pi (5^2 - 4^2) * 30e6 = 3.537e-3
# In this analysis the applied force is used as a BC
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 60.0
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_z]
order = FIRST
family = LAGRANGE
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_x2]
type = ConstantRate
variable = disp_x
boundary = right
rate = 50000.0
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dt = 1
dtmin = 1
end_time = 2
[]
[Kernels]
[./solid_disp_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 0
variable = disp_x
[../]
[./solid_disp_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 1
variable = disp_y
[../]
[./solid_disp_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 2
variable = disp_z
[../]
[./solid_rot_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 3
variable = rot_x
[../]
[./solid_rot_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 4
variable = rot_y
[../]
[./solid_rot_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 5
variable = rot_z
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
shear_coefficient = 1.0
youngs_modulus = 30e6
poissons_ratio = 0.3
block = 0
outputs = exodus
output_properties = 'material_stiffness material_flexure'
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 28.274
Ay = 0.0
Az = 0.0
Iy = 1.0
Iz = 1.0
y_orientation = '0.0 1.0 0.0'
[../]
[./stress]
type = ComputeBeamResultants
block = 0
outputs = exodus
output_properties = 'forces moments'
[../]
[]
[Postprocessors]
[./disp_x]
type = PointValue
point = '60.0 0.0 0.0'
variable = disp_x
[../]
[./disp_y]
type = PointValue
point = '60.0 0.0 0.0'
variable = disp_y
[../]
[./forces_x]
type = PointValue
point = '60.0 0.0 0.0'
variable = forces_x
[../]
[]
[Outputs]
csv = true
exodus = true
[]
modules/tensor_mechanics/test/tests/shell/static/plate_bending.i
# Test for simply supported plate under uniform pressure
# One quarter of a 50 m x 50 m x 1m plate is modeled in this test.
# Pressure loading is applied on the top surface using nodal forces
# of magnitude -10 N on all nodes. This corresponds to a pressure (q) of
# -10.816 N/m^2.
# The FEM solution at (0,0), which is at the center of the full plate
# is -2.997084e-03 m.
# The analytical solution for displacement at center of plate obtained
# using a thin plate assumption for a square plate is
# w = 16 q a^4/(D*pi^6) \sum_{m = 1,3,5, ..}^\inf \sum_{n = 1,3,5, ..}^\inf (-1)^{(m+n-2)/2}/(mn*(m^2+n^2)^2)
# The above solution is the Navier's series solution from the "Theory of plates
# and shells" by Timoshenko and Woinowsky-Krieger (1959).
# where a = 50 m, q = -10.816 N/m^2 and D = E/(12(1-v^2))
# The analytical series solution converges to 2.998535904e-03 m
# when the first 16 terms of the series are considered (i.e., until
# m & n = 7).
# The resulting relative error between FEM and analytical solution is
# 0.048%.
[Mesh]
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 25
ny = 25
xmin = 0.0
xmax = 25.0
ymin = 0.0
ymax = 25.0
[../]
[./allnodes]
type = BoundingBoxNodeSetGenerator
input = gmg
bottom_left = '0.0 0.0 0.0'
top_right = '25.0 25.0 0.0'
new_boundary = 101
[../]
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[]
[BCs]
[./symm_left_rot]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./symm_bottom_rot]
type = DirichletBC
variable = rot_x
boundary = bottom
value = 0.0
[../]
[./simply_support_x]
type = DirichletBC
variable = disp_x
boundary = 'right top bottom left'
value = 0.0
[../]
[./simply_support_y]
type = DirichletBC
variable = disp_y
boundary = 'right top bottom left'
value = 0.0
[../]
[./simply_support_z]
type = DirichletBC
variable = disp_z
boundary = 'right top'
value = 0.0
[../]
[]
[NodalKernels]
[./force_y2]
type = ConstantRate
variable = disp_z
boundary = 101
rate = -10.0
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dt = 1.0
dtmin = 1.0
end_time = 1.0
[]
[Kernels]
[./solid_disp_x]
type = ADStressDivergenceShell
block = '0'
component = 0
variable = disp_x
through_thickness_order = SECOND
[../]
[./solid_disp_y]
type = ADStressDivergenceShell
block = '0'
component = 1
variable = disp_y
through_thickness_order = SECOND
[../]
[./solid_disp_z]
type = ADStressDivergenceShell
block = '0'
component = 2
variable = disp_z
through_thickness_order = SECOND
[../]
[./solid_rot_x]
type = ADStressDivergenceShell
block = '0'
component = 3
variable = rot_x
through_thickness_order = SECOND
[../]
[./solid_rot_y]
type = ADStressDivergenceShell
block = '0'
component = 4
variable = rot_y
through_thickness_order = SECOND
[../]
[]
[Materials]
[./elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 1e9
poissons_ratio = 0.3
block = 0
through_thickness_order = SECOND
[../]
[./strain]
type = ADComputeIncrementalShellStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 1.0
through_thickness_order = SECOND
[../]
[./stress]
type = ADComputeShellStress
block = 0
through_thickness_order = SECOND
[../]
[]
[Postprocessors]
[./disp_z2]
type = PointValue
point = '0.0 0.0 0.0'
variable = disp_z
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/action/2_block.i
# Test for LineElementAction on multiple blocks
# 2 beams of length 1m are fixed at one end and a force of 1e-4 N
# is applied at the other end of the beams. Beam 1 is in block 1
# and beam 2 is in block 2. All the material properties for the two
# beams are identical. The moment of inertia of beam 2 is twice that
# of beam 1.
# Since the end displacement of a cantilever beam is inversely proportional
# to the moment of inertia, the y displacement at the end of beam 1 should be twice
# that of beam 2.
[Mesh]
type = FileMesh
file = 2_beam_block.e
displacements = 'disp_x disp_y disp_z'
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = 1
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = 1
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = 1
value = 0.0
[../]
[]
[NodalKernels]
[./force_1]
type = ConstantRate
variable = disp_y
boundary = 2
rate = 1e-4
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dt = 1
dtmin = 1
end_time = 2
[]
[Modules/TensorMechanics/LineElementMaster]
[./block_1]
add_variables = true
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# Geometry parameters
area = 0.5
Iy = 1e-5
Iz = 1e-5
y_orientation = '0.0 1.0 0.0'
block = 1
[../]
[./block_2]
add_variables = true
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# Geometry parameters
area = 0.5
Iy = 2e-5
Iz = 2e-5
y_orientation = '0.0 1.0 0.0'
block = 2
[../]
[]
[Materials]
[./stress]
type = ComputeBeamResultants
block = '1 2'
[../]
[./elasticity_1]
type = ComputeElasticityBeam
youngs_modulus = 2.0
poissons_ratio = 0.3
shear_coefficient = 1.0
block = '1 2'
[../]
[]
[Postprocessors]
[./disp_y_1]
type = PointValue
point = '1.0 0.0 0.0'
variable = disp_y
[../]
[./disp_y_2]
type = PointValue
point = '1.0 1.0 0.0'
variable = disp_y
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/shell/static/plate_bending2.i
# Shell element verification test from Abaqus verification manual 1.3.13
# A 40 m x 20 m x 1 m plate that has E = 1000 Pa and Poisson's ratio = 0.3
# is subjected to the following boundary/loading conditions. A single shell
# element is used to model the plate.
# disp_z = 0 at vertices A (0, 0), B (40, 0) and D (20, 0).
# disp_x and disp_y are zero at all four vertices.
# F_z = -2.0 N at vertex C (40, 20).
# M_x = 20.0 Nm at vertices A and B (bottom boundary)
# M_x = -20.0 Nm at vertices C and D (top boundary)
# M_y = 10.0 Nm at vertices B and C (right boundary)
# M_y = -10.0 Nm at vertices A and D (left boundary)
# The disp_z at vertex C is -12.54 m using S4 elements in Abaqus.
# The solution obtained using Moose is -12.519 m with a relative error
# of 0.16%.
[Mesh]
[./gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 1
ny = 1
xmin = 0.0
xmax = 40.0
ymin = 0.0
ymax = 20.0
[../]
[./c_node]
type = ExtraNodesetGenerator
input = gmg
new_boundary = 100
coord = '40.0 20.0'
[../]
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[]
[BCs]
[./simply_support_x]
type = DirichletBC
variable = disp_x
boundary = 'right top bottom left'
value = 0.0
[../]
[./simply_support_y]
type = DirichletBC
variable = disp_y
boundary = 'right top bottom left'
value = 0.0
[../]
[./simply_support_z]
type = DirichletBC
variable = disp_z
boundary = 'bottom left'
value = 0.0
[../]
[]
[NodalKernels]
[./force_C]
type = ConstantRate
variable = disp_z
boundary = 100
rate = -2.0
[../]
[./Mx_AB]
type = ConstantRate
variable = rot_x
boundary = bottom
rate = 20.0
[../]
[./Mx_CD]
type = ConstantRate
variable = rot_x
boundary = top
rate = -20.0
[../]
[./My_BC]
type = ConstantRate
variable = rot_y
boundary = right
rate = 10.0
[../]
[./My_AD]
type = ConstantRate
variable = rot_y
boundary = left
rate = -10.0
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
#nl_max_its = 2
nl_rel_tol = 1e-10
nl_abs_tol = 6e-6
dt = 1.0
dtmin = 1.0
end_time = 3
[]
[Kernels]
[./solid_disp_x]
type = ADStressDivergenceShell
block = '0'
component = 0
variable = disp_x
through_thickness_order = SECOND
[../]
[./solid_disp_y]
type = ADStressDivergenceShell
block = '0'
component = 1
variable = disp_y
through_thickness_order = SECOND
[../]
[./solid_disp_z]
type = ADStressDivergenceShell
block = '0'
component = 2
variable = disp_z
through_thickness_order = SECOND
[../]
[./solid_rot_x]
type = ADStressDivergenceShell
block = '0'
component = 3
variable = rot_x
through_thickness_order = SECOND
[../]
[./solid_rot_y]
type = ADStressDivergenceShell
block = '0'
component = 4
variable = rot_y
through_thickness_order = SECOND
[../]
[]
[Materials]
[./elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 1e3
poissons_ratio = 0.3
block = 0
through_thickness_order = SECOND
[../]
[./strain]
type = ADComputeIncrementalShellStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 1.0
through_thickness_order = SECOND
[../]
[./stress]
type = ADComputeShellStress
block = 0
through_thickness_order = SECOND
[../]
[]
[Postprocessors]
[./disp_z2]
type = PointValue
point = '40.0 20.0 0.0'
variable = disp_z
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/static/torsion_1.i
# Torsion test with automatically calculated Ix
# A beam of length 1 m is fixed at one end and a moment of 5 Nm
# is applied along the axis of the beam.
# G = 7.69e9
# Ix = Iy + Iz = 2e-5
# The axial twist at the free end of the beam is:
# phi = TL/GIx = 3.25e-4
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 1.0
displacements = 'disp_x disp_y disp_z'
[]
[Modules/TensorMechanics/LineElementMaster]
[./block_all]
add_variables = true
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# Geometry parameters
area = 0.5
Iy = 1e-5
Iz = 1e-5
y_orientation = '0.0 1.0 0.0'
block = 0
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_y2]
type = ConstantRate
variable = rot_x
boundary = right
rate = 5.0
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dt = 1
dtmin = 1
end_time = 2
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 2.0e9
poissons_ratio = 0.3
shear_coefficient = 1.0
block = 0
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[]
[Postprocessors]
[./disp_x]
type = PointValue
point = '1.0 0.0 0.0'
variable = rot_x
[../]
[]
[Outputs]
csv = true
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/static/euler_small_strain_y_action.i
# Test for small strain Euler beam bending in y direction
# A unit load is applied at the end of a cantilever beam of length 4m.
# The properties of the cantilever beam are as follows:
# Young's modulus (E) = 2.60072400269
# Shear modulus (G) = 1.0e4
# Poissons ratio (nu) = -0.9998699638
# Shear coefficient (k) = 0.85
# Cross-section area (A) = 0.554256
# Iy = 0.0141889 = Iz
# Length = 4 m
# For this beam, the dimensionless parameter alpha = kAGL^2/EI = 2.04e6
# The small deformation analytical deflection of the beam is given by
# delta = PL^3/3EI * (1 + 3.0 / alpha) = PL^3/3EI = 578 m
# Using 10 elements to discretize the beam element, the FEM solution is 576.866 m.
# The ratio beam FEM solution and analytical solution is 0.998.
# References:
# Prathap and Bashyam (1982), International journal for numerical methods in engineering, vol. 18, 195-210.
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 4.0
displacements = 'disp_x disp_y disp_z'
[]
[Modules/TensorMechanics/LineElementMaster]
[./all]
add_variables = true
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# Geometry parameters
area = 0.554256
Ay = 0.0
Az = 0.0
Iy = 0.0141889
Iz = 0.0141889
y_orientation = '0.0 1.0 0.0'
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 2.60072400269
poissons_ratio = -0.9998699638
shear_coefficient = 0.85
block = 0
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_y2]
type = ConstantRate
variable = disp_y
boundary = right
rate = 1.0e-4
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 1
dtmin = 1
end_time = 2
[]
[Postprocessors]
[./disp_x]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_x
[../]
[./disp_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_y
[../]
[]
[Outputs]
file_base = 'euler_small_strain_y_out'
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/static/euler_small_strain_z.i
# Test for small strain Euler beam bending in z direction
# A unit load is applied at the end of a cantilever beam of length 4m.
# The properties of the cantilever beam are as follows:
# Young's modulus (E) = 2.60072400269
# Shear modulus (G) = 1.0e4
# Poisson's ratio (nu) = -0.9998699638
# Shear coefficient (k) = 0.85
# Cross-section area (A) = 0.554256
# Iy = 0.0141889 = Iz
# Length = 4 m
# For this beam, the dimensionless parameter alpha = kAGL^2/EI = 2.04e6
# The small deformation analytical deflection of the beam is given by
# delta = PL^3/3EI * (1 + 3.0 / alpha) = PL^3/3EI = 5.78e-2 m
# Using 10 elements to discretize the beam element, the FEM solution is 5.766e-2 m.
# The ratio beam FEM solution and analytical solution is 0.998.
# References:
# Prathap and Bhashyam (1982), International journal for numerical methods in engineering, vol. 18, 195-210.
# Note that the force is scaled by 1e-4 compared to the reference problem.
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 4.0
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_z]
order = FIRST
family = LAGRANGE
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_z2]
type = ConstantRate
variable = disp_z
boundary = right
rate = 1.0e-4
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 1
dtmin = 1
end_time = 2
[]
[Kernels]
[./solid_disp_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 0
variable = disp_x
[../]
[./solid_disp_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 1
variable = disp_y
[../]
[./solid_disp_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 2
variable = disp_z
[../]
[./solid_rot_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 3
variable = rot_x
[../]
[./solid_rot_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 4
variable = rot_y
[../]
[./solid_rot_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 5
variable = rot_z
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 2.60072400269
poissons_ratio = -0.9998699638
shear_coefficient = 0.85
block = 0
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 0.554256
Ay = 0.0
Az = 0.0
Iy = 0.0141889
Iz = 0.0141889
y_orientation = '0.0 1.0 0.0'
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[]
[Postprocessors]
[./disp_x]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_x
[../]
[./disp_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_z
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/action/beam_action_chk.i
# Test for checking syntax for line element action input.
[Mesh]
type = GeneratedMesh
dim = 1
nx = 1
xmin = 0.0
xmax = 1.0
displacements = 'disp_x disp_y disp_z'
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_1]
type = ConstantRate
variable = disp_y
boundary = 2
rate = 1e-2
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = PJFNK
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-8
dt = 1
dtmin = 1
end_time = 2
[]
[Modules/TensorMechanics/LineElementMaster]
[./block_1]
add_variables = true
# Geometry parameters
Iy = 0.0141889
Iz = 0.0141889
y_orientation = '0.0 1.0 0.0'
block = 1
# dynamic simulation using consistent mass/inertia matrix
dynamic_consistent_inertia=true
#dynamic simulation using nodal mass/inertia matrix
dynamic_nodal_translational_inertia = true
dynamic_nodal_rotational_inertia = true
nodal_Iyy = 1e-1
nodal_Izz = 1e-1
velocities = 'vel_x'
accelerations = 'accel_x'
rotational_accelerations = 'rot_accel_x'
gamma = 0.5 # Newmark time integration parameter
boundary = right # Node set where nodal mass and nodal inertia are applied
# optional parameters for Rayleigh damping
eta = 0.1 # Mass proportional Rayleigh damping
[../]
[./block_all]
add_variables = true
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
# Geometry parameters
area = 0.554256
Iy = 0.0141889
Iz = 0.0141889
y_orientation = '0.0 1.0 0.0'
[../]
[]
[Materials]
[./stress]
type = ComputeBeamResultants
block = '1 2'
[../]
[./elasticity_1]
type = ComputeElasticityBeam
youngs_modulus = 2.0
poissons_ratio = 0.3
shear_coefficient = 1.0
block = '1 2'
[../]
[]
[Postprocessors]
[./disp_y_1]
type = PointValue
point = '1.0 0.0 0.0'
variable = disp_y
[../]
[./disp_y_2]
type = PointValue
point = '1.0 1.0 0.0'
variable = disp_y
[../]
[]
[Outputs]
exodus = false
[]
modules/tensor_mechanics/test/tests/shell/static/beam_bending_moment_AD.i
# Test that models bending of a cantilever beam using shell elements
# A cantilever beam of length 10 m (in Y direction) and cross-section
# 1 m x 0.1 m is modeled using 4 shell elements placed along the length
# (Figure 6a from Dvorkin and Bathe, 1984). All displacements and
# X rotations are fixed on the bottom boundary. E = 2100000 and v = 0.0.
# A load of 0.5 N (in the Z direction) is applied at each node on the top
# boundary resulting in a total load of 1 N.
# The analytical solution for displacement at tip using small strain/rotations # is PL^3/3EI + PL/AG = 1.90485714 m
# The FEM solution using 4 shell elements is 1.875095 m with a relative error
# of 1.5%.
# Similarly, the analytical solution for slope at tip is PL^2/2EI = 0.285714286
# The FEM solution is 0.2857143 and the relative error is 5e-6%.
# The stress_yy for the four elements at z = -0.57735 * (t/2) (first qp below mid-surface of shell) are:
# 3031.089 Pa, 2165.064 Pa, 1299.038 Pa and 433.0127 Pa.
# Note the above values are the average stresses in each element.
# Analytically, stress_yy decreases linearly from y = 0 to y = 10 m.
# The maximum value of stress_yy at y = 0 is Mz/I = PL * 0.57735*(t/2)/I = 3464.1 Pa
# Therefore, the analytical value of stress at z = -0.57735 * (t/2) at the mid-point
# of the four elements are:
# 3031.0875 Pa, 2165.0625 Pa, 1299.0375 Pa ,433.0125 Pa
# The relative error in stress_yy is in the order of 5e-5%.
# The stress_yz at z = -0.57735 * (t/2) at all four elements from the simulation is 10 Pa.
# The analytical solution for the shear stress is: V/2/I *((t^2)/4 - z^2), where the shear force (V)
# is 1 N at any y along the length of the beam. Therefore, the analytical shear stress at
# z = -0.57735 * (t/2) is 10 Pa at any location along the length of the beam.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 1
ny = 4
xmin = 0.0
xmax = 1.0
ymin = 0.0
ymax = 10.0
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxVariables]
[./stress_yy]
order = CONSTANT
family = MONOMIAL
[../]
[./stress_yz]
order = CONSTANT
family = MONOMIAL
[../]
[]
[AuxKernels]
[./stress_yy]
type = RankTwoAux
variable = stress_yy
rank_two_tensor = global_stress_t_points_0
index_i = 1
index_j = 1
[../]
[./stress_yz]
type = RankTwoAux
variable = stress_yz
rank_two_tensor = global_stress_t_points_0
index_i = 1
index_j = 2
[../]
[]
[BCs]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = 'bottom'
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = 'bottom'
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = 'bottom'
value = 0.0
[../]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = 'bottom'
value = 0.0
[../]
[]
[NodalKernels]
[./force_y2]
type = ConstantRate
variable = disp_z
boundary = 'top'
rate = 0.5
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
nl_max_its = 2
nl_rel_tol = 1e-10
nl_abs_tol = 5e-4
dt = 1
dtmin = 1
end_time = 1
[]
[Kernels]
[./solid_disp_x]
type = ADStressDivergenceShell
block = '0'
component = 0
variable = disp_x
through_thickness_order = SECOND
[../]
[./solid_disp_y]
type = ADStressDivergenceShell
block = '0'
component = 1
variable = disp_y
through_thickness_order = SECOND
[../]
[./solid_disp_z]
type = ADStressDivergenceShell
block = '0'
component = 2
variable = disp_z
through_thickness_order = SECOND
[../]
[./solid_rot_x]
type = ADStressDivergenceShell
block = '0'
component = 3
variable = rot_x
through_thickness_order = SECOND
[../]
[./solid_rot_y]
type = ADStressDivergenceShell
block = '0'
component = 4
variable = rot_y
through_thickness_order = SECOND
[../]
[]
[Materials]
[./elasticity]
type = ADComputeIsotropicElasticityTensorShell
youngs_modulus = 2100000
poissons_ratio = 0.0
block = 0
through_thickness_order = SECOND
[../]
[./strain]
type = ADComputeIncrementalShellStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y'
thickness = 0.1
through_thickness_order = SECOND
[../]
[./stress]
type = ADComputeShellStress
block = 0
through_thickness_order = SECOND
[../]
[]
[Postprocessors]
[./disp_z_tip]
type = PointValue
point = '1.0 10.0 0.0'
variable = disp_z
[../]
[./rot_x_tip]
type = PointValue
point = '0.0 10.0 0.0'
variable = rot_x
[../]
[./stress_yy_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_yy
[../]
[./stress_yy_el_1]
type = ElementalVariableValue
elementid = 1
variable = stress_yy
[../]
[./stress_yy_el_2]
type = ElementalVariableValue
elementid = 2
variable = stress_yy
[../]
[./stress_yy_el_3]
type = ElementalVariableValue
elementid = 3
variable = stress_yy
[../]
[./stress_yz_el_0]
type = ElementalVariableValue
elementid = 0
variable = stress_yz
[../]
[./stress_yz_el_1]
type = ElementalVariableValue
elementid = 1
variable = stress_yz
[../]
[./stress_yz_el_2]
type = ElementalVariableValue
elementid = 2
variable = stress_yz
[../]
[./stress_yz_el_3]
type = ElementalVariableValue
elementid = 3
variable = stress_yz
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/beam/static/euler_small_strain_y.i
# Test for small strain Euler beam bending in y direction
# A unit load is applied at the end of a cantilever beam of length 4m.
# The properties of the cantilever beam are as follows:
# Young's modulus (E) = 2.60072400269
# Shear modulus (G) = 1.0e4
# Poisson's ratio (nu) = -0.9998699638
# Shear coefficient (k) = 0.85
# Cross-section area (A) = 0.554256
# Iy = 0.0141889 = Iz
# Length = 4 m
# For this beam, the dimensionless parameter alpha = kAGL^2/EI = 2.04e6
# The small deformation analytical deflection of the beam is given by
# delta = PL^3/3EI * (1 + 3.0 / alpha) = PL^3/3EI = 5.78e-2 m
# Using 10 elements to discretize the beam element, the FEM solution is 5.766e-2 m.
# The ratio beam FEM solution and analytical solution is 0.998.
# References:
# Prathap and Bhashyam (1982), International journal for numerical methods in engineering, vol. 18, 195-210.
# Note that the force is scaled by 1e-4 compared to the reference problem.
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 4.0
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_z]
order = FIRST
family = LAGRANGE
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_y2]
type = ConstantRate
variable = disp_y
boundary = right
rate = 1.0e-4
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 1
dtmin = 1
end_time = 2
[]
[Kernels]
[./solid_disp_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 0
variable = disp_x
[../]
[./solid_disp_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 1
variable = disp_y
[../]
[./solid_disp_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 2
variable = disp_z
[../]
[./solid_rot_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 3
variable = rot_x
[../]
[./solid_rot_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 4
variable = rot_y
[../]
[./solid_rot_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 5
variable = rot_z
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 2.60072400269
poissons_ratio = -0.9998699638
shear_coefficient = 0.85
block = 0
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 0.554256
Ay = 0.0
Az = 0.0
Iy = 0.0141889
Iz = 0.0141889
y_orientation = '0.0 1.0 0.0'
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[]
[Postprocessors]
[./disp_x]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_x
[../]
[./disp_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_y
[../]
[]
[Outputs]
exodus = true
[]
modules/tensor_mechanics/test/tests/critical_time_step/timoshenko_smallstrain_critstep.i
# Test for small strain timoshenko beam bending in y direction
# A unit load is applied at the end of a cantilever beam of length 4m.
# The properties of the cantilever beam are as follows:
# Young's modulus (E) = 2.60072400269
# Shear modulus (G) = 1.00027846257
# Poisson's ratio (nu) = 0.3
# Shear coefficient (k) = 0.85
# Cross-section area (A) = 0.554256
# Iy = 0.0141889 = Iz
# Length = 4 m
# For this beam, the dimensionless parameter alpha = kAGL^2/EI = 204.3734
# The small deformation analytical deflection of the beam is given by
# delta = PL^3/3EI * (1 + 3.0 / alpha) = 5.868e-4 m
# Using 10 elements to discretize the beam element, the FEM solution is 5.852e-2m.
# This deflection matches the FEM solution given in Prathap and Bhashyam (1982).
# References:
# Prathap and Bhashyam (1982), International journal for numerical methods in engineering, vol. 18, 195-210.
# Note that the force is scaled by 1e-4 compared to the reference problem.
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmin = 0.0
xmax = 4.0
displacements = 'disp_x disp_y disp_z'
[]
[Variables]
[./disp_x]
order = FIRST
family = LAGRANGE
[../]
[./disp_y]
order = FIRST
family = LAGRANGE
[../]
[./disp_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_z]
order = FIRST
family = LAGRANGE
[../]
[]
[BCs]
[./fixx1]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./fixy1]
type = DirichletBC
variable = disp_y
boundary = left
value = 0.0
[../]
[./fixz1]
type = DirichletBC
variable = disp_z
boundary = left
value = 0.0
[../]
[./fixr1]
type = DirichletBC
variable = rot_x
boundary = left
value = 0.0
[../]
[./fixr2]
type = DirichletBC
variable = rot_y
boundary = left
value = 0.0
[../]
[./fixr3]
type = DirichletBC
variable = rot_z
boundary = left
value = 0.0
[../]
[]
[NodalKernels]
[./force_y2]
type = ConstantRate
variable = disp_y
boundary = right
rate = 1.0e-4
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_max_its = 15
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
dt = 1
dtmin = 1
end_time = 1
[]
[Kernels]
[./solid_disp_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 0
variable = disp_x
[../]
[./solid_disp_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 1
variable = disp_y
[../]
[./solid_disp_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 2
variable = disp_z
[../]
[./solid_rot_x]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 3
variable = rot_x
[../]
[./solid_rot_y]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 4
variable = rot_y
[../]
[./solid_rot_z]
type = StressDivergenceBeam
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
component = 5
variable = rot_z
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 2.60072400269
poissons_ratio = 0.3
shear_coefficient = 0.85
block = 0
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 0.554256
Ay = 0.0
Az = 0.0
Iy = 0.0141889
Iz = 0.0141889
y_orientation = '0.0 1.0 0.0'
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[./density]
type = GenericConstantMaterial
prop_names = 'density'
prop_values = '8050.0'
[../]
[]
[Postprocessors]
[./disp_x]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_x
[../]
[./disp_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = disp_y
[../]
[./time_step]
type = CriticalTimeStep
[../]
[]
[Outputs]
exodus = true
csv = true
[]