- IyVariable containing second moment of area about y axis
C++ Type:std::vector
Description:Variable containing second moment of area about y axis
- IzVariable containing second moment of area about z axis
C++ Type:std::vector
Description:Variable containing second moment of area about z axis
- areaVariable containing cross-section area
C++ Type:std::vector
Description:Variable containing cross-section area
- rotationsThe rotational variables appropriate for the simulation geometry and coordinate system
C++ Type:std::vector
Description:The rotational variables appropriate for the simulation geometry and coordinate system
- componentAn integer corresponding to the direction the variable this kernel acts in. (0 for disp_x, 1 for disp_y, 2 for disp_z, 3 for rot_x, 4 for rot_y and 5 for rot_z)
C++ Type:unsigned int
Description:An integer corresponding to the direction the variable this kernel acts in. (0 for disp_x, 1 for disp_y, 2 for disp_z, 3 for rot_x, 4 for rot_y and 5 for rot_z)
- variableThe name of the variable that this Kernel operates on
C++ Type:NonlinearVariableName
Description:The name of the variable that this Kernel operates on
- displacementsThe displacement variables appropriate for the simulation geometry and coordinate system
C++ Type:std::vector
Description:The displacement variables appropriate for the simulation geometry and coordinate system
Inertial Force Beam
Calculates the residual for the interial force/moment and the contribution of mass dependent Rayleigh damping and HHT time integration scheme.
Description
This class computes the component of the inertial force/torque and mass/inertia proportional Rayleigh damping for the beam element due to mass/rotational inertia. Please look at C0TimoshenkoBeam for details.
Input Parameters
- IxVariable containing second moment of area about x axis. Defaults to Iy+Iz
C++ Type:std::vector
Options:
Description:Variable containing second moment of area about x axis. Defaults to Iy+Iz
- AzVariable containing first moment of area about z axis
C++ Type:std::vector
Options:
Description:Variable containing first moment of area about z axis
- densitydensityName of Material Property or a constant real number defining the density of the beam.
Default:density
C++ Type:MaterialPropertyName
Options:
Description:Name of Material Property or a constant real number defining the density of the beam.
- velocitiesTranslational velocity variables
C++ Type:std::vector
Options:
Description:Translational velocity variables
- rotational_velocitiesRotational velocity variables
C++ Type:std::vector
Options:
Description:Rotational velocity variables
- betabeta parameter for Newmark Time integration
C++ Type:double
Options:
Description:beta parameter for Newmark Time integration
- eta0Name of material property or a constant real number defining the eta parameter for the Rayleigh damping.
Default:0
C++ Type:MaterialPropertyName
Options:
Description:Name of material property or a constant real number defining the eta parameter for the Rayleigh damping.
- 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
- AyVariable containing first moment of area about y axis
C++ Type:std::vector
Options:
Description:Variable containing first moment of area about y axis
- alpha0Alpha parameter for mass dependent numerical damping induced by HHT time integration scheme
Default:0
C++ Type:double
Options:
Description:Alpha parameter for mass dependent numerical damping induced by HHT time integration scheme
- accelerationsTranslational acceleration variables
C++ Type:std::vector
Options:
Description:Translational acceleration variables
- rotational_accelerationsRotational acceleration variables
C++ Type:std::vector
Options:
Description:Rotational acceleration variables
- gammagamma parameter for Newmark Time integration
C++ Type:double
Options:
Description:gamma parameter for Newmark Time integration
Optional Parameters
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Options:
Description:Set the enabled status of the MooseObject.
- save_inThe name of auxiliary variables to save this Kernel'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 Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- use_displaced_meshTrueWhether 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:True
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.
- 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.
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Options:
Description:The seed for the master random number generator
- diag_save_inThe name of auxiliary variables to save this Kernel'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 Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- 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
Advanced Parameters
- vector_tagstimeThe tag for the vectors this Kernel should fill
Default:time
C++ Type:MultiMooseEnum
Options:nontime time
Description:The tag for the vectors 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_tagssystem timeThe tag for the matrices this Kernel should fill
Default:system time
C++ Type:MultiMooseEnum
Options:nontime system time
Description:The tag for the matrices this Kernel should fill
- 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
Tagging Parameters
Input Files
- modules/tensor_mechanics/test/tests/beam/dynamic/dyn_euler_small_rayleigh_hht.i
- modules/tensor_mechanics/test/tests/beam/dynamic/dyn_timoshenko_small.i
- modules/tensor_mechanics/test/tests/beam/dynamic/dyn_euler_small_rayleigh_hht_ti.i
- modules/tensor_mechanics/test/tests/beam/dynamic/dyn_euler_small.i
modules/tensor_mechanics/test/tests/beam/dynamic/dyn_euler_small_rayleigh_hht.i
# Test for damped small strain euler beam vibration in y direction
# An impulse 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) = 1e4
# Shear modulus (G) = 4e7
# Shear coefficient (k) = 1.0
# Cross-section area (A) = 0.01
# Iy = 1e-4 = Iz
# Length (L)= 4 m
# density (rho) = 1.0
# mass proportional rayleigh damping(eta) = 0.1
# stiffness proportional rayleigh damping(eta) = 0.1
# HHT time integration parameter (alpha) = -0.3
# Corresponding Newmark beta time integration parameters beta = 0.4225 and gamma = 0.8
# For this beam, the dimensionless parameter alpha = kAGL^2/EI = 6.4e6
# Therefore, the behaves like a Euler-Bernoulli beam.
# The displacement time history from this analysis matches with that obtained from Abaqus.
# Values from the first few time steps are as follows:
# time disp_y vel_y accel_y
# 0.0 0.0 0.0 0.0
# 0.2 0.019898364318588 0.18838688112273 1.1774180070171
# 0.4 0.045577003505278 0.087329917525455 -0.92596052423724
# 0.6 0.063767907208218 0.084330765885995 0.21274543331268
# 0.8 0.073602908614573 0.020029576220975 -0.45506879373455
# 1.0 0.06841704414745 -0.071840076837194 -0.46041813317992
[Mesh]
type = GeneratedMesh
nx = 10
dim = 1
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
[../]
[]
[AuxVariables]
[./vel_x]
order = FIRST
family = LAGRANGE
[../]
[./vel_y]
order = FIRST
family = LAGRANGE
[../]
[./vel_z]
order = FIRST
family = LAGRANGE
[../]
[./accel_x]
order = FIRST
family = LAGRANGE
[../]
[./accel_y]
order = FIRST
family = LAGRANGE
[../]
[./accel_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.4225
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.8
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.4225
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.8
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.4225
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.8
execute_on = timestep_end
[../]
[./rot_accel_x]
type = NewmarkAccelAux
variable = rot_accel_x
displacement = rot_x
velocity = rot_vel_x
beta = 0.4225
execute_on = timestep_end
[../]
[./rot_vel_x]
type = NewmarkVelAux
variable = rot_vel_x
acceleration = rot_accel_x
gamma = 0.8
execute_on = timestep_end
[../]
[./rot_accel_y]
type = NewmarkAccelAux
variable = rot_accel_y
displacement = rot_y
velocity = rot_vel_y
beta = 0.4225
execute_on = timestep_end
[../]
[./rot_vel_y]
type = NewmarkVelAux
variable = rot_vel_y
acceleration = rot_accel_y
gamma = 0.8
execute_on = timestep_end
[../]
[./rot_accel_z]
type = NewmarkAccelAux
variable = rot_accel_z
displacement = rot_z
velocity = rot_vel_z
beta = 0.4225
execute_on = timestep_end
[../]
[./rot_vel_z]
type = NewmarkVelAux
variable = rot_vel_z
acceleration = rot_accel_z
gamma = 0.8
execute_on = timestep_end
[../]
[]
[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 = UserForcingFunctionNodalKernel
variable = disp_y
boundary = right
function = force
[../]
[]
[Functions]
[./force]
type = PiecewiseLinear
x = '0.0 0.2 0.4 10.0'
y = '0.0 0.01 0.0 0.0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
l_tol = 1e-8
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
start_time = 0.0
dt = 0.2
end_time = 5.0
timestep_tolerance = 1e-6
[]
[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
zeta = 0.1
alpha = -0.3
[../]
[./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
zeta = 0.1
alpha = -0.3
[../]
[./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
zeta = 0.1
alpha = -0.3
[../]
[./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
zeta = 0.1
alpha = -0.3
[../]
[./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
zeta = 0.1
alpha = -0.3
[../]
[./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
zeta = 0.1
alpha = -0.3
[../]
[./inertial_force_x]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.4225
gamma = 0.8
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 0
variable = disp_x
alpha = -0.3
[../]
[./inertial_force_y]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.4225
gamma = 0.8
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 1
variable = disp_y
alpha = -0.3
[../]
[./inertial_force_z]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.4225
gamma = 0.8
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 2
variable = disp_z
alpha = -0.3
[../]
[./inertial_force_rot_x]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.4225
gamma = 0.8
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 3
variable = rot_x
alpha = -0.3
[../]
[./inertial_force_rot_y]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.4225
gamma = 0.8
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 4
variable = rot_y
alpha = -0.3
[../]
[./inertial_force_rot_z]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.4225
gamma = 0.8
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 5
variable = rot_z
alpha = -0.3
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 1.0e4
poissons_ratio = -0.999875
shear_coefficient = 1.0
block = 0
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 0.01
Ay = 0.0
Az = 0.0
Iy = 1.0e-4
Iz = 1.0e-4
y_orientation = '0.0 1.0 0.0'
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = 'density'
prop_values = '1.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
[../]
[./vel_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = vel_y
[../]
[./accel_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = accel_y
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = true
[]
modules/tensor_mechanics/test/tests/beam/dynamic/dyn_timoshenko_small.i
# Test for small strain Timoshenko beam vibration in y direction
# An impulse 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) = 2e4
# Shear modulus (G) = 1e4
# Shear coefficient (k) = 1.0
# Cross-section area (A) = 1.0
# Iy = 1.0 = Iz
# Length (L)= 4 m
# density (rho) = 1.0
# For this beam, the dimensionless parameter alpha = kAGL^2/EI = 8
# Therefore, the beam behaves like a Timoshenko beam.
# The FEM solution for this beam with 100 elements give first natural period of 0.2731s with a time step of 0.005.
# The acceleration, velocity and displacement time histories obtained from MOOSE matches with those obtained from ABAQUS.
# Values from the first few time steps are as follows:
# time disp_y vel_y accel_y
# 0.0 0.0 0.0 0.0
# 0.005 2.5473249455812e-05 0.010189299782325 4.0757199129299
# 0.01 5.3012872677486e-05 0.00082654950634483 -7.8208200233219
# 0.015 5.8611622914354e-05 0.0014129505884026 8.055380456145
# 0.02 6.766113649781e-05 0.0022068548449798 -7.7378187535141
# 0.025 7.8981810558437e-05 0.0023214147792709 7.7836427272305
# Note that the theoretical first frequency of the beam using Euler-Bernoulli theory is:
# f1 = 1/(2 pi) * (3.5156/L^2) * sqrt(EI/rho) = 4.9455
# This implies that the corresponding time period of this beam (under Euler-Bernoulli assumption) is 0.2022s.
# This shows that Euler-Bernoulli beam theory under-predicts the time period of a thick beam. In other words, the Euler-Bernoulli beam theory predicts a more compliant beam than reality for a thick beam.
[Mesh]
type = GeneratedMesh
xmin = 0
xmax = 4.0
nx = 100
dim = 1
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
[../]
[]
[AuxVariables]
[./vel_x]
order = FIRST
family = LAGRANGE
[../]
[./vel_y]
order = FIRST
family = LAGRANGE
[../]
[./vel_z]
order = FIRST
family = LAGRANGE
[../]
[./accel_x]
order = FIRST
family = LAGRANGE
[../]
[./accel_y]
order = FIRST
family = LAGRANGE
[../]
[./accel_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./rot_accel_x]
type = NewmarkAccelAux
variable = rot_accel_x
displacement = rot_x
velocity = rot_vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./rot_vel_x]
type = NewmarkVelAux
variable = rot_vel_x
acceleration = rot_accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./rot_accel_y]
type = NewmarkAccelAux
variable = rot_accel_y
displacement = rot_y
velocity = rot_vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./rot_vel_y]
type = NewmarkVelAux
variable = rot_vel_y
acceleration = rot_accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./rot_accel_z]
type = NewmarkAccelAux
variable = rot_accel_z
displacement = rot_z
velocity = rot_vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./rot_vel_z]
type = NewmarkVelAux
variable = rot_vel_z
acceleration = rot_accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[]
[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 = UserForcingFunctionNodalKernel
variable = disp_y
boundary = right
function = force
[../]
[]
[Functions]
[./force]
type = PiecewiseLinear
x = '0.0 0.005 0.01 1.0'
y = '0.0 1.0 0.0 0.0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
start_time = 0.0
dt = 0.005
end_time = 0.5
timestep_tolerance = 1e-6
[]
[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
[../]
[./inertial_force_x]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 1.0
Iy = 1.0
Iz = 1.0
Ay = 0.0
Az = 0.0
component = 0
variable = disp_x
[../]
[./inertial_force_y]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 1.0
Iy = 1.0
Iz = 1.0
Ay = 0.0
Az = 0.0
component = 1
variable = disp_y
[../]
[./inertial_force_z]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 1.0
Iy = 1.0
Iz = 1.0
Ay = 0.0
Az = 0.0
component = 2
variable = disp_z
[../]
[./inertial_force_rot_x]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 1.0
Iy = 1.0
Iz = 1.0
Ay = 0.0
Az = 0.0
component = 3
variable = rot_x
[../]
[./inertial_force_rot_y]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 1.0
Iy = 1.0
Iz = 1.0
Ay = 0.0
Az = 0.0
component = 4
variable = rot_y
[../]
[./inertial_force_rot_z]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 1.0
Iy = 1.0
Iz = 1.0
Ay = 0.0
Az = 0.0
component = 5
variable = rot_z
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 2e4
poissons_ratio = 0.0
shear_coefficient = 1.0
block = 0
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 1.0
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
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = 'density'
prop_values = '1.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
[../]
[./vel_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = vel_y
[../]
[./accel_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = accel_y
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = true
[]
modules/tensor_mechanics/test/tests/beam/dynamic/dyn_euler_small_rayleigh_hht_ti.i
# Test for damped small strain euler beam vibration in y direction
# An impulse 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) = 1e4
# Shear modulus (G) = 4e7
# Shear coefficient (k) = 1.0
# Cross-section area (A) = 0.01
# Iy = 1e-4 = Iz
# Length (L)= 4 m
# density (rho) = 1.0
# mass proportional rayleigh damping(eta) = 0.1
# stiffness proportional rayleigh damping(eta) = 0.1
# HHT time integration parameter (alpha) = -0.3
# Corresponding Newmark beta time integration parameters beta = 0.4225 and gamma = 0.8
# For this beam, the dimensionless parameter alpha = kAGL^2/EI = 6.4e6
# Therefore, the behaves like a Euler-Bernoulli beam.
# The displacement time history from this analysis matches with that obtained from Abaqus.
# Values from the first few time steps are as follows:
# time disp_y vel_y accel_y
# 0.0 0.0 0.0 0.0
# 0.2 0.019898364318588 0.18838688112273 1.1774180070171
# 0.4 0.045577003505278 0.087329917525455 -0.92596052423724
# 0.6 0.063767907208218 0.084330765885995 0.21274543331268
# 0.8 0.073602908614573 0.020029576220975 -0.45506879373455
# 1.0 0.06841704414745 -0.071840076837194 -0.46041813317992
[Mesh]
type = GeneratedMesh
nx = 10
dim = 1
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
[../]
[]
[AuxVariables]
[./vel_x]
order = FIRST
family = LAGRANGE
[../]
[./vel_y]
order = FIRST
family = LAGRANGE
[../]
[./vel_z]
order = FIRST
family = LAGRANGE
[../]
[./accel_x]
order = FIRST
family = LAGRANGE
[../]
[./accel_y]
order = FIRST
family = LAGRANGE
[../]
[./accel_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./accel_x] # These auxkernels are only to check output
type = TestNewmarkTI
displacement = disp_x
variable = accel_x
first = false
[../]
[./accel_y]
type = TestNewmarkTI
displacement = disp_y
variable = accel_y
first = false
[../]
[./accel_z]
type = TestNewmarkTI
displacement = disp_z
variable = accel_z
first = false
[../]
[./vel_x]
type = TestNewmarkTI
displacement = disp_x
variable = vel_x
[../]
[./vel_y]
type = TestNewmarkTI
displacement = disp_y
variable = vel_y
[../]
[./vel_z]
type = TestNewmarkTI
displacement = disp_z
variable = vel_z
[../]
[./rot_accel_x]
type = TestNewmarkTI
displacement = rot_x
variable = rot_accel_x
first = false
[../]
[./rot_accel_y]
type = TestNewmarkTI
displacement = rot_y
variable = rot_accel_y
first = false
[../]
[./rot_accel_z]
type = TestNewmarkTI
displacement = rot_z
variable = rot_accel_z
first = false
[../]
[./rot_vel_x]
type = TestNewmarkTI
displacement = rot_x
variable = rot_vel_x
[../]
[./rot_vel_y]
type = TestNewmarkTI
displacement = rot_y
variable = rot_vel_y
[../]
[./rot_vel_z]
type = TestNewmarkTI
displacement = rot_z
variable = rot_vel_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_y2]
type = UserForcingFunctionNodalKernel
variable = disp_y
boundary = right
function = force
[../]
[]
[Functions]
[./force]
type = PiecewiseLinear
x = '0.0 0.2 0.4 10.0'
y = '0.0 0.01 0.0 0.0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
l_tol = 1e-8
nl_max_its = 15
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
start_time = 0.0
dt = 0.2
end_time = 5.0
timestep_tolerance = 1e-6
# Time integrator
[./TimeIntegrator]
type = NewmarkBeta
beta = 0.4225
gamma = 0.8
[../]
[]
[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
zeta = 0.1
alpha = -0.3
[../]
[./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
zeta = 0.1
alpha = -0.3
[../]
[./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
zeta = 0.1
alpha = -0.3
[../]
[./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
zeta = 0.1
alpha = -0.3
[../]
[./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
zeta = 0.1
alpha = -0.3
[../]
[./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
zeta = 0.1
alpha = -0.3
[../]
[./inertial_force_x]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 0
variable = disp_x
alpha = -0.3
[../]
[./inertial_force_y]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 1
variable = disp_y
alpha = -0.3
[../]
[./inertial_force_z]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 2
variable = disp_z
alpha = -0.3
[../]
[./inertial_force_rot_x]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 3
variable = rot_x
alpha = -0.3
[../]
[./inertial_force_rot_y]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 4
variable = rot_y
alpha = -0.3
[../]
[./inertial_force_rot_z]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
eta = 0.1
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 5
variable = rot_z
alpha = -0.3
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 1.0e4
poissons_ratio = -0.999875
shear_coefficient = 1.0
block = 0
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 0.01
Ay = 0.0
Az = 0.0
Iy = 1.0e-4
Iz = 1.0e-4
y_orientation = '0.0 1.0 0.0'
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = 'density'
prop_values = '1.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
[../]
[./vel_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = vel_y
[../]
[./accel_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = accel_y
[../]
[]
[Outputs]
file_base = 'dyn_euler_small_rayleigh_hht_out'
exodus = true
csv = true
perf_graph = true
[]
modules/tensor_mechanics/test/tests/beam/dynamic/dyn_euler_small.i
# Test for small strain euler beam vibration in y direction
# An impulse 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) = 1e4
# Shear modulus (G) = 4e7
# Shear coefficient (k) = 1.0
# Cross-section area (A) = 0.01
# Iy = 1e-4 = Iz
# Length (L)= 4 m
# density (rho) = 1.0
# For this beam, the dimensionless parameter alpha = kAGL^2/EI = 6.4e6
# Therefore, the beam behaves like a Euler-Bernoulli beam.
# The theoretical first and third frequencies of this beam are:
# f1 = 1/(2 pi) * (3.5156/L^2) * sqrt(EI/rho)
# f2 = 6.268 f1
# This implies that the corresponding time period of this beam are 2.858 s and 0.455s
# The FEM solution for this beam with 10 element gives time periods of 2.856 s and 0.4505s with a time step of 0.01.
# A smaller time step is required to obtain a closer match for the lower time periods/higher frequencies.
# A higher time step of 0.05 is used in this test to reduce testing time.
# The time history from this analysis matches with that obtained from Abaqus.
# Values from the first few time steps are as follows:
# time disp_y vel_y accel_y
# 0 0.0 0.0 0.0
# 0.05 0.0016523559162602 0.066094236650407 2.6437694660163
# 0.1 0.0051691308901533 0.07457676230532 -2.3044684398197
# 0.15 0.0078956772343372 0.03448509146203 4.7008016060883
# 0.2 0.0096592517031463 0.03605788729033 -0.63788977295649
# 0.25 0.011069233444348 0.020341382357756 0.0092295756535376
[Mesh]
type = GeneratedMesh
xmin = 0.0
xmax = 4.0
dim = 1
nx = 10
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
[../]
[]
[AuxVariables]
[./vel_x]
order = FIRST
family = LAGRANGE
[../]
[./vel_y]
order = FIRST
family = LAGRANGE
[../]
[./vel_z]
order = FIRST
family = LAGRANGE
[../]
[./accel_x]
order = FIRST
family = LAGRANGE
[../]
[./accel_y]
order = FIRST
family = LAGRANGE
[../]
[./accel_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_vel_z]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_x]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_y]
order = FIRST
family = LAGRANGE
[../]
[./rot_accel_z]
order = FIRST
family = LAGRANGE
[../]
[]
[AuxKernels]
[./accel_x]
type = NewmarkAccelAux
variable = accel_x
displacement = disp_x
velocity = vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./vel_x]
type = NewmarkVelAux
variable = vel_x
acceleration = accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_y]
type = NewmarkAccelAux
variable = accel_y
displacement = disp_y
velocity = vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./vel_y]
type = NewmarkVelAux
variable = vel_y
acceleration = accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./accel_z]
type = NewmarkAccelAux
variable = accel_z
displacement = disp_z
velocity = vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./vel_z]
type = NewmarkVelAux
variable = vel_z
acceleration = accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[./rot_accel_x]
type = NewmarkAccelAux
variable = rot_accel_x
displacement = rot_x
velocity = rot_vel_x
beta = 0.25
execute_on = timestep_end
[../]
[./rot_vel_x]
type = NewmarkVelAux
variable = rot_vel_x
acceleration = rot_accel_x
gamma = 0.5
execute_on = timestep_end
[../]
[./rot_accel_y]
type = NewmarkAccelAux
variable = rot_accel_y
displacement = rot_y
velocity = rot_vel_y
beta = 0.25
execute_on = timestep_end
[../]
[./rot_vel_y]
type = NewmarkVelAux
variable = rot_vel_y
acceleration = rot_accel_y
gamma = 0.5
execute_on = timestep_end
[../]
[./rot_accel_z]
type = NewmarkAccelAux
variable = rot_accel_z
displacement = rot_z
velocity = rot_vel_z
beta = 0.25
execute_on = timestep_end
[../]
[./rot_vel_z]
type = NewmarkVelAux
variable = rot_vel_z
acceleration = rot_accel_z
gamma = 0.5
execute_on = timestep_end
[../]
[]
[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 = UserForcingFunctionNodalKernel
variable = disp_y
boundary = right
function = force
[../]
[]
[Functions]
[./force]
type = PiecewiseLinear
x = '0.0 0.05 0.1 10.0'
y = '0.0 0.01 0.0 0.0'
[../]
[]
[Preconditioning]
[./smp]
type = SMP
full = true
[../]
[]
[Executioner]
type = Transient
solve_type = NEWTON
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
start_time = 0.0
dt = 0.05
end_time = 5.0
timestep_tolerance = 1e-6
[]
[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
[../]
[./inertial_force_x]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 0
variable = disp_x
[../]
[./inertial_force_y]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 1
variable = disp_y
[../]
[./inertial_force_z]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 2
variable = disp_z
[../]
[./inertial_force_rot_x]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 3
variable = rot_x
[../]
[./inertial_force_rot_y]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 4
variable = rot_y
[../]
[./inertial_force_rot_z]
type = InertialForceBeam
block = 0
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
velocities = 'vel_x vel_y vel_z'
accelerations = 'accel_x accel_y accel_z'
rotational_velocities = 'rot_vel_x rot_vel_y rot_vel_z'
rotational_accelerations = 'rot_accel_x rot_accel_y rot_accel_z'
beta = 0.25
gamma = 0.5
area = 0.01
Iy = 1e-4
Iz = 1e-4
Ay = 0.0
Az = 0.0
component = 5
variable = rot_z
[../]
[]
[Materials]
[./elasticity]
type = ComputeElasticityBeam
youngs_modulus = 1.0e4
poissons_ratio = -0.999875
shear_coefficient = 1.0
block = 0
[../]
[./strain]
type = ComputeIncrementalBeamStrain
block = '0'
displacements = 'disp_x disp_y disp_z'
rotations = 'rot_x rot_y rot_z'
area = 0.01
Ay = 0.0
Az = 0.0
Iy = 1.0e-4
Iz = 1.0e-4
y_orientation = '0.0 1.0 0.0'
[../]
[./stress]
type = ComputeBeamResultants
block = 0
[../]
[./density]
type = GenericConstantMaterial
block = 0
prop_names = 'density'
prop_values = '1.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
[../]
[./vel_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = vel_y
[../]
[./accel_y]
type = PointValue
point = '4.0 0.0 0.0'
variable = accel_y
[../]
[]
[Outputs]
exodus = true
csv = true
perf_graph = true
[]