[Dune] Referenztopologien

Oliver Sander sander at math.fu-berlin.de
Wed Jan 26 17:17:54 CET 2005


Hallo Leute!
Ich habe mal ein bischen über die Implementierung der Referenz-
topologien nachgedacht.  Dabei ist mir erstmal aufgefallen, daß
es eine Klasse ReferenceTopology schon gibt.  (in grid.hh)
Diese Klasse wirkt etwas unfertig, und gibt auch nur geometrische
Informationen -- wie etwa den Elementmittelpunkt -- zurück.
Darum schlage ich vor, daß wir entweder die Klasse in
ReferenceGeometry umbenennen, oder sie mit meiner neuen 'richtigen'
Topologieimplementierung verschmelzen.

Für diese Implementierungen sind mir spontan drei unterschiedliche
Ansätze eingefallen, die alle ihre Vor- und Nachteile haben.

- Die schönste Variante wäre es, wenn es für jeden Elementtyp eine
Singletonklasse gäbe.  Unter Angabe des Elementtyps bekäme man
die Klasse und diese hätte dann die Topologie als statische
Tabellen gespeichert.  Nachteil:  man braucht virtuelle Funktionen.

- Oder man nimmt eine einzige statische Methode, die den Elementtyp
als Parameter bekommt.  Intern würde man eine switch auf den Typ
machen, um die korrekten Werte zurückzugeben.  Das ist nicht so
hübsch, und statt der virtuellen Funktion hat man jetzt den switch,
aber man kann den Aufruf inlinen.

- Oder man führt zwischen den einzelnen Tabellen in der Klasse
soviel Padding ein, daß die Topologie für jedes Element gleich groß
wird.  Dann kann man auf den switch verzichten und mit
(int)ElementType * Tabellengröße zu den richtigen Daten kommen.
Das ist nicht schön, und schlecht zu warten, aber es ist die
schnellste Variante und verschwindet hinter der Schnittstelle.

War das verständlich erklärt?  Könnte ich bitte Eure Meinungen
dazu haben?

Viele Grüße,
Oliver

************************************************************************
* Oliver Sander                **                                      *
* Freie Universität Berlin     ** email: sander at math.fu-berlin.de      *
* Institut für Mathematik II   ** phone: + 49 (30) 838 75217           *
* Arnimallee 2-6               ** fax  : + 49 (30) 838 54977           *
* 14195 Berlin, Germany        ** URL  : www.math.fu-berlin.de/~sander *
************************************************************************


More information about the Dune mailing list