Go to the documentation of this file.
12 #include "libmesh/quadrature.h"
20 params.addClassDescription(
"Compute a small strain in a plane strain configuration.");
22 MooseEnum outOfPlaneDirection(
"x y z",
"z");
23 params.addParam<MooseEnum>(
24 "out_of_plane_direction", outOfPlaneDirection,
"The direction of the out-of-plane strain.");
30 _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);
60 Real volumetric_strain = 0.0;
61 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
70 volumetric_strain +=
_total_strain[_qp].trace() * _JxW[_qp] * _coord[_qp];
76 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
80 const Real correction = (volumetric_strain -
_total_strain[_qp].trace()) / 3.0;
98 mooseError(
"For 2D simulations where the out-of-plane direction is x or y the number of "
99 "supplied displacements must be three.");
101 mooseError(
"For 2D simulations where the out-of-plane direction is z the number of supplied "
102 "displacements must be two.");
Compute2DSmallStrain defines a strain tensor, assuming small strains, in 2D geometries / simulations.
Compute2DSmallStrain(const InputParameters ¶meters)
const Real & _current_elem_volume
virtual void computeProperties() override
std::vector< const VariableValue * > _disp
virtual Real computeOutOfPlaneStrain()=0
virtual void displacementIntegrityCheck() override
const unsigned int _out_of_plane_direction
ComputeSmallStrain defines a strain tensor, assuming small strains.
defineLegacyParams(Compute2DSmallStrain)
unsigned int _ndisp
Coupled displacement variables.
static InputParameters validParams()
MaterialProperty< RankTwoTensor > & _mechanical_strain
void initialSetup() override
std::vector< const MaterialProperty< RankTwoTensor > * > _eigenstrains
MaterialProperty< RankTwoTensor > & _total_strain
const bool _volumetric_locking_correction
static InputParameters validParams()
std::vector< const VariableGradient * > _grad_disp