11 "release": peano4.output.CompileMode.Release,
12 "trace": peano4.output.CompileMode.Trace,
13 "assert": peano4.output.CompileMode.Asserts,
14 "stats": peano4.output.CompileMode.Stats,
15 "debug": peano4.output.CompileMode.Debug,
18available_scenarios = {
28parser = argparse.ArgumentParser(description=
"ExaHyPE 2 - ADER-DG testing script")
36 help=
"Depth of coarsest mesh level, i.e if 2 is specified there will be 9 cells per dimension",
41 dest=
"adaptivity_levels",
44 help=
"Number of AMR grid levels on top of hmax (0 by default)",
46parser.add_argument(
"-o",
"--order", dest=
"order", type=int, default=3, help=
"DG Order")
53 help=
"Polynomial type, 0 is Gauss-Legendre, 1 is Gauss-Lobatto",
56 "-m",
"--mode", dest=
"mode", default=
"release", help=
"|".join(modes.keys())
63 help=
"|".join(available_scenarios.keys()),
66args = parser.parse_args()
72 "Which of the following scenarios would you like to try out?\n"
73 +
" - ".join(available_scenarios.keys())
76 scenario = available_scenarios[s]
83 scenario = available_scenarios[args.s]
86max_h = 1.1 * scenario._domain_size / (3.0**args.md)
87min_h = max_h * 3.0 ** (-args.adaptivity_levels)
90 exahype2.solvers.aderdg.Polynomials.Gauss_Legendre
91 if args.polynomials == 0
92 else exahype2.solvers.aderdg.Polynomials.Gauss_Lobatto
96 [
"tests",
"exahype2",
"aderdg"],
98 executable=scenario.__class__.__name__,
102 name=scenario.__class__.__name__,
106 time_step_relaxation=0.9,
107 unknowns=scenario._equation.num_unknowns,
108 auxiliary_variables=scenario._equation.num_auxiliary_variables,
109 initial_conditions=scenario.initial_conditions(),
110 boundary_conditions=scenario.boundary_conditions(),
111 eigenvalues=scenario._equation.eigenvalues(),
112 flux=scenario._equation.flux(),
113 ncp=scenario._equation.ncp(),
116solver.add_kernel_optimisations(
117 polynomials=polynomials, is_linear=scenario._equation.is_linear
120if scenario.analytical_solution() != exahype2.solvers.PDETerms.None_Implementation:
123 error_measurement_implementation=scenario.analytical_solution(),
124 output_file_name=
"Error_" + scenario.__class__.__name__,
127project.add_solver(solver)
129project.set_output_path(
"solutions")
131scenario.set_global_simulation_parameters(project)
133project.set_load_balancing(
134 "toolbox::loadbalancing::strategies::SpreadOutOnceGridStagnates",
135 "new ::exahype2::LoadBalancingConfiguration(0.98)",
137project.set_Peano4_installation(
"../../../", modes[args.mode])
138project = project.generate_Peano4_project(
"False")
139project.set_fenv_handler(
"FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW")
141project.build(make_clean_first=
True)
Very simple scenario in which the initial value of x is shifted in each spatial dimension.
Scenario reproduced from Ioratti, Dumbser & Loubère, https://doi.org/10.1007/s10915-020-01209-w (p.
Scenario reproduced from Ioratti, Dumbser & Loubère, https://doi.org/10.1007/s10915-020-01209-w (p.
Classic radial dam break SWE equations, with constant initial water height but a bump in the bathymet...
Resting lake scenario for the shallow water equations.