From: Peter Munch 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=6c4e4848e0cfd974ab1710a706837e00c9b8c9e5;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> &vertices, deallog << "diameter: " << cell->diameter() << std::endl; } - const MappingFE mapping(Simplex::FE_P(1)); + std::shared_ptr> 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>(Simplex::FE_P(1)); + else if (reference_cell_types[0] == ReferenceCell::Type::Wedge) + mapping = std::make_shared>(Simplex::FE_WedgeP(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> 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> cells; - CellData cell; - cell.vertices = {0, 1, 2, 3}; - cells.push_back(cell); - - process(vertices, cells); + { + std::vector> 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> cells; + CellData cell; + cell.vertices = {0, 1, 2, 3}; + cells.push_back(cell); + + process(vertices, cells); + } + + { + std::vector> 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> cells; + CellData 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::