[Dune] Kleine grössere Umstellungen in Bereich Functionsspace.
robertk
robertk at mathematik.uni-freiburg.de
Thu Mar 17 11:46:52 CET 2005
Hi Dune people,
the following mail is in german and contains changes of the funtionspace
--dofmanager--indexset area. If someone who is not that versed in german
but has a question to that feature anyway, please ask me.
Also:
Schon vor einiger Zeit, Anfang Februar habe ich den DofManager umgebaut(
jedoch noch nicht eingecheckt, weil da mal wieder einiges dran hing)
damit dieser auch Ischtl-Vektoren verwalten kann. Das führt zu einigen
kleinen Änderungen, von denen die grösse die Änderung der template
Parameter Liste des Funktion Space ist. Hier mal eine kurze Erklärung
des Konzepts.
Der FunctionSpace bekommt nun eine Referenz auf einen IndexSet, das hat
damit zu tun, das die Index Geschichten ja vom Gitter etwas gelöst
werden sollen. Dieser IndexSet beschreibt die Abbildung von lokalen
Entitäten Nummern zu globalen Entitäten Nummern. Mit diesem IndexSet
kann sich also der FunctionsSpace eine Abbildung von lokaler Dof Nummer
zu globaler Dof Nummer erstellen, indem er z.B. nur die Vertex Nummer
des IndexSets verwendet usw. Weiterhin kann der IndexSet ausgetauscht
werden, z.B. LevelIndex, GlobalIndex usw. Das war bisher auch schon so,
nur das der IndexSet im DofManager steckte, wo er garnicht hingehört.
Deshalb musste jetzt die FunctionSpace template Parameter Liste, sowie
der Kontruktor geändert werden. Ich denke jedoch, das sich diese
Änderungen bei allen in Grenzen halten. D.h also aus der template Liste
des DofManagers wird der IndexSet gestrichen und statt dessen vor die
Polynomordnung in den FunctionSpace gepackt. Der IndexSet wird
ausserhalb mit einer Grid Referenz als Parameter angelegt.
Ein Standard IndexSet wäre z.B. DefaultGridIndexSet< GridType,
LevelIndex > ( siehe grid/common/defaultindexsets.hh )
Ein weiterer Umbau betrifft den DofManager. Die von ihm verwalteten
Arrays haben nun alle einen eigenen Allocator, wie STL Vectoren und ISTL
usw. Dieser Allocator hat drei Funktionen, malloc,free,realloc.
Der DofManager macht nichts weiter, als den Speicher aller diskreten
Funktionen zu verwalten, die beim Adaptieren vergrössert, verkleinert,
bzw. kompressiert werden sollen. Wer diese Funktionalität nicht
verwenden will, muss das auch nicht. Ich werde noch zu allen
Funktionenräumen einen Konstruktor hinzufügen, der ohne DofManager
auskommt. Der DofManager wird damit bis auf weiteres ( was schon in
Arbeit ist :) ) nur mit einem Gitter parametrisiert.
Wenn es dazu keine Einwände gibt, werde ich das heute Nachmittag man
einchecken.
Tschüss
Robert
More information about the Dune
mailing list