deal.II version GIT relicensing-7058-gb35ee29762 2026-11-11 09:30: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
Public Member Functions | Private Attributes | List of all members
SUNDIALS::internal::LinearSolverWrapper< VectorType > Class Template Reference

Detailed Description

template<typename VectorType>
class SUNDIALS::internal::LinearSolverWrapper< VectorType >

Attach wrapper functions to SUNDIALS' linear solver interface. We pretend that the user-supplied linear solver is matrix-free, even though it can be matrix-based. This way SUNDIALS does not need to understand our matrix types.

Definition at line 235 of file sunlinsol_wrapper.h.

Public Member Functions

 LinearSolverWrapper (const LinearSolveFunction< VectorType > &lsolve, std::exception_ptr &pending_exception, SUNContext linsol_ctx)
 
 ~LinearSolverWrapper ()
 
 LinearSolverWrapper (const LinearSolverWrapper &)=delete
 
LinearSolverWrapper & operator= (const LinearSolverWrapper &)=delete
 
 LinearSolverWrapper (LinearSolverWrapper &&other) noexcept
 
LinearSolverWrapper & operator= (LinearSolverWrapper &&other) noexcept
 
 operator SUNLinearSolver () const
 

Private Attributes

SUNLinearSolver sun_linear_solver
 
std::unique_ptr< LinearSolverContent< VectorType > > content
 

Constructor & Destructor Documentation

◆ LinearSolverWrapper() [1/3]

template<typename VectorType >
SUNDIALS::internal::LinearSolverWrapper< VectorType >::LinearSolverWrapper ( const LinearSolveFunction< VectorType > &  lsolve,
std::exception_ptr &  pending_exception,
SUNContext  linsol_ctx 
)
explicit

◆ ~LinearSolverWrapper()

template<typename VectorType >
SUNDIALS::internal::LinearSolverWrapper< VectorType >::~LinearSolverWrapper ( )

Destructor. Frees the SUNLinearSolver object.

◆ LinearSolverWrapper() [2/3]

template<typename VectorType >
SUNDIALS::internal::LinearSolverWrapper< VectorType >::LinearSolverWrapper ( const LinearSolverWrapper< VectorType > &  )
delete

The object owns the SUNLinearSolver and can therefore not be copied. It can be moved: the SUNLinearSolver and its content live on the heap, so the pointers that SUNDIALS holds stay valid after the move.

◆ LinearSolverWrapper() [3/3]

template<typename VectorType >
SUNDIALS::internal::LinearSolverWrapper< VectorType >::LinearSolverWrapper ( LinearSolverWrapper< VectorType > &&  other)
noexcept

Member Function Documentation

◆ operator=() [1/2]

template<typename VectorType >
LinearSolverWrapper & SUNDIALS::internal::LinearSolverWrapper< VectorType >::operator= ( const LinearSolverWrapper< VectorType > &  )
delete

◆ operator=() [2/2]

template<typename VectorType >
LinearSolverWrapper & SUNDIALS::internal::LinearSolverWrapper< VectorType >::operator= ( LinearSolverWrapper< VectorType > &&  other)
noexcept

◆ operator SUNLinearSolver()

template<typename VectorType >
SUNDIALS::internal::LinearSolverWrapper< VectorType >::operator SUNLinearSolver ( ) const

Implicit conversion to SUNLinearSolver.

Member Data Documentation

◆ sun_linear_solver

template<typename VectorType >
SUNLinearSolver SUNDIALS::internal::LinearSolverWrapper< VectorType >::sun_linear_solver
private

Definition at line 271 of file sunlinsol_wrapper.h.

◆ content

template<typename VectorType >
std::unique_ptr<LinearSolverContent<VectorType> > SUNDIALS::internal::LinearSolverWrapper< VectorType >::content
private

Definition at line 272 of file sunlinsol_wrapper.h.


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