https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ComputeIncrementalBeamStrain.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 "Material.h"
13#include "RankTwoTensor.h"
14
15// Forward Declarations
16class Function;
17
23{
24public:
26
28
29 virtual void computeProperties() override;
30
31protected:
32 virtual void initQpStatefulProperties() override;
33
35 void computeQpStrain();
36
39
41 virtual void computeRotation();
42
44 const bool _has_Ix;
45
47 unsigned int _nrot;
48
50 unsigned int _ndisp;
51
53 std::vector<unsigned int> _rot_num;
54
56 std::vector<unsigned int> _disp_num;
57
60
63
66
69
72
75
78
81
84
87
90
93
96
99
102
105
108
111
114
117
120
122 const bool _large_strain;
123
125 RealVectorValue _grad_disp_0_local_t;
126
128 RealVectorValue _grad_rot_0_local_t;
129
131 RealVectorValue _avg_rot_local_t;
132
134 std::vector<MaterialPropertyName> _eigenstrain_names;
135
137 std::vector<const MaterialProperty<RealVectorValue> *> _disp_eigenstrain;
138
140 std::vector<const MaterialProperty<RealVectorValue> *> _rot_eigenstrain;
141
143 std::vector<const MaterialProperty<RealVectorValue> *> _disp_eigenstrain_old;
144
146 std::vector<const MaterialProperty<RealVectorValue> *> _rot_eigenstrain_old;
147
149 RealVectorValue _disp0, _disp1, _rot0, _rot1;
150
154 std::vector<unsigned int> _soln_disp_index_0;
155
157 std::vector<unsigned int> _soln_disp_index_1;
158
160 std::vector<unsigned int> _soln_rot_index_0;
161
163 std::vector<unsigned int> _soln_rot_index_1;
164
167
170
173};
ComputeIncrementalBeamStrain defines a displacement and rotation strain increment and rotation increm...
MaterialProperty< RealVectorValue > & _mech_disp_strain_increment
Mechanical displacement strain increment (after removal of eigenstrains) integrated over the cross-se...
std::vector< const MaterialProperty< RealVectorValue > * > _rot_eigenstrain_old
Vector of old rotational eigenstrains.
MaterialProperty< RankTwoTensor > & _K11
Stiffness matrix between displacement DOFs of same node or across nodes.
const VariableValue & _Ix
Coupled variable for the second moment of area in x direction, i.e., integral of (y^2 + z^2)*dA over ...
MaterialProperty< RankTwoTensor > & _initial_rotation
Rotational transformation from global coordinate system to initial beam local configuration.
const VariableValue & _Az
Coupled variable for the first moment of area in z direction, i.e., integral of z*dA over the cross-s...
MaterialProperty< RealVectorValue > & _total_rot_strain
Current total rotational strain integrated over the cross-section in global coordinate system.
unsigned int _nrot
Number of coupled rotational variables.
virtual void initQpStatefulProperties() override
std::vector< unsigned int > _disp_num
Variable numbers corresponding to the displacement variables.
MaterialProperty< RealVectorValue > & _mech_rot_strain_increment
Mechanical rotation strain increment (after removal of eigenstrains) integrated over the cross-sectio...
std::vector< unsigned int > _soln_rot_index_0
Indices of solution vector corresponding to rotation DOFs at the node 0.
unsigned int _ndisp
Number of coupled displacement variables.
const VariableValue & _area
Coupled variable for the beam cross-sectional area.
MaterialProperty< RankTwoTensor > & _K22
Stiffness matrix between rotation DOFs of the same node.
RealVectorValue _disp0
Displacement and rotations at the two nodes of the beam in the global coordinate system.
std::vector< const MaterialProperty< RealVectorValue > * > _disp_eigenstrain_old
Vector of old displacement eigenstrains.
MaterialProperty< RankTwoTensor > & _K21
Stiffness matrix between displacement DOFs and rotation DOFs of the same node.
const Function *const _prefactor_function
Prefactor function to multiply the elasticity tensor with.
void computeStiffnessMatrix()
Computes the stiffness matrices.
std::vector< unsigned int > _soln_rot_index_1
Indices of solution vector corresponding to rotation DOFs at the node 1.
std::vector< MaterialPropertyName > _eigenstrain_names
Vector of beam eigenstrain names.
virtual void computeRotation()
Computes the rotation matrix at time t. For small rotation scenarios, the rotation matrix at time t i...
NonlinearSystemBase & _nonlinear_sys
Reference to the nonlinear system object.
RealVectorValue _avg_rot_local_t
Average rotation calculated in the beam local configuration at time t.
RankTwoTensor & _original_local_config
Rotational transformation from global coordinate system to initial beam local configuration.
const MaterialProperty< RealVectorValue > & _total_rot_strain_old
Old total rotational strain integrated over the cross-section in global coordinate system.
std::vector< unsigned int > _soln_disp_index_1
Indices of solution vector corresponding to displacement DOFs at the node 1.
MaterialProperty< Real > & _effective_stiffness
Psuedo stiffness for critical time step computation.
const VariableValue & _Iz
Coupled variable for the second moment of area in z direction, i.e., integral of z^2*dA over the cros...
MaterialProperty< RankTwoTensor > & _K22_cross
Stiffness matrix between rotation DOFs of different nodes.
std::vector< const MaterialProperty< RealVectorValue > * > _rot_eigenstrain
Vector of current rotational eigenstrains.
const MaterialProperty< RealVectorValue > & _total_disp_strain_old
Old total displacement strain integrated over the cross-section in global coordinate system.
void computeQpStrain()
Computes the displacement and rotation strain increments.
const VariableValue & _Iy
Coupled variable for the second moment of area in y direction, i.e., integral of y^2*dA over the cros...
const bool _large_strain
Boolean flag to turn on large strain calculation.
const bool _has_Ix
Booleans for validity of params.
MaterialProperty< RealVectorValue > & _total_disp_strain
Current total displacement strain integrated over the cross-section in global coordinate system.
RealVectorValue _grad_rot_0_local_t
Gradient of rotation calculated in the beam local configuration at time t.
const MaterialProperty< RealVectorValue > & _material_stiffness
Material stiffness vector that relates displacement strain increments to force increments.
std::vector< const MaterialProperty< RealVectorValue > * > _disp_eigenstrain
Vector of current displacement eigenstrains.
MaterialProperty< Real > & _original_length
Initial length of the beam.
MaterialProperty< RankTwoTensor > & _K21_cross
Stiffness matrix between displacement DOFs of one node to rotational DOFs of another node.
const VariableValue & _Ay
Coupled variable for the first moment of area in y direction, i.e., integral of y*dA over the cross-s...
RealVectorValue _grad_disp_0_local_t
Gradient of displacement calculated in the beam local configuration at time t.
MaterialProperty< RankTwoTensor > & _total_rotation
Rotational transformation from global coordinate system to beam local configuration at time t.
std::vector< unsigned int > _soln_disp_index_0
Indices of solution vector corresponding to displacement DOFs at the node 0.
std::vector< unsigned int > _rot_num
Variable numbers corresponding to the rotational variables.
const InputParameters & parameters() const
VariableValueTempl< false > VariableValue