12 #include "libmesh/quadrature.h" 18 params.
addClassDescription(
"Compute strain increment for incremental strains in 2D geometries.");
20 MooseEnum outOfPlaneDirection(
"x y z",
"z");
22 "out_of_plane_direction", outOfPlaneDirection,
"The direction of the out-of-plane strain.");
28 _out_of_plane_direction(getParam<
MooseEnum>(
"out_of_plane_direction"))
35 for (
unsigned int i = 0; i < 3; ++i)
73 total_strain_increment = 0.5 * (
A +
A.transpose());
80 mooseError(
"For 2D simulations where the out-of-plane direction is x or y the number of " 81 "supplied displacements must be three.");
83 mooseError(
"For 2D simulations where the out-of-plane direction is z the number of supplied " 84 "displacements must be two.");
FEProblemBase & _fe_problem
static InputParameters validParams()
const unsigned int _ndisp
Coupled displacement variables.
const VariableGradient & _grad_zero
const MooseArray< ADRealVectorValue > & _ad_grad_zero
virtual void computeTotalStrainIncrement(ADRankTwoTensor &total_strain_increment) override
Computes the current and old deformation gradients with the assumptions for 2D geometries, including plane strain, generalized plane strain, and axisymmetric, and returns the total strain increment tensor.
const ADVariableGradient & adCoupledGradient(const std::string &var_name, unsigned int comp=0) const
virtual void displacementIntegrityCheck() override
ADComputeIncrementalStrainTempl defines a strain increment and rotation increment (=1)...
const ADVariableValue & adCoupledValue(const std::string &var_name, unsigned int comp=0) const
static RankTwoTensorTempl initializeFromRows(const libMesh::TypeVector< ADReal > &row0, const libMesh::TypeVector< ADReal > &row1, const libMesh::TypeVector< ADReal > &row2)
virtual Real computeOutOfPlaneGradDispOld()=0
Computes the old out-of-plane component of the displacement gradient; as a virtual function...
const unsigned int _out_of_plane_direction
virtual const VariableGradient & coupledGradientOld(const std::string &var_name, unsigned int comp=0) const
std::vector< const ADVariableGradient * > _grad_disp
Gradient of displacements.
std::vector< const VariableGradient * > _grad_disp_old
void mooseError(Args &&... args) const
virtual ADReal computeOutOfPlaneGradDisp()=0
Computes the current out-of-plane component of the displacement gradient; as a virtual function...
const MooseArray< ADReal > & _ad_zero
ADCompute2DIncrementalStrain(const InputParameters ¶meters)
std::vector< const ADVariableValue * > _disp
Displacement variables.
virtual bool isTransient() const override
void initialSetup() override
static InputParameters validParams()