Peano
Loading...
Searching...
No Matches
exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets Class Reference

Code snippet generator for all fixed time stepping solvers. More...

Inheritance diagram for exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets:
Collaboration diagram for exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets:

Public Member Functions

 create_abstract_solver_user_declarations (self)
 
 create_abstract_solver_user_definitions (self)
 
 create_abstract_solver_constructor_statements (self)
 Set the admissible time step size as well as the predicted time step size to zero.
 
 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)
 This is global, fixed time stepping, i.e.
 
 create_finish_time_step_implementation (self)
 This routine is inserted after we have reduced all global quantities.
 
- Public Member Functions inherited from exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets
 create_start_time_step_implementation (self)
 

Detailed Description

Code snippet generator for all fixed time stepping solvers.

Consult the generic discussion of optimistic enclave solvers before you continue to study this class. On this generic overview page, I notably clarify why this solver variant and its code snippets are inappropriate for Finite Difference and Finite Volume methods.

Definition at line 6 of file OptimisticAdaptiveTimeSteppingCodeSnippets.py.

Member Function Documentation

◆ create_abstract_solver_constructor_statements()

exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.create_abstract_solver_constructor_statements ( self)

Set the admissible time step size as well as the predicted time step size to zero.

The admissible time step size will be analysed throughout the first time step, and then we can really kick off with an admissible one.

Reimplemented from exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.

Definition at line 66 of file OptimisticAdaptiveTimeSteppingCodeSnippets.py.

◆ create_abstract_solver_user_declarations()

exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.create_abstract_solver_user_declarations ( self)

◆ create_abstract_solver_user_definitions()

exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.create_abstract_solver_user_definitions ( self)

◆ create_compute_new_time_step_size()

exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.create_compute_new_time_step_size ( self)

This is global, fixed time stepping, i.e.

the new time step size will likely be the same as the previous one, unless the mesh changes, as we work with normalised time step sizes, i.e. in this case the time step size might change. Anyway, the new time step size is only for stats anyway, as we'll pick a global one when we determine timeStepSize the next time step.

Reimplemented from exahype2.solvers.SolverCodeSnippets.SolverCodeSnippets.

Definition at line 88 of file OptimisticAdaptiveTimeSteppingCodeSnippets.py.

◆ create_compute_time_step_size()

exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.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 82 of file OptimisticAdaptiveTimeSteppingCodeSnippets.py.

◆ create_finish_time_step_implementation()

exahype2.solvers.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.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.rkdg.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.

Definition at line 107 of file OptimisticAdaptiveTimeSteppingCodeSnippets.py.

Referenced by exahype2.solvers.rkdg.OptimisticAdaptiveTimeSteppingCodeSnippets.OptimisticAdaptiveTimeSteppingCodeSnippets.create_finish_time_step_implementation().

Here is the caller graph for this function:

The documentation for this class was generated from the following file: