# Line Element Action System

Sets up variables, stress divergence kernels and materials required for a static analysis with beam or truss elements. Also sets up aux variables, aux kernels, and consistent or nodal inertia kernels for dynamic analysis with beam elements.

## Description

The LineElement Action is a convenience object that simplifies part of the mechanics/dynamics system setup for beam or truss elements.

## Truss Elements: Constructed MooseObjects

The LineElement Action can be used to construct the kernels, strain materials, and displacement variables for a simulation using Truss Elements.

note:Set the Truss Parameter

A truss element is chosen by setting truss = true in the input block.

Table 1: Correspondence Among Action Functionality and MooseObjects for the LineElement Action used in a Truss Elements Simulation

FunctionalityReplaced ClassesAssociated Parameters
Create truss elements(none)truss = true
Add the displacement variablesVariablesadd_variables: boolean
Calculation of stress divergence for a Truss elementStressDivergenceTensorsTrussdisplacements : a string of the displacement variables

## Example Input Syntax (Truss Elements)

[Modules/TensorMechanics/LineElementMaster]
[./block]
truss = true
displacements = 'disp_x disp_y disp_z'

area = area

block = '1 2'

save_in = 'react_x react_y react_z'
[../]
[]

(modules/tensor_mechanics/test/tests/truss/truss_3d_action.i)

## Beam Elements: Constructed MooseObjects

By default, the LineElement Action sets up the kernels, strain materials, displacement and rotation variables, and auxkernels for a simulation using Beam Elements. It also sets the boolean use_displaced_mesh in a consistent manner for the kernels, nodalkernels, and materials.

Table 2: Correspondence Among Action Functionality and MooseObjects for the LineElement Action used in a Beam Elements Simulation

FunctionalityReplaced ClassesAssociated Parameters
Add the displacement and rotation variablesVariablesadd_variables: boolean
Calculation of stress divergence for a Beam elementStressDivergenceBeamdisplacements : a string of the displacement variables
rotations: a string of the rotation variables
Calculation of strainComputeIncrementalBeamStrain or ComputeFiniteBeamStrainstrain_type: small or large strain formulation
rotation_type: small or large rotation formulation
Calculation of inertial forces and moments with consistent mass / inertia matricesInertialForceBeamdynamic_consistent_inertia: boolean
Calculation of inertial forces using nodal massNodalTranslationalInertiadynamic_nodal_translational_inertia: boolean
Calculation of inertial moments using nodal moment of inertia matrixNodalRotationalInertiadynamic_nodal_rotational_inertia: boolean
Calculation of translational and rotational velocitiesNewmarkVelAuxdynamic_consistent_inertia or dynamic_nodal_translational_inertia or dynamic_nodal_rotational_inertia or add_dynamic_variables
Calculation of translational and rotational accelerationsNewmarkAccelAuxdynamic_consistent_inertia or dynamic_nodal_translational_inertia or dynamic_nodal_rotational_inertia or add_dynamic_variables

## Example Input Syntax (Beam Elements)

[Modules/TensorMechanics/LineElementMaster]
# parameters common to all blocks

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
[../]
[]

(modules/tensor_mechanics/test/tests/beam/action/2_block_common.i)

### Subblocks

The subblocks of the LineElement action are what trigger MOOSE objects to be built. If none of the mechanics is subdomain restricted a single subblock should be used, yet if different mechanics models are needed, multiple subblocks with subdomain restrictions can be used.

Parameters supplied at the [Modules/TensorMechanics/LineElementMaster] level act as defaults for all the subblocks within that LineElement block.

## Input Parameters

• velocitiesTranslational velocity variables

C++ Type:std::vector

Options:

Description:Translational velocity variables

• save_inThe displacement and rotational residuals

C++ Type:std::vector

Options:

Description:The displacement and rotational residuals

• densityName of Material Property or a constant real number defining the density of the beam.

C++ Type:MaterialPropertyName

Options:

Description:Name of Material Property or a constant real number defining the density of the beam.

• add_dynamic_variablesFalseAdds translational and rotational velocity and acceleration aux variables and sets up the corresponding AuxKernels for calculating these variables using Newmark time integration. When dynamic_consistent_inertia, dynamic_nodal_rotational_inertia or dynamic_nodal_translational_inertia are set to true, these variables are automatically set up.

Default:False

C++ Type:bool

Options:

Description:Adds translational and rotational velocity and acceleration aux variables and sets up the corresponding AuxKernels for calculating these variables using Newmark time integration. When dynamic_consistent_inertia, dynamic_nodal_rotational_inertia or dynamic_nodal_translational_inertia are set to true, these variables are automatically set up.

• dynamic_nodal_translational_inertiaFalseIf set to true, nodal mass matrix is used for the inertial force calculation.

Default:False

C++ Type:bool

Options:

Description:If set to true, nodal mass matrix is used for the inertial force calculation.

• add_variablesFalseAdd the displacement variables for truss elements and both diplacement and rotation variables for beam elements.

Default:False

C++ Type:bool

Options:

Description:Add the displacement variables for truss elements and both diplacement and rotation variables for beam elements.

• inactiveIf specified blocks matching these identifiers will be skipped.

C++ Type:std::vector

Options:

Description:If specified blocks matching these identifiers will be skipped.

• zeta0Name of material property or a constant real number defining the zeta parameter for stiffness proportional Rayleigh damping.

Default:0

C++ Type:MaterialPropertyName

Options:

Description:Name of material property or a constant real number defining the zeta parameter for stiffness proportional Rayleigh damping.

• rotational_accelerationsRotational acceleration variables

C++ Type:std::vector

Options:

Description:Rotational acceleration variables

• trussFalseSet to true if the line elements are truss elements instead of the default beam elements.

Default:False

C++ Type:bool

Options:

Description:Set to true if the line elements are truss elements instead of the default beam elements.

• nodal_massMass associated with the node

C++ Type:double

Options:

Description:Mass associated with the node

• y_orientationOrientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam.

C++ Type:libMesh::VectorValue

Options:

Description:Orientation of the y direction along which Iyy is provided. This should be perpendicular to the axis of the beam.

• nodal_Iyz0Nodal moment of inertia in the yz direction.

Default:0

C++ Type:double

Options:

Description:Nodal moment of inertia in the yz direction.

• eigenstrain_namesList of beam eigenstrains to be applied in this strain calculation.

C++ Type:std::vector

Options:

Description:List of beam eigenstrains to be applied in this strain calculation.

• nodal_IyyNodal moment of inertia in the y direction.

C++ Type:double

Options:

Description:Nodal moment of inertia in the y direction.

• use_displaced_meshFalseWhether to use displaced mesh in the kernels

Default:False

C++ Type:bool

Options:

Description:Whether to use displaced mesh in the kernels

• dynamic_consistent_inertiaFalseIf set to true, consistent mass and inertia matrices are used for the inertial force/torque calculations.

Default:False

C++ Type:bool

Options:

Description:If set to true, consistent mass and inertia matrices are used for the inertial force/torque calculations.

• nodal_mass_fileThe file containing the nodal positions and the corresponding nodal masses.

C++ Type:FileName

Options:

Description:The file containing the nodal positions and the corresponding nodal masses.

• nodal_y_orientationUnit vector along the y direction if different from global y direction.

C++ Type:libMesh::VectorValue

Options:

Description:Unit vector along the y direction if different from global y direction.

• boundaryThe list of boundary IDs from the mesh where the nodal mass/inertia will be applied.

C++ Type:std::vector

Options:

Description:The list of boundary IDs from the mesh where the nodal mass/inertia will be applied.

• displacementsThe nonlinear displacement variables for the problem

C++ Type:std::vector

Options:

Description:The nonlinear displacement variables for the problem

• nodal_Ixy0Nodal moment of inertia in the xy direction.

Default:0

C++ Type:double

Options:

Description:Nodal moment of inertia in the xy direction.

• nodal_IxxNodal moment of inertia in the x direction.

C++ Type:double

Options:

Description:Nodal moment of inertia in the x direction.

• rotationsThe rotations appropriate for the simulation geometry and coordinate system

C++ Type:std::vector

Options:

Description:The rotations appropriate for the simulation geometry and coordinate system

• rotation_typeSMALLRotation formulation

Default:SMALL

C++ Type:MooseEnum

Options:SMALL FINITE

Description:Rotation formulation

• rotational_velocitiesRotational velocity variables

C++ Type:std::vector

Options:

Description:Rotational velocity variables

• nodal_x_orientationUnit vector along the x direction if different from global x direction.

C++ Type:libMesh::VectorValue

Options:

Description:Unit vector along the x direction if different from global x direction.

• betabeta parameter for Newmark Time integration

C++ Type:double

Options:

Description:beta parameter for Newmark Time integration

• nodal_Ixz0Nodal moment of inertia in the xz direction.

Default:0

C++ Type:double

Options:

Description:Nodal moment of inertia in the xz direction.

• active__all__ If specified only the blocks named will be visited and made active

Default:__all__

C++ Type:std::vector

Options:

Description:If specified only the blocks named will be visited and made active

• 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

• dynamic_nodal_rotational_inertiaFalseIf set to true, nodal inertia matrix is used for the inertial torque calculation.

Default:False

C++ Type:bool

Options:

Description:If set to true, nodal inertia matrix is used for the inertial torque calculation.

• IySecond moment of area of the beam about y axis. Can be supplied as either a number or a variable name.

C++ Type:std::vector

Options:

Description:Second moment of area of the beam about y axis. Can be supplied as either a number or a variable name.

• IxSecond moment of area of the beam about x axis. Can be supplied as either a number or a variable name.

C++ Type:std::vector

Options:

Description:Second moment of area of the beam about x axis. Can be supplied as either a number or a variable name.

• IzSecond moment of area of the beam about z axis. Can be supplied as either a number or a variable name.

C++ Type:std::vector

Options:

Description:Second moment of area of the beam about z axis. Can be supplied as either a number or a variable name.

• nodal_IzzNodal moment of inertia in the z direction.

C++ Type:double

Options:

Description:Nodal moment of inertia in the z direction.

• areaCross-section area of the beam. Can be supplied as either a number or a variable name.

C++ Type:std::vector

Options:

Description:Cross-section area of the beam. Can be supplied as either a number or a variable name.

• strain_typeSMALLStrain formulation

Default:SMALL

C++ Type:MooseEnum

Options:SMALL FINITE

Description:Strain formulation

• eta0Name of material property or a constant real number defining the eta parameter for mass proportional Rayleigh damping.

Default:0

C++ Type:MaterialPropertyName

Options:

Description:Name of material property or a constant real number defining the eta parameter for mass proportional Rayleigh damping.

• diag_save_inThe displacement and rotational diagonal preconditioner terms

C++ Type:std::vector

Options:

Description:The displacement and rotational diagonal preconditioner terms

• AyFirst moment of area of the beam about y axis. Can be supplied as either a number or a variable name.

C++ Type:std::vector

Options:

Description:First moment of area of the beam about y axis. Can be supplied as either a number or a variable name.

• accelerationsTranslational acceleration variables

C++ Type:std::vector

Options:

Description:Translational acceleration variables

• AzFirst moment of area of the beam about z asix. Can be supplied as either a number or a variable name.

C++ Type:std::vector

Options:

Description:First moment of area of the beam about z asix. Can be supplied as either a number or a variable name.

• gammagamma parameter for Newmark Time integration

C++ Type:double

Options:

Description:gamma parameter for Newmark Time integration

### Optional Parameters

• blockThe list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to

C++ Type:std::vector

Options:

Description:The list of ids of the blocks (subdomain) that the stress divergence, inertia kernels and materials will be applied to