Damit Transportprozesse zwischen den Porenzellen modelliert werden können,
müssen die Nachbarschaftsbeziehungen eindeutig definiert sein. Dazu muss ihnen
ein Koordinatenpaar im zweidimensionalen Raum zugeordnet werden Für ein
hexagonales Gitter, ergeben sich theoretisch mehrere Möglichkeiten. Hier
werden die Hexagone in -Richtung von unten nach oben und in
-Richtung
von links nach rechts nummeriert (5.2).
Die einzelnen hexagonalen Porenzellen sind in einem Gittersystem angeordnet. Dieses hat die Form eines Trapezes um den realen Gegebenheiten in der Kompostmiete möglichst nahe zu kommen. Ein Trapez wird durch die Variablen X_BOTTOM, X_TOP und Y_HEIGHT beschrieben(5.3). Im Modell werden diese Daten zu Beginn der Simulation aus einer Eingabedatei eingelesen.
Die Wahl der Seitenlänge eines Hexagons bestimmt, wie die einzelnen Zellen in
dem trapezförmigen Gitter ausgerichtet werden. Die Anzahl der Gitterreihen in
-Richtung lassen sich mit Formel 5.2 berechnen. Allerdings ist
die räumliche Ausdehnung der Zellen in
-Richtung nicht einfach ein
Vielfaches von HEX
. In Abbildung 5.2 wird deutlich, dass die
vertikalen Zellreihen um den Faktor HEX
oder
versetzt sind,
sobald
ist. Für die Ausdehnung in
-Richtung ergibt sich bei einer
gegebenen Anzahl von horizontalen Reihen (ROWS):
Im Modell muss die Anzahl von ROWS aus der vertikalen Ausdehnung der Miete berechnet werden. Dazu kann die Formel 5.7 einfach umgeformt werden. Hierbei ist zu beachten, dass eine Transformation einer reellen Zahl zu einer ganzen Zahl stattfindet. SIMULA rundet das Ergebnis standardmäßig auf oder ab.
Die Anzahl der -Zellen richtet sich nach der Breite des Trapez in der
jeweiligen
-Reihe. Im Folgenden wird ein mögliches Berechnungsverfahren
vorgestellt, das auch im Modell benutzt wird.
Unter Zuhilfenahme von Formel 5.1 kann die Anzahl von X-Zellen in einer bestimmten Y-Reihe bestimmt werden. Das Maximum liegt bei X_BOTTOM und das Minimum entsprechend bei X_TOP.
Die Anzahl der -Zellen in den jeweilige Reihen liegt zwischen
X_CELLS
und X_CELLS
. Im Modell wird sie durch die
Prozedur UPDATE_X berechnet. Diese erhält als Input-Parameter die
-Reihe, in der die Zellen generiert werden sollen. Daraus wird zunächst
berechnet, in welcher realen Höhe sich die Reihe befindet:
Anschließend wird ermittelt wie weit sich die zu generierende Reihe in der
-Richtung ausdehnt(X_INT). Aus dem Strahlensatz ergibt sich (Abb. 5.4):
![]() |
Die Anzahl der Zellen wird wie in den Formeln 5.10 und 5.11 berechnet:
Schließlich müssen die Koordinaten der -Zellen noch zentralisiert
werden. Dazu dient die Prozedur CENTRALIZE, die als Input-Parameter
X_CELLS
erhält. Ohne den Aufruf von CENTRALIZE würden sich
die Zellen am linken Rand des Gittersystems anordnen, es ergäbe sich dann kein Trapez.
In der Prozedur wird zunächst ermittelt, wie viele Zellen im gesamten
Koordinatenraum
vor und hinter den
Zellen im Trapez nicht generiert werden sollen:
![]() |
(5.16) |
![]() |
(5.17) |
Die Werte X_NI
und(X_NI
dienen nun als Grenzparameter einer Schleife, welche die
Porenzellen sukzessiv initiiert.
Abbildung 5.5 stellt beispielhaft ein mit den oben beschriebenen Verfahren generiertes Porensystem dar.
![]() |
In dieser Abbildung wird allerdings nicht deutlich, dass um die Modellmiete herum weitere Zellen als Grenzbedingungen definiert werden müssen. Die Luftoberfläche und der Untergrund werden durch Gitterzellen definiert, die durch konstante Parameterwerte gekennzeichnet sind. An der Boden-Luft Grenze finden Diffusionstransportprozesse in die Miete hinein statt, wobei die Sauerstoffkonzentration in den Luftzellen konstant bleibt. Mit den Untergrundzellen finden keine Austauschvorgänge statt. Die Grenzzellen außerhalb der Modellmiete werden zwar als Objekte initiiert, sie werden jedoch nicht wie die Porenzellen aktiviert. Berechnungen finden ausschließlich in aktivierten Objekten statt.
Für jede Porenzelle in der Versuchsmiete müssen die Nachbarschaftsbeziehungen
genau definiert sein. Aus Abbildung· 5.2 ist ersichtlich, dass die
Bestimmung der Koordinaten für jeden der sechs Nachbarn nicht so trivial ist,
wie bei einem viereckigen Gittersystem. Tabelle 5.1 zeigt, dass
die Berechnung der Koordinaten der angrenzenden Zellen sich
zwischen geraden und ungeraden -Werten unterscheidet.
Die Differenzierung zwischen geraden und ungeraden -Werten wird im Modell
durch den modulo-Befehl erreicht. Damit wird der Rest der Division
einer ganzen Zahl durch eine andere bestimmt. Ist das Ergebnis von
mod(
,2) gleich Null, ist
gerade, sonst ungerade. Nach
Unterscheidung dieser beiden Fälle werden die Nachbarn einer Zelle mit den
Koordinaten (
,
) mit der Prozedur UPDATE_NEIGHBORS ermittelt.