VertexCFD  0.0-dev
VertexCFD_ParameterDatabase.hpp
1 #ifndef VERTEXCFD_PARAMETERDATABASE_HPP
2 #define VERTEXCFD_PARAMETERDATABASE_HPP
3 
4 #include <Teuchos_DefaultComm.hpp>
5 #include <Teuchos_ParameterList.hpp>
6 #include <Teuchos_RCP.hpp>
7 
8 #include <string>
9 
10 namespace VertexCFD
11 {
12 namespace Parameter
13 {
14 //---------------------------------------------------------------------------//
16 {
17  public:
18  // Default constructor.
19  ParameterDatabase(const Teuchos::RCP<const Teuchos::MpiComm<int>>& comm);
20 
21  // Parameter list constructor.
22  ParameterDatabase(const Teuchos::RCP<const Teuchos::MpiComm<int>>& comm,
23  const Teuchos::RCP<Teuchos::ParameterList>& parameters);
24 
25  // XML file constructor.
26  ParameterDatabase(const Teuchos::RCP<const Teuchos::MpiComm<int>>& comm,
27  const std::string& xml_file);
28 
29  // Main argument constructor.
30  ParameterDatabase(const Teuchos::RCP<const Teuchos::MpiComm<int>>& comm,
31  int argc,
32  char* argv[]);
33 
34  // Communicator.
35  Teuchos::RCP<const Teuchos::MpiComm<int>> comm() const;
36 
37  // Main list accessor.
38  Teuchos::RCP<Teuchos::ParameterList> allParameters() const;
39 
40  // Sublist accessors.
41  Teuchos::RCP<Teuchos::ParameterList> meshParameters() const;
42  Teuchos::RCP<Teuchos::ParameterList> assemblyParameters() const;
43  Teuchos::RCP<Teuchos::ParameterList> scalarParameters() const;
44  Teuchos::RCP<Teuchos::ParameterList> generalScalarParameters() const;
45  Teuchos::RCP<Teuchos::ParameterList> boundaryConditionParameters() const;
46  Teuchos::RCP<Teuchos::ParameterList> initialConditionParameters() const;
47  Teuchos::RCP<Teuchos::ParameterList> closureModelParameters() const;
48  Teuchos::RCP<Teuchos::ParameterList> responseOutputParameters() const;
49  Teuchos::RCP<Teuchos::ParameterList> userParameters() const;
50  Teuchos::RCP<Teuchos::ParameterList> outputParameters() const;
51  Teuchos::RCP<Teuchos::ParameterList> readRestartParameters() const;
52  Teuchos::RCP<Teuchos::ParameterList> writeRestartParameters() const;
53  Teuchos::RCP<Teuchos::ParameterList> writeMatrixParameters() const;
54  Teuchos::RCP<Teuchos::ParameterList> profilingParameters() const;
55  Teuchos::RCP<Teuchos::ParameterList> transientSolverParameters() const;
56  Teuchos::RCP<Teuchos::ParameterList> linearSolverParameters() const;
57 
58  // Deprecated sublist accessors.
59  Teuchos::RCP<Teuchos::ParameterList> physicsParameters() const;
60  Teuchos::RCP<Teuchos::ParameterList> blockMappingParameters() const;
61 
62  // New format boolean. This will be removed once the transition to the new
63  // format is complete.
64  bool useNewInputFormat() const;
65 
66  private:
67  // Read an xml file with parameters and extract sublists.
68  void readParameterXmlFile(const std::string& xml_file);
69 
70  // Read an yaml file with parameters and extract sublists.
71  void readParameterYamlFile(const std::string& xml_file);
72 
73  // Get the sublists from the input parameters.
74  void extractSublists();
75 
76  // Get the sublists from the input parameters - old variant. (Deprecated)
77  void extractSublistsOld();
78 
79  // Get the sublists from the input parameters - new variant.
80  void extractSublistsNew();
81 
82  // Get a required sublist from the main input list.
83  Teuchos::RCP<Teuchos::ParameterList>
84  requiredSublist(const std::string& name);
85 
86  // Get an optional sublist from the main input list.
87  Teuchos::RCP<Teuchos::ParameterList>
88  optionalSublist(const std::string& name);
89 
90  private:
91  Teuchos::RCP<const Teuchos::MpiComm<int>> _comm;
92  Teuchos::RCP<Teuchos::ParameterList> _input_params;
93  Teuchos::RCP<Teuchos::ParameterList> _mesh_params;
94  Teuchos::RCP<Teuchos::ParameterList> _assembly_params;
95  Teuchos::RCP<Teuchos::ParameterList> _scalar_params;
96  Teuchos::RCP<Teuchos::ParameterList> _general_scalar_params;
97  Teuchos::RCP<Teuchos::ParameterList> _bc_params;
98  Teuchos::RCP<Teuchos::ParameterList> _ic_params;
99  Teuchos::RCP<Teuchos::ParameterList> _closure_params;
100  Teuchos::RCP<Teuchos::ParameterList> _response_output_params;
101  Teuchos::RCP<Teuchos::ParameterList> _user_params;
102  Teuchos::RCP<Teuchos::ParameterList> _output_params;
103  Teuchos::RCP<Teuchos::ParameterList> _read_restart_params;
104  Teuchos::RCP<Teuchos::ParameterList> _write_restart_params;
105  Teuchos::RCP<Teuchos::ParameterList> _write_matrix_params;
106  Teuchos::RCP<Teuchos::ParameterList> _profiling_params;
107  Teuchos::RCP<Teuchos::ParameterList> _transient_solver_params;
108  Teuchos::RCP<Teuchos::ParameterList> _linear_solver_params;
109  bool _use_new_input = false;
110 
111  // Deprecated lists.
112  Teuchos::RCP<Teuchos::ParameterList> _physics_params;
113  Teuchos::RCP<Teuchos::ParameterList> _block_mapping_params;
114 };
115 
116 //---------------------------------------------------------------------------//
117 
118 } // namespace Parameter
119 } // namespace VertexCFD
120 
121 #endif // end VERTEXCFD_PARAMETERDATABASE_HPP
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::Parameter::ParameterDatabase
Definition: VertexCFD_ParameterDatabase.hpp:16