VertexCFD  0.0-dev
VertexCFD_InitialConditionFactory_TemplateBuilder.hpp
1 #ifndef VERTEXCFD_INITIALCONDITIONFACTORY_TEMPLATEBUILDER_HPP
2 #define VERTEXCFD_INITIALCONDITIONFACTORY_TEMPLATEBUILDER_HPP
3 
4 #include "VertexCFD_InitialConditionFactory.hpp"
5 
6 #include <Panzer_ClosureModel_Factory_Base.hpp>
7 #include <Panzer_STK_Interface.hpp>
8 
9 #include <Teuchos_RCP.hpp>
10 
11 namespace VertexCFD
12 {
13 namespace InitialCondition
14 {
15 //---------------------------------------------------------------------------//
16 template<int NumSpaceDim>
18 {
19  public:
20  FactoryTemplateBuilder(Teuchos::RCP<const panzer_stk::STK_Interface> mesh)
21  : _mesh{mesh}
22  {
23  }
24 
25  template<typename EvalT>
26  Teuchos::RCP<panzer::ClosureModelFactoryBase> build() const
27  {
28  auto ic_factory = Teuchos::rcp(new Factory<EvalT, NumSpaceDim>(_mesh));
29  return Teuchos::rcp_static_cast<panzer::ClosureModelFactoryBase>(
30  ic_factory);
31  }
32 
33  private:
34  Teuchos::RCP<const panzer_stk::STK_Interface> _mesh;
35 };
36 
37 //---------------------------------------------------------------------------//
38 
39 } // end namespace InitialCondition
40 } // end namespace VertexCFD
41 
42 #endif // end VERTEXCFD_INITIALCONDITIONFACTORY_TEMPLATEBUILDER_HPP
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::InitialCondition::FactoryTemplateBuilder
Definition: VertexCFD_InitialConditionFactory_TemplateBuilder.hpp:18
VertexCFD::InitialCondition::Factory
Definition: VertexCFD_InitialConditionFactory.hpp:16