Advanced Multi-Physics (AMP)
On-Line Documentation
libmeshElemIterator.h
Go to the documentation of this file.
1#ifndef included_AMP_libmeshElemIterator
2#define included_AMP_libmeshElemIterator
3
4#include "AMP/mesh/MeshIterator.h"
5#include "AMP/mesh/libmesh/libmeshMeshElement.h"
6
7// libMesh includes
8#include "libmesh/libmesh_config.h"
9#undef LIBMESH_ENABLE_REFERENCE_COUNTING
10#include "libmesh/elem.h"
11
12
13namespace AMP::Mesh {
14
15
16class libmeshMesh;
17
18
20{
21public:
24
26 virtual ~libmeshElemIterator() = default;
27
30
33
35 std::string className() const override { return "libmeshElemIterator"; }
36
38 void setPos( size_t ) override;
39
40 // Increment
42
43 // Decrement
45
46 // Arithmetic operator+=
47 MeshIteratorBase &operator+=( int N ) override;
48
49 // Check if two iterators are equal
50 bool operator==( const MeshIteratorBase &rhs ) const override;
51
52 // Check if two iterators are not equal
53 bool operator!=( const MeshIteratorBase &rhs ) const override;
54
55 // Return an iterator to the begining
56 MeshIterator begin() const override;
57
59 std::unique_ptr<MeshIteratorBase> clone() const override;
60
61 // Return the current libmeshMeshElement
63
64 // Return the current libMesh Elem
65 libMesh::Elem *elem() const;
66
67 using MeshIteratorBase::operator==;
68 using MeshIteratorBase::operator!=;
69
70
71public: // Write/read restart data
72 void registerChildObjects( AMP::IO::RestartManager *manager ) const override;
73 void writeRestart( int64_t fid ) const override;
74 // libmeshElemIterator( int64_t fid, AMP::IO::RestartManager *manager );
75
76
77public: // Advanced interfaces (use with caution)
84 const libMesh::Mesh::element_iterator &begin,
85 const libMesh::Mesh::element_iterator &end );
86
96 const libMesh::Mesh::element_iterator &begin,
97 const libMesh::Mesh::element_iterator &end,
98 const libMesh::Mesh::element_iterator &pos,
99 int size,
100 int pos2 );
101
102
103private:
104 // Data members
105 int d_dim;
107 libMesh::Mesh::element_iterator d_begin2;
108 libMesh::Mesh::element_iterator d_end2;
109 libMesh::Mesh::element_iterator d_pos2;
113
115};
116
117} // namespace AMP::Mesh
118
119#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.
void writeRestart(int64_t fid) const override
MeshIteratorBase & operator++() override
void setPos(size_t) override
Set the position in the iterator.
libmeshElemIterator(const AMP::Mesh::libmeshMesh *mesh, const libMesh::Mesh::element_iterator &begin, const libMesh::Mesh::element_iterator &end)
libmeshElemIterator & operator=(const libmeshElemIterator &)
Assignment operator.
libMesh::Mesh::element_iterator d_begin2
void registerChildObjects(AMP::IO::RestartManager *manager) const override
const libmeshMeshElement & current() const
MeshIteratorBase & operator--() override
libMesh::Elem * elem() const
std::unique_ptr< MeshIteratorBase > clone() const override
Clone the iterator.
std::string className() const override
Return the class name.
libMesh::Mesh::element_iterator d_end2
libmeshElemIterator(const libmeshElemIterator &)
Copy constructor.
libmeshElemIterator()=delete
Empty MeshIterator constructor.
bool operator!=(const MeshIteratorBase &rhs) const override
Check if two iterators are not equal.
libMesh::Mesh::element_iterator d_pos2
virtual ~libmeshElemIterator()=default
Deconstructor.
MeshIterator begin() const override
Return an iterator to the beginning.
MeshIteratorBase & operator+=(int N) override
bool operator==(const MeshIteratorBase &rhs) const override
Check if two iterators are equal.
libmeshElemIterator(const AMP::Mesh::libmeshMesh *mesh, const libMesh::Mesh::element_iterator &begin, const libMesh::Mesh::element_iterator &end, const libMesh::Mesh::element_iterator &pos, int size, int pos2)
A derived class used to define a mesh element.
A concrete mesh class for libMesh.
Definition libmeshMesh.h:46
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