VertexCFD  0.0-dev
VertexCFD_ScalarParameterManager.hpp
1 #ifndef VERTEXCFD_SCALARPARAMETERMANAGER_HPP
2 #define VERTEXCFD_SCALARPARAMETERMANAGER_HPP
3 
4 #include "VertexCFD_ParameterDatabase.hpp"
5 #include "VertexCFD_ScalarParameterObserver.hpp"
6 
7 #include <Panzer_GlobalData.hpp>
8 
9 #include <Teuchos_RCP.hpp>
10 
11 #include <string>
12 #include <unordered_map>
13 #include <vector>
14 
15 namespace VertexCFD
16 {
17 namespace Parameter
18 {
19 //---------------------------------------------------------------------------//
20 template<class EvalType>
22 {
23  public:
24  // Construct a manager from the parameter database.
25  ScalarParameterManager(const ParameterDatabase& parameter_db);
26 
27  // Assign a new observer to be managed by this manager.
28  void
29  addObserver(const Teuchos::RCP<ScalarParameterObserver<EvalType>>& observer);
30 
31  // Update the parameters in all observers owned by this manager with the
32  // given global data. Also update the state of all observers with the new
33  // parameter values.
34  void update(const panzer::GlobalData& global_data,
35  const panzer::Workset& workset);
36 
37  private:
38  std::vector<Teuchos::RCP<ScalarParameterObserver<EvalType>>> _observers;
39  std::unordered_map<std::string, std::unordered_map<std::string, double>>
40  _general_parameter_data;
41 };
42 
43 //---------------------------------------------------------------------------//
44 
45 } // namespace Parameter
46 } // namespace VertexCFD
47 
48 #endif // end VERTEXCFD_SCALARPARAMETERMANAGER_HPP
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::Parameter::ParameterDatabase
Definition: VertexCFD_ParameterDatabase.hpp:16
VertexCFD::Parameter::ScalarParameterObserver
Definition: VertexCFD_ScalarParameterObserver.hpp:21
VertexCFD::Parameter::ScalarParameterManager
Definition: VertexCFD_ScalarParameterManager.hpp:22