23 "This user object calculates the small strain from displacement gradients. "
24 "It requires 1 to 3 displacement variables, which are used to compute the strain tensor.");
26 "displacements",
"The displacements to use to calculate the strain.");
32 auto disp_vars = getParam<std::vector<NonlinearVariableName>>(
"displacements");
33 if (disp_vars.size() < 1 || disp_vars.size() > 3)
34 mooseError(
"TorchSmallStrain requires 1 to 3 displacement variables, got ", disp_vars.size());
50 auto du = at::stack({dux, duy, duz}, -2);
registerMooseObject("SolidMechanicsApp", TorchSmallStrain)
void mooseError(Args &&... args) const
const at::Tensor & getGradient(const std::string &var_name)
TorchFEInterpolation & _fe
static InputParameters validParams()
TorchSmallStrain(const InputParameters ¶meters)
void forward() override
Calculate small strain from displacement gradients.
const at::Tensor * _grad_disp_x
Displacement gradients.
const at::Tensor * _grad_disp_y
static InputParameters validParams()
const at::Tensor * _grad_disp_z
at::Tensor fullToMandel(const at::Tensor &full)