From: Luca Heltai Date: Tue, 1 May 2018 14:56:00 +0000 (+0200) Subject: Fixed documentation. X-Git-Tag: v9.0.0-rc1~36^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=836090c20f9734e07d8dd67b4550fd72da19f7a8;p=dealii.git Fixed documentation. --- diff --git a/doc/doxygen/headers/boundary.h b/doc/doxygen/headers/boundary.h index ab8a454b27..e46484ce46 100644 --- a/doc/doxygen/headers/boundary.h +++ b/doc/doxygen/headers/boundary.h @@ -79,64 +79,53 @@ * boundary_id that uniquely identifies which part of the * boundary this face is on. If nothing is specified at creation time, * each boundary face has a zero boundary id and each triangulation - * object has an invalid manifold id. On the other hand, the boundary + * object has an flat manifold id. On the other hand, the boundary * id of faces and the manifold id of objects can be set either at * creation time or later by looping over all cells and querying their * faces. * - * It is then possible to associate objects describing the geometry to - * certain boundary_id values used in a triangulation and to certain + * It is then possible to associate objects describing the geometry to certain * manifold_id values. * - * Before version 8.2, the library allowed only boundary faces to - * follow a curved geometric description. Since version 8.2 this has - * been introduced also for interior faces and cells, and the - * boundary_id has been separated from the manifold_id. - * - * Although the old behavior is still supported, one should use the - * boundary indicator only for the physical meaning associated, for - * example, to boundary conditions, and revert to manifold_ids to - * describe the geometry of the triangulation. - * - * The behavior of the Triangulation class w.r.t. geometry - * descriptions is the following: Triangulation::set_boundary() and - * Triangulation::set_manifold() do the exact same thing: they attach - * a manifold descriptor to the specified id. The first function - * expects a Boundary descriptor (which is a specialization of a - * Manifold description) and is provided mainly for backward - * compatibility, while the second class expects a Manifold - * descriptor. Notice that the Triangulation class only uses the - * Manifold interface, and you could describe both the interior and - * the boundary of the domain using the same object. The additional - * information contained in the Boundary interface is related to the - * computation of the exact normals. - * - * Whenever a new vertex is needed in an object, the Triangulation - * queries the manifold_id of the object which needs refinement. If - * the manifold_id is set to numbers::invalid_manifold_id, then the - * Triangulation queries the boundary_id (if the face is on the - * boundary) or the material_id (if the Triangulation is of - * codimension one and the object is a cell). If the previous queries - * resulted in a number different from numbers::invalid_manifold_id, - * then the Triangulation looks whether a previous call to - * Triangulation::set_manifold() (or set_boundary()) was performed - * with the given id, and if yes, it uses the stored object to obtain - * new vertices, otherwise it uses a FlatManifold or StraightBoundary - * object. - * - * @note This behavior is backward compatible to that of deal.II versions - * prior to 8.2. If one ignores the manifold_id of an object (i.e., if it has - * never been set), by default it is and remains set to - * numbers::invalid_manifold_id. In that case, the first query above will - * trigger a query to the old style boundary_id. This behavior will be - * maintained for a while, but might eventually be changed. The suggested - * strategy is to use manifold_ids to describe the geometry, and boundary_ids - * to describe boundary conditions. - * + * Before version 8.2, the library allowed only boundary faces to follow a + * curved geometric description. Since version 8.2 this has been introduced also + * for interior faces and cells, and the boundary_id has been separated from the + * manifold_id. The former is used to identify the type of boundary conditions + * to apply, while the latter is used to identify the geometry and describe how + * new vertices should be created upon refinement of the mesh, or where high + * order Mapping objects should place their support points on the exact + * geometry. + * + * Since version 9.0 of the library, the boundary_id associated to the boundary + * faces is ignored by Manifold objects, and Manifold descriptors can only be + * attached to manifold ids. + * + * The behavior of the Triangulation class w.r.t. geometry descriptions is the + * following: Triangulation::set_manifold() attaches a manifold descriptor to + * the specified manifold id. The function expects a Manifold descriptor, and + * you could describe both the interior and the boundary of the domain using the + * same object. + * + * Whenever a new vertex is needed in an object, the Triangulation queries the + * manifold_id of the object which needs refinement. If the query resulted in a + * number different from numbers::flat_manifold_id, then the Triangulation looks + * whether a previous call to Triangulation::set_manifold() was performed with + * the given id, and if yes, it uses the stored object to obtain new vertices, + * otherwise it uses a FlatManifold object. + * + * @note This behavior is **not** backward compatible to that of deal.II + * versions prior to 9.0. If one ignores the manifold_id of an object (i.e., if + * it has never been set), by default it is and remains set to + * numbers::flat_manifold_id. In previous versions of the library, the + * boundary_id of the boundary faces would be queried and used in place of the + * manifold_id. If you have old programs that only set boundary ids, you should + * modify them to use manifold ids instead (or you could use + * GridTools::copy_boundary_to_manifold_ids or + * GridTools::map_boundary_to_manifold_ids) * * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" * @see @ref GlossManifoldIndicator "Glossary entry on manifold indicators" * * @ingroup grid - * @author Wolfgang Bangerth, Luca Heltai, 1998-2014 + * @author Wolfgang Bangerth, Luca Heltai, 1998-2018 */ diff --git a/doc/doxygen/headers/manifold.h b/doc/doxygen/headers/manifold.h index 2d45f75013..2b3de6f16c 100644 --- a/doc/doxygen/headers/manifold.h +++ b/doc/doxygen/headers/manifold.h @@ -34,21 +34,23 @@ * locations of the pre-existing vertices). This is the default behavior of * the Triangulation class, and is described by the FlatManifold class. * - * On the other hand, if one deals with curved geometries, or geometries - * which require a denser refinement in some direction, this is not the - * appropriate thing to do. The classes derived from the Manifold base class - * therefore describe the geometry of a domain. One can then attach an - * object of a class derived from this base class to the Triangulation - * object using the Triangulation::set_manifold() function associating it - * with a manifold id (see types::manifold_id), use this manifold id on the - * cells, faces or edges of the triangulation that should be described by - * this manifold using the TriaAccessor::set_manifold_id() function, and - * then the Triangulation will ask the manifold object where a new vertex to - * be located on a cell, face or edge so attributed should be located upon - * mesh refinement. Several classes already exist to support the most common - * geometries, e.g., CylinderManifold, or PolarManifold, which represent - * respectively the geometry obtained when describing your space in - * cylindrical coordinates or in polar coordinates. + * On the other hand, if one deals with curved geometries, or geometries which + * require a denser refinement in some direction, this is not the appropriate + * thing to do. The classes derived from the Manifold base class therefore + * describe the geometry of a domain. One can then attach an object of a class + * derived from this base class to the Triangulation object using the + * Triangulation::set_manifold() function associating it with a manifold id + * (see types::manifold_id), use this manifold id on the cells, faces or edges + * of the triangulation that should be described by this manifold using the + * TriaAccessor::set_manifold_id() function, and then the Triangulation will + * ask the manifold object where a new vertex to be located on a cell, face or + * edge so attributed should be located upon mesh refinement. Several classes + * already exist to support the most common geometries, e.g., + * CylinderManifold, or PolarManifold, which represent respectively the + * geometry obtained when describing your space in cylindrical coordinates or + * in polar coordinates, and by default, all curved geometries generated using + * functions in the GridGenerator namespace attach by default the correct + * Manifold object to the curved parts of the domain. * *
  • Integration: When using higher order finite element methods, it is * often necessary to compute cell terms (like cell contributions to the