www.mooseframework.org
Compute1DFiniteStrain.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 
10 #include "Compute1DFiniteStrain.h"
11 
12 #include "libmesh/quadrature.h"
13 
15 
16 InputParameters
18 {
19  InputParameters params = ComputeFiniteStrain::validParams();
20  params.addClassDescription("Compute strain increment for finite strain in 1D problem");
21 
22  return params;
23 }
24 
25 Compute1DFiniteStrain::Compute1DFiniteStrain(const InputParameters & parameters)
26  : ComputeFiniteStrain(parameters)
27 {
28 }
29 
30 void
32 {
33  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
34  {
35  RankTwoTensor A((*_grad_disp[0])[_qp],
36  (*_grad_disp[1])[_qp],
37  (*_grad_disp[2])[_qp]); // Deformation gradient
38  RankTwoTensor Fbar((*_grad_disp_old[0])[_qp],
39  (*_grad_disp_old[1])[_qp],
40  (*_grad_disp_old[2])[_qp]); // Old Deformation gradient
41 
42  // Compute the displacement gradient dUy/dy and dUz/dz value for 1D problems
43  A(1, 1) = computeGradDispYY();
44  A(2, 2) = computeGradDispZZ();
45 
46  Fbar(1, 1) = computeGradDispYYOld();
47  Fbar(2, 2) = computeGradDispZZOld();
48 
49  // Gauss point deformation gradient
50  _deformation_gradient[_qp] = A;
51  _deformation_gradient[_qp].addIa(1.0);
52 
53  A -= Fbar; // very nearly A = gradU - gradUold, adapted to cylindrical coords
54 
55  Fbar.addIa(1.0); // Fbar = ( I + gradUold)
56 
57  // Incremental deformation gradient _Fhat = I + A Fbar^-1
58  _Fhat[_qp] = A * Fbar.inverse();
59  _Fhat[_qp].addIa(1.0);
60  }
61 
62  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
64 }
Compute1DFiniteStrain.h
Compute1DFiniteStrain::computeProperties
void computeProperties() override
Definition: Compute1DFiniteStrain.C:31
Compute1DFiniteStrain::computeGradDispYYOld
virtual Real computeGradDispYYOld()=0
Computes the old dUy/dY; as a virtual function, this function is overwritten for the specific geometr...
ComputeFiniteStrain
ComputeFiniteStrain defines a strain increment and rotation increment, for finite strains.
Definition: ComputeFiniteStrain.h:22
ComputeIncrementalStrainBase::_grad_disp_old
std::vector< const VariableGradient * > _grad_disp_old
Definition: ComputeIncrementalStrainBase.h:36
Compute1DFiniteStrain::validParams
static InputParameters validParams()
Definition: Compute1DFiniteStrain.C:17
ComputeFiniteStrain::_Fhat
std::vector< RankTwoTensor > _Fhat
Definition: ComputeFiniteStrain.h:37
Compute1DFiniteStrain::Compute1DFiniteStrain
Compute1DFiniteStrain(const InputParameters &parameters)
Definition: Compute1DFiniteStrain.C:25
Compute1DFiniteStrain::computeGradDispYY
virtual Real computeGradDispYY()=0
Computes the current dUy/dY; as a virtual function, this function is overwritten for the specific geo...
defineLegacyParams
defineLegacyParams(Compute1DFiniteStrain)
Compute1DFiniteStrain
Compute1DFiniteStrain defines a strain increment for finite strains in 1D problems,...
Definition: Compute1DFiniteStrain.h:24
ComputeFiniteStrain::computeQpStrain
virtual void computeQpStrain()
Definition: ComputeFiniteStrain.C:105
ComputeIncrementalStrainBase::_deformation_gradient
MaterialProperty< RankTwoTensor > & _deformation_gradient
Definition: ComputeIncrementalStrainBase.h:42
Compute1DFiniteStrain::computeGradDispZZ
virtual Real computeGradDispZZ()=0
Computes the current dUz/dz; as a virtual function, this function is overwritten for the specific geo...
Compute1DFiniteStrain::computeGradDispZZOld
virtual Real computeGradDispZZOld()=0
Computes the old dUz/dz; as a virtual function, this function is overwritten for the specific geometr...
RankTwoTensorTempl< Real >
ComputeFiniteStrain::validParams
static InputParameters validParams()
Definition: ComputeFiniteStrain.C:27
ComputeStrainBase::_grad_disp
std::vector< const VariableGradient * > _grad_disp
Definition: ComputeStrainBase.h:42