16 #ifndef dealii_tria_iterator_h 17 # define dealii_tria_iterator_h 23 # include <deal.II/base/config.h> 25 # include <deal.II/base/exceptions.h> 26 # include <deal.II/base/point.h> 28 # include <deal.II/grid/tria_iterator_base.h> 33 DEAL_II_NAMESPACE_OPEN
35 template <
int dim,
int spacedim>
37 template <
int,
int,
int>
228 template <
typename Accessor>
267 template <
typename OtherAccessor>
279 const typename AccessorType::AccessorData *local_data =
nullptr);
290 template <
typename OtherAccessor>
301 Accessor::space_dimension> &tria_accessor,
302 const typename Accessor::AccessorData * local_data);
308 template <
typename OtherAccessor>
315 template <
typename OtherAccessor>
475 template <
class StreamType>
477 print(StreamType &out)
const;
493 using value_type = Accessor;
494 using difference_type = int;
495 using pointer = Accessor *;
496 using reference = Accessor &;
505 <<
"You tried to dereference a cell iterator for which this " 506 <<
"is not possible. More information on this iterator: " 507 <<
"level=" << arg1.level() <<
", index=" << arg1.index()
520 <<
"You tried to dereference an iterator for which this " 521 <<
"is not possible. More information on this iterator: " 522 <<
"index=" << arg1.index() <<
", state=" 555 template <
typename SomeAccessor>
557 template <
typename SomeAccessor>
559 template <
typename SomeAccessor>
571 template <
typename Accessor>
606 const typename Accessor::AccessorData *local_data =
nullptr);
612 template <
typename OtherAccessor>
624 template <
typename OtherAccessor>
634 Accessor::space_dimension> &tria_accessor,
635 const typename Accessor::AccessorData * local_data);
642 template <
typename OtherAccessor>
649 template <
typename OtherAccessor>
669 template <
class OtherAccessor>
678 template <
class OtherAccessor>
725 using value_type =
typename TriaRawIterator<Accessor>::value_type;
726 using pointer =
typename TriaRawIterator<Accessor>::pointer;
727 using reference =
typename TriaRawIterator<Accessor>::reference;
728 using difference_type =
typename TriaRawIterator<Accessor>::difference_type;
746 template <
typename Accessor>
790 const typename Accessor::AccessorData *local_data = 0);
801 template <
typename OtherAccessor>
812 Accessor::space_dimension> &tria_accessor,
813 const typename Accessor::AccessorData * local_data);
822 template <
typename OtherAccessor>
849 template <
class OtherAccessor>
858 template <
class OtherAccessor>
867 template <
class OtherAccessor>
913 using value_type =
typename TriaIterator<Accessor>::value_type;
914 using pointer =
typename TriaIterator<Accessor>::pointer;
915 using reference =
typename TriaIterator<Accessor>::reference;
916 using difference_type =
typename TriaIterator<Accessor>::difference_type;
928 template <
typename Accessor>
935 template <
typename Accessor>
936 template <
typename OtherAccessor>
943 template <
typename Accessor>
944 template <
typename OtherAccessor>
952 template <
typename Accessor>
953 template <
typename OtherAccessor>
961 template <
typename Accessor>
962 template <
typename OtherAccessor>
970 template <
typename Accessor>
973 Assert(Accessor::structure_dimension != Accessor::dimension ||
976 Assert(Accessor::structure_dimension == Accessor::dimension ||
985 template <
typename Accessor>
988 Assert(Accessor::structure_dimension != Accessor::dimension ||
991 Assert(Accessor::structure_dimension == Accessor::dimension ||
1000 template <
typename Accessor>
1001 inline const Accessor &
1009 template <
typename Accessor>
1017 template <
typename Accessor>
1025 template <
typename Accessor>
1034 template <
typename Accessor>
1053 return ((**
this) < (*other));
1058 template <
typename Accessor>
1063 return (other < *
this);
1068 template <
typename Accessor>
1080 template <
typename Accessor>
1092 template <
typename Accessor>
1093 template <
class StreamType>
1097 if (Accessor::structure_dimension == Accessor::dimension)
1105 template <
typename Accessor>
1114 template <
typename Accessor>
1115 template <
typename OtherAccessor>
1123 template <
typename Accessor>
1124 template <
typename OtherAccessor>
1132 template <
typename Accessor>
1133 template <
typename OtherAccessor>
1150 template <
typename Accessor>
1151 template <
typename OtherAccessor>
1167 template <
typename Accessor>
1168 template <
typename OtherAccessor>
1176 template <
typename Accessor>
1177 template <
typename OtherAccessor>
1204 template <
typename Accessor>
1205 inline std::ostream &
1206 operator<<(std::ostream &out, const TriaRawIterator<Accessor> &i)
1221 template <
typename Accessor>
1222 inline std::ostream &
1223 operator<<(std::ostream &out, const TriaIterator<Accessor> &i)
1238 template <
typename Accessor>
1239 inline std::ostream &
1240 operator<<(std::ostream &out, const TriaActiveIterator<Accessor> &i)
1247 DEAL_II_NAMESPACE_CLOSE
1252 # include "tria_iterator.templates.h"
Iterator is invalid, probably due to an error.
static::ExceptionBase & ExcInvalidComparison()
static::ExceptionBase & ExcAdvanceInvalidObject()
static::ExceptionBase & ExcAssignmentOfInactiveObject()
void print(StreamType &out) const
const Accessor * operator->() const
const Accessor & operator*() const
std::size_t memory_consumption() const
typename TriaRawIterator< Accessor >::iterator_category iterator_category
#define DeclException1(Exception1, type1, outsequence)
#define Assert(cond, exc)
TriaRawIterator & operator++()
#define DeclException0(Exception0)
static::ExceptionBase & ExcDereferenceInvalidObject(Accessor arg1)
IteratorState::IteratorStates state() const
TriaRawIterator & operator--()
static::ExceptionBase & ExcAssignmentOfUnusedObject()
static::ExceptionBase & ExcDereferenceInvalidCell(Accessor arg1)
bool operator!=(const TriaRawIterator &) const
TriaRawIterator & operator=(const TriaRawIterator &)
Iterator reached end of container.
Iterator points to a valid object.
bool operator==(const TriaRawIterator &) const
const Accessor & access_any() const
std::bidirectional_iterator_tag iterator_category
bool operator>(const TriaRawIterator &) const
bool operator<(const TriaRawIterator &) const