Advanced Multi-Physics (AMP)
On-Line Documentation
libmeshNodeIterator.h
Go to the documentation of this file.
1#ifndef included_AMP_libmeshNodeIterator
2#define included_AMP_libmeshNodeIterator
3
4#include "AMP/mesh/MeshIterator.h"
5#include "AMP/mesh/libmesh/libmeshMesh.h"
6#include "AMP/mesh/libmesh/libmeshMeshElement.h"
7
8// libMesh includes
9#include "libmesh/libmesh_config.h"
10#undef LIBMESH_ENABLE_REFERENCE_COUNTING
11#include "libmesh/elem.h"
12
13
14namespace AMP::Mesh {
15
16
18{
19public:
22
24 virtual ~libmeshNodeIterator() = default;
25
28
31
33 std::string className() const override { return "libmeshNodeIterator"; }
34
36 void setPos( size_t ) override;
37
38 // Increment
40
41 // Decrement
43
44 // Arithmetic operator+=
45 MeshIteratorBase &operator+=( int N ) override;
46
47 // Check if two iterators are equal
48 bool operator==( const MeshIteratorBase &rhs ) const override;
49
50 // Check if two iterators are not equal
51 bool operator!=( const MeshIteratorBase &rhs ) const override;
52
53 // Return an iterator to the begining
54 MeshIterator begin() const override;
55
57 std::unique_ptr<MeshIteratorBase> clone() const override;
58
59 using MeshIteratorBase::operator==;
60 using MeshIteratorBase::operator!=;
61
62
63public: // Write/read restart data
64 void registerChildObjects( AMP::IO::RestartManager *manager ) const override;
65 void writeRestart( int64_t fid ) const override;
66 // libmeshNodeIterator( int64_t fid, AMP::IO::RestartManager *manager );
67
68
69public: // Advanced interfaces (use with caution)
76 const libMesh::Mesh::node_iterator &begin,
77 const libMesh::Mesh::node_iterator &end );
78
88 const libMesh::Mesh::node_iterator &begin,
89 const libMesh::Mesh::node_iterator &end,
90 const libMesh::Mesh::node_iterator &pos,
91 int size,
92 int pos2 );
93
94
95private:
96 // Data members
97 int d_dim;
98 int d_rank;
99 libMesh::Mesh::node_iterator d_begin2;
100 libMesh::Mesh::node_iterator d_end2;
101 libMesh::Mesh::node_iterator d_pos2;
105
107};
108
109} // namespace AMP::Mesh
110
111#endif
Class to manage reading/writing restart data.
A base class used to iterate over elements in a Mesh.
size_t pos() const
Return the current position (from the beginning) in the iterator.
size_t size() const
Return the number of elements in the iterator.
MeshIteratorEnd end() const
Return an iterator to the end (use tombstone class)
A class used to iterate over elements in a Mesh.
A derived class used to define a mesh element.
A concrete mesh class for libMesh.
Definition libmeshMesh.h:46
void writeRestart(int64_t fid) const override
std::string className() const override
Return the class name.
libmeshNodeIterator(const libmeshNodeIterator &)
Copy constructor.
libMesh::Mesh::node_iterator d_end2
std::unique_ptr< MeshIteratorBase > clone() const override
Clone the iterator.
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)
void registerChildObjects(AMP::IO::RestartManager *manager) const override
const AMP::Mesh::libmeshMesh * d_mesh
bool operator!=(const MeshIteratorBase &rhs) const override
Check if two iterators are not equal.
libmeshNodeIterator & operator=(const libmeshNodeIterator &)
Assignment operator.
MeshIteratorBase & operator--() override
libmeshNodeIterator(const AMP::Mesh::libmeshMesh *mesh, const libMesh::Mesh::node_iterator &begin, const libMesh::Mesh::node_iterator &end)
libMesh::Mesh::node_iterator d_pos2
libmeshNodeIterator()=delete
Empty MeshIterator constructor.
libMesh::Mesh::node_iterator d_begin2
bool operator==(const MeshIteratorBase &rhs) const override
Check if two iterators are equal.
MeshIterator begin() const override
Return an iterator to the beginning.
virtual ~libmeshNodeIterator()=default
Deconstructor.
void setPos(size_t) override
Set the position in the iterator.
MeshIteratorBase & operator++() override
MeshIteratorBase & operator+=(int N) override
A structure used to identify the mesh.
Definition MeshID.h:31



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:40.
Comments on this page