double StressCoefficient::Eval(ElementTransformation &T, const IntegrationPoint &ip) { MFEM_ASSERT(u != NULL, "displacement field is not set"); double L = lambda.Eval(T, ip); double M = mu.Eval(T, ip); u->GetVectorGradient(T, grad); if (si == sj) { double div_u = grad.Trace(); return L*div_u + 2*M*grad(si,si); } else { return M*(grad(si,sj) + grad(sj,si)); } }