00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef __deal2__quadrature_selector_h
00014 #define __deal2__quadrature_selector_h
00015
00016
00017 #include <deal.II/base/quadrature.h>
00018 #include <deal.II/base/exceptions.h>
00019
00020 #include <string>
00021
00022 DEAL_II_NAMESPACE_OPEN
00023
00037 template<int dim>
00038 class QuadratureSelector : public Quadrature<dim>
00039 {
00040 public:
00049 QuadratureSelector (const std::string &s,
00050 const unsigned int order=0);
00051
00061 static std::string get_quadrature_names();
00062
00070 DeclException1 (ExcInvalidQGaussOrder,
00071 int,
00072 << "You tried to generate QGauss with an invalid order of "
00073 << arg1 << " (must be >= 2)");
00077 DeclException2 (ExcInvalidOrder,
00078 std::string,
00079 unsigned int,
00080 << "You tried to generate a " << arg1
00081 << " object; no order is needed (" << arg2
00082 << " was given as parameter)");
00086 DeclException1 (ExcInvalidQuadrature,
00087 std::string,
00088 << arg1
00089 << " is not a valid quadrature name for a quadrature rule");
00091 private:
00100 static
00101 Quadrature<dim>
00102 create_quadrature (const std::string &s,
00103 const unsigned int order);
00104 };
00105 DEAL_II_NAMESPACE_CLOSE
00106
00107 #endif
00108