Reference documentation for deal.II version 9.4.1
|
#include <deal.II/grid/tria_iterator.h>
Public Types | |
using | AccessorType = Accessor |
Public Member Functions | |
TriaIterator () | |
TriaIterator (const TriaIterator< Accessor > &) | |
TriaIterator (const TriaRawIterator< Accessor > &) | |
TriaIterator (const Triangulation< Accessor::dimension, Accessor::space_dimension > *parent, const int level, const int index, const typename Accessor::AccessorData *local_data=nullptr) | |
template<typename OtherAccessor > | |
TriaIterator (const OtherAccessor &a) | |
template<typename OtherAccessor > | |
TriaIterator (const TriaIterator< OtherAccessor > &i) | |
TriaIterator (const TriaAccessorBase< Accessor::structure_dimension, Accessor::dimension, Accessor::space_dimension > &tria_accessor, const typename Accessor::AccessorData *local_data) | |
template<typename OtherAccessor > | |
TriaIterator (const TriaRawIterator< OtherAccessor > &i) | |
template<typename OtherAccessor > | |
TriaIterator (const TriaActiveIterator< OtherAccessor > &i) | |
TriaIterator< Accessor > & | operator= (const TriaIterator< Accessor > &) |
TriaIterator< Accessor > & | operator= (const TriaRawIterator< Accessor > &) |
template<class OtherAccessor > | |
TriaIterator< Accessor > & | operator= (const TriaIterator< OtherAccessor > &) |
template<class OtherAccessor > | |
TriaIterator< Accessor > & | operator= (const TriaRawIterator< OtherAccessor > &) |
Dereferencing | |
const Accessor & | operator* () const |
Accessor & | operator* () |
const Accessor * | operator-> () const |
Accessor * | operator-> () |
const Accessor & | access_any () const |
template<typename OtherAccessor = Accessor> | |
std::enable_if< std::is_convertible< OtherAccessor, Accessor >::value, bool >::type | operator== (const TriaRawIterator< OtherAccessor > &) const |
bool | operator!= (const TriaRawIterator &) const |
bool | operator< (const TriaRawIterator &) const |
bool | operator> (const TriaRawIterator &) const |
Advancement of iterators | |
IteratorState::IteratorStates | state () const |
template<class StreamType > | |
void | print (StreamType &out) const |
std::size_t | memory_consumption () const |
Advancement of iterators | |
using | iterator_category = typename TriaRawIterator< Accessor >::iterator_category |
using | value_type = typename TriaRawIterator< Accessor >::value_type |
using | pointer = typename TriaRawIterator< Accessor >::pointer |
using | reference = typename TriaRawIterator< Accessor >::reference |
using | difference_type = typename TriaRawIterator< Accessor >::difference_type |
TriaIterator< Accessor > & | operator++ () |
TriaIterator< Accessor > | operator++ (int) |
TriaIterator< Accessor > & | operator-- () |
TriaIterator< Accessor > | operator-- (int) |
static ::ExceptionBase & | ExcAssignmentOfUnusedObject () |
Exceptions | |
static ::ExceptionBase & | ExcDereferenceInvalidCell (Accessor arg1) |
static ::ExceptionBase & | ExcDereferenceInvalidObject (Accessor arg1) |
static ::ExceptionBase & | ExcAdvanceInvalidObject () |
static ::ExceptionBase & | ExcInvalidComparison () |
Accessor | accessor |
This specialization of TriaRawIterator provides access only to the used lines, quads, cells, etc.
Definition at line 581 of file tria_iterator.h.
using TriaIterator< Accessor >::iterator_category = typename TriaRawIterator<Accessor>::iterator_category |
Declare some aliases which are standard for iterators and are used by algorithms to enquire about the specifics of the iterators they work on.
Definition at line 738 of file tria_iterator.h.
using TriaIterator< Accessor >::value_type = typename TriaRawIterator<Accessor>::value_type |
Definition at line 740 of file tria_iterator.h.
using TriaIterator< Accessor >::pointer = typename TriaRawIterator<Accessor>::pointer |
Definition at line 741 of file tria_iterator.h.
using TriaIterator< Accessor >::reference = typename TriaRawIterator<Accessor>::reference |
Definition at line 742 of file tria_iterator.h.
using TriaIterator< Accessor >::difference_type = typename TriaRawIterator<Accessor>::difference_type |
Definition at line 743 of file tria_iterator.h.
|
inherited |
Declare the type of the Accessor for use in the outside world. This way other functions can use the Accessor's type without knowledge of how the exact implementation actually is.
Definition at line 237 of file tria_iterator.h.
TriaIterator< Accessor >::TriaIterator | ( | ) |
Default constructor. This constructor creates an iterator pointing to an invalid object. The iterator is consequently not usable.
TriaIterator< Accessor >::TriaIterator | ( | const TriaIterator< Accessor > & | ) |
Copy constructor.
TriaIterator< Accessor >::TriaIterator | ( | const TriaRawIterator< Accessor > & | ) |
Conversion constructor from iterators potentially pointing to non-active objects (i.e., for objects for which we can't tell that the object is used just by looking at its type).
TriaIterator< Accessor >::TriaIterator | ( | const Triangulation< Accessor::dimension, Accessor::space_dimension > * | parent, |
const int | level, | ||
const int | index, | ||
const typename Accessor::AccessorData * | local_data = nullptr |
||
) |
Constructor, initialized with the triangulation, the level and index of the object pointed to. The last parameter is of a type declared by the accessor class.
|
explicit |
Construct from an accessor of type OtherAccessor that is convertible to the type Accessor.
Definition at line 1183 of file tria_iterator.h.
|
inline |
This is a conversion operator (constructor) which takes another iterator type and copies the data; this conversion works, if there is a conversion path from the OtherAccessor
class to the Accessor
class of this object. One such path would be derived class to base class, which for example may be used to get a Triangulation::cell_iterator from a DoFHandler::cell_iterator, since the DoFAccessor class is derived from the TriaAccessorBase class.
Definition at line 1147 of file tria_iterator.h.
TriaIterator< Accessor >::TriaIterator | ( | const TriaAccessorBase< Accessor::structure_dimension, Accessor::dimension, Accessor::space_dimension > & | tria_accessor, |
const typename Accessor::AccessorData * | local_data | ||
) |
Another conversion operator, where we use the pointers to the Triangulation from a TriaAccessorBase object, while the additional data is used according to the actual type of Accessor.
|
inline |
Similar conversion operator to the above one, but does a check whether the iterator points to a used element, which is necessary for raw iterators.
Definition at line 1165 of file tria_iterator.h.
|
inline |
Similar conversion operator to the above one, but for conversion from active iterators.
Definition at line 1156 of file tria_iterator.h.
TriaIterator< Accessor > & TriaIterator< Accessor >::operator= | ( | const TriaIterator< Accessor > & | ) |
Assignment operator.
TriaIterator< Accessor > & TriaIterator< Accessor >::operator= | ( | const TriaRawIterator< Accessor > & | ) |
Cross assignment operator. This assignment is only valid if the given iterator points to a used element.
TriaIterator< Accessor > & TriaIterator< Accessor >::operator= | ( | const TriaIterator< OtherAccessor > & | ) |
Assignment operator. Requires, that Accessor can be copied from OtherAccessor.
TriaIterator< Accessor > & TriaIterator< Accessor >::operator= | ( | const TriaRawIterator< OtherAccessor > & | ) |
Cross assignment operator. This assignment is only valid if the given iterator points to a used element. Requires, that Accessor can be copied from OtherAccessor.
TriaIterator< Accessor > & TriaIterator< Accessor >::operator++ | ( | ) |
Prefix ++
operator: ++i
. This operator advances the iterator to the next used element and returns a reference to *this
.
TriaIterator< Accessor > TriaIterator< Accessor >::operator++ | ( | int | ) |
Postfix ++
operator: i++
. This operator advances the iterator to the next used element, but returns an iterator to the element previously pointed to. Since this involves a temporary and a copy operation and since an active_iterator
is quite a large object for a pointer, use the prefix operator ++i
whenever possible, especially in the head of for loops (for (; i!=end; ++i)
) since there you normally never need the returned value.
TriaIterator< Accessor > & TriaIterator< Accessor >::operator-- | ( | ) |
Prefix --
operator: --i
. This operator advances the iterator to the previous used element and returns a reference to *this
.
TriaIterator< Accessor > TriaIterator< Accessor >::operator-- | ( | int | ) |
Postfix --
operator: i--
.
|
inlineinherited |
Dereferencing operator, returns a reference to an accessor. Usage is thus like (*i).index ();
This function has to be specialized explicitly for the different Pointers
, to allow an iterator<1,TriangulationLevel<1>::LinesData>
to point to tria->lines.cells[index]
while for one dimension higher it has to point to tria->quads.cells[index]
.
You must not dereference invalid or past the end iterators.
Definition at line 999 of file tria_iterator.h.
|
inlineinherited |
Dereferencing operator, non-const
version.
Definition at line 1015 of file tria_iterator.h.
|
inlineinherited |
Dereferencing operator, returns a reference of the cell pointed to. Usage is thus like i->index ();
There is a const
and a non-const
version.
Definition at line 1040 of file tria_iterator.h.
|
inlineinherited |
Dereferencing operator, non-const
version.
Definition at line 1049 of file tria_iterator.h.
|
inlineinherited |
In order be able to assign end-iterators for different accessors to each other, we need an access function which returns the accessor regardless of its state.
Definition at line 1031 of file tria_iterator.h.
|
inherited |
Compare for equality.
|
inherited |
Compare for inequality.
|
inlineinherited |
Ordering relation for iterators.
This relation attempts a total ordering of cells.
The relation is defined as follows:
For objects of Accessor::structure_dimension < Accessor::dimension
, we simply compare the index of such an object. The ordering is lexicographic according to the following hierarchy (in the sense, that the next test is only applied if the previous was inconclusive):
The past-the-end iterator is always ordered last. Two past-the-end iterators rank the same, thus false is returned in that case.
Definition at line 1066 of file tria_iterator.h.
|
inlineinherited |
Another comparison operator, implementing with the same ordering as operator<.
Definition at line 1091 of file tria_iterator.h.
|
inlineinherited |
Return the state of the iterator.
Definition at line 1058 of file tria_iterator.h.
|
inlineinherited |
Print the iterator to a stream out
. The format is level.index
.
Definition at line 1126 of file tria_iterator.h.
|
inlineinherited |
Determine an estimate for the memory consumption (in bytes) of this object.
Definition at line 1138 of file tria_iterator.h.