www.mooseframework.org
Compute2DIncrementalStrain.C
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
8 
9 #include "libmesh/quadrature.h"
10 
11 template <>
12 InputParameters
14 {
15  InputParameters params = validParams<ComputeIncrementalSmallStrain>();
16  params.addClassDescription("Compute strain increment for incremental strains in 2D geometries.");
17  return params;
18 }
19 
20 Compute2DIncrementalStrain::Compute2DIncrementalStrain(const InputParameters & parameters)
21  : ComputeIncrementalSmallStrain(parameters)
22 {
23 }
24 
25 void
26 Compute2DIncrementalStrain::computeTotalStrainIncrement(RankTwoTensor & total_strain_increment)
27 {
28  // Deformation gradient calculation for 2D problems
29  // Note: x_disp is the radial displacement, y_disp is the axial displacement
30  RankTwoTensor A(
31  (*_grad_disp[0])[_qp], (*_grad_disp[1])[_qp], (*_grad_disp[2])[_qp]); // Deformation gradient
32  RankTwoTensor Fbar((*_grad_disp_old[0])[_qp],
33  (*_grad_disp_old[1])[_qp],
34  (*_grad_disp_old[2])[_qp]); // Old Deformation gradient
35 
36  // Compute the displacement gradient (2,2) value for plane strain, generalized plane strain, or
37  // axisymmetric problems
38  A(2, 2) = computeGradDispZZ();
39  Fbar(2, 2) = computeGradDispZZOld();
40 
41  _deformation_gradient[_qp] = A;
42  _deformation_gradient[_qp].addIa(1.0);
43 
44  A -= Fbar; // very nearly A = gradU - gradUold, adapted to cylindrical coords
45 
46  total_strain_increment = 0.5 * (A + A.transpose());
47 }
Compute2DIncrementalStrain(const InputParameters &parameters)
InputParameters validParams< Compute2DIncrementalStrain >()
MaterialProperty< RankTwoTensor > & _deformation_gradient
virtual Real computeGradDispZZOld()=0
Computes the old out-of-plane displacement gradient; as a virtual function, this function is overwrit...
ComputeIncrementalSmallStrain defines a strain increment and rotation increment (=1), for small strains.
std::vector< const VariableGradient * > _grad_disp_old
virtual void computeTotalStrainIncrement(RankTwoTensor &total_strain_increment) override
Computes the current and old deformation gradients with the assumptions for 2D geometries, including plane strain, generalized plane strain, and axisymmetric, and returns the total strain increment tensor.
InputParameters validParams< ComputeIncrementalSmallStrain >()
virtual Real computeGradDispZZ()=0
Computes the current out-of-plane displacement gradient; as a virtual function, this function is over...
std::vector< const VariableGradient * > _grad_disp