![]() |
Peano
|
Interface for all solvers' code snippets. More...
Public Member Functions | |
create_abstract_solver_user_declarations (self) | |
create_abstract_solver_user_definitions (self) | |
create_abstract_solver_constructor_statements (self) | |
create_compute_time_step_size () | |
Within the actual compute kernels, the kernels ask the solver variant how to determine a new field. | |
create_compute_new_time_step_size () | |
Very similar to create_compute_time_step_size(), this routine should return a code snippet which creates a field newTimeStepSize. | |
create_start_time_step_implementation (self) | |
create_finish_time_step_implementation (self) | |
Interface for all solvers' code snippets.
Every solver has to inject some code snippets into the generated code: Which fields have to be available in the abstract base class, how do you compute the time step size within the kernels, and so forth. These routines are collected here. They are often the same for different numerical schemes, so it makes sense to bundle them up in snippet classes.
Definition at line 8 of file SolverCodeSnippets.py.
exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.create_abstract_solver_constructor_statements | ( | self | ) |
Reimplemented in exahype2.solvers.AdaptiveSubcyclingTimeSteppingCodeSnippets.AdaptiveSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.FixedSubcyclingTimeSteppingCodeSnippets.FixedSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets, and exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.
Definition at line 32 of file SolverCodeSnippets.py.
exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.create_abstract_solver_user_declarations | ( | self | ) |
Reimplemented in exahype2.solvers.AdaptiveSubcyclingTimeSteppingCodeSnippets.AdaptiveSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.FixedSubcyclingTimeSteppingCodeSnippets.FixedSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets, and exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.
Definition at line 22 of file SolverCodeSnippets.py.
exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.create_abstract_solver_user_definitions | ( | self | ) |
Reimplemented in exahype2.solvers.AdaptiveSubcyclingTimeSteppingCodeSnippets.AdaptiveSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.FixedSubcyclingTimeSteppingCodeSnippets.FixedSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets, and exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.
Definition at line 27 of file SolverCodeSnippets.py.
exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.create_compute_new_time_step_size | ( | ) |
Very similar to create_compute_time_step_size(), this routine should return a code snippet which creates a field newTimeStepSize.
It is used for subsequent time steps and/or some global analysis.
Reimplemented in exahype2.solvers.AdaptiveSubcyclingTimeSteppingCodeSnippets.AdaptiveSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.aderdg.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.FixedSubcyclingTimeSteppingCodeSnippets.FixedSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets, and exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.
Definition at line 54 of file SolverCodeSnippets.py.
exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.create_compute_time_step_size | ( | ) |
Within the actual compute kernels, the kernels ask the solver variant how to determine a new field.
const double timeStepSize = ...;
You can remove the const if you want. Anyway, this routine has to build up the right time step size choice.
Reimplemented in exahype2.solvers.AdaptiveSubcyclingTimeSteppingCodeSnippets.AdaptiveSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.FixedSubcyclingTimeSteppingCodeSnippets.FixedSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets, and exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.
Definition at line 37 of file SolverCodeSnippets.py.
exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.create_finish_time_step_implementation | ( | self | ) |
Reimplemented in exahype2.solvers.AdaptiveSubcyclingTimeSteppingCodeSnippets.AdaptiveSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.aderdg.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.aderdg.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.FixedSubcyclingTimeSteppingCodeSnippets.FixedSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.fv.AdaptiveSubcyclingTimeSteppingCodeSnippets.AdaptiveSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.fv.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.fv.FixedSubcyclingTimeSteppingCodeSnippets.FixedSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.fv.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.fv.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets, exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets, exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets, exahype2.solvers.rkdg.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.rkdg.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.rkdg.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets, exahype2.solvers.rkfd.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, and exahype2.solvers.rkfd.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets.
Definition at line 71 of file SolverCodeSnippets.py.
exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.create_start_time_step_implementation | ( | self | ) |
Reimplemented in exahype2.solvers.aderdg.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.aderdg.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.fv.AdaptiveSubcyclingTimeSteppingCodeSnippets.AdaptiveSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.fv.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.fv.FixedSubcyclingTimeSteppingCodeSnippets.FixedSubcyclingTimeSteppingCodeSnippets, exahype2.solvers.fv.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.fv.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets, exahype2.solvers.rkdg.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, exahype2.solvers.rkdg.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets, exahype2.solvers.rkdg.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets, exahype2.solvers.rkfd.AdaptiveTimeSteppingCodeSnippets.AdaptiveTimeSteppingCodeSnippets, and exahype2.solvers.rkfd.FixedTimeSteppingCodeSnippets.FixedTimeSteppingCodeSnippets.
Definition at line 66 of file SolverCodeSnippets.py.