1 #ifndef VERTEXCFD_PHYSICSMANAGER_HPP
2 #define VERTEXCFD_PHYSICSMANAGER_HPP
4 #include "VertexCFD_MeshManager.hpp"
6 #include "parameters/VertexCFD_ParameterDatabase.hpp"
8 #include <Panzer_BCStrategy_Factory.hpp>
9 #include <Panzer_ClosureModel_Factory.hpp>
10 #include <Panzer_EquationSet_Factory.hpp>
11 #include <Panzer_EquationSet_Factory_Composite.hpp>
12 #include <Panzer_GlobalData.hpp>
13 #include <Panzer_GlobalIndexer.hpp>
14 #include <Panzer_LinearObjFactory.hpp>
15 #include <Panzer_ModelEvaluator.hpp>
16 #include <Panzer_PhysicsBlock.hpp>
17 #include <Panzer_WorksetContainer.hpp>
19 #include <Teuchos_RCP.hpp>
21 #include <type_traits>
22 #include <unordered_map>
31 template<
int NumSpaceDim>
33 const Teuchos::RCP<Parameter::ParameterDatabase>& parameter_db,
34 const Teuchos::RCP<MeshManager>& mesh_manager,
35 const double initial_time = 0.0);
39 int addScalarParameter(
const std::string& name,
const double value);
42 int getParameterIndex(
const std::string& name)
const;
49 Teuchos::RCP<MeshManager> meshManager()
const;
50 Teuchos::RCP<panzer::GlobalData> globalData()
const;
51 Teuchos::RCP<panzer::EquationSetFactory> equationSetFactory()
const;
52 const std::vector<Teuchos::RCP<panzer::PhysicsBlock>>&
53 physicsBlocks()
const;
54 int integrationOrder()
const;
55 Teuchos::RCP<panzer::GlobalIndexer> dofManager()
const;
56 Teuchos::RCP<panzer::LinearObjFactory<panzer::Traits>>
57 linearObjectFactory()
const;
58 Teuchos::RCP<panzer::WorksetContainer> worksetContainer()
const;
59 const std::vector<panzer::BC>& boundaryConditions()
const;
60 Teuchos::RCP<panzer::BCStrategyFactory> boundaryConditionFactory()
const;
61 Teuchos::RCP<panzer::ClosureModelFactory_TemplateManager<panzer::Traits>>
62 closureModelFactory()
const;
63 Teuchos::RCP<panzer::ModelEvaluator<double>> modelEvaluator()
const;
66 Teuchos::RCP<Parameter::ParameterDatabase> _parameter_db;
67 Teuchos::RCP<MeshManager> _mesh_manager;
69 Teuchos::RCP<panzer::GlobalData> _global_data;
70 Teuchos::RCP<panzer::EquationSet_FactoryComposite> _eq_set_factory;
71 std::vector<Teuchos::RCP<panzer::PhysicsBlock>> _physics_blocks;
72 int _integration_order;
73 Teuchos::RCP<panzer::GlobalIndexer> _dof_manager;
74 Teuchos::RCP<panzer::LinearObjFactory<panzer::Traits>> _linear_object_factory;
75 Teuchos::RCP<panzer::WorksetContainer> _workset_container;
76 std::vector<panzer::BC> _boundary_conditions;
77 Teuchos::RCP<panzer::BCStrategyFactory> _bc_factory;
78 Teuchos::RCP<panzer::ClosureModelFactory_TemplateManager<panzer::Traits>>
80 Teuchos::RCP<panzer::ModelEvaluator<double>> _model_evaluator;
81 std::unordered_map<std::string, int> _parameter_indices;
86 #endif // end VERTEXCFD_PHYSICSMANAGER_HPP