Advanced Multi-Physics (AMP)
On-Line Documentation
Public Types | Public Member Functions | Protected Attributes | List of all members
AMP::Mesh::TriangleMeshIterator< NG > Class Template Reference

#include <TriangleMeshIterator.h>

Inheritance diagram for AMP::Mesh::TriangleMeshIterator< NG >:
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 beginning.
 
std::string className () const override
 Return the class name.
 
std::unique_ptr< MeshIteratorBaseclone () const override
 Clone the iterator.
 
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.
 
auto getList () const
 Access the list of elements.
 
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
 
MeshIteratorBaseoperator+= (int N) override
 
MeshIteratorBaseoperator-- () override
 
const MeshElementoperator-> () const
 Dereference the iterator.
 
TriangleMeshIteratoroperator= (const TriangleMeshIterator &)
 Assignment 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.
 
 TriangleMeshIterator ()
 Empty MeshIterator constructor.
 
 TriangleMeshIterator (const AMP::Mesh::TriangleMesh< NG > *mesh, std::shared_ptr< const std::vector< ElementID > > list, size_t pos=0)
 
 TriangleMeshIterator (const TriangleMeshIterator &)
 Copy constructor.
 
 TriangleMeshIterator (int64_t, AMP::IO::RestartManager *)
 
Type type () const
 Return the iterator type.
 
void writeRestart (int64_t) const override
 
virtual ~TriangleMeshIterator ()=default
 Deconstructor.
 

Protected Attributes

TriangleMeshElement< NG > d_cur_element
 
const MeshElementd_element = nullptr
 Pointer to the current element.
 
Type d_iteratorType = Type::RandomAccess
 Type of iterator.
 
std::shared_ptr< const std::vector< ElementID > > d_list
 
const AMP::Mesh::TriangleMesh< NG > * d_mesh
 
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.
 

Detailed Description

template<uint8_t NG>
class AMP::Mesh::TriangleMeshIterator< NG >

Definition at line 17 of file TriangleMeshIterator.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

◆ TriangleMeshIterator() [1/4]

template<uint8_t NG>
AMP::Mesh::TriangleMeshIterator< NG >::TriangleMeshIterator ( )

Empty MeshIterator constructor.

◆ TriangleMeshIterator() [2/4]

template<uint8_t NG>
AMP::Mesh::TriangleMeshIterator< NG >::TriangleMeshIterator ( const AMP::Mesh::TriangleMesh< NG > *  mesh,
std::shared_ptr< const std::vector< ElementID > >  list,
size_t  pos = 0 
)
explicit

Default constructor

Parameters
meshPointer to the libMesh mesh
listList of elements
posPointer to iterator with the current position

◆ ~TriangleMeshIterator()

template<uint8_t NG>
virtual AMP::Mesh::TriangleMeshIterator< NG >::~TriangleMeshIterator ( )
virtualdefault

Deconstructor.

◆ TriangleMeshIterator() [3/4]

template<uint8_t NG>
AMP::Mesh::TriangleMeshIterator< NG >::TriangleMeshIterator ( const TriangleMeshIterator< NG > &  )

Copy constructor.

◆ TriangleMeshIterator() [4/4]

template<uint8_t NG>
AMP::Mesh::TriangleMeshIterator< NG >::TriangleMeshIterator ( int64_t  ,
AMP::IO::RestartManager  
)

Member Function Documentation

◆ begin()

template<uint8_t NG>
MeshIterator AMP::Mesh::TriangleMeshIterator< NG >::begin ( ) const
overridevirtual

Return an iterator to the beginning.

Implements AMP::Mesh::MeshIteratorBase.

◆ className()

template<uint8_t NG>
std::string AMP::Mesh::TriangleMeshIterator< NG >::className ( ) const
overridevirtual

Return the class name.

Implements AMP::Mesh::MeshIteratorBase.

◆ clone()

template<uint8_t NG>
std::unique_ptr< MeshIteratorBase > AMP::Mesh::TriangleMeshIterator< NG >::clone ( ) const
overridevirtual

Clone the iterator.

Implements AMP::Mesh::MeshIteratorBase.

◆ 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.

◆ getList()

template<uint8_t NG>
auto AMP::Mesh::TriangleMeshIterator< NG >::getList ( ) const
inline

Access the list of elements.

Definition at line 66 of file TriangleMeshIterator.h.

References AMP::Mesh::TriangleMeshIterator< NG >::d_list.

◆ operator!=() [1/3]

template<uint8_t NG>
bool AMP::Mesh::TriangleMeshIterator< NG >::operator!= ( const MeshIteratorBase rhs) const
overridevirtual

Check if two iterators are not equal.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator!=() [2/3]

template<uint8_t NG>
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<uint8_t NG>
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<uint8_t NG>
MeshIteratorBase & AMP::Mesh::TriangleMeshIterator< NG >::operator++ ( )
overridevirtual

◆ operator+=()

template<uint8_t NG>
MeshIteratorBase & AMP::Mesh::TriangleMeshIterator< NG >::operator+= ( int  N)
overridevirtual

◆ operator--()

template<uint8_t NG>
MeshIteratorBase & AMP::Mesh::TriangleMeshIterator< NG >::operator-- ( )
overridevirtual

◆ 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=()

template<uint8_t NG>
TriangleMeshIterator & AMP::Mesh::TriangleMeshIterator< NG >::operator= ( const TriangleMeshIterator< NG > &  )

Assignment operator.

◆ operator==() [1/3]

template<uint8_t NG>
bool AMP::Mesh::TriangleMeshIterator< NG >::operator== ( const MeshIteratorBase rhs) const
overridevirtual

Check if two iterators are equal.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator==() [2/3]

template<uint8_t NG>
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<uint8_t NG>
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<uint8_t NG>
void AMP::Mesh::TriangleMeshIterator< NG >::registerChildObjects ( AMP::IO::RestartManager ) const
overridevirtual

◆ setPos()

template<uint8_t NG>
void AMP::Mesh::TriangleMeshIterator< NG >::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<uint8_t NG>
void AMP::Mesh::TriangleMeshIterator< NG >::writeRestart ( int64_t  ) const
overridevirtual

Member Data Documentation

◆ d_cur_element

template<uint8_t NG>
TriangleMeshElement<NG> AMP::Mesh::TriangleMeshIterator< NG >::d_cur_element
protected

Definition at line 85 of file TriangleMeshIterator.h.

◆ 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_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_list

template<uint8_t NG>
std::shared_ptr<const std::vector<ElementID> > AMP::Mesh::TriangleMeshIterator< NG >::d_list
protected

◆ d_mesh

template<uint8_t NG>
const AMP::Mesh::TriangleMesh<NG>* AMP::Mesh::TriangleMeshIterator< NG >::d_mesh
protected

Definition at line 83 of file TriangleMeshIterator.h.

◆ 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 files:



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