https://mooseframework.inl.gov
Loading...
Searching...
No Matches
StressDivergenceBeam.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 "Kernel.h"
14
16{
17public:
19
21 virtual void computeResidual() override;
22 virtual void computeJacobian() override;
23 virtual void computeOffDiagJacobian(unsigned int jvar) override;
24
25protected:
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
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};
const InputParameters & parameters() const
const MaterialProperty< RankTwoTensor > * _total_rotation_older
Rotational transformation from global to older beam local coordinate system.
std::vector< RealVectorValue > _global_force_res
Residual corresponding to displacement DOFs at the nodes in global coordinate system.
const MaterialProperty< RealVectorValue > * _moment_old
Old moment vector in global coordinate system.
const MaterialProperty< RealVectorValue > * _force_old
Old force vector in global coordinate system.
std::vector< RealVectorValue > _global_moment_res
Residual corresponding to rotational DOFs at the nodes in global coordinate system.
virtual void computeResidual() override
const MaterialProperty< RealVectorValue > * _force_older
Older force vector in global coordinate system.
const MaterialProperty< RankTwoTensor > & _K22_cross
Stiffness matrix relating rotational DOFs across nodes.
const MaterialProperty< RankTwoTensor > & _K21
Stiffness matrix relating displacement and rotations of same node.
const MaterialProperty< Real > & _original_length
Initial length of beam.
const Real & _alpha
HHT time integration parameter.
const MaterialProperty< RankTwoTensor > & _total_rotation
Rotational transformation from global to current beam local coordinate system.
virtual void computeJacobian() override
std::vector< RealVectorValue > _local_force_res
Residual corresponding to displacement DOFs at the nodes in beam local coordinate system.
unsigned int _ndisp
Number of coupled displacement variables.
std::vector< RealVectorValue > _force_local_t
Forces at each Qp in the beam local configuration.
const MaterialProperty< RankTwoTensor > * _total_rotation_old
Rotational transformation from global to old beam local coordinate system.
virtual Real computeQpResidual() override
const MaterialProperty< RankTwoTensor > & _K21_cross
Stiffness matrix relating displacement of one node to rotations of another node.
const MaterialProperty< RankTwoTensor > & _K22
Stiffness matrix relating rotational DOFs of same node.
const MaterialProperty< RealVectorValue > * _moment_older
Older moment vector in global coordinate system.
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...
const MaterialProperty< Real > & _zeta
Stiffness proportional Rayleigh damping parameter.
const unsigned int _component
Direction along which force/moment is calculated.
const MaterialProperty< RankTwoTensor > & _K11
Stiffness matrix relating displacement DOFs of same node or across nodes.
std::vector< RealVectorValue > _moment_local_t
Moments at each Qp in the beam local configuration.
std::vector< unsigned int > _rot_var
Variable numbers corresponding to rotational variables.
virtual void computeOffDiagJacobian(unsigned int jvar) override
const MaterialProperty< RealVectorValue > & _force
Current force vector in global coordinate system.
std::vector< unsigned int > _disp_var
Variable numbers corresponding to displacement variables.
unsigned int _nrot
Number of coupled rotational variables.
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.
const bool _isDamped
Boolean flag to turn on Rayleigh damping or numerical damping due to HHT time integration.
std::vector< RealVectorValue > _local_moment_res
Residual corresponding to rotational DOFs at the nodes in beam local coordinate system.
static InputParameters validParams()
const MaterialProperty< RealVectorValue > & _moment
Current moment vector in global coordinate system.