ASKA
# ASKA

Das Programmsystem ASKA (Abkürzung für: Automatic System for Kinematic Analysis) war eines der ersten universell einsetzbaren Computerprogramme für Berechnungen nach der Methode der Finiten Elemente. Die Entwicklung von ASKA begann Anfang der 1960er Jahre am Institut für Statik und Dynamik der Luft- und Raumfahrtkonstruktionen (ISD) der Universität Stuttgart unter der Leitung von John Argyris.

Die erste Version, ASKA 105, war in der Assemblersprache Sleuth auf einer UNIVAC 1107 entwickelt worden. Nach der Installation eines weiteren Supercomputers vom Typ CDC 6600 im Jahr 1968 wurde eine neue ASKA Version in der Programmiersprache Fortran entwickelt. In den Jahren zwischen 1970 und 1983 wurde ASKA auf weitere Rechnersysteme portiert, z. B. Univac 11/80 IBM 360/370, Amdahl, Cray, Prime und VAX.

Die ersten Anwendungen mit ASKA stammten aus dem Bereich der Luft- und Raumfahrttechnik, so wurde z. B. eine dynamische Berechnung der kompletten Struktur des Jagdflugzeuges Lockheed F-104G (Starfighter) mit ASKA durchgeführt. Eine nichtlineare Anwendung war die Berechnung der Dachkonstruktion des Olympiastadions in München von Frei Otto.

Neben verschiedenen Universitäten gehörten Flugzeugfirmen (Dornier-Werke, Saab), Forschungsinstitute (KFA Jülich) oder Kraftwerksbauer (EDF, ENEL, KWU) zu den frühen Anwendern des Systems.

Obwohl es seiner Zeit in vielfacher Hinsicht weit voraus war, wurde ASKA nie ernsthaft vermarktet, sondern blieb weitgehend im Forschungsumfeld. Erst 1984 erwarb eine Gruppe von Wissenschaftlern am ISD die Rechte an ASKA von der Universität Stuttgart und begann, das Programm unter dem Namen PERMAS im industriellen Umfeld weiterzuentwickeln.

## Software-Architektur

ASKA war im Hinblick auf seine interne Struktur zukunftsweisend. Ein wichtiges Merkmal des Systems ist der modulare Aufbau in Funktionseinheiten sowie das zentrale Datenverwaltungssystem DRS (Data Retrieval System), das für Verwaltung der großen Matrizen und den gesamten I/O zuständig war. DRS verwaltete die Matrizen ähnlich wie heutige Virtual Memory Systeme, wobei die Daten in Blöcke gleicher Größe (Seiten) eingeteilt wurden, die auf den Massenspeicher (Band, Trommel) ausgelagert waren und bei Bedarf in den Arbeitsspeicher geladen wurden.

Die Berechnung der physikalischen Modelle in den finiten Elementen wurde vom eigentlichen System sauber getrennt, für jede Elementfamilie schrieb man eine Reihe von Fortran-Routinen, die nur durch ihre Parameter mit dem System kommunizierten. Die Entwickler der Elementroutinen benötigten somit keine Kenntnisse über die Architektur des Gesamtsystems.

Neben DRS und den Element-Funktionen gab es eine zentrale Programmbibliothek, die alle wichtigen Operationen auf großen, dünn besetzten Matrizen implementierte. Um solche Matrizen effizient verwalten zu können, wurden diese in gleich große Blöcke aufgeteilt, deren Dimension typischerweise zwischen 20*20 und 100*100 lag. Diese Untermatrizen wurden in einer dreistufigen Hierarchie verwaltet: Matrizen der Stufe 1 enthielten die tatsächlichen Daten, Stufe 2 und 3 enthielt Zeiger auf Matrizen der jeweils nächsten Stufe. Enthielt eine Untermatrix nur Null-Werte, wurde sie nicht gespeichert. Die Größe der Untermatrizen war flexibel und wurde an die jeweilige Hardware angepasst, z. B. an die Zahl und Länge der Vektor-Register (Cray, Amdahl, IBM-VF) oder die Blockgröße auf dem Massenspeicher. Die Größe der zu berechnenden Modelle war aufgrund dieser Datenstruktur nur durch die Menge des vorhandenen Massenspeichers, aber nicht durch den zur Verfügung stehenden Hauptspeicher begrenzt.

Um einen neuen Algorithmus in ASKA zu entwickeln, schrieb man ein Fortran-Steuerprogramm, welches die Funktionen der Matrix-Bibliothek in geeigneter Weise kombinierte. Bewährte Algorithmen wurden nach und nach in das System übernommen. So wurde im Laufe der Jahre der Funktionsumfang von linear-elastischer Statik und Dynamik auf weitere Gebiete wie Plastizität und Kriechen, Wärmeleitung oder verschiedene dynamische Response Verfahren ausgedehnt.

