deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Types | Private Member Functions | Friends | List of all members
SUNDIALS::ARKodeStepper< VectorType > Class Template Referenceabstract

#include <deal.II/sundials/arkode_stepper.h>

Detailed Description

template<typename VectorType>
class SUNDIALS::ARKodeStepper< VectorType >

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.

Inheritance diagram for SUNDIALS::ARKodeStepper< VectorType >:
[legend]

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 >
 

Member Typedef Documentation

◆ ARKodeMemoryPtr

template<typename VectorType >
using SUNDIALS::ARKodeStepper< VectorType >::ARKodeMemoryPtr = std::unique_ptr<void, void (*)(void *)>
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.

Constructor & Destructor Documentation

◆ ~ARKodeStepper()

template<typename VectorType >
virtual SUNDIALS::ARKodeStepper< VectorType >::~ARKodeStepper ( )
virtualdefault

Destructor. Made virtual to allow this class to be used as an abstract base class.

Member Function Documentation

◆ get_arkode_memory()

template<typename VectorType >
virtual void * SUNDIALS::ARKodeStepper< VectorType >::get_arkode_memory ( ) const
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.

Note
If custom settings of ARKODE functionality (that are not achievable via the interface of this class) are required, the function custom_setup() should be used.
Returns
pointer to the ARKODE memory block that can be passed to SUNDIALS functions

Implemented in SUNDIALS::ARKStepper< VectorType >, SUNDIALS::ARKStepper< Vector< double > >, SUNDIALS::ERKStepper< VectorType >, SUNDIALS::LSRKStepperSTS< VectorType >, and SUNDIALS::LSRKStepperSSP< VectorType >.

◆ reinit()

template<typename VectorType >
virtual void SUNDIALS::ARKodeStepper< VectorType >::reinit ( double  t0,
const VectorType &  y0,
internal::InvocationContext  inv_ctx 
)
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.

Parameters
t0Time instance that serves as starting time
y0Initial state vector whose layout is used for initialization of the internal ARKODE vectors
inv_ctxInvocation 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 >.

Friends And Related Symbol Documentation

◆ ARKode< VectorType >

template<typename VectorType >
friend class ARKode< VectorType >
friend

Make ARKode class a friend such that the latter could access reinit() method.

Definition at line 1814 of file arkode_stepper.h.


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