13 #include "neml2/tensors/functions/stack.h" 25 "This user object calculates the small strain from displacement gradients. " 26 "It requires 1 to 3 displacement variables, which are used to compute the strain tensor.");
28 "displacements",
"The displacements to use to calculate the strain.");
34 auto disp_vars = getParam<std::vector<NonlinearVariableName>>(
"displacements");
35 if (disp_vars.size() < 1 || disp_vars.size() > 3)
36 mooseError(
"NEML2SmallStrain requires 1 to 3 displacement variables, got ", disp_vars.size());
50 auto du = neml2::R2(neml2::base_stack({dux, duy, duz}, -2));
const neml2::Tensor & getGradient(const std::string &var_name)
const neml2::Tensor * _grad_disp_x
Displacement gradients.
static InputParameters validParams()
const neml2::Tensor * _grad_disp_z
const neml2::Tensor * _grad_disp_y
registerMooseObject("SolidMechanicsApp", NEML2SmallStrain)
NEML2FEInterpolation & _fe
NEML2SmallStrain(const InputParameters ¶meters)
static InputParameters validParams()
void mooseError(Args &&... args) const
void forward() override
Calculate small strain from displacement gradients.