https://mooseframework.inl.gov
LineElementAction.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "Action.h"
13 
14 class LineElementAction : public Action
15 {
16 public:
18 
19  LineElementAction(const InputParameters & params);
20 
21  virtual void act();
22 
25 
26 protected:
32 
34  void actAddVariables();
35 
37  void actAddMaterials();
38 
43  void actAddKernels();
44 
49  void actAddAuxVariables();
50 
55  void actAddAuxKernels();
56 
61  void actAddNodalKernels();
62 
64  std::vector<VariableName> _displacements;
65 
67  unsigned int _ndisp;
68 
70  std::vector<VariableName> _rotations;
71 
76  std::vector<VariableName> _velocities;
77 
82  std::vector<VariableName> _accelerations;
83 
88  std::vector<VariableName> _rot_velocities;
89 
94  std::vector<VariableName> _rot_accelerations;
95 
97  std::vector<AuxVariableName> _save_in;
98  std::vector<AuxVariableName> _diag_save_in;
100 
105  std::vector<SubdomainName> _subdomain_names;
106 
108  std::set<SubdomainID> _subdomain_ids;
109 
114  std::set<SubdomainID> _subdomain_id_union;
115 
117  enum class Strain
118  {
119  SMALL,
120  FINITE
121  } _strain_type;
122 
124 
127 
134 
140 
146 
152 
154  bool _truss;
155 };
unsigned int _ndisp
Number of displacement variables.
void actAddAuxKernels()
Adds auxkernels corresponding to the translational and rotational velocity and acceleration aux varia...
bool _dynamic_consistent_inertia
Set to true to use consistent mass and inertia matrices to calculate inertial forces/torques in dynam...
std::vector< VariableName > _rotations
Names of rotational variables for beam element.
std::vector< AuxVariableName > _save_in
residual debugging
std::vector< VariableName > _accelerations
Names of translational acceleration variables for dynamic simulation beam element.
std::vector< VariableName > _velocities
Names of translational velocity variables for dynamic simulation using beam element.
static InputParameters validParams()
std::vector< AuxVariableName > _diag_save_in
virtual void act()
bool _truss
Set to true if line element is a truss.
bool _add_dynamic_variables
Set to true to set up translational and acceleration AuxVariables and the corresponding AuxKernels us...
std::set< SubdomainID > _subdomain_ids
set generated from the passed in vector of subdomain names
void actGatherActionParameters()
Gather all the block ids from all the actions of this type to create variables spanning all the block...
enum LineElementAction::Strain _strain_type
std::set< SubdomainID > _subdomain_id_union
set generated from the combined block restrictions of all LineElementAction action blocks ...
void actAddMaterials()
Adds material objects required for beam and truss elements.
Strain
strain formulation
void actAddNodalKernels()
Adds nodal kernels that calculate inertial force/torque due to mass/inertia assigned to nodes of the ...
bool _use_displaced_mesh
use displaced mesh (true unless _strain is SMALL_STRAIN_AND_ROTATION)
std::vector< VariableName > _displacements
Names of displacement variables.
bool _dynamic_nodal_rotational_inertia
Set to true to use nodal inertia matrix to calculate inertial torques in dynamic beam simulations...
void actAddKernels()
Adds StressDivergence kernels for beam and truss elements and inertia kernels for dynamic beam simula...
static InputParameters beamParameters()
Add parameters required for a beam element.
void actAddVariables()
Adds displacement and rotation variables.
std::vector< SubdomainName > _subdomain_names
If this vector is not empty the variables, auxvariables, kernels, auxkernels, nodalkernels and materi...
std::vector< VariableName > _rot_velocities
Names of rotational velocity variables for dynamic simulation using beam element. ...
void actAddAuxVariables()
Adds translational and rotational velocity and acceleration aux variables for dynamic beam simulation...
bool _dynamic_nodal_translational_inertia
Set to true to use nodal mass matrix to calculate inertial forces in dynamic beam simulations...
std::vector< VariableName > _rot_accelerations
Names of rotational acceleration variables for dynamic simulation beam element.
LineElementAction(const InputParameters &params)