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>
28 template <
typename EvalT,
typename LO,
typename GO>
40 if(requiresCellIntegral_) {
41 std::string
field = (quadPointField_==
"" ? responseName : quadPointField_);
52 =
Teuchos::rcp(
new Integrator_Scalar<EvalT,panzer::Traits>(pl));
54 this->
template registerEvaluator<EvalT>(fm, eval);
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) {
82 std::string
field = (quadPointField_==
"" ? responseName : quadPointField_);
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...
ParameterList & set(std::string const &name, T const &value, std::string const &docString="", RCP< const ParameterEntryValidator > const &validator=null)
virtual bool typeSupported() const
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
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
void setRequiresDirichletAdjustment(bool b)
PHX::MDField< const ScalarT, Cell, IP > field
const panzer::CellData & cellData() const
#define TEUCHOS_ASSERT(assertion_test)
virtual Teuchos::RCP< ResponseBase > buildResponseObject(const std::string &responseName) const