14 #include "RankTwoTensor.h"
24 params.addClassDescription(
25 "Material for storing the global strain values from the scalar variable");
26 params.addParam<std::string>(
"base_name",
27 "Optional parameter that allows the user to define "
28 "multiple mechanics material systems on the same "
29 "block, i.e. for multiple phases");
30 params.addCoupledVar(
"scalar_global_strain",
"Scalar variable for global strain");
31 params.addCoupledVar(
"displacements",
"The name of the displacement variables");
32 params.addRequiredParam<UserObjectName>(
"global_strain_uo",
33 "The name of the GlobalStrainUserObject");
39 : Material(parameters),
40 _base_name(isParamValid(
"base_name") ? getParam<std::string>(
"base_name") +
"_" :
""),
41 _scalar_global_strain(coupledScalarValue(
"scalar_global_strain")),
42 _global_strain(declareProperty<
RankTwoTensor>(_base_name +
"global_strain")),
44 _periodic_dir(_pst.getPeriodicDirections()),
45 _dim(_mesh.dimension()),
46 _ndisp(coupledComponents(
"displacements"))
62 for (
unsigned int dir = 0; dir <
_dim; ++dir)
64 for (
unsigned int var = 0; var <
_ndisp; ++var)
65 strain(dir, var) = 0.0;
67 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)