Advanced Multi-Physics (AMP)
On-Line Documentation
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
AMP::Mesh::MeshListIterator< TYPE > Class Template Referencefinal

A class used to iterate over a set of mesh elements. More...

#include <MeshListIterator.h>

Inheritance diagram for AMP::Mesh::MeshListIterator< TYPE >:
Inheritance graph
[legend]

Public Types

using difference_type = ptrdiff_t
 
using iterator_category = std::random_access_iterator_tag
 
using pointer = const AMP::Mesh::MeshElement *
 
using reference = const AMP::Mesh::MeshElement &
 
enum class  Type : uint8_t { Forward = 1 , Bidirectional = 2 , RandomAccess = 3 }
 Enum for the type of iterator supported. More...
 
using value_type = AMP::Mesh::MeshElement
 

Public Member Functions

MeshIterator begin () const override
 Return an iterator to the begining.
 
std::string className () const override
 Return the class name.
 
size_t empty () const
 Return the number of elements in the iterator.
 
MeshIteratorEnd end () const
 Return an iterator to the end (use tombstone class)
 
uint64_t getID () const
 Return a unique hash id.
 
 MeshListIterator ()
 Empty MeshListIterator constructor.
 
 MeshListIterator (const MeshListIterator &)
 Copy constructor.
 
 MeshListIterator (int64_t, AMP::IO::RestartManager *)
 
 MeshListIterator (MeshListIterator &&)=delete
 Move constructor.
 
 MeshListIterator (std::shared_ptr< std::vector< TYPE > > elements, size_t pos=0)
 Default MeshListIterator constructor.
 
bool operator!= (const MeshIteratorBase &rhs) const override
 Check if two iterators are not equal.
 
virtual bool operator!= (const MeshIteratorBase &rhs) const=0
 Check if two iterators are not equal.
 
bool operator!= (MeshIteratorEnd) const
 Check if two iterators are not equal.
 
const MeshElementoperator* () const
 Dereference the iterator.
 
MeshIteratorBaseoperator++ () override
 Increment.
 
MeshIteratorBaseoperator+= (int N) override
 
MeshIteratorBaseoperator-- () override
 Decrement.
 
const MeshElementoperator-> () const
 Dereference the iterator.
 
MeshListIteratoroperator= (const MeshListIterator &)
 Assignment operator.
 
MeshListIteratoroperator= (MeshListIterator &&)=delete
 Move operator.
 
bool operator== (const MeshIteratorBase &rhs) const override
 Check if two iterators are equal.
 
virtual bool operator== (const MeshIteratorBase &rhs) const=0
 Check if two iterators are equal.
 
bool operator== (MeshIteratorEnd) const
 Check if two iterators are equal.
 
size_t pos () const
 Return the current position (from the beginning) in the iterator.
 
void registerChildObjects (AMP::IO::RestartManager *) const override
 
void setPos (size_t) override
 Set the position in the iterator.
 
size_t size () const
 Return the number of elements in the iterator.
 
Type type () const
 Return the iterator type.
 
void writeRestart (int64_t) const override
 
 ~MeshListIterator ()=default
 Deconstructor.
 

Static Public Member Functions

static MeshIterator create (std::shared_ptr< std::vector< TYPE > > elements, size_t pos=0)
 

Protected Member Functions

std::unique_ptr< MeshIteratorBaseclone () const override
 Clone the iterator.
 

Protected Attributes

const MeshElementd_element = nullptr
 Pointer to the current element.
 
Type d_iteratorType = Type::RandomAccess
 Type of iterator.
 
size_t d_pos = 0
 Position of the iterator.
 
size_t d_size = 0
 Size of the iterator.
 
uint32_t d_typeHash = 0
 Unique hash for the type.
 

Private Attributes

std::shared_ptr< std::vector< TYPE > > d_elements
 

Detailed Description

template<class TYPE = MeshElement>
class AMP::Mesh::MeshListIterator< TYPE >

A class used to iterate over a set of mesh elements.

This class provides routines for iterating over a set of mesh elments that are in a std::vector.

Definition at line 21 of file MeshListIterator.h.

Member Typedef Documentation

◆ difference_type

using AMP::Mesh::MeshIteratorBase::difference_type = ptrdiff_t
inherited

Definition at line 45 of file MeshIterator.h.

◆ iterator_category

using AMP::Mesh::MeshIteratorBase::iterator_category = std::random_access_iterator_tag
inherited

Definition at line 43 of file MeshIterator.h.

◆ pointer

Definition at line 46 of file MeshIterator.h.

◆ reference

Definition at line 47 of file MeshIterator.h.

◆ value_type

Definition at line 44 of file MeshIterator.h.

Member Enumeration Documentation

◆ Type

enum class AMP::Mesh::MeshIteratorBase::Type : uint8_t
stronginherited

Enum for the type of iterator supported.

Enumerator
Forward 
Bidirectional 
RandomAccess 

Definition at line 52 of file MeshIterator.h.

Constructor & Destructor Documentation

◆ MeshListIterator() [1/5]

template<class TYPE = MeshElement>
AMP::Mesh::MeshListIterator< TYPE >::MeshListIterator ( )

Empty MeshListIterator constructor.

◆ MeshListIterator() [2/5]

template<class TYPE = MeshElement>
AMP::Mesh::MeshListIterator< TYPE >::MeshListIterator ( std::shared_ptr< std::vector< TYPE > >  elements,
size_t  pos = 0 
)

Default MeshListIterator constructor.

◆ ~MeshListIterator()

template<class TYPE = MeshElement>
AMP::Mesh::MeshListIterator< TYPE >::~MeshListIterator ( )
default

Deconstructor.

◆ MeshListIterator() [3/5]

template<class TYPE = MeshElement>
AMP::Mesh::MeshListIterator< TYPE >::MeshListIterator ( const MeshListIterator< TYPE > &  )

Copy constructor.

◆ MeshListIterator() [4/5]

template<class TYPE = MeshElement>
AMP::Mesh::MeshListIterator< TYPE >::MeshListIterator ( MeshListIterator< TYPE > &&  )
delete

Move constructor.

◆ MeshListIterator() [5/5]

template<class TYPE = MeshElement>
AMP::Mesh::MeshListIterator< TYPE >::MeshListIterator ( int64_t  ,
AMP::IO::RestartManager  
)

Member Function Documentation

◆ begin()

template<class TYPE = MeshElement>
MeshIterator AMP::Mesh::MeshListIterator< TYPE >::begin ( ) const
overridevirtual

Return an iterator to the begining.

Implements AMP::Mesh::MeshIteratorBase.

◆ className()

template<class TYPE = MeshElement>
std::string AMP::Mesh::MeshListIterator< TYPE >::className ( ) const
inlineoverridevirtual

Return the class name.

Implements AMP::Mesh::MeshIteratorBase.

Definition at line 48 of file MeshListIterator.h.

◆ clone()

template<class TYPE = MeshElement>
std::unique_ptr< MeshIteratorBase > AMP::Mesh::MeshListIterator< TYPE >::clone ( ) const
overrideprotectedvirtual

Clone the iterator.

Implements AMP::Mesh::MeshIteratorBase.

◆ create()

template<class TYPE = MeshElement>
static MeshIterator AMP::Mesh::MeshListIterator< TYPE >::create ( std::shared_ptr< std::vector< TYPE > >  elements,
size_t  pos = 0 
)
static

◆ empty()

size_t AMP::Mesh::MeshIteratorBase::empty ( ) const
inlineinherited

Return the number of elements in the iterator.

Definition at line 63 of file MeshIterator.h.

References AMP::Mesh::MeshIteratorBase::d_size.

◆ end()

MeshIteratorEnd AMP::Mesh::MeshIteratorBase::end ( ) const
inlineinherited

Return an iterator to the end (use tombstone class)

Definition at line 78 of file MeshIterator.h.

◆ getID()

uint64_t AMP::Mesh::MeshIteratorBase::getID ( ) const
inlineinherited

Return a unique hash id.

Definition at line 60 of file MeshIterator.h.

References AMP::Mesh::MeshIteratorBase::d_typeHash.

◆ operator!=() [1/3]

template<class TYPE = MeshElement>
bool AMP::Mesh::MeshListIterator< TYPE >::operator!= ( const MeshIteratorBase rhs) const
overridevirtual

Check if two iterators are not equal.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator!=() [2/3]

template<class TYPE = MeshElement>
virtual bool AMP::Mesh::MeshIteratorBase::operator!= ( const MeshIteratorBase rhs) const
virtual

Check if two iterators are not equal.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator!=() [3/3]

template<class TYPE = MeshElement>
bool AMP::Mesh::MeshIteratorBase::operator!= ( MeshIteratorEnd  ) const
inline

Check if two iterators are not equal.

Definition at line 84 of file MeshIterator.h.

◆ operator*()

const MeshElement & AMP::Mesh::MeshIteratorBase::operator* ( ) const
inlineinherited

Dereference the iterator.

Definition at line 75 of file MeshIterator.h.

References AMP::Mesh::MeshIteratorBase::d_element.

◆ operator++()

template<class TYPE = MeshElement>
MeshIteratorBase & AMP::Mesh::MeshListIterator< TYPE >::operator++ ( )
overridevirtual

Increment.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator+=()

template<class TYPE = MeshElement>
MeshIteratorBase & AMP::Mesh::MeshListIterator< TYPE >::operator+= ( int  N)
overridevirtual

◆ operator--()

template<class TYPE = MeshElement>
MeshIteratorBase & AMP::Mesh::MeshListIterator< TYPE >::operator-- ( )
overridevirtual

Decrement.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator->()

const MeshElement * AMP::Mesh::MeshIteratorBase::operator-> ( ) const
inlineinherited

Dereference the iterator.

Definition at line 72 of file MeshIterator.h.

References AMP::Mesh::MeshIteratorBase::d_element.

◆ operator=() [1/2]

template<class TYPE = MeshElement>
MeshListIterator & AMP::Mesh::MeshListIterator< TYPE >::operator= ( const MeshListIterator< TYPE > &  )

Assignment operator.

◆ operator=() [2/2]

template<class TYPE = MeshElement>
MeshListIterator & AMP::Mesh::MeshListIterator< TYPE >::operator= ( MeshListIterator< TYPE > &&  )
delete

Move operator.

◆ operator==() [1/3]

template<class TYPE = MeshElement>
bool AMP::Mesh::MeshListIterator< TYPE >::operator== ( const MeshIteratorBase rhs) const
overridevirtual

Check if two iterators are equal.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator==() [2/3]

template<class TYPE = MeshElement>
virtual bool AMP::Mesh::MeshIteratorBase::operator== ( const MeshIteratorBase rhs) const
virtual

Check if two iterators are equal.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator==() [3/3]

template<class TYPE = MeshElement>
bool AMP::Mesh::MeshIteratorBase::operator== ( MeshIteratorEnd  ) const
inline

Check if two iterators are equal.

Definition at line 81 of file MeshIterator.h.

◆ pos()

size_t AMP::Mesh::MeshIteratorBase::pos ( ) const
inlineinherited

Return the current position (from the beginning) in the iterator.

Definition at line 69 of file MeshIterator.h.

References AMP::Mesh::MeshIteratorBase::d_pos.

◆ registerChildObjects()

template<class TYPE = MeshElement>
void AMP::Mesh::MeshListIterator< TYPE >::registerChildObjects ( AMP::IO::RestartManager ) const
overridevirtual

◆ setPos()

template<class TYPE = MeshElement>
void AMP::Mesh::MeshListIterator< TYPE >::setPos ( size_t  )
overridevirtual

Set the position in the iterator.

Implements AMP::Mesh::MeshIteratorBase.

◆ size()

size_t AMP::Mesh::MeshIteratorBase::size ( ) const
inlineinherited

Return the number of elements in the iterator.

Definition at line 66 of file MeshIterator.h.

References AMP::Mesh::MeshIteratorBase::d_size.

◆ type()

Type AMP::Mesh::MeshIteratorBase::type ( ) const
inlineinherited

Return the iterator type.

Definition at line 57 of file MeshIterator.h.

References AMP::Mesh::MeshIteratorBase::d_iteratorType.

◆ writeRestart()

template<class TYPE = MeshElement>
void AMP::Mesh::MeshListIterator< TYPE >::writeRestart ( int64_t  ) const
overridevirtual

Member Data Documentation

◆ d_element

const MeshElement* AMP::Mesh::MeshIteratorBase::d_element = nullptr
protectedinherited

Pointer to the current element.

Definition at line 137 of file MeshIterator.h.

Referenced by AMP::Mesh::MeshIteratorBase::operator*(), and AMP::Mesh::MeshIteratorBase::operator->().

◆ d_elements

template<class TYPE = MeshElement>
std::shared_ptr<std::vector<TYPE> > AMP::Mesh::MeshListIterator< TYPE >::d_elements
private

Definition at line 88 of file MeshListIterator.h.

◆ d_iteratorType

Type AMP::Mesh::MeshIteratorBase::d_iteratorType = Type::RandomAccess
protectedinherited

Type of iterator.

Definition at line 133 of file MeshIterator.h.

Referenced by AMP::Mesh::MeshIteratorBase::type().

◆ d_pos

size_t AMP::Mesh::MeshIteratorBase::d_pos = 0
protectedinherited

◆ d_size

size_t AMP::Mesh::MeshIteratorBase::d_size = 0
protectedinherited

◆ d_typeHash

uint32_t AMP::Mesh::MeshIteratorBase::d_typeHash = 0
protectedinherited

Unique hash for the type.

Definition at line 134 of file MeshIterator.h.

Referenced by AMP::Mesh::MeshIteratorBase::getID().


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



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:43.
Comments on this page