void ElasticityResid<EvalT, Traits>:: evaluateFields(typename Traits::EvalData workset) { typedef Intrepid::FunctionSpaceTools FST; for (std::size_t cell=0; cell < workset.numCells; ++cell) { for (std::size_t node=0; node < numNodes; ++node) { for (std::size_t dim=0; dim<numDims; dim++) ExResidual(cell,node,dim)=0.0; for (std::size_t qp=0; qp < numQPs; ++qp) { for (std::size_t i=0; i<numDims; i++) { for (std::size_t dim=0; dim<numDims; dim++) { ExResidual(cell,node,i) += Stress(cell, qp, i, dim) * wGradBF(cell, node, qp, dim); } } } } } if (workset.transientTerms && enableTransient) for (std::size_t cell=0; cell < workset.numCells; ++cell) { for (std::size_t node=0; node < numNodes; ++node) { for (std::size_t qp=0; qp < numQPs; ++qp) { for (std::size_t i=0; i<numDims; i++) { ExResidual(cell,node,i) += uDotDot(cell, qp, i) * wBF(cell, node, qp); } } } } // FST::integrate<ScalarT>(ExResidual, Stress, wGradBF, Intrepid::COMP_CPP, false); // "false" overwrites }
void TLPoroPlasticityResidMomentum<EvalT, Traits>::evaluateFields( typename Traits::EvalData workset) { typedef Intrepid2::FunctionSpaceTools<PHX::Device> FST; typedef Intrepid2::RealSpaceTools<PHX::Device> RST; RST::inverse(F_inv, defgrad.get_view()); RST::transpose(F_invT, F_inv); FST::scalarMultiplyDataData(JF_invT, J.get_view(), F_invT); // FST::tensorMultiplyDataData(P.get_view(), TotalStress.get_view(), JF_invT); for (int cell = 0; cell < workset.numCells; ++cell) { for (int node = 0; node < numNodes; ++node) { for (int dim = 0; dim < numDims; dim++) ExResidual(cell, node, dim) = 0.0; for (int qp = 0; qp < numQPs; ++qp) { for (int i = 0; i < numDims; i++) { for (int dim = 0; dim < numDims; dim++) { ExResidual(cell, node, i) += TotalStress(cell, qp, i, dim) * wGradBF(cell, node, qp, dim); } } } } } if (workset.transientTerms && enableTransient) for (int cell = 0; cell < workset.numCells; ++cell) { for (int node = 0; node < numNodes; ++node) { for (int qp = 0; qp < numQPs; ++qp) { for (int i = 0; i < numDims; i++) { ExResidual(cell, node, i) += uDotDot(cell, qp, i) * wBF(cell, node, qp); } } } } // FST::integrate(ExResidual.get_view(), TotalStress.get_view(), // wGradBF.get_view(), false); // "false" overwrites }