www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
StressDivergenceBeam Class Reference

#include <StressDivergenceBeam.h>

Inheritance diagram for StressDivergenceBeam:
[legend]

Public Member Functions

 StressDivergenceBeam (const InputParameters &parameters)
 
virtual void computeResidual () override
 
virtual void computeJacobian () override
 
virtual void computeOffDiagJacobian (MooseVariableFEBase &jvar) override
 

Protected Member Functions

virtual Real computeQpResidual () override
 
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. More...
 
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 moments. More...
 

Protected Attributes

const unsigned int _component
 Direction along which force/moment is calculated. More...
 
unsigned int _ndisp
 Number of coupled displacement variables. More...
 
std::vector< unsigned int > _disp_var
 Variable numbers corresponding to displacement variables. More...
 
unsigned int _nrot
 Number of coupled rotational variables. More...
 
std::vector< unsigned int > _rot_var
 Variable numbers corresponding to rotational variables. More...
 
const MaterialProperty< RealVectorValue > & _force
 Current force vector in global coordinate system. More...
 
const MaterialProperty< RealVectorValue > & _moment
 Current moment vector in global coordinate system. More...
 
const MaterialProperty< RankTwoTensor > & _K11
 Stiffness matrix relating displacement DOFs of same node or across nodes. More...
 
const MaterialProperty< RankTwoTensor > & _K22
 Stiffness matrix relating rotational DOFs of same node. More...
 
const MaterialProperty< RankTwoTensor > & _K22_cross
 Stiffness matrix relating rotational DOFs across nodes. More...
 
const MaterialProperty< RankTwoTensor > & _K21_cross
 Stiffness matrix relating displacement of one node to rotations of another node. More...
 
const MaterialProperty< RankTwoTensor > & _K21
 Stiffness matrix relating displacement and rotations of same node. More...
 
const MaterialProperty< Real > & _original_length
 Initial length of beam. More...
 
const MaterialProperty< RankTwoTensor > & _total_rotation
 Rotational transformation from global to current beam local coordinate system. More...
 
const MaterialProperty< Real > & _zeta
 Stiffness proportional Rayleigh damping parameter. More...
 
const Real & _alpha
 HHT time integration parameter. More...
 
const bool _isDamped
 Boolean flag to turn on Rayleigh damping or numerical damping due to HHT time integration. More...
 
const MaterialProperty< RealVectorValue > * _force_old
 Old force vector in global coordinate system. More...
 
const MaterialProperty< RealVectorValue > * _moment_old
 Old moment vector in global coordinate system. More...
 
const MaterialProperty< RankTwoTensor > * _total_rotation_old
 Rotational transformation from global to old beam local coordinate system. More...
 
const MaterialProperty< RealVectorValue > * _force_older
 Older force vector in global coordinate system. More...
 
const MaterialProperty< RealVectorValue > * _moment_older
 Older moment vector in global coordinate system. More...
 
const MaterialProperty< RankTwoTensor > * _total_rotation_older
 Rotational transformation from global to older beam local coordinate system. More...
 
std::vector< RealVectorValue > _global_force_res
 Residual corresponding to displacement DOFs at the nodes in global coordinate system. More...
 
std::vector< RealVectorValue > _global_moment_res
 Residual corresponding to rotational DOFs at the nodes in global coordinate system. More...
 
std::vector< RealVectorValue > _force_local_t
 Forces at each Qp in the beam local configuration. More...
 
std::vector< RealVectorValue > _moment_local_t
 Moments at each Qp in the beam local configuration. More...
 
std::vector< RealVectorValue > _local_force_res
 Residual corresponding to displacement DOFs at the nodes in beam local coordinate system. More...
 
std::vector< RealVectorValue > _local_moment_res
 Residual corresponding to rotational DOFs at the nodes in beam local coordinate system. More...
 

Detailed Description

Definition at line 19 of file StressDivergenceBeam.h.

Constructor & Destructor Documentation

◆ StressDivergenceBeam()

StressDivergenceBeam::StressDivergenceBeam ( const InputParameters &  parameters)

Definition at line 51 of file StressDivergenceBeam.C.

52  : Kernel(parameters),
53  _component(getParam<unsigned int>("component")),
54  _ndisp(coupledComponents("displacements")),
56  _nrot(coupledComponents("rotations")),
57  _rot_var(_nrot),
58  _force(getMaterialPropertyByName<RealVectorValue>("forces")),
59  _moment(getMaterialPropertyByName<RealVectorValue>("moments")),
60  _K11(getMaterialPropertyByName<RankTwoTensor>("Jacobian_11")),
61  _K22(getMaterialPropertyByName<RankTwoTensor>("Jacobian_22")),
62  _K22_cross(getMaterialPropertyByName<RankTwoTensor>("Jacobian_22_cross")),
63  _K21_cross(getMaterialPropertyByName<RankTwoTensor>("Jacobian_12")),
64  _K21(getMaterialPropertyByName<RankTwoTensor>("Jacobian_21")),
65  _original_length(getMaterialPropertyByName<Real>("original_length")),
66  _total_rotation(getMaterialPropertyByName<RankTwoTensor>("total_rotation")),
67  _zeta(getMaterialProperty<Real>("zeta")),
68  _alpha(getParam<Real>("alpha")),
69  _isDamped(getParam<MaterialPropertyName>("zeta") != "0.0" || std::abs(_alpha) > 0.0),
70  _force_old(_isDamped ? &getMaterialPropertyOld<RealVectorValue>("forces") : nullptr),
71  _moment_old(_isDamped ? &getMaterialPropertyOld<RealVectorValue>("moments") : nullptr),
72  _total_rotation_old(_isDamped ? &getMaterialPropertyOld<RankTwoTensor>("total_rotation")
73  : nullptr),
74  _force_older(std::abs(_alpha) > 0.0 ? &getMaterialPropertyOlder<RealVectorValue>("forces")
75  : nullptr),
76  _moment_older(std::abs(_alpha) > 0.0 ? &getMaterialPropertyOlder<RealVectorValue>("moments")
77  : nullptr),
78  _total_rotation_older(std::abs(_alpha) > 0.0
79  ? &getMaterialPropertyOlder<RankTwoTensor>("total_rotation")
80  : nullptr),
83  _force_local_t(0),
84  _moment_local_t(0),
87 {
88  if (_ndisp != _nrot)
89  mooseError(
90  "StressDivergenceBeam: The number of displacement and rotation variables should be same.");
91 
92  for (unsigned int i = 0; i < _ndisp; ++i)
93  _disp_var[i] = coupled("displacements", i);
94 
95  for (unsigned int i = 0; i < _nrot; ++i)
96  _rot_var[i] = coupled("rotations", i);
97 }
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.
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.
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.
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.
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.
std::vector< unsigned int > _rot_var
Variable numbers corresponding to rotational variables.
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.

Member Function Documentation

◆ computeDynamicTerms()

void StressDivergenceBeam::computeDynamicTerms ( std::vector< RealVectorValue > &  global_force_res,
std::vector< RealVectorValue > &  global_moment_res 
)
protected

Computes the force and moment due to stiffness proportional damping and HHT time integration.

Definition at line 255 of file StressDivergenceBeam.C.

Referenced by computeResidual().

257 {
258  mooseAssert(_zeta[0] >= 0.0, "StressDivergenceBeam: Zeta parameter should be non-negative.");
259  std::vector<RealVectorValue> global_force_res_old(_test.size());
260  std::vector<RealVectorValue> global_moment_res_old(_test.size());
262  _force_old, _moment_old, _total_rotation_old, global_force_res_old, global_moment_res_old);
263 
264  // For HHT calculation, the global force and moment residual from t_older is required
265  std::vector<RealVectorValue> global_force_res_older(_test.size());
266  std::vector<RealVectorValue> global_moment_res_older(_test.size());
267 
268  if (std::abs(_alpha) > 0.0)
272  global_force_res_older,
273  global_moment_res_older);
274 
275  // Update the global_force_res and global_moment_res to include HHT and Rayleigh damping
276  // contributions
277  for (_i = 0; _i < _test.size(); ++_i)
278  {
279  global_force_res[_i] =
280  global_force_res[_i] * (1.0 + _alpha + (1.0 + _alpha) * _zeta[0] / _dt) -
281  global_force_res_old[_i] * (_alpha + (1.0 + 2.0 * _alpha) * _zeta[0] / _dt) +
282  global_force_res_older[_i] * (_alpha * _zeta[0] / _dt);
283  global_moment_res[_i] =
284  global_moment_res[_i] * (1.0 + _alpha + (1.0 + _alpha) * _zeta[0] / _dt) -
285  global_moment_res_old[_i] * (_alpha + (1.0 + 2.0 * _alpha) * _zeta[0] / _dt) +
286  global_moment_res_older[_i] * (_alpha * _zeta[0] / _dt);
287  }
288 }
const MaterialProperty< RealVectorValue > * _moment_older
Older moment vector in global coordinate system.
const MaterialProperty< RealVectorValue > * _force_older
Older force vector in global coordinate system.
const MaterialProperty< RankTwoTensor > * _total_rotation_old
Rotational transformation from global to old beam local coordinate system.
const MaterialProperty< RankTwoTensor > * _total_rotation_older
Rotational transformation from global to older beam local coordinate system.
const Real & _alpha
HHT time integration parameter.
const MaterialProperty< RealVectorValue > * _moment_old
Old 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 MaterialProperty< RealVectorValue > * _force_old
Old force vector in global coordinate system.

◆ computeGlobalResidual()

void StressDivergenceBeam::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 
)
protected

Computes the residual corresponding to displacement and rotational variables given the forces and moments.

Definition at line 291 of file StressDivergenceBeam.C.

Referenced by computeDynamicTerms(), and computeResidual().

296 {
297  RealVectorValue a;
298  _force_local_t.resize(_qrule->n_points());
299  _moment_local_t.resize(_qrule->n_points());
300  _local_force_res.resize(_test.size());
301  _local_moment_res.resize(_test.size());
302 
303  // convert forces/moments from global coordinate system to current beam local configuration
304  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
305  {
306  _force_local_t[_qp] = (*total_rotation)[0] * (*force)[_qp];
307  _moment_local_t[_qp] = (*total_rotation)[0] * (*moment)[_qp];
308  }
309 
310  // residual for displacement variables
311  for (_i = 0; _i < _test.size(); ++_i)
312  {
313  _local_force_res[_i] = a;
314  for (unsigned int component = 0; component < 3; ++component)
315  {
316  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
318  (_i == 0 ? -1 : 1) * _force_local_t[_qp](component) * 0.5;
319  }
320  }
321 
322  // residual for rotation variables
323  for (_i = 0; _i < _test.size(); ++_i)
324  {
325  _local_moment_res[_i] = a;
326  for (unsigned int component = 3; component < 6; ++component)
327  {
328  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
329  {
330  if (component == 3)
331  _local_moment_res[_i](component - 3) +=
332  (_i == 0 ? -1 : 1) * _moment_local_t[_qp](0) * 0.5;
333  else if (component == 4)
334  _local_moment_res[_i](component - 3) +=
335  (_i == 0 ? -1 : 1) * _moment_local_t[_qp](1) * 0.5 +
336  _force_local_t[_qp](2) * 0.25 * _original_length[0];
337  else
338  _local_moment_res[_i](component - 3) +=
339  (_i == 0 ? -1 : 1) * -_moment_local_t[_qp](2) * 0.5 -
340  _force_local_t[_qp](1) * 0.25 * _original_length[0];
341  }
342  }
343  }
344 
345  // convert residual for each variable from current beam local configuration to global
346  // configuration
347  for (_i = 0; _i < _test.size(); ++_i)
348  {
349  global_force_res[_i] = (*total_rotation)[0].transpose() * _local_force_res[_i];
350  global_moment_res[_i] = (*total_rotation)[0].transpose() * _local_moment_res[_i];
351  }
352 }
Real component(const SymmTensor &symm_tensor, unsigned int index)
std::vector< RealVectorValue > _local_force_res
Residual corresponding to displacement DOFs at the nodes in beam local coordinate system...
std::vector< RealVectorValue > _local_moment_res
Residual corresponding to rotational DOFs at the nodes in beam local coordinate system.
std::vector< RealVectorValue > _force_local_t
Forces at each Qp in the beam local configuration.
const MaterialProperty< Real > & _original_length
Initial length of beam.
std::vector< RealVectorValue > _moment_local_t
Moments at each Qp in the beam local configuration.

◆ computeJacobian()

void StressDivergenceBeam::computeJacobian ( )
overridevirtual

Definition at line 136 of file StressDivergenceBeam.C.

Referenced by computeOffDiagJacobian().

137 {
138  DenseMatrix<Number> & ke = _assembly.jacobianBlock(_var.number(), _var.number());
139  _local_ke.resize(ke.m(), ke.n());
140  _local_ke.zero();
141 
142  for (unsigned int i = 0; i < _test.size(); ++i)
143  {
144  for (unsigned int j = 0; j < _phi.size(); ++j)
145  {
146  if (_component < 3)
147  _local_ke(i, j) = (i == j ? 1 : -1) * _K11[0](_component, _component);
148  else
149  {
150  if (i == j)
151  _local_ke(i, j) = _K22[0](_component - 3, _component - 3);
152  else
153  _local_ke(i, j) = _K22_cross[0](_component - 3, _component - 3);
154  }
155  }
156  }
157 
158  // scaling factor for Rayliegh damping and HHT time integration
159  if (_isDamped && _dt > 0.0)
160  _local_ke *= (1.0 + _alpha + (1.0 + _alpha) * _zeta[0] / _dt);
161 
162  ke += _local_ke;
163 
164  if (_has_diag_save_in)
165  {
166  unsigned int rows = ke.m();
167  DenseVector<Number> diag(rows);
168  for (unsigned int i = 0; i < rows; ++i)
169  diag(i) = _local_ke(i, i);
170 
171  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
172  for (unsigned int i = 0; i < _diag_save_in.size(); ++i)
173  _diag_save_in[i]->sys().solution().add_vector(diag, _diag_save_in[i]->dofIndices());
174  }
175 }
const MaterialProperty< RankTwoTensor > & _K11
Stiffness matrix relating displacement DOFs of same node or across nodes.
const MaterialProperty< RankTwoTensor > & _K22_cross
Stiffness matrix relating rotational DOFs across nodes.
const MaterialProperty< RankTwoTensor > & _K22
Stiffness matrix relating rotational DOFs of same node.
const unsigned int _component
Direction along which force/moment is calculated.
const Real & _alpha
HHT time integration parameter.
const MaterialProperty< Real > & _zeta
Stiffness proportional Rayleigh damping parameter.
const bool _isDamped
Boolean flag to turn on Rayleigh damping or numerical damping due to HHT time integration.

◆ computeOffDiagJacobian()

void StressDivergenceBeam::computeOffDiagJacobian ( MooseVariableFEBase &  jvar)
overridevirtual

Definition at line 178 of file StressDivergenceBeam.C.

179 {
180  size_t jvar_num = jvar.number();
181  if (jvar_num == _var.number())
182  computeJacobian();
183  else
184  {
185  unsigned int coupled_component = 0;
186  bool disp_coupled = false;
187  bool rot_coupled = false;
188 
189  for (unsigned int i = 0; i < _ndisp; ++i)
190  {
191  if (jvar_num == _disp_var[i])
192  {
193  coupled_component = i;
194  disp_coupled = true;
195  break;
196  }
197  }
198 
199  for (unsigned int i = 0; i < _nrot; ++i)
200  {
201  if (jvar_num == _rot_var[i])
202  {
203  coupled_component = i + 3;
204  rot_coupled = true;
205  break;
206  }
207  }
208 
209  DenseMatrix<Number> & ke = _assembly.jacobianBlock(_var.number(), jvar_num);
210  _local_ke.resize(ke.m(), ke.n());
211  _local_ke.zero();
212 
213  if (disp_coupled || rot_coupled)
214  {
215  for (unsigned int i = 0; i < _test.size(); ++i)
216  {
217  for (unsigned int j = 0; j < _phi.size(); ++j)
218  {
219  if (_component < 3 && coupled_component < 3)
220  _local_ke(i, j) += (i == j ? 1 : -1) * _K11[0](_component, coupled_component);
221  else if (_component < 3 && coupled_component > 2)
222  {
223  if (i == 0)
224  _local_ke(i, j) += _K21[0](coupled_component - 3, _component);
225  else
226  _local_ke(i, j) += _K21_cross[0](coupled_component - 3, _component);
227  }
228  else if (_component > 2 && coupled_component < 3)
229  {
230  if (j == 0)
231  _local_ke(i, j) += _K21[0](_component - 3, coupled_component);
232  else
233  _local_ke(i, j) += _K21_cross[0](_component - 3, coupled_component);
234  }
235  else
236  {
237  if (i == j)
238  _local_ke(i, j) += _K22[0](_component - 3, coupled_component - 3);
239  else
240  _local_ke(i, j) += _K22_cross[0](_component - 3, coupled_component - 3);
241  }
242  }
243  }
244  }
245 
246  // scaling factor for Rayleigh damping and HHT time integration
247  if (_isDamped && _dt > 0.0)
248  _local_ke *= (1.0 + _alpha + (1.0 + _alpha) * _zeta[0] / _dt);
249 
250  ke += _local_ke;
251  }
252 }
unsigned int _ndisp
Number of coupled displacement variables.
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.
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< RankTwoTensor > & _K21_cross
Stiffness matrix relating displacement of one node to rotations of another node.
const unsigned int _component
Direction along which force/moment is calculated.
virtual void computeJacobian() override
const Real & _alpha
HHT time integration parameter.
const MaterialProperty< Real > & _zeta
Stiffness proportional Rayleigh damping parameter.
std::vector< unsigned int > _rot_var
Variable numbers corresponding to rotational variables.
const bool _isDamped
Boolean flag to turn on Rayleigh damping or numerical damping due to HHT time integration.
unsigned int _nrot
Number of coupled rotational variables.

◆ computeQpResidual()

virtual Real StressDivergenceBeam::computeQpResidual ( )
inlineoverrideprotectedvirtual

Definition at line 29 of file StressDivergenceBeam.h.

29 { return 0.0; }

◆ computeResidual()

void StressDivergenceBeam::computeResidual ( )
overridevirtual

Definition at line 100 of file StressDivergenceBeam.C.

101 {
102  DenseVector<Number> & re = _assembly.residualBlock(_var.number());
103  mooseAssert(re.size() == 2, "StressDivergenceBeam: Beam element must have two nodes only.");
104  _local_re.resize(re.size());
105  _local_re.zero();
106 
107  _global_force_res.resize(_test.size());
108  _global_moment_res.resize(_test.size());
109 
111 
112  // add contributions from stiffness proportional damping (non-zero _zeta) or HHT time integration
113  // (non-zero _alpha)
114  if (_isDamped && _dt > 0.0)
116 
117  for (_i = 0; _i < _test.size(); ++_i)
118  {
119  if (_component < 3)
120  _local_re(_i) = _global_force_res[_i](_component);
121  else
122  _local_re(_i) = _global_moment_res[_i](_component - 3);
123  }
124 
125  re += _local_re;
126 
127  if (_has_save_in)
128  {
129  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
130  for (_i = 0; _i < _save_in.size(); ++_i)
131  _save_in[_i]->sys().solution().add_vector(_local_re, _save_in[_i]->dofIndices());
132  }
133 }
std::vector< RealVectorValue > _global_force_res
Residual corresponding to displacement DOFs at the nodes in global coordinate system.
const MaterialProperty< RealVectorValue > & _force
Current force vector in global coordinate system.
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< RealVectorValue > _global_moment_res
Residual corresponding to rotational DOFs at the nodes in global 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.
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 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.

Member Data Documentation

◆ _alpha

const Real& StressDivergenceBeam::_alpha
protected

HHT time integration parameter.

Definition at line 88 of file StressDivergenceBeam.h.

Referenced by computeDynamicTerms(), computeJacobian(), and computeOffDiagJacobian().

◆ _component

const unsigned int StressDivergenceBeam::_component
protected

Direction along which force/moment is calculated.

Definition at line 43 of file StressDivergenceBeam.h.

Referenced by computeJacobian(), computeOffDiagJacobian(), and computeResidual().

◆ _disp_var

std::vector<unsigned int> StressDivergenceBeam::_disp_var
protected

Variable numbers corresponding to displacement variables.

Definition at line 49 of file StressDivergenceBeam.h.

Referenced by computeOffDiagJacobian(), and StressDivergenceBeam().

◆ _force

const MaterialProperty<RealVectorValue>& StressDivergenceBeam::_force
protected

Current force vector in global coordinate system.

Definition at line 58 of file StressDivergenceBeam.h.

Referenced by computeResidual().

◆ _force_local_t

std::vector<RealVectorValue> StressDivergenceBeam::_force_local_t
protected

Forces at each Qp in the beam local configuration.

Definition at line 118 of file StressDivergenceBeam.h.

Referenced by computeGlobalResidual().

◆ _force_old

const MaterialProperty<RealVectorValue>* StressDivergenceBeam::_force_old
protected

Old force vector in global coordinate system.

Definition at line 94 of file StressDivergenceBeam.h.

Referenced by computeDynamicTerms().

◆ _force_older

const MaterialProperty<RealVectorValue>* StressDivergenceBeam::_force_older
protected

Older force vector in global coordinate system.

Definition at line 103 of file StressDivergenceBeam.h.

Referenced by computeDynamicTerms().

◆ _global_force_res

std::vector<RealVectorValue> StressDivergenceBeam::_global_force_res
protected

Residual corresponding to displacement DOFs at the nodes in global coordinate system.

Definition at line 112 of file StressDivergenceBeam.h.

Referenced by computeResidual().

◆ _global_moment_res

std::vector<RealVectorValue> StressDivergenceBeam::_global_moment_res
protected

Residual corresponding to rotational DOFs at the nodes in global coordinate system.

Definition at line 115 of file StressDivergenceBeam.h.

Referenced by computeResidual().

◆ _isDamped

const bool StressDivergenceBeam::_isDamped
protected

Boolean flag to turn on Rayleigh damping or numerical damping due to HHT time integration.

Definition at line 91 of file StressDivergenceBeam.h.

Referenced by computeJacobian(), computeOffDiagJacobian(), and computeResidual().

◆ _K11

const MaterialProperty<RankTwoTensor>& StressDivergenceBeam::_K11
protected

Stiffness matrix relating displacement DOFs of same node or across nodes.

Definition at line 64 of file StressDivergenceBeam.h.

Referenced by computeJacobian(), and computeOffDiagJacobian().

◆ _K21

const MaterialProperty<RankTwoTensor>& StressDivergenceBeam::_K21
protected

Stiffness matrix relating displacement and rotations of same node.

Definition at line 76 of file StressDivergenceBeam.h.

Referenced by computeOffDiagJacobian().

◆ _K21_cross

const MaterialProperty<RankTwoTensor>& StressDivergenceBeam::_K21_cross
protected

Stiffness matrix relating displacement of one node to rotations of another node.

Definition at line 73 of file StressDivergenceBeam.h.

Referenced by computeOffDiagJacobian().

◆ _K22

const MaterialProperty<RankTwoTensor>& StressDivergenceBeam::_K22
protected

Stiffness matrix relating rotational DOFs of same node.

Definition at line 67 of file StressDivergenceBeam.h.

Referenced by computeJacobian(), and computeOffDiagJacobian().

◆ _K22_cross

const MaterialProperty<RankTwoTensor>& StressDivergenceBeam::_K22_cross
protected

Stiffness matrix relating rotational DOFs across nodes.

Definition at line 70 of file StressDivergenceBeam.h.

Referenced by computeJacobian(), and computeOffDiagJacobian().

◆ _local_force_res

std::vector<RealVectorValue> StressDivergenceBeam::_local_force_res
protected

Residual corresponding to displacement DOFs at the nodes in beam local coordinate system.

Definition at line 124 of file StressDivergenceBeam.h.

Referenced by computeGlobalResidual().

◆ _local_moment_res

std::vector<RealVectorValue> StressDivergenceBeam::_local_moment_res
protected

Residual corresponding to rotational DOFs at the nodes in beam local coordinate system.

Definition at line 127 of file StressDivergenceBeam.h.

Referenced by computeGlobalResidual().

◆ _moment

const MaterialProperty<RealVectorValue>& StressDivergenceBeam::_moment
protected

Current moment vector in global coordinate system.

Definition at line 61 of file StressDivergenceBeam.h.

Referenced by computeResidual().

◆ _moment_local_t

std::vector<RealVectorValue> StressDivergenceBeam::_moment_local_t
protected

Moments at each Qp in the beam local configuration.

Definition at line 121 of file StressDivergenceBeam.h.

Referenced by computeGlobalResidual().

◆ _moment_old

const MaterialProperty<RealVectorValue>* StressDivergenceBeam::_moment_old
protected

Old moment vector in global coordinate system.

Definition at line 97 of file StressDivergenceBeam.h.

Referenced by computeDynamicTerms().

◆ _moment_older

const MaterialProperty<RealVectorValue>* StressDivergenceBeam::_moment_older
protected

Older moment vector in global coordinate system.

Definition at line 106 of file StressDivergenceBeam.h.

Referenced by computeDynamicTerms().

◆ _ndisp

unsigned int StressDivergenceBeam::_ndisp
protected

Number of coupled displacement variables.

Definition at line 46 of file StressDivergenceBeam.h.

Referenced by computeOffDiagJacobian(), and StressDivergenceBeam().

◆ _nrot

unsigned int StressDivergenceBeam::_nrot
protected

Number of coupled rotational variables.

Definition at line 52 of file StressDivergenceBeam.h.

Referenced by computeOffDiagJacobian(), and StressDivergenceBeam().

◆ _original_length

const MaterialProperty<Real>& StressDivergenceBeam::_original_length
protected

Initial length of beam.

Definition at line 79 of file StressDivergenceBeam.h.

Referenced by computeGlobalResidual().

◆ _rot_var

std::vector<unsigned int> StressDivergenceBeam::_rot_var
protected

Variable numbers corresponding to rotational variables.

Definition at line 55 of file StressDivergenceBeam.h.

Referenced by computeOffDiagJacobian(), and StressDivergenceBeam().

◆ _total_rotation

const MaterialProperty<RankTwoTensor>& StressDivergenceBeam::_total_rotation
protected

Rotational transformation from global to current beam local coordinate system.

Definition at line 82 of file StressDivergenceBeam.h.

Referenced by computeResidual().

◆ _total_rotation_old

const MaterialProperty<RankTwoTensor>* StressDivergenceBeam::_total_rotation_old
protected

Rotational transformation from global to old beam local coordinate system.

Definition at line 100 of file StressDivergenceBeam.h.

Referenced by computeDynamicTerms().

◆ _total_rotation_older

const MaterialProperty<RankTwoTensor>* StressDivergenceBeam::_total_rotation_older
protected

Rotational transformation from global to older beam local coordinate system.

Definition at line 109 of file StressDivergenceBeam.h.

Referenced by computeDynamicTerms().

◆ _zeta

const MaterialProperty<Real>& StressDivergenceBeam::_zeta
protected

Stiffness proportional Rayleigh damping parameter.

Definition at line 85 of file StressDivergenceBeam.h.

Referenced by computeDynamicTerms(), computeJacobian(), and computeOffDiagJacobian().


The documentation for this class was generated from the following files: