From 8648a8f126e1bfcbf7185cc1bf22185ee8be2449 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Sat, 21 Apr 2018 13:23:52 -0600 Subject: [PATCH] Reshuffle some of the sections. --- 9.0/paper.tex | 225 ++++++++++++++++++++++++++++---------------------- 1 file changed, 126 insertions(+), 99 deletions(-) diff --git a/9.0/paper.tex b/9.0/paper.tex index efcc4ce..a37aaaa 100644 --- a/9.0/paper.tex +++ b/9.0/paper.tex @@ -198,65 +198,6 @@ The major changes of this release are: where curved descriptions are only applied to the boundary rather than the whole volume. -\item C++11 is now both required and used. - -\item \dealii{} has made extensive use of both the Clang-Tidy \cite{clang-tidy} - and Coverity Scan \cite{coverity} static analysis tools for detecting bugs - and other issues in the code. In total around, 260 issues were detected and - fixed using the latter tool. - %% > Is there somewhere we can cite for either of these tools? It would - %% > be nice to recognize the department of homeland security for offering - %% The contract with homeland security was completed in 2009. - -\item - \texttt{LinearOperator}, a flexible template class that implements the action of a - linear operator (see \cite{MaierBardelloniHeltai-2016-b}), now supports - computations with Trilinos, Schur complements, and linear constraints. This - class is, as of this release, the official replacement for about half a dozen - similar (but less general) classes, such as \texttt{FilteredMatrix}, - \texttt{IterativeInverse}, and \texttt{PointerMatrix}. - -\item - Significant extension of matrix-free capabilities, including support for face - integrals in discontinuous Galerkin schemes, a new Hermite-like polynomial - basis adapted to face integrals that involve derivatives of shape functions, - and several performance enhancements. - -\item - Support for GPU - \marginpar{paragraph for CUDA missing} - -\item - In this version we add template wrappers for ScaLAPACK -- parallel dense - linear algebra library with block-cyclic matrix distribution over 2D - process grid. The functionality and interface is similar to the LAPACK - wrappers, matrix-matrix multiplication, Cholesky and LU factorizations, - eigensolvers, SVD, pseudoinverse, save/load in HDF5 format and other - functionality is implemented. A user can combine the new linear algebra - with other MPI-parallel algorithms in \dealii{} without the need to worry - about MPI communicator being divisible exactly into 2D process grid. The - processes which are not part of the grid are labeled inactive and - ScaLAPACK routines will not be called on them. - % - Additionally, we improved support of LAPACK. We added methods to perform - rank-1 update/downdate, calculate Cholesky factorization, trace and - determinant, as well as estimate the reciprocal condition number. We also - now support configuration with 64-bit BLAS. - -\item - A dedicated sundials module has been created to provide support for the - SUNDIALS library. SUNDIALS is a SUite of Nonlinear and - DIfferential/ALgebraic equations Solvers. ARKode, IDA, and KINSOL are - supported. ARKode is a solver library that provides adaptive-step time - integration. IDA is a package for the solution of differential-algebraic - equations systems in the form $F(t,y,y')=0$. KINSOL is solver for nonlinear - algebraic systems. - -\item - A dedicated optimization/rol module has been created to provide support for - the Rapid Optimization Library (ROL). ROL is a package for large-scale - optimization. - \item A dedicated particles module has been created to provide support for the storage of particles and their properties. This module provides a base class @@ -274,34 +215,54 @@ The major changes of this release are: unified interface. In practice, this support means that Adol-c and Sacado data types can be used in the \texttt{FEValues} and \texttt{FEValuesViews} to represent degree-of-freedom values. + +\item Interfaces to more external libraries and programs. + +\item C++11 is now both required and used. \item - Support for complex-valued vectors is now at the same level as real-valued - vectors. + Support for GPU computations. + +\item \dealii{} has made extensive use of both the Clang-Tidy \cite{clang-tidy} + and Coverity Scan \cite{coverity} static analysis tools for detecting bugs + and other issues in the code. For example, around 260 issues were detected and + fixed using the latter tool. + %% > Is there somewhere we can cite for either of these tools? It would + %% > be nice to recognize the department of homeland security for offering + %% The contract with homeland security was completed in 2009. \item - Support for the nanoflann library. nanoflann is a library for building - KD-trees of datasets and for the fast querying of closest neighbors in - KD-trees. nanoflann is used to speed up the search of the p nearest neighbors - of a given point, or searching the points that fall within a radius of a - target point. + \texttt{LinearOperator}, a flexible template class that implements the action of a + linear operator (see \cite{MaierBardelloniHeltai-2016-b}), now supports + computations with Trilinos, Schur complements, and linear constraints. This + class is, as of this release, the official replacement for about half a dozen + similar (but less general) classes, such as \texttt{FilteredMatrix}, + \texttt{IterativeInverse}, and \texttt{PointerMatrix}. \item - Support for the Open Asset Import Library (Assimp). Assimp can be used to read - about 40 different 3D graphics formats. A subset of these formats can be used - to generate two-dimensional meshes possibly embedded in a three-dimensional - space. + Significant extension of matrix-free capabilities, including support for face + integrals in discontinuous Galerkin schemes, a new Hermite-like polynomial + basis adapted to face integrals that involve derivatives of shape functions, + and several performance enhancements. -\item - Initial support for Gmsh. - \emph{[--- Do we actually provide any functionality with the GMSH - executable yet? ---]} - \marginpar{TODO} +\item New non-standard quadrature rules: +A number of non-standard, special-purpose quadrature rules have been +implemented. Among these are ones for +(i) truncating standard formulas to simplical domains (\texttt{Qsimplex}); +(ii) singular transformations of the unit cell to the unit simplex + (\texttt{QDuffy}); +(iii) composition of simplical quadrature rules to a combined rule on the + unit cell (\texttt{QSplit}); +and (iv) transformation of the unit square to polar coordinates + (\texttt{QTrianglePolar}). +These quadrature rules greatly help when integrating singular +functions or on singular domains. They +are mainly used in Boundary Element Methods. + \item - Initial support for generalized support points: Internal interpolation - rewritten (support for $H(\text{curl})$ and $H(\text{div})$ conforming - elements). + Support for complex-valued vectors at the same level as real-valued + vectors. \item New python tutorial program tutorial-1; as well as updates to step-37. In addition, the separate code @@ -330,8 +291,88 @@ in the file that lists all changes for this release}, see \cite{changes90}. the release announcement.) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsection{Feature 1} +\subsection{Manifolds} + +... + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Support for particle-in-cell methods} + +... + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Dedicated support for automatic and symbolic differentiation} + +... + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{New interfaces to external libraries and programs} + +\dealii{} has always tried to leverage high-quality implementations of +algorithms available through other open source software, rather than +re-implementing their functionality. (A list of interfaces to other +packages is given in Section~\ref{sec:cite}.) As part of the current +release, we have written several new interfaces as discussed in the following. + +\marginpar{Add references to all of these libraries.} + +\paragraph*{ScaLAPACK, a parallel dense linear algebra library.} + ScaLAPACK provides block-cyclic matrix distribution over 2D process + grid. The functionality and interface of our wrappers is similar to + the LAPACK wrappers for serial dense linear algebra, namely + matrix-matrix multiplication, Cholesky and LU factorizations, + eigensolvers, SVD, pseudoinverses, and save/load operations using + the HDF5 format. All of this functionality is available even in + cases where the number of MPI processes does not exactly divide the + number of tiles stored in the block-cyclic data distribution. + + As part of this effort, we have also improved LAPACK support: there + are now methods to perform rank-1 updates/downdates, Cholesky + factorizations, to compute the trace and determinant, as well as + estimate the reciprocal condition number. We also now support + configuration with 64-bit BLAS. + +\paragraph*{SUNDIALS, a SUite of Nonlinear and DIfferential/ALgebraic + Equation Solvers.} + Solving nonlinear algebraic and differential equations is both a + common task and one that often requires sophisticated globalization + algorithms for efficiency and reliability. SUNDIALS provides these + in a widely used format, both sequentially and in parallel. + + \dealii{} now has interfaces to SUNDIALS's ARKode, IDA, and KINSOL sub-packages. + ARKode is a solver library that provides adaptive-step time + integration. IDA is a package for the solution of differential-algebraic + equations systems in the form $F(t,y,y')=0$. KINSOL is solver for nonlinear + algebraic systems. +\paragraph*{ROL, a Rapid Optimization Library.} +ROL is a package for large-scale optimization. +\marginpar{Can we add a sentence or two about the ROL interface here?} + +\paragraph*{nanoflann, a library for building and querying + $k$-d trees of datasets.} Operations such as finding the vertex +or cell closest +to a given evaluation point occur frequently in many applications that +use unstructured meshes. While the naive algorithm is linear in the +number of vertices or cells, many such operations can be made +significantly faster by building a $k$-d tree data structure that +recursively subdivides a $k$ dimensional space. The nanoflann library +provides such a data structure and allows querying it, either for +closest points (e.g., when finding the closest vertex) or for +searching the points that fall within a radius of a target point. This +functionality is now available via \dealii{} interfaces. + +\paragraph*{Assimp, the Open Asset Import Library.} + Assimp can be used to read about 40 different 3D graphics formats. A + subset of these formats can be now be read from within \dealii{} to + generate two-dimensional meshes, possibly embedded in a + three-dimensional space. + +\paragraph*{Gmsh.} + \marginpar{Do we actually provide any functionality with the GMSH + executable yet? If so, complete this part} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Use of C++11} \dealii{} first offered support for a subset of C++11 features in @@ -357,6 +398,12 @@ now return either a \texttt{std::shared\_ptr} or a \texttt{std::unique\_ptr}, thereby clarifying object ownership responsibilities and avoiding memory leaks. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Support for GPU computations} + +\marginpar{Bruno?} +... + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{New and updated tutorial programs} @@ -398,26 +445,6 @@ the following topics: \item Goal-oriented elastoplasticity. \end{itemize} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsection{New non-standard quadrature rules} - -A number of non-standard, special-purpose quadrature rules have been -implemented. Among those are quadrature formulas that support -\begin{itemize} - \item - truncating standard formulas to simplical domains (\texttt{Qsimplex}), - \item - singular transformations of the unit cell to the unit simplex - (\texttt{QDuffy}), - \item - composition of simplical quadrature rules to a combined rule on the - unit cell (\texttt{QSplit}), - \item - transformation of the unit square to polar coordinates - (\texttt{QTrianglePolar}). -\end{itemize} -These new quadrature rule greatly help to integrate singular domains. They -are mainly used in Boundary Element Methods. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Incompatible changes} -- 2.39.5