3from exahype2.solvers.PDETerms
import PDETerms
4from exahype2.solvers.rkdg.SeparateSweeps
import SeparateSweeps
6from exahype2.solvers.rkdg.kernels
import create_abstract_solver_declarations
7from exahype2.solvers.rkdg.kernels
import create_abstract_solver_definitions
8from exahype2.solvers.rkdg.kernels
import create_solver_declarations
9from exahype2.solvers.rkdg.kernels
import create_solver_definitions
11from exahype2.solvers.rkdg.kernels
import SolverVariant
13from exahype2.solvers.rkdg.kernels
import create_volumetric_solver_call
14from exahype2.solvers.rkdg.kernels
import create_add_solver_contributions_call
15from exahype2.solvers.rkdg.kernels
import create_multiply_with_inverted_mass_matrix_call
16from exahype2.solvers.rkdg.rusanov.kernels
import create_Riemann_solver_call
18from exahype2.solvers.rkdg.FixedTimeSteppingCodeSnippets
import (
19 FixedTimeSteppingCodeSnippets,
22from exahype2.solvers.rkdg.actionsets.ProjectLinearCombinationOfEstimatesOntoFaces
import FaceProjections
28 RKDG solver with Rusanov Riemann solver and global fixed time step
30 Likely the simplest version of the RKDG solver with Rusanov. We "inherit"
31 basically all parameters from the superclass. The major difference is the
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 pde_terms_without_state=False,
54 plot_grid_properties=False,
58 Construct RKDG solver with fixed time step
60 For Rusanov, we really only need the solution along the face, and so we
61 ar fine with one quantity per PDE to be projected.
64 super(GlobalFixedTimeStep, self).
__init__(
68 FaceProjections.Solution,
74 pde_terms_without_state
89 boundary_conditions=boundary_conditions,
90 refinement_criterion=refinement_criterion,
91 initial_conditions=initial_conditions,
92 additional_action_set_includes=
"",
93 additional_user_includes=
"",
95 eigenvalues=eigenvalues,
97 source_term=source_term,
98 point_source=point_source,
106 boundary_conditions=None,
107 refinement_criterion=None,
108 initial_conditions=None,
112 additional_action_set_includes="",
113 additional_user_includes="",
116 boundary_conditions=boundary_conditions,
117 refinement_criterion=refinement_criterion,
118 initial_conditions=initial_conditions,
119 additional_action_set_includes=
"",
120 additional_user_includes=
"",
123 eigenvalues=eigenvalues,
124 source_term=source_term,
125 point_source=point_source,
131 solver_code_snippets = FixedTimeSteppingCodeSnippets(
144 solver_code_snippets.create_abstract_solver_user_declarations()
155 solver_code_snippets.create_abstract_solver_user_definitions()
176 solver_code_snippets.create_compute_time_step_size()
179 solver_code_snippets.create_compute_new_time_step_size()
183 solver_code_snippets.create_start_time_step_implementation()
186 solver_code_snippets.create_finish_time_step_implementation()
189 solver_code_snippets.create_abstract_solver_constructor_statements()
196 super(GlobalFixedTimeStep, self).user_action_set_includes
198#include "exahype2/dg/rusanov/Rusanov.h"
RKDG solver with Rusanov Riemann solver and global fixed time step.
_point_sources_implementation
_source_term_implementation
_normalised_time_step_size
_volumetric_compute_kernel_call
_solver_user_declarations
_compute_new_time_step_size
_abstract_solver_user_declarations
_constructor_implementation
_eigenvalues_implementation
_start_time_step_implementation
__init__(self, name, rk_order, polynomials, unknowns, auxiliary_variables, min_cell_h, max_cell_h, time_step_size, 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, pde_terms_without_state=False, plot_grid_properties=False)
Construct RKDG solver with fixed time step.
_add_solver_contributions_call
_multiply_with_inverted_mass_matrix_call
_abstract_solver_user_definitions
_Riemann_compute_kernel_call
_finish_time_step_implementation
user_action_set_includes(self)
_volumetric_compute_kernel_call_stateless
set_implementation(self, flux=None, ncp=None, boundary_conditions=None, refinement_criterion=None, initial_conditions=None, eigenvalues=None, source_term=None, point_source=None, additional_action_set_includes="", additional_user_includes="")