www.mooseframework.org
StressDivergenceBeam.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 "Kernel.h"
13 #include "RankTwoTensorForward.h"
14 
16 {
17 public:
19 
21  virtual void computeResidual() override;
22  virtual void computeJacobian() override;
23  virtual void computeOffDiagJacobian(unsigned int jvar) override;
24 
25 protected:
26  virtual Real computeQpResidual() override { return 0.0; }
27 
29  void computeDynamicTerms(std::vector<RealVectorValue> & global_force_res,
30  std::vector<RealVectorValue> & global_moment_res);
31 
34  const MaterialProperty<RealVectorValue> * moment,
35  const MaterialProperty<RankTwoTensor> * total_rotation,
36  std::vector<RealVectorValue> & global_force_res,
37  std::vector<RealVectorValue> & global_moment_res);
38 
40  const unsigned int _component;
41 
43  unsigned int _ndisp;
44 
46  std::vector<unsigned int> _disp_var;
47 
49  unsigned int _nrot;
50 
52  std::vector<unsigned int> _rot_var;
53 
56 
59 
62 
65 
68 
71 
74 
77 
80 
83 
85  const Real & _alpha;
86 
88  const bool _isDamped;
89 
92 
95 
98 
101 
104 
107 
109  std::vector<RealVectorValue> _global_force_res;
110 
112  std::vector<RealVectorValue> _global_moment_res;
113 
115  std::vector<RealVectorValue> _force_local_t;
116 
118  std::vector<RealVectorValue> _moment_local_t;
119 
121  std::vector<RealVectorValue> _local_force_res;
122 
124  std::vector<RealVectorValue> _local_moment_res;
125 };
static InputParameters validParams()
const MaterialProperty< RealVectorValue > * _moment_older
Older moment vector in global coordinate system.
std::vector< RealVectorValue > _global_force_res
Residual corresponding to displacement DOFs at the nodes in global coordinate system.
unsigned int _ndisp
Number of coupled displacement variables.
const MaterialProperty< RealVectorValue > & _force
Current force vector in global coordinate system.
StressDivergenceBeam(const InputParameters &parameters)
const MaterialProperty< RankTwoTensor > & _K11
Stiffness matrix relating displacement DOFs of same node or across nodes.
const MaterialProperty< RankTwoTensor > & _K21
Stiffness matrix relating displacement and rotations of same node.
const MaterialProperty< RankTwoTensor > & _K22_cross
Stiffness matrix relating rotational DOFs across nodes.
void computeDynamicTerms(std::vector< RealVectorValue > &global_force_res, std::vector< RealVectorValue > &global_moment_res)
Computes the force and moment due to stiffness proportional damping and HHT time integration.
std::vector< unsigned int > _disp_var
Variable numbers corresponding to displacement variables.
const MaterialProperty< RankTwoTensor > & _K22
Stiffness matrix relating rotational DOFs of same node.
const MaterialProperty< RealVectorValue > * _force_older
Older force vector in global coordinate system.
const MaterialProperty< RankTwoTensor > & _K21_cross
Stiffness matrix relating displacement of one node to rotations of another node.
const MaterialProperty< RankTwoTensor > * _total_rotation_old
Rotational transformation from global to old beam local coordinate system.
std::vector< RealVectorValue > _global_moment_res
Residual corresponding to rotational DOFs at the nodes in global coordinate system.
std::vector< RealVectorValue > _local_force_res
Residual corresponding to displacement DOFs at the nodes in beam local coordinate system...
const MaterialProperty< RankTwoTensor > & _total_rotation
Rotational transformation from global to current beam local coordinate system.
const unsigned int _component
Direction along which force/moment is calculated.
const MaterialProperty< RankTwoTensor > * _total_rotation_older
Rotational transformation from global to older beam local coordinate system.
virtual Real computeQpResidual() override
virtual void computeJacobian() override
virtual void computeResidual() override
const Real & _alpha
HHT time integration parameter.
std::vector< RealVectorValue > _local_moment_res
Residual corresponding to rotational DOFs at the nodes in beam local coordinate system.
const MaterialProperty< RealVectorValue > * _moment_old
Old moment vector in global coordinate system.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void computeGlobalResidual(const MaterialProperty< RealVectorValue > *force, const MaterialProperty< RealVectorValue > *moment, const MaterialProperty< RankTwoTensor > *total_rotation, std::vector< RealVectorValue > &global_force_res, std::vector< RealVectorValue > &global_moment_res)
Computes the residual corresponding to displacement and rotational variables given the forces and mom...
std::vector< RealVectorValue > _force_local_t
Forces at each Qp in the beam local configuration.
const MaterialProperty< Real > & _original_length
Initial length of beam.
const MaterialProperty< Real > & _zeta
Stiffness proportional Rayleigh damping parameter.
virtual void computeOffDiagJacobian(unsigned int jvar) override
std::vector< unsigned int > _rot_var
Variable numbers corresponding to rotational variables.
const InputParameters & parameters() const
std::vector< RealVectorValue > _moment_local_t
Moments at each Qp in the beam local configuration.
const bool _isDamped
Boolean flag to turn on Rayleigh damping or numerical damping due to HHT time integration.
const MaterialProperty< RealVectorValue > & _moment
Current moment vector in global coordinate system.
unsigned int _nrot
Number of coupled rotational variables.
const MaterialProperty< RealVectorValue > * _force_old
Old force vector in global coordinate system.