[Dune] Modularisierung
Christian Engwer
christi at uni-hd.de
Wed Mar 29 23:44:26 CEST 2006
Hallo,
> Der Rest unserer Diskussion steht in Peters Notizen und wir werden den
> dann morgen noch rumschicken.
hier also die versprochenen Gedanken zur Modularisierung:
* Aufteilung in verschiedene Module:
dune-common
dune-grid
dune-istl
dune-fem
dune-disc
* quadraturerules.hh/cc sollte in dune-grid
* io ist so nicht wirklich einheitlich und sollte deswegen zerteilt
werden:
Dinge die nur auf der Gitterschnittstelle laufen (das ist dann
natürlich nur 'o' und nicht 'i') kommen in grid/utility.
Das wären wohl vtkwriter, amirameshwriter und grape.
Beim 'i' gibt es den amirameshreader, der aber scheinbar nur für ug
existiert. Wir dachten, den sollte man dann eigentlich entsprechen
benennen, z.B. amirameshugreader und zu ug packen.
Der neue coarsgrid reader sollte dann auch in grid Modul.
* wir sind dafür die neuen Repositories mit einer besseren
Versionkontrolle zu verwalten. Ich bin gerade am evaluieren, was
unsere Anforderung erfüllt und wie kompliziert die verschiedenen
Systeme zu verwenden sind.
* Wir brauchen ein 'build-skript' das man verwenden kann, um einfach
die vielen verschiedenen sourcen konfigurieren zu können. Die
buildsysteme der einzelnen Module sollten dann ihre dependencies
prüfen, allerdings kann das buildskript ja eventuell auch schon
etwas dabei helfen.
* Wir brauchen trotz allem die möglichkeit einer globalen Dune Klassen
Dokumentation. Angeblich geht es mit Doxygen, dass man auf Klassen
in einem andern Doxygenpfad verweisst, ohne dass dadurch irgendetwas
kaputt geht.
* Die einzelnen Module sollen intern eine Struktur haben die ganz
ähnlich aussieht, wie jetzt in dune, nur dass halt alle die
Verzeichnisse, die man nicht mehr braucht fehlen. Beim echten
installieren werden alle header nach in das gleiche
/.../include/dune/ Verzeichnis installiert. Solange man auf dem
sourcecode direkt arbeitet lösen wir das Problem, indem man einfach
viele include Pfade angibt. Die include statements in den
Applikationen bleiben gleich. In Dune muss man jetzt überprüfen,
dass überall, wo man auf header aus einem anderen Modul zugreift
#include <dune/MODULE/...> steht.
Wir haben uns den Ablauf so vorgestellt:
- zuerst müssen wir den source code so aufbereiten, dass wir alles in
Module zerteilen können. Das beinhaltet in erster Linie, dass wir
die Klassen und Interfaces auf etwaige nicht erlaubte dependencies
hin untersuchen. Es bleibt aber erstmal noch alles in seinem alten
Pfad. In diesem Stadium sollte auch der neue gridreader schon
eingepflegt werden.
Parallel hierzu wird schon mit dem build-skript und doxygen
rumexperimentiert
- dann teilen wir die alten Sachen auf neue Repositories auf. Dabei
muss dann gleich das Buildsystem und Doxygen angepasst werden. Das
ganze kann deshalb leider etwas länger dauern.
- Jetzt wird der Rest noch aufgeräumt... die Verzeichnisse so umbauen,
wie wir es wollen, die Applikationen anpassen (bis hierher hatten
diese nichts, was geändert werden musste) und alle neuen Fehler
reparieren.
Hoffentlich habe ich nichts vergessen :-)
Tschüß Christian
More information about the Dune
mailing list