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.

commentnote: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)

[Physics]
  [SolidMechanics]
    [LineElement]
      [QuasiStatic]
        [./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/solid_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)

[Physics]
  [SolidMechanics]
    [LineElement]
      [QuasiStatic]
        # 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/solid_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 [Physics/SolidMechanics/LineElement/QuasiStatic] level act as defaults for all the subblocks within that LineElement block.

Input Parameters

  • 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<VariableName>

    Controllable:No

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

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

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:First moment of area of the beam about z 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<VariableName>

    Controllable:No

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

  • 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<VariableName>

    Controllable:No

    Description:Second moment of area of the beam about y 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<VariableName>

    Controllable:No

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

  • accelerationsTranslational acceleration variables

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:Translational acceleration variables

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

    Default:__all__

    C++ Type:std::vector<std::string>

    Controllable:No

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

  • 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

    Controllable:No

    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.

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

    Default:False

    C++ Type:bool

    Controllable:No

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

  • alpha0alpha parameter for mass dependent numerical damping induced by HHT time integration scheme

    Default:0

    C++ Type:double

    Controllable:No

    Description:alpha parameter for mass dependent numerical damping induced by HHT time integration scheme

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

    C++ Type:std::vector<VariableName>

    Controllable:No

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

  • betabeta parameter for Newmark Time integration

    C++ Type:double

    Controllable:No

    Description:beta parameter for Newmark Time integration

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

    C++ Type:std::vector<BoundaryName>

    Controllable:No

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

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

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

    C++ Type:MaterialPropertyName

    Controllable:No

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

  • diag_save_inThe displacement and rotational diagonal preconditioner terms

    C++ Type:std::vector<AuxVariableName>

    Controllable:No

    Description:The displacement and rotational diagonal preconditioner terms

  • displacementsThe nonlinear displacement variables for the problem

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:The nonlinear displacement variables for the problem

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

    Default:False

    C++ Type:bool

    Controllable:No

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

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

    Default:False

    C++ Type:bool

    Controllable:No

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

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

    Default:False

    C++ Type:bool

    Controllable:No

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

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

    C++ Type:std::vector<MaterialPropertyName>

    Controllable:No

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

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

    Default:0

    C++ Type:MaterialPropertyName

    Controllable:No

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

  • gammagamma parameter for Newmark Time integration

    C++ Type:double

    Controllable:No

    Description:gamma parameter for Newmark Time integration

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector<std::string>

    Controllable:No

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

  • nodal_IxxNodal moment of inertia in the x direction.

    C++ Type:double

    Controllable:No

    Description:Nodal moment of inertia in the x direction.

  • nodal_Ixy0Nodal moment of inertia in the xy direction.

    Default:0

    C++ Type:double

    Controllable:No

    Description:Nodal moment of inertia in the xy direction.

  • nodal_Ixz0Nodal moment of inertia in the xz direction.

    Default:0

    C++ Type:double

    Controllable:No

    Description:Nodal moment of inertia in the xz direction.

  • nodal_IyyNodal moment of inertia in the y direction.

    C++ Type:double

    Controllable:No

    Description:Nodal moment of inertia in the y direction.

  • nodal_Iyz0Nodal moment of inertia in the yz direction.

    Default:0

    C++ Type:double

    Controllable:No

    Description:Nodal moment of inertia in the yz direction.

  • nodal_IzzNodal moment of inertia in the z direction.

    C++ Type:double

    Controllable:No

    Description:Nodal moment of inertia in the z direction.

  • nodal_massMass associated with the node

    C++ Type:double

    Controllable:No

    Description:Mass associated with the node

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

    C++ Type:FileName

    Controllable:No

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

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

    C++ Type:libMesh::VectorValue<double>

    Controllable:No

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

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

    C++ Type:libMesh::VectorValue<double>

    Controllable:No

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

  • rotation_typeSMALLRotation formulation

    Default:SMALL

    C++ Type:MooseEnum

    Options:SMALL, FINITE

    Controllable:No

    Description:Rotation formulation

  • rotational_accelerationsRotational acceleration variables

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:Rotational acceleration variables

  • rotational_velocitiesRotational velocity variables

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:Rotational velocity variables

  • rotationsThe rotations appropriate for the simulation geometry and coordinate system

    C++ Type:std::vector<VariableName>

    Controllable:No

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

  • save_inThe displacement and rotational residuals

    C++ Type:std::vector<AuxVariableName>

    Controllable:No

    Description:The displacement and rotational residuals

  • strain_typeSMALLStrain formulation

    Default:SMALL

    C++ Type:MooseEnum

    Options:SMALL, FINITE

    Controllable:No

    Description:Strain formulation

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

    Default:False

    C++ Type:bool

    Controllable:No

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

  • use_displaced_meshFalseWhether to use displaced mesh in the kernels

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to use displaced mesh in the kernels

  • velocitiesTranslational velocity variables

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:Translational velocity variables

  • 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<double>

    Controllable:No

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

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

    Default:0

    C++ Type:MaterialPropertyName

    Controllable:No

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

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<SubdomainName>

    Controllable:No

    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

  • Solid 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.