1 import os, sys, peano4, exahype2
3 from exahype2.solvers.aderdg.ADERDG
import Polynomials
5 sys.path.insert(0, os.path.abspath(
"../pml"))
8 import DynamicRuptureElastic
13 sys.path.insert(0, os.path.abspath(
"../ExaSeis_core"))
17 available_scenarios = {
26 scenario_string = scenario.lower()
27 my_scenario = available_scenarios[scenario]
29 unknowns = {
"v": 3,
"sigma": 6,
"u": 3}
30 auxiliary_variables = {
31 "rho": 1,
"cp": 1,
"cs": 1,
"jacobian": 1,
32 "metric_derivative": 9,
36 offset = my_scenario.domain_offset
37 size = my_scenario.domain_size
40 end_time = my_scenario.end_time
45 max_h = 1.1 *
min(size) / (3.0**min_level)
46 min_h = max_h / (3.0**max_depth)
50 my_scenario.generate_required_files(order)
52 theSolver = exahype2.solvers.aderdg.GlobalAdaptiveTimeStep(
56 auxiliary_variables=auxiliary_variables,
59 time_step_relaxation=0.9
62 theSolver.add_kernel_optimisations(
64 polynomials=Polynomials.Gauss_Lobatto,
65 initialise_patches=
True,
69 theSolver.set_implementation(
87 filename=scenario+
"_l_"+
str(min_level)+
"_o_"+
str(order)+
"_pr_"+
str(precision)
88 project = exahype2.Project([
"exahype2",
"elastic"],
"dynamicRupture", executable=filename)
89 project.add_solver(theSolver)
91 project.add_action_set_to_timestepping(
92 exahype2.tracer.NewDGTracer(
93 coordinates= my_scenario.tracer_coordinates,
96 data_delta_between_two_snapshots=1e16, time_delta_between_two_snapshots=0.01,
97 output_precision=10, clear_database_after_flush=
False
101 project.set_output_path(
"solutions"+filename)
103 project.set_global_simulation_parameters(
107 min_end_time=end_time,
108 max_end_time=end_time,
109 first_plot_time_stamp=0.0,
110 time_in_between_plots = plot_dt,
111 periodic_BC=[
False,
False,
False]
114 project.set_load_balancer(
"new ::exahype2::LoadBalancingConfiguration")
115 project.set_Peano4_installation(
"../../../../", peano4.output.CompileMode.Release )
116 peano4_project = project.generate_Peano4_project(verbose=
False)
117 peano4_project.build(make_clean_first=
True)
Part of a series of benchmarks by the Statewide California Earthquake Center (SCEC)
Part of a series of benchmarks by the Statewide California Earthquake Center (SCEC)
Part of a series of benchmarks by the Statewide California Earthquake Center (SCEC)
Part of a series of benchmarks by the Statewide California Earthquake Center (SCEC)
def abstractDeclarations()
def finish_time_step_implementation(scenario_string)
def multiplyMaterialParameterMatrix()
def initial(pointwise_initial_conditions)
def init_grid_step_implementation(scenario_string)
def abstractUserDefinitions()
static double min(double const x, double const y)