![]() |
deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
|
#include <deal.II/sundials/arkode_stepper.h>
A base class for the implementation of ARKode stepper classes.
This class does not perform any actions during the time marching itself. It is responsible for setting up the internal data structures of the ARKODE via the ARKODE memory block. This setup is very much stepper specific, whereas the time advance itself is generalized in ARKODE. This separation of responsibilities is reflected in the current design that distributes the functionality between ARKode and ARKodeStepper accordingly.
Definition at line 83 of file arkode_stepper.h.
Classes | |
| struct | CallbackContext |
Public Member Functions | |
| virtual | ~ARKodeStepper ()=default |
| virtual void * | get_arkode_memory () const =0 |
Protected Types | |
| using | ARKodeMemoryPtr = std::unique_ptr< void, void(*)(void *)> |
Private Member Functions | |
| virtual void | reinit (double t0, const VectorType &y0, internal::InvocationContext inv_ctx)=0 |
Friends | |
| class | ARKode< VectorType > |
|
protected |
Alias for the memory management of the ARKODE memory block introduced to avoid repeating the long type. This smart pointer is created and destroyed by the corresponding stepper specific functions: for example, for ARKStep these are ARKStepCreate and ARKStepFree, respectively. The underlying object is supplied to the native ARKODE functions.
Definition at line 158 of file arkode_stepper.h.
|
virtualdefault |
Destructor. Made virtual to allow this class to be used as an abstract base class.
|
pure virtual |
Provides user access to the internally used ARKODE memory.
This functionality is intended for users who wish to query additional information directly from the ARKODE integrator, refer to the ARKODE manual for the various ARKStepGet... functions. The ARKStepSet... functions should not be called since this might lead to conflicts with various settings that are performed by this ARKodeStepper object.
Implemented in SUNDIALS::ARKStepper< VectorType >, SUNDIALS::ARKStepper< Vector< double > >, SUNDIALS::ERKStepper< VectorType >, SUNDIALS::LSRKStepperSTS< VectorType >, and SUNDIALS::LSRKStepperSSP< VectorType >.
|
privatepure virtual |
Rebuild the stepper at a given time instance and for a given state vector.
To transport exceptions and maintain context across C boundaries, the code uses internal::InvocationContext (see invocation_context.h) which carries an std::exception_ptr that is inspected after a callback returns.
| t0 | Time instance that serves as starting time |
| y0 | Initial state vector whose layout is used for initialization of the internal ARKODE vectors |
| inv_ctx | Invocation context that provides access to the SUNContext object and the exception pointer managed by the caller |
Implemented in SUNDIALS::ARKStepper< VectorType >, SUNDIALS::ERKStepper< VectorType >, SUNDIALS::LSRKStepperSTS< VectorType >, and SUNDIALS::LSRKStepperSSP< VectorType >.
|
friend |
Make ARKode class a friend such that the latter could access reinit() method.
Definition at line 1814 of file arkode_stepper.h.