www.mooseframework.org
NodalRotationalInertia.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 "TimeNodalKernel.h"
13 #include "RankTwoTensor.h"
14 
15 // Forward Declarations
16 class TimeIntegrator;
17 
23 {
24 public:
26 
28 
29 protected:
30  virtual Real computeQpResidual() override;
31 
32  virtual Real computeQpJacobian() override;
33 
34  virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
35 
37  const bool _has_beta;
38  const bool _has_gamma;
39  const bool _has_rot_velocities;
41  const bool _has_x_orientation;
42  const bool _has_y_orientation;
43 
46 
48  unsigned int _nrot;
49 
51  std::vector<const VariableValue *> _rot;
52 
54  std::vector<const VariableValue *> _rot_old;
55 
57  std::vector<unsigned int> _rot_vel_num;
58 
60  std::vector<unsigned int> _rot_accel_num;
61 
63  std::vector<unsigned int> _rot_variables;
64 
66  std::vector<Real> _rot_accel;
67 
69  std::vector<Real> _rot_vel;
70 
72  std::vector<Real> _rot_vel_old;
73 
75  const Real _beta;
76 
78  const Real _gamma;
79 
81  const Real & _eta;
82 
84  const Real & _alpha;
85 
87  const unsigned int _component;
88 
91 
93  std::vector<const VariableValue *> _rot_dot_residual;
94 
96  std::vector<const VariableValue *> _rot_vel_old_value;
97 
99  std::vector<const VariableValue *> _rot_dotdot_residual;
100 
103 
106 
109 };
virtual Real computeQpResidual() override
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
std::vector< const VariableValue * > _rot_vel_old_value
Old velocity value.
const unsigned int _component
Component along which torque is applied.
AuxiliarySystem * _aux_sys
Auxiliary system object.
std::vector< unsigned int > _rot_variables
Variable numbers for rotational variables.
std::vector< Real > _rot_vel_old
Old velocity of the node.
const VariableValue * _du_dot_du
du_dot_du value
Calculates the inertial torque and inertia proportional damping for nodal rotational inertia...
std::vector< const VariableValue * > _rot_dot_residual
Rotational udot residual.
virtual Real computeQpJacobian() override
std::vector< unsigned int > _rot_vel_num
Variable numbers for rotational velocity aux variables.
NodalRotationalInertia(const InputParameters &parameters)
std::vector< Real > _rot_accel
Current acceleration of the node.
std::vector< Real > _rot_vel
Current velocity of the node.
const VariableValue * _du_dotdot_du
du_dotdot_du value
std::vector< const VariableValue * > _rot_dotdot_residual
Rotational udotdot residual.
unsigned int _nrot
Number of coupled rotational variables.
RankTwoTensor _inertia
Moment of inertia tensor in global coordinate system.
const bool _has_beta
Booleans for validity of params.
std::vector< const VariableValue * > _rot
Value of rotational displacements.
std::vector< unsigned int > _rot_accel_num
Variable numbers for rotational acceleration aux variables.
const Real _gamma
Newmark time integration parameter.
OutputTools< Real >::VariableValue VariableValue
const Real _beta
Newmark time integration parameter.
std::vector< const VariableValue * > _rot_old
Old value of rotational displacements.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & parameters() const
const Real & _eta
Mass proportional Rayliegh damping.
const Real & _alpha
HHT time integration parameter.
TimeIntegrator & _time_integrator
The TimeIntegrator.
static InputParameters validParams()