[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
all_parameters.h
1 #ifndef __ALL_PARAMETERS_H__
2 #define __ALL_PARAMETERS_H__
3 
4 #include <deal.II/base/conditional_ostream.h>
5 #include <deal.II/base/parameter_handler.h>
6 #include <deal.II/base/tensor.h>
7 
8 #include "parameters.h"
9 #include "parameters/parameters_ode_solver.h"
10 #include "parameters/parameters_linear_solver.h"
11 #include "parameters/parameters_manufactured_convergence_study.h"
12 
13 #include "parameters/parameters_euler.h"
14 #include "parameters/parameters_navier_stokes.h"
15 #include "parameters/parameters_physics_model.h"
16 
17 #include "parameters/parameters_reduced_order.h"
18 #include "parameters/parameters_hyper_reduction.h"
19 #include "parameters/parameters_burgers.h"
20 #include "parameters/parameters_grid_refinement_study.h"
21 #include "parameters/parameters_grid_refinement.h"
22 #include "parameters/parameters_artificial_dissipation.h"
23 #include "parameters/parameters_limiter.h"
24 #include "parameters/parameters_flow_solver.h"
25 #include "parameters/parameters_mesh_adaptation.h"
26 #include "parameters/parameters_functional.h"
27 #include "parameters/parameters_time_refinement_study.h"
28 
29 namespace PHiLiP {
30 namespace Parameters {
31 
34 {
35 public:
37  AllParameters();
38 
71 
73  unsigned int dimension;
74 
76  unsigned int number_of_species;
77 
79  enum RunType {
80  integration_test,
81  flow_simulation
82  };
84 
86  enum MeshType {
87  default_triangulation,
88  triangulation,
89  parallel_shared_triangulation,
90  parallel_distributed_triangulation,
91  };
94 
96 
99 
102 
104  enum FluxNodes { GL, GLL };
107 
110 
113 
115  enum TwoPointNumericalFlux { KG, IR, CH, Ra };
118 
121 
124 
127 
130 
136 
139 
142 
145 
148 
151 
154 
157 
160 
162  std::string energy_file;
163 
165  int nstate;
166 
168  enum TestType {
169  run_control,
170  grid_refinement_study,
171  stability_fr_parameter_range,
172  advection_limiter,
173  burgers_limiter,
174  burgers_energy_stability,
175  diffusion_exact_adjoint,
176  euler_gaussian_bump,
177  euler_gaussian_bump_enthalpy,
178  euler_gaussian_bump_adjoint,
179  euler_cylinder,
180  euler_cylinder_adjoint,
181  euler_vortex,
182  euler_entropy_waves,
183  euler_split_taylor_green,
184  taylor_green_scaling,
185  burgers_split_form,
186  optimization_inverse_manufactured,
187  euler_bump_optimization,
188  euler_naca_optimization,
189  shock_1d,
190  euler_naca0012,
191  reduced_order,
192  unsteady_reduced_order,
193  convection_diffusion_periodicity,
194  POD_adaptation,
195  POD_adaptive_sampling_run,
196  adaptive_sampling_testing,
197  finite_difference_sensitivity,
198  advection_periodicity,
199  dual_weighted_residual_mesh_adaptation,
200  anisotropic_mesh_adaptation,
201  taylor_green_vortex_energy_check,
202  taylor_green_vortex_restart_check,
203  time_refinement_study,
204  time_refinement_study_reference,
205  rrk_numerical_entropy_conservation_check,
206  euler_entropy_conserving_split_forms_check,
207  h_refinement_study_isentropic_vortex,
208  khi_robustness,
209  naca0012_unsteady_check_quick,
210  homogeneous_isotropic_turbulence_initialization_check,
211  turbulent_channel_flow_skin_friction_check,
212  dipole_wall_collision_quantity_check,
213  turbulent_channel_flow_quantity_check,
214  build_NNLS_problem,
215  hyper_reduction_comparison,
216  hyper_adaptive_sampling_run,
217  hyper_reduction_post_sampling,
218  ROM_error_post_sampling,
219  HROM_error_post_sampling,
220  hyper_adaptive_sampling_new_error,
221  halton_sampling_run,
222  low_density,
223  multi_species_vortex_advection,
224  real_gas_split_taylor_green
225  };
228 
231  advection,
232  diffusion,
233  convection_diffusion,
234  advection_vector,
235  burgers_inviscid,
236  burgers_viscous,
237  burgers_rewienski,
238  euler,
239  mhd,
240  navier_stokes,
241  navier_stokes_channel_flow_constant_source_term,
242  navier_stokes_channel_flow_constant_source_term_wall_model,
243  physics_model,
244  physics_model_filtered,
245  real_gas
246  };
249 
251  enum ModelType {
252  large_eddy_simulation,
253  reynolds_averaged_navier_stokes,
254  navier_stokes_model,
255  };
258 
261  manufactured_dirichlet,
262  manufactured_neumann,
263  manufactured_inout_flow,
264  };
265 
267  enum SourceTerm {
268  zero,
269  manufactured,
270  };
271 
274  lax_friedrichs,
275  roe,
276  l2roe,
277  central_flux,
278  two_point_flux,
279  two_point_flux_with_lax_friedrichs_dissipation,
280  two_point_flux_with_roe_dissipation,
281  two_point_flux_with_l2roe_dissipation
282  };
285 
287  enum DissipativeNumericalFlux { symm_internal_penalty, bassi_rebay_2, central_visc_flux };
290 
292  enum Flux_Reconstruction {cDG, cSD, cHU, cNegative, cNegative2, cPlus, c10Thousand, cHULumped, user_specified_value};
295 
298 
300  enum Flux_Reconstruction_Aux {kDG, kSD, kHU, kNegative, kNegative2, kPlus, k10Thousand};
303 
305  enum NonPhysicalBehaviorEnum {return_big_number, abort_run, print_warning};
308 
311 
314 
317 
320 
323 
325  enum RenumberDofsType { CuthillMckee };
328 
332 
333  std::string chemistry_input_file;
334 
336  bool using_wall_model = false;
337 
340 
343 
345 
348  static void declare_parameters (dealii::ParameterHandler &prm);
349 
351 
354  void parse_parameters (dealii::ParameterHandler &prm);
355 
357  void modify_parameters ();
358 
359  //FunctionParser<dim> initial_conditions;
360  //BoundaryConditions boundary_conditions[max_n_boundaries];
361 protected:
362  dealii::ConditionalOStream pcout;
363 
364 };
365 
366 } // Parameters namespace
367 } // PHiLiP namespace
368 
369 #endif
370 
TwoPointNumericalFlux two_point_num_flux_type
Store selected TwoPointNumericalFlux from the input file.
PartialDifferentialEquation pde_type
Store the PDE type to be solved.
bool use_curvilinear_grid
Flag to use curvilinear grid.
LimiterParam limiter_param
Contains parameters for limiter.
bool all_boundaries_are_periodic
Flag to signal that all boundaries are periodic; if true surface flux nodes will not be stored for ef...
Parameters related to the linear solver.
TimeRefinementStudyParam time_refinement_study_param
Contains the parameters for time refinement study.
NonPhysicalBehaviorEnum non_physical_behavior_type
Specify behavior on nonphysical results.
unsigned int number_of_species
Number of species. Note that it has to match the CMake variable NUMBER_OF_SPECIES.
std::string chemistry_input_file
Name of file containing NASA CAP data for species.
FlowSolverParam flow_solver_param
Contains the parameters for simulation cases (flow solver test)
TestType
Possible integration tests to run.
Parameters related to the manufactured convergence study.
bool output_face_results_vtk
Flag for outputting the surface solution vtk files.
Parameters related to time refinement studies.
bool use_energy
Flag to use an energy monotonicity test.
PartialDifferentialEquation
Possible Partial Differential Equations to solve.
Files for the baseline physics.
Definition: ADTypes.hpp:10
GridRefinementStudyParam grid_refinement_study_param
Contains the parameters for grid refinement study.
bool use_weak_form
Flag to use weak or strong form of DG.
dealii::ConditionalOStream pcout
Parallel std::cout that only outputs on mpi_rank==0.
bool use_invariant_curl_form
Flag to use invariant curl form for metric cofactor operator.
Parameters related to reduced-order model.
ReducedOrderModelParam reduced_order_param
Contains parameters for the Reduced-Order model.
Flux_Reconstruction
Type of correction in Flux Reconstruction.
Flux_Reconstruction_Aux flux_reconstruction_aux_type
Store flux reconstruction type for the auxiliary variables.
EulerParam euler_param
Contains parameters for the Euler equations non-dimensionalization.
ModelType
Types of models available.
Parameters related to the limiter.
unsigned int dimension
Number of dimensions. Note that it has to match the executable PHiLiP_xD.
Main parameter class that contains the various other sub-parameter classes.
RunType run_type
Selected RunType from the input file.
MeshAdaptationParam mesh_adaptation_param
Constains parameters for mesh adaptation.
std::string energy_file
Energy file.
NonPhysicalBehaviorEnum
Enum of nonphysical behavior.
ManufacturedConvergenceStudyParam manufactured_convergence_study_param
Contains parameters for manufactured convergence study.
void modify_parameters()
Modify parameters after parsing for certain cases.
bool enable_higher_order_vtk_output
Enable writing of higher-order vtk results.
Flux_Reconstruction flux_reconstruction_type
Store flux reconstruction type.
ODESolverParam ode_solver_param
Contains parameters for ODE solver.
Parameters related to reduced-order model.
TwoPointNumericalFlux
Two point numerical flux type for split form.
NavierStokesParam navier_stokes_param
Contains parameters for the Navier-Stokes equations non-dimensionalization.
DissipativeNumericalFlux
Possible dissipative numerical flux types.
LinearSolverParam linear_solver_param
Contains parameters for linear solver.
bool do_renumber_dofs
Flag for renumbering DOFs.
Parameters related to the flow solver.
TestType test_type
Store selected TestType from the input file.
bool check_valid_metric_Jacobian
Flag to check if the metric Jacobian is valid when high-order grid is constructed.
bool use_L2_norm
Flag to use an L2 energy monotonicity test (for FR)
double FR_user_specified_correction_parameter_value
User specified flux recontruction correction parameter value.
Parameters related to the Navier Stokes equations.
bool use_split_form
Flag to use split form.
Parameterse related to the functional object.
ConvectiveNumericalFlux
Possible convective numerical flux types.
MeshType
Mesh type to be used in defining the triangulation.
Parameters related to Physics Models.
Flux_Reconstruction_Aux
Type of correction in Flux Reconstruction for the auxiliary variables.
ConvectiveNumericalFlux conv_num_flux_type
Store convective flux type.
bool use_inverse_mass_on_the_fly
Flag to use inverse mass matrix on-the-fly for explicit solves.
RenumberDofsType
Renumber dofs type.
int nstate
Number of state variables. Will depend on PDE.
void parse_parameters(dealii::ParameterHandler &prm)
Retrieve parameters from dealii::ParameterHandler.
std::string solution_vtk_files_directory_name
Name of directory for writing solution vtk files.
Parameters related to collection of grid refinement runs.
FluxNodes flux_nodes_type
Store selected FluxNodes from the input file.
Parameters related to the ODE solver.
BoundaryType
Possible boundary types, NOT IMPLEMENTED YET.
bool use_projected_entropy_variables_for_nsfr_boundary_term
Flag for using projected entropy variables for NSFR boundary term.
bool wall_model_input_from_second_element
Flag for using second element as wall model input; if false, uses buffer (i.e. wall-adjacent) element...
FunctionalParam functional_param
Contains parameters for functional.
DissipativeNumericalFlux diss_num_flux_type
Store diffusive flux type.
Parameters related to the artificial dissipation.
static void declare_parameters(dealii::ParameterHandler &prm)
Declare parameters that can be set as inputs and set up the default options.
double sipg_penalty_factor
Scaling of Symmetric Interior Penalty term to ensure coercivity.
bool use_weight_adjusted_mass
Flag to use weight-adjusted Mass Matrix for curvilinear elements.
bool store_global_mass_matrix
Flag to store global mass matrix.
SourceTerm
Possible source terms, NOT IMPLEMENTED YET.
ModelType model_type
Store the model type.
HyperReductionParam hyper_reduction_param
Contains parameters for Hyperreduction.
ArtificialDissipationParam artificial_dissipation_param
Contains parameters for artificial dissipation.
bool output_high_order_grid
Flag for outputting the high-order grid vtk files.
RenumberDofsType renumber_dofs_type
Store selected RenumberDofsType from the input file.
bool use_curvilinear_split_form
Flag to use curvilinear metric split form.
PhysicsModelParam physics_model_param
Contains parameters for Physics Model.
MeshType mesh_type
Store selected MeshType from the input file.
BurgersParam burgers_param
Contains parameters for Burgers equation.
bool use_collocated_nodes
Flag for using collocated nodes; determined based on flux_nodes_type and overintegration input parame...
Parameters related to the linear solver.
int overintegration
Number of additional quadrature points to use.
bool store_residual_cpu_time
Flag to store the residual local processor cpu time.
Parameters related to reduced-order model.
bool using_wall_model
Flag for using wall model (initialized as false)