17 #ifndef __deal2__tria_iterator_h
18 #define __deal2__tria_iterator_h
24 #include <deal.II/base/config.h>
27 #include <deal.II/base/point.h>
28 #include <deal.II/grid/tria_iterator_base.h>
232 template <
typename Accessor>
233 class TriaRawIterator :
public std::iterator<std::bidirectional_iterator_tag,Accessor>
280 template <
typename OtherAccessor>
294 const typename AccessorType::AccessorData *local_data = 0);
311 template <
typename OtherAccessor>
324 const typename Accessor::AccessorData *local_data);
333 template <
typename OtherAccessor>
343 template <
typename OtherAccessor>
560 template <
class STREAM>
561 void print (STREAM &out)
const;
580 <<
"You tried to dereference a cell iterator for which this "
581 <<
"is not possible. More information on this iterator: "
582 <<
"level=" << arg1.level()
583 <<
", index=" << arg1.index()
587 "past_the_end" :
"invalid")));
597 <<
"You tried to dereference an iterator for which this "
598 <<
"is not possible. More information on this iterator: "
599 <<
"index=" << arg1.index()
603 "past_the_end" :
"invalid")));
636 template <
typename SomeAccessor>
friend class TriaIterator;
648 template <
typename Accessor>
691 const typename Accessor::AccessorData *local_data = 0);
697 template <
typename OtherAccessor>
715 template <
typename OtherAccessor>
728 const typename Accessor::AccessorData *local_data);
736 template <
typename OtherAccessor>
745 template <
typename OtherAccessor>
769 template <
class OtherAccessor>
781 template <
class OtherAccessor>
844 template <
typename Accessor>
899 const typename Accessor::AccessorData *local_data = 0);
916 template <
typename OtherAccessor>
929 const typename Accessor::AccessorData *local_data);
941 template <
typename OtherAccessor>
973 template <
class OtherAccessor>
985 template <
class OtherAccessor>
997 template <
class OtherAccessor>
1054 template <
typename Accessor>
1064 template <
typename Accessor>
1065 template <
typename OtherAccessor>
1075 template <
typename Accessor>
1076 template <
typename OtherAccessor>
1081 accessor (i.accessor)
1086 template <
typename Accessor>
1087 template <
typename OtherAccessor>
1092 accessor (i.accessor)
1097 template <
typename Accessor>
1098 template <
typename OtherAccessor>
1103 accessor (i.accessor)
1108 template <
typename Accessor>
1113 Assert (Accessor::structure_dimension!=Accessor::dimension ||
1115 ExcDereferenceInvalidCell(accessor));
1116 Assert (Accessor::structure_dimension==Accessor::dimension ||
1118 ExcDereferenceInvalidObject(accessor));
1125 template <
typename Accessor>
1130 Assert (Accessor::structure_dimension!=Accessor::dimension ||
1132 ExcDereferenceInvalidCell(accessor));
1133 Assert (Accessor::structure_dimension==Accessor::dimension ||
1135 ExcDereferenceInvalidObject(accessor));
1142 template <
typename Accessor>
1152 template <
typename Accessor>
1162 template <
typename Accessor>
1172 template <
typename Accessor>
1177 return accessor.state ();
1182 template <
typename Accessor>
1190 Assert (&accessor.get_triangulation() == &other.
accessor.get_triangulation(),
1191 ExcInvalidComparison());
1199 return ((**
this) < (*other));
1203 template <
typename Accessor>
1216 template <
typename Accessor>
1229 template <
typename Accessor>
1230 template <
class STREAM>
1235 if (Accessor::structure_dimension==Accessor::dimension)
1236 out << accessor.level() <<
"." << accessor.index();
1238 out << accessor.index();
1243 template <
typename Accessor>
1253 template <
typename Accessor>
1254 template <
typename OtherAccessor>
1263 template <
typename Accessor>
1264 template <
typename OtherAccessor>
1273 template <
typename Accessor>
1274 template <
typename OtherAccessor>
1289 ExcAssignmentOfUnusedObject());
1293 template <
typename Accessor>
1294 template <
typename OtherAccessor>
1308 ExcAssignmentOfUnusedObject());
1312 template <
typename Accessor>
1313 template <
typename OtherAccessor>
1322 template <
typename Accessor>
1323 template <
typename OtherAccessor>
1338 ExcAssignmentOfInactiveObject());
1352 template <
typename Accessor>
1371 template <
typename Accessor>
1390 template <
typename Accessor>
1400 DEAL_II_NAMESPACE_CLOSE
1405 # include "tria_iterator.templates.h"
void print(STREAM &out) const
bool operator==(const TriaRawIterator &) const
Iterator points to a valid object.
TriaIterator< Accessor > & operator++()
VectorizedArray< Number > operator*(const VectorizedArray< Number > &u, const VectorizedArray< Number > &v)
TriaRawIterator & operator--()
DeclException0(ExcAdvanceInvalidObject)
TriaActiveIterator< Accessor > & operator--()
TriaActiveIterator< Accessor > & operator++()
const Accessor & operator*() const
DeclException0(ExcAssignmentOfInactiveObject)
Iterator reached end of container.
Iterator is invalid, probably due to an error.
#define Assert(cond, exc)
TriaActiveIterator< Accessor > & operator=(const TriaActiveIterator< Accessor > &)
std::size_t memory_consumption() const
DeclException1(ExcDereferenceInvalidCell, Accessor,<< "You tried to dereference a cell iterator for which this "<< "is not possible. More information on this iterator: "<< "level="<< arg1.level()<< ", index="<< arg1.index()<< ", state="<< (arg1.state()==IteratorState::valid?"valid":(arg1.state()==IteratorState::past_the_end?"past_the_end":"invalid")))
const Accessor & access_any() const
OS & operator<<(OS &o, const Event &e)
bool operator!=(const TriaRawIterator &) const
IteratorState::IteratorStates state() const
TriaIterator< Accessor > & operator=(const TriaIterator< Accessor > &)
const Accessor * operator->() const
bool operator<(const TriaRawIterator &) const
TriaRawIterator & operator=(const TriaRawIterator &)
DeclException0(ExcAssignmentOfUnusedObject)
TriaIterator< Accessor > & operator--()
TriaRawIterator & operator++()