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
std::size_t memory_consumption() const
std::vector< std::shared_ptr< const Quadrature< dim > > > quadratures
static ::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
const Quadrature< dim > & operator[](const unsigned int index) const
static ::ExceptionBase & ExcMessage(std::string arg1)
unsigned int max_n_quadrature_points() const
#define Assert(cond, exc)
#define DeclException0(Exception0)
unsigned int size() const
static ::ExceptionBase & ExcNoQuadrature()
void push_back(const Quadrature< dim > &new_quadrature)
std::enable_if< std::is_fundamental< T >::value, std::size_t >::type memory_consumption(const T &t)