www.mooseframework.org
ADCompute1DFiniteStrain.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
15 
16 template <ComputeStage compute_stage>
17 InputParameters
19 {
20  InputParameters params = ADComputeFiniteStrain<compute_stage>::validParams();
21  params.addClassDescription("Compute strain increment for finite strain in 1D problem");
22  return params;
23 }
24 
25 template <ComputeStage compute_stage>
27  : ADComputeFiniteStrain<compute_stage>(parameters)
28 {
29 }
30 
31 template <ComputeStage compute_stage>
32 void
34 {
35  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
36  {
37  ADRankTwoTensor A((*_grad_disp[0])[_qp],
38  (*_grad_disp[1])[_qp],
39  (*_grad_disp[2])[_qp]); // Deformation gradient
40  RankTwoTensor Fbar((*_grad_disp_old[0])[_qp],
41  (*_grad_disp_old[1])[_qp],
42  (*_grad_disp_old[2])[_qp]); // Old Deformation gradient
43 
44  // Compute the displacement gradient dUy/dy and dUz/dz value for 1D problems
45  A(1, 1) = computeGradDispYY();
46  A(2, 2) = computeGradDispZZ();
47 
48  Fbar(1, 1) = computeGradDispYYOld();
49  Fbar(2, 2) = computeGradDispZZOld();
50 
51  A -= Fbar; // very nearly A = gradU - gradUold, adapted to cylindrical coords
52 
53  Fbar.addIa(1.0); // Fbar = ( I + gradUold)
54 
55  // Incremental deformation gradient _Fhat = I + A Fbar^-1
56  _Fhat[_qp] = A * Fbar.inverse();
57  _Fhat[_qp].addIa(1.0);
58  }
59 
60  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
61  computeQpStrain();
62 }
63 
64 // explicit instantiation is required for AD base classes
ADCompute1DFiniteStrain::ADCompute1DFiniteStrain
ADCompute1DFiniteStrain(const InputParameters &parameters)
Definition: ADCompute1DFiniteStrain.C:26
ADCompute1DFiniteStrain.h
ADComputeFiniteStrain::validParams
static InputParameters validParams()
Definition: ADComputeFiniteStrain.C:28
ADComputeFiniteStrain
ADComputeFiniteStrain defines a strain increment and rotation increment, for finite strains.
Definition: ADComputeFiniteStrain.h:21
ADCompute1DFiniteStrain::computeProperties
void computeProperties() override
Definition: ADCompute1DFiniteStrain.C:33
ADCompute1DFiniteStrain
ADCompute1DFiniteStrain defines a strain increment for finite strains in 1D problems,...
Definition: ADCompute1DFiniteStrain.h:22
RankTwoTensorTempl< Real >
defineADLegacyParams
defineADLegacyParams(ADCompute1DFiniteStrain)
ADCompute1DFiniteStrain::validParams
static InputParameters validParams()
Definition: ADCompute1DFiniteStrain.C:18
adBaseClass
adBaseClass(ADCompute1DFiniteStrain)