43 #ifndef __Panzer_ResponseEvaluatorFactory_Functional_impl_hpp__
44 #define __Panzer_ResponseEvaluatorFactory_Functional_impl_hpp__
48 #include "PanzerDiscFE_config.hpp"
52 #include "Panzer_Integrator_Scalar.hpp"
60 template <
typename EvalT,
typename LO,
typename GO>
70 template <
typename EvalT,
typename LO,
typename GO>
82 if(requiresCellIntegral_) {
83 std::string
field = (quadPointField_==
"" ? responseName : quadPointField_);
96 this->
template registerEvaluator<EvalT>(fm, eval);
103 if(linearObjFactory_!=Teuchos::null) {
105 TEUCHOS_ASSERT(linearObjFactory_->getDomainGlobalIndexer()!=Teuchos::null);
108 auto bugi = Teuchos::rcp_dynamic_cast<
const BlockedDOFManager<LO,GO> >(linearObjFactory_->getDomainGlobalIndexer());
110 if(ugi!=Teuchos::null) {
111 std::vector<Teuchos::RCP<const UniqueGlobalIndexer<LO,GO> > > ugis;
116 else if(bugi!=Teuchos::null) {
124 std::string
field = (quadPointField_==
"" ? responseName : quadPointField_);
130 this->
template registerEvaluator<EvalT>(fm, eval);
133 fm.template requireField<EvalT>(*eval->evaluatedFields()[0]);
137 template <
typename EvalT,
typename LO,
typename GO>
141 if( PHX::typeAsString<EvalT>()==PHX::typeAsString<panzer::Traits::Residual>() ||
142 PHX::typeAsString<EvalT>()==PHX::typeAsString<panzer::Traits::Tangent>()
146 if(PHX::typeAsString<EvalT>()==PHX::typeAsString<panzer::Traits::Jacobian>())
147 return linearObjFactory_!=Teuchos::null;
149 #ifdef Panzer_BUILD_HESSIAN_SUPPORT
150 if(PHX::typeAsString<EvalT>()==PHX::typeAsString<panzer::Traits::Hessian>()) {
151 return linearObjFactory_!=Teuchos::null;