From 42810e0fa1632edebe60ecfb30887aba53315cd4 Mon Sep 17 00:00:00 2001 From: bangerth Date: Sun, 10 Sep 2006 01:44:28 +0000 Subject: [PATCH] Minimal and maximal cell diameters. git-svn-id: https://svn.dealii.org/trunk@13879 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/grid/grid_tools.h | 22 ++++++++++++- deal.II/deal.II/source/grid/grid_tools.cc | 38 +++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/deal.II/deal.II/include/grid/grid_tools.h b/deal.II/deal.II/include/grid/grid_tools.h index 66b70f078d..1075b308b7 100644 --- a/deal.II/deal.II/include/grid/grid_tools.h +++ b/deal.II/deal.II/include/grid/grid_tools.h @@ -509,7 +509,27 @@ class GridTools bool have_same_coarse_mesh (const Container &mesh_1, const Container &mesh_2); - + + /** + * Return the diamater of the smallest + * active cell of a triangulation. See + * @ref step_24 "step-24" for an example + * of use of this function. + */ + template + static + double + minimal_cell_diameter (const Triangulation &triangulation); + + /** + * Return the diamater of the largest + * active cell of a triangulation. + */ + template + static + double + maximal_cell_diameter (const Triangulation &triangulation); + /** * Exception */ diff --git a/deal.II/deal.II/source/grid/grid_tools.cc b/deal.II/deal.II/source/grid/grid_tools.cc index b6c9664e2c..2e65959efb 100644 --- a/deal.II/deal.II/source/grid/grid_tools.cc +++ b/deal.II/deal.II/source/grid/grid_tools.cc @@ -870,6 +870,36 @@ GridTools::have_same_coarse_mesh (const Container &mesh_1, +template +double +GridTools::minimal_cell_diameter (const Triangulation &triangulation) +{ + double min_diameter = triangulation.begin_active()->diameter(); + for (typename Triangulation::active_cell_iterator + cell = triangulation.begin_active(); cell != triangulation.end(); + ++cell) + min_diameter = std::min (min_diameter, + cell->diameter()); + return min_diameter; +} + + + +template +double +GridTools::maximal_cell_diameter (const Triangulation &triangulation) +{ + double max_diameter = triangulation.begin_active()->diameter(); + for (typename Triangulation::active_cell_iterator + cell = triangulation.begin_active(); cell != triangulation.end(); + ++cell) + max_diameter = std::max (max_diameter, + cell->diameter()); + return max_diameter; +} + + + // explicit instantiations @@ -1042,3 +1072,11 @@ template bool GridTools::have_same_coarse_mesh (const MGDoFHandler &mesh_1, const MGDoFHandler &mesh_2); + +template +double +GridTools::minimal_cell_diameter (const Triangulation &triangulation); + +template +double +GridTools::maximal_cell_diameter (const Triangulation &triangulation); -- 2.39.5