Reference documentation for deal.II version 9.3.3
\(\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\}}\)
Public Member Functions | Private Attributes | List of all members
MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType > Class Template Reference

#include <deal.II/multigrid/mg_coarse.h>

Inheritance diagram for MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType >:
[legend]

Public Member Functions

 MGCoarseGridIterativeSolver ()
 
 MGCoarseGridIterativeSolver (SolverType &solver, const MatrixType &matrix, const PreconditionerType &precondition)
 
void initialize (SolverType &solver, const MatrixType &matrix, const PreconditionerType &precondition)
 
void clear ()
 
virtual void operator() (const unsigned int level, VectorType &dst, const VectorType &src) const override
 

Private Attributes

SmartPointer< SolverType, MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType > > solver
 
SmartPointer< const MatrixType, MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType > > matrix
 
SmartPointer< const PreconditionerType, MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType > > preconditioner
 

Subscriptor functionality

Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class.

std::atomic< unsigned intcounter
 
std::map< std::string, unsigned intcounter_map
 
std::vector< std::atomic< bool > * > validity_pointers
 
const std::type_info * object_info
 
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
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 
using map_value_type = decltype(counter_map)::value_type
 
using map_iterator = decltype(counter_map)::iterator
 
static std::mutex mutex
 
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
void check_no_subscribers () const noexcept
 

Detailed Description

template<class VectorType, class SolverType, class MatrixType, class PreconditionerType>
class MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType >

Coarse grid multigrid operator for an iterative solver.

This class provides a wrapper for a deal.II iterative solver with a given matrix and preconditioner as a coarse grid operator.

Definition at line 92 of file mg_coarse.h.

Constructor & Destructor Documentation

◆ MGCoarseGridIterativeSolver() [1/2]

template<class VectorType , class SolverType , class MatrixType , class PreconditionerType >
MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType >::MGCoarseGridIterativeSolver ( )

Default constructor.

◆ MGCoarseGridIterativeSolver() [2/2]

template<class VectorType , class SolverType , class MatrixType , class PreconditionerType >
MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType >::MGCoarseGridIterativeSolver ( SolverType solver,
const MatrixType &  matrix,
const PreconditionerType &  precondition 
)

Constructor. Only a reference to these objects is stored, so their lifetime needs to exceed the usage in this class.

Member Function Documentation

◆ initialize()

template<class VectorType , class SolverType , class MatrixType , class PreconditionerType >
void MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType >::initialize ( SolverType solver,
const MatrixType &  matrix,
const PreconditionerType &  precondition 
)

Initialize with new data, see the corresponding constructor for more details.

◆ clear()

template<class VectorType , class SolverType , class MatrixType , class PreconditionerType >
void MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType >::clear ( )

Clear all pointers.

◆ operator()()

template<class VectorType , class SolverType , class MatrixType , class PreconditionerType >
virtual void MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType >::operator() ( const unsigned int  level,
VectorType &  dst,
const VectorType &  src 
) const
overridevirtual

Implementation of the abstract function. Calls the solve method of the given solver with matrix, vectors, and preconditioner.

Implements MGCoarseGridBase< VectorType >.

Member Data Documentation

◆ solver

template<class VectorType , class SolverType , class MatrixType , class PreconditionerType >
SmartPointer<SolverType, MGCoarseGridIterativeSolver<VectorType, SolverType, MatrixType, PreconditionerType> > MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType >::solver
private

Reference to the solver.

Definition at line 141 of file mg_coarse.h.

◆ matrix

template<class VectorType , class SolverType , class MatrixType , class PreconditionerType >
SmartPointer<const MatrixType, MGCoarseGridIterativeSolver<VectorType, SolverType, MatrixType, PreconditionerType> > MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType >::matrix
private

Reference to the matrix.

Definition at line 151 of file mg_coarse.h.

◆ preconditioner

template<class VectorType , class SolverType , class MatrixType , class PreconditionerType >
SmartPointer<const PreconditionerType, MGCoarseGridIterativeSolver<VectorType, SolverType, MatrixType, PreconditionerType> > MGCoarseGridIterativeSolver< VectorType, SolverType, MatrixType, PreconditionerType >::preconditioner
private

Reference to the preconditioner.

Definition at line 161 of file mg_coarse.h.


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