From aa7a98ef3eb1190486c5222ddb91481a6359a1d0 Mon Sep 17 00:00:00 2001 From: kanschat Date: Fri, 8 Jun 2007 03:08:55 +0000 Subject: [PATCH] put documentation of functions into documentation of functions git-svn-id: https://svn.dealii.org/trunk@14769 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/grid/grid_generator.h | 327 +++++++----------- .../images}/hypershell3d-12.png | Bin .../images}/hypershell3d-6.png | Bin 3 files changed, 122 insertions(+), 205 deletions(-) rename deal.II/doc/{pictures => doxygen/images}/hypershell3d-12.png (100%) rename deal.II/doc/{pictures => doxygen/images}/hypershell3d-6.png (100%) diff --git a/deal.II/deal.II/include/grid/grid_generator.h b/deal.II/deal.II/include/grid/grid_generator.h index 793575b2e9..b28fe3e837 100644 --- a/deal.II/deal.II/include/grid/grid_generator.h +++ b/deal.II/deal.II/include/grid/grid_generator.h @@ -28,106 +28,9 @@ template class SparseMatrix; /** - * This class offers triangulations of some standard domains such as hypercubes, - * hyperball and the like. Following is a list of domains that can be generated - * by the functions of this class: - * + * This class provides a collection of functions for generating basic + * triangulations. Below, we try to provide some pictures in order to + * illustrate at least the more complex ones. * * Some of these functions receive a flag @p colorize. If this is * set, parts of the boundary receive different boundary numbers, @@ -141,7 +44,9 @@ template class SparseMatrix; * shell onto a grid of an airfoil, for example. * * @ingroup grid - * @author Wolfgang Bangerth, Ralf Hartmann, Guido Kanschat, Stefan Nauber, Joerg Weimar, Yaqi Wang, 1998, 1999, 2000, 2001, 2002, 2003, 2006. + * @author Wolfgang Bangerth, Ralf Hartmann, Guido Kanschat, Stefan + * Nauber, Joerg Weimar, Yaqi Wang, 1998, 1999, 2000, 2001, 2002, + * 2003, 2006, 2007. */ class GridGenerator { @@ -161,6 +66,8 @@ class GridGenerator * then producing the unit * hypercube. * + * @image html hyper_cubes.png + * * See also * subdivided_hyper_cube() for a * coarse mesh consisting of @@ -406,16 +313,18 @@ class GridGenerator * Initialize the given * triangulation with a * hyperball, i.e. a circle or a - * ball. See the general - * documentation for a more - * concise description. The - * center of the hyperball - * default to the origin, the - * radius defaults to unity. - * - * The triangulation needs to be - * void upon calling this - * function. + * ball around center + * with given radius. + * + * In order to avoid degenerate + * cells at the boundaries, the + * circle is triangulated by five + * cells, the ball by seven + * cells. The diameter of the + * center cell is chosen so that + * the aspect ratio of the + * boundary cells after one + * refinement is optimized. * * This function is declared to * exist for triangulations of @@ -432,6 +341,32 @@ class GridGenerator const Point ¢er = Point(), const double radius = 1.); + /** + * This class produces a half + * hyper-ball around + * center, which + * contains four elements in 2d + * and 6 in 3d. The cut plane is + * perpendicular to the + * x-axis. + * + * The boundary indicators for the final + * triangulation are 0 for the curved boundary and + * 1 for the cut plane. + * + * The appropriate + * boundary class is + * HalfHyperBallBoundary, or HyperBallBoundary. + * + * @note The triangulation needs to be + * void upon calling this + * function. + */ + template + static void half_hyper_ball (Triangulation &tria, + const Point ¢er = Point(), + const double radius = 1.); + /** * Create a cylinder around the * x-axis. The cylinder extends @@ -468,11 +403,13 @@ class GridGenerator * Initialize the given * triangulation with a hyper-L * consisting of exactly - * 2^dim-1 cells. See the - * general documentation for a - * description of the - * L-region. The limits default - * to minus unity and unity. + * 2^dim-1 cells. It + * produces the hypercube with + * the interval [left,right] without + * the hypercube made out of the + * interval [(a+b)/2,b]. + * + * @image html hyper_l.png * * The triangulation needs to be * void upon calling this @@ -532,23 +469,30 @@ class GridGenerator /** * Produce a hyper-shell, - * i.e. the space between two - * circles in two space - * dimensions and the region - * between two spheres in 3d, - * with given inner and outer - * radius and a given number of - * elements for this initial - * triangulation. If the number - * of initial cells is zero (as - * is the default), then it is - * computed adaptively such that - * the resulting elements have - * the least aspect ratio. - * - * The triangulation needs to be - * void upon calling this - * function. + * the region between two + * spheres around center, + * with given + * inner_radius and + * outer_radius. + * + * In 2D, the number + * n_cells of elements + * for this initial triangulation + * can be chosen arbitrarily. If + * the number of initial cells is + * zero (as is the default), then + * it is computed adaptively such + * that the resulting elements + * have the least aspect ratio. + * + * In 3D, only two different + * numbers are meaningful, 6 for + * a surface based on a + * hexahedron and 12 for the + * rhombic dodecahedron. + * + * @image html hypershell3d-6.png + * @image html hypershell3d-12.png * * This function is declared to * exist for triangulations of @@ -568,63 +512,6 @@ class GridGenerator const double outer_radius, const unsigned int n_cells = 0); - /** - * Produce a domain that is the space - * between two cylinders in 3d, with - * given length, inner and outer radius - * and a given number of elements for - * this initial triangulation. If @p - * n_radial_cells is zero (as is the - * default), then it is computed - * adaptively such that the resulting - * elements have the least aspect - * ratio. The same holds for @p - * n_axial_cells. - * - * @note Although this function - * is declared as a template, it - * does not make sense in 1D and - * 2D. - * - * @note The triangulation needs - * to be void upon calling this - * function. - */ - template - static void cylinder_shell (Triangulation &tria, - const double length, - const double inner_radius, - const double outer_radius, - const unsigned int n_radial_cells = 0, - const unsigned int n_axial_cells = 0); - - /** - * This class produces a half hyper-ball, - * which contains four elements in 2d and - * 6 in 3d. The orientation is such that - * the cutting plane is the x=0. - * - * The triangulation needs to be - * void upon calling this - * function. - * - * The boundary indicators for the final - * triangulation are 0 for the curved boundary and - * 1 for the cut plane. - * - * The appropriate - * boundary class is - * HalfHyperBallBoundary, or HyperBallBoundary. - * - * @note The triangulation needs to be - * void upon calling this - * function. - */ - template - static void half_hyper_ball (Triangulation &tria, - const Point ¢er = Point(), - const double radius = 1.); - /** * Produce a half hyper-shell, * i.e. the space between two @@ -656,10 +543,6 @@ class GridGenerator * the resulting elements have * the least aspect ratio. * - * The triangulation needs to be - * void upon calling this - * function. - * * At present, this function only * exists in 2d. * @@ -674,25 +557,59 @@ class GridGenerator const double outer_radius, const unsigned int n_cells = 0); + /** + * Produce a domain that is the space + * between two cylinders in 3d, with + * given length, inner and outer radius + * and a given number of elements for + * this initial triangulation. If @p + * n_radial_cells is zero (as is the + * default), then it is computed + * adaptively such that the resulting + * elements have the least aspect + * ratio. The same holds for @p + * n_axial_cells. + * + * @note Although this function + * is declared as a template, it + * does not make sense in 1D and + * 2D. + * + * @note The triangulation needs + * to be void upon calling this + * function. + */ + template + static void cylinder_shell (Triangulation &tria, + const double length, + const double inner_radius, + const double outer_radius, + const unsigned int n_radial_cells = 0, + const unsigned int n_axial_cells = 0); + /** * This class produces a square - * on the @p xy-plane with a + * on the xy-plane with a * circular hole in the middle, - * times the interval @p [0.L] - * (only in 3d). It is - * implemented in 2d and 3d, and - * takes the following arguments: + * times the interval [0.L] + * (only in 3d). + * + * @image html cubes_hole.png + * + * It is implemented in 2d and + * 3d, and takes the following + * arguments: * - * - @p inner_radius: size of the + * @arg @p inner_radius: size of the * internal hole - * - @p outer_radius: size of the + * @arg @p outer_radius: size of the * biggest enclosed cylinder - * - @p L: extension on the @p z-direction - * - @p repetitions: number of subdivisions + * @arg @p L: extension on the @p z-direction + * @arg @p repetitions: number of subdivisions * along the @p z-direction - * - @p colorize: wether to assign different + * @arg @p colorize: wether to assign different * boundary indicators to different faces. - * The colors are given in lexicografic + * The colors are given in lexicographic * ordering for the flat faces (0 to 3 in 2d, * 0 to 5 in 3d) plus the curved hole * (4 in 2d, and 6 in 3d). diff --git a/deal.II/doc/pictures/hypershell3d-12.png b/deal.II/doc/doxygen/images/hypershell3d-12.png similarity index 100% rename from deal.II/doc/pictures/hypershell3d-12.png rename to deal.II/doc/doxygen/images/hypershell3d-12.png diff --git a/deal.II/doc/pictures/hypershell3d-6.png b/deal.II/doc/doxygen/images/hypershell3d-6.png similarity index 100% rename from deal.II/doc/pictures/hypershell3d-6.png rename to deal.II/doc/doxygen/images/hypershell3d-6.png -- 2.39.5