![]() |
Peano
|
Code snippet generator for all subcycling solvers. 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 (self) | |
Within the actual compute kernels, the kernels ask the solver variant how to determine a new field. | |
create_compute_new_time_step_size (self) | |
:: Zero eigenvalues | |
create_finish_time_step_implementation (self) | |
This routine is inserted after we have reduced all global quantities. | |
![]() | |
create_start_time_step_implementation (self) | |
Code snippet generator for all subcycling solvers.
Definition at line 6 of file LocalTimeSteppingCodeSnippets.py.
exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets.create_abstract_solver_constructor_statements | ( | self | ) |
Reimplemented from exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.
Definition at line 47 of file LocalTimeSteppingCodeSnippets.py.
exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets.create_abstract_solver_user_declarations | ( | self | ) |
Reimplemented from exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.
Definition at line 13 of file LocalTimeSteppingCodeSnippets.py.
exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets.create_abstract_solver_user_definitions | ( | self | ) |
Reimplemented from exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.
Definition at line 31 of file LocalTimeSteppingCodeSnippets.py.
exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets.create_compute_new_time_step_size | ( | self | ) |
:: Zero eigenvalues
If you solve non-linear problems, cells can have a zero eigenvalue. It means that nothing happens within this cell. There are two options on the table: You can take the biggest global eigenvalue and march forward using this value. In ExaHyPE 2, this yields a staircase effect if you have larger, regular region, then we have something similar to many stencil codes which then update the cells in the middle again, and then those in the middle again, and so forth.
We can avoid this by making a cell march if an only if one neighbour has advanced. In this case large global areas where nothing happens lag behind.
avoid_staircase_effect: Boolean
discretisation_steps: Integer
See exahype2::discretiseAndTruncateTimeStepSizes() for a description of admissible values and the semantics of the values.
Reimplemented from exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.
Definition at line 58 of file LocalTimeSteppingCodeSnippets.py.
exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets.create_compute_time_step_size | ( | self | ) |
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 from exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.
Definition at line 51 of file LocalTimeSteppingCodeSnippets.py.
exahype2.solvers.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets.create_finish_time_step_implementation | ( | self | ) |
This routine is inserted after we have reduced all global quantities.
These are the quantities with the postfix ThisTimeStep.
Reimplemented from exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.
Reimplemented in exahype2.solvers.fv.LocalTimeSteppingCodeSnippets.LocalTimeSteppingCodeSnippets.
Definition at line 135 of file LocalTimeSteppingCodeSnippets.py.