www.mooseframework.org
LineElementAction.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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;
15 
16 template <>
17 InputParameters validParams<LineElementAction>();
18 
19 class LineElementAction : public Action
20 {
21 public:
22  static InputParameters validParams();
23 
24  LineElementAction(const InputParameters & params);
25 
26  virtual void act();
27 
29  static InputParameters beamParameters();
30 
31 protected:
37 
39  void actAddVariables();
40 
42  void actAddMaterials();
43 
48  void actAddKernels();
49 
54  void actAddAuxVariables();
55 
60  void actAddAuxKernels();
61 
66  void actAddNodalKernels();
67 
69  std::vector<VariableName> _displacements;
70 
72  unsigned int _ndisp;
73 
75  std::vector<VariableName> _rotations;
76 
81  std::vector<VariableName> _velocities;
82 
87  std::vector<VariableName> _accelerations;
88 
93  std::vector<VariableName> _rot_velocities;
94 
99  std::vector<VariableName> _rot_accelerations;
100 
102  std::vector<AuxVariableName> _save_in;
103  std::vector<AuxVariableName> _diag_save_in;
105 
110  std::vector<SubdomainName> _subdomain_names;
111 
113  std::set<SubdomainID> _subdomain_ids;
114 
119  std::set<SubdomainID> _subdomain_id_union;
120 
122  enum class Strain
123  {
124  SMALL,
125  FINITE
126  } _strain_type;
127 
129 
132 
139 
145 
151 
157 
159  bool _truss;
160 };
LineElementAction::_accelerations
std::vector< VariableName > _accelerations
Names of translational acceleration variables for dynamic simulation beam element.
Definition: LineElementAction.h:87
LineElementAction::Strain::FINITE
LineElementAction::_rot_velocities
std::vector< VariableName > _rot_velocities
Names of rotational velocity variables for dynamic simulation using beam element.
Definition: LineElementAction.h:93
LineElementAction::_rotation_type
Strain _rotation_type
Definition: LineElementAction.h:128
validParams< LineElementAction >
InputParameters validParams< LineElementAction >()
LineElementAction::_rot_accelerations
std::vector< VariableName > _rot_accelerations
Names of rotational acceleration variables for dynamic simulation beam element.
Definition: LineElementAction.h:99
LineElementAction::_dynamic_nodal_translational_inertia
bool _dynamic_nodal_translational_inertia
Set to true to use nodal mass matrix to calculate inertial forces in dynamic beam simulations.
Definition: LineElementAction.h:150
LineElementAction::actAddAuxVariables
void actAddAuxVariables()
Adds translational and rotational velocity and acceleration aux variables for dynamic beam simulation...
Definition: LineElementAction.C:622
LineElementAction::_add_dynamic_variables
bool _add_dynamic_variables
Set to true to set up translational and acceleration AuxVariables and the corresponding AuxKernels us...
Definition: LineElementAction.h:138
LineElementAction::actGatherActionParameters
void actGatherActionParameters()
Gather all the block ids from all the actions of this type to create variables spanning all the block...
Definition: LineElementAction.C:424
LineElementAction::LineElementAction
LineElementAction(const InputParameters &params)
Definition: LineElementAction.C:208
LineElementAction
Definition: LineElementAction.h:19
LineElementAction::Strain
Strain
strain formulation
Definition: LineElementAction.h:122
LineElementAction::_save_in
std::vector< AuxVariableName > _save_in
residual debugging
Definition: LineElementAction.h:102
LineElementAction::validParams
static InputParameters validParams()
Definition: LineElementAction.C:38
LineElementAction::_truss
bool _truss
Set to true if line element is a truss.
Definition: LineElementAction.h:159
LineElementAction::Strain::SMALL
LineElementAction::_velocities
std::vector< VariableName > _velocities
Names of translational velocity variables for dynamic simulation using beam element.
Definition: LineElementAction.h:81
LineElementAction::_diag_save_in
std::vector< AuxVariableName > _diag_save_in
Definition: LineElementAction.h:103
LineElementAction::_subdomain_ids
std::set< SubdomainID > _subdomain_ids
set generated from the passed in vector of subdomain names
Definition: LineElementAction.h:113
LineElementAction::beamParameters
static InputParameters beamParameters()
Add parameters required for a beam element.
Definition: LineElementAction.C:85
LineElementAction::_subdomain_id_union
std::set< SubdomainID > _subdomain_id_union
set generated from the combined block restrictions of all LineElementAction action blocks
Definition: LineElementAction.h:119
LineElementAction::_strain_type
enum LineElementAction::Strain _strain_type
LineElementAction::actAddNodalKernels
void actAddNodalKernels()
Adds nodal kernels that calculate inertial force/torque due to mass/inertia assigned to nodes of the ...
Definition: LineElementAction.C:701
LineElementAction::actAddMaterials
void actAddMaterials()
Adds material objects required for beam and truss elements.
Definition: LineElementAction.C:489
LineElementAction::_use_displaced_mesh
bool _use_displaced_mesh
use displaced mesh (true unless _strain is SMALL_STRAIN_AND_ROTATION)
Definition: LineElementAction.h:131
LineElementAction::actAddVariables
void actAddVariables()
Adds displacement and rotation variables.
Definition: LineElementAction.C:454
LineElementAction::_ndisp
unsigned int _ndisp
Number of displacement variables.
Definition: LineElementAction.h:72
LineElementAction::actAddAuxKernels
void actAddAuxKernels()
Adds auxkernels corresponding to the translational and rotational velocity and acceleration aux varia...
Definition: LineElementAction.C:646
LineElementAction::_dynamic_consistent_inertia
bool _dynamic_consistent_inertia
Set to true to use consistent mass and inertia matrices to calculate inertial forces/torques in dynam...
Definition: LineElementAction.h:144
LineElementAction::actAddKernels
void actAddKernels()
Adds StressDivergence kernels for beam and truss elements and inertia kernels for dynamic beam simula...
Definition: LineElementAction.C:520
LineElementAction::_displacements
std::vector< VariableName > _displacements
Names of displacement variables.
Definition: LineElementAction.h:69
LineElementAction::_dynamic_nodal_rotational_inertia
bool _dynamic_nodal_rotational_inertia
Set to true to use nodal inertia matrix to calculate inertial torques in dynamic beam simulations.
Definition: LineElementAction.h:156
LineElementAction::_rotations
std::vector< VariableName > _rotations
Names of rotational variables for beam element.
Definition: LineElementAction.h:75
LineElementAction::_subdomain_names
std::vector< SubdomainName > _subdomain_names
If this vector is not empty the variables, auxvariables, kernels, auxkernels, nodalkernels and materi...
Definition: LineElementAction.h:110
LineElementAction::act
virtual void act()
Definition: LineElementAction.C:364