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 
14 // Forward Declarations
16 template <typename>
19 
20 template <>
21 InputParameters validParams<StressDivergenceBeam>();
22 
23 class StressDivergenceBeam : public Kernel
24 {
25 public:
26  static InputParameters validParams();
27 
28  StressDivergenceBeam(const InputParameters & parameters);
29  virtual void computeResidual() override;
30  virtual void computeJacobian() override;
31  virtual void computeOffDiagJacobian(MooseVariableFEBase & jvar) override;
32  using Kernel::computeOffDiagJacobian;
33 
34 protected:
35  virtual Real computeQpResidual() override { return 0.0; }
36 
38  void computeDynamicTerms(std::vector<RealVectorValue> & global_force_res,
39  std::vector<RealVectorValue> & global_moment_res);
40 
42  void computeGlobalResidual(const MaterialProperty<RealVectorValue> * force,
43  const MaterialProperty<RealVectorValue> * moment,
44  const MaterialProperty<RankTwoTensor> * total_rotation,
45  std::vector<RealVectorValue> & global_force_res,
46  std::vector<RealVectorValue> & global_moment_res);
47 
49  const unsigned int _component;
50 
52  unsigned int _ndisp;
53 
55  std::vector<unsigned int> _disp_var;
56 
58  unsigned int _nrot;
59 
61  std::vector<unsigned int> _rot_var;
62 
64  const MaterialProperty<RealVectorValue> & _force;
65 
67  const MaterialProperty<RealVectorValue> & _moment;
68 
70  const MaterialProperty<RankTwoTensor> & _K11;
71 
73  const MaterialProperty<RankTwoTensor> & _K22;
74 
76  const MaterialProperty<RankTwoTensor> & _K22_cross;
77 
79  const MaterialProperty<RankTwoTensor> & _K21_cross;
80 
82  const MaterialProperty<RankTwoTensor> & _K21;
83 
85  const MaterialProperty<Real> & _original_length;
86 
88  const MaterialProperty<RankTwoTensor> & _total_rotation;
89 
91  const MaterialProperty<Real> & _zeta;
92 
94  const Real & _alpha;
95 
97  const bool _isDamped;
98 
100  const MaterialProperty<RealVectorValue> * _force_old;
101 
103  const MaterialProperty<RealVectorValue> * _moment_old;
104 
106  const MaterialProperty<RankTwoTensor> * _total_rotation_old;
107 
109  const MaterialProperty<RealVectorValue> * _force_older;
110 
112  const MaterialProperty<RealVectorValue> * _moment_older;
113 
115  const MaterialProperty<RankTwoTensor> * _total_rotation_older;
116 
118  std::vector<RealVectorValue> _global_force_res;
119 
121  std::vector<RealVectorValue> _global_moment_res;
122 
124  std::vector<RealVectorValue> _force_local_t;
125 
127  std::vector<RealVectorValue> _moment_local_t;
128 
130  std::vector<RealVectorValue> _local_force_res;
131 
133  std::vector<RealVectorValue> _local_moment_res;
134 };
validParams< StressDivergenceBeam >
InputParameters validParams< StressDivergenceBeam >()
StressDivergenceBeam::_component
const unsigned int _component
Direction along which force/moment is calculated.
Definition: StressDivergenceBeam.h:49
StressDivergenceBeam::computeGlobalResidual
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...
Definition: StressDivergenceBeam.C:290
StressDivergenceBeam::_local_force_res
std::vector< RealVectorValue > _local_force_res
Residual corresponding to displacement DOFs at the nodes in beam local coordinate system.
Definition: StressDivergenceBeam.h:130
StressDivergenceBeam::_original_length
const MaterialProperty< Real > & _original_length
Initial length of beam.
Definition: StressDivergenceBeam.h:85
StressDivergenceBeam::_global_moment_res
std::vector< RealVectorValue > _global_moment_res
Residual corresponding to rotational DOFs at the nodes in global coordinate system.
Definition: StressDivergenceBeam.h:121
StressDivergenceBeam::_moment_local_t
std::vector< RealVectorValue > _moment_local_t
Moments at each Qp in the beam local configuration.
Definition: StressDivergenceBeam.h:127
StressDivergenceBeam::computeOffDiagJacobian
virtual void computeOffDiagJacobian(MooseVariableFEBase &jvar) override
Definition: StressDivergenceBeam.C:179
StressDivergenceBeam::_zeta
const MaterialProperty< Real > & _zeta
Stiffness proportional Rayleigh damping parameter.
Definition: StressDivergenceBeam.h:91
StressDivergenceBeam::_force_local_t
std::vector< RealVectorValue > _force_local_t
Forces at each Qp in the beam local configuration.
Definition: StressDivergenceBeam.h:124
StressDivergenceBeam::_rot_var
std::vector< unsigned int > _rot_var
Variable numbers corresponding to rotational variables.
Definition: StressDivergenceBeam.h:61
StressDivergenceBeam::_ndisp
unsigned int _ndisp
Number of coupled displacement variables.
Definition: StressDivergenceBeam.h:52
StressDivergenceBeam::_local_moment_res
std::vector< RealVectorValue > _local_moment_res
Residual corresponding to rotational DOFs at the nodes in beam local coordinate system.
Definition: StressDivergenceBeam.h:133
StressDivergenceBeam::_K21_cross
const MaterialProperty< RankTwoTensor > & _K21_cross
Stiffness matrix relating displacement of one node to rotations of another node.
Definition: StressDivergenceBeam.h:79
StressDivergenceBeam::_force
const MaterialProperty< RealVectorValue > & _force
Current force vector in global coordinate system.
Definition: StressDivergenceBeam.h:64
StressDivergenceBeam::_nrot
unsigned int _nrot
Number of coupled rotational variables.
Definition: StressDivergenceBeam.h:58
StressDivergenceBeam::computeDynamicTerms
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.
Definition: StressDivergenceBeam.C:254
StressDivergenceBeam::_global_force_res
std::vector< RealVectorValue > _global_force_res
Residual corresponding to displacement DOFs at the nodes in global coordinate system.
Definition: StressDivergenceBeam.h:118
StressDivergenceBeam::_disp_var
std::vector< unsigned int > _disp_var
Variable numbers corresponding to displacement variables.
Definition: StressDivergenceBeam.h:55
StressDivergenceBeam::validParams
static InputParameters validParams()
Definition: StressDivergenceBeam.C:28
StressDivergenceBeam::_isDamped
const bool _isDamped
Boolean flag to turn on Rayleigh damping or numerical damping due to HHT time integration.
Definition: StressDivergenceBeam.h:97
StressDivergenceBeam::computeResidual
virtual void computeResidual() override
Definition: StressDivergenceBeam.C:103
StressDivergenceBeam::StressDivergenceBeam
StressDivergenceBeam(const InputParameters &parameters)
Definition: StressDivergenceBeam.C:54
StressDivergenceBeam::_K22
const MaterialProperty< RankTwoTensor > & _K22
Stiffness matrix relating rotational DOFs of same node.
Definition: StressDivergenceBeam.h:73
StressDivergenceBeam::_total_rotation
const MaterialProperty< RankTwoTensor > & _total_rotation
Rotational transformation from global to current beam local coordinate system.
Definition: StressDivergenceBeam.h:88
StressDivergenceBeam::_K11
const MaterialProperty< RankTwoTensor > & _K11
Stiffness matrix relating displacement DOFs of same node or across nodes.
Definition: StressDivergenceBeam.h:70
StressDivergenceBeam::_total_rotation_older
const MaterialProperty< RankTwoTensor > * _total_rotation_older
Rotational transformation from global to older beam local coordinate system.
Definition: StressDivergenceBeam.h:115
StressDivergenceBeam::_moment_older
const MaterialProperty< RealVectorValue > * _moment_older
Older moment vector in global coordinate system.
Definition: StressDivergenceBeam.h:112
StressDivergenceBeam::_alpha
const Real & _alpha
HHT time integration parameter.
Definition: StressDivergenceBeam.h:94
StressDivergenceBeam::computeQpResidual
virtual Real computeQpResidual() override
Definition: StressDivergenceBeam.h:35
StressDivergenceBeam::_K22_cross
const MaterialProperty< RankTwoTensor > & _K22_cross
Stiffness matrix relating rotational DOFs across nodes.
Definition: StressDivergenceBeam.h:76
StressDivergenceBeam::_moment
const MaterialProperty< RealVectorValue > & _moment
Current moment vector in global coordinate system.
Definition: StressDivergenceBeam.h:67
StressDivergenceBeam::_moment_old
const MaterialProperty< RealVectorValue > * _moment_old
Old moment vector in global coordinate system.
Definition: StressDivergenceBeam.h:103
StressDivergenceBeam::computeJacobian
virtual void computeJacobian() override
Definition: StressDivergenceBeam.C:139
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17
StressDivergenceBeam::_force_older
const MaterialProperty< RealVectorValue > * _force_older
Older force vector in global coordinate system.
Definition: StressDivergenceBeam.h:109
RankTwoTensor
RankTwoTensorTempl< Real > RankTwoTensor
Definition: StressDivergenceBeam.h:17
StressDivergenceBeam::_force_old
const MaterialProperty< RealVectorValue > * _force_old
Old force vector in global coordinate system.
Definition: StressDivergenceBeam.h:100
StressDivergenceBeam::_K21
const MaterialProperty< RankTwoTensor > & _K21
Stiffness matrix relating displacement and rotations of same node.
Definition: StressDivergenceBeam.h:82
StressDivergenceBeam::_total_rotation_old
const MaterialProperty< RankTwoTensor > * _total_rotation_old
Rotational transformation from global to old beam local coordinate system.
Definition: StressDivergenceBeam.h:106
StressDivergenceBeam
Definition: StressDivergenceBeam.h:23