%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\subsection{Updates to multigrid and matrix-free algorithms}\label{sec:mf}
+\subsection{Updates of multigrid and matrix-free algorithms}\label{sec:mf}
-%\todo[inline]{Martin/Peter: The list in the introduction also mentions the two-level
-% operators. Is this the right place to also discuss these?}
-
-We made different updates to the matrix-free infrastructure in \dealii. These include:
+We made different updates of the matrix-free infrastructure in \dealii. These include:
\begin{itemize}
\item Our own implementation of \texttt{std::simd}, called
\texttt{VectorizedArray}, now also supports Arm Neon. Arm Neon is an
architecture extension of the ARMv7, ARMv8 and ARMv9 architecture families,
- used e.g.~for the Arm Cortex-A and Arm Cortex-R series of processors or in
+ used, e.g., for the Arm Cortex-A and Arm Cortex-R series of processors or in
the Apple 64-bit silicon series (A7--A18, M1--M4 as of 2024).
With these instructions, 2 doubles or 4 floats can be processed in one
go. Since the matrix-free infrastructure works directly with the \texttt{VectorizedArray}
abstraction as data structure, it automatically benefits from this new implementation.
\item The application of the Piola transformation for values and gradients of
- $H$(div)-conforming Raviart--Thomas elements on non-Cartesian elements has
+ $H$(div)-conforming Raviart--Thomas elements on non-Cartesian cells has
been rewritten for better performance. Together with additional changes in
- the sum-factorization algorithms that are now more similar to the kernels
+ the sum-factorization algorithms, which became more similar to the kernels
described in~\cite{KronbichlerKormann2019}, the matrix-free operator
evaluation is now three to five times faster in these cases.
-\item Furthermore, improved the internal data structures of the tensor-product
+\item Furthermore, we improved the internal data structures of the tensor-product
evaluators as well as the evaluators for simplex elements. This speeds up
- the operator-evaluation in several scenarios, especially for simplices
+ the operator evaluation in several scenarios, especially for simplices
(around two times higher throughput for operator evaluation) and
multi-component systems.
\end{itemize}
%\todo[inline]{All: If you contributed to this functionality, please
% help flesh out this section.}
-For the non-matching infrastructure in \dealii, the following improvements were made:
+In the non-matching infrastructure of \dealii, the following improvements were made:
\begin{itemize}
\item The performance of the non-nested multigrid infrastructure
(\texttt{MGTwoLevelTransferNon\-Nested}) has been improved significantly by avoiding
redundant copy operations. Furthermore, support for simplex-shaped cells and
multiple-component elements has been added.
-\item Several minor performance improvements for \dealii's evaluator class on
+\item Several minor performance improvements in \dealii's evaluator class on
sets of unstructured points, \texttt{FEPointEvaluation}, have been
made. This is particularly useful for evaluating several quantities on the
same set of points, which is enabled by \texttt{NonMatching::MappingInfo}.
\item The new class \texttt{FERemoteEvaluation} has been added.
This is a class to access data
in a distributed matrix-free loop for non-matching discretizations.
-Interfaces are named in analogy to \texttt{FEEvaluation}, in order to seamlessly switch
+Interfaces are named in analogy to \texttt{FEEvaluation}, in order to seamlessly switch the
local evaluator functionality at quadrature points of a computation. The key component is the
-underlying MPI communication infrastructure, which is done via \texttt{RemotePointEvaluation}.
+underlying MPI communication infrastructure, which is performed via \texttt{RemotePointEvaluation}.
Tutorial \texttt{step-89} has been added to present its usage
-in the context of an application to acoustic conservation equations~\cite{heinz2023high}.
+in the context of the application to acoustic conservation equations~\cite{heinz2023high}.
\item FECouplingValues
\todo[inline]{Luca: Please complete}
\texttt{step-87} was contributed by Magdalena Schreter-Fleischhacker
(Technical University of Munich) and Peter Munch
(University of Augsburg/Uppsala University). It
- presents the advanced point-evaluation functionalities of \dealii
- that are useful for evaluating finite element solutions at
- arbitrary points on finite element meshes that can be distributed among processes.
+ presents the advanced point-evaluation functionalities of \dealii,
+ which are useful for evaluating finite element solutions at
+ arbitrary points on meshes that can be distributed among processes.
\item
\texttt{step-89} was contributed by Johannes Heinz (TU Wien),
Maximilian Bergbauer (Technical University of Munich),
Marco Feder (SISSA), and Peter Munch (University of Augsburg/Uppsala University).
- It shows one way how to apply non-matching and/or Chimera methods
+ It shows a way how to apply non-matching and/or Chimera methods
within matrix-free loops in \dealii.
\item
\texttt{step-90} was contributed by Vladimir Yushutin and Timo Heister (Clemson University).
Furthermore, we added an example to the \texttt{libCEED}
library~\cite{brown2021libceed}: \url{https://github.com/CEED/libCEED/tree/main/examples/deal.II}. \texttt{libCEED} is a library
-that provides matrix-free evaluation routines that work on different hardware. The
-example show how to interface the \dealii data structures to the \texttt{libCEED} ones.
-The example solves the BP1-BP6 benchmarks (scalar/vector Laplace/mass matrix with
+that provides matrix-free evaluation routines for different hardware. The
+example shows how to interface the \dealii data structures with the \texttt{libCEED} ones
+and solves the BP1-BP6 benchmarks (scalar/vector Laplace/mass matrix with
regular integration and over-integration).