[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