From b49f43f129e677a0712d2d26b06ba3b3f21cc2af Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Sun, 28 Feb 2016 17:04:33 +0100 Subject: [PATCH] add a section on shared tria --- deal84.tex | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/deal84.tex b/deal84.tex index 19e991f..e820566 100644 --- a/deal84.tex +++ b/deal84.tex @@ -31,8 +31,9 @@ TX 77843, USA, {\texttt{bangerth@math.tamu.edu}}} \author[2]{Denis Davydov} -\affil[2]{???, - {\texttt{???}}} +\affil[2]{Chair of Applied Mechanics, University of + Erlangen-Nuremberg, Egerlandstr. 5, 91058 Erlangen, Germany, + {\texttt{denis.davydov@fau.de}}} \author[3]{Timo Heister} \affil[3]{Mathematical Sciences, O-110 Martin Hall. @@ -199,8 +200,36 @@ components. \subsection{A new ``shared'' triangulation type for parallel computations} -\marginpar{Denis -- can you write this section?} -... +Previously, in order to use \texttt{Triangulation} class with MPI one had to manually +partition triangulation (e.g. via \texttt{METIS}), calculate and store index sets of locally owned and locally relevant degrees-of-freedom (DoF), querry \texttt{subdomain\_id} of a cell during assembly etc. +In order to facilitate the usage of \texttt{Triangulation} class with MPI +and to make its behaviour in this context consistent with \texttt{parallel::distributed::Triangulation}, a new class +\texttt{parallel::shared::Triangulation} was introduced. +It extends \texttt{Triangulation} class to automatically partition triangulation when run with MPI. +Identical functionality between \texttt{shared} and \texttt{distributed} triangulation +(e.g. locally owned and relevant DoFs, mpi communicator, etc) +is grouped in the parent class \texttt{parallel::Triangulation}. +The main difference between the two parallel triangulations is that in the case of +\texttt{parallel::shared::Triangulation} each process stores all cells of the triangulation. +Consequently, by default there are no artificial cells. +That is, cells which are attributed to the current processor are marked as locally owned +(\texttt{cell->is\_locally\_owned()} returns \texttt{true}) +and the rest are ghost cells. +This behaviour can be altered via an additional boolean flag provided to the constructor of the class. +In this case, a set of ghost cells will consist of a halo layer of cells around locally owned cells. +Cells which are neither ghost nor locally owned are marked as artificial. +This is consistent with the behaviour of \texttt{parallel::distributed::Triangulation}, +although in the latter case the size of the set of artificial cells will be much smaller. +The introduction of \texttt{parallel::shared::Triangulation} class together with the +optional artificial cells and parent \texttt{parallel::Triangulation} class +facilitates writing +algorithms that are indifferent to the way triangulation is stored in the MPI context. +For example, \texttt{DoFTools::locally\_relevant\_dofs()} will now return a subset of +all DoFs for both triangulations, granted that artificial cells are enabled in +\texttt{parallel::shared::Triangulation}. +Assmebly routines can now use \texttt{cell->is\_locally\_owned()} +for both triangulations. +Currently, only standard (non hp) \texttt{DoFHandler} is supported. \subsection{Second and third derivatives of finite element fields are now computed exactly} -- 2.39.5