From: Denis Davydov Date: Sun, 8 Apr 2018 05:13:55 +0000 (+0200) Subject: Merge pull request #10 from drwells/fill-LinearOperator-paragraph X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75ca5044435e0b264a730fdd4a56e76cb9cae2b0;p=release-papers.git Merge pull request #10 from drwells/fill-LinearOperator-paragraph Fill out the LinearOperator paragraph. --- 75ca5044435e0b264a730fdd4a56e76cb9cae2b0 diff --cc 9.0/paper.tex index bbfe6f5,2904349..f124220 --- a/9.0/paper.tex +++ b/9.0/paper.tex @@@ -155,30 -154,20 +155,34 @@@ The major changes of this release are the whole volume. \item - C++11 is now required and used in many places. For performance reason, - move semantics is used when possible and in many places, \texttt{emplace\_back} - replaces \texttt{push\_back()}. C-style raw pointers have been replaced by - \texttt{shared\_ptr} and \texttt{unique\_ptr} to avoid the risk of memory leak. - Private constructors have been removed and instead were delete. clang-tidy is - now being used to ensure the quality of the code. + \dealii{} first offered support for C++11 features in version 6.2, which was + published in 2009: This release is the first to \emph{require} a compiler + supporting C++11. \dealii{} now uses language improvements such as using + \texttt{emplace\_back()} instead of \texttt{push\_back()}, moving objects + instead of copying them, using \texttt{nullptr} instead of \texttt{NULL}, and + marking unimplemented constructors with \texttt{=delete;} instead of making + them \texttt{private}. These changes include some minor incompatibilities: all + \texttt{clone} functions (such as \texttt{FiniteElement::clone} and + \texttt{Mapping::clone}) now return \texttt{std::unique\_ptr}s instead of + C-style raw pointers. Indeed, nearly every interface that returns a pointer + now returns either a \texttt{std::shared\_ptr} or \texttt{std::unique\_ptr}, + which clarifies object ownership responsibilities and avoids memory leaks. + +\item \dealii{} has made extensive use of both the clang-tidy and coverity + static analysis tools for detecting bugs and other issues in the code. + %% TODO is there somewhere we can cite for either of these tools? It would + %% be nice to recognize the department of homeland security for offering + %% coverity. + %% TODO at the time of writing this coverity is down; get an issue count + %% when it is back online. \item - Improved support for LinearOperator (Trilinos payload, Schur complement, - iterative inverse), removal of old wrapper classes + \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