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
    add_variables = 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

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

Advanced Parameters

Associated Actions

Available Actions

  • Tensor Mechanics App
  • CommonLineElementActionSets 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.
  • LineElementActionSets 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.