https://mooseframework.inl.gov
InertialForceBeam.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 "TimeKernel.h"
13 #include "Material.h"
14 #include "RankTwoTensor.h"
15 
16 // Forward Declarations
17 
19 {
20 public:
22 
24 
25  virtual void computeResidual() override;
26 
27  virtual void computeJacobian() override;
28 
29  virtual void computeOffDiagJacobian(unsigned int jvar) override;
30 
31 protected:
32  virtual Real computeQpResidual() override { return 0.0; };
33 
34 private:
36  const bool _has_beta;
37  const bool _has_gamma;
38  const bool _has_velocities;
39  const bool _has_rot_velocities;
40  const bool _has_accelerations;
42  const bool _has_Ix;
43 
46 
48  unsigned int _nrot;
49 
51  unsigned int _ndisp;
52 
54  std::vector<unsigned int> _rot_num;
55 
57  std::vector<unsigned int> _disp_num;
58 
60  std::vector<unsigned int> _vel_num;
61 
63  std::vector<unsigned int> _accel_num;
64 
66  std::vector<unsigned int> _rot_vel_num;
67 
69  std::vector<unsigned int> _rot_accel_num;
70 
73 
78  const VariableValue & _Ay;
79 
84  const VariableValue & _Az;
85 
90  const VariableValue & _Ix;
91 
96  const VariableValue & _Iy;
97 
103 
105  const Real _beta;
106 
108  const Real _gamma;
109 
112 
114  const Real _alpha;
115 
121 
124 
126  const unsigned int _component;
127 
133 
139 
145 
151 
157 
163 
168  std::vector<RealVectorValue> _local_force, _local_moment;
169 
175 
180 
185 };
RealVectorValue _local_vel_old_0
Old translational and rotational velocities at the two nodes of the beam in the initial beam local co...
RealVectorValue _accel_1
RealVectorValue _rot_vel_0
RealVectorValue _local_rot_vel_old_1
const bool _has_velocities
virtual void computeJacobian() override
const VariableValue * _du_dot_du
Coupled variable for du_dot_du calculated by time integrator.
static InputParameters validParams()
RealVectorValue _local_rot_vel_1
std::vector< RealVectorValue > _local_moment
RealVectorValue _local_vel_0
Current translational and rotational velocities at the two nodes of the beam in the initial beam loca...
unsigned int _nrot
Number of coupled rotational variables.
RealVectorValue _rot_accel_1
const Real _gamma
Newmark time integraion parameter.
std::vector< unsigned int > _accel_num
Variable numbers corresponding to acceleraion aux variables.
RealVectorValue _vel_0
Current translational and rotational velocities at the two nodes of the beam in the global coordinate...
const Real _beta
Newmark time integration parameter.
const MaterialProperty< RankTwoTensor > & _original_local_config
Rotational transformation from global to initial beam local coordinate system.
RealVectorValue _local_rot_vel_0
RealVectorValue _local_accel_1
InertialForceBeam(const InputParameters &parameters)
virtual void computeOffDiagJacobian(unsigned int jvar) override
unsigned int _ndisp
Number of coupled displacement variables.
const Real _alpha
HHT time integration parameter.
const VariableValue & _Iz
Coupled variable for second momemnt of area of beam in z direction, i.e., integral of z^2*dA over the...
RealVectorValue _local_rot_accel_0
RealVectorValue _local_rot_vel_old_0
const unsigned int _component
Direction along which residual is calculated.
std::vector< RealVectorValue > _local_force
Forces and moments at the two end nodes of the beam in the initial beam local configuration.
std::vector< unsigned int > _vel_num
Variable numbers corresponding to velocity aux variables.
const bool _has_accelerations
std::vector< unsigned int > _rot_accel_num
Variable numbers corresponding to rotational acceleration aux variables.
std::vector< unsigned int > _rot_vel_num
Variable numbers corresponding to rotational velocity aux variables.
RealVectorValue _rot_vel_1
const VariableValue & _Ix
Coupled variable for second moment of area of beam in x direction, i.e., integral of (y^2+z^2)*dA ove...
const VariableValue & _Ay
Coupled variable for first moment of area of beam in y direction, i.e., integral of y*dA over the cro...
const VariableValue & _area
Coupled variable for beam cross-sectional area.
RealVectorValue _vel_old_1
const MaterialProperty< Real > & _original_length
Initial length of beam.
const bool _has_rot_accelerations
RealVectorValue _rot_vel_old_0
RealVectorValue _global_moment_1
const VariableValue & _Iy
Coupled variable for second moment of area of beam in y direction, i.e., integral of y^2*dA over the ...
virtual Real computeQpResidual() override
OutputTools< Real >::VariableValue VariableValue
RealVectorValue _local_vel_1
RealVectorValue _rot_vel_old_1
RealVectorValue _vel_old_0
Old translational and rotational velocities at the two nodes of the beam in the global coordinate sys...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
RealVectorValue _global_force_0
Forces and moments at the two end nodes of the beam in the global coordinate system.
const bool _has_rot_velocities
const MaterialProperty< Real > & _density
Density of the beam.
RealVectorValue _accel_0
Current translational and rotational accelerations at the two nodes of the beam in the global coordin...
const bool _has_beta
Booleans for validity of params.
RealVectorValue _global_moment_0
const InputParameters & parameters() const
const MaterialProperty< Real > & _eta
Mass proportional Rayleigh damping parameter.
RealVectorValue _local_rot_accel_1
std::vector< unsigned int > _disp_num
Variable numbers corresponding to displacement variables.
const VariableValue & _Az
Coupled variable for first moment of area of beam in z direction, i.e., integral of z*dA over the cro...
RealVectorValue _local_vel_old_1
virtual void computeResidual() override
std::vector< unsigned int > _rot_num
Variable numbers corresponding to rotational variables.
const VariableValue * _du_dotdot_du
Coupled variable for du_dotdot_du calculated by time integrator.
RealVectorValue _vel_1
RealVectorValue _local_accel_0
Current translational and rotational accelerations at the two nodes of the beam in the initial beam l...
RealVectorValue _global_force_1
RealVectorValue _rot_accel_0