www.mooseframework.org
InertialForceBeam.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 "TimeKernel.h"
13 #include "Material.h"
14 #include "RankTwoTensor.h"
15 
16 // Forward Declarations
17 class InertialForceBeam;
18 
19 template <>
20 InputParameters validParams<InertialForceBeam>();
21 
22 class InertialForceBeam : public TimeKernel
23 {
24 public:
25  static InputParameters validParams();
26 
27  InertialForceBeam(const InputParameters & parameters);
28 
29  virtual void computeResidual() override;
30 
31  virtual void computeJacobian() override;
32 
33  virtual void computeOffDiagJacobian(MooseVariableFEBase & jvar) override;
34  using Kernel::computeOffDiagJacobian;
35 
36 protected:
37  virtual Real computeQpResidual() override { return 0.0; };
38 
39 private:
41  const bool _has_beta;
42  const bool _has_gamma;
43  const bool _has_velocities;
44  const bool _has_rot_velocities;
45  const bool _has_accelerations;
47  const bool _has_Ix;
48 
50  const MaterialProperty<Real> & _density;
51 
53  unsigned int _nrot;
54 
56  unsigned int _ndisp;
57 
59  std::vector<unsigned int> _rot_num;
60 
62  std::vector<unsigned int> _disp_num;
63 
65  std::vector<unsigned int> _vel_num;
66 
68  std::vector<unsigned int> _accel_num;
69 
71  std::vector<unsigned int> _rot_vel_num;
72 
74  std::vector<unsigned int> _rot_accel_num;
75 
77  const VariableValue & _area;
78 
83  const VariableValue & _Ay;
84 
89  const VariableValue & _Az;
90 
95  const VariableValue & _Ix;
96 
101  const VariableValue & _Iy;
102 
107  const VariableValue & _Iz;
108 
110  const Real _beta;
111 
113  const Real _gamma;
114 
116  const MaterialProperty<Real> & _eta;
117 
119  const Real _alpha;
120 
125  const MaterialProperty<RankTwoTensor> & _original_local_config;
126 
128  const MaterialProperty<Real> & _original_length;
129 
131  const unsigned int _component;
132 
138 
143  RealVectorValue _vel_0, _vel_1, _rot_vel_0, _rot_vel_1;
144 
150 
156 
162 
168 
173  std::vector<RealVectorValue> _local_force, _local_moment;
174 
180 
184  const VariableValue * _du_dot_du;
185 
189  const VariableValue * _du_dotdot_du;
190 };
InertialForceBeam::validParams
static InputParameters validParams()
Definition: InertialForceBeam.C:24
InertialForceBeam::_global_force_1
RealVectorValue _global_force_1
Definition: InertialForceBeam.h:179
InertialForceBeam::InertialForceBeam
InertialForceBeam(const InputParameters &parameters)
Definition: InertialForceBeam.C:75
InertialForceBeam::computeResidual
virtual void computeResidual() override
Definition: InertialForceBeam.C:165
InertialForceBeam::_ndisp
unsigned int _ndisp
Number of coupled displacement variables.
Definition: InertialForceBeam.h:56
InertialForceBeam::_has_velocities
const bool _has_velocities
Definition: InertialForceBeam.h:43
InertialForceBeam::_local_moment
std::vector< RealVectorValue > _local_moment
Definition: InertialForceBeam.h:173
InertialForceBeam::_local_vel_0
RealVectorValue _local_vel_0
Current translational and rotational velocities at the two nodes of the beam in the initial beam loca...
Definition: InertialForceBeam.h:161
InertialForceBeam::_local_accel_1
RealVectorValue _local_accel_1
Definition: InertialForceBeam.h:167
InertialForceBeam::_local_vel_old_0
RealVectorValue _local_vel_old_0
Old translational and rotational velocities at the two nodes of the beam in the initial beam local co...
Definition: InertialForceBeam.h:155
InertialForceBeam::_local_rot_vel_old_1
RealVectorValue _local_rot_vel_old_1
Definition: InertialForceBeam.h:155
InertialForceBeam::_rot_accel_1
RealVectorValue _rot_accel_1
Definition: InertialForceBeam.h:149
validParams< InertialForceBeam >
InputParameters validParams< InertialForceBeam >()
InertialForceBeam::_du_dot_du
const VariableValue * _du_dot_du
Coupled variable for du_dot_du calculated by time integrator.
Definition: InertialForceBeam.h:184
InertialForceBeam::_original_local_config
const MaterialProperty< RankTwoTensor > & _original_local_config
Rotational transformation from global to initial beam local coordinate system.
Definition: InertialForceBeam.h:125
InertialForceBeam::_local_rot_vel_1
RealVectorValue _local_rot_vel_1
Definition: InertialForceBeam.h:161
InertialForceBeam::_local_rot_vel_old_0
RealVectorValue _local_rot_vel_old_0
Definition: InertialForceBeam.h:155
InertialForceBeam::_local_force
std::vector< RealVectorValue > _local_force
Forces and moments at the two end nodes of the beam in the initial beam local configuration.
Definition: InertialForceBeam.h:173
InertialForceBeam::_gamma
const Real _gamma
Newmark time integraion parameter.
Definition: InertialForceBeam.h:113
InertialForceBeam::_vel_num
std::vector< unsigned int > _vel_num
Variable numbers corresponding to velocity aux variables.
Definition: InertialForceBeam.h:65
InertialForceBeam::_Iz
const VariableValue & _Iz
Coupled variable for second momemnt of area of beam in z direction, i.e., integral of z^2*dA over the...
Definition: InertialForceBeam.h:107
InertialForceBeam::_has_accelerations
const bool _has_accelerations
Definition: InertialForceBeam.h:45
InertialForceBeam::_Ix
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...
Definition: InertialForceBeam.h:95
InertialForceBeam
Definition: InertialForceBeam.h:22
InertialForceBeam::_local_rot_vel_0
RealVectorValue _local_rot_vel_0
Definition: InertialForceBeam.h:161
InertialForceBeam::_alpha
const Real _alpha
HHT time integration parameter.
Definition: InertialForceBeam.h:119
InertialForceBeam::_component
const unsigned int _component
Direction along which residual is calculated.
Definition: InertialForceBeam.h:131
InertialForceBeam::computeOffDiagJacobian
virtual void computeOffDiagJacobian(MooseVariableFEBase &jvar) override
Definition: InertialForceBeam.C:479
InertialForceBeam::_local_rot_accel_0
RealVectorValue _local_rot_accel_0
Definition: InertialForceBeam.h:167
InertialForceBeam::_area
const VariableValue & _area
Coupled variable for beam cross-sectional area.
Definition: InertialForceBeam.h:77
InertialForceBeam::_Iy
const VariableValue & _Iy
Coupled variable for second moment of area of beam in y direction, i.e., integral of y^2*dA over the ...
Definition: InertialForceBeam.h:101
InertialForceBeam::_has_Ix
const bool _has_Ix
Definition: InertialForceBeam.h:47
InertialForceBeam::computeQpResidual
virtual Real computeQpResidual() override
Definition: InertialForceBeam.h:37
InertialForceBeam::_rot_accel_num
std::vector< unsigned int > _rot_accel_num
Variable numbers corresponding to rotational acceleration aux variables.
Definition: InertialForceBeam.h:74
InertialForceBeam::_original_length
const MaterialProperty< Real > & _original_length
Initial length of beam.
Definition: InertialForceBeam.h:128
InertialForceBeam::_has_rot_accelerations
const bool _has_rot_accelerations
Definition: InertialForceBeam.h:46
InertialForceBeam::_rot_vel_num
std::vector< unsigned int > _rot_vel_num
Variable numbers corresponding to rotational velocity aux variables.
Definition: InertialForceBeam.h:71
InertialForceBeam::_rot_vel_1
RealVectorValue _rot_vel_1
Definition: InertialForceBeam.h:143
InertialForceBeam::_vel_old_0
RealVectorValue _vel_old_0
Old translational and rotational velocities at the two nodes of the beam in the global coordinate sys...
Definition: InertialForceBeam.h:137
InertialForceBeam::_rot_vel_old_0
RealVectorValue _rot_vel_old_0
Definition: InertialForceBeam.h:137
InertialForceBeam::_Ay
const VariableValue & _Ay
Coupled variable for first moment of area of beam in y direction, i.e., integral of y*dA over the cro...
Definition: InertialForceBeam.h:83
InertialForceBeam::_global_moment_1
RealVectorValue _global_moment_1
Definition: InertialForceBeam.h:179
InertialForceBeam::_vel_old_1
RealVectorValue _vel_old_1
Definition: InertialForceBeam.h:137
InertialForceBeam::_local_vel_old_1
RealVectorValue _local_vel_old_1
Definition: InertialForceBeam.h:155
InertialForceBeam::_rot_vel_old_1
RealVectorValue _rot_vel_old_1
Definition: InertialForceBeam.h:137
InertialForceBeam::_global_moment_0
RealVectorValue _global_moment_0
Definition: InertialForceBeam.h:179
InertialForceBeam::_vel_1
RealVectorValue _vel_1
Definition: InertialForceBeam.h:143
InertialForceBeam::_has_rot_velocities
const bool _has_rot_velocities
Definition: InertialForceBeam.h:44
InertialForceBeam::_local_rot_accel_1
RealVectorValue _local_rot_accel_1
Definition: InertialForceBeam.h:167
InertialForceBeam::_disp_num
std::vector< unsigned int > _disp_num
Variable numbers corresponding to displacement variables.
Definition: InertialForceBeam.h:62
InertialForceBeam::_rot_accel_0
RealVectorValue _rot_accel_0
Definition: InertialForceBeam.h:149
InertialForceBeam::_Az
const VariableValue & _Az
Coupled variable for first moment of area of beam in z direction, i.e., integral of z*dA over the cro...
Definition: InertialForceBeam.h:89
InertialForceBeam::_local_vel_1
RealVectorValue _local_vel_1
Definition: InertialForceBeam.h:161
InertialForceBeam::_rot_num
std::vector< unsigned int > _rot_num
Variable numbers corresponding to rotational variables.
Definition: InertialForceBeam.h:59
InertialForceBeam::_density
const MaterialProperty< Real > & _density
Density of the beam.
Definition: InertialForceBeam.h:50
InertialForceBeam::_accel_1
RealVectorValue _accel_1
Definition: InertialForceBeam.h:149
InertialForceBeam::_accel_0
RealVectorValue _accel_0
Current translational and rotational accelerations at the two nodes of the beam in the global coordin...
Definition: InertialForceBeam.h:149
InertialForceBeam::_has_beta
const bool _has_beta
Booleans for validity of params.
Definition: InertialForceBeam.h:37
InertialForceBeam::computeJacobian
virtual void computeJacobian() override
Definition: InertialForceBeam.C:425
InertialForceBeam::_local_accel_0
RealVectorValue _local_accel_0
Current translational and rotational accelerations at the two nodes of the beam in the initial beam l...
Definition: InertialForceBeam.h:167
InertialForceBeam::_global_force_0
RealVectorValue _global_force_0
Forces and moments at the two end nodes of the beam in the global coordinate system.
Definition: InertialForceBeam.h:179
InertialForceBeam::_nrot
unsigned int _nrot
Number of coupled rotational variables.
Definition: InertialForceBeam.h:53
InertialForceBeam::_has_gamma
const bool _has_gamma
Definition: InertialForceBeam.h:42
InertialForceBeam::_rot_vel_0
RealVectorValue _rot_vel_0
Definition: InertialForceBeam.h:143
InertialForceBeam::_du_dotdot_du
const VariableValue * _du_dotdot_du
Coupled variable for du_dotdot_du calculated by time integrator.
Definition: InertialForceBeam.h:189
InertialForceBeam::_eta
const MaterialProperty< Real > & _eta
Mass proportional Rayleigh damping parameter.
Definition: InertialForceBeam.h:116
InertialForceBeam::_vel_0
RealVectorValue _vel_0
Current translational and rotational velocities at the two nodes of the beam in the global coordinate...
Definition: InertialForceBeam.h:143
InertialForceBeam::_accel_num
std::vector< unsigned int > _accel_num
Variable numbers corresponding to acceleraion aux variables.
Definition: InertialForceBeam.h:68
InertialForceBeam::_beta
const Real _beta
Newmark time integration parameter.
Definition: InertialForceBeam.h:110