Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_ResponseMESupportBuilderBase.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Panzer: A partial differential equation assembly
4 // engine for strongly coupled complex multiphysics systems
5 //
6 // Copyright 2011 NTESS and the Panzer contributors.
7 // SPDX-License-Identifier: BSD-3-Clause
8 // *****************************************************************************
9 // @HEADER
10 
11 #ifndef __Panzer_ResponseMESupportBuilderBase_hpp__
12 #define __Panzer_ResponseMESupportBuilderBase_hpp__
13 
14 #include "Teuchos_RCP.hpp"
15 
16 #include "PanzerDiscFE_config.hpp"
17 
18 #include "Panzer_Traits.hpp"
21 #include "Panzer_GlobalIndexer.hpp"
22 
23 namespace panzer {
24 
30 public:
32 
37  virtual void setDerivativeInformation(const Teuchos::RCP<const panzer::LinearObjFactory<panzer::Traits> > & linearObjFactory) = 0;
38 
43 
48 
53  return Teuchos::null;
54  }
55 
56 #ifdef Panzer_BUILD_HESSIAN_SUPPORT
57 
61 #endif
62 
66  template <typename T>
68  { return Teuchos::null; }
69 };
70 
71 template < >
72 inline Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase> ResponseMESupportBuilderBase::build<panzer::Traits::Residual>() const
73 { return buildValueFactory(); }
74 
75 template < >
76 inline Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase> ResponseMESupportBuilderBase::build<panzer::Traits::Jacobian>() const
77 { return buildDerivativeFactory(); }
78 
79 template < >
80 inline Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase> ResponseMESupportBuilderBase::build<panzer::Traits::Tangent>() const
81 { return buildTangentFactory(); }
82 
83 #ifdef Panzer_BUILD_HESSIAN_SUPPORT
84 template < >
85 inline Teuchos::RCP<panzer::ResponseEvaluatorFactoryBase> ResponseMESupportBuilderBase::build<panzer::Traits::Hessian>() const
86 { return buildHessianFactory(); }
87 #endif
88 
89 }
90 
91 #endif
virtual Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > buildTangentFactory() const
Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > build() const
virtual Teuchos::RCP< panzer::ResponseEvaluatorFactoryBase > buildHessianFactory() const =0
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