From: Peter Munch <peterrmuench@gmail.com>
Date: Tue, 1 Dec 2020 15:31:18 +0000 (+0100)
Subject: Test different measures for Wedges
X-Git-Tag: v9.3.0-rc1~774^2
X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F11292%2Fhead;p=dealii.git

Test different measures for Wedges
---

diff --git a/tests/simplex/cell_measure_01.cc b/tests/simplex/cell_measure_01.cc
index a5112d7330..883087fd21 100644
--- a/tests/simplex/cell_measure_01.cc
+++ b/tests/simplex/cell_measure_01.cc
@@ -41,12 +41,23 @@ process(const std::vector<Point<spacedim>> &vertices,
       deallog << "diameter: " << cell->diameter() << std::endl;
     }
 
-  const MappingFE<dim> mapping(Simplex::FE_P<dim>(1));
+  std::shared_ptr<MappingFE<dim>> mapping;
 
-  deallog << "diameter_min: " << GridTools::minimal_cell_diameter(tria, mapping)
-          << std::endl;
-  deallog << "diameter_max: " << GridTools::maximal_cell_diameter(tria, mapping)
-          << std::endl;
+  const auto reference_cell_types = tria.get_reference_cell_types();
+
+  AssertDimension(reference_cell_types.size(), 1);
+
+  if (reference_cell_types[0] == ReferenceCell::get_simplex(dim))
+    mapping = std::make_shared<MappingFE<dim>>(Simplex::FE_P<dim>(1));
+  else if (reference_cell_types[0] == ReferenceCell::Type::Wedge)
+    mapping = std::make_shared<MappingFE<dim>>(Simplex::FE_WedgeP<dim>(1));
+  else
+    AssertThrow(false, ExcNotImplemented());
+
+  deallog << "diameter_min: "
+          << GridTools::minimal_cell_diameter(tria, *mapping) << std::endl;
+  deallog << "diameter_max: "
+          << GridTools::maximal_cell_diameter(tria, *mapping) << std::endl;
   deallog << std::endl;
 }
 
@@ -84,18 +95,37 @@ test<3>()
   const int dim      = 3;
   const int spacedim = 3;
 
-  std::vector<Point<spacedim>> vertices;
-  vertices.emplace_back(0, 0, 0);
-  vertices.emplace_back(1, 0, 0);
-  vertices.emplace_back(0, 1, 0);
-  vertices.emplace_back(0, 0, 1);
-
-  std::vector<CellData<dim>> cells;
-  CellData<dim>              cell;
-  cell.vertices = {0, 1, 2, 3};
-  cells.push_back(cell);
-
-  process(vertices, cells);
+  {
+    std::vector<Point<spacedim>> vertices;
+    vertices.emplace_back(0, 0, 0);
+    vertices.emplace_back(1, 0, 0);
+    vertices.emplace_back(0, 1, 0);
+    vertices.emplace_back(0, 0, 1);
+
+    std::vector<CellData<dim>> cells;
+    CellData<dim>              cell;
+    cell.vertices = {0, 1, 2, 3};
+    cells.push_back(cell);
+
+    process(vertices, cells);
+  }
+
+  {
+    std::vector<Point<spacedim>> vertices;
+    vertices.emplace_back(0, 0, 0);
+    vertices.emplace_back(1, 0, 0);
+    vertices.emplace_back(0, 1, 0);
+    vertices.emplace_back(0, 0, 1);
+    vertices.emplace_back(1, 0, 1);
+    vertices.emplace_back(0, 1, 1);
+
+    std::vector<CellData<dim>> cells;
+    CellData<dim>              cell;
+    cell.vertices = {0, 1, 2, 3, 4, 5};
+    cells.push_back(cell);
+
+    process(vertices, cells);
+  }
 }
 
 int
diff --git a/tests/simplex/cell_measure_01.with_simplex_support=on.output b/tests/simplex/cell_measure_01.with_simplex_support=on.output
index 8fe42d75a2..b55ad16432 100644
--- a/tests/simplex/cell_measure_01.with_simplex_support=on.output
+++ b/tests/simplex/cell_measure_01.with_simplex_support=on.output
@@ -11,3 +11,9 @@ DEAL::diameter: 1.41421
 DEAL::diameter_min: 1.41421
 DEAL::diameter_max: 1.41421
 DEAL::
+DEAL::dim=3 spacedim=3:
+DEAL::measure:  0.500000
+DEAL::diameter: 1.73205
+DEAL::diameter_min: 1.73205
+DEAL::diameter_max: 1.73205
+DEAL::