Go to the documentation of this file.
12 #include "libmesh/quadrature.h"
20 params.addClassDescription(
21 "Compute a strain increment and rotation increment for finite strains in 2D geometries.");
23 MooseEnum outOfPlaneDirection(
"x y z",
"z");
24 params.addParam<MooseEnum>(
25 "out_of_plane_direction", outOfPlaneDirection,
"The direction of the out-of-plane strain.");
31 _out_of_plane_direction(getParam<MooseEnum>(
"out_of_plane_direction"))
38 for (
unsigned int i = 0; i < 3; ++i)
47 _disp[i] = &coupledValue(
"displacements", i);
48 _grad_disp[i] = &coupledGradient(
"displacements", i);
62 Real ave_dfgrd_det = 0.0;
64 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
90 _Fhat[_qp] = A * Fbar.inverse();
91 _Fhat[_qp].addIa(1.0);
96 ave_Fhat +=
_Fhat[_qp] * _JxW[_qp] * _coord[_qp];
109 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
114 _Fhat[_qp] *= std::cbrt(ave_Fhat.det() /
_Fhat[_qp].det());
127 mooseError(
"For 2D simulations where the out-of-plane direction is x or y the number of "
128 "supplied displacements must be three.");
130 mooseError(
"For 2D simulations where the out-of-plane direction is z the number of supplied "
131 "displacements must be two.");
virtual void displacementIntegrityCheck() override
const Real & _current_elem_volume
std::vector< const VariableValue * > _disp
Compute2DFiniteStrain defines a strain increment and a rotation increment for finite strains in 2D ge...
ComputeFiniteStrain defines a strain increment and rotation increment, for finite strains.
virtual void computeProperties() override
std::vector< const VariableGradient * > _grad_disp_old
std::vector< RankTwoTensor > _Fhat
void initialSetup() override
unsigned int _ndisp
Coupled displacement variables.
Compute2DFiniteStrain(const InputParameters ¶meters)
virtual void computeQpStrain()
MaterialProperty< RankTwoTensor > & _deformation_gradient
virtual Real computeOutOfPlaneGradDisp()=0
Computes the current out-of-plane component of the displacement gradient; as a virtual function,...
const unsigned int _out_of_plane_direction
virtual Real computeOutOfPlaneGradDispOld()=0
Computes the old out-of-plane component of the displacement gradient; as a virtual function,...
static InputParameters validParams()
const bool _volumetric_locking_correction
std::vector< const VariableGradient * > _grad_disp
defineLegacyParams(Compute2DFiniteStrain)
static InputParameters validParams()