https://mooseframework.inl.gov
ADCompute1DIncrementalStrain.C
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 
11 
12 #include "libmesh/quadrature.h"
13 
16 {
18  params.addClassDescription("Compute strain increment for small strains in 1D problems.");
19  return params;
20 }
21 
23  : ADComputeIncrementalStrain(parameters)
24 {
25 }
26 
27 void
29 {
30  // Deformation gradient calculation for 1D problems
32  (*_grad_disp[0])[_qp], (*_grad_disp[1])[_qp], (*_grad_disp[2])[_qp]);
33 
34  // Old Deformation gradient
36  (*_grad_disp_old[0])[_qp], (*_grad_disp_old[1])[_qp], (*_grad_disp_old[2])[_qp]);
37 
38  // Compute the displacement gradient dUy/dy and dUz/dz value for 1D problems
39  A(1, 1) = computeGradDispYY();
40  A(2, 2) = computeGradDispZZ();
41 
42  Fbar(1, 1) = computeGradDispYYOld();
43  Fbar(2, 2) = computeGradDispZZOld();
44 
45  A -= Fbar; // very nearly A = gradU - gradUold, adapted to cylindrical coords
46 
47  total_strain_increment = 0.5 * (A + A.transpose());
48 }
virtual Real computeGradDispYYOld()=0
Computes the old dUy/dY; as a virtual function, this function is overwritten for the specific geometr...
ADComputeIncrementalStrainTempl defines a strain increment and rotation increment (=1)...
virtual Real computeGradDispZZOld()=0
Computes the old dUz/dZ; as a virtual function, this function is overwritten for the specific geometr...
static RankTwoTensorTempl initializeFromRows(const libMesh::TypeVector< ADReal > &row0, const libMesh::TypeVector< ADReal > &row1, const libMesh::TypeVector< ADReal > &row2)
unsigned int _qp
std::vector< const ADVariableGradient * > _grad_disp
Gradient of displacements.
void computeTotalStrainIncrement(ADRankTwoTensor &total_strain_increment) override
Computes the current and old deformation gradients with the assumptions for axisymmetric 1D problems...
std::vector< const VariableGradient * > _grad_disp_old
virtual ADReal computeGradDispZZ()=0
Computes the current dUz/dZ; as a virtual function, this function is overwritten for the specific geo...
void addClassDescription(const std::string &doc_string)
ADCompute1DIncrementalStrain(const InputParameters &parameters)
virtual ADReal computeGradDispYY()=0
Computes the current dUy/dY; as a virtual function, this function is overwritten for the specific geo...