[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
time_refinement_study_reference.h
1 #ifndef __TIME_REFINEMENT_STUDY_REFERENCE__
2 #define __TIME_REFINEMENT_STUDY_REFERENCE__
3 
4 #include <deal.II/base/convergence_table.h>
5 
6 #include "dg/dg_base.hpp"
7 #include "general_refinement_study.h"
8 #include "tests.h"
9 
10 namespace PHiLiP {
11 namespace Tests {
12 
14 template <int dim, int nstate>
16 {
17 public:
20  const Parameters::AllParameters *const parameters_input,
21  const dealii::ParameterHandler &parameter_handler_input);
22 
24  int run_test () const override;
25 protected:
27  Parameters::AllParameters reinit_params_for_reference_solution(int number_of_timesteps, double final_time) const;
28 
29  dealii::LinearAlgebra::distributed::Vector<double> calculate_reference_solution(const double final_time) const;
30 
33  std::shared_ptr<DGBase<dim,double>> dg,
34  const Parameters::AllParameters parameters,
35  double final_time_actual
36  ) const;
37 
39  std::tuple<double,int> process_and_write_conv_tables(std::shared_ptr<FlowSolver::FlowSolver<dim,nstate>> flow_solver,
40  const Parameters::AllParameters params,
41  double L2_error_old,
42  std::shared_ptr<dealii::ConvergenceTable> convergence_table,
43  int refinement,
44  const double expected_order) const override;
45 
46  // Hold reference solution using a small timestep size
47  const dealii::LinearAlgebra::distributed::Vector<double> reference_solution;
48 };
49 
50 } // End of Tests namespace
51 } // End of PHiLiP namespace
52 
53 #endif
Advection time refinement study.
Selects which flow case to simulate.
Definition: flow_solver.h:64
Files for the baseline physics.
Definition: ADTypes.hpp:10
double calculate_L2_error_at_final_time_wrt_reference(std::shared_ptr< DGBase< dim, double >> dg, const Parameters::AllParameters parameters, double final_time_actual) const
Calculate L2 error at the final time in the passed parameters.
Parameters::AllParameters reinit_params_for_reference_solution(int number_of_timesteps, double final_time) const
Reinitialize parameters and set initial_timestep according to reference solution and passed final tim...
Main parameter class that contains the various other sub-parameter classes.
std::tuple< double, int > process_and_write_conv_tables(std::shared_ptr< FlowSolver::FlowSolver< dim, nstate >> flow_solver, const Parameters::AllParameters params, double L2_error_old, std::shared_ptr< dealii::ConvergenceTable > convergence_table, int refinement, const double expected_order) const override
Calculate the L2 error and return local testfail for the converged flowsolver.
TimeRefinementStudyReference(const Parameters::AllParameters *const parameters_input, const dealii::ParameterHandler &parameter_handler_input)
Constructor.
Time refinement study which compares to a reference solution.
DGBase is independent of the number of state variables.
Definition: dg_base.hpp:82