16 #ifndef dealii_q_collection_h
17 #define dealii_q_collection_h
19 #include <deal.II/base/config.h>
21 #include <deal.II/base/memory_consumption.h>
22 #include <deal.II/base/quadrature.h>
23 #include <deal.II/base/subscriptor.h>
25 #include <deal.II/fe/fe.h>
30 DEAL_II_NAMESPACE_OPEN
71 template <
class... QTypes>
72 explicit QCollection(
const QTypes &... quadrature_objects);
149 template <
class... QTypes>
153 "Not all of the input arguments of this function "
154 "are derived from Quadrature<dim>!");
159 const auto q_pointers = {&quadrature_objects...};
160 for (
const auto p : q_pointers)
170 return quadratures.size();
179 Assert(quadratures.size() > 0,
180 ExcMessage(
"You can't call this function for an empty collection"));
183 for (
unsigned int i = 0; i < quadratures.size(); ++i)
184 if (quadratures[i]->size() > m)
185 m = quadratures[i]->size();
196 Assert(index < quadratures.size(),
198 return *quadratures[index];
206 quadratures.push_back(std::make_shared<
const Quadrature<dim>>(quadrature));
223 quadratures.push_back(
230 DEAL_II_NAMESPACE_CLOSE