[Dune] Modularisierung
Peter Bastian
Peter.Bastian at iwr.uni-heidelberg.de
Fri Mar 24 17:08:39 CET 2006
Hallo Dune,
wir (Stefan, Olaf, Markus und ich) haben hier heute noch mal über eine
Auftrennung in "Packages" (Gitter, ISTL, FR/HD-Numerik, ...) diskutiert
und sind zu der Meinung gekommen, dass dies sehr notwendig ist. Hier
möchte ich nochmal die Gründe zusammenfassen:
- Es dokumentiert klar welche Teile eine Einheit (Modul) darstellen und
welche Abhängigkeiten zwischen diesen Modulen bestehen (Z.B.
HD-Numerik braucht Dune-Gitter, Dune-ISTL, ...)
- Dies erlaubt eine unabhängige Verwendung der Module. Beispiel: ISTL
geht auch ohne Dune-Gitter, FR-Numerik geht ohne Dune-ISTL, ... Dies war
ein großer Fehler bei UG, der bis heute nachwirkt. Wir müssen immer noch
das ganze UG für Dune benutzen obwohl nur ein kleiner Teil daraus
verwendet wird. Aber es ist einfach unmöglich die relevanten Teile
rauszunehmen.
- Kleinere Module sind besser wartbar, Verantwortlichkeiten können
besser zugeordnet werden (Beispiel: FR Numerik wird in FR gepflegt).
- Die Aufteilung in Module könnte folgendermaßen aussehen (bereits mit
den möglichen Namen:
dune-common : common + quadrature
dune-grid : grid + Teile von io
dune-istl : istl
dune-fem : operator + fem + Teile von io
dune-disc : disc + Teile von io
Beim I/O ist etwas Arbeit zu leisten da hier teilweise auf
die FR- oder HD- finite element funktionen aufgebaut wird. Möglichst
viel sollte numerikunabhängig in das Gittermodul kommen (zumindest
beim VTKWriter sollte das gehen, bei Grape kann ich das nicht
beurteilen.
- Build system. Folgendes könnte ich mir vorstellen ist relativ einfach
zu machen: Alle Module (also etwa die 5 oben genannten) sind in
getrennten repositories und haben ein eigenes build-system. Dann legt
man sich alle Module in ein Verzeichnis nebeneinander, dazu packt man
dann noch die gewünschten ANwendungsmodule (dune-dd, dune-grid-howto,
...). Jetzt gibt es dann ein Skript in dem man die ausgewählten Module
einträgt und das dann alle Module konfiguriert, baut, installiert, was
immer. Man könnte sich auch noch eine Art Paketmanagerfunktionalität
vorstellen, die prüft ob alle erforderlichen Module in der richtigen
Version vorhanden sind.
- Doku: Hier müsste man noch prüfen ob in Doxygen eine Verlinkung über
Modulgrenzen hinweg möglich ist.
Könnten wir über diese Sache bitte nochmal diskutieren?
Eine Frage wäre z. B. vor 1.0 oder nachher. Klar ich bin eigentlich
nicht dafür jetzt noch groß rumzuschrauben. Wenn dann aber direkt nach
1.0, wo doch Robert eh das fem rausschneiden will.
Viele Grüße und ein schönes Wochenende.
-- Peter
------------------------------------------------------------------
Peter Bastian, IWR,Uni Heidelberg, INF 348,R 020, 69120 Heidelberg
email: Peter.Bastian at iwr.uni-heidelberg.de Tel: +49 6221 54 4984
WWW: http://www.iwr.uni-heidelberg.de/~Peter.Bastian Fax: ... 8860
More information about the Dune
mailing list