16 #ifndef dealii__filtered_iterator_h 17 #define dealii__filtered_iterator_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 22 #include <deal.II/grid/tria_iterator_base.h> 26 DEAL_II_NAMESPACE_OPEN
60 template <
class Iterator>
79 template <
class Iterator>
98 template <
class Iterator>
124 template <
class Iterator>
158 template <
class Iterator>
187 template <
class Iterator>
206 template <
class Iterator>
228 const bool only_locally_owned =
false);
236 const bool only_locally_owned =
false);
243 template <
class Iterator>
274 const bool only_locally_owned =
false);
282 const bool only_locally_owned =
false);
289 template <
class Iterator>
490 template <
typename BaseIterator>
503 template <
typename Predicate>
523 template <
typename Predicate>
525 const BaseIterator &bi);
562 set_to_next_positive (
const BaseIterator &bi);
573 set_to_previous_positive (
const BaseIterator &bi);
589 bool operator == (
const BaseIterator &fi)
const;
605 bool operator != (
const BaseIterator &fi)
const;
621 bool operator < (
const BaseIterator &fi)
const;
652 <<
"The element " << arg1
653 <<
" with which you want to compare or which you want to" 654 <<
" assign from is invalid since it does not satisfy the predicate.");
680 virtual bool operator () (
const BaseIterator &bi)
const = 0;
698 template <
typename Predicate>
710 virtual bool operator () (
const BaseIterator &bi)
const;
744 template <
typename BaseIterator,
typename Predicate>
759 template <
typename BaseIterator>
760 template <
typename Predicate>
770 template <
typename BaseIterator>
771 template <
typename Predicate>
775 const BaseIterator &bi)
787 template <
typename BaseIterator>
796 BaseIterator (*(BaseIterator *)(&fi)),
802 template <
typename BaseIterator>
813 template <
typename BaseIterator>
820 ExcInvalidElement(fi));
821 BaseIterator::operator = (fi);
827 template <
typename BaseIterator>
834 ExcInvalidElement(bi));
835 BaseIterator::operator = (bi);
841 template <
typename BaseIterator>
847 BaseIterator::operator = (bi);
850 BaseIterator::operator++ ();
857 template <
typename BaseIterator>
863 BaseIterator::operator = (bi);
866 BaseIterator::operator-- ();
873 template <
typename BaseIterator>
879 return (static_cast<const BaseIterator &>(*
this)
881 static_cast<const BaseIterator &>(fi));
886 template <
typename BaseIterator>
892 return (static_cast<const BaseIterator &>(*
this)
894 static_cast<const BaseIterator &>(fi));
899 template <
typename BaseIterator>
905 return (static_cast<const BaseIterator &>(*
this)
907 static_cast<const BaseIterator &>(fi));
913 template <
typename BaseIterator>
919 return (static_cast<const BaseIterator &>(*
this) == bi);
924 template <
typename BaseIterator>
930 return (static_cast<const BaseIterator &>(*
this) != bi);
935 template <
typename BaseIterator>
941 return (static_cast<const BaseIterator &>(*
this) < bi);
945 template <
typename BaseIterator>
953 BaseIterator::operator++ ();
961 template <
typename BaseIterator>
971 BaseIterator::operator++ ();
980 template <
typename BaseIterator>
988 BaseIterator::operator-- ();
996 template <
typename BaseIterator>
1006 BaseIterator::operator-- ();
1014 template <
typename BaseIterator>
1015 template <
typename Predicate>
1020 predicate (predicate)
1025 template <
typename BaseIterator>
1026 template <
typename Predicate>
1036 template <
typename BaseIterator>
1037 template <
typename Predicate>
1052 template <
class Iterator>
1055 Active::operator () (
const Iterator &i)
const 1057 return (i->active());
1063 template <
class Iterator>
1066 UserFlagSet::operator () (
const Iterator &i)
const 1068 return (i->user_flag_set());
1074 template <
class Iterator>
1077 UserFlagNotSet::operator () (
const Iterator &i)
const 1079 return (! i->user_flag_set());
1085 LevelEqualTo::LevelEqualTo (
const unsigned int level)
1092 template <
class Iterator>
1097 return (static_cast<unsigned int>(i->level()) ==
level);
1106 subdomain_id (subdomain_id)
1111 template <
class Iterator>
1123 template <
class Iterator>
1128 return (i->is_locally_owned());
1134 template <
class Iterator>
1139 return (i->is_locally_owned_on_level());
1147 const bool only_locally_owned)
1154 material_ids (&material_id, &material_id+1),
1155 only_locally_owned (only_locally_owned)
1164 material_ids (material_ids),
1165 only_locally_owned (only_locally_owned)
1170 template <
class Iterator>
1192 active_fe_indices (&active_fe_index, &active_fe_index+1),
1193 only_locally_owned (only_locally_owned)
1202 active_fe_indices (active_fe_indices),
1203 only_locally_owned (only_locally_owned)
1208 template <
class Iterator>
1221 DEAL_II_NAMESPACE_CLOSE
bool operator()(const Iterator &i) const
FilteredIterator & operator++()
const types::subdomain_id subdomain_id
FilteredIterator(Predicate p)
bool operator()(const Iterator &i) const
bool operator==(const FilteredIterator &fi) const
unsigned char material_id
bool operator()(const Iterator &i) const
const bool only_locally_owned
FilteredIterator & operator--()
const std::set< types::material_id > material_ids
FilteredIterator & operator=(const FilteredIterator &fi)
#define DeclException1(Exception1, type1, outsequence)
#define Assert(cond, exc)
bool operator()(const Iterator &i) const
bool operator!=(const FilteredIterator &fi) const
unsigned int subdomain_id
MaterialIdEqualTo(const types::material_id material_id, const bool only_locally_owned=false)
bool operator()(const Iterator &i) const
const Predicate predicate
const std::set< unsigned int > active_fe_indices
BaseIterator::AccessorType AccessorType
FilteredIterator & set_to_next_positive(const BaseIterator &bi)
SubdomainEqualTo(const types::subdomain_id subdomain_id)
const bool only_locally_owned
bool operator()(const Iterator &i) const
PredicateTemplate(const Predicate &predicate)
ActiveFEIndexEqualTo(const unsigned int active_fe_index, const bool only_locally_owned=false)
Iterator points to a valid object.
const PredicateBase * predicate
FilteredIterator & set_to_previous_positive(const BaseIterator &bi)
bool operator<(const FilteredIterator &fi) const
FilteredIterator< BaseIterator > make_filtered_iterator(const BaseIterator &i, const Predicate &p)
bool operator()(const Iterator &i) const