1import os, sys, peano4, exahype2
3from exahype2.solvers.aderdg.ADERDG
import Polynomials
7sys.path.insert(0, os.path.abspath(
"../ExaSeis_core"))
10available_scenarios = {
17scenario_string = scenario.lower()
18my_scenario = available_scenarios[scenario]
20unknowns = {
"v": 3,
"sigma": 6,
"pml": 27}
21auxiliary_variables = {
22 "rho": 1,
"cp": 1,
"cs": 1,
23 "dmp_pml": 3,
"jacobian": 1,
24 "metric_derivative": 9,
28offset = my_scenario.domain_offset
29size = my_scenario.domain_size
31end_time = my_scenario.end_time
38max_h = 1.1 * min(size) / (3.0**min_level)
39min_h = max_h / (3.0**max_depth)
44my_scenario.generate_required_files(order)
46theSolver = exahype2.solvers.aderdg.GlobalAdaptiveTimeStep(
50 auxiliary_variables=auxiliary_variables,
53 time_step_relaxation=0.9
56theSolver.add_kernel_optimisations(
58 polynomials=Polynomials.Gauss_Lobatto,
59 initialise_patches=
True,
63theSolver.set_implementation(
73 number_of_point_sources = 1,
74 point_source = my_scenario.point_source(),
75 init_point_source_location = my_scenario.init_point_source()
84project = exahype2.Project([
"exahype2",
"elastic"],
"pml", executable=scenario+
"_l_"+str(min_level)+
"_o_"+str(order)+
"_pr_"+precision)
85project.add_solver(theSolver)
88 project.add_action_set_to_timestepping(
89 exahype2.tracer.CurviTracer(
90 coordinates=my_scenario.tracer_coordinates,
92 filename=scenario+
"_level_"+str(min_level)+
"-order-"+str(order)+
"-precision-"+str(precision),
93 data_delta_between_two_snapshots=1e16, time_delta_between_two_snapshots=0.01,
94 output_precision=10, clear_database_after_flush=
False
98 project.set_output_path(
"solutions")
100project.set_global_simulation_parameters(
104 min_end_time=end_time,
105 max_end_time=end_time,
106 first_plot_time_stamp=0.0,
107 time_in_between_plots=plot_dt,
108 periodic_BC=[
False,
False,
False]
111project.set_load_balancer(
"new ::exahype2::LoadBalancingConfiguration()")
112project.set_Peano4_installation(
"../../../../", peano4.output.CompileMode.Release)
113peano4_project = project.generate_Peano4_project(verbose=
False)
114peano4_project.build(make_clean_first=
True)
Part of a series of benchmarks by the SeISmic MOdeling Web INterfacE (Sismowine)
Benchmark representing a rectangular area of 80x80km around the Zugspitze.
multiplyMaterialParameterMatrix()
init_grid_step_implementation(scenario_string)
initial(pointwise_initial_conditions)
abstractUserDefinitions()