[Dune] ALUGrid loadBalance.

Robert Kloefkorn robertk at mathematik.uni-freiburg.de
Mon Jul 3 18:05:22 CEST 2006


Hi Duneler,

ich habe jetzt noch das loadBalance eingebaut, so dass alle
Funktionaltät, die im GitterPapier beschrieben wird, auch vorhanden ist.
Falls weitere Gitter diese Funktionalität bekommen, muss die
Schnittstelle sehr wahrscheinlich nocheinmal überdacht werden.
Im Moment und für Dune 1.0 tuts aber so.

Man übergibt dem Gitter wie beim communicate ein DataHandle.
Die Anpassung des Speichers ist dem User überlassen und muss in der
xtractMethode erledigt werden.

Diese sollte über zwei Methoden verfügen,

// schreibt daten in den Stream
void inlineData(MessageBuffer & buff, MacroEntityType &en) const;

// liest daten aus dem stream
void xtractData(MessageBuffer & buff, MacroEntityType &en) const;

Das Level der übergebenen Entity ist stets 0. Die Anpassung des
Speichers ist dem User überlassen und muss in der xtractMethode erledigt
werden. Den hierarchischen Durchlauf zum ein- und auspacken der Daten
muss man selbst organisieren.

Falls das übergebene DataHandle von der Klasse IsDofManager abgeleitet
(optional) ist, dann sollten noch die Funktionen

void reserveMemory(int)
um Speicher für den zu eintpackenden Baum anzulegen, sowie

void insertNewIndex(EntityType & en)
void removeOldIndex(EntityType & en)

vorhanden sein, damit möglicherweise persistente (eigene, nicht sum
Gitter gehörende) IndexSets angepasst werden können.

Grüßle

R

-- 

  Robert Klöfkorn           <robertk at mathematik.uni-freiburg.de>

  Mathematisches Institut              Tel: +49 (0) 761 203 5631
  Abt. für Angewandte Mathematik       Fax: +49 (0) 761 203 5632
  Universität Freiburg
  Hermann-Herder-Str. 10
  79104 Freiburg

  http://www.mathematik.uni-freiburg.de/IAM/homepages/robertk




More information about the Dune mailing list