VertexCFD  0.0-dev
VertexCFD_EvaluatorBase.hpp
1 #ifndef VERTEXCFD_EVALUATORBASE_HPP
2 #define VERTEXCFD_EVALUATORBASE_HPP
3 
4 #include <Panzer_Evaluator_WithBaseImpl.hpp>
5 
6 #include <Phalanx_Evaluator_Derived.hpp>
7 #include <Phalanx_FieldManager.hpp>
8 #include <Phalanx_FieldTag.hpp>
9 
10 #include <Teuchos_RCP.hpp>
11 
12 namespace VertexCFD
13 {
14 //---------------------------------------------------------------------------//
15 template<class EvalType, class Traits>
16 class EvaluatorBase : public panzer::EvaluatorWithBaseImpl<Traits>,
17  public PHX::EvaluatorDerived<EvalType, Traits>
18 {
19  public:
20  using scalar_type = typename EvalType::ScalarT;
21 
22  EvaluatorBase();
23 
24  void postRegistrationSetup(typename Traits::SetupData d,
25  PHX::FieldManager<Traits>& vm) override;
26  void preEvaluate(typename Traits::PreEvalData d) override;
27  void evaluateFields(typename Traits::EvalData d) override;
28  void postEvaluate(typename Traits::PostEvalData d) override;
29 
30  protected:
31  virtual void postRegistrationSetupImpl(typename Traits::SetupData d,
32  PHX::FieldManager<Traits>& vm);
33  virtual void preEvaluateImpl(typename Traits::PreEvalData d);
34  virtual void evaluateFieldsImpl(typename Traits::EvalData d) = 0;
35  virtual void postEvaluateImpl(typename Traits::PostEvalData d);
36 
37  private:
38  Teuchos::RCP<PHX::FieldTag> _param_update_trigger;
39 };
40 
41 //---------------------------------------------------------------------------//
42 
43 } // end namespace VertexCFD
44 
45 #include "VertexCFD_EvaluatorBase_impl.hpp"
46 
47 #endif // end VERTEXCFD_EVALUATORBASE_HPP
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::EvaluatorBase
Definition: VertexCFD_EvaluatorBase.hpp:18