From: Jiaqi Zhang Date: Sun, 20 Jun 2021 15:49:38 +0000 (-0400) Subject: description of FEInterfaceValues X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4939d1d40ba0139bc4c01374f48ad0a3f02585ac;p=release-papers.git description of FEInterfaceValues --- diff --git a/9.3/paper.tex b/9.3/paper.tex index f01f43d..0258b3a 100644 --- a/9.3/paper.tex +++ b/9.3/paper.tex @@ -221,6 +221,7 @@ The major changes of this release are: \item Advances in the matrix-free infrastructure (see Section~\ref{subsec:mf}); \item Usage of MPI-3.0 shared-memory features to reduce memory footprint (see Section~\ref{subsec:sm}); \item Improved support for evaluation and integration at arbitrary points (see Section~\ref{subsec:fepointvalues}); + \item Simplified implementation for cell face integrals (see Section~\ref{subsec:feinterfacevalues}); \item Nine new tutorial programs and a new code gallery program (see Section~\ref{subsec:steps}). \end{itemize} % @@ -964,6 +965,16 @@ solution vector at arbitrary points (see also the \texttt{VectorTools::point\_values()} function). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Simplied implementation for cell face integrals} +\label{subsec:feinterfacevalues} +Discontinuous Galerkin (DG) methods require evaluations of averages and jumps accross cell faces, therefore we need to compute values of the shape functions and solutions from two adjacent cells. The \texttt{FEInterfaceValues} class is designed to provide an interface to directly obtain jumps and averages. When used with \texttt{MeshWorker::mesh\_loop()}, we can assemble cell face integrals in a uniform way independent of mesh types, which significantly simplifies the implementation. + +Internally, this class provides an abstraction for two \texttt{FEFaceValues} objects (or \texttt{FESubfaceValues} when using adaptive refinement). The class introduces new interface degrees of freedom indices that are the union of the degrees of freedom indices of the two \texttt{FEFaceValues} objects. The interface degrees of freedom indices can be converted to the corresponding local degrees of freedom indices of the two cells using a helper function. Furthermore, this class supports vector-valued problems in a similar way as \texttt{FEFaceValues} does. We can easily obtain the corresponding scalar or vector values by providing an \texttt{FEValuesExtractors} object. Overall, this class is intended to be a low level replacement for \texttt{MeshWorker} and \texttt{LocalIntegrators}, and a higher level abstraction compared to assembling face terms manually. + +Examples of \texttt{FEInterfaceValues} for scalar problems can be found in \texttt{step-12}, \texttt{step-47}, \texttt{step-50}, and the new tutorial \texttt{step-74}. While examples of vector-valued problems will be added in the future. + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{The source-based toolchain installer \candi{}} \label{subsec:candi} @@ -1091,10 +1102,8 @@ framework in parallel. The PDE considered is the Gelfand problem $-\triangle u = \item \texttt{step-74} implements the symmetric interior penalty Galerkin (SIPG) method for Poisson's equation using the \texttt{FEInterfaceValues} class -in combination with \texttt{MeshWorker::mesh\_loop()}. With \texttt{FEInterfaceValues}, -we can directly obtain the jump and the average of shape functions and of the solution -across cell faces, which simplifies the assembling of face terms in DG methods especially on -adaptive meshes. +in combination with \texttt{MeshWorker::mesh\_loop()}. This tutorial demonstrates a +simple and mesh-independent way to assemble cell face integrals. \item \texttt{step-75} demonstrates a state-of-the-art way of solving a simple