20 params.addParam<Real>(
21 "reference_flow_rate", 0.001,
"Reference flow rate for rate dependent flow");
22 params.addParam<Real>(
"flow_rate_exponent", 10.0,
"Power law exponent in flow rate equation");
23 params.addParam<Real>(
"flow_rate_tol", 1e3,
"Tolerance for flow rate");
24 params.addClassDescription(
25 "User object to evaluate power law flow rate and flow direction based on J2");
32 _ref_flow_rate(getParam<Real>(
"reference_flow_rate")),
33 _flow_rate_exponent(getParam<Real>(
"flow_rate_exponent")),
34 _flow_rate_tol(getParam<Real>(
"flow_rate_tol"))
64 val = 1.5 / eqv_stress *
_ce[qp] * pk2_dev *
_ce[qp];
71 const std::string & coupled_var_name,
89 const std::string & coupled_var_name,
105 dseqv_dpk2dev.zero();
106 if (eqv_stress > 0.0)
107 dseqv_dpk2dev = 1.5 / eqv_stress * tau *
_ce[qp];
112 for (
unsigned int i = 0; i < LIBMESH_DIM; ++i)
113 for (
unsigned int j = 0; j < LIBMESH_DIM; ++j)
114 for (
unsigned int k = 0; k < LIBMESH_DIM; ++k)
115 for (
unsigned int l = 0; l < LIBMESH_DIM; ++l)
117 dpk2dev_dpk2(i, j, k, l) = 0.0;
118 if (i == k && j == l)
119 dpk2dev_dpk2(i, j, k, l) = 1.0;
120 dpk2dev_dpk2(i, j, k, l) -= ce_inv(i, j) *
_ce[qp](k, l) / 3.0;
122 val = dflowrate_dseqv * dpk2dev_dpk2.transposeMajor() * dseqv_dpk2dev;
131 return pk2 - (pk2.doubleContraction(ce) * ce.inverse()) / 3.0;
139 Real val = sdev.doubleContraction(sdev.transpose());
140 return std::sqrt(1.5 * val);