next up previous contents
Next:
Implementierung der Datenstruktur in Up: PORTAL Previous: Verwendung von UCD in

Datenstruktur zum Übertragen von UCD

Für den Aufruf der Funktion  DS_create_UCD_handle() müssen die gesamten Daten inklusive ihrer Beschreibung in eine Datenstruktur gepackt werden. Hierfür wurde die Struktur   DIM_TYPE_UCD_DATA entwickelt. In ihr stehen zum einen die Beschreibung des Sockets genauso wie in den Strukturen der anderen DS_create_XX_handle() Funktionen. Des weiteren enthält sie die Beschreibung der UCD Geometrie. Sie besteht aus der Anzahl der Knoten, der Elemente, der Lastfälle je Knoten, der Lastfälle je Element, der Lastfälle je Geometrie sowie der Anzahl der Knoten je Element. Als letztes steht in der Struktur noch der Zeiger auf das Datenfeld. Dieser zeigt auf das Datenfeld mit der Knotengeometrie, Elementgeometrie und den Lastfällen.

struct DIM_TYPE_UCD_DATA
{
  unsigned long int data_type;  
  char              name[16];     
  long int          user_flag;  
  long int          machine_id; 
  int               num_nodes;   /* Anzahl der Knoten */
  int               num_cells;   /* Anzahl der Elemente */
  int               num_ndata;   /* Anzahl der LF je Knoten */
  int               num_cdata;   /* Anzahl der LF je Element*/
  int               num_mdata;   /* Anzahl der LF je Modell*/
  int       num_nodes_element;   /* Anzahl der Knoten je Element */
  void *             data_ptr;   /* Zeiger auf Datenfeld */
};

  figure336
Abbildung: Aufbau des Datenfeldes

Im  Datenfeld stehen zuerst alle x-Koordinaten der Knoten. Diese müssen vom Typ Float sein. Als nächstes kommen das Maximum und das Minimum der x-Koordinaten. Hierauf folgen die y- und z-Koordinate mit ihren Extremalwerten. Dann folgt die Beschreibung der Elemente. Die drei Knotennummern eines Elementes müssen hintereinander im Feld stehen. Sie sind vom Typ Integer. Hierauf folgen, wenn vorhanden, die Ergebnisdaten an den Knoten, die wie auch die anderen Ergebnisdaten vom Typ Float sind. Als letztes folgen die Ergebnisdaten in den Elementen bzw. im gesamten Gebiet.
Diese Datenstruktur hat gegenüber den Möglichkeiten von AVS geringe Einschränkungen: Es kann je zu übertragender Geometrie nur jeweils ein Berechnungsergebnis pro Knoten, Element und Gesamtgeometrie übertragen werden. Diese Einschränkung ist durch die Minimierung der Übertragungszeit zu begründen. Diese wird kleiner, wenn die Menge der Daten, die zu übertragen ist, geringer wird. Hierdurch entsteht für den Nutzer keine Einschränkung. Er kann die Auswahl der Ergebnisse auch durch das sendende Programm steuern, welches dann einen anderen Datensatz senden muß.
Die Datenstruktur ermöglicht es so, daß mit minimaler Datenmenge die Darstellung realisiert wird. Die Datenmenge für ein Beispiel aus FLOW mit 3411 Knoten und 6560 Knoten beträgt inklusive der Beschreibung nur 133 KByte.
Geringere Datenmengen können nur durch eine völlige Änderung des kompletten Aufbaus von PORTAL erreicht werden. Hierfür müßte es eine Zweiteilung im Ablauf der Übertragung geben. Im ersten Teil müßte die komplette Geometrie übertragen werden. In einigen Anwendungen ändert sich während der Berechnung nur ein Teil der Daten. Im hier prototypisch untersuchten Programm FLOW bleiben die x- und y-Koordinaten des Netzes sowie die Zuordnung der Knoten zu den Elementen konstant. Hier könnte man bei allen Schritten nach dem ersten nur noch die sich ändernden z-Koordinaten sowie die FE-Ergebnisdaten übertragen.


next up previous contents
Next:
Implementierung der Datenstruktur in Up: PORTAL Previous: Verwendung von UCD in

Michael Burghardt