]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Document boundary indicators in the glossary and link to it.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 29 Jan 2013 16:22:49 +0000 (16:22 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 29 Jan 2013 16:22:49 +0000 (16:22 +0000)
git-svn-id: https://svn.dealii.org/trunk@28191 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/doc/doxygen/headers/boundary.h
deal.II/doc/doxygen/headers/glossary.h
deal.II/include/deal.II/base/types.h
deal.II/include/deal.II/dofs/dof_tools.h
deal.II/include/deal.II/grid/tria.h
deal.II/include/deal.II/grid/tria_accessor.h
deal.II/include/deal.II/numerics/vector_tools.h

index 925aa29ccd48003c71784909109ff8461095f2a7..7ffad2ac01b171fa0b8690d7172ce5ff9127208a 100644 (file)
@@ -70,6 +70,8 @@
  * a different kind of boundary condition in the partial differential
  * equation.
  *
+ * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
+ *
  * @ingroup grid
  * @author Wolfgang Bangerth, 1998-2006
  */
index 5ed5ad2eb3ab5739a0ab2d0799901523b4a04bed..2c100e538bee34ec7daa4e6f06c746d130dbb860 100644 (file)
  * @ref GlossBlock "block entry of this glossary".
  * </dd>
  *
+ *
  * <dt class="glossary">@anchor GlossBoundaryForm <b>%Boundary form</b></dt>
  *
  * <dd>For a dim-dimensional triangulation in dim-dimensional space,
  * cell.  </dd>
  *
  *
+ * <dt class="glossary">@anchor GlossBoundaryIndicator <b>%Boundary indicator</b></dt>
+ *
+ * <dd>
+ * In a Triangulation object, every part of the boundary is associated with
+ * a unique number (of type types::boundary_id) that is used to identify which
+ * boundary geometry object is responsible to generate new points when the mesh
+ * is refined. By convention, this boundary indicator is also often used to
+ * determine what kinds of boundary conditions are to be applied to a particular
+ * part of a boundary. The boundary is composed of the faces of the cells and, in 3d,
+ * the edges of these faces.
+ *
+ * By default, all boundary indicators of a mesh are zero, unless you are
+ * reading from a mesh file that specifically sets them to something different,
+ * or unless you use one of the mesh generation functions in namespace GridGenerator
+ * that have a 'colorize' option. A typical piece of code that sets the boundary
+ * indicator on part of the boundary to something else would look like
+ * this, here setting the boundary indicator to 42 for all faces located at
+ * $x=-1$:
+ * @code
+ *   for (typename Triangulation<dim>::active_cell_iterator
+ *          cell = triangulation.begin_active();
+ *        cell != triangulation.end();
+ *        ++cell)
+ *     for (unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
+ *       if (cell->face(f)->at_boundary())
+ *         if (cell->face(f)->center()[0] == -1)
+ *           cell->face(f)->set_boundary_indicator (42);
+ * @endcode
+ * This calls functions TriaAccessor::set_boundary_indicator. In 3d, it may
+ * also be appropriate to call TriaAccessor::set_all_boundary_indicators instead
+ * on each of the selected faces. To query the boundary indicator of a particular
+ * face or edge, use TriaAccessor::boundary_indicator.
+ *
+ * The code above only sets the boundary indicators of a particular part
+ * of the boundary, but it does not by itself change the way the Triangulation
+ * class treats this boundary for the purposes of mesh refinement. For this,
+ * you need to call Triangulation::set_boundary to associate a boundary
+ * object with a particular boundary indicator. This allows the Triangulation
+ * object to use a different method of finding new points on faces and edges
+ * to be refined; the default is to use a StraightBoundary object for all
+ * faces and edges.
+ *
+ * The second use of boundary indicators is to describe not only which geometry
+ * object to use on a particular boundary but to select a part of the boundary
+ * for particular boundary conditions. To this end, many of the functions in
+ * namespaces DoFTools and VectorTools take arguments that specify which part of
+ * the boundary to work on. Examples are DoFTools::make_periodicity_constraints,
+ * DoFTools::extract_boundary_dofs, DoFTools::make_zero_boundary_constraints and
+ * VectorTools::interpolate_boundary_values,
+ * VectorTools::compute_no_normal_flux_constraints.
+ *
+ * @note Boundary indicators are inherited from mother faces and edges to
+ * their children upon mesh refinement. Some more information about boundary
+ * indicators is also presented in a section of the documentation of the
+ * Triangulation class.
+ *
+ * @note For meshes embedded in a higher dimension (i.e., for which the
+ * 'dim' template argument to the Triangulation class is less than the
+ * 'spacedim' argument -- sometimes called the 'codimension one' or 'codimension
+ * two' case), the Triangulation also stores boundary indicators for cells, not just
+ * faces and edges. In this case, the boundary object associated with a particular
+ * boundary indicator is also used to move the new center points of cells back
+ * onto the manifold that the triangulation describes whenever a cell is refined.
+ * </dd>
+ *
+ * @see @ref boundary "The module on boundaries"
+ *
+ *
  * <dt class="glossary">@anchor GlossComponent <b>Component</b></dt>
  *
  * <dd> When considering systems of equations in which the solution is not
index a8cfcc677674ca8a1f8aee11bae707165a53ac93..2a37e62c29b90cd115371dd10cb5191525de3bf1 100644 (file)
@@ -67,12 +67,14 @@ namespace types
    * The type used to denote boundary indicators associated with every
    * piece of the boundary and, in the case of meshes that describe
    * manifolds in higher dimensions, associated with every cell.
-  *
-  * There is a special value, numbers::internal_face_boundary_id
-  * that is used to indicate an invalid value of this type and that
-  * is used as the boundary indicator for faces that are in the interior
-  * of the domain and therefore not part of any addressable boundary
-  * component.
+   *
+   * There is a special value, numbers::internal_face_boundary_id
+   * that is used to indicate an invalid value of this type and that
+   * is used as the boundary indicator for faces that are in the interior
+   * of the domain and therefore not part of any addressable boundary
+   * component.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   typedef unsigned char boundary_id;
 
@@ -141,6 +143,8 @@ namespace numbers
    * default value.  We assume that
    * all valid boundary_ids lie in the
    * range [0, invalid_boundary_id).
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   const types::boundary_id invalid_boundary_id = static_cast<types::boundary_id>(-1);
 
@@ -155,6 +159,8 @@ namespace numbers
    * differentiate between faces that lie at the boundary of the domain
    * and faces that lie in the interior of the domain. You should never try
    * to assign this boundary indicator to anything in user code.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   const types::boundary_id internal_face_boundary_id = static_cast<types::boundary_id>(-1);
 
index fbdb8625bac0431cb2e21e9fd4cb75a1213cd6dc..858b6e8949b65e419458914eeb7fc07d1932df52 100644 (file)
@@ -1133,6 +1133,8 @@ namespace DoFTools
    * @note This function will not work for DoFHandler objects that are
    * built on a parallel::distributed::Triangulation object.
    *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
+   *
    * @author Matthias Maier, 2012
    */
   template<typename DH>
@@ -1157,6 +1159,8 @@ namespace DoFTools
    * @note This function will not work for DoFHandler objects that are
    * built on a parallel::distributed::Triangulation object.
    *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
+   *
    * @author Matthias Maier, 2012
    */
   template<typename DH>
@@ -1187,6 +1191,8 @@ namespace DoFTools
    *
    * @note This function will not work for DoFHandler objects that are
    * built on a parallel::distributed::Triangulation object.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template<typename DH>
   void
@@ -1212,6 +1218,8 @@ namespace DoFTools
    *
    * @note This function will not work for DoFHandler objects that are
    * built on a parallel::distributed::Triangulation object.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template<typename DH>
   void
@@ -1480,6 +1488,8 @@ namespace DoFTools
    *          If it is a non-empty list, then the function only considers
    *          boundary faces with the boundary indicators listed in this
    *          argument.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <class DH>
   void
@@ -1516,6 +1526,8 @@ namespace DoFTools
    *          If it is a non-empty list, then the function only considers
    *          boundary faces with the boundary indicators listed in this
    *          argument.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <class DH>
   void
@@ -1553,6 +1565,8 @@ namespace DoFTools
    * function says that it is
    * nonzero on any face on one of
    * the selected boundary parts.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <class DH>
   void
@@ -2598,6 +2612,8 @@ namespace DoFTools
    *
    * See the general doc of this
    * class for more information.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <class DH>
   void
@@ -2788,6 +2804,8 @@ namespace DoFTools
    *   degrees of freedom at the boundary will be considered.
    *
    * @ingroup constraints
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <int dim, int spacedim, template <int, int> class DH>
   void
index dbae84b6a0a9728ef17ab6b4caa66f6fa9f99887..22afa6548c25999a95097d862a00a15b43706614 100644 (file)
@@ -806,6 +806,7 @@ namespace internal
  *   indicator of a face can be changed using a call of the kind
  *   <code>cell-@>face(1)-@>set_boundary_indicator(42);</code>.
  *
+ *   @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
  *
  *
  *   <h3>History of a triangulation</h3>
@@ -1777,8 +1778,10 @@ public:
    * replaces the boundary object given
    * before by a straight boundary
    * approximation.
-  *
-  * @ingroup boundary
+   *
+   * @ingroup boundary
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   void set_boundary (const types::boundary_id   number,
                      const Boundary<dim,spacedim> &boundary_object);
@@ -1791,8 +1794,10 @@ public:
    * undoes assignment of a different
    * boundary object by the function of
    * same name and two arguments.
-  *
-  * @ingroup boundary
+   *
+   * @ingroup boundary
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   void set_boundary (const types::boundary_id number);
 
@@ -1802,8 +1807,10 @@ public:
    * this triangulation.  Number is
    * the same as in
    * @p set_boundary
-  *
-  * @ingroup boundary
+   *
+   * @ingroup boundary
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   const Boundary<dim,spacedim> &get_boundary (const types::boundary_id number) const;
 
@@ -1819,8 +1826,10 @@ public:
    * the number of different
    * indicators (which is greater
    * or equal one).
-  *
-  * @ingroup boundary
+   *
+   * @ingroup boundary
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   std::vector<types::boundary_id> get_boundary_indicators() const;
 
index e90be3648e75f950971a86662132616c2fc67862..06f9263f9e8bded3541ca490877ca692281c8116 100644 (file)
@@ -1022,6 +1022,8 @@ public:
    * value numbers::internal_face_boundary_id,
    * then this object is in the
    * interior of the domain.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   types::boundary_id boundary_indicator () const;
 
@@ -1068,6 +1070,8 @@ public:
    * sense under the current circumstances.
    *
    * @ingroup boundary
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   void set_boundary_indicator (const types::boundary_id) const;
 
@@ -1088,6 +1092,8 @@ public:
    * current function.
    *
    * @ingroup boundary
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   void set_all_boundary_indicators (const types::boundary_id) const;
 
@@ -1955,6 +1961,8 @@ public:
    * value numbers::internal_face_boundary_id,
    * then this object is in the
    * interior of the domain.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   types::boundary_id boundary_indicator () const;
 
@@ -2092,6 +2100,8 @@ public:
    * sense under the current circumstances.
    *
    * @ingroup boundary
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   void
   set_boundary_indicator (const types::boundary_id);
@@ -2103,6 +2113,8 @@ public:
    * argument.
    *
    * @ingroup boundary
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   void
   set_all_boundary_indicators (const types::boundary_id);
index 99cf1511f084fd230087263dba50adf8ee9618f2..3e88b46a4eaff95d3c18c24007f301e1747194c6 100644 (file)
@@ -759,6 +759,7 @@ namespace VectorTools
    * function with remapped
    * arguments.
    *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <class DH>
   void
@@ -774,6 +775,8 @@ namespace VectorTools
    * interpolate_boundary_values()
    * function, see above, with
    * <tt>mapping=MappingQ1@<dim@>()</tt>.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <class DH>
   void
@@ -897,6 +900,8 @@ namespace VectorTools
    * with remapped arguments.
    *
    * @ingroup constraints
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <class DH>
   void
@@ -914,6 +919,8 @@ namespace VectorTools
    * <tt>mapping=MappingQ1@<dim@>()</tt>.
    *
    * @ingroup constraints
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <class DH>
   void
@@ -1168,6 +1175,8 @@ namespace VectorTools
    * the face.
    *
    * @ingroup constraints
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <int dim>
   void project_boundary_values_curl_conforming (const DoFHandler<dim> &dof_handler,
@@ -1181,6 +1190,8 @@ namespace VectorTools
    * Same as above for the hp-namespace.
    *
    * @ingroup constraints
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <int dim>
   void project_boundary_values_curl_conforming (const hp::DoFHandler<dim> &dof_handler,
@@ -1254,6 +1265,8 @@ namespace VectorTools
    * boundary.
    *
    * @ingroup constraints
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template<int dim>
   void project_boundary_values_div_conforming (const DoFHandler<dim> &dof_handler,
@@ -1267,6 +1280,8 @@ namespace VectorTools
    * Same as above for the hp-namespace.
    *
    * @ingroup constraints
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template<int dim>
   void project_boundary_values_div_conforming (const hp::DoFHandler<dim> &dof_handler,
@@ -1591,9 +1606,10 @@ namespace VectorTools
    * these points.
    *
    * @ingroup constraints
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <int dim, template <int, int> class DH, int spacedim>
-
   void
   compute_no_normal_flux_constraints (const DH<dim,spacedim>         &dof_handler,
                                       const unsigned int     first_vector_component,
@@ -1773,6 +1789,8 @@ namespace VectorTools
    *
    * See the general documentation of this
    * class for further information.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <int dim, int spacedim>
   void create_boundary_right_hand_side (const Mapping<dim,spacedim>      &mapping,
@@ -1787,6 +1805,8 @@ namespace VectorTools
    * create_boundary_right_hand_side()
    * function, see above, with
    * <tt>mapping=MappingQ1@<dim@>()</tt>.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <int dim, int spacedim>
   void create_boundary_right_hand_side (const DoFHandler<dim,spacedim>   &dof,
@@ -1798,6 +1818,8 @@ namespace VectorTools
   /**
    * Same as the set of functions above,
    * but for hp objects.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <int dim, int spacedim>
   void create_boundary_right_hand_side (const hp::MappingCollection<dim,spacedim>      &mapping,
@@ -1816,6 +1838,8 @@ namespace VectorTools
    * therefore will only work if
    * the only active fe index in
    * use is zero.
+   *
+   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
    */
   template <int dim, int spacedim>
   void create_boundary_right_hand_side (const hp::DoFHandler<dim,spacedim>   &dof,

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.