[Dune] Roadmap...

Andreas Dedner dedner at mathematik.uni-freiburg.de
Fri Feb 3 09:45:54 CET 2006


Oliver Sander wrote:

> AmiraMesh reads grids into UGGrid through the UGGrid grid creation
> interface.  It writes everything that complies with the grid
> interface.  If it doesn't that's a bug.  The UGGrid grid creation
> interface is well documented and whoever wants to program
> another file reader for UGGrid is more than welcome to do so.
> However, I am strongly against adding file reading code directly
> into the class.
> 
Hallo,
wir haben hier gestern nochmal ueber das Gittereinlesen gesprochen
und wuerden da gern ein bisschen was aendern. Die Idee, dass man
(zumindest fuer einfache Gebiete wie Wuerfel und einheitliche
Gitterelemente cube/simplex) nur ein Gitterfile braucht, um alle
Gitter benutzen zu koennen. Wir haben inzwischen hier auch einen
relativ flexiblen Einlesetool geschrieben, welches:
1) mit linker unterer und rechter oberer Ecke, sowie Unterteilungs-
   angaben ein einfaches strukturiertes Cube bzw. Simplexgitter aufbaut.
2) eine einfache Definition von Randbereichen ermoeglicht.
3) fuer eine gegebene Punktliste das Programm Triangle/Tetgen anwirft,
   um ein einfaches Simplexgitter zu erstellen.
Das Programm ist beinahe fertig und dann koennen wir es mal rumschicken.

Die Klasse hat dann eine write Methode, die einen ostream mit - im
Moment - Alberta/Alu Makrogitter fuellt. Wir wollen dann auf Alu/Alberta
Konstruktoren einbauen, die einen istream nehmen und aus dem das
Makrogitter auslesen. Auf diese Art koennte man mit einer Einlesedatei
Alu-Hexa, Alu-Simplex, Alberta Gitter erzeugen ohne mehr als einen
Typedef umstellen zx muessen.

Unser Vorschlag: jedes Gitter erhaellt so einen Konstruktor, der
einen istream nimmt. Fuer yasp bzw. sgrid sehen wir da gar kein Problem,
der stream enthaelt einfach die Information, die jetzt in der struct.
drinsteht und alles bleibt weitgehend wie gehabt. Ginge das bei UG auch?

Der Ansatz, wie es jetzt ist in UG mit
1) Default-Konstruktor
2) nachtraegliches Initialisieren
ist bei den anderen Gittern schwer einzubauen (ginge das so ohne
    weiteres etwa bei Yasp?)
Fuer uns waere das also die schlechtere Wahl...

Hier waere fuer uns die Frage wie schwierig es denn waere etwa
ein Dreiecksgitter aufzubauen aus den Knotenkoordinaten und
den Simplexknotennummern etwa wie bei Alberta/Alu; es ist unguenstig,
dass man das schwer zu bekommende Amiramesh braucht, um UG zu
benutzen...

Gruss Andreas





More information about the Dune mailing list