1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2010 - 2019 by the deal.II authors
4//
5// This file is part of the deal.II library.
6//
7// The deal.II library is free software; you can use it, redistribute
8// it, and/or modify it under the terms of the GNU Lesser General
9// Public License as published by the Free Software Foundation; either
10// version 2.1 of the License, or (at your option) any later version.
11// The full text of the license can be found in the file LICENSE.md at
12// the top level directory of deal.II.
13//
14// ---------------------------------------------------------------------
15
16
17for (deal_II_dimension : DIMENSIONS)
18  {
19    namespace hp
20    \{
21      template class FEValuesBase<deal_II_dimension,
22                                  deal_II_dimension,
23                                  dealii::FEValues<deal_II_dimension>>;
24      template class FEValuesBase<deal_II_dimension,
25                                  deal_II_dimension - 1,
26                                  dealii::FEFaceValues<deal_II_dimension>>;
27      template class FEValuesBase<deal_II_dimension,
28                                  deal_II_dimension - 1,
29                                  dealii::FESubfaceValues<deal_II_dimension>>;
30    \}
31
32    namespace hp
33    \{
34      template class FEValues<deal_II_dimension>;
35      template class FEFaceValues<deal_II_dimension, deal_II_dimension>;
36      template class FESubfaceValues<deal_II_dimension, deal_II_dimension>;
37    \}
38
39
40
41#if deal_II_dimension != 3
42
43    namespace hp
44    \{
45      template class FEValuesBase<
46        deal_II_dimension,
47        deal_II_dimension,
48        dealii::FEValues<deal_II_dimension, deal_II_dimension + 1>>;
49      template class FEValuesBase<
50        deal_II_dimension,
51        deal_II_dimension - 1,
52        dealii::FEFaceValues<deal_II_dimension, deal_II_dimension + 1>>;
53      template class FEValuesBase<
54        deal_II_dimension,
55        deal_II_dimension - 1,
56        dealii::FESubfaceValues<deal_II_dimension, deal_II_dimension + 1>>;
57    \}
58
59    namespace hp
60    \{
61      template class FEValues<deal_II_dimension, deal_II_dimension + 1>;
62      template class FEFaceValues<deal_II_dimension, deal_II_dimension + 1>;
63      template class FESubfaceValues<deal_II_dimension, deal_II_dimension + 1>;
64    \}
65#endif
66
67#if deal_II_dimension == 3
68
69    namespace hp
70    \{
71      template class FEValuesBase<1, 1, dealii::FEValues<1, 3>>;
72      template class FEValuesBase<1, 1 - 1, dealii::FEFaceValues<1, 3>>;
73      template class FEValuesBase<1, 1 - 1, dealii::FESubfaceValues<1, 3>>;
74    \}
75
76    namespace hp
77    \{
78      template class FEValues<1, 3>;
79      template class FEFaceValues<1, 3>;
80      template class FESubfaceValues<1, 3>;
81    \}
82#endif
83  }
84
85for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS;
86     lda : BOOL)
87  {
88    namespace hp
89    \{
90#if deal_II_dimension <= deal_II_space_dimension
91
92      template void
93      FEValues<deal_II_dimension, deal_II_space_dimension>::reinit(
94        const TriaIterator<
95          DoFCellAccessor<deal_II_dimension, deal_II_space_dimension, lda>> &,
96        unsigned int,
97        unsigned int,
98        unsigned int);
99      template void
100      FEFaceValues<deal_II_dimension, deal_II_space_dimension>::reinit(
101        const TriaIterator<
102          DoFCellAccessor<deal_II_dimension, deal_II_space_dimension, lda>> &,
103        unsigned int,
104        unsigned int,
105        unsigned int,
106        unsigned int);
107      template void
108      FEFaceValues<deal_II_dimension, deal_II_space_dimension>::reinit(
109        const TriaIterator<
110          DoFCellAccessor<deal_II_dimension, deal_II_space_dimension, lda>> &,
111        const Triangulation<deal_II_dimension,
112                            deal_II_space_dimension>::face_iterator &,
113        unsigned int,
114        unsigned int,
115        unsigned int);
116      template void
117      FESubfaceValues<deal_II_dimension, deal_II_space_dimension>::reinit(
118        const TriaIterator<
119          DoFCellAccessor<deal_II_dimension, deal_II_space_dimension, lda>> &,
120        unsigned int,
121        unsigned int,
122        unsigned int,
123        unsigned int,
124        unsigned int);
125#endif
126    \}
127  }
128