29 RKDG solver with global adaptive time step
31 Please consult GlobalAdaptiveTimeStep for more documentation. This version is
32 basically the same with the "only" exception being that we employ enclave
45 flux=PDETerms.User_Defined_Implementation,
46 eigenvalues=PDETerms.User_Defined_Implementation,
47 ncp=PDETerms.None_Implementation,
48 point_source=PDETerms.None_Implementation,
49 boundary_conditions=PDETerms.User_Defined_Implementation,
50 refinement_criterion=PDETerms.Empty_Implementation,
51 initial_conditions=PDETerms.User_Defined_Implementation,
52 source_term=PDETerms.None_Implementation,
53 plot_grid_properties=False,
54 pde_terms_without_state=False,
58 Construct RKDG solver with adaptive global time step and enclave tasking
61 super(GlobalAdaptiveTimeStepWithEnclaveTasking,self).
__init__(name,
64 FaceProjections.Solution,
70 pde_terms_without_state)
77 clear_dg_kernel_file()
79 create_Riemann_solver_kernel_definitions()
93 refinement_criterion=refinement_criterion,
94 initial_conditions=initial_conditions,
95 additional_action_set_includes=
"",
96 additional_user_includes=
"",
98 eigenvalues=eigenvalues,
100 source_term=source_term,
101 point_source=point_source
109 boundary_conditions=None,
110 refinement_criterion=None,
111 initial_conditions=None,
114 additional_action_set_includes = "",
115 additional_user_includes = ""
118 If you pass in User_Defined, then the generator will create C++ stubs
119 that you have to befill manually. If you pass in None_Implementation, it
120 will create nop, i.e., no implementation or defaults. Any other string
121 is copied 1:1 into the implementation. If you pass in None, then the
122 set value so far won't be overwritten.
124 Please note that not all options are supported by all solvers.
126 This routine should be the very last invoked by the constructor.
128 super(GlobalAdaptiveTimeStepWithEnclaveTasking,self).
set_implementation(boundary_conditions=boundary_conditions,
129 refinement_criterion=refinement_criterion,
130 initial_conditions=initial_conditions,
131 additional_action_set_includes=additional_action_set_includes,
132 additional_user_includes=additional_user_includes,
135 eigenvalues=eigenvalues,
136 source_term=source_term,
137 point_source=point_source
160 return super(GlobalAdaptiveTimeStepWithEnclaveTasking, self).user_action_set_includes +
"""
161#include "exahype2/dg/rusanov/Rusanov.h"
162#include "kernels/dg.h"
Code snippet generator for fixed time stepping in the Runge-Kutta schemes.
_abstract_solver_user_definitions
_solver_user_declarations
_add_solver_contributions_call
_Riemann_compute_kernel_call
_start_time_step_implementation
_constructor_implementation
_volumetric_compute_kernel_call
_source_term_implementation
_finish_time_step_implementation
_volumetric_compute_kernel_call_stateless
set_implementation(self, flux=None, ncp=None, eigenvalues=None, boundary_conditions=None, refinement_criterion=None, initial_conditions=None, source_term=None, point_source=None, additional_action_set_includes="", additional_user_includes="")
If you pass in User_Defined, then the generator will create C++ stubs that you have to befill manuall...
_eigenvalues_implementation
_abstract_solver_user_declarations
_multiply_with_inverted_mass_matrix_call
_point_sources_implementation
_compute_new_time_step_size
Two separate sweeps per Runge-Kutta sweep where volumetric operations are outsourced into dedicated t...
_fused_volumetric_compute_kernel_call_stateless_gpu
_fused_volumetric_compute_kernel_call_stateless_cpu
The linear combination of the Runge-Kutta trials has to be projected onto the faces,...
RKDG solver with global adaptive time step.
user_action_set_includes(self)
Add further includes to this property, if your action sets require some additional routines from othe...
_abstract_solver_user_definitions
_start_time_step_implementation
_compute_new_time_step_size
set_implementation(self, flux=None, ncp=None, eigenvalues=None, boundary_conditions=None, refinement_criterion=None, initial_conditions=None, source_term=None, point_source=None, additional_action_set_includes="", additional_user_includes="")
If you pass in User_Defined, then the generator will create C++ stubs that you have to befill manuall...
_Riemann_compute_kernel_call
_abstract_solver_user_declarations
__init__(self, name, rk_order, polynomials, unknowns, auxiliary_variables, min_cell_h, max_cell_h, time_step_relaxation, flux=PDETerms.User_Defined_Implementation, eigenvalues=PDETerms.User_Defined_Implementation, ncp=PDETerms.None_Implementation, point_source=PDETerms.None_Implementation, boundary_conditions=PDETerms.User_Defined_Implementation, refinement_criterion=PDETerms.Empty_Implementation, initial_conditions=PDETerms.User_Defined_Implementation, source_term=PDETerms.None_Implementation, plot_grid_properties=False, pde_terms_without_state=False)
Construct RKDG solver with adaptive global time step and enclave tasking.
_constructor_implementation
_add_solver_contributions_call
_volumetric_compute_kernel_call_stateless
_fused_volumetric_compute_kernel_call_stateless_cpu
_multiply_with_inverted_mass_matrix_call
_volumetric_compute_kernel_call
_fused_volumetric_compute_kernel_call_stateless_gpu
_finish_time_step_implementation
_solver_user_declarations