updates to step-37. In addition, the separate code
gallery of \dealii has gained a number of new entries.
-\item Improved support for user parameters: a new \texttt{ParameterAcceptor}
+\item Improved support for user-defined run-time parameters: a new \texttt{ParameterAcceptor}
class has been added to the library. The class is intended to be used as a
base for any class that wants to handle parameters using the
\texttt{ParameterHandler} class. If you derive all your classes from
\marginpar{All: please edit as appropriate}
-Every function in the GridGenerator namespace now attaches a default manifold to
-the curved parts of the domain, and sets reasonable defaults for manifold
-indicators both in the domain and on the boundary, where appropriate. Manifold
-classes are no longer sensible to settings made on boundary indicators, and are
-only affected by manifold indicators, decoupling completely the concept of
-boundary indicators and manifold indicator, leaving the former for boundary
-conditions, and the latter for the geometrical description of the domain.
-
-All functions that allowed to query for \texttt{Boundary} objects (deprecated
+\dealii{} has had the ability to attach \textit{manifold descriptions}
+to all parts of a geometry for several releases already. These
+descriptions are used when considering where to place new vertices
+upon mesh refinement, in determining the mapping from reference cell
+to real cell, and in a number of other contexts. However, for historical
+reasons, manifold descripts have used some of the same code paths also
+used for boundary indicators typically used to identify which parts of
+the boundary correspond to what boundary conditions.
+
+This connection has been severed in the current release: Boundary
+indicators and manifold descriptions are now entirely separated. Furthermore,
+all functions that allowed to query for old-style \texttt{Boundary} objects (deprecated
since version 8.5 of the \dealii library) have been removed, and have been
replaced by the equivalent methods that query \texttt{Manifold} classes.
-The manifold smoothing algorithms applied in the Triangulation class and
-MappingQGeneric have been changed from the old Laplace-style smoothing to a
+There are also numerous improvements to the available manifold descriptions.
+First, the manifold smoothing algorithms applied in the \texttt{Triangulation} class and
+\texttt{MappingQGeneric} have been changed from the old Laplace-style smoothing to a
transfinite interpolation that linearly blends between the descriptions on the
faces around a cell. The old transformation introduced boundary layers inside
cells that prevented convergence rates from exceeding \(3.5\) in the global
-\(L^2\) errors on typical settings. This change also considerably improves mesh
-quality on settings where curved descriptions are only applied to the boundary
+\(L^2\) errors for typical settings. This change also considerably improves mesh
+quality in situations where curved descriptions are only applied to the boundary
rather than the whole volume.
-A new manifold class \texttt{TransfiniteInterpolationManifold} implementing an
-interpolation from a curved boundary description to the interior has been added.
-This class enables high-order convergence rates of more than three in the power
-of the mesh size for situations where a curved manifold can only be prescribed
+\marginpar{This paragraph seems to duplicate the previous. Can we
+ merge the information?}
+Secondly, a new manifold class
+\texttt{TransfiniteInterpolationManifold} has been added that implements an
+interpolation from a curved boundary description to the interior.
+This class enables high-order convergence rates of better than ${\cal O}(h^3)$
+for situations where a curved manifold can only be prescribed
to the boundary but not in a whole volume.
+Finally,
+every function in the \texttt{GridGenerator} namespace now attaches a default manifold to
+the curved parts of the domain described by the generated mesh, and sets reasonable defaults for manifold
+indicators both in the domain and on the boundary.
+
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Support for particle-in-cell methods}
deal.II.
This has changed with release 9.0 where support is given for differentiation
using a selection of ``white-listed'' libraries (namely ADOL-C \citep{Griewank1996a}
-and Sacado) and a subset of their supported number types. Currently, we offer support for
+and Sacado) and a subset of their supported number types. Currently,
+we offer support for the following cases:
\begin{itemize}
\item ADOL-C taped (n-differentiable),
\item ADOL-C tapeless (once differentiable),
\item Sacado dynamic forward (once differentiable),
\item Sacado reverse (once differentiable),
\item Sacado nested dynamic forward (twice differentiable), and
-\item Sacado nested reverse and dynamic forward (twice differentiable)
+\item Sacado nested reverse and dynamic forward (twice differentiable).
\end{itemize}
-numbers. In practice, this support means that these ADOL-C and Sacado data
+In practice, this support means that these ADOL-C and Sacado data
types can be used in the \texttt{FEValues}, \texttt{FEValuesViews},
\texttt{Tensor}, \texttt{SymmetricTensor},
and related classes that are generally used to assemble linear systems
The matrix-free infrastructure in \dealii{} was significantly overhauled for
the current release. The major new contribution is the support of face
integrals through a new class \texttt{FEFaceEvaluation}. The new class has a
-similar interface as the previous \texttt{FEEvaluation}, and applies SIMD
+similar interface as the existing \texttt{FEEvaluation} class, and applies SIMD
vectorization over several faces in analogy to the intra-cell vectorization in
FEEvaluation. Discontinuous Galerkin operators are implemented defining two
face functions, one for interior and one for boundary faces, in addition to
To give an example of the algorithmic improvements, the computation of the
values and gradients on all quadrature points for cell integrals has been
-significantly improved, giving around 10--20\% better performance for the case
+significantly improved, yielding 10--20\% better performance for cases where
the kernels are compute bound. For the example of the reference cell gradient
of a solution field $\mathbf u$ in three space dimensions, the new release
applies the following change:
\end{equation*}
The matrices $S_i$ contain the values of the one-dimensional shape functions
in one-dimensional quadrature points and $D_i$ their derivatives. When applied
-with the usual sum factorization implementation described e.g.~in
+with the usual sum factorization implementation described, for
+example, in
\cite{KronbichlerKormann2012}, the old kernels amounted to 9 partial
-summations---or rather 8 in the previous implementation of \dealii{} because
+summations -- or rather 8 in the previous implementation of \dealii{} because
the application of $S_1$ for the $y$ and $z$ components of the gradient can be
merged. The new code performs a basis transformation to a related basis with
derivative matrix $D_i = D_i^{\mathrm{co}} S_i$, which is the basis of
This release does not contain any new tutorial programs, though
several have been updated extensively for the changes to the manifold
-handling as well as to adjust for current functionality
+handling as well as to adjust for current functionality and coding styles
compared to what that was available when the programs were first written.
\dealii has a separate ``code gallery'' that