On 01/25/2018 06:58 PM, [email protected] wrote:
Hi, Congrats. Is there anywhere I can read about the development history of
deal.ii? Am I correct in assuming that there was a deal.i?
There was a library called DEAL from which deal.II inherited small amounts of
code but large amounts of ideas. DEAL has been the intellectual predecessor of
a number of libraries; it's most immediate successor is probably Gascoigne
which I believe shares a good amount of code (though I don't really know):
http://www.uni-kiel.de/gascoigne/
I don't think any of us ever wrote down a history of deal.II. Thinking about
it, I also wouldn't know what really to write -- lots and lots of people have
contributed in different areas over the past 20 years, but it's not like any
of us foresaw this 20 years ago and came up with a master plan for the whole
thing that we're still working on.
I am mainly interested in how you decided and the different classes. Would
you change much if you could start from scratch?
This is an interesting question.
There are a few things that have turned out to be bad ideas. Most of which I
seem to have been responsible for (though I'm going to claim that I also did
some good in balance). Many of these bad decisions have been fixed over the
years but occasionally there are still things we struggle with. The last area
where I would say the original design was poor is the use of the Boundary
class, but many people over the past few years have contributed to replacing
it by the Manifold design, and this is going to be what we use in the future,
starting with the next release.
There are a number of really good ideas that were in the library from the
beginning and that have fundamentally been replicated in all finite element
libraries I know of that came later. Some of these are:
* Iterators for cells and other geometric objects
* 1:m relationships for everything (e.g., many DoFHandlers can use one
triangulation; many SparseMatrix objects can use one SparsityPattern
object; etc.)
* Separation of finite element, mapping, and quadrature
* Building extensively on the C++ standard library
* Building on other external libraries, rather than trying to replicate
functionality
* Making things into a library of building blocks, rather than a framework.
I'm sure many of the other longtimers have their own perspectives, but I do
think that a lot of the fundamental design decisions from 20 or 15 years ago
were actually pretty good and have stood the test of time.
Best
W.
--
------------------------------------------------------------------------
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].
For more options, visit https://groups.google.com/d/optout.