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;
}
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