]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Test different measures for Wedges 11292/head
authorPeter Munch <peterrmuench@gmail.com>
Tue, 1 Dec 2020 15:31:18 +0000 (16:31 +0100)
committerPeter Munch <peterrmuench@gmail.com>
Wed, 9 Dec 2020 21:23:08 +0000 (22:23 +0100)
tests/simplex/cell_measure_01.cc
tests/simplex/cell_measure_01.with_simplex_support=on.output

index a5112d7330075df41102b7759694d1583639904a..883087fd21b03bf40f9dbda63feb18525cae355f 100644 (file)
@@ -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
index 8fe42d75a29721b19019a6fe8df9d1afbde53c8a..b55ad1643212b0dc4f2fde28d25f1c7381f052fd 100644 (file)
@@ -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::

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.