1 #ifndef __Panzer_ResponseEvaluatorFactory_Functional_impl_hpp__ 2 #define __Panzer_ResponseEvaluatorFactory_Functional_impl_hpp__ 6 #include "PanzerDiscFE_config.hpp" 10 #include "Panzer_Integrator_Scalar.hpp" 18 template <
typename EvalT,
typename LO,
typename GO>
23 response->setRequiresDirichletAdjustment(applyDirichletToDerivative_);
28 template <
typename EvalT,
typename LO,
typename GO>
33 const Teuchos::ParameterList & user_data)
const 40 if(requiresCellIntegral_) {
41 std::string
field = (quadPointField_==
"" ? responseName : quadPointField_);
46 Teuchos::ParameterList pl;
47 pl.set(
"Integral Name",
field);
48 pl.set(
"Integrand Name",
field);
51 Teuchos::RCP<PHX::Evaluator<panzer::Traits> > eval
52 = Teuchos::rcp(
new Integrator_Scalar<EvalT,panzer::Traits>(pl));
54 this->
template registerEvaluator<EvalT>(fm, eval);
60 Teuchos::RCP<FunctionalScatterBase> scatterObj;
61 if(linearObjFactory_!=Teuchos::null) {
63 TEUCHOS_ASSERT(linearObjFactory_->getDomainGlobalIndexer()!=Teuchos::null);
68 if(ugi!=Teuchos::null) {
69 std::vector<Teuchos::RCP<const UniqueGlobalIndexer<LO,GO> > > ugis;
74 else if(bugi!=Teuchos::null) {
78 TEUCHOS_ASSERT(
false);
82 std::string
field = (quadPointField_==
"" ? responseName : quadPointField_);
85 Teuchos::RCP<PHX::Evaluator<panzer::Traits> > eval
88 this->
template registerEvaluator<EvalT>(fm, eval);
91 fm.template requireField<EvalT>(*eval->evaluatedFields()[0]);
95 template <
typename EvalT,
typename LO,
typename GO>
99 if( PHX::typeAsString<EvalT>()==PHX::typeAsString<panzer::Traits::Residual>() ||
100 PHX::typeAsString<EvalT>()==PHX::typeAsString<panzer::Traits::Tangent>()
104 if(PHX::typeAsString<EvalT>()==PHX::typeAsString<panzer::Traits::Jacobian>())
105 return linearObjFactory_!=Teuchos::null;
107 #ifdef Panzer_BUILD_HESSIAN_SUPPORT 108 if(PHX::typeAsString<EvalT>()==PHX::typeAsString<panzer::Traits::Hessian>()) {
109 return linearObjFactory_!=Teuchos::null;
Object that contains information on the physics and discretization of a block of elements with the SA...
virtual bool typeSupported() const
std::vector< Teuchos::RCP< const UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > > nc2c_vector(const std::vector< Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > > &ugis)
virtual void buildAndRegisterEvaluators(const std::string &responseName, PHX::FieldManager< panzer::Traits > &fm, const panzer::PhysicsBlock &physicsBlock, const Teuchos::ParameterList &user_data) const
PHX::MDField< const ScalarT, Cell, IP > field
const panzer::CellData & cellData() const
virtual Teuchos::RCP< ResponseBase > buildResponseObject(const std::string &responseName) const