ExaDG
Loading...
Searching...
No Matches
parameters.h
1/* ______________________________________________________________________
2 *
3 * ExaDG - High-Order Discontinuous Galerkin for the Exa-Scale
4 *
5 * Copyright (C) 2023 by the ExaDG authors
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
19 * ______________________________________________________________________
20 */
21
22#ifndef EXADG_ACOUSTIC_CONSERVATION_EQUATIONS_USER_INTERFACE_INPUT_PARAMETERS_H_
23#define EXADG_ACOUSTIC_CONSERVATION_EQUATIONS_USER_INTERFACE_INPUT_PARAMETERS_H_
24
25// deal.II
26#include <deal.II/base/conditional_ostream.h>
27
28// ExaDG
29#include <exadg/acoustic_conservation_equations/user_interface/enum_types.h>
30#include <exadg/grid/grid_data.h>
31#include <exadg/operators/inverse_mass_parameters.h>
32#include <exadg/time_integration/enum_types.h>
33#include <exadg/time_integration/restart_data.h>
34#include <exadg/time_integration/solver_info_data.h>
35
36namespace ExaDG
37{
38namespace Acoustics
39{
41{
42public:
43 // standard constructor that initializes parameters
44 Parameters();
45
46 void
47 check() const;
48
49 void
50 print(dealii::ConditionalOStream const & pcout, std::string const & name) const;
51
52private:
53 void
54 print_parameters_mathematical_model(dealii::ConditionalOStream const & pcout) const;
55
56 void
57 print_parameters_physical_quantities(dealii::ConditionalOStream const & pcout) const;
58
59 void
60 print_parameters_temporal_discretization(dealii::ConditionalOStream const & pcout) const;
61
62 void
63 print_parameters_spatial_discretization(dealii::ConditionalOStream const & pcout) const;
64
65public:
66 /**************************************************************************************/
67 /* */
68 /* MATHEMATICAL MODEL */
69 /* */
70 /**************************************************************************************/
71
72 // description: see enum declaration
73 Formulation formulation;
74
75 // if there are acoustic source terms, set right_hand_side = true
76 bool right_hand_side;
77
78 // Use the aero-acoustic source term that is internally computed from the fluid solution
79 bool aero_acoustic_source_term;
80
81 /**************************************************************************************/
82 /* */
83 /* PHYSICAL QUANTITIES */
84 /* */
85 /**************************************************************************************/
86
87 // start time of simulation
88 double start_time;
89
90 // end time of simulation
91 double end_time;
92
93 // speed_of_sound of underlying fluid
94 double speed_of_sound;
95
96 /**************************************************************************************/
97 /* */
98 /* TEMPORAL DISCRETIZATION */
99 /* */
100 /**************************************************************************************/
101
102 // description: see enum declaration
103 TimeStepCalculation calculation_of_time_step_size;
104
105 // cfl number: note that this cfl number is the first in a series of cfl numbers
106 // when performing temporal convergence tests, i.e., cfl_real = cfl, cfl/2, cfl/4, ...
107 double cfl;
108
109 // dt = CFL/max(k_p,k_u)^{exp} * h / c
110 double cfl_exponent_fe_degree;
111
112 // user specified time step size: note that this time_step_size is the first
113 // in a series of time_step_size's when performing temporal convergence tests,
114 // i.e., delta_t = time_step_size, time_step_size/2, ...
115 double time_step_size;
116
117 // maximum number of time steps
118 unsigned int max_number_of_time_steps;
119
120 // number of refinements for temporal discretization
121 unsigned int n_refine_time;
122
123 // order of time integration scheme
124 unsigned int order_time_integrator;
125
126 // start time integrator with low order time integrator, i.e., first order Euler method
127 bool start_with_low_order;
128
129 // set this variable to true to start the simulation from restart files
130 bool restarted_simulation;
131
132 // use adaptive timestepping
133 bool adaptive_time_stepping;
134
135 // restart
136 RestartData restart_data;
137
138 // show solver performance (wall time, number of iterations)
139 SolverInfoData solver_info_data;
140
141 /**************************************************************************************/
142 /* */
143 /* SPATIAL DISCRETIZATION */
144 /* */
145 /**************************************************************************************/
146
147 // Grid data
148 GridData grid;
149
150 // Mapping
151 unsigned int mapping_degree;
152
153 // Polynomial degree of velocity shape functions
154 unsigned int degree_u;
155
156 // Polynomial degree of pressure shape functions
157 unsigned int degree_p;
158};
159
160} // namespace Acoustics
161} // namespace ExaDG
162
163#endif /* EXADG_ACOUSTIC_CONSERVATION_EQUATIONS_USER_INTERFACE_INPUT_PARAMETERS_H_ */
Definition parameters.h:41
Definition driver.cpp:33
Definition grid_data.h:88
Definition restart_data.h:38
Definition solver_info_data.h:38