From: Timo Heister Date: Thu, 2 Mar 2017 02:30:52 +0000 (-0500) Subject: initial paper X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=541560c8f83ab31c28282aca089ce186cbcde629;p=release-papers.git initial paper --- diff --git a/8.5/deal85.tex b/8.5/deal85.tex new file mode 100644 index 0000000..ae18711 --- /dev/null +++ b/8.5/deal85.tex @@ -0,0 +1,534 @@ +\documentclass{ansarticle-preprint} +%\usepackage{ucs} +\usepackage[utf8]{inputenc} +\usepackage{amsmath} +%\usepackage{cite} +\usepackage{anslistings} + +\usepackage{fontenc} +\usepackage{graphicx} + +\hypersetup{ + pdfauthor={Wolfgang Bangerth, Timo Heister, Luca Heltai, Guido Kanschat, + Martin Kronbichler, Matthias Maier, Bruno Turcksin + %, Toby D. Young + }, + pdftitle={The deal.II Library, Version 8.4, 2016}, +} + +\newcommand{\specialword}[1]{\texttt{#1}} +\newcommand{\dealii}{{\specialword{deal.II}}} +\newcommand{\pfrst}{{\specialword{p4est}}} +\newcommand{\trilinos}{{\specialword{Trilinos}}} +\newcommand{\aspect}{\specialword{Aspect}} +\newcommand{\petsc}{\specialword{PETSc}} +\newcommand{\cmake}{{\specialword{CMake}}} +\newcommand{\autoconf}{{\specialword{autoconf}}} + +\title{The \dealii{} Library, Version 8.4} +\author[1]{Wolfgang Bangerth} +\affil[1]{Department of Mathematics, Texas A\&M University, College Station, + TX 77843, USA, + {\texttt{bangerth@math.tamu.edu}}} +\author[2]{Denis Davydov} +\affil[2]{Chair of Applied Mechanics, University of + Erlangen-Nuremberg, Egerlandstr. 5, 91058 Erlangen, Germany, + {\texttt{denis.davydov@fau.de}}} +\author[3]{Timo Heister} +\affil[3]{Mathematical Sciences, + O-110 Martin Hall. + Clemson University. + Clemson, SC 29634, USA, + {\texttt{heister@clemson.edu}}} +\author[4]{Luca Heltai} +\affil[4]{SISSA - International School for Advanced Studies, Via + Bonomea 265, 34136 Trieste, Italy, + {\texttt{luca.heltai@sissa.it}}} +\author[5]{Guido Kanschat} +\affil[5]{Interdisciplinary Center for Scientific Computing (IWR), + Universit{\"a}t Heidelberg, Im Neuenheimer Feld 368, 69120 Heidelberg, Germany, + {\texttt{kanschat@uni-heidelberg.de}}} +\author[6]{Martin Kronbichler} +\affil[6]{Institute for Computational Mechanics, Technical University of + Munich, Boltzmannstr.~15, 85748 Garching, + Germany, + {\texttt{kronbichler@lnm.mw.tum.de}}} +\author[7]{Matthias Maier} +\affil[7]{School of Mathematics, University of Minnesota, 127 Vincent Hall, + 206 Church Street SE, Minneapolis, MN 55455, USA, + {\texttt{msmaier@umn.edu}}} +\author[8]{Bruno Turcksin} +\affil[8]{Department of Mathematics, Texas A\&M University, College Station, + TX 77843, USA, + {\texttt{turcksin@math.tamu.edu}}} +\author[9]{David Wells} +\affil[9]{Department of Mathematical Sciences, Rensselaer Polytechnic Institute, +Troy, NY 12180, USA + {\texttt{wellsd2@rpi.edu}}} +%\author[8]{Toby~D.~Young} +%\affil[8]{Institute of Fundamental Technological Research of the Polish +% Academy of Sciences, ul. Pawi{\'n}skiego 5b, Warsaw 02-106, Poland, +% {\texttt{tyoung@ippt.pan.pl}}} + +\renewcommand{\labelitemi}{--} + + +\begin{document} +\maketitle + +\begin{abstract} + This paper provides an overview of the new features of the finite element + library \dealii{} version 8.4. +\end{abstract} + + +\section{Overview} + +\dealii{} version 8.4.0 was released March 11, 2016. This paper provides an +overview of the new features of this release and serves as a citable +reference for the \dealii{} software library version 8.4. \dealii{} is an +object-oriented finite element library used around the world in the +development of finite element solvers. It is available for free under the +GNU Lesser General Public License (LGPL) from the \dealii{} homepage at +\url{http://www.dealii.org/}. + +The major changes of this release are: +\begin{itemize} +\item Parallel triangulations can now be partitioned in ways that allow + weighting cells differently. +\item Improved support for mixed-type arithmetic throughout the library. +\item A new triangulation type that supports parallel computations + but ensures that the entire mesh is available on every processor. +\item An implementation of the Rannacher-Turek element, as well as an + element that extends the usual Q(p) elements by bubble functions. +\item Second and third derivatives of finite element fields are now + computed exactly. +\item The various \emph{Concepts}, or requirements on template parameters + in the library, are now consistently labeled and documented as such. +\item The interface between finite elements, quadrature, mapping, and the + FEValues class has been rewritten. It is now much better documented. +\item Initial support for compiling with Visual C++ 2013 and 2015 under + Microsoft Windows + has been added. +\item More than 140 other features and bugfixes. +\end{itemize} +The more important ones of these will be detailed in the following section. +Information on how to cite \dealii{} is provided in Section \ref{sec:cite}. + + +\section{Significant changes to the library} + +This release of \dealii{} contains a number of large and significant changes +that will be discussed in the following sections. It of course also contains a +vast number of smaller changes and added functionality; the details of these +can be found +\href{https://www.dealii.org/8.4.0/doxygen/deal.II/changes_between_8_3_and_8_4.html}{in the file that lists all changes for this release} (see \cite{changes84}) +and that is linked to from the web site of each release as well as the +release announcement. + + +\subsection{Parallel triangulations can now be partitioned with weights} + +Previously, partitioning a parallel mesh (represented by objects of class +\texttt{parallel::}\-\texttt{distributed::}\-\texttt{Triangulation}) between +processors assumed that every cell should be weighted equally. On the +other hand, the \pfrst{} library which manages the partitioning +process, allows for attaching weights to each cell and thereby +enables ways in which not the number of cells per MPI process is +equilibrated, but the sum of weights on the cells managed by each +process. \dealii{} now also supports this feature. + +The implementation of this mechanism is based on a callback mechanism, +in the form of the signal-slot design pattern. User codes can register +functions that will be called upon mesh refinement and coarsening, +returning a weight for each cell. These weights will be added up over +all slots (i.e., callback functions) connected to the signal. + +The mechanism chosen has the advantage that all parties that use a +triangulation, for example multiple \texttt{DoFHandler} objects or a +scheme that tracks particles that are advected along with a flow field +and stores them per-cell, can indicate their computational needs for +each cell. In particular, there is no central place in a user code (other than +the +triangulation itself) that has to collect these needs and forward this +information. + + +\subsection{Improved support for mixed-type arithmetic throughout the + library} + +When evaluating finite element fields or their derivatives at +a points $\mathbf x_q$, one typically has to do an operation of the form +\begin{align*} + u_h(\mathbf x_q) &= \sum_{j} U_j \varphi_j(\mathbf x_q), + \\ + \nabla u_h(\mathbf x_q) &= \sum_{j} U_j \nabla\varphi_j(\mathbf x_q). +\end{align*} +The value or derivatives of shape functions, $\varphi_j(\mathbf x_q)$ +or $\nabla\varphi_j(\mathbf x_q)$ are internally evaluated by classes +derived from the \texttt{FiniteElement} and \texttt{Mapping}, and are +computed as scalars or tensors of type \texttt{double}. On the other +hand, the expansion coefficients of the field, $U_j$ are stored in +vectors over scalar types chosen by the user; their underlying representation +could be \texttt{double}, but also \texttt{float}, \texttt{long double}, +\texttt{PetscScalar}, or \texttt{std::complex}. It could also +be an autodifferentiation type. + +To facilitate the correct typing of the computed quantity, \dealii{} +now contains mechanisms by which one can evaluate the \textit{type} of +the product of two values, and this type is now consistently used +throughout the library in expressions such as those above. Thus, as an +example, if the user stores the expansion coefficients in a +\texttt{Vector}, then the gradients +$\nabla u_h(\mathbf x_q)$ will be computed as objects of type +\texttt{Tensor<1,dim,long double>}. Likewise, if a user uses a PETSc +vector, and PETSc was configured with complex scalar types, then the +second derivatives of the solution field will be computed as +\texttt{SymmetricTensor<2,dim,PetscScalar>}, which should equal +\texttt{SymmetricTensor<2,dim,std::complex >}. + +These improvements make type-correct computations possible in many +places. In particular, this enables the use of complex-valued solution +vectors in many more places than before. On the other hand, many but not all +places have learned what actually to do with complex numbers. This is, +in particular, true for the \texttt{DataOut} class that generates an +intermediate data format that can then be written to graphical output +files for visualization. Since no format we are aware of supports +complex numbers, future versions still need to learn how to separate +real and imaginary parts of complex numbers, and output them as two +components. + + +\subsection{A new ``shared'' triangulation type for parallel computations} + +\dealii{} already has two types of triangulations: the +\texttt{Triangulation} class works entirely locally, whereas +\texttt{parallel::distributed::Triangulation} builds on the +former, but only stores the local partition that corresponds to a globally +distributed triangulation managed across an MPI network. One \textit{could}, +however, use the former also for parallel computations in situations where one +needs access to \textit{all} cells, not just the subset of cells that +correspond to the partition owned by the current processor. This required +building the same triangulation on all processors, then +manually partitioning it (e.g., via \texttt{METIS}), calculating and storing +index sets of locally owned and locally relevant degrees of freedom (DoFs), +querying the \texttt{subdomain\_id} of a cell during assembly, etc. + +In order to simplify this usage of the \texttt{Triangulation} class with MPI +and to make its behavior in this context consistent with \texttt{parallel::distributed::Triangulation}, a new class +\texttt{parallel::shared::Triangulation} has been introduced. +It extends the \texttt{Triangulation} class to automatically partition the triangulation when run with MPI. +Shared functionality between the \texttt{shared} and \texttt{distributed} +triangulation classes +(e.g., locally owned and relevant DoFs, MPI communicators, etc) +is now grouped in a common parent class \texttt{parallel::Triangulation}. +The main difference between the two classes is that in the case of +\texttt{parallel::shared::Triangulation} each process stores all cells of the triangulation. +Consequently, by default there are no artificial cells. +That is, cells which are attributed to the current processor are marked as locally owned +(\texttt{cell->is\_locally\_owned()} returns \texttt{true}) +and the rest are ghost cells. +This behavior can be altered via an additional boolean flag provided to the constructor of the class. +In this case, the set of ghost cells will consist of a halo layer of cells around locally owned cells. +Cells which are neither ghost nor locally owned are marked as artificial. +This is consistent with the behavior of \texttt{parallel::distributed::Triangulation}, +although in the latter case the size of the set of artificial cells will be +much smaller. + +The introduction of the \texttt{parallel::shared::Triangulation} class together with the +optional artificial cells and parent \texttt{parallel::Triangulation} class +facilitates writing +algorithms that are indifferent to the way a triangulation is stored in the MPI context. +For example, the function \texttt{DoFTools::locally\_active\_dofs()} will +return the appropriate subset of +all DoF indices for both triangulations. +Assmebly routines can use predicates such as \texttt{cell->is\_locally\_owned()} +for both triangulations. + +Based on the new triangulation class, the (non-hp) \texttt{DoFHandler} manages +degrees of freedom in the same way as it has already done for a long time for +sequential and parallel distributed triangulations. + + +\subsection{Second and third derivatives of finite element fields are now + computed exactly} + +Second derivatives of solution fields, i.e., +\begin{align*} + \nabla^2 u_h(\mathbf x_q) &= \sum_{j} U_j \nabla^2\varphi_j(\mathbf x_q) +\end{align*} +were previously computed by finite differencing of first +derivatives. The reason for this approach is that in order to compute +the second derivatives of shape functions, $\nabla^2\varphi_j(\mathbf +x_q)$ one needs (at least) derivatives of the inverse of the Jacobian of the +mapping. This is easy to see because, for the usual $Q_p$ Lagrange +elements, one has that $\nabla\varphi_j(\mathbf +x_q)=J^{-1}\hat\nabla\hat\varphi_j(\hat{\mathbf x}_q)$, where quantities +with a hat refer to coordinates and functions on the reference cell, +and $J$ is the Jacobian of the mapping from reference to real +cell. Thus, the second derivatives satisfy +\begin{align*} + \nabla^2\varphi_j(\mathbf x_q) + = + J^{-1}\hat\nabla\left[J^{-1}\hat\nabla\hat\varphi_j(\hat{\mathbf x}_q)\right] + = + J^{-1} J^{-1}\hat\nabla^2\hat\varphi_j(\hat{\mathbf x}_q) + + + J^{-1}\left(\hat\nabla [J^{-1}]\right)\hat\nabla\hat\varphi_j(\hat{\mathbf x}_q), +\end{align*} +where in the last expression, matrices and tensors of rank 1 and 3 +have to be appropriately contracted. Here, the difficulty lies in +computing the derivative $\hat\nabla [J^{-1}]$: for the usual mappings +on quadrilaterals and hexahedra, $J$ is in general a polynomial in the +reference coordinates $\hat {\mathbf x}$, so $J^{-1}$ is a rational +function. It is possible to compute the derivatives of this object, +but they are difficult and cumbersome to evaluate, especially for +higher order mappings. + +The key to computing second (and higher) derivatives of shape +functions is to recognize that $\hat\nabla [J^{-1}]$ can be expressed +more conveniently by observing that +\begin{align*} + 0 &= \hat\nabla I + \\ + &= \hat\nabla (JJ^{-1}) + \\ + &= J (\hat\nabla [J^{-1}]) + (\hat\nabla J) J^{-1}, +\end{align*} +and consequently $\hat\nabla [J^{-1}] = - J^{-1} (\hat\nabla J) +J^{-1}$. Here, $J^{-1}$ is a matrix that is already available from +computing first derivatives, and $\hat\nabla J$ is an easily computed +rank-3 tensor with polynomial entries. Using this approach, we have +\begin{align*} + \nabla^2\varphi_j(\mathbf x_q) + = + J^{-1} J^{-1}\hat\nabla^2\hat\varphi_j(\hat{\mathbf x}_q) + - + J^{-1} J^{-1} (\hat\nabla J) + J^{-1}\hat\nabla\hat\varphi_j(\hat{\mathbf x}_q), +\end{align*} +again with an appropriate set of contractions over the indices of the +objects on the right. + +This, and corresponding extensions to compute third derivatives, have +now been implemented in several of the finite element and mapping +classes by Maien Hamed, and are available through the +\texttt{FEValues} interface to shape functions and their derivatives. + +\subsection{Visual C++ support} + +The library can now be compiled under Windows with Visual C++ 2013 and +2015. The support is still experimental for the following reasons: First, we +currently only support static linking. This will slow down linking of +application code immensly. Second, only a minimal testsuite is working, which +is mainly because static linking of thousands of test executables is not +viable. Therefore, we can not exclude the possibility of subtle bugs in the +library. Finally, there is of course limited support for external packages. + +\subsection{Incompatible changes} + +\subsubsection{Revision of the interface between finite elements, + quadratures, and mappings} + +Finite element classes describe shape functions as continuous (as +opposed to discrete) objects on the reference cell. On the other hand, +in actual practice, one only needs information about shape functions +at finitely many quadrature points, and these are typically the same +on every cell in a loop over all cells. Furthermore, the evaluation of +shape functions at quadrature points then also needs to be mapped to +the real cell, typically using a polynomial mapping. + +To facilitate this complex interplay, \dealii{} has three class +hierarchies rooted in the base classes \texttt{FiniteElement} (for the +description of shape functions on the reference cell), +\texttt{Quadrature} (for the locations and weights of quadrature +points on the reference cell), and \texttt{Mapping} (for the +description of mappings from the reference to the real cell). In +almost all cases, users create an object of a derived class for each +of these categories, but they never access any of the members of these +classes and instead leave this task to the \texttt{FEValues} class +(and \texttt{FEFaceValues}, \texttt{FESubfaceValues}) that presents +all one typically needs: the mapped values, gradients, and +higher order derivatives of shape functions at the quadrature points +of the real cell. + +The interplay between these classes in the \texttt{FEValues} interface +is one of the oldest parts of the library. It was, at the time, not +designed based on specifications we explicitly or implicitly knew this +class had to satisfy, but instead organically grew to its current +state. These interfaces have now been fundamentally rewritten: some +functions have been replaced; several others had their argument lists +shuffled, sorted, and made more uniform; and everything has generally +been far better documented. + +None of the changes in this arena is visible to the average user. The +only user codes that are affected in an incompatible way are those +that implement finite element or mapping classes. + +\subsubsection{Other incompatible changes} + +The +\href{https://www.dealii.org/8.4.0/doxygen/deal.II/changes_between_8_3_and_8_4.html}{file + that lists all changes for this release} (see \cite{changes84}) lists another 18 +incompatible changes, but none of these should in fact be visible in +typical user codes. Some remove previously deprecated classes and +functions, and the majority change internal interfaces that are not +typically used in user codes. + + + +\section{How to cite \dealii{}}\label{sec:cite} + +In order to justify the work the developers of \dealii{} put into this +software, we ask that papers using the library reference one of the +\dealii{} papers. This helps us justify the effort we put into it. + +There are various ways to reference \dealii{}. To acknowledge the use of a +particular version of the library, reference the present document. For up +to date information and bibtex snippets for this document see: + +\bigskip + +\begin{center} + \url{https://www.dealii.org/publications.html} +\end{center} + +\bigskip + +% \begin{minipage}{0.9\textwidth}%no page break in here please +% \begin{verbatim} +% @article{dealII82, +% title = {The {\tt deal.{I}{I}} Library, Version 8.2}, +% author = {W. Bangerth and T. Heister and L. Heltai +% and G. Kanschat and M. Kronbichler and M. Maier +% and B. Turcksin and T. D. Young}, +% journal = {preprint}, +% year = {2015}, +% } +% \end{verbatim} % journal = {arXiv preprint \url{http://arxiv.org/abs/TODO}}, +% \end{minipage} + +The original \texttt{\dealii{}} paper containing an overview of its +architecture is \cite{BangerthHartmannKanschat2007}. If you rely on specific +features of the library, please consider citing any of the following: +\begin{itemize} + \item For geometric multigrid: \cite{Kanschat2004,JanssenKanschat2011}; + \item For distributed parallel computing: \cite{BangerthBursteddeHeisterKronbichler11}; + \item For $hp$ adaptivity: \cite{BangerthKayserHerold2007}; + \item For matrix-free and fast assembly techniques: + \cite{KronbichlerKormann2012}; + \item For computations on lower-dimensional manifolds: + \cite{DeSimoneHeltaiManigrasso2009}; + \item For integration with CAD files and tools: + \cite{HeltaiMola2015}; + \item For \texttt{LinearOperator} and \texttt{PackagedOperation} facilities: + \cite{MaierBardelloniHeltai-2016-a,MaierBardelloniHeltai-2016-b}. + \item For uses of the \texttt{WorkStream} interface: + \cite{TKB16}. +\end{itemize} + +\dealii{} can interface with many other libraries: +\begin{itemize} +\item ARPACK \cite{arpack} +\item BLAS, LAPACK +\item HDF5 \cite{hdf5} +\item METIS \cite{karypis1998fast} +\item MUMPS \cite{ADE00,MUMPS:1,MUMPS:2,mumps-web-page} +\item muparser \cite{muparser-web-page} +\item NetCDF \cite{rew1990netcdf} +\item OpenCASCADE \cite{opencascade-web-page} +\item p4est \cite{p4est} +\item PETSc \cite{petsc-user-ref,petsc-web-page} +\item SLEPc \cite{Hernandez:2005:SSF} +\item Threading Building Blocks \cite{Rei07} +\item Trilinos \cite{trilinos,trilinos-web-page} +\item UMFPACK \cite{umfpack} +\end{itemize} +Please consider citing the appropriate references if you use interfaces to these +libraries. + +Older releases of \dealii{} can be cited as \cite{dealII80,dealII81,dealII82,dealII83}. + +\nocite{BangerthKanschat1999} + +\section{Acknowledgments} + +\dealii{} is a world-wide project with dozens of contributors around the +globe. Other than the authors of this paper, the following people contributed code to +this release: +% +% get this from the changes.h file using +% egrep '^ *\(.*201[56789]' 8.3.0-vs-8.4.0.h | perl -p -e 's/201\d.*//g; s/, */\n/g; s/^ *\(?//g;' | sort | uniq +% then sort by last name and remove the authors of this paper +% +Daniel Arndt, +Mauro Bardelloni, +Alistair Bentley, +Andrea Bonito, +Claire Bruna-Rosso, +Krzysztof Bzowski, +Praveen Chandrashekar, +Conrad Clevenger, +Patrick Esser, +Rene Gassmoeller, +Arezou Ghesmati, +Maien Hamed, +Alexander Grayver, +Lukas Korous, +Aslan Kosakian, +Adam Kosik, +Konstantin Ladutenko, +Jean-Paul Pelteret, +Lei Qiao, +Gennadiy Rishin, +Angel Rodriguez, +Alberto Sartori, +Daniel Shapero, +Jason Sheldon, +Jan Stebel, +Florian Sonner, +Zhen Tao, +Heikki Virtanen, +Daniel Weygand + + +Their contributions are much appreciated! + + +\dealii{} and its developers are financially supported through a +variety of funding sources. W.~Bangerth and B.~Turcksin were partially +supported by the National Science Foundation under award OCI-1148116 +as part of the Software Infrastructure for Sustained Innovation (SI2) +program; and by the Computational Infrastructure in Geodynamics initiative +(CIG), through the National Science Foundation under Award +No.~EAR-0949446 and The University of California -- Davis. + +D.~Davydov was supported by the ERC Advanced Grant MOCOPOLY and the Competence Network for Technical and Scientific High Performance Computing in Bavaria (KONWIHR). + +L.~Heltai was partially supported by the project OpenViewSHIP, +``Sviluppo di un ecosistema computazionale per la progettazione +idrodinamica del sistema elica-carena'', financed by Regione FVG - PAR +FSC 2007-2013, Fondo per lo Sviluppo e la Coesione, and by the project +TRIM ``Tecnologia e Ricerca Industriale per la Mobilit\`a Marina'', +CTN01-00176-163601, funded by MIUR - Ministero dell'Istruzione, +dell'Universit\`a e della Ricerca. + +T.~Heister was partially supported by the Computational Infrastructure in +Geodynamics initiative (CIG), through the National Science Foundation under Award No. EAR-0949446 and The University of California—Davis, and National Science Foundation grant DMS1522191. + +G.~Kanschat and M.~Kronbichler were partially supported by the German Research +Foundation (DFG) through the project ExaDG. M.~Kronbichler also acknowledges +the Gauss Centre for Supercomputing e.V.~for funding algorithm enhancements by +providing computing time on the GCS Supercomputer SuperMUC at Leibniz +Supercomputing Centre (LRZ) through project id pr83te. + +The Interdisciplinary Center for Scientific Computing (IWR) at Heidelberg University has provided +hosting services for the \dealii{} web page and the SVN archive. + +%\marginpar{Everyone's funding, please} + + +\bibliography{paper}{} +\bibliographystyle{abbrv} + +\end{document} diff --git a/8.5/paper.bib b/8.5/paper.bib new file mode 100644 index 0000000..8926409 --- /dev/null +++ b/8.5/paper.bib @@ -0,0 +1,505 @@ +%% do not edit this file, edit in the deal.II main repository, copy here, but +%% keep this note in here for the next one. + +%% The deal.II paper + +@Article{BangerthHartmannKanschat2007, + title = {deal.{II} --- a General Purpose Object Oriented Finite Element Library}, + author = {Bangerth, W. and Hartmann, R. and Kanschat, G.}, + journal = {{ACM} Trans. Math. Softw.}, + volume = {33}, + number = {4}, + year = {2007}, + doi = {10.1145/1268776.1268779} +} + +@Misc{changes84, + Title = {List of Changes}, + Note = {\url{https://www.dealii.org/8.4.0/doxygen/deal.II/changes_between_8_3_and_8_4.html}}, + Url = {https://www.dealii.org/8.4.0/doxygen/deal.II/changes_between_8_3_and_8_4.html} +} + +@article{dealII80, + title = {The \texttt{deal.II} Library, Version 8.0}, + author = {W. Bangerth and T. Heister and L. Heltai and G. Kanschat + and M. Kronbichler and M. Maier and B. Turcksin and T. D. Young}, + journal = {arXiv preprint \url{http://arxiv.org/abs/1312.2266v3}}, + year = {2013}, +} + +@article{dealII81, + title = {The \texttt{deal.II} Library, Version 8.1}, + author = {W. Bangerth and T. Heister and L. Heltai and G. Kanschat + and M. Kronbichler and M. Maier and B. Turcksin and T. D. Young}, + journal = {arXiv preprint \url{http://arxiv.org/abs/1312.2266v4}}, + year = {2013}, +} + +@article{dealII82, + title = {The \texttt{deal.II} Library, Version 8.2}, + author = {W. Bangerth and T. Heister and L. Heltai + and G. Kanschat and M. Kronbichler + and M. Maier and B. Turcksin + and T. D. Young}, + journal = {Archive of Numerical Software}, + volume = 3, + year = {2015}, +} + +@article{dealII83, + title = {The \texttt{deal.II} Library, Version 8.3}, + author = {W. Bangerth and T. Heister and L. Heltai + and G. Kanschat and M. Kronbichler + and M. Maier and B. Turcksin}, + journal = {Archive of Numerical Software}, + volume = {4}, + number = {100}, + year = {2016}, + pages = {1--11}, + issn = {2197-8263}, + doi = {10.11588/ans.2016.100.23122}, +} + + +%% The deal.II web page and online reference. +%% Please cite specific versions only if you really need to + +@Manual{DealIIReference, + title = {{\tt deal.{I}{I}} Differential Equations Analysis Library, + Technical Reference}, + author = {W. Bangerth and T. Heister and G. Kanschat}, + note = {\texttt{http://www.dealii.org}}, + url = {http://www.dealii.org} +} + +@Manual{DealIIReference600, + title = {{\tt deal.{I}{I}} Differential Equations Analysis Library, + Technical Reference}, + author = {W. Bangerth and G. Kanschat}, + note = {\texttt{http://www.dealii.org}}, + url = {http://www.dealii.org/6.0.0}, + year = 2007 +} + +@Manual{DealIIReference610, + title = {{\tt deal.{I}{I}} Differential Equations Analysis Library, + Technical Reference}, + author = {W. Bangerth and G. Kanschat}, + note = {\texttt{http://www.dealii.org}}, + url = {http://www.dealii.org/6.1.0}, + year = 2008 +} + +@Manual{DealIIReference621, + title = {{\tt deal.{I}{I}} Differential Equations Analysis Library, + Technical Reference}, + author = {W. Bangerth and G. Kanschat}, + note = {\texttt{http://www.dealii.org}}, + url = {http://www.dealii.org/6.2.1}, + year = 2009 +} + +@Manual{DealIIReference631, + title = {{\tt deal.{I}{I}} Differential Equations Analysis Library, + Technical Reference}, + author = {W. Bangerth and G. Kanschat}, + note = {\texttt{http://www.dealii.org}}, + url = {http://www.dealii.org/6.3.1}, + year = 2010 +} + +@Manual{DealIIReference700, + title = {{\tt deal.{I}{I}} Differential Equations Analysis Library, + Technical Reference}, + author = {W. Bangerth and G. Kanschat}, + note = {\texttt{http://www.dealii.org}}, + url = {http://www.dealii.org/7.0.0}, + year = 2011 +} + +@Manual{DealIIReference710, + title = {{\tt deal.{I}{I}} Differential Equations Analysis Library, + Technical Reference}, + author = {W. Bangerth and G. Kanschat}, + note = {\texttt{http://www.dealii.org}}, + url = {http://www.dealii.org/7.1.0}, + year = 2011 +} + +%% Additional papers on deal.II and special aspects + +@TechReport{BangerthKanschat1999, + title = {Concepts for Object-Oriented Finite Element Software -- the \texttt{deal.II} library}, + address = {Heidelberg}, + author = {Bangerth, W. and Kanschat, G.}, + institution = {SFB~359}, + number = {1999-43}, + type = {Preprint}, + year = {1999}, + url = {http://www.dealii.org/developer/reports/deal-paper.pdf} +} + +@Article{BangerthKayserHerold2007, + author = {W. Bangerth and O. Kayser-Herold}, + title = {Data Structures and Requirements for $hp$ Finite Element + Software}, + journal = {ACM Trans. Math. Softw.}, + year = 2009, + volume = 36, + number = 1, + pages = {4/1--4/31} +} + +@Article{JanssenKanschat2011, + author = {Janssen, B. and Kanschat, G.}, + title = {Adaptive multilevel methods with local smoothing for + {${H}^1$}- and {$H^{\text{curl}}$}-conforming high order + finite element methods}, + journal = {SIAM J. Sci. Comput.}, + year = 2011, + volume = 33, + number = 4, + pages = {2095--2114}, + doi = {10.1137/090778523} +} + +@Article{Kanschat2004, + title = {Multi-level methods for discontinuous {G}alerkin {FEM} on locally refined meshes}, + author = {Kanschat, G.}, + journal = {Comput. \& Struct.}, + number = {28}, + pages = {2437--2445}, + volume = {82}, + year = {2004}, + doi = {10.1016/j.compstruc.2004.04.015} +} + +@Article{BangerthBursteddeHeisterKronbichler11, + author = {W. Bangerth and C. Burstedde and T. Heister + and M. Kronbichler}, + title = {Algorithms and data structures for massively parallel generic + adaptive finite element codes}, + journal = {ACM Trans. Math. Softw.}, + year = 2011, + volume = 38, + pages = {14/1--28}} + + +@Article{KronbichlerKormann2012, + author = {M. Kronbichler and K. Kormann}, + title = {A generic interface for parallel cell-based finite element operator application}, + journal = {Comput. Fluids}, + year = 2012, + volume = 63, + pages = {135--147}} + + +@techreport{DeSimoneHeltaiManigrasso2009, + Author = {A. DeSimone and L. Heltai and C. Manigrasso}, + Institution = {SISSA}, + Number = {42/2009/M}, + Title = {Tools for the Solution of {PDEs} Defined on Curved Manifolds with deal.{II}}, + Year = {2009}} + +@techreport{HeltaiMola2015, + Author = {L. Heltai and A. Mola}, + Institution = {SISSA}, + Title = {{Towards the Integration of CAD and FEM using open source libraries: a +Collection of deal.II Manifold Wrappers for the OpenCASCADE Library}}, + Year = 2015, + Note = {Submitted}} + +@article{trilinos64, + author = {C. Jhurani and + T. M. Austin and + M. A. Heroux and + J. M. Willenbring}, + title = {Supporting 64-bit global indices in {E}petra and other {T}rilinos + packages -- {T}echniques used and lessons learned}, + journal = {arXiv}, + volume = {1307.6638}, + year = {2013}, + ee = {http://arxiv.org/abs/1307.6638}, + bibsource = {DBLP, http://dblp.uni-trier.de} +} + + +@Article{BH13, + author = {Wolfgang Bangerth and Timo Heister}, + title = {What makes computational open source software libraries successful?}, + journal = {Computational Science \& Discovery}, + year = 2013, + volume = 6, + pages = {015010/1--18}} + + +@Article{FHB13, + author = {J. Frohne and T. Heister and W. Bangerth}, + title = {Efficient numerical methods for the large-scale, parallel + solution of elastoplastic contact problems}, + journal = {submitted}, + year = 2013} + +@Article{TKB13, + author = {B. Turcksin and M. Kronbichler and W. Bangerth}, + title = {\textit{WorkStream} -- a design pattern for multicore-enabled finite element computations}, + journal = {submitted}, + year = 2013} + +@Misc{cpp11, + key = {C++11}, + author = {International Standards Organization}, + title = {{ISO/IEC} 14882:2011: The {C}++11 Programming Language Standard}, + howpublished = {\url{http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372}}, + year = 2011} + +@Article{trilinos, + author = {M. A. Heroux and R. A. Bartlett and V. E. Howle and R. J. Hoekstra and J. J. Hu + and T. G. Kolda and R. B. Lehoucq and K. R. Long and R. P. Pawlowski and + E. T. Phipps and A. G. Salinger and H. K. Thornquist and R. S. Tuminaro and + J. M. Willenbring and A. Williams and K. S. Stanley}, + title = {An overview of the {T}rilinos project}, + journal = {ACM Trans. Math. Softw.}, + year = 2005, + volume = 31, + pages = {397--423}} + +@Misc{trilinos-web-page, + Author = "M. A. Heroux and others", + Title = "{Trilinos} web page", + Note = "\url{http://trilinos.sandia.gov}", + Year = "2014"} + +# From http://www.mcs.anl.gov/petsc/documentation/referencing.html +@Misc{petsc-web-page, + author = {S. Balay and S. Abhyankar and M.~F. Adams and J. Brown and P. Brune + and K. Buschelman and V. Eijkhout and W.~D. Gropp + and D. Kaushik and M.~G. Knepley + and L. Curfman McInnes and K. Rupp and B.~F. Smith + and H. Zhang}, + title = {{PETS}c {W}eb page}, + url = {http://www.mcs.anl.gov/petsc}, + howpublished = {\url{http://www.mcs.anl.gov/petsc}}, + year = {2014} + } + +@TechReport{petsc-user-ref, + author = {S. Balay and S. Abhyankar and M.~F. Adams and J. Brown and P. Brune + and K. Buschelman and V. Eijkhout and W.~D. Gropp + and D. Kaushik and M.~G. Knepley + and L. Curfman McInnes and K. Rupp and B.~F. Smith + and H. Zhang}, + title = {{PETS}c Users Manual}, + institution = {Argonne National Laboratory}, + year = 2014, + number = {ANL-95/11 - Revision 3.5}, + url = {http://www.mcs.anl.gov/petsc} + } + + +@Article{umfpack, + author = {T. A. Davis}, + title = {Algorithm 832: {UMFPACK V4.3}---an unsymmetric-pattern multifrontal method}, + journal = {ACM Trans. Math. Softw.}, + year = 2004, + volume = 30, + pages = {196--199}} + +@Book{Rei07, + author = {J. Reinders}, + title = {Intel Threading Building Blocks}, + publisher = {O'Reilly}, + year = 2007} + +@Article{p4est, + author = {C. Burstedde and L. C. Wilcox and O. Ghattas}, + title = {\texttt{p4est}: {S}calable algorithms for parallel + adaptive mesh refinement on forests of octrees}, + journal = {SIAM J. Sci. Comput.}, + volume = 33, + number = 3, + pages = {1103-1133}, + year = 2011} + +@Book{arpack, + author = {R. B. Lehoucq and D. C. Sorensen and C. Yang}, + title = {{ARPACK} users' guide: solution of large-scale eigenvalue problems with implicitly restarted Arnoldi methods}, + publisher = {SIAM, Philadelphia}, + year = 1998} + +@Misc{mumps-web-page, + key = {MUMPS}, + title = {{MUMPS: a MUltifrontal Massively Parallel sparse direct Solver}}, + note = {\url{http://graal.ens-lyon.fr/MUMPS/}}} + + +@Article{ADE00, + author = {P.R. Amestoy and I.S. Duff and J.-Y. L'Excellent}, + title = {Multifrontal parallel distributed symmetric and unsymmetric solvers}, + journal = {Comput. Methods in Appl. Mech. Eng.}, + year = 2000, + volume = 184, + pages = {501--520}} + + +@article{MUMPS:1, + author = {P. R. Amestoy and I. S. Duff and J. Koster and J.-Y. L'Excellent}, + title = {A Fully Asynchronous Multifrontal Solver Using Distributed Dynamic Scheduling}, + journal = {SIAM Journal on Matrix Analysis and Applications}, + volume = {23}, + number = {1}, + year = {2001}, + pages = {15-41} + } + + +@article{MUMPS:2, + author = {P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and S. Pralet}, + title = {Hybrid scheduling for the parallel solution of linear systems}, + journal = {Parallel Computing}, + volume = {32}, + number = {2}, + year = {2006}, + pages = {136-156} +} + + +@Misc{opencascade-web-page, + key = {OpenCASCADE}, + title = {{OpenCASCADE: Open CASCADE Technology, 3D modeling \& numerical simulation}}, + note = {\url{http://www.opencascade.org/}}} + + +@Misc{muparser-web-page, + key = {muparse}, + title = {{muparser: Fast Math Parser Library}}, + note = {\url{http://muparser.beltoforion.de/}}} + +@Misc{hdf5, + author = {{The HDF Group}}, + title = "{Hierarchical Data Format, version 5}", + year = {1997-NNNN}, + note = {\url{http://www.hdfgroup.org/HDF5/}} +} + +@article{karypis1998fast, + title={A fast and high quality multilevel scheme for partitioning irregular graphs}, + author={Karypis, G. and Kumar, V.}, + journal={SIAM J. Sci. Comput.}, + volume={20}, + number={1}, + pages={359--392}, + year={1998}, + publisher={SIAM} +} +@article{rew1990netcdf, + title={{NetCDF}: an interface for scientific data access}, + author={Rew, R. and Davis, G.}, + journal={Computer Graphics and Applications, IEEE}, + volume={10}, + number={4}, + pages={76--82}, + year={1990}, + publisher={IEEE} +} +@Article{Hernandez:2005:SSF, + author = "V. Hernandez and J. E. Roman and V. Vidal", + title = "{SLEPc}: A Scalable and Flexible Toolkit for the Solution of Eigenvalue + Problems", + journal = "{ACM} Trans. Math. Software", + volume = "31", + number = "3", + pages = "351--362", + year = "2005" +} + +@article{Lachat1976, +author = {Lachat, J. C. and Watson, J. O.}, +doi = {10.1002/nme.1620100503}, +issn = {0029-5981}, +journal = {International Journal for Numerical Methods in Engineering}, +number = {5}, +pages = {991--1005}, +title = {{Effective numerical treatment of boundary integral equations: A formulation for three-dimensional elastostatics}}, +url = {http://doi.wiley.com/10.1002/nme.1620100503}, +volume = {10}, +year = {1976} +} + +@article{Telles-2005-a, +author = {Telles, JCF}, +journal = {International Journal for Numerical Methods in Engineering}, +mendeley-groups = {FEM}, +mendeley-tags = {filedpapers}, +number = {5}, +publisher = {Wiley Online Library}, +title = {{A self-adaptive co-ordinate transformation for efficient numerical evaluation of general boundary element integrals}}, +type = {Journal article}, +volume = {24}, +year = {2005} +} + +@article{GiulianiMolaHeltai-2015-a, +author = {Giuliani, Nicola and Mola, Andrea and Heltai, Luca and Formaggia, Luca}, +doi = {10.1016/j.enganabound.2015.04.006}, +file = {:Users/heltai/Library/Mobile Documents/com\~{}apple\~{}CloudDocs/Mendeley//Giuliani et al.\_2015\_FEM SUPG stabilisation of mixed isoparametric BEMs application to linearised free surface flows.pdf:pdf}, +journal = {Engineering Analysis with Boundary Elements}, +keywords = {linearised free surface}, +pages = {8--22}, +title = {{FEM SUPG stabilisation of mixed isoparametric BEMs: application to linearised free surface flows}}, +volume = {59}, +year = {2015} +} + +@book{Cottrell2009, +author = {Cottrell, JA A and Hughes, TJR J R and Bazilevs, Y.}, +file = {:Users/heltai/Library/Mobile Documents/com\~{}apple\~{}CloudDocs/Mendeley/Cottrell, Hughes, Bazilevs\_2009\_Isogeometric analysis toward integration of CAD and FEA.pdf:pdf}, +mendeley-groups = {Igastokes,Books,Geostrophisics,FEM}, +publisher = {John Wiley \& Sons Inc}, +title = {{Isogeometric analysis: toward integration of CAD and FEA}}, +url = {http://books.google.com/books?hl=en\&lr=\&id=9Q9y0Xtz5E4C\&oi=fnd\&pg=PR5\&dq=Isogeometric+analysis:+toward+integration+of+CAD+and+FEA\&ots=JLSZtYQkL3\&sig=MZdoIBEu1cZs2sAwnPDy4WVOaVE}, +year = {2009} +} + +@book{AbramowitzStegun, + author = {M. Abramowitz and I.A. Stegun}, + title = {Handbook of Mathematical Functions}, + publisher = {Dover}, + year = {1965} +} + +@techreport{MadayPatera, + author = {Y. Maday and A.T. Patera and E.M. Rønquist}, + title = {A well-posed optimal spectral element approximation for the Stokes problem}, + number = {87-47}, + institution = {ICASE}, + address = {Hampton, VA}, + year = {1987} +} + + +@article{MaierBardelloniHeltai-2016-a, + Author = {Matthias Maier and Mauro Bardelloni and Luca Heltai}, + Journal = {Computers and Mathematics with Applications}, + Title = {Linear{O}perator -- a generic, high-level expression syntax for linear algebra}, + Doi = {10.1016/j.camwa.2016.04.024}, + Note = {To appear}, + Year = {2016}} + +@misc{MaierBardelloniHeltai-2016-b, + author = {Matthias Maier and + Mauro Bardelloni and + Luca Heltai}, + title = {{LinearOperator Benchmarks, Version 1.0.0}}, + month = mar, + year = 2016, + doi = {10.5281/zenodo.47202}, + url = {http://dx.doi.org/10.5281/zenodo.47202} +} + + +@Article{TKB16, + author = {B. Turcksin and M. Kronbichler and W. Bangerth}, + title = {\textit{WorkStream} -- a design pattern for multicore-enabled finite element computations}, + journal = {accepted for publication in the ACM Transactions on Mathematical Software}, + year = 2016}