-// TODO: This could surely be made more systematic!
-for (deal_II_dimension : DIMENSIONS; lda : BOOL)
+for (deal_II_struct_dimension : DIMENSIONS; deal_II_dimension : DIMENSIONS;
+ deal_II_space_dimension : DIMENSIONS;
+ lda : BOOL)
{
- // explicit instantiations (for DoFHandler)
-
-
-#if deal_II_dimension == 2
- template class DoFAccessor<1, 2, 2, lda>;
-
- template class TriaRawIterator<DoFAccessor<1, 2, 2, lda>>;
- template class TriaIterator<DoFAccessor<1, 2, 2, lda>>;
- template class TriaActiveIterator<DoFAccessor<1, 2, 2, lda>>;
-#endif
-
-#if deal_II_dimension == 3
- template class DoFAccessor<1, 3, 3, lda>;
- template class DoFAccessor<2, 3, 3, lda>;
-
- template class TriaRawIterator<DoFAccessor<1, 3, 3, lda>>;
- template class TriaIterator<DoFAccessor<1, 3, 3, lda>>;
- template class TriaActiveIterator<DoFAccessor<1, 3, 3, lda>>;
- template class TriaRawIterator<DoFAccessor<2, 3, 3, lda>>;
- template class TriaIterator<DoFAccessor<2, 3, 3, lda>>;
- template class TriaActiveIterator<DoFAccessor<2, 3, 3, lda>>;
-#endif
-
- template class DoFAccessor<deal_II_dimension,
- deal_II_dimension,
+#if deal_II_struct_dimension <= deal_II_dimension && \
+ deal_II_dimension <= deal_II_space_dimension
+ template class DoFAccessor<deal_II_struct_dimension,
deal_II_dimension,
+ deal_II_space_dimension,
lda>;
- template class DoFCellAccessor<deal_II_dimension, deal_II_dimension, lda>;
-
- template class TriaRawIterator<
- DoFCellAccessor<deal_II_dimension, deal_II_dimension, lda>>;
- template class TriaIterator<
- DoFCellAccessor<deal_II_dimension, deal_II_dimension, lda>>;
- template class TriaActiveIterator<
- DoFCellAccessor<deal_II_dimension, deal_II_dimension, lda>>;
-
-
-
- // //
- // --------------------------------------------------------------------------
- // // explicit instantiations (for DoFHandler)
-
-#if deal_II_dimension == 1
- template class DoFAccessor<1, 1, 2, lda>;
-#endif
-
-#if deal_II_dimension == 2
- template class DoFAccessor<1, 2, 3, lda>;
- template class DoFAccessor<2, 2, 3, lda>;
-
- template class TriaRawIterator<DoFAccessor<1, 2, 3, lda>>;
- template class TriaIterator<DoFAccessor<1, 2, 3, lda>>;
- template class TriaActiveIterator<DoFAccessor<1, 2, 3, lda>>;
+ template class TriaRawIterator<DoFAccessor<deal_II_struct_dimension,
+ deal_II_dimension,
+ deal_II_space_dimension,
+ lda>>;
+ template class TriaIterator<DoFAccessor<deal_II_struct_dimension,
+ deal_II_dimension,
+ deal_II_space_dimension,
+ lda>>;
+ template class TriaActiveIterator<DoFAccessor<deal_II_struct_dimension,
+ deal_II_dimension,
+ deal_II_space_dimension,
+ lda>>;
#endif
+ }
-#if deal_II_dimension != 3
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : DIMENSIONS;
+ lda : BOOL)
+ {
+#if deal_II_dimension <= deal_II_space_dimension
template class DoFCellAccessor<deal_II_dimension,
- deal_II_dimension + 1,
+ deal_II_space_dimension,
lda>;
-
template class TriaRawIterator<
- DoFCellAccessor<deal_II_dimension, deal_II_dimension + 1, lda>>;
+ DoFCellAccessor<deal_II_dimension, deal_II_space_dimension, lda>>;
template class TriaIterator<
- DoFCellAccessor<deal_II_dimension, deal_II_dimension + 1, lda>>;
+ DoFCellAccessor<deal_II_dimension, deal_II_space_dimension, lda>>;
template class TriaActiveIterator<
- DoFCellAccessor<deal_II_dimension, deal_II_dimension + 1, lda>>;
-#endif
-
-
-#if deal_II_dimension == 3
- template class DoFCellAccessor<1, 3, lda>;
-
- template class TriaRawIterator<DoFCellAccessor<1, 3, lda>>;
- template class TriaIterator<DoFCellAccessor<1, 3, lda>>;
- template class TriaActiveIterator<DoFCellAccessor<1, 3, lda>>;
+ DoFCellAccessor<deal_II_dimension, deal_II_space_dimension, lda>>;
#endif
}
+
for (deal_II_struct_dimension : DIMENSIONS; deal_II_dimension : DIMENSIONS;
deal_II_space_dimension : DIMENSIONS)
{