dune-istl 2.11
Loading...
Searching...
No Matches
Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 > Class Template Reference

Iterator over the levels in the hierarchy. More...

#include <dune/istl/paamg/hierarchy.hh>

Inheritance diagram for Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >:
Inheritance graph

Public Member Functions

 LevelIterator ()=default
 Constructor.
 LevelIterator (std::shared_ptr< Element > element)
template<class C_, class T1_, std::enable_if_t< std::is_same_v< std::remove_const_t< C >, std::remove_const_t< C_ > >, int > = 0, std::enable_if_t< std::is_same_v< std::remove_const_t< T1 >, std::remove_const_t< T1_ > >, int > = 0>
 LevelIterator (const LevelIterator< C_, T1_ > &other)
 Copy constructor.
template<class C_, class T1_, std::enable_if_t< std::is_same_v< std::remove_const_t< C >, std::remove_const_t< C_ > >, int > = 0, std::enable_if_t< std::is_same_v< std::remove_const_t< T1 >, std::remove_const_t< T1_ > >, int > = 0>
LevelIteratoroperator= (const LevelIterator< C_, T1_ > &other)
bool equals (const LevelIterator< typename std::remove_const< C >::type, typename std::remove_const< T1 >::type > &other) const
 Equality check.
bool equals (const LevelIterator< const typename std::remove_const< C >::type, const typename std::remove_const< T1 >::type > &other) const
 Equality check.
T1 & dereference () const
 Dereference the iterator.
void increment ()
 Move to the next coarser level.
void decrement ()
 Move to the next fine level.
bool isRedistributed () const
 Check whether there was a redistribution at the current level.
T1 & getRedistributed () const
 Get the redistributed container.
void addRedistributed (std::shared_ptr< T1 > t)
void deleteRedistributed ()

Friends

class LevelIterator< typename std::remove_const< C >::type, typename std::remove_const< T1 >::type >
class LevelIterator< const typename std::remove_const< C >::type, const typename std::remove_const< T1 >::type >

Detailed Description

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
class Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >

Iterator over the levels in the hierarchy.

operator++() moves to the next coarser level in the hierarchy. while operator--() moves to the next finer level in the hierarchy.

Constructor & Destructor Documentation

◆ LevelIterator() [1/3]

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::LevelIterator ( )
default

Constructor.

◆ LevelIterator() [2/3]

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::LevelIterator ( std::shared_ptr< Element > element)
inline

◆ LevelIterator() [3/3]

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
template<class C_, class T1_, std::enable_if_t< std::is_same_v< std::remove_const_t< C >, std::remove_const_t< C_ > >, int > = 0, std::enable_if_t< std::is_same_v< std::remove_const_t< T1 >, std::remove_const_t< T1_ > >, int > = 0>
Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::LevelIterator ( const LevelIterator< C_, T1_ > & other)
inline

Copy constructor.

Member Function Documentation

◆ addRedistributed()

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
void Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::addRedistributed ( std::shared_ptr< T1 > t)
inline

◆ decrement()

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
void Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::decrement ( )
inline

Move to the next fine level.

◆ deleteRedistributed()

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
void Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::deleteRedistributed ( )
inline

◆ dereference()

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
T1 & Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::dereference ( ) const
inline

Dereference the iterator.

◆ equals() [1/2]

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
bool Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::equals ( const LevelIterator< const typename std::remove_const< C >::type, const typename std::remove_const< T1 >::type > & other) const
inline

Equality check.

◆ equals() [2/2]

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
bool Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::equals ( const LevelIterator< typename std::remove_const< C >::type, typename std::remove_const< T1 >::type > & other) const
inline

Equality check.

◆ getRedistributed()

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
T1 & Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::getRedistributed ( ) const
inline

Get the redistributed container.

Returns
The redistributed container.

◆ increment()

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
void Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::increment ( )
inline

Move to the next coarser level.

◆ isRedistributed()

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
bool Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::isRedistributed ( ) const
inline

Check whether there was a redistribution at the current level.

Returns
True if there is a redistributed version of the container at the current level.

◆ operator=()

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
template<class C_, class T1_, std::enable_if_t< std::is_same_v< std::remove_const_t< C >, std::remove_const_t< C_ > >, int > = 0, std::enable_if_t< std::is_same_v< std::remove_const_t< T1 >, std::remove_const_t< T1_ > >, int > = 0>
LevelIterator & Dune::Amg::Hierarchy< T, A >::LevelIterator< C, T1 >::operator= ( const LevelIterator< C_, T1_ > & other)
inline

◆ LevelIterator< const typename std::remove_const< C >::type, const typename std::remove_const< T1 >::type >

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
friend class LevelIterator< const typename std::remove_const< C >::type, const typename std::remove_const< T1 >::type >
friend

◆ LevelIterator< typename std::remove_const< C >::type, typename std::remove_const< T1 >::type >

template<typename T, typename A = std::allocator<T>>
template<class C, class T1>
friend class LevelIterator< typename std::remove_const< C >::type, typename std::remove_const< T1 >::type >
friend

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