11#ifndef __Panzer_ResponseEvaluatorFactory_ExtremeValue_hpp__
12#define __Panzer_ResponseEvaluatorFactory_ExtremeValue_hpp__
16#include "PanzerDiscFE_config.hpp"
30template <
typename EvalT,
typename LO,
typename GO>
36 bool requiresCellReduction=
true,
38 const std::string & quadPointField=
"",
40 const Teuchos::RCP<const panzer::GlobalIndexer> & globalIndexer=Teuchos::null,
41 bool applyDirichletToDerivative=
false,
42 std::string in_prefix=
"")
48 TEUCHOS_ASSERT((linearObjFactory==Teuchos::null && globalIndexer==Teuchos::null) ||
49 (linearObjFactory!=Teuchos::null && globalIndexer!=Teuchos::null));
63 virtual Teuchos::RCP<ResponseBase>
buildResponseObject(
const std::string & responseName)
const;
66 const std::vector<WorksetDescriptor> & )
const
83 const Teuchos::ParameterList & user_data)
const;
110template <
typename LO,
typename GO>
126 const Teuchos::RCP<const panzer::GlobalIndexer> & in_globalIndexer)
137 using Teuchos::rcp_dynamic_cast;
140 rcp_dynamic_cast<const panzer::GlobalIndexer>(in_linearObjFactory->getDomainGlobalIndexer(),
true));
143 template <
typename T>
144 Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase>
build()
const
157#ifdef Panzer_BUILD_HESSIAN_SUPPORT
Object that contains information on the physics and discretization of a block of elements with the SA...
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer_
Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > linearObjFactory_
bool applyDirichletToDerivative_
int getCubatureDegree() const
Accessor method for Cubature degree (can be used by sub classes)
virtual void buildAndRegisterEvaluators(const std::string &responseName, PHX::FieldManager< panzer::Traits > &fm, const panzer::PhysicsBlock &physicsBlock, const Teuchos::ParameterList &user_data) const
virtual Teuchos::RCP< ResponseBase > buildResponseObject(const std::string &responseName, const std::vector< WorksetDescriptor > &) const
bool requiresCellExtreme_
virtual ~ResponseEvaluatorFactory_ExtremeValue()
virtual Teuchos::RCP< ResponseBase > buildResponseObject(const std::string &responseName) const
virtual bool typeSupported() const
std::string quadPointField_
ResponseEvaluatorFactory_ExtremeValue(MPI_Comm comm, int cubatureDegree=1, bool requiresCellReduction=true, bool useMax=true, const std::string &quadPointField="", const Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > &linearObjFactory=Teuchos::null, const Teuchos::RCP< const panzer::GlobalIndexer > &globalIndexer=Teuchos::null, bool applyDirichletToDerivative=false, std::string in_prefix="")
Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > ResponseMESupportBuilderBase::build< panzer::Traits::Tangent >() const
Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > ResponseMESupportBuilderBase::build< panzer::Traits::Residual >() const
Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > ResponseMESupportBuilderBase::build< panzer::Traits::Jacobian >() const
Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > ResponseMESupportBuilderBase::build< panzer::Traits::Hessian >() const
virtual void setDerivativeInformation(const Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > &in_linearObjFactory)
Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > build() const
Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > linearObjFactory
virtual Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > buildHessianFactory() const
void setDerivativeInformation(const Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > &in_linearObjFactory, const Teuchos::RCP< const panzer::GlobalIndexer > &in_globalIndexer)
Teuchos::RCP< const panzer::GlobalIndexer > globalIndexer
std::string quadPointField
virtual Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > buildValueFactory() const
bool applyDirichletToDerivative
virtual ~ExtremeValueResponse_Builder()
virtual Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > buildTangentFactory() const
virtual Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > buildDerivativeFactory() const
ExtremeValueResponse_Builder()