www.mooseframework.org
Compute1DIncrementalStrain.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 /****************************************************************/
7 
9 
10 #include "libmesh/quadrature.h"
11 
12 template <>
13 InputParameters
15 {
16  InputParameters params = validParams<ComputeIncrementalSmallStrain>();
17  params.addClassDescription("Compute strain increment for small strains in 1D problems.");
18 
19  return params;
20 }
21 
22 Compute1DIncrementalStrain::Compute1DIncrementalStrain(const InputParameters & parameters)
23  : ComputeIncrementalSmallStrain(parameters)
24 {
25 }
26 
27 void
28 Compute1DIncrementalStrain::computeTotalStrainIncrement(RankTwoTensor & total_strain_increment)
29 {
30  // Deformation gradient calculation for 1D problems
31  RankTwoTensor A(
32  (*_grad_disp[0])[_qp], (*_grad_disp[1])[_qp], (*_grad_disp[2])[_qp]); // Deformation gradient
33  RankTwoTensor Fbar((*_grad_disp_old[0])[_qp],
34  (*_grad_disp_old[1])[_qp],
35  (*_grad_disp_old[2])[_qp]); // Old Deformation gradient
36 
37  // Compute the displacement gradient dUy/dy and dUz/dz value for 1D problems
38  A(1, 1) = computeGradDispYY();
39  A(2, 2) = computeGradDispZZ();
40 
41  Fbar(1, 1) = computeGradDispYYOld();
42  Fbar(2, 2) = computeGradDispZZOld();
43 
44  // Gauss point deformation gradient
45  _deformation_gradient[_qp] = A;
46  _deformation_gradient[_qp].addIa(1.0);
47 
48  A -= Fbar; // very nearly A = gradU - gradUold, adapted to cylindrical coords
49 
50  total_strain_increment = 0.5 * (A + A.transpose());
51 }
MaterialProperty< RankTwoTensor > & _deformation_gradient
virtual Real computeGradDispYYOld()=0
Computes the old dUy/dY; as a virtual function, this function is overwritten for the specific geometr...
InputParameters validParams< Compute1DIncrementalStrain >()
virtual Real computeGradDispZZOld()=0
Computes the old dUz/dZ; as a virtual function, this function is overwritten for the specific geometr...
virtual Real computeGradDispZZ()=0
Computes the current dUz/dZ; as a virtual function, this function is overwritten for the specific geo...
Compute1DIncrementalStrain(const InputParameters &parameters)
void computeTotalStrainIncrement(RankTwoTensor &total_strain_increment) override
Computes the current and old deformation gradients with the assumptions for axisymmetric 1D problems...
ComputeIncrementalSmallStrain defines a strain increment and rotation increment (=1), for small strains.
std::vector< const VariableGradient * > _grad_disp_old
virtual Real computeGradDispYY()=0
Computes the current dUy/dY; as a virtual function, this function is overwritten for the specific geo...
InputParameters validParams< ComputeIncrementalSmallStrain >()
std::vector< const VariableGradient * > _grad_disp