1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #ifndef IO_PARAMETER_H
20 #define IO_PARAMETER_H
21
22 #include <string>
23 #include <vector>
24 #include <memory>
25 #include "esfem_fwd.h"
26
27 namespace Esfem{
28 namespace Io{
29 class Parameter{
30 public:
31 explicit Parameter(int argc, char** argv, const std::string& parameter_file_name);
32 ~Parameter();
33 Parameter(const Parameter&) = delete;
34 Parameter& operator=(const Parameter&) = delete;
35
36
37
38 const std::string& grid() const noexcept;
39 const std::string& error_log() const noexcept;
40 const std::string& paraview() const noexcept;
41
42
43
44
45 double start_time() const noexcept;
46 double global_timeStep() const noexcept;
47
48
49
50
51 long max_timeSteps() const;
52 long prePattern_timeSteps() const;
53 long pattern_timeSteps() const;
54
55
56
57
58 double last_step() const;
59
60 double eps() const noexcept;
61
62
63
64
65 const std::vector<double>& bdf_alphas() const noexcept;
66 const std::vector<double>& bdf_gammas() const noexcept;
67
68
69
70
71 double tg_a() const noexcept;
72 double tg_b() const noexcept;
73 double tg_Dc() const noexcept;
74 double tg_gamma() const noexcept;
75 double velocity_regularization() const noexcept;
76 double surface_growthFactor() const noexcept;
77 double mcf_regularization() const noexcept;
78
79
80
81
82 double u_hom_value() const noexcept;
83 double w_hom_value() const noexcept;
84 double u_pertubation() const noexcept;
85 double w_pertubation() const noexcept;
86 const std::string& u_init_dof() const noexcept;
87
88 const std::string& w_init_dof() const noexcept;
89
90
91
92 friend std::ostream& operator<<(std::ostream&, const Parameter&);
93
94 private:
95 struct Data;
96 std::unique_ptr<Data> d_ptr;
97 };
98 }
99 }
100
101 #endif