www.mooseframework.org
ADComputeGreenLagrangeStrain.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 #include "libmesh/quadrature.h"
12 
14 
16 
17 template <ComputeStage compute_stage>
18 InputParameters
20 {
21  InputParameters params = ADComputeStrainBase<compute_stage>::validParams();
22  params.addClassDescription("Compute a Green-Lagrange strain.");
23  return params;
24 }
25 
26 template <ComputeStage compute_stage>
28  const InputParameters & parameters)
29  : ADComputeStrainBase<compute_stage>(parameters)
30 {
31  // error out if unsupported features are to be used
32  if (_global_strain)
33  paramError("global_strain",
34  "Global strain (periodicity) is not yet supported for Green-Lagrange strains");
35  if (!_eigenstrains.empty())
36  paramError("eigenstrain_names",
37  "Eigenstrains are not yet supported for Green-Lagrange strains");
39  paramError("volumetric_locking_correction",
40  "Volumetric locking correction is not implemented for Green-Lagrange strains");
41 }
42 
43 template <ComputeStage compute_stage>
44 void
46 {
47  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
48  {
49  ADRankTwoTensor dxu((*_grad_disp[0])[_qp], (*_grad_disp[1])[_qp], (*_grad_disp[2])[_qp]);
50  ADRankTwoTensor dxuT = dxu.transpose();
51 
52  _mechanical_strain[_qp] = _total_strain[_qp] = (dxuT + dxu + dxuT * dxu) / 2.0;
53  }
54 }
ADComputeGreenLagrangeStrain::validParams
static InputParameters validParams()
Definition: ADComputeGreenLagrangeStrain.C:19
ADComputeGreenLagrangeStrain
ADComputeGreenLagrangeStrain defines a non-linear Green-Lagrange strain tensor.
Definition: ADComputeGreenLagrangeStrain.h:15
ADComputeStrainBase::_eigenstrains
std::vector< const ADMaterialProperty(RankTwoTensor) * > _eigenstrains
Definition: ADComputeStrainBase.h:66
ADComputeGreenLagrangeStrain::ADComputeGreenLagrangeStrain
ADComputeGreenLagrangeStrain(const InputParameters &parameters)
Definition: ADComputeGreenLagrangeStrain.C:27
registerADMooseObject
registerADMooseObject("TensorMechanicsApp", ADComputeGreenLagrangeStrain)
ADComputeGreenLagrangeStrain.h
ADComputeStrainBase
ADADComputeStrainBase is the base class for strain tensors.
Definition: ADComputeStrainBase.h:30
ADComputeGreenLagrangeStrain::computeProperties
virtual void computeProperties() override
Definition: ADComputeGreenLagrangeStrain.C:45
ADComputeStrainBase::validParams
static InputParameters validParams()
Definition: ADComputeStrainBase.C:19
ADComputeStrainBase::_volumetric_locking_correction
const bool _volumetric_locking_correction
Definition: ADComputeStrainBase.h:70
defineADLegacyParams
defineADLegacyParams(ADComputeGreenLagrangeStrain)