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.

Reply via email to