All:
on a previous thread on this mailing list, Guido Kanschat announced that he is
stepping down as a Principal Developer. I want to take the occasion to tell
you a few things about Guido's contributions to this library, and his lasting
impact.
I described on that other email how Guido took me under his wings when I was a
Master's student in the lab where he was a postdoc. While I may have done most
of the coding during the first few months of deal.II, I did not actually know
very much about how one would implement finite element methods. For example, I
recall that I implemented assembly of the system matrix for a class project in
the following way:
for (i=0...N)
for (j=0...N)
{
A(i,j) = 0
for (cell=...)
for (q=0...n_quadrature_points)
A(i,j) += this qpoint's contribution to matrix entry i,j
}
It may not be surprising that this is not particularly efficient once you go
past a few hundred cells. But Guido knew, because he had been developing and
working with finite element software for several years at that time. Talking
to Guido on a near-daily basis quickly helped me understand the general design
principles we use in FEM software (e.g., always start with loops over all
cells, precompute as much as you can -- the principle behind the FEValues
class --, etc). Much of what you see these days in classes such as
Triangulation, DoFHandler, and FiniteElement is Guido's knowledge of what
these classes need to provide, filtered through my design experience, and then
reworked by many many people over the past 20+ years. But I cannot overstate
how important Guido's knowledge was at the time: Any amount of time and coding
experience won't help you implement things you don't understand, and Guido
understood and taught me these things.
But there are also large pieces of code in deal.II that Guido implemented
himself. The first, chronologically, that comes to mind is the multigrid
framework. For this, I think it is important to point out the historical
context: Multigrid methods were invented in the 1980s, and for elliptic
problems, the variant of choice was (and is) the Bramble-Pasciak-Xu
preconditioner that was published in 1990. (Both Guido and me later had the
pleasure to be colleagues with Bramble and Pasciak when we were both young
professors at Texas A&M University in the late 2000s.) But BPX and most other
approaches were only designed for uniformly refined meshes. Guido was one of
the first to figure out how to make multigrid work on hierarchically refined
meshes like the ones we have in deal.II. I *think* that this was only
published in 2011 in
https://epubs.siam.org/doi/abs/10.1137/090778523
but the work Guido did to make this function efficiently was actually much
earlier: I vividly remember being at my very first scientific conference on my
own (in Trieste, Italy, in 1999); I must have found an ethernet cable
somewhere so that I could read my emails, and there was one by Guido who let
me know that the multigrid is now working! It did actually take a couple more
years before it *really* worked, but that was Guido's work all alone: I
*still* don't know how the multigrid in deal.II works :-) Fortunately, others
among the Principal Developers have a good handle of this area of our code base.
The second of Guido's contributions I want to highlight are the mapping
classes (work he and Ralf Hartmann did around 2000). In the beginning, deal.II
only had (bi-/tri-)linear mappings, hardcoded into places such as FEValues and
Triangulation. There is a collaboration graph on the front page of the deal.II
manual today, at
https://dealii.org/developer/doxygen/deal.II/index.html
that shows the different components of generic finite element codes. In the
original code, there was no box for the mappings (and no box for manifolds --
that is actually a much more recent invention). How mappings belong into the
picture, and then reworking all of the classes we had back then to use them,
is probably one of Guido's contributions in deal.II that have the longest
tentacles throughout the entire code base.
There are many other areas to which Guido has contributed over the past 25
years, but I think I'll leave it at the two above because they clearly stand
apart for their elegance and importance. But we all have much to be thankful
for for Guido's contributions throughout the library.
From a personal perspective, it has been my honor and privilege to share this
stage with Guido. He is the one who initially taught me much of what I needed
to know about finite element methods, but he was (and is) also a good friend.
As I was about to finish my PhD, I was contemplating where to go for a postdoc
position and when I ended up with multiple options, Guido was the one I asked
for advice in a memorable 15-minute conversation in his office at the end of
which the decision was to go to Texas -- even though I had never been within
1000 miles of that state and knew nothing about it. That was in 2002, from
where I moved to Texas A&M as an assistant professor in 2005. It was fun to
reunite when he was hired there as well a year later. The years we spent there
together were formative for building a larger user and developer community. We
also (jointly with Ralf Hartmann) received the J. H. Wilkinson Prize for
Numerical Software in 2007. We've had a good ride together, Guido -- thank you!
All the best
Wolfgang
--
------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.colostate.edu/~bangerth/
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/dealii/01f9d20b-3d83-e705-5286-223385ab42ab%40colostate.edu.