]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Fixed documentation.
authorLuca Heltai <luca.heltai@sissa.it>
Tue, 1 May 2018 14:56:00 +0000 (16:56 +0200)
committerLuca Heltai <luca.heltai@sissa.it>
Tue, 1 May 2018 14:56:00 +0000 (16:56 +0200)
doc/doxygen/headers/boundary.h
doc/doxygen/headers/manifold.h

index ab8a454b27761c0525ae6a1249048dc5f7607c7b..e46484ce460256bd0f794ad69ac2afe83d0cc110 100644 (file)
  * <tt>boundary_id</tt> 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
  */
index 2d45f750136544c669dda70bbe82dcecbc4a11bf..2b3de6f16c5719c92ab8763c69ff0e9dc7a971d2 100644 (file)
  *   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.
  *
  *   <li> Integration: When using higher order finite element methods, it is
  *   often necessary to compute cell terms (like cell contributions to the

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.