Advanced Multi-Physics (AMP)
On-Line Documentation
Public Types | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
AMP::Mesh::libmeshNodeIterator Class Reference

#include <libmeshNodeIterator.h>

Inheritance diagram for AMP::Mesh::libmeshNodeIterator:
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.
 
 libmeshNodeIterator ()=delete
 Empty MeshIterator constructor.
 
 libmeshNodeIterator (const AMP::Mesh::libmeshMesh *mesh, const libMesh::Mesh::node_iterator &begin, const libMesh::Mesh::node_iterator &end)
 
 libmeshNodeIterator (const AMP::Mesh::libmeshMesh *mesh, const libMesh::Mesh::node_iterator &begin, const libMesh::Mesh::node_iterator &end, const libMesh::Mesh::node_iterator &pos, int size, int pos2)
 
 libmeshNodeIterator (const libmeshNodeIterator &)
 Copy 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
 
MeshIteratorBaseoperator+= (int N) override
 
MeshIteratorBaseoperator-- () override
 
const MeshElementoperator-> () const
 Dereference the iterator.
 
libmeshNodeIteratoroperator= (const libmeshNodeIterator &)
 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 *manager) 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 fid) const override
 
virtual ~libmeshNodeIterator ()=default
 Deconstructor.
 

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 Member Functions

void setCurrentElement ()
 

Private Attributes

libMesh::Mesh::node_iterator d_begin2
 
libmeshMeshElement d_cur_element
 
int d_dim
 
libMesh::Mesh::node_iterator d_end2
 
const AMP::Mesh::libmeshMeshd_mesh
 
MeshID d_meshID
 
libMesh::Mesh::node_iterator d_pos2
 
int d_rank
 

Detailed Description

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

◆ libmeshNodeIterator() [1/4]

AMP::Mesh::libmeshNodeIterator::libmeshNodeIterator ( )
delete

Empty MeshIterator constructor.

◆ ~libmeshNodeIterator()

virtual AMP::Mesh::libmeshNodeIterator::~libmeshNodeIterator ( )
virtualdefault

Deconstructor.

◆ libmeshNodeIterator() [2/4]

AMP::Mesh::libmeshNodeIterator::libmeshNodeIterator ( const libmeshNodeIterator )

Copy constructor.

◆ libmeshNodeIterator() [3/4]

AMP::Mesh::libmeshNodeIterator::libmeshNodeIterator ( const AMP::Mesh::libmeshMesh mesh,
const libMesh::Mesh::node_iterator &  begin,
const libMesh::Mesh::node_iterator &  end 
)

Default constructor

Parameters
meshPointer to the libMesh mesh
beginPointer to iterator with the begining position
endPointer to iterator with the end position

◆ libmeshNodeIterator() [4/4]

AMP::Mesh::libmeshNodeIterator::libmeshNodeIterator ( const AMP::Mesh::libmeshMesh mesh,
const libMesh::Mesh::node_iterator &  begin,
const libMesh::Mesh::node_iterator &  end,
const libMesh::Mesh::node_iterator &  pos,
int  size,
int  pos2 
)

Default constructor

Parameters
meshPointer to the libMesh mesh
beginPointer to iterator with the begining position
endPointer to iterator with the end position
posPointer to iterator with the current position
sizeNumber of elements in the iterator (-1: unknown)
pos2Index of the current position in the iterator (-1: unknown)

Member Function Documentation

◆ begin()

MeshIterator AMP::Mesh::libmeshNodeIterator::begin ( ) const
overridevirtual

Return an iterator to the beginning.

Implements AMP::Mesh::MeshIteratorBase.

◆ className()

std::string AMP::Mesh::libmeshNodeIterator::className ( ) const
inlineoverridevirtual

Return the class name.

Implements AMP::Mesh::MeshIteratorBase.

Definition at line 33 of file libmeshNodeIterator.h.

◆ clone()

std::unique_ptr< MeshIteratorBase > AMP::Mesh::libmeshNodeIterator::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.

◆ operator!=() [1/3]

bool AMP::Mesh::libmeshNodeIterator::operator!= ( const MeshIteratorBase rhs) const
overridevirtual

Check if two iterators are not equal.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator!=() [2/3]

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]

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++()

MeshIteratorBase & AMP::Mesh::libmeshNodeIterator::operator++ ( )
overridevirtual

◆ operator+=()

MeshIteratorBase & AMP::Mesh::libmeshNodeIterator::operator+= ( int  N)
overridevirtual

◆ operator--()

MeshIteratorBase & AMP::Mesh::libmeshNodeIterator::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=()

libmeshNodeIterator & AMP::Mesh::libmeshNodeIterator::operator= ( const libmeshNodeIterator )

Assignment operator.

◆ operator==() [1/3]

bool AMP::Mesh::libmeshNodeIterator::operator== ( const MeshIteratorBase rhs) const
overridevirtual

Check if two iterators are equal.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator==() [2/3]

virtual bool AMP::Mesh::MeshIteratorBase::operator== ( const MeshIteratorBase rhs) const
virtual

Check if two iterators are equal.

Implements AMP::Mesh::MeshIteratorBase.

◆ operator==() [3/3]

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

void AMP::Mesh::libmeshNodeIterator::registerChildObjects ( AMP::IO::RestartManager manager) const
overridevirtual

◆ setCurrentElement()

void AMP::Mesh::libmeshNodeIterator::setCurrentElement ( )
private

◆ setPos()

void AMP::Mesh::libmeshNodeIterator::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()

void AMP::Mesh::libmeshNodeIterator::writeRestart ( int64_t  fid) const
overridevirtual

Member Data Documentation

◆ d_begin2

libMesh::Mesh::node_iterator AMP::Mesh::libmeshNodeIterator::d_begin2
private

Definition at line 99 of file libmeshNodeIterator.h.

◆ d_cur_element

libmeshMeshElement AMP::Mesh::libmeshNodeIterator::d_cur_element
private

Definition at line 104 of file libmeshNodeIterator.h.

◆ d_dim

int AMP::Mesh::libmeshNodeIterator::d_dim
private

Definition at line 97 of file libmeshNodeIterator.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_end2

libMesh::Mesh::node_iterator AMP::Mesh::libmeshNodeIterator::d_end2
private

Definition at line 100 of file libmeshNodeIterator.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_mesh

const AMP::Mesh::libmeshMesh* AMP::Mesh::libmeshNodeIterator::d_mesh
private

Definition at line 103 of file libmeshNodeIterator.h.

◆ d_meshID

MeshID AMP::Mesh::libmeshNodeIterator::d_meshID
private

Definition at line 102 of file libmeshNodeIterator.h.

◆ d_pos

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

◆ d_pos2

libMesh::Mesh::node_iterator AMP::Mesh::libmeshNodeIterator::d_pos2
private

Definition at line 101 of file libmeshNodeIterator.h.

◆ d_rank

int AMP::Mesh::libmeshNodeIterator::d_rank
private

Definition at line 98 of file libmeshNodeIterator.h.

◆ 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