17 #include <deal.II/base/std_cxx14/memory.h>
19 #include <deal.II/fe/fe_dgp.h>
20 #include <deal.II/fe/fe_nothing.h>
21 #include <deal.II/fe/fe_tools.h>
26 DEAL_II_NAMESPACE_OPEN
28 template <
int dim,
int spacedim>
32 Polynomials::Legendre::generate_complete_basis(degree)),
42 std::vector<bool>(1, true)))
57 template <
int dim,
int spacedim>
65 std::ostringstream namebuf;
67 << this->degree <<
")";
74 template <
int dim,
int spacedim>
75 std::unique_ptr<FiniteElement<dim, spacedim>>
78 return std_cxx14::make_unique<FE_DGP<dim, spacedim>>(*this);
88 template <
int dim,
int spacedim>
89 std::vector<unsigned int>
92 std::vector<unsigned int> dpo(dim + 1, 0U);
94 for (
unsigned int i = 1; i < dim; ++i)
96 dpo[dim] *= deg + 1 + i;
104 template <
int dim,
int spacedim>
114 (void)interpolation_matrix;
118 (dynamic_cast<const FEDGP *>(&x_source_fe) !=
nullptr),
119 typename FE::ExcInterpolationNotImplemented());
121 Assert(interpolation_matrix.
m() == 0,
123 Assert(interpolation_matrix.
n() == 0,
129 template <
int dim,
int spacedim>
140 (void)interpolation_matrix;
144 (dynamic_cast<const FEDGP *>(&x_source_fe) !=
nullptr),
145 typename FE::ExcInterpolationNotImplemented());
147 Assert(interpolation_matrix.
m() == 0,
149 Assert(interpolation_matrix.
n() == 0,
155 template <
int dim,
int spacedim>
164 template <
int dim,
int spacedim>
165 std::vector<std::pair<unsigned int, unsigned int>>
171 return std::vector<std::pair<unsigned int, unsigned int>>();
175 return std::vector<std::pair<unsigned int, unsigned int>>();
181 template <
int dim,
int spacedim>
182 std::vector<std::pair<unsigned int, unsigned int>>
188 return std::vector<std::pair<unsigned int, unsigned int>>();
192 return std::vector<std::pair<unsigned int, unsigned int>>();
198 template <
int dim,
int spacedim>
199 std::vector<std::pair<unsigned int, unsigned int>>
205 return std::vector<std::pair<unsigned int, unsigned int>>();
209 return std::vector<std::pair<unsigned int, unsigned int>>();
215 template <
int dim,
int spacedim>
219 const unsigned int codim)
const
236 if (this->degree < fe_dgp_other->degree)
238 else if (this->degree == fe_dgp_other->degree)
246 if (fe_nothing->is_dominating())
261 template <
int dim,
int spacedim>
264 const unsigned int)
const
272 template <
int dim,
int spacedim>
273 std::pair<Table<2, bool>, std::vector<unsigned int>>
277 constant_modes(0, 0) =
true;
278 return std::pair<Table<2, bool>, std::vector<unsigned int>>(
279 constant_modes, std::vector<unsigned int>(1, 0));
284 template <
int dim,
int spacedim>
295 #include "fe_dgp.inst"
298 DEAL_II_NAMESPACE_CLOSE