[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
euler_gaussian_bump_enthalpy_check.cpp
1 #include <stdlib.h> /* srand, rand */
2 #include <iostream>
3 
4 #include <deal.II/base/convergence_table.h>
5 
6 #include <deal.II/distributed/solution_transfer.h>
7 #include <deal.II/dofs/dof_tools.h>
8 
9 #include <deal.II/grid/grid_generator.h>
10 #include <deal.II/grid/grid_refinement.h>
11 #include <deal.II/grid/grid_tools.h>
12 #include <deal.II/grid/grid_out.h>
13 #include <deal.II/grid/grid_in.h>
14 
15 #include <deal.II/numerics/vector_tools.h>
16 
17 #include <deal.II/fe/fe_values.h>
18 
19 #include <deal.II/fe/mapping_q.h>
20 #include <deal.II/fe/mapping_manifold.h>
21 
22 #include "euler_gaussian_bump_enthalpy_check.h"
23 #include "mesh/grids/gaussian_bump.h"
24 
25 #include "physics/euler.h"
26 #include "physics/manufactured_solution.h"
27 #include "dg/dg_factory.hpp"
28 #include "ode_solver/ode_solver_factory.h"
29 
30 namespace PHiLiP {
31 namespace Tests {
32 
33 template <int dim, int nstate>
35  const Parameters::AllParameters *const parameters_input,
36  const dealii::ParameterHandler &parameter_handler_input)
37  : TestsBase::TestsBase(parameters_input)
38  , parameter_handler(parameter_handler_input)
39  {}
40 
41 template<int dim, int nstate>
43 {
44  const Parameters::AllParameters param_transonic = *(TestsBase::all_parameters);
47  param_subsonic.euler_param.mach_inf = 0.5;
48 
49  EulerGaussianBump<dim,nstate> gaussian_bump_transonic(&param_transonic, parameter_handler);
50  EulerGaussianBump<dim,nstate> gaussian_bump_subsonic(&param_subsonic, parameter_handler);
51 
52  const double error_transonic = gaussian_bump_transonic.run_euler_gaussian_bump();
53  const double error_subsonic = gaussian_bump_subsonic.run_euler_gaussian_bump();
54 
55  pcout << "Error transonic = "<< error_transonic << std::endl;
56  pcout << "Error subsonic = "<< error_subsonic << std::endl;
57 
58  if (abs(error_transonic - error_subsonic) > 3.1e-3)
59  {
60  pcout<< "Enthalpy is not conserved. Test failed" << std::endl;
61  return 1;
62  }
63  pcout<< " Test passed" << std::endl;
64  return 0;
65 
66 }
67 
68 
69 
70 
71 #if PHILIP_DIM==2
73 #endif
74 } // Tests namespace
75 } // PHiLiP namespace
76 
77 
int run_test() const
Checks if enthalpy is conserved by comparing errors in subsonic and transonic runs.
Performs grid convergence for various polynomial degrees.
double mach_inf
Mach number at infinity.
Files for the baseline physics.
Definition: ADTypes.hpp:10
EulerGaussianBumpEnthalpyCheck(const Parameters::AllParameters *const parameters_input, const dealii::ParameterHandler &parameter_handler_input)
Constructor.
EulerParam euler_param
Contains parameters for the Euler equations non-dimensionalization.
Main parameter class that contains the various other sub-parameter classes.
const Parameters::AllParameters *const all_parameters
Pointer to all parameters.
Definition: tests.h:20
double run_euler_gaussian_bump() const
Returns either the order of convergence or enthalpy, depending on the test type.
bool add_artificial_dissipation
Flag to add artificial dissipation from Persson&#39;s shock capturing paper.
dealii::ConditionalOStream pcout
ConditionalOStream.
Definition: tests.h:45
Checks if enthalpy is conserved with enthalpy laplacian artificial dissipation.
ArtificialDissipationParam artificial_dissipation_param
Contains parameters for artificial dissipation.
const dealii::ParameterHandler & parameter_handler
Parameter handler for storing the .prm file being ran.
Base class of all the tests.
Definition: tests.h:17