From: bangerth Date: Tue, 29 Jan 2013 16:22:49 +0000 (+0000) Subject: Document boundary indicators in the glossary and link to it. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=209969ca3379a4ce8c567fc8b8f1654d6f2da032;p=dealii-svn.git Document boundary indicators in the glossary and link to it. git-svn-id: https://svn.dealii.org/trunk@28191 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/doc/doxygen/headers/boundary.h b/deal.II/doc/doxygen/headers/boundary.h index 925aa29ccd..7ffad2ac01 100644 --- a/deal.II/doc/doxygen/headers/boundary.h +++ b/deal.II/doc/doxygen/headers/boundary.h @@ -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 */ diff --git a/deal.II/doc/doxygen/headers/glossary.h b/deal.II/doc/doxygen/headers/glossary.h index 5ed5ad2eb3..2c100e538b 100644 --- a/deal.II/doc/doxygen/headers/glossary.h +++ b/deal.II/doc/doxygen/headers/glossary.h @@ -271,6 +271,7 @@ * @ref GlossBlock "block entry of this glossary". * * + * *
@anchor GlossBoundaryForm %Boundary form
* *
For a dim-dimensional triangulation in dim-dimensional space, @@ -298,6 +299,74 @@ * cell.
* * + *
@anchor GlossBoundaryIndicator %Boundary indicator
+ * + *
+ * 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::active_cell_iterator + * cell = triangulation.begin_active(); + * cell != triangulation.end(); + * ++cell) + * for (unsigned int f=0; f::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. + *
+ * + * @see @ref boundary "The module on boundaries" + * + * *
@anchor GlossComponent Component
* *
When considering systems of equations in which the solution is not diff --git a/deal.II/include/deal.II/base/types.h b/deal.II/include/deal.II/base/types.h index a8cfcc6776..2a37e62c29 100644 --- a/deal.II/include/deal.II/base/types.h +++ b/deal.II/include/deal.II/base/types.h @@ -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(-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(-1); diff --git a/deal.II/include/deal.II/dofs/dof_tools.h b/deal.II/include/deal.II/dofs/dof_tools.h index fbdb8625ba..858b6e8949 100644 --- a/deal.II/include/deal.II/dofs/dof_tools.h +++ b/deal.II/include/deal.II/dofs/dof_tools.h @@ -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 @@ -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 @@ -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 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 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 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 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 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 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 class DH> void diff --git a/deal.II/include/deal.II/grid/tria.h b/deal.II/include/deal.II/grid/tria.h index dbae84b6a0..22afa6548c 100644 --- a/deal.II/include/deal.II/grid/tria.h +++ b/deal.II/include/deal.II/grid/tria.h @@ -806,6 +806,7 @@ namespace internal * indicator of a face can be changed using a call of the kind * cell-@>face(1)-@>set_boundary_indicator(42);. * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" * * *

History of a triangulation

@@ -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 &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 &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 get_boundary_indicators() const; diff --git a/deal.II/include/deal.II/grid/tria_accessor.h b/deal.II/include/deal.II/grid/tria_accessor.h index e90be3648e..06f9263f9e 100644 --- a/deal.II/include/deal.II/grid/tria_accessor.h +++ b/deal.II/include/deal.II/grid/tria_accessor.h @@ -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); diff --git a/deal.II/include/deal.II/numerics/vector_tools.h b/deal.II/include/deal.II/numerics/vector_tools.h index 99cf1511f0..3e88b46a4e 100644 --- a/deal.II/include/deal.II/numerics/vector_tools.h +++ b/deal.II/include/deal.II/numerics/vector_tools.h @@ -759,6 +759,7 @@ namespace VectorTools * function with remapped * arguments. * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" */ template void @@ -774,6 +775,8 @@ namespace VectorTools * interpolate_boundary_values() * function, see above, with * mapping=MappingQ1@(). + * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" */ template void @@ -897,6 +900,8 @@ namespace VectorTools * with remapped arguments. * * @ingroup constraints + * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" */ template void @@ -914,6 +919,8 @@ namespace VectorTools * mapping=MappingQ1@(). * * @ingroup constraints + * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" */ template void @@ -1168,6 +1175,8 @@ namespace VectorTools * the face. * * @ingroup constraints + * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" */ template void project_boundary_values_curl_conforming (const DoFHandler &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 void project_boundary_values_curl_conforming (const hp::DoFHandler &dof_handler, @@ -1254,6 +1265,8 @@ namespace VectorTools * boundary. * * @ingroup constraints + * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" */ template void project_boundary_values_div_conforming (const DoFHandler &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 void project_boundary_values_div_conforming (const hp::DoFHandler &dof_handler, @@ -1591,9 +1606,10 @@ namespace VectorTools * these points. * * @ingroup constraints + * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" */ template class DH, int spacedim> - void compute_no_normal_flux_constraints (const DH &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 void create_boundary_right_hand_side (const Mapping &mapping, @@ -1787,6 +1805,8 @@ namespace VectorTools * create_boundary_right_hand_side() * function, see above, with * mapping=MappingQ1@(). + * + * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators" */ template void create_boundary_right_hand_side (const DoFHandler &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 void create_boundary_right_hand_side (const hp::MappingCollection &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 void create_boundary_right_hand_side (const hp::DoFHandler &dof,