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));
registerMooseObject("SolidMechanicsApp", NEML2SmallStrain)
void mooseError(Args &&... args) const
const neml2::Tensor & getGradient(const std::string &var_name)
NEML2FEInterpolation & _fe
static InputParameters validParams()
const neml2::Tensor * _grad_disp_z
static InputParameters validParams()
void forward() override
Calculate small strain from displacement gradients.
const neml2::Tensor * _grad_disp_x
Displacement gradients.
const neml2::Tensor * _grad_disp_y
NEML2SmallStrain(const InputParameters ¶meters)