[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