]> https://gitweb.dealii.org/ - release-papers.git/commitdiff
start 9.2
authorTimo Heister <timo.heister@gmail.com>
Fri, 24 Apr 2020 13:17:06 +0000 (09:17 -0400)
committerTimo Heister <timo.heister@gmail.com>
Fri, 24 Apr 2020 13:17:06 +0000 (09:17 -0400)
9.2/Makefile [new file with mode: 0644]
9.2/ansarticle-preprint.cls [new file with mode: 0644]
9.2/anslistings.sty [new file with mode: 0644]
9.2/paper.bib [new file with mode: 0644]
9.2/paper.tex [new file with mode: 0644]

diff --git a/9.2/Makefile b/9.2/Makefile
new file mode 100644 (file)
index 0000000..a6e8379
--- /dev/null
@@ -0,0 +1,7 @@
+all: latexmk
+
+latexmk:
+       latexmk -pdf -f paper
+
+clean:
+       rm -f *.fls *.fdb_latexmk *.aux *.log *.dvi *.bbl *.blg *.ilg *.ind *.toc *.idx *.out *.nav *.snm
diff --git a/9.2/ansarticle-preprint.cls b/9.2/ansarticle-preprint.cls
new file mode 100644 (file)
index 0000000..da94dde
--- /dev/null
@@ -0,0 +1,149 @@
+% $Id: ansarticle.cls 2730 2011-06-03 09:53:18Z logg $
+
+% FIXME: (AL) Need to choose a license for this style, I suggest GFDL
+
+% Basic setup
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{ansarticle-preprint}
+\LoadClass[twoside,a4paper]{article}
+
+% Load packages
+\RequirePackage{a4wide}
+\RequirePackage{anslistings}
+\RequirePackage{algorithm,algorithmicx,algpseudocode}
+\RequirePackage{amsmath,amssymb}
+\RequirePackage[noblocks]{authblk}
+\RequirePackage{booktabs}
+\RequirePackage{fancyhdr}
+\RequirePackage{graphicx}
+\RequirePackage[hyperfootnotes=false,colorlinks,linkcolor=blue,urlcolor=blue,citecolor=blue]{hyperref}
+\RequirePackage{natbib}
+
+\RequirePackage{lastpage}
+\RequirePackage{listings}
+\RequirePackage[colorinlistoftodos,textwidth=4cm,shadow]{todonotes}
+
+
+% Font selection
+\RequirePackage[T1]{fontenc}
+\RequirePackage{ae,aecompl}
+\RequirePackage{pxfonts}        % Palatino for running text and math
+\renewcommand{\sfdefault}{pag}  % Avantgarde for sans serif (section headings)
+
+% Section headings
+\renewcommand{\section}{%
+  \@startsection{section}{0}{0pt}{2ex}{1ex}{\large\bf\sffamily}}
+\renewcommand{\subsection}{%
+  \@startsection{subsection}{1}{0pt}{\baselineskip}{.5ex}{\bf\sffamily}}
+\renewcommand{\subsubsection}{%
+  \@startsection{subsubsection}{2}{0pt}{\baselineskip}{-1em}{\bf\sffamily}}
+\renewcommand{\paragraph}{%
+  \@startsection{paragraph}{3}{0pt}{0ex}{-0.5em}{\bf\sffamily}}
+\renewcommand{\subparagraph}{%
+  \@startsection{subparagraph}{4}{0pt}{0ex}{-0.5em}{\bf\sffamily}}
+\setcounter{secnumdepth}{10}
+
+% Paragraphs
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{1ex plus 2ex}
+
+% Running title and author
+\let\@runningtitle\@empty
+\let\@runningauthor\@empty
+\newcommand{\runningtitle}[1]{\gdef\@runningtitle{#1}}
+\newcommand{\runningauthor}[1]{\gdef\@runningauthor{#1}}
+
+% Formatting volume and article number
+\newread\datafile
+\openin\datafile=ansinfo
+\ifeof\datafile
+\message{File datafile.tex with volume, number, and year is missing}
+\def\ANSreceived{never}
+\def\ANSrevised{never}
+\def\ANSaccepted{never}
+\def\ANSpublished{never}
+\def\ANSvolume{VV}
+\def\ANSnumber{NN}
+\def\ANSyear{}
+\else
+\closein\datafile
+\input{ansinfo}
+\fi
+
+% Page headers and footers
+\fancyhead[RO, LE]{\thepage}
+\fancyhead[LO]{\@runningtitle}
+\fancyhead[RE]{\@runningauthor}
+\fancyfoot[RE,LO]{%
+  %\footnotesize \copyright{} by the authors, \ANSyear
+  }
+\fancyfoot[RO,LE]{%
+  %\footnotesize Archive of Numerical Software \ANSvolume(\ANSnumber), \ANSyear
+  }
+\fancyfoot[C]{}
+\renewcommand{\headrulewidth}{0pt}
+\pagestyle{fancy}
+
+% Front matter
+\renewcommand*{\title}[2][]{\gdef\s@title{#1}\gdef\@title{#2}}
+\renewcommand{\Authfont}{\large\sffamily}
+\renewcommand{\Affilfont}{\normalsize\sffamily}
+\renewcommand{\maketitle}{
+  % Footnote stuff
+  \let\footnotesize\small
+  \def\footnoterule{\vspace*{-3pt}\rule{.4\columnwidth}{.4pt}\vspace*{2.6pt}}
+  \renewcommand\thefootnote{\sffamily\@fnsymbol\c@footnote}
+  \let\footnote\thanks
+  % Title
+%   \hfill\fboxrule2pt\fboxsep3mm\fbox{\parbox{5cm}{\centering
+%         Archive of Numerical Software\\
+%         vol. \ANSvolume, no. \ANSnumber, pages 1--\pageref*{LastPage}\\
+%         \copyright{} \ANSyear}}
+  \vskip 60\p@
+  \begin{center}
+    {\LARGE \textsf{\textbf{\@title}} \par}
+    \vskip 8mm
+    {\large \lineskip .75em \textsf{\@author} }
+    \vskip 4mm
+  \end{center}\par
+  % Affiliation stuff
+  \@thanks
+  % Paper received
+  \vskip 3mm
+%   \textbf{\sffamily Received: }\ANSreceived;
+%   \textbf{\sffamily final revision:} \ANSrevised;
+%   \textbf{\sffamily published:} \ANSpublished.
+%   % Some more fixes
+  \vskip 3mm
+  \setcounter{footnote}{0}%
+  \global\let\thanks\relax
+  \global\let\maketitle\relax
+  \global\let\@thanks\@empty
+  \global\let\@author\@empty
+  \global\let\@date\@empty
+  \global\let\@title\@empty
+  \global\let\title\relax
+  \global\let\author\relax
+  \global\let\date\relax
+  \global\let\and\relax
+  % No headers/footers on front page
+  \thispagestyle{empty}
+}
+
+% Abstract heading
+\renewenvironment{abstract}{\textsf{\textbf{Abstract: }}}{}
+
+% Useful macro
+\newcommand{\fixme}[1]{\todo[inline, color=red!40]{#1}}
+
+% Some useful notation macros
+\newcommand{\R}{\mathbb{R}}
+\newcommand{\dx}{\,\mathrm{d}x}
+\newcommand{\dX}{\,\mathrm{d}X}
+\newcommand{\ds}{\,\mathrm{d}s}
+\newcommand{\dS}{\,\mathrm{d}S}
+\newcommand{\dt}{\,\mathrm{d}t}
+\newcommand{\inner}[2]{\langle #1, #2 \rangle}
+\newcommand{\nedelec}{N\'ed\'elec}
+\newcommand{\babuska}{Babu\v{s}ka}
+\newcommand{\emp}[1]{\texttt{#1}}
diff --git a/9.2/anslistings.sty b/9.2/anslistings.sty
new file mode 100644 (file)
index 0000000..f2e409d
--- /dev/null
@@ -0,0 +1,442 @@
+%% Listings environments for Archive of Numerical Software.
+%%
+%% The following listings environments are provided:
+%%
+%% c++        for C++ code
+%% python     for Python code
+%% cython     for Cython code
+%% xml        for XML code
+%% bash       for BASH code
+%% swigcode   for SWIG code
+%% uflcode    for UFL code
+%% matlab     for MATLAB code
+%% anycode    for generic code
+%% progoutput for program output
+%% gencode    for generated code
+%% latexcode  for LaTeX code
+%% fortran    for FORTRAN code
+%%
+%% This style file is based on original work by Olivier Verdier
+%% <olivier.verdier@math.ntnu.no> (pythonhighlight.sty),
+%% with contributions from Johan Hake <johan.hake@gmail.com>.
+%%
+%% Modified for ANS by Anders Logg <logg@simula.no>, 2011.
+%%
+%% Modified by Hans Petter Langtangen <hpl@simula.no>, 2011, to
+%% have pairs c++ (with C++ title) and c++:nt (no title),
+%% python and python:nt, etc. (It is not always desirable to
+%% have a title with the language.) Added Cython and Fortran style.
+%%
+%% First added:   2011-05-16
+%% Last modified: 2011-06-03
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{anslistings}[2009/03/28 code highlighting; provided by Olivier Verdier <olivier@maths.lth.se>]
+
+% Load required packages
+\RequirePackage{listings}
+\RequirePackage{xcolor}
+
+% Basic setup
+\renewcommand{\lstlistlistingname}{Code Listings}
+\renewcommand{\lstlistingname}{Code Listing}
+\newcommand{\codetitlestyle}[1]{\hspace{9cm}\small\textit{#1}\hspace{0.1cm}}
+%\newcommand{\codetitlestyle}[1]{\small\textit{#1}\hspace{0.1cm}}
+\newcommand{\belowtitleskip}{2pt}
+\newcommand{\captionposition}{t}
+\newcommand{\framemargin}{0.5ex}
+\newcommand{\literatecolour}{\textcolor{literatecolour}}
+
+% Colors
+\definecolor{gray}{gray}{0.5}
+\colorlet{commentcolour}{green!50!black}
+\colorlet{stringcolour}{red!60!black}
+\colorlet{keywordcolour}{magenta!90!black}
+\colorlet{exceptioncolour}{yellow!50!red}
+\colorlet{commandcolour}{blue!60!black}
+\colorlet{numpycolour}{blue!60!green}
+\colorlet{literatecolour}{magenta!90!black}
+\colorlet{promptcolour}{green!50!black}
+\colorlet{specmethodcolour}{violet}
+\colorlet{indendifiercolour}{green!70!white}
+
+% Define the common style to be shared by all languages
+\lstdefinestyle{c@mmon}{%
+showtabs=true,                       % show tabs in strings using underscore
+tab=,
+tabsize=2,                           % tab means 2 spaces
+basicstyle=\ttfamily\footnotesize,   % fonts used for the code
+breaklines=true,                     % break lines
+%breakatwhitespace=true,              % let linebreaks happen at whitespace
+showspaces=false,                    % true: show spaces with a particular underscore
+aboveskip=1ex,
+frame=trbl,                          % top+right+bottom+left (TB draws double lines at top + bottom)
+%framerule=0.4pt                     % thickness of frame
+rulecolor=\color{black},             % frame color
+backgroundcolor=\color{yellow!10},
+xleftmargin=5pt,
+xrightmargin=5pt,
+%numbers=left,                       % put line numbers on the left
+%stepnumber=2,                       % stepnumber=1 numbers each line, =n every n lines
+}
+\lstset{style=c@mmon}
+
+%--- Typesetting LaTeX ---
+\lstnewenvironment{latexcode}{\lstset{language=[LaTeX]TeX,style=c@mmon}}{}
+\newcommand{\inputlatex}[1]{\lstset{language=[LaTeX]TeX,style=c@mmon}%
+  \lstinputlisting{#1}}
+\lstnewenvironment{latexcode:nt}{\lstset{language=[LaTeX]TeX,style=c@mmon}}{}
+
+%--- C++ ---
+
+\lstdefinestyle{cppstyle}{
+language=c++,
+style=c@mmon,
+stringstyle=\color{stringcolour},
+showstringspaces=false,
+alsoletter={1234567890},
+keywordstyle=\color{keywordcolour}\bfseries,
+emph={auto,const,struct,%
+break,continue,else,for,switch,void,%
+case,default,enum,goto,register,sizeof,typedef,%
+char,do,extern,if,return,static,union,while,%
+asm,dynamic_cast,namespace,reinterpret_cast,try,%
+bool,explicit,new,static_cast,typeid,volatile,%
+catch,operator,template,typename,%
+class,friend,private,this,using,%
+const_cast,inline,public,throw,virtual,%
+delete,mutable,protected,wchar_t,%
+or,and,xor,not,assert},
+emphstyle=\color{blue}\bfseries,
+emph={[2]true, false, NULL},
+emphstyle=[2]\color{keywordcolour},
+emph={[3]double,float,int,short,unsigned,long,signed},
+emphstyle=[3]\color{blue},
+emph={[4]1, 2, 3, 4, 5, 6, 7, 8, 9, 0},
+emph={[4]cos,sin,tan,acos,asin,atan,atan2,cosh,sinh,tanh,%
+exp,frexp,ldexp,log,log10,modf,pow,sqrt,ceil,fabs,floor,fmod},
+emphstyle=[4]\color{numpycolour},
+literate=*%
+{:}{{\literatecolour:}}{1}%
+{=}{{\literatecolour=}}{1}%
+{-}{{\literatecolour-}}{1}%
+{+}{{\literatecolour+}}{1}%
+{*}{{\literatecolour*}}{1}%
+{!}{{\literatecolour!}}{1}%
+{[}{{\literatecolour[}}{1}%
+{]}{{\literatecolour]}}{1}%
+{<}{{\literatecolour<}}{1}%
+{>}{{\literatecolour>}}{1}%
+{>>>}{{\textcolor{promptcolour}{>>>}}}{1}%
+,%
+commentstyle=\color{commentcolour}\slshape,
+morecomment=[l][commentstyle]{//},
+morecomment=[s][commentstyle]{/*}{*/},
+morestring=[b][stringstyle]",
+morestring=[d][stringstyle]'
+}
+
+\newcommand{\inputcpp}[1]{\lstinputlisting[style=cppstyle, title={\codetitlestyle{C++ code}}, belowcaptionskip=\belowtitleskip]{#1}}
+\lstnewenvironment{c++}[1][]{\lstset{style=cppstyle, title={\codetitlestyle{C++ code}}, belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{c++:nt}[1][]{\lstset{style=cppstyle}}{}
+\newcommand{\cppinline}{\lstinline[style=cppstyle,basicstyle=\ttfamily]}
+
+%--- Python and Cython ---
+
+ \lstdefinestyle{pythonstyle}{
+ language=python,
+ showtabs=true,
+ tab=,
+ tabsize=2,
+ basicstyle=\ttfamily\footnotesize,
+ stringstyle=\color{stringcolour},
+ showstringspaces=false,
+ alsoletter={1234567890},
+ otherkeywords={\ , \}, \{, \%, \&, \|},
+ keywordstyle=\color{keywordcolour}\bfseries,
+ emph={and,break,class,continue,def,yield,del,elif ,else,%
+ except,exec,finally,for,from,global,if,import,in,%
+ lambda,not,or,pass,print,raise,return,try,while,assert},
+ emphstyle=\color{blue}\bfseries,
+ emph={[2]True, False, None},
+ emphstyle=[2]\color{keywordcolour},
+ emph={[3]object,type,isinstance,copy,deepcopy,zip,enumerate,reversed,list,len,dict,tuple,xrange,append,execfile,real,imag,reduce,str,repr},
+ emphstyle=[3]\color{commandcolour},
+ emph={Exception,NameError,IndexError,SyntaxError,TypeError,ValueError,OverflowError,ZeroDivisionError},
+ emphstyle=\color{exceptioncolour}\bfseries,
+ commentstyle=\color{commentcolour}\slshape,
+ emph={[4]ode, fsolve, sqrt, exp, sin, cos, arccos, pi,  array, norm, solve, dot, arange, , isscalar, max, sum, flatten, shape, reshape, find, any, all, abs, plot, linspace, legend, quad, polyval,polyfit, hstack, concatenate,vstack,column_stack,empty,zeros,ones,rand,vander,grid,pcolor,eig,eigs,eigvals,svd,qr,tan,det,logspace,roll,min,mean,cumsum,cumprod,diff,vectorize,lstsq,cla,eye,xlabel,ylabel,squeeze},
+ emphstyle=[4]\color{numpycolour},
+ emph={[5]__init__,__add__,__mul__,__div__,__sub__,__call__,__getitem__,__setitem__,__eq__,__ne__,__nonzero__,__rmul__,__radd__,__repr__,__str__,__get__,__truediv__,__pow__,__name__,__future__,__all__},
+ emphstyle=[5]\color{specmethodcolour},
+ emph={[6]assert,range,yield},
+ emphstyle=[6]\color{keywordcolour}\bfseries,
+ literate=*%
+ {:}{{\literatecolour:}}{1}%
+ {=}{{\literatecolour=}}{1}%
+ {-}{{\literatecolour-}}{1}%
+ {+}{{\literatecolour+}}{1}%
+ {*}{{\literatecolour*}}{1}%
+ {/}{{\literatecolour/}}{1}%
+ {!}{{\literatecolour!}}{1}%
+ {[}{{\literatecolour[}}{1}%
+ {]}{{\literatecolour]}}{1}%
+ {<}{{\literatecolour<}}{1}%
+ {>}{{\literatecolour>}}{1}%
+ {>>>}{{\textcolor{promptcolour}{>>>}}}{1}%
+ ,%
+ breaklines=true,
+ breakatwhitespace= true,
+ aboveskip=1ex,
+ frame=trbl,
+ framesep=.3ex,
+ rulecolor=\color{black!40},
+ backgroundcolor=\color{yellow!10}
+}
+
+
+ \lstdefinestyle{cythonstyle}{
+ language=cython,
+ showtabs=true,
+ tab=,
+ tabsize=2,
+ basicstyle=\ttfamily\footnotesize,
+ stringstyle=\color{stringcolour},
+ showstringspaces=false,
+ alsoletter={1234567890},
+ otherkeywords={\ , \}, \{, \%, \&, \|},
+ keywordstyle=\color{keywordcolour}\bfseries,
+ emph={and,break,class,continue,def,cdef,cpdef,yield,del,elif ,else,%
+ except,exec,finally,for,from,global,if,import,in,%
+ lambda,not,or,pass,print,raise,return,try,while,assert,cdef,cpdef},
+ emphstyle=\color{blue}\bfseries,
+ emph={[2]True, False, None},
+ emphstyle=[2]\color{keywordcolour},
+ emph={[3]object,type,isinstance,copy,deepcopy,zip,enumerate,reversed,list,len,dict,tuple,xrange,append,execfile,real,imag,reduce,str,repr,float,int,ndarray,complex,double},
+ emphstyle=[3]\color{commandcolour},
+ emph={Exception,NameError,IndexError,SyntaxError,TypeError,ValueError,OverflowError,ZeroDivisionError},
+ emphstyle=\color{exceptioncolour}\bfseries,
+ commentstyle=\color{commentcolour}\slshape,
+ emph={[4]ode, fsolve, sqrt, exp, sin, cos, arccos, pi,  array, norm, solve, dot, arange, , isscalar, max, sum, flatten, shape, reshape, find, any, all, abs, plot, linspace, legend, quad, polyval,polyfit, hstack, concatenate,vstack,column_stack,empty,zeros,ones,rand,vander,grid,pcolor,eig,eigs,eigvals,svd,qr,tan,det,logspace,roll,min,mean,cumsum,cumprod,diff,vectorize,lstsq,cla,eye,xlabel,ylabel,squeeze},
+ emphstyle=[4]\color{numpycolour},
+ emph={[5]__init__,__add__,__mul__,__div__,__sub__,__call__,__getitem__,__setitem__,__eq__,__ne__,__nonzero__,__rmul__,__radd__,__repr__,__str__,__get__,__truediv__,__pow__,__name__,__future__,__all__},
+ emphstyle=[5]\color{specmethodcolour},
+ emph={[6]assert,range,yield},
+ emphstyle=[6]\color{keywordcolour}\bfseries,
+ literate=*%
+ {:}{{\literatecolour:}}{1}%
+ {=}{{\literatecolour=}}{1}%
+ {-}{{\literatecolour-}}{1}%
+ {+}{{\literatecolour+}}{1}%
+ {*}{{\literatecolour*}}{1}%
+ {/}{{\literatecolour/}}{1}%
+ {!}{{\literatecolour!}}{1}%
+ {[}{{\literatecolour[}}{1}%
+ {]}{{\literatecolour]}}{1}%
+ {<}{{\literatecolour<}}{1}%
+ {>}{{\literatecolour>}}{1}%
+ {>>>}{{\textcolor{promptcolour}{>>>}}}{1}%
+ ,%
+ breaklines=true,
+ breakatwhitespace= true,
+ aboveskip=1ex,
+ frame=trbl,
+ framesep=.3ex,
+ rulecolor=\color{black!40},
+ backgroundcolor=\color{yellow!10}
+}
+
+\newcommand{\inputpython}[1]{\lstinputlisting[style=pythonstyle,title={\codetitlestyle{Python code }},belowcaptionskip=\belowtitleskip]{#1}}
+\lstnewenvironment{python}[1][]{\lstset{style=pythonstyle,title={\codetitlestyle{Python code }},belowcaptionskip=\belowtitleskip}}{}
+%\lstnewenvironment{python}[1][]{\lstset{style=pythonstyle,title={\codetitlestyle{Python code }},belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{python:nt}[1][]{\lstset{style=pythonstyle}}{}
+\newcommand{\pythoninline}{\lstinline[style=pythonstyle,basicstyle=\ttfamily]}
+
+
+\newcommand{\inputcython}[1]{\lstinputlisting[style=cythonstyle,title={\codetitlestyle{Cython code }},belowcaptionskip=\belowtitleskip]{#1}}
+\lstnewenvironment{cython}[1][]{\lstset{style=cythonstyle,title={\codetitlestyle{Cython code }},belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{cython:nt}[1][]{\lstset{style=cythonstyle}}{}
+\newcommand{\cythoninline}{\lstinline[style=cythonstyle,basicstyle=\ttfamily]}
+
+%--- FORTRAN ---
+
+% Note: this is basically FORTRAN 77, not 90, 95, 2003/2008.
+\lstdefinestyle{fortranstyle}{
+language=fortran,
+style=c@mmon,
+stringstyle=\color{stringcolour},
+showstringspaces=false,
+alsoletter={1234567890},
+keywordstyle=\color{keywordcolour}\bfseries,
+emph={auto,do,while,if,else,end,endif,enddo,%
+subroutine,function,format,program},
+emphstyle=\color{blue}\bfseries,
+emphstyle=[2]\color{keywordcolour},
+emph={[3]double,real,precision,integer,logical},
+emphstyle=[3]\color{blue},
+emph={[4]1, 2, 3, 4, 5, 6, 7, 8, 9, 0},
+emph={[4]cos,sin,tan,acos,asin,atan,atan2,cosh,sinh,tanh,%
+exp,frexp,ldexp,log,log10,modf,pow,sqrt,ceil,fabs,floor,fmod},
+emphstyle=[4]\color{numpycolour},
+literate=*%
+{:}{{\literatecolour:}}{1}%
+{=}{{\literatecolour=}}{1}%
+{-}{{\literatecolour-}}{1}%
+{+}{{\literatecolour+}}{1}%
+{*}{{\literatecolour*}}{1}%
+{!}{{\literatecolour!}}{1}%
+{[}{{\literatecolour[}}{1}%
+{]}{{\literatecolour]}}{1}%
+{<}{{\literatecolour<}}{1}%
+{>}{{\literatecolour>}}{1}%
+,%
+commentstyle=\color{commentcolour}\slshape,
+morecomment=[l][commentstyle]{C},  % need ! as well for F90
+morestring=[b][stringstyle]",
+morestring=[d][stringstyle]'
+}
+
+\newcommand{\inputfortran}[1]{\lstinputlisting[style=fortranstyle, title={\codetitlestyle{FORTRAN code}}, belowcaptionskip=\belowtitleskip]{#1}}
+\lstnewenvironment{fortran}[1][]{\lstset{style=fortranstyle, title={\codetitlestyle{FORTRAN code}}, belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{fortran:nt}[1][]{\lstset{style=fortranstyle}}{}
+\newcommand{\fortraninline}{\lstinline[style=fortranstyle,basicstyle=\ttfamily]}
+
+
+%--- XML ---
+
+\lstdefinestyle{xmlstyle}{
+language=xml,
+showtabs=true,
+tab=,
+tabsize=2,
+basicstyle=\ttfamily\footnotesize,
+stringstyle=\color{stringcolour},
+showstringspaces=false,
+alsoletter={1234567890},
+emphstyle=\color{exceptioncolour}\bfseries,
+commentstyle=\color{commentcolour}\slshape,
+breaklines=true,
+breakatwhitespace= true,
+aboveskip=1ex,
+frame=trbl,
+framesep=.3ex,
+rulecolor=\color{black!40},
+backgroundcolor=\color{yellow!10}
+}
+
+\newcommand{\inputxml}[1]{\lstinputlisting[style=xmlstyle, title={\codetitlestyle{XML code}}, belowcaptionskip=\belowtitleskip]{#1}}
+\lstnewenvironment{xml}[1][]{\lstset{style=xmlstyle, title={\codetitlestyle{XML code}}, belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{xml:nt}[1][]{\lstset{style=xmlstyle}}{}
+
+%--- Typesetting Bash ---
+
+\lstdefinestyle{bashstyle}{
+language=bash,
+showtabs=true,
+tab=,
+tabsize=2,
+basicstyle=\ttfamily\footnotesize,
+stringstyle=\color{stringcolour},
+showstringspaces=false,
+alsoletter={1234567890},
+otherkeywords={\ , \}, \{, \%, \&, \|},
+emphstyle=\color{exceptioncolour}\bfseries,
+commentstyle=\color{commentcolour}\slshape,
+breaklines=true,
+breakatwhitespace= true,
+aboveskip=1ex,
+frame=trbl,
+framesep=.3ex,
+rulecolor=\color{black!40},
+backgroundcolor=\color{yellow!10}
+}
+
+\newcommand{\inputbash}[1]{\lstinputlisting[style=bashstyle, title={\codetitlestyle{Bash code}}, belowcaptionskip=\belowtitleskip]{#1}}
+\lstnewenvironment{bash}[1][]{\lstset{style=bashstyle, title={\codetitlestyle{Bash code}}, belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{bash:nt}[1][]{\lstset{style=bashstyle}}{}
+\lstnewenvironment{csh}[1][]{\lstset{style=bashstyle, title={\codetitlestyle{Csh code}}, belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{csh:nt}[1][]{\lstset{style=bashstyle}}{}
+
+%--- SWIG ---
+
+\newcommand{\inputswig}[1]{\lstinputlisting[style=cppstyle, title={\codetitlestyle{SWIG code}}, belowcaptionskip=\belowtitleskip]{#1}}
+\lstnewenvironment{swigcode}[1][]{\lstset{style=cppstyle, title={\codetitlestyle{SWIG code}}, belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{swigcode:nt}[1][]{\lstset{style=cppstyle}}{}
+
+%--- UFL ---
+
+\newcommand{\inputufl}[1]{\lstinputlisting[style=pythonstyle, title={\codetitlestyle{UFL code}}, belowcaptionskip=\belowtitleskip]{#1}}
+\lstnewenvironment{uflcode}[1][]{\lstset{style=pythonstyle, title={\codetitlestyle{UFL code}}, belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{uflcode:nt}[1][]{\lstset{style=pythonstyle}}{}
+
+%--- MATLAB ---
+
+% Note: problem with too large width of frame
+\lstnewenvironment{matlab}[1][]{
+\lstset{
+language=matlab,
+basicstyle=\ttfamily\small,
+backgroundcolor=\color{yellow!10}
+frame=trbl,
+rulecolor=\color{black!40},
+emphstyle=\color{blue},
+commentstyle=\color{commentcolour}\slshape,
+keywordstyle=\color{keywordcolour}\bfseries,
+}}{}
+
+%--- Other ---
+
+\lstdefinestyle{anycodestyle}{
+language=bash,
+showtabs=true,
+tab=,
+tabsize=2,
+basicstyle=\ttfamily\footnotesize,
+stringstyle=\color{stringcolour},
+showstringspaces=false,
+alsoletter={1234567890},
+emphstyle=\color{exceptioncolour}\bfseries,
+commentstyle=\color{commentcolour}\slshape,
+breaklines=true,
+breakatwhitespace= true,
+aboveskip=1ex,
+frame=trbl,
+framesep=.3ex,
+rulecolor=\color{black!40},
+backgroundcolor=\color{yellow!10}
+}
+
+\newcommand{\inputanycode}[1]{\lstinputlisting[style=anycodestyle, title={\codetitlestyle{Code}}, belowcaptionskip=\belowtitleskip]{#1}}
+\lstnewenvironment{anycode}[1][]{\lstset{style=anycodestyle, title={\codetitlestyle{Code}}, belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{anycode:nt}[1][]{\lstset{style=anycodestyle}}{}
+
+%--- Output from running programs ---
+
+\lstnewenvironment{progoutput}[1][]{\lstset{style=gencodestyle, title={\codetitlestyle{Output}}, belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{progoutput:nt}[1][]{\lstset{style=gencodestyle}}{}
+
+%--- Generated code ---
+
+\lstdefinestyle{gencodestyle}{
+language=bash,
+showtabs=true,
+tab=,
+tabsize=2,
+basicstyle=\ttfamily\footnotesize,
+stringstyle=\color{stringcolour},
+showstringspaces=false,
+alsoletter={1234567890},
+emphstyle=\color{exceptioncolour}\bfseries,
+commentstyle=\color{commentcolour}\slshape,
+breaklines=true,
+breakatwhitespace= true,
+aboveskip=1ex,
+frame=trbl,
+framesep=.3ex,
+rulecolor=\color{black!40},
+backgroundcolor=\color{yellow!10}
+}
+
+\newcommand{\inputgencode}[1]{\lstinputlisting[style=cppstyle, title={\codetitlestyle{Generated code}}, belowcaptionskip=\belowtitleskip]{#1}}
+\lstnewenvironment{gencode}[1][]{\lstset{style=gencodestyle, title={\codetitlestyle{Generated code}}, belowcaptionskip=\belowtitleskip}}{}
+\lstnewenvironment{gencode:nt}[1][]{\lstset{style=gencodestyle}}{}
diff --git a/9.2/paper.bib b/9.2/paper.bib
new file mode 100644 (file)
index 0000000..567e8fc
--- /dev/null
@@ -0,0 +1,900 @@
+%% 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/developer/doxygen/deal.II/changes_between_8_3_and_8_4.html}},
+  Url                      = {https://www.dealii.org/developer/doxygen/deal.II/changes_between_8_3_and_8_4.html}
+}
+
+@Misc{changes85,
+  Title                    = {List of Changes},
+  Note                     = {\url{https://www.dealii.org/developer/doxygen/deal.II/changes_between_8_4_2_and_8_5_0.html}},
+  Url                      = {https://www.dealii.org/developer/doxygen/deal.II/changes_between_8_4_2_and_8_5_0.html}
+}
+
+@Misc{changes90,
+  key={List of Changes},
+  Title                    = {List of Changes for 9.0},
+  Note                     = {\url{https://www.dealii.org/developer/doxygen/deal.II/changes_between_8_5_and_9_0.html}},
+  Url                      = {https://www.dealii.org/developer/doxygen/deal.II/changes_between_8_5_0_and_9_0.html}
+}
+
+@Misc{changes91,
+  key={List of Changes},
+  Title                    = {List of Changes for 9.1},
+  Note                     = {\url{https://www.dealii.org/developer/doxygen/deal.II/changes_between_9_0_1_and_9_1_0.html}},
+  Url                      = {https://www.dealii.org/developer/doxygen/deal.II/changes_between_9_0_1_and_9_1_0.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},
+}
+
+ @article{dealII85,
+    title   = {The \texttt{deal.II} Library, Version 8.5},
+    author  = {D. Arndt and W. Bangerth and D. Davydov and T. Heister and
+             L. Heltai and M. Kronbichler and M. Maier and J.-P. Pelteret
+             and B. Turcksin and D. Wells},
+    journal = {Journal of Numerical Mathematics},
+    year    = {2017},
+    volume =    25,
+    number =    3,
+    pages =     {137--146},
+    Doi     = {10.1515/jnma-2016-1045}
+  }
+
+@article{dealII84,
+                   title   = {The \texttt{deal.II} Library, Version 8.4},
+                   author  = {W. Bangerth and D. Davydov and T. Heister and
+                     L. Heltai and G. Kanschat and M. Kronbichler and M. Maier
+                     and B. Turcksin and D. Wells},
+                   journal = {Journal of Numerical Mathematics},
+                   year    = {2016},
+                   volume  = {24},
+                   number  = {3},
+                   pages   = {135--141},
+                   doi     = {10.1515/jnma-2016-1045}
+                 }
+
+
+
+@article{dealII90,
+title = {The \texttt{deal.II} Library, Version 9.0},
+author  = {G. Alzetta and D. Arndt and W. Bangerth and V. Boddu and
+               B. Brands and D. Davydov and R. Gassmoeller and T. Heister and
+               L. Heltai and K. Kormann and M. Kronbichler and M. Maier and
+               J.-P. Pelteret and B. Turcksin and D. Wells},
+journal = {J. Numer. Math.},
+volume  = "26",
+number = "4",
+pages   = "173--184",
+year    = 2018,
+doi = "10.1515/jnma-2018-0054"
+}
+
+
+
+%% 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{SartoriGiulianiBardelloni-2018-a,
+       Author = {Sartori, Alberto and Giuliani, Nicola and Bardelloni, Mauro and Heltai, Luca},
+       Journal = {SoftwareX},
+       Pages = {318--327},
+       Title = {{deal2lkit: A toolkit library for high performance programming in deal.II}},
+       Volume = {7},
+       Year = {2018}}
+
+
+@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}}
+
+@Article{KronbichlerWall2018,
+  author =       {Kronbichler, M. and Wall, W. A.},
+  title =        {A performance comparison of continuous and discontinuous {G}alerkin
+                  methods with fast multigrid solvers},
+  journal =      {SIAM J. Sci. Comput.},
+  pages =        {A3423--A3448},
+  volume =       40,
+  number =       5,
+  year =         2018,
+  doi =          {10.1137/16M110455X}}
+
+@Article{KronbichlerKormann2019,
+  author =       {M. Kronbichler and K. Kormann},
+  title =        {Fast matrix-free evaluation of discontinuous {G}alerkin finite element operators},
+  journal =      {ACM Trans. Math. Soft.},
+  volume =       {in press},
+  pages =        {1--37},
+  year =         2019}
+
+@Article{KronbichlerLjungkvist2019,
+  author =       {Kronbichler, M. and Ljungkvist, K.},
+  title =        {Multigrid for Matrix-Free High-Order Finite Element Computations on Graphics Processors},
+  journal =      {ACM Trans. Parallel Comput.},
+  volume =       {6},
+  number =       {1},
+  pages =        {2/1--32},
+  year =         2019}
+
+
+@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{TKB16,
+  author =       {B. Turcksin and M. Kronbichler and W. Bangerth},
+  title =        {\textit{WorkStream} -- a design pattern for multicore-enabled finite element computations},
+  journal =      {ACM Transactions on Mathematical Software},
+  year =         2016,
+  volume =       43,
+  number =       1,
+  pages =        {2/1--2/29}
+}
+
+@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.org}",
+    Year     = "2018"}
+
+# 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 L. Dalcin and V. Eijkhout and W.~D. Gropp
+                      and D. Karpeyev and D. Kaushik and M.~G. Knepley
+                      and D. May and L. Curfman McInnes and R. Mills and T. Munson
+                      and K. Rupp and P. Sanan B.~F. Smith and S. Zampini
+                      and H. Zhang 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 = {2018}
+          }
+
+@TechReport{petsc-user-ref,
+            author = {S. Balay and S. Abhyankar and M.~F. Adams and J. Brown and P. Brune
+                      and K. Buschelman and L. Dalcin and V. Eijkhout and W.~D. Gropp
+                      and D. Karpeyev and D. Kaushik and M.~G. Knepley
+                      and D. May and L. Curfman McInnes and R. Mills and T. Munson
+                      and K. Rupp and P. Sanan B.~F. Smith and S. Zampini
+                      and H. Zhang and H. Zhang},
+            title  = {{PETS}c Users Manual},
+            institution = {Argonne National Laboratory},
+            year   = 2018,
+            number = {ANL-95/11 - Revision 3.9},
+            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}
+
+@Article{Burstedde2018,
+  author =       {C. Burstedde},
+  title =        {Parallel tree algorithms for {AMR} and non-standard data access},
+  journal =      {arXiv e-prints},
+  keywords =     {Computer Science - Distributed, Parallel, and Cluster Computing, 65D18, 65M50, 65Y05, 68W10},
+  year =         2018,
+  month =        {Mar},
+  eid =          {arXiv:1803.08432},
+  pages =        {arXiv:1803.08432},
+  archivePrefix = {arXiv},
+  eprint =       {1803.08432},
+  primaryClass = {cs.DC},
+  adsurl =       {https://ui.adsabs.harvard.edu/abs/2018arXiv180308432B},
+  adsnote =      {Provided by the SAO/NASA Astrophysics Data System}
+}
+
+@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{ginkgo-web-page,
+  key = {ginkgo},
+  title = {Ginkgo: high-performance linear algebra library for manycore
+    systems},
+  note ={\url{https://github.com/ginkgo-project/ginkgo}}
+}
+
+@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{symengine-web-page,
+  key =          {symengine},
+  title =        {{SymEngine: fast symbolic manipulation library, written in C++}},
+  note =         {\url{https://github.com/symengine/symengine}, \url{http://sympy.org/}}}
+
+@Misc{hdf5,
+    author = {{The HDF Group}},
+    title = "{Hierarchical Data Format, version 5}",
+    year = {1997-2018},
+    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},
+        number = {1},
+        pages = {1--24},
+        volume = {72},
+        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{Davydov2016,
+  Author = {Denis Davydov and Tymofiy Gerasimov and Jean-Paul Pelteret and Paul Steinmann},
+       Day = {12},
+       Doi = {10.1186/s40323-017-0093-0},
+       Issn = {2213-7467},
+       Journal = {Advanced Modeling and Simulation in Engineering Sciences},
+       Month = {Dec},
+       Number = {1},
+       Pages = {7},
+       Title = {Convergence study of the h-adaptive {PUM} and the hp-adaptive {FEM} applied to eigenvalue problems in quantum mechanics},
+       Volume = {4},
+       Year = {2017},
+}
+
+@misc{gsl2016,
+    author        = {Galassi, M and Davies, J and Theiler, J and Gough, B and Jungman, G and Alken, P and Booth, M and Rossi, F and Ulerich, R},
+    title         = {GNU Scientific Library Reference Manual (Edition 2.3)},
+    journal       = {Library available online at http://www. gnu. org/software/gsl},
+    year          = {2016}
+}
+
+@misc{nanoflann,
+  author = {Blanco, Jose Luis and Rai, Prankal Kumar},
+  title = {nanoflann: a {C}++ header-only fork of {FLANN}, a library for
+    {N}earest {N}eighbor ({NN}) with {KD}-trees},
+  howpublished = {\url{https://github.com/jlblancoc/nanoflann}},
+  year = {2014}
+}
+
+@inproceedings{adol-c,
+  author = {A. Walther and A. Griewank},
+  title = {Getting started with {ADOL}-{C}},
+  booktitle = {Combinatorial Scientific Computing},
+  publisher = {U. Naumann and O.Schenk},
+  series = {Chapman-Hall CRC Computational Science},
+  pages = {181-202},
+  year = {2012}
+}
+
+@Article{Griewank1996a,
+  author    = {Griewank, Andreas and Juedes, David and Utke, Jean},
+  title     = {Algorithm 755: {ADOL-C}: a package for the automatic differentiation of algorithms written in {C/C++}},
+  journal   = {ACM Transactions on Mathematical Software (TOMS)},
+  year      = {1996},
+  volume    = {22},
+  number    = {2},
+  pages     = {131--167},
+  doi       = {10.1145/229473.229474},
+  publisher = {ACM},
+}
+
+@article{sundials,
+  title={{SUNDIALS}: Suite of nonlinear and differential/algebraic equation solvers},
+  author={Hindmarsh, Alan C and Brown, Peter N and Grant, Keith E and Lee, Steven L and Serban, Radu and Shumaker, Dan E and Woodward, Carol S},
+  journal={ACM Transactions on Mathematical Software (TOMS)},
+  volume={31},
+  number={3},
+  pages={363--396},
+  year={2005},
+  publisher={ACM}
+}
+
+@article{assimp,
+  title={Open asset import library (assimp)},
+  author={Schulze, Thomas and Gessler, Alexander and Kulling, Kim and Nadlinger, David and Klein, Jonathan and Sibly, Mark and Gubisch, Matthias},
+  journal={Computer Software, URL: https://github. com/assimp/assimp},
+  year={2012}
+}
+
+@Misc{clang-tidy,
+  Title                    = {{Clang-Tidy}},
+  Author                   = {LLVM},
+  HowPublished             = {\url{http://clang.llvm.org/extra/clang-tidy/}},
+}
+
+@Misc{coverity,
+  Title                    = {{C}overity {S}can ({Synopsys, Inc.})},
+  Key = {Coverity},
+  HowPublished             = {\url{https://scan.coverity.com}},
+}
+
+@Article{GLHPB18,
+  author =       {R. Gassm{\"o}ller and H. Lokavarapu and E. Heien and E. G. Puckett and W. Bangerth},
+  title =        {Flexible and scalable particle-in-cell methods with adaptive mesh
+    refinement for geodynamic computations},
+  journal =      {submitted},
+  year =         {2018},
+  OPTkey =       {},
+  OPTvolume =    {},
+  OPTnumber =    {},
+  OPTpages =     {},
+  OPTmonth =     {},
+  OPTnote =      {},
+  OPTannote =    {}
+}
+
+
+@TechReport{GHPB16,
+  author =       {R. Gassm{\"o}ller and E. Heien and E. G. Puckett and W. Bangerth},
+  title =        {Flexible and scalable particle-in-cell methods for massively parallel computations},
+  institution =  {arXiv:1612.03369},
+  year =         2016}
+
+
+@Article{KHB12,
+  author =      {M. Kronbichler and T. Heister and W. Bangerth},
+  title =       {High Accuracy Mantle Convection Simulation through Modern Numerical Methods},
+  journal =     {Geophysics Journal International},
+  year =        2012,
+  volume =      191,
+  pages =       {12--29}}
+
+@Article{HDGB17,
+  author =       {T. Heister and J. Dannberg and R. Gassm{\"o}ller and W. Bangerth},
+  title =        {High Accuracy Mantle Convection Simulation through Modern Numerical Methods. {II}: Realistic Models and Problems},
+  journal =      {Geophysics Journal International},
+  year =         2017,
+  volume =    210,
+  pages =     {833--851}}
+
+@techreport{ridzal2014rapid,
+  title={Rapid Optimization Library.},
+  author={Ridzal, Denis and Kouri, Drew Philip},
+  year={2014},
+  institution={Sandia National Laboratories (SNL-NM), Albuquerque, NM (United States)}
+}
+
+@BOOK{slug,
+  AUTHOR = {Blackford, L. S. and Choi, J. and Cleary, A. and
+            D'Azevedo, E. and Demmel, J. and Dhillon, I. and
+            Dongarra, J. and Hammarling, S. and Henry, G. and
+            Petitet, A. and Stanley, K. and Walker, D. and
+            Whaley, R. C.},
+  TITLE = {{ScaLAPACK} Users' Guide},
+  PUBLISHER = {Society for Industrial and Applied Mathematics},
+  YEAR = {1997},
+  ADDRESS = {Philadelphia, PA},
+  ISBN = {0-89871-397-8 (paperback)}
+}
+
+@article{GiulianiMolaHeltai-2018-a,
+       Author = {Giuliani, Nicola and Mola, Andrea and Heltai, Luca},
+       Journal = {Advances in Engineering Software},
+       Number = {March},
+       Pages = {39--58},
+       Title = {{$\pi$-BEM: A flexible parallel implementation for adaptive, geometry aware, and high order boundary element methods}},
+       Volume = {121},
+       Year = {2018}}
+
+@article{geuzaine2009gmsh,
+  title={Gmsh: A 3-D finite element mesh generator with built-in pre-and post-processing facilities},
+  author={Geuzaine, Christophe and Remacle, Jean-Fran{\c{c}}ois},
+  journal={International journal for numerical methods in engineering},
+  volume={79},
+  number={11},
+  pages={1309--1331},
+  year={2009},
+  publisher={Wiley Online Library}
+}
+
+@TechReport{ClevengerHeisterKanschatKronbichler2019,
+  author =       {Clevenger, T. C. and Heister, T. and Kanschat, G. and Kronbichler, M.},
+  title =        {A flexible, parallel, adaptive geometric multigrid method for {FEM}},
+  institution =  {arXiv:1904.03317},
+  year =         2019}
+
+
+@BOOK{lapack,
+    AUTHOR = {Anderson, E. and Bai, Z. and Bischof, C. and
+              Blackford, S. and Demmel, J. and Dongarra, J. and
+              Du Croz, J. and Greenbaum, A. and Hammarling, S. and
+              McKenney, A. and Sorensen, D.},
+    TITLE = {{LAPACK} Users' Guide},
+    EDITION = {Third},
+    PUBLISHER = {Society for Industrial and Applied Mathematics},
+    YEAR = {1999},
+    ADDRESS = {Philadelphia, PA},
+    ISBN = {0-89871-447-8 (paperback)}
+}
+
+@misc{Pelteret2016a,
+  author    = {Pelteret, J-P. V. and McBride, A.},
+  title     = {The \texttt{deal.II} code gallery: Quasi-Static Finite-Strain Compressible Elasticity},
+  year      = {2016},
+  url       = {https://dealii.org/developer/doxygen/deal.II/code_gallery_Quasi_static_Finite_strain_Compressible_Elasticity.html},
+  note      = {Accessed April 2018. doi: \href{http://dx.doi.org/10.5281/zenodo.1228964}{\texttt{10.5281/zenodo.1228964}}},
+  doi       = {10.5281/zenodo.1228964},
+}
+
+@InCollection{Bartlett2006a,
+  author        = {Bartlett, R. A. and Gay, D. M. and Phipps, E. T.},
+  title         = {Automatic Differentiation of C++ Codes for Large-Scale Scientific Computing},
+  booktitle     = {International Conference on Computational Science {\textendash} {ICCS} 2006},
+  publisher     = {Springer Berlin Heidelberg},
+  year          = {2006},
+  editor        = {Alexandrov, V.N. and van Albada, G.D. and Sloot, P.M.A. amd Dongarra, J.},
+  pages         = {525--532},
+  doi           = {10.1007/11758549_73},
+  organization  = {Springer},
+}
+
+@Misc{cusolver,
+  key = {cusolver},
+  title = {cu{SOLVER} {L}ibrary},
+  note = {\url{https://docs.nvidia.com/cuda/cusolver/index.html}}
+}
+
+@Misc{cusparse,
+  key = {cusparse},
+  title = {cu{SPARSE} {L}ibrary},
+  note = {\url{https://docs.nvidia.com/cuda/cusparse/index.html}}
+}
+
+
+@article{BR85,
+  doi = {10.1090/s0025-5718-1985-0771031-7},
+  url = {https://doi.org/10.1090/s0025-5718-1985-0771031-7},
+  year = {1985},
+  publisher = {American Mathematical Society ({AMS})},
+  volume = {44},
+  number = {169},
+  pages = {71--79},
+  author = {Christine Bernardi and Genevi$\lbrace${\`{e}}ve Raugel},
+  title = {Analysis of some finite elements for the {S}tokes problem},
+  journal = {Mathematics of Computation}
+}
+
+@PhdThesis{Zag06,
+  author =       {S. Zaglmayr},
+  title =        {High Order Finite Element Methods for Electromagnetic Field Computation},
+  school =       {Johannes Kepler University, Linz, Austria},
+  year =         2006}
+
+
+@article{Kynch2017,
+  doi = {10.1016/j.compstruc.2016.05.021},
+  url = {https://doi.org/10.1016/j.compstruc.2016.05.021},
+  year = {2017},
+  month = mar,
+  publisher = {Elsevier {BV}},
+  volume = {181},
+  pages = {41--54},
+  author = {R. M. Kynch and P. D. Ledger},
+  title = {Resolving the sign conflict problem for hp{\textendash}hexahedral {N}{\'{e}}d{\'{e}}lec elements with application to eddy current problems},
+  journal = {Computers {\&} Structures}
+}
+
+@inproceedings{ljungkvist2017,
+ author = {Ljungkvist, Karl},
+ title = {Matrix-free Finite-element Computations on Graphics Processors with Adaptively Refined Unstructured Meshes},
+ booktitle = {Proceedings of the 25th High Performance Computing Symposium},
+ series = {HPC '17},
+ year = {2017},
+ isbn = {978-1-5108-3822-2},
+ location = {Virginia Beach, Virginia},
+ pages = {1:1--1:12},
+ articleno = {1},
+ numpages = {12},
+ url = {http://dl.acm.org/citation.cfm?id=3108096.3108097},
+ acmid = {3108097},
+ publisher = {Society for Computer Simulation International},
+ address = {San Diego, CA, USA},
+ keywords = {GPU, adaptive refinement, finite element methods, hanging nodes, matrix free},
+} 
+
diff --git a/9.2/paper.tex b/9.2/paper.tex
new file mode 100644 (file)
index 0000000..476ccfe
--- /dev/null
@@ -0,0 +1,897 @@
+\documentclass{ansarticle-preprint}
+%\usepackage{ucs}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+%\usepackage{cite}
+\usepackage{anslistings}
+\usepackage{multicol}
+\usepackage{pdfsync}
+
+\usepackage{pgfplots}
+\usepackage{pgfplotstable}
+
+\usepackage{fontenc}
+\usepackage{graphicx}
+\usepackage{xspace}
+
+\usepackage[normalem]{ulem}
+
+\pgfplotsset{compat=1.9}
+
+\newcommand{\specialword}[1]{\texttt{#1}}
+\newcommand{\dealii}{{\specialword{deal.II}}\xspace}
+\newcommand{\pfrst}{{\specialword{p4est}}\xspace}
+\newcommand{\trilinos}{{\specialword{Trilinos}}\xspace}
+\newcommand{\aspect}{\specialword{Aspect}\xspace}
+\newcommand{\petsc}{\specialword{PETSc}\xspace}
+\newcommand{\cmake}{{\specialword{CMake}}\xspace}
+\newcommand{\autoconf}{{\specialword{autoconf}}\xspace}
+
+%
+% Author list -- please add yourself in both places below (in
+%                alphabetical order) if you think that your
+%                contributions to the last release warrant this
+%
+
+\hypersetup{
+  pdfauthor={
+%     Daniel Arndt,
+%     Wolfgang Bangerth,
+%     Thomas C. Clevenger,
+%     Denis Davydov,
+%     Marc Fehling,
+%     Daniel Garcia-Sanchez,
+%     Graham Harper,
+    Timo Heister,
+%     Luca Heltai,
+%     Martin Kronbichler,
+%     Ross Maguire Kynch,
+%     Matthias Maier,
+%     Jean-Paul Pelteret,
+%     Bruno Turcksin,
+%     David Wells
+  },
+  pdftitle={The deal.II Library, Version 9.2, 2020},
+}
+
+\title{The \dealii Library, Version 9.2}
+
+% \author[*1]{Daniel Arndt}
+% \affil[1]{Computational Engineering and Energy Sciences Group,
+%   Computional Sciences and Engineering Division,
+%   Oak Ridge National Laboratory, 1 Bethel Valley Rd.,
+%   TN 37831, USA.
+%   {\texttt{\{arndtd,turcksinbr\}@ornl.gov}}}
+% 
+% \author[2]{Wolfgang~Bangerth}
+% \affil[2]{Department of Mathematics, Colorado State University, Fort
+%   Collins, CO 80523-1874, USA.
+%   {\texttt{bangerth@colostate.edu},
+%    \texttt{harper@math.colostate.edu}}}
+% 
+% \author[3]{Thomas~C.~Clevenger}
+% \affil[3]{School of Mathematical and Statistical Sciences,
+%   Clemson University,
+%   Clemson, SC, 29634, USA
+%   {\texttt{\{tcleven, heister\}@clemson.edu}}}
+% 
+% \author[4]{Denis~Davydov}
+% \affil[4]{Chair of Applied Mechanics,
+%   Friedrich-Alexander-Universit\"{a}t Erlangen-N\"{u}rnberg,
+%   Egerlandstr.\ 5,
+%   91058 Erlangen, Germany.
+%   {\texttt{\{denis.davydov,jean-paul.pelteret\}@fau.de}}}
+% 
+% \author[5]{Marc~Fehling}
+% \affil[5]{Institute for Advanced Simulation,
+%   Forschungszentrum J\"{u}lich GmbH,
+%   52425 J\"{u}lich, Germany.
+%   {\texttt{m.fehling@fz-juelich.de}}}
+% 
+% \author[6]{Daniel Garcia-Sanchez}
+% \affil[6]{Sorbonne Universit\'es, UPMC Univ.\ Paris 06, CNRS-UMR 7588,
+%   Institut des NanoSciences de Paris, F-75005, Paris, France
+%   {\texttt{daniel.garcia-sanchez@insp.upmc.fr}}}
+% 
+% \author[2]{Graham Harper}
+% 
+\author[3]{Timo~Heister}
+ \affil[3]{School of Mathematical and Statistical Sciences,
+   Clemson University,
+   Clemson, SC, 29634, USA
+   {\texttt{heister@clemson.edu}}}
+
+% %
+% \author[8]{Luca~Heltai}
+% \affil[8]{SISSA,
+%   International School for Advanced Studies,
+%   Via Bonomea 265,
+%   34136, Trieste, Italy.
+%   {\texttt{luca.heltai@sissa.it}}}
+% 
+% \author[9]{Martin~Kronbichler}
+% \affil[9]{Institute for Computational Mechanics,
+%   Technical University of Munich,
+%   Boltzmannstr.~15, 85748 Garching, Germany.
+%   {\texttt{kronbichler@lnm.mw.tum.de}}}
+% 
+% \author[10]{Ross~Maguire~Kynch}
+% \affil[10]{Zienkiewicz Centre for Computational Engineering,
+%   College of Engineering, Swansea University,
+%   Bay Campus, Fabian Way, Swansea SA1 8EN, Wales, UK.
+%   {\texttt{rkynch@gmail.com}}}
+% 
+% \author[11]{Matthias~Maier}
+% \affil[11]{Department of Mathematics,
+%   Texas A\&M University,
+%   3368 TAMU,
+%   College Station, TX 77845, USA.
+%   {\texttt{maier@math.tamu.edu}}}
+% 
+% \author[4]{Jean-Paul~Pelteret}
+% 
+% \author[*1]{Bruno~Turcksin}
+% 
+% \author[12]{David Wells}
+% \affil[12]{Department of Mathematics, University of North Carolina,
+%   Chapel Hill, NC 27516, USA.
+%   {\texttt{drwells@email.unc.edu}}}
+
+\renewcommand{\labelitemi}{--}
+
+
+\begin{document}
+\maketitle
+
+\footnotetext{%
+  $^\ast$ This manuscript has been authored by UT-Battelle, LLC under Contract No.
+  DE-AC05-00OR22725 with the U.S. Department of Energy. The United States
+  Government retains and the publisher, by accepting the article for
+  publication, acknowledges that the United States Government retains a
+  non-exclusive, paid-up, irrevocable, worldwide license to publish or reproduce
+  the published form of this manuscript, or allow others to do so, for United
+  States Government purposes. The Department of Energy will provide public
+  access to these results of federally sponsored research in accordance with the
+  DOE Public Access Plan (http://energy.gov/downloads/doe-public-access-plan).}
+
+\begin{abstract}
+  This paper provides an overview of the new features of the finite element
+  library \dealii, version 9.1.
+\end{abstract}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Overview}
+
+\dealii version 9.1.0 was released May 21, 2019.
+This paper provides an
+overview of the new features of this release and serves as a citable
+reference for the \dealii software library version 9.1. \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). Downloads are available at
+\url{https://www.dealii.org/} and \url{https://github.com/dealii/dealii}.
+
+The major changes of this release are:
+%
+\begin{itemize}
+  \item Improved support for automatic differentiation (see
+    Section~\ref{subsec:ad}),
+  \item Dedicated support for symbolic algebra (see
+    Section~\ref{subsec:sd}),
+  \item Full support for $hp$~adaptivity in parallel computations (see
+    Section~\ref{subsec:hp}),
+  \item An interface to the HDF5 file format and libraries (see
+    Section~\ref{subsec:hdf5}),
+  \item Significantly extended GPU support (see Section~\ref{subsec:gpu}),
+  \item Parallel geometric multigrid (GMG) improvements (see
+    \cite{ClevengerHeisterKanschatKronbichler2019} and
+    Section~\ref{subsec:gmg}),
+  \item Four new tutorial programs (step-61, step-62, step-63, step-64),
+    as well as one new code gallery program (see
+    Section~\ref{subsec:steps}).
+\end{itemize}
+%
+The major changes are discussed in detail in Section~\ref{sec:major}. There
+are a number of other noteworthy changes in the current \dealii{} release
+that we briefly outline in the remainder of this section:
+%
+\begin{itemize}
+\item
+  The release contains a number of performance improvements and bug fixes for
+  the matrix-free framework. One notable improvement is the support for
+  renumbering of degrees of freedom within the cells for discontinuous
+  elements, avoiding some reshuffling operations across the SIMD lanes
+  with vectorization over several cells and faces, which is especially
+  useful on processors with AVX-512 vectorization (8 doubles), speeding up
+  operations by up to 10\%. Secondly, the strategy for the most efficient
+  tensor product evaluators according to the performance analysis of
+  \cite{KronbichlerKormann2019} in the context of more quadrature points than
+  shape functions has been revised for better performance.
+
+\item A new class \texttt{ParsedConvergenceTable} has been introduced
+  that greatly simplifies the construction of convergence tables,
+  reading the options for the generation of the table from a parameter
+  file, and providing methods that, combined with a parameter file,
+  allow one to generate convergence tables using one-liners in user
+  codes.
+
+\item
+  The \texttt{FE\_BernardiRaugel} class implements the non-standard
+  Bernardi-Raugel (BR) element that can be used to construct a stable
+  velocity-pressure pair for the Stokes equation \cite{BR85}. The BR
+  element is an enriched version of the $Q_1^d$ element with added bubble
+  functions on each edge (in 2d) or face (in 3d). It addresses the fact
+  that the $Q_1^d\times Q_0$ combination is not inf-sup stable (requiring a
+  larger velocity space), and that the $Q_2^d\times Q_0$ combination is
+  stable but converges with only first-order at the cost of the large
+  number of velocity unknowns. The BR space is thus intermediate between the
+  $Q_1^d$ and $Q_2^d$ spaces.
+
+  The element is currently only implemented for parallelogram meshes due to
+  difficulties associated with the mapping of shape functions: The shape
+  functions of the $Q_1^d$ part of the element need to be mapped as
+  scalars, as is common for the vector components of the $Q_1^d$ element;
+  on the other hand, the vector-valued edge bubble functions need to be
+  mapped using the Piola transform as is common for the Raviart-Thomas
+  element. \dealii{} does not currently have the ability to use different
+  mappings for individual shape functions, though this functionality is
+  planned for the next release.
+
+\item
+  The \texttt{FE\_NedelecSZ} class is a new implementation of the
+  N{\'e}d{\'e}lec element on quadrilaterals and hexahedra. It is based on
+  the work of Zaglmayr \cite{Zag06} and overcomes the sign conflict issues
+  present in traditional N{\'e}d{\'e}lec elements that arise from the edge
+  and face parameterizations used in the basis functions. Therefore, this
+  element should provide consistent results for general quadrilateral and
+  hexahedral elements for which the relative orientations of edges and
+  faces (as seen from all adjacent cells) are often difficult to establish.
+  The \texttt{FE\_NedelecSZ} element addresses the sign conflict problem by
+  assigning a globally defined orientation to local edges and faces. A
+  detailed overview of the implementation of the \texttt{FE\_NedelecSZ}
+  element in \dealii{} can be found in \cite{Kynch2017}.
+
+\item All of the elementary geometrical objects of the library (namely
+  \texttt{Point<dim>}, \texttt{Segment<dim>}, and
+  \texttt{BoundingBox<dim>}) have been augmented with the traits
+  needed to comply with \texttt{boost::geometry} concepts. A new
+  interface to \texttt{boost::geometry::index::rtree} has been added
+  that simplifies the construction of spatial indices based on points,
+  bounding boxes, or segments.
+\end{itemize}
+%
+In addition to these changes, the changelog lists more than 200 other
+features and bugfixes.
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Major changes to the library}
+\label{sec:major}
+
+This release of \dealii contains a number of large and significant changes
+that will be discussed in this section.
+
+It of course also contains a
+vast number of smaller changes and added functionality; the details of these
+can be found
+\href{https://dealii.org/developer/doxygen/deal.II/changes_between_9_0_1_and_9_1_0.html}{
+in the file that lists all changes for this release}, see \cite{changes91}.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Improved support for automatic differentiation}
+\label{subsec:ad}
+
+In the previous release, numerous classes that are used to assemble linear systems
+and right hand sides, as well those used to define constitutive laws, were given
+full support for ``white-listed'' automatically differentiable (AD) number types
+from the ADOL-C and Sacado libraries. This included the classes that
+represent the local contributions of one cell to the global linear
+system (i.e., \texttt{FullMatrix} and \texttt{Vector}) as well as the
+classes commonly used for the computations at individual quadrature
+points (primarily the \texttt{Tensor} and \texttt{SymmetricTensor}
+classes of various ranks).
+In the current release we have provided a unified interface to these
+AD libraries, focusing on two specific use contexts:
+\begin{enumerate}
+\item The construction and linearization of finite element residuals; and
+\item The construction and linearization of constitutive model kinetic variables.
+\end{enumerate}
+
+In the first context, the finite element degrees of freedom are considered the
+independent variables. From these primitives, the \texttt{EnergyFunctional} helper
+class in the namespace \texttt{Differentiation::AD} may be used to compute both the
+residual and its linearization by directly defining the contribution to the
+(twice differentiated) scalar total energy functional from each cell. Similarly,
+the \texttt{ResidualLinearization} class requires the (once-differentiated) finite
+element residual to be defined on a per-cell basis,  and this contribution is
+automatically linearized.
+
+The second context aims directly at constitutive model formulations, and serves to
+compute the directional derivatives of components of (multi-field) constitutive laws
+with respect to the scalar, vector, tensor, and symmetric tensor fields in terms
+of which they are parameterized. The \texttt{ScalarFunction} class may be used to
+define a scalar function (such as strain energy function) that may be twice
+differentiated, while the \texttt{VectorFunction} may be used to define a vector
+function (such as a set of kinematic fields) that may be differentiated once.
+Since the total derivatives of all components are computed at once, these two helper
+classes provide an interface to retrieve each sub-component of the gradient and
+Hessian (for a \texttt{ScalarFunction}) or values and Jacobian (for a
+\texttt{VectorFunction}).
+
+Although these aforementioned helper classes have been documented with a specific
+use in mind, they remain generic and may (with a reinterpretation of the meaning of
+the independent and dependent variables) be used for other purposes as well.
+Furthermore, through the implementation of \texttt{TapedDrivers} and
+\texttt{TapelessDrivers} classes that interface with the active AD library, the
+generic helper classes hide library-dependent implementation details and facilitate
+switching between the supported libraries and AD number types based on the
+user's requirements.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Dedicated support for symbolic algebra, including algebra differentiation}
+\label{subsec:sd}
+To complement the automatic differentiation features in \dealii{}, this release sees
+the first step towards integrating and supporting a highly performant computer algebra
+system (CAS) via the SymEngine library \cite{symengine-web-page}.
+This allows the development of exact algebraic expressions using variables that are
+manipulated symbolically and may represent any value (or supported data structure).
+In the context of finite element simulations, typical applications include (but, due to
+the generality of the CAS, are not limited to) the development of constitutive models
+and the implementation of finite element assembly operations through the construction
+and linearization of finite element residuals.
+
+The \texttt{Expression} class in the namespace \texttt{Differentiation::SD} interfaces
+to SymEngine and forms the basis of symbolic computations, offering a full set of
+overloaded operators and a C++ style interface. This class offers the following
+basic functionality:
+\begin{itemize}
+\item symbolic variable definition,
+\item symbolic function definition,
+\item expression creation using standard C++ syntax,
+\item expression parsing,
+\item comparison operations,
+\item logical operations,
+\item conditional expression construction,
+\item differentiation,
+\item substitution (partial and complete), and
+\item serialization.
+\end{itemize}
+\dealii{} now also provides an extensive set of math operations, with a syntax mimicking that used
+in the C++ standard library. Using the \texttt{Expression} class as a basis, we
+have developed a set of functions that can be used to create \dealii{} \texttt{Tensor}s
+and \texttt{SymmetricTensor}s of symbolic variables and symbolic functions. This
+gives full symbolic tensor algebra support using the pre-existing \texttt{Tensor}
+and \texttt{SymmetricTensor} classes and associated functions. We have
+also implemented a set of utility functions with the following features:
+\begin{itemize}
+\item \texttt{differentiate} scalar expressions with respect to other scalar expressions, as well as
+tensors and symmetric tensors of expressions;
+\item \texttt{differentiate} tensors and symmetric tensors of expressions
+with respect to scalar expressions, as well as other tensors and symmetric tensors of expressions;
+\item create symbolic substitution maps;
+\item resolve explicit dependencies between expressions; and
+\item perform scalar and tensor valued substitution (including conversion from symbolic to
+real-valued scalars and tensors).
+\end{itemize}
+
+In the next release we expect to implement classes to assist in performing assembly operations
+in the same spirit as it is already possible using automatic differentiation using the
+\texttt{Differentiation::AD} namespace, although in a fully symbolic manner.
+We will also address performance issues of the \texttt{Expression} class by leveraging
+the optimization capabilities of SymEngine, including common subexpression elimination (CSE),
+as well as by generating high performance code-paths to evaluate these expressions through the
+use of a custom-generated \texttt{std::function} (so-called ``lambda'' optimization) or by
+compiling expressions using the LLVM JIT compiler.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Full support for $hp$~adaptivity in parallel computations}
+\label{subsec:hp}
+
+\dealii{} has had support for $hp$~adaptive methods since around 2005
+(documented in \cite{BangerthKayserHerold2007}) and for parallel
+computations on distributed meshes since around 2010 (see
+\cite{BangerthBursteddeHeisterKronbichler11}), but not for both at the
+same time. The challenges to combine these are related to a number of
+areas:
+\begin{enumerate}
+\item Data structures: The data structures necessary to store the
+  indices of degrees of freedom are substantially more
+  complicated for $hp$~algorithms than for the $h$~adaptive schemes
+  that were already implemented. This is because the number of degrees
+  of freedom per cell is now no longer constant. Furthermore,
+  faces and edges may need to store more than one set of indices if
+  the adjacent cells use different polynomial degrees; in the case of
+  edges, the number of sets of indices may also be of variable size.
+
+  All of this poses challenges in the parallel context because some of
+  the information may not be known, or not be known right away, for
+  cells that are not locally owned (i.e., for ghost and ``artificial''
+  cells), and for which the data structures stored on different
+  processors have to be reconciled.
+
+\item Algorithms: Already for $h$~adaptive meshes, enumerating all
+  degrees of freedom uniquely on the global mesh is difficult, as evidenced by
+  the complications of the algorithms shown in Section 3.1 of
+  \cite{BangerthBursteddeHeisterKronbichler11}, which requires more
+  than one page of text and is implemented in many hundreds of lines of
+  code.
+
+  These difficulties are even more pronounced when using $hp$~adaptivity.
+  The main obstacle is the desire to unify the indices of
+  matching degrees of freedom on adjacent cells whenever elements with
+  continuous polynomials are used. For example, the edge degree of freedom
+  of a $Q_2$~element has to be merged with the middle one of the three
+  edge degrees of freedom of a $Q_4$~element on a neighboring cell.
+  Section 4.2 of \cite{BangerthKayserHerold2007} discusses a sequential algorithm
+  that eliminates one of these degrees of freedom in favor of another,
+  but it introduces a ``master'' and a ``slave'' side of the
+  interface. This is of no major consequence in sequential
+  computations, but is inconvenient in parallel computations if the
+  ``master'' side is a ghost cell whose degree of freedom indices are
+  not (yet) available while enumerating local degrees of freedom, or
+  if the master is an artificial cell whose information will never be
+  available on a processor.
+
+  An earlier implementation of the algorithm enumerating degrees of
+  freedom, already available in \dealii{} 9.0, simply did not unify
+  indices on processor boundaries. However, this makes the total
+  number of degrees of freedom dependent on both the partition of the
+  mesh and the number of processors available. We have therefore
+  re-implemented the algorithm so that the unification does happen
+  also on processor boundaries, and will report on the details
+  elsewhere.
+
+\item Data transfer patterns: An important algorithm in parallel
+  finite element methods is the exchange of information stored on
+  cells during mesh repartitioning. This happens, for example, when
+  interpolating the solution from one mesh to the next
+  adaptively refined mesh; or when adapting the polynomial degrees
+  associated with each cell and repartitioning in order to
+  balance the computational cost of each processor's partition. When
+  using $h$~adaptive methods, the amount of data associated with each
+  cell is fixed and the algorithms that implement the data transfer
+  are consequently relatively simple. On the other hand, in $hp$~contexts,
+  each cell may have a different number of unknowns
+  associated with it, and the algorithms that transfer the data are
+  substantially more complicated. In order to implement those, we rely
+  on recent enhancements of the \pfrst~library (documented in
+  \cite{Burstedde2018}) to transfer data of variable size across
+  processors. Furthermore, the amount of data associated with each
+  cell may be large on cells with higher polynomial degrees, and
+  might profit from compression before sending.
+
+\item Balancing computational cost: For $h$~adaptive algorithms, the
+  amount of work associated with each cell is essentially the same,
+  both during the assembly of linear systems as well as during the
+  solver phase. For $hp$~adaptive methods, this is no longer the
+  case. Consequently, balancing the cost of work between different
+  processors' partitions is no longer as easy as ensuring that every
+  processor owns a roughly equal number of cells. Rather, one needs to
+  introduce a weighting factor for each cell that describes its
+  relative cost compared to some reference. To make things worse, the
+  relative cost of assembly on a cell might not match the relative
+  cost of the linear solver associated with this cell, leading to
+  difficult trade-offs in defining optimal weighting factors. In this
+  release, we supplied the basic functionality to attach any amount
+  of weighting factors to cells, but users still have to find reasonable
+  weights for themselves.
+\end{enumerate}
+
+All of these issues have been addressed in the current release and are
+available to users. We will report on the details of the algorithms
+and their performance in a separate publication.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Interface to the HDF5 file format and libraries}
+\label{subsec:hdf5}
+\texttt{HDF5} is an open-source library and file format designed to store large amounts of data.
+The \texttt{HDF5} format is specially tailored for high volume parallel I/O operations using MPI.
+\texttt{HDF5} files are self-describing and allow complex data relationships and a large variety
+of datatypes. In addition, the \texttt{HDF5} format is designed for long-term preservation of
+data; a \texttt{HDF5} file created by an HPC system can be easily read by a commodity laptop.
+
+\dealii{}'s new  \texttt{HDF5} interface allows to write \texttt{HDF5} files and manipulate
+datasets, groups, and attributes in serial and in parallel using MPI. The
+\texttt{HDF5} MPI library calls that modify the structure of the file are
+always collective, whereas writing and reading raw data in a dataset can be done
+independently or collectively. In the \dealii{}'s \texttt{HDF5} interface all the calls are
+set to collective in order to maximize performance. This means that all the MPI
+processes have to contribute to every single call, even if they don't have data to write.
+We have added the following classes to the \dealii{}'s \texttt{HDF5} namespace.
+\begin{itemize}
+\item The new \texttt{HDF5::File} class can be used to open and create \texttt{HDF5} files
+in serial or in parallel.
+\item The new \texttt{HDF5::Group} class can be used to open and create groups.
+ \texttt{HDF5} files have a tree structure. The root contains groups and
+the groups can contain other groups.
+\item The new \texttt{HDF5::DataSet} class can be used to open and create datasets which
+can be placed inside groups or at the root of the \texttt{HDF5} file. A dataset can be a
+vector, a matrix, or a tensor. It is possible to read and write in the dataset using
+hyperslabs or unordered data. Hyperslabs are portions of datasets
+which can be a contiguous collection of points in a dataset, or a regular
+pattern of points or blocks in a dataset.
+\item It is possible to define attributes in the \texttt{HDF5::File}, \texttt{HDF5::Group} and
+\texttt{HDF5::DataSet} classes. An attribute is a small metadata such as a number or a string.
+Attributes are commonly used to store simulation parameters.
+\end{itemize}
+As we have shown in \texttt{step-62}, the \dealii{}'s \texttt{HDF5} interface can be easily used
+to exchange data with Python and Jupyter notebooks.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{GPU support via CUDA}
+\label{subsec:gpu}
+
+GPU support was significantly extended for the current release:
+\begin{itemize}
+  \item The \texttt{CUDAWrappers::PreconditionILU} and \texttt{CUDAWrappers::PreconditionIC}
+    classes can now be used for preconditioning \texttt{CUDAWrappers::SparseMatrix} objects.
+  \item \texttt{LinearAlgebra::distributed::Vector}: the MPI-parallel vector
+    class has gained a second template argument \texttt{MemorySpace} which can
+    either be \texttt{Host} or \texttt{CUDA}. In the latter case, the data
+    resides in GPU memory. By default, the template parameter is
+    \texttt{Host} and the behavior is unchanged compared to previous versions.
+    When using CUDA, the ghost exchange can be performed either by first copying
+    the relevant data to the host, performing MPI communication, and finally
+    moving the data to the device or, if CUDA-aware MPI is available, by
+    performing MPI communication directly between GPUs.
+  \item Constrained degrees of freedom: the matrix-free framework now
+    supports constrained degrees of freedom. The implementation is based on
+    the algorithms described in \cite{ljungkvist2017}. With this addition,
+    both Dirichlet boundary conditions and the constraints arising from
+    adaptively refined meshes can be imposed within the matrix-free
+    framework.
+%     \textcolor{red}{%
+%     \sout{The only restriction is that for two-dimensional meshes the
+%     finite element degree must be odd. There is no such restriction in
+%     three dimensions.}
+%     \emph{%
+%     WB: Can we explain this restriction? It seems odd (pun intended)...
+%     BT: No, we cannot. I have spent at least two full weeks trying to
+%     understand why it doesn't work, i.e., gives the wrong result, but I
+%     don't know. We decided at the time that even with the current
+%     limitation this was a useful addition.
+%     MM: I suggest that we then simply not mention the limitation and treat
+%     it as a known bug. As it is currently worded it can be easily
+%     interpreted as a fundamental limitation, i.\,e. ``FE with even degree
+%     are not admissible.''}}
+
+  \item MPI matrix-free computations: using \texttt{LinearAlgebra::distributed::Vector}, the
+    matrix-free framework can scale to multiple GPUs by taking
+    advantage of MPI. Each MPI process can only use one GPU and therefore, if
+    multiple GPUs are available in one node, it is necessary to have as many
+    ranks as there are GPUs. Using Nvidia Multi-Process Service (MPS), it is also possible
+    for multiple processes to use the same GPU. This can be advantageous if the
+    amount of work on one rank is not sufficient to fully utilize a GPU.
+\end{itemize}
+
+The matrix-free GPU components integrated in \dealii have been compared against
+CPUs in \cite{KronbichlerLjungkvist2019}, where the application to geometric
+multigrid solvers is discussed.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Parallel geometric multigrid improvements}
+\label{subsec:gmg}
+
+For the 9.1 release, the geometric multigrid facilities have been extended and
+revised for performance. The geometric multigrid algorithms for uniform and
+adaptively refined meshes in \dealii are based on so-called local coarsening,
+i.e., smoothening is done level-per-level, skipping parts of the domain
+where the mesh is not as refined. The algorithm for the assignment of the
+owner on level cells and the implications on load balancing have been analyzed
+in detail in \cite{ClevengerHeisterKanschatKronbichler2019}. While most of the
+functionality has already been available since the 8.5 release of \dealii presented
+in \cite{dealII85}, several components have been finalized, such as the
+support for certain renumbering algorithms that are beneficial for matrix-free
+execution, and interfaces that allow the combination with matrix-free GPU
+computations as showcased in \cite{KronbichlerLjungkvist2019}.
+
+A number of data structures and implementations in \dealii have been adapted
+to ensure scalability of the matrix-free algorithms and geometric multigrid
+infrastructure on more than 100,000 MPI ranks. A geometric multigrid solver for
+the Poisson equation as described in \cite{KronbichlerWall2018} has been used
+as a performance test during the acceptance phase of the SuperMUC-NG
+supercomputer in Garching, Germany. Scaling tests have been performed on up to
+the full machine with 304,128 cores of the Intel Xeon Skylake architecture and
+an arithmetic performance of around 5 PFlop/s for a geometric multigrid solver
+with polynomials of degree 4 has been reached. Compared to the official
+LINPACK performance of the machine of 19.5 PFlop/s (the machine is listed on
+position 8 of the top-500 list of November 2018), this can be considered an
+extremely good value for PDE solvers which have classically only reached a
+few percent of the LINPACK performance.
+More importantly, this is achieved within a flexible framework supporting
+arbitrary polynomial order on adaptively refined, unstructured meshes and
+with algorithms in the matrix-free module of \dealii designed to minimize time
+to solution and scalability, rather than maximizing the number of floating point operations. The
+largest Poisson problem that has been solved on 304k cores contained 2.15
+trillion unknowns (or 7.1 million unknowns per MPI rank) and was solved in 3.5
+seconds. Also, CFD production runs with $10^{11}$ unknowns and $10^5$
+time steps have been completed in less than seven hours, demonstrating the
+capabilities of \dealii for large-scale parallel computations. The scaling tests
+also revealed several relatively expensive operations in the setup of the
+multigrid unknowns in \dealii's \texttt{DoFHandler} and \texttt{MGTransfer}
+classes. While a few bottlenecks have already been resolved for the present
+release, we plan several further improvements of the setup stage for the next release.
+
+Furthermore, the implementation of the Chebyshev iteration, \dealii's most
+popular smoother in the matrix-free context, has been revised to reduce the number of
+vector accesses. The vector operations have become an increasing bottleneck
+due to the level of optimization available for the operator evaluation with
+our matrix-free framework \cite{KronbichlerKormann2019}, especially on newer
+CPUs which can perform a large number of arithmetic operations per byte loaded
+from main memory. This speeds up matrix-free multigrid solvers by up to
+10--15\% on geometries with affine (parallelogram and parallelpiped) cells,
+and up to 5\% on deformed cells.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{New and improved tutorial and code gallery programs}
+\label{subsec:steps}
+
+Many of the \dealii{} tutorial programs were substantially revised as
+part of this release. In particular, we have converted many places
+that now allow for simpler code through the use of C++11 features such
+as range-based for loops and lambda functions.
+
+In addition, there are four new tutorial programs and one new code
+gallery program:
+\begin{itemize}
+\item \texttt{step-61} is a program that implements the ``weak
+  Galerkin'' method to solve the Laplace equation. Weak Galerkin
+  methods are related to the Hybridized Discontinuous Galerkin method
+  in that they introduce degrees of freedom on the interfaces between
+  cells, but they do not require the reformulation of the problem as a
+  first-order system and instead re-define what the gradient of a
+  discontinuous function is.
+
+\item \texttt{step-62} demonstrates the solution of problems related
+  to phononic or photonic crystals. Among the techniques shown in this
+  program is the solution of complex-valued linear systems, and the
+  use of absorbing boundary conditions through the Perfectly Matched
+  Layer technique.
+
+\item \texttt{step-63} implements a geometric multigrid preconditioner
+  and solver for the advection-diffusion equation, yielding optimal
+  complexity. The tutorial compares
+  point-based smoothers to cell-based smoothers and
+  demonstrates the effect of downstream ordering on smoother performance.
+
+\item \texttt{step-64} demonstrates the usage of matrix-free methods on Nvidia GPUs.
+GPUs are shown to be advantageous for these kind of operations because of their superior
+hardware characteristics, in particular a higher memory bandwidth than server
+CPUs within a given power envelope.
+
+\item The \texttt{MCMC-Laplace} code gallery program is a code useful
+  for the forward solution used as a building block in
+  Bayesian inverse problems, and for sampling the parameter space
+  through a Metropolis--Hastings sampler (a kind of Monte Carlo
+  Markov Chain method).
+\end{itemize}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Incompatible changes}
+
+The 9.1 release includes
+\href{https://dealii.org/developer/doxygen/deal.II/changes_between_9_0_1_and_9_1_0.html}
+     {around 15 incompatible changes}; see \cite{changes91}. The majority of these changes
+should not be visible to typical user codes; some remove previously
+deprecated classes and functions; and the majority change internal
+interfaces that are not usually used in external
+applications. However, some are worth mentioning:
+\begin{itemize}
+\item The \texttt{VectorView} class was removed. We recommend either copying the
+      vector subset into a \texttt{Vector} or using a \texttt{BlockVector}.
+\item The function \texttt{Subscriptor::subscribe()}, used through the
+  \texttt{SmartPointer} class, now requires a pointer to a
+      \texttt{std::atomic<bool>} that tracks whether or not the pointer to the
+      subscribed-to object is still valid.
+\item The \texttt{ConstraintMatrix} class gained a template parameter for the scalar
+      type and was been renamed \texttt{AffineConstraints}. Several methods that
+      take vectors or matrices as arguments,
+      such as \texttt{AffineConstraints::distribute\_local\_to\_global()},
+      now require that all matrix and vector arguments have matching number
+      types.
+\item Similarly, the functions \texttt{create\_mass\_matrix} and
+      \texttt{create\_boundary\_mass\_matrix} in the \texttt{MatrixCreator}
+      namespace no longer
+      support matrix and vector objects of different types.
+\end{itemize}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\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
+the current version of the library, \textbf{please reference the present
+document}. For up to date information and a bibtex entry for this document
+see:
+\begin{center}
+ \url{https://www.dealii.org/publications.html}
+\end{center}
+
+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,ClevengerHeisterKanschatKronbichler2019};
+ \item For distributed parallel computing: \cite{BangerthBursteddeHeisterKronbichler11};
+ \item For $hp$~adaptivity: \cite{BangerthKayserHerold2007};
+  \item For partition-of-unity (PUM) and enrichment methods of the
+    finite element space: \cite{Davydov2016};
+ \item For matrix-free and fast assembly techniques:
+   \cite{KronbichlerKormann2012,KronbichlerKormann2019};
+ \item For computations on lower-dimensional manifolds:
+   \cite{DeSimoneHeltaiManigrasso2009};
+ \item For integration with CAD files and tools:
+   \cite{HeltaiMola2015};
+ \item For Boundary Elements Computations:
+   \cite{GiulianiMolaHeltai-2018-a};
+ \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};
+   \item For uses of the \texttt{ParameterAcceptor} concept, the
+     \texttt{MeshWorker::ScratchData} base class, and the
+     \texttt{ParsedConvergenceTable} class: \cite{SartoriGiulianiBardelloni-2018-a}.
+\end{itemize}
+
+\dealii can interface with many other libraries:
+\begin{multicols}{3}
+\begin{itemize}
+\item ADOL-C \cite{Griewank1996a,adol-c}
+\item ARPACK \cite{arpack}
+\item Assimp \cite{assimp}
+\item BLAS and LAPACK \cite{lapack}
+\item cuSOLVER \cite{cusolver}
+\item cuSPARSE \cite{cusparse}
+\item Gmsh \cite{geuzaine2009gmsh}
+\item GSL \cite{gsl2016}
+\item Ginkgo \cite{ginkgo-web-page}
+\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 nanoflann \cite{nanoflann}
+\item NetCDF \cite{rew1990netcdf}
+\item OpenCASCADE \cite{opencascade-web-page}
+\item p4est \cite{Burstedde2018,p4est}
+\item PETSc \cite{petsc-user-ref,petsc-web-page}
+\item ROL \cite{ridzal2014rapid}
+\item ScaLAPACK \cite{slug}
+\item SLEPc \cite{Hernandez:2005:SSF}
+\item SUNDIALS \cite{sundials}
+\item SymEngine \cite{symengine-web-page}
+\item TBB \cite{Rei07}
+\item Trilinos \cite{trilinos,trilinos-web-page}
+\item UMFPACK \cite{umfpack}
+\end{itemize}
+\end{multicols}
+Please consider citing the appropriate references if you use interfaces to these
+libraries.
+
+The two previous releases of \dealii can be cited as
+\cite{dealII85,dealII90}.
+
+
+\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:\\
+% updated 6/05/2019
+  Giovanni Alzetta,
+  Mathias Anselmann,
+  Daniel Appel,
+  Alexander Blank,
+  Vishal Boddu,
+  Benjamin Brands,
+  Pi-Yueh Chuang,
+  Sambit Das,
+  Stefano Dominici,
+  Nivesh Dommaraju,
+  Niklas Fehn,
+  Isuru Fernando,
+  Andreas Fink,
+  Rene Gassm{\"o}ller,
+  Alexander Grayver,
+  Joshua Hanophy,
+  Logan Harbour,
+  Daniel Jodlbauer,
+  Stefan Kaessmair,
+  Eldar Khattatov,
+  Alexander Knieps,
+  Uwe K{\"o}cher,
+  Kurt Kremitzki,
+  Dustin Kumor,
+  Damien Lebrun-Grandie,
+  Jonathan Matthews,
+  Stefan Meggendorfer,
+  Pratik Nayak,
+  Lei Qiao,
+  Ce Qin,
+  Reza Rastak,
+  Roland Richter,
+  Alberto Sartori,
+  Svenja Schoeder,
+  Sebastian Stark,
+  Antoni Vidal,
+  Jiaxin Wang,
+  Yuxiang Wang,
+  Zhuoran Wang.
+
+Their contributions are much appreciated!
+
+
+\bigskip
+
+\dealii and its developers are financially supported through a
+variety of funding sources:
+
+D.~Arndt and M.~Kronbichler were partially supported by the German
+Research Foundation (DFG) under the project ``High-order discontinuous
+Galerkin for the exa-scale'' (\mbox{ExaDG}) within the priority program ``Software
+for Exascale Computing'' (SPPEXA).
+
+W.~Bangerth, T.~C.~Clevenger, and T.~Heister were partially
+supported by the National Science Foundation under award OAC-1835673
+as part of the Cyberinfrastructure for Sustained Scientific Innovation (CSSI)
+program  and by the Computational Infrastructure
+in Geodynamics initiative (CIG), through the National Science
+Foundation under Award No.~EAR-1550901 and The
+University of California -- Davis.
+
+W.~Bangerth and T.~Heister were also partially supported by award DMS-1821210.
+
+D.~Davydov was supported by the German Research Foundation (DFG), grant DA
+1664/2-1 and the Bayerisches Kompetenznetzwerk
+f\"ur Technisch-Wissenschaftliches Hoch- und H\"ochstleistungsrechnen
+(KONWIHR).
+
+T.~Heister was also partially supported by NSF Award DMS-1522191, and
+by Technical Data Analysis, Inc. through US Navy SBIR N16A-T003.
+
+M.~Kronbichler was also supported by the Bayerisches Kompetenznetzwerk
+f\"ur Technisch-Wissen\-schaft\-li\-ches Hoch- und H\"ochstleistungsrechnen
+(KONWIHR) in the context of the project
+``Performance tuning of high-order discontinuous Galerkin solvers for
+SuperMUC-NG''.
+
+R.~M.~Kynch was supported by the Engineering and Physical Science Research
+Council (EPSRC) UK through grant EP/K023950/1 while working at Swansea
+University, UK 2013-2015 where the majority of his contribution was
+undertaken.
+
+M.~Maier was partially supported by ARO MURI Award No. W911NF-14-0247.
+
+B.~Turcksin: Research sponsored by the Laboratory Directed Research and
+Development Program of Oak Ridge National Laboratory, managed by UT-Battelle,
+LLC, for the U. S. Department of Energy.
+
+D.~Wells was supported by the National Science Foundation (NSF) through Grant
+DMS-1344962.
+
+The Interdisciplinary Center for Scientific Computing (IWR) at Heidelberg
+University has provided hosting services for the \dealii web page.
+
+
+\bibliography{paper}{}
+\bibliographystyle{abbrv}
+
+\end{document}

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.