PolyDEAL
 
Loading...
Searching...
No Matches
Utils::MGCoarseDirect< VectorType, MatrixType, SolverType > Class Template Reference

#include <utils.h>

Inheritance diagram for Utils::MGCoarseDirect< VectorType, MatrixType, SolverType >:
MGCoarseGridBase< VectorType > Subscriptor

Public Member Functions

 MGCoarseDirect (const MatrixType &matrix)
 
void operator() (const unsigned int, VectorType &dst, const VectorType &src) const override
 
 ~MGCoarseDirect ()=default
 
- Public Member Functions inherited from MGCoarseGridBase< VectorType >
virtual ~MGCoarseGridBase () override=default
 
void serialize (Archive &ar, const unsigned int version)
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void serialize (Archive &ar, const unsigned int version)
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 

Private Attributes

SolverType direct_solver
 
const MatrixType & coarse_matrix
 

Additional Inherited Members

- Static Public Member Functions inherited from MGCoarseGridBase< VectorType >
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Detailed Description

template<typename VectorType, typename MatrixType, typename SolverType>
class Utils::MGCoarseDirect< VectorType, MatrixType, SolverType >

This class implements the interface required by MGCoarseGridBase and allows a direct to be used as coarse grid solver in the Multigrid framework. The SolverType is provided as template parameter.

Note
Supported direct solver types are: SparseDirectUMFPACK and TrilinosWrappers::SolverDirect. Available vector types are the ones supported by the respective solve() (or vmult()) interfaces by such types. This means that SparseDirectUMFPACK supports only serial deal.II vectors, while TrilinosWrappers::SolverDirect supports as parallel vector types: LinearAlgebra::distributed::Vector and TrilinosWrappers::MPI::Vector.

Definition at line 287 of file utils.h.

Constructor & Destructor Documentation

◆ MGCoarseDirect()

template<typename VectorType , typename MatrixType , typename SolverType >
Utils::MGCoarseDirect< VectorType, MatrixType, SolverType >::MGCoarseDirect ( const MatrixType & matrix)
inlineexplicit

◆ ~MGCoarseDirect()

template<typename VectorType , typename MatrixType , typename SolverType >
Utils::MGCoarseDirect< VectorType, MatrixType, SolverType >::~MGCoarseDirect ( )
default

Member Function Documentation

◆ operator()()

template<typename VectorType , typename MatrixType , typename SolverType >
void Utils::MGCoarseDirect< VectorType, MatrixType, SolverType >::operator() ( const unsigned int ,
VectorType & dst,
const VectorType & src ) const
inlineoverridevirtual

Member Data Documentation

◆ coarse_matrix

template<typename VectorType , typename MatrixType , typename SolverType >
const MatrixType& Utils::MGCoarseDirect< VectorType, MatrixType, SolverType >::coarse_matrix
private

◆ direct_solver

template<typename VectorType , typename MatrixType , typename SolverType >
SolverType Utils::MGCoarseDirect< VectorType, MatrixType, SolverType >::direct_solver
private

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