From d66ee784fb2565f7abf775671a9d11ab5651cff2 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Thu, 19 Sep 2019 08:08:27 -0600 Subject: [PATCH] Better document parallel::TriangulationBase. --- include/deal.II/distributed/shared_tria.h | 3 ++- include/deal.II/distributed/tria_base.h | 31 ++++++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/include/deal.II/distributed/shared_tria.h b/include/deal.II/distributed/shared_tria.h index 364dcf1286..b47dc03c83 100644 --- a/include/deal.II/distributed/shared_tria.h +++ b/include/deal.II/distributed/shared_tria.h @@ -56,7 +56,8 @@ namespace parallel * "owns" a subset of cells. The use of this class is demonstrated in * step-18. * - * Different from the parallel::distributed::Triangulation, this implies + * Different from the parallel::distributed::Triangulation and + * parallel::fullydistributed::Triangulation classes, this implies * that the entire mesh is stored on each processor. While this is clearly * a memory bottleneck that limits the use of this class to a few dozen * or hundreds of MPI processes, the partitioning of the mesh can be used diff --git a/include/deal.II/distributed/tria_base.h b/include/deal.II/distributed/tria_base.h index 53749beb99..c7dad665cd 100644 --- a/include/deal.II/distributed/tria_base.h +++ b/include/deal.II/distributed/tria_base.h @@ -40,8 +40,37 @@ namespace parallel { /** * This class describes the interface for all triangulation classes that - * work in parallel, namely parallel::distributed::Triangulation and + * work in parallel, namely parallel::distributed::Triangulation, + * parallel::fullydistributed::Triangulation, and * parallel::shared::Triangulation. + * + * It is, consequently, a class that can be used to test whether a + * pointer of reference to a triangulation object refers to a + * sequential triangulation, or whether the triangulation is in fact + * parallel. In other words, one could write a function like this: + * @code + * template + * bool is_parallel (const dealii::Triangulation &tria) + * { + * if (dynamic_cast*> + * (&tria) + * != nullptr) + * return true; + * else + * return false; + * } + * @endcode + * + * All parallel triangulations share certain traits, such as the fact that + * they communicate via @ref GlossMPICommunicator "MPI communicators" or + * that they have + * @ref GlossLocallyOwnedCell "locally owned", + * @ref GlossGhostCell "ghost", and possibly + * @ref GlossArtificialCell "artificial cells". This class provides + * a number of member functions that allows querying some information + * about the triangulation that is independent of how exactly a + * parallel triangulation is implemented (i.e., which of the various + * classes derived from the current one it actually is). */ template class TriangulationBase : public dealii::Triangulation -- 2.39.5