#include <deal.II/base/geometry_info.h>
#include <deal.II/base/quadrature.h>
-#include <deal.II/grid/reference_cell.h>
-
#include <deal.II/hp/q_collection.h>
DEAL_II_NAMESPACE_OPEN
+#ifndef DOXYGEN
+class ReferenceCell;
+#endif
/**
* @addtogroup Quadrature
* doc for this class.
*/
static void
- project_to_face(const ReferenceCell reference_cell,
+ project_to_face(const ReferenceCell & reference_cell,
const SubQuadrature & quadrature,
const unsigned int face_no,
std::vector<Point<dim>> &q_points);
* the general doc for this class.
*/
static Quadrature<dim>
- project_to_face(const ReferenceCell reference_cell,
+ project_to_face(const ReferenceCell &reference_cell,
const SubQuadrature &quadrature,
const unsigned int face_no);
* same as those of the original rule.
*/
static void
- project_to_subface(const ReferenceCell reference_cell,
+ project_to_subface(const ReferenceCell & reference_cell,
const SubQuadrature & quadrature,
const unsigned int face_no,
const unsigned int subface_no,
* version of this function that takes the reference cell type instead.
*/
static Quadrature<dim>
- project_to_subface(const ReferenceCell reference_cell,
+ project_to_subface(const ReferenceCell & reference_cell,
const SubQuadrature & quadrature,
const unsigned int face_no,
const unsigned int subface_no,
* each face, in order to cope possibly different orientations of the mesh.
*/
static Quadrature<dim>
- project_to_all_faces(const ReferenceCell reference_cell,
+ project_to_all_faces(const ReferenceCell & reference_cell,
const hp::QCollection<dim - 1> &quadrature);
/**
* formula on all faces.
*/
static Quadrature<dim>
- project_to_all_faces(const ReferenceCell reference_cell,
+ project_to_all_faces(const ReferenceCell & reference_cell,
const Quadrature<dim - 1> &quadrature);
/**
* in FESubfaceValues.
*/
static Quadrature<dim>
- project_to_all_subfaces(const ReferenceCell reference_cell,
+ project_to_all_subfaces(const ReferenceCell &reference_cell,
const SubQuadrature &quadrature);
/**
* GeometryInfo<dim>::children_per_cell.
*/
static Quadrature<dim>
- project_to_child(const ReferenceCell reference_cell,
+ project_to_child(const ReferenceCell & reference_cell,
const Quadrature<dim> &quadrature,
const unsigned int child_no);
* refinement of the cell.
*/
static Quadrature<dim>
- project_to_all_children(const ReferenceCell reference_cell,
+ project_to_all_children(const ReferenceCell & reference_cell,
const Quadrature<dim> &quadrature);
/**
* connecting the points <tt>p1</tt> and <tt>p2</tt>.
*/
static Quadrature<dim>
- project_to_line(const ReferenceCell reference_cell,
+ project_to_line(const ReferenceCell &reference_cell,
const Quadrature<1> &quadrature,
const Point<dim> & p1,
const Point<dim> & p2);
* onto the faces) has.
*/
static DataSetDescriptor
- face(const ReferenceCell reference_cell,
- const unsigned int face_no,
- const bool face_orientation,
- const bool face_flip,
- const bool face_rotation,
- const unsigned int n_quadrature_points);
+ face(const ReferenceCell &reference_cell,
+ const unsigned int face_no,
+ const bool face_orientation,
+ const bool face_flip,
+ const bool face_rotation,
+ const unsigned int n_quadrature_points);
/**
* Like the above function but taking a quadrature collection, enabling
* that each face might have different number of quadrature points.
*/
static DataSetDescriptor
- face(const ReferenceCell reference_cell,
+ face(const ReferenceCell & reference_cell,
const unsigned int face_no,
const bool face_orientation,
const bool face_flip,
* Through the last argument anisotropic refinement can be respected.
*/
static DataSetDescriptor
- subface(const ReferenceCell reference_cell,
+ subface(const ReferenceCell & reference_cell,
const unsigned int face_no,
const unsigned int subface_no,
const bool face_orientation,
template <int dim>
Quadrature<dim> inline QProjector<dim>::project_to_all_faces(
- const ReferenceCell reference_cell,
+ const ReferenceCell & reference_cell,
const Quadrature<dim - 1> &quadrature)
{
return project_to_all_faces(reference_cell,
template <>
void
-QProjector<1>::project_to_face(const ReferenceCell reference_cell,
+QProjector<1>::project_to_face(const ReferenceCell &reference_cell,
const Quadrature<0> &,
const unsigned int,
std::vector<Point<1>> &);
template <>
void
-QProjector<2>::project_to_face(const ReferenceCell reference_cell,
+QProjector<2>::project_to_face(const ReferenceCell & reference_cell,
const Quadrature<1> & quadrature,
const unsigned int face_no,
std::vector<Point<2>> &q_points);
template <>
void
-QProjector<3>::project_to_face(const ReferenceCell reference_cell,
+QProjector<3>::project_to_face(const ReferenceCell & reference_cell,
const Quadrature<2> & quadrature,
const unsigned int face_no,
std::vector<Point<3>> &q_points);
template <>
Quadrature<1>
-QProjector<1>::project_to_all_faces(const ReferenceCell reference_cell,
+QProjector<1>::project_to_all_faces(const ReferenceCell & reference_cell,
const hp::QCollection<0> &quadrature);
template <>
void
-QProjector<1>::project_to_subface(const ReferenceCell reference_cell,
+QProjector<1>::project_to_subface(const ReferenceCell &reference_cell,
const Quadrature<0> &,
const unsigned int,
const unsigned int,
const RefinementCase<0> &);
template <>
void
-QProjector<2>::project_to_subface(const ReferenceCell reference_cell,
+QProjector<2>::project_to_subface(const ReferenceCell & reference_cell,
const Quadrature<1> & quadrature,
const unsigned int face_no,
const unsigned int subface_no,
const RefinementCase<1> &);
template <>
void
-QProjector<3>::project_to_subface(const ReferenceCell reference_cell,
+QProjector<3>::project_to_subface(const ReferenceCell & reference_cell,
const Quadrature<2> & quadrature,
const unsigned int face_no,
const unsigned int subface_no,
template <>
Quadrature<1>
-QProjector<1>::project_to_all_subfaces(const ReferenceCell reference_cell,
+QProjector<1>::project_to_all_subfaces(const ReferenceCell &reference_cell,
const Quadrature<0> &quadrature);
#include <deal.II/base/qprojector.h>
#include <deal.II/base/tensor_product_polynomials.h>
+#include <deal.II/grid/reference_cell.h>
+
DEAL_II_NAMESPACE_OPEN
template <>
void
-QProjector<1>::project_to_face(const ReferenceCell reference_cell,
+QProjector<1>::project_to_face(const ReferenceCell &reference_cell,
const Quadrature<0> &,
const unsigned int face_no,
std::vector<Point<1>> &q_points)
template <>
void
-QProjector<2>::project_to_face(const ReferenceCell reference_cell,
+QProjector<2>::project_to_face(const ReferenceCell & reference_cell,
const Quadrature<1> & quadrature,
const unsigned int face_no,
std::vector<Point<2>> &q_points)
template <>
void
-QProjector<3>::project_to_face(const ReferenceCell reference_cell,
+QProjector<3>::project_to_face(const ReferenceCell & reference_cell,
const Quadrature<2> & quadrature,
const unsigned int face_no,
std::vector<Point<3>> &q_points)
template <>
void
-QProjector<1>::project_to_subface(const ReferenceCell reference_cell,
+QProjector<1>::project_to_subface(const ReferenceCell &reference_cell,
const Quadrature<0> &,
const unsigned int face_no,
const unsigned int,
template <>
void
-QProjector<2>::project_to_subface(const ReferenceCell reference_cell,
+QProjector<2>::project_to_subface(const ReferenceCell & reference_cell,
const Quadrature<1> & quadrature,
const unsigned int face_no,
const unsigned int subface_no,
template <>
void
-QProjector<3>::project_to_subface(const ReferenceCell reference_cell,
+QProjector<3>::project_to_subface(const ReferenceCell & reference_cell,
const Quadrature<2> & quadrature,
const unsigned int face_no,
const unsigned int subface_no,
template <>
Quadrature<1>
-QProjector<1>::project_to_all_faces(const ReferenceCell reference_cell,
+QProjector<1>::project_to_all_faces(const ReferenceCell & reference_cell,
const hp::QCollection<0> &quadrature)
{
AssertDimension(quadrature.size(), 1);
template <>
Quadrature<2>
-QProjector<2>::project_to_all_faces(const ReferenceCell reference_cell,
+QProjector<2>::project_to_all_faces(const ReferenceCell & reference_cell,
const hp::QCollection<1> &quadrature)
{
if (reference_cell == ReferenceCells::Triangle)
template <>
Quadrature<3>
-QProjector<3>::project_to_all_faces(const ReferenceCell reference_cell,
+QProjector<3>::project_to_all_faces(const ReferenceCell & reference_cell,
const hp::QCollection<2> &quadrature)
{
const auto support_points_tri =
template <>
Quadrature<1>
-QProjector<1>::project_to_all_subfaces(const ReferenceCell reference_cell,
+QProjector<1>::project_to_all_subfaces(const ReferenceCell &reference_cell,
const Quadrature<0> &quadrature)
{
Assert(reference_cell == ReferenceCells::Line, ExcNotImplemented());
template <>
Quadrature<2>
-QProjector<2>::project_to_all_subfaces(const ReferenceCell reference_cell,
+QProjector<2>::project_to_all_subfaces(const ReferenceCell &reference_cell,
const SubQuadrature &quadrature)
{
if (reference_cell == ReferenceCells::Triangle ||
template <>
Quadrature<3>
-QProjector<3>::project_to_all_subfaces(const ReferenceCell reference_cell,
+QProjector<3>::project_to_all_subfaces(const ReferenceCell &reference_cell,
const SubQuadrature &quadrature)
{
if (reference_cell == ReferenceCells::Triangle ||
template <int dim>
Quadrature<dim>
-QProjector<dim>::project_to_child(const ReferenceCell reference_cell,
+QProjector<dim>::project_to_child(const ReferenceCell & reference_cell,
const Quadrature<dim> &quadrature,
const unsigned int child_no)
{
template <int dim>
Quadrature<dim>
-QProjector<dim>::project_to_all_children(const ReferenceCell reference_cell,
+QProjector<dim>::project_to_all_children(const ReferenceCell & reference_cell,
const Quadrature<dim> &quadrature)
{
Assert(reference_cell == ReferenceCells::get_hypercube<dim>(),
template <int dim>
Quadrature<dim>
-QProjector<dim>::project_to_line(const ReferenceCell reference_cell,
+QProjector<dim>::project_to_line(const ReferenceCell &reference_cell,
const Quadrature<1> &quadrature,
const Point<dim> & p1,
const Point<dim> & p2)
template <int dim>
typename QProjector<dim>::DataSetDescriptor
-QProjector<dim>::DataSetDescriptor::face(const ReferenceCell reference_cell,
- const unsigned int face_no,
- const bool face_orientation,
- const bool face_flip,
- const bool face_rotation,
+QProjector<dim>::DataSetDescriptor::face(const ReferenceCell &reference_cell,
+ const unsigned int face_no,
+ const bool face_orientation,
+ const bool face_flip,
+ const bool face_rotation,
const unsigned int n_quadrature_points)
{
if (reference_cell == ReferenceCells::Triangle ||
template <int dim>
typename QProjector<dim>::DataSetDescriptor
QProjector<dim>::DataSetDescriptor::face(
- const ReferenceCell reference_cell,
+ const ReferenceCell & reference_cell,
const unsigned int face_no,
const bool face_orientation,
const bool face_flip,
template <>
QProjector<1>::DataSetDescriptor
QProjector<1>::DataSetDescriptor::subface(
- const ReferenceCell reference_cell,
- const unsigned int face_no,
- const unsigned int subface_no,
+ const ReferenceCell &reference_cell,
+ const unsigned int face_no,
+ const unsigned int subface_no,
const bool,
const bool,
const bool,
template <>
QProjector<2>::DataSetDescriptor
QProjector<2>::DataSetDescriptor::subface(
- const ReferenceCell reference_cell,
- const unsigned int face_no,
- const unsigned int subface_no,
+ const ReferenceCell &reference_cell,
+ const unsigned int face_no,
+ const unsigned int subface_no,
const bool,
const bool,
const bool,
template <>
QProjector<3>::DataSetDescriptor
QProjector<3>::DataSetDescriptor::subface(
- const ReferenceCell reference_cell,
+ const ReferenceCell & reference_cell,
const unsigned int face_no,
const unsigned int subface_no,
const bool face_orientation,
template <int dim>
Quadrature<dim>
-QProjector<dim>::project_to_face(const ReferenceCell reference_cell,
+QProjector<dim>::project_to_face(const ReferenceCell &reference_cell,
const SubQuadrature &quadrature,
const unsigned int face_no)
{
template <int dim>
Quadrature<dim>
-QProjector<dim>::project_to_subface(const ReferenceCell reference_cell,
+QProjector<dim>::project_to_subface(const ReferenceCell &reference_cell,
const SubQuadrature &quadrature,
const unsigned int face_no,
const unsigned int subface_no,