Panzer  Version of the Day
Panzer_ResponseMESupportBuilderBase.hpp
Go to the documentation of this file.
1 #ifndef __Panzer_ResponseMESupportBuilderBase_hpp__
2 #define __Panzer_ResponseMESupportBuilderBase_hpp__
3 
4 #include "Teuchos_RCP.hpp"
5 
6 #include "PanzerDiscFE_config.hpp"
7 
8 #include "Panzer_Traits.hpp"
12 
13 namespace panzer {
14 
20 public:
22 
27  virtual void setDerivativeInformation(const Teuchos::RCP<const panzer::LinearObjFactory<panzer::Traits> > & linearObjFactory) = 0;
28 
33 
38 
43  return Teuchos::null;
44  }
45 
46 #ifdef Panzer_BUILD_HESSIAN_SUPPORT
47 
50  virtual Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase> buildHessianFactory() const = 0;
51 #endif
52 
56  template <typename T>
58  { return Teuchos::null; }
59 };
60 
61 template < >
62 inline Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase> ResponseMESupportBuilderBase::build<panzer::Traits::Residual>() const
63 { return buildValueFactory(); }
64 
65 template < >
66 inline Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase> ResponseMESupportBuilderBase::build<panzer::Traits::Jacobian>() const
67 { return buildDerivativeFactory(); }
68 
69 template < >
70 inline Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase> ResponseMESupportBuilderBase::build<panzer::Traits::Tangent>() const
71 { return buildTangentFactory(); }
72 
73 #ifdef Panzer_BUILD_HESSIAN_SUPPORT
74 template < >
75 inline Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase> ResponseMESupportBuilderBase::build<panzer::Traits::Hessian>() const
76 { return buildHessianFactory(); }
77 #endif
78 
79 }
80 
81 #endif
virtual Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > buildTangentFactory() const
Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > build() const
virtual void setDerivativeInformation(const Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > &linearObjFactory)=0
virtual Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > buildDerivativeFactory() const =0
virtual Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > buildValueFactory() const =0