Fallstudien in meiner Doktorarbeit setzen voraus, dass ich in CHEMKIN-II Intervall-Erweiterungen von Fortran-Subroutinen habe (entschuldigt den Link; es ist das Beste, was ich für ein Paket finden konnte, das nicht mehr vom Sandia National Laboratory vertrieben wird). CHEMKIN-II ist ein Chemiepaket, das in der Verbrennungschemie verwendet wird. Da es sich um das Standardpaket handelt, das bei der Verbrennung verwendet wird, kann (oder möchte ich eigentlich lieber nicht) ein anderes Paket verwenden.
Um die erforderlichen Intervallverlängerungen zu erhalten, habe ich ein eigens entwickeltes Tool namens DAEPACK verwendet. Die alten Binärdateien, mit denen ich vor ein paar Jahren die erforderlichen Intervallerweiterungen der CHEMKIN-II-Subroutinen auf einem 32-Bit-Betriebssystem (mit einer Version von libstdc entsprechend gcc 2.95) generieren konnte, sind jedoch seitdem ausgefallen Dies wäre eine enorme Tortur (da ich 32-Bit-Versionen jeder anderen Software finden müsste, die ich verwendet habe). Der Quellcode für dieses Paket ist ebenfalls proprietär, aber da es ursprünglich am MIT entwickelt wurde und ich am MIT arbeite, konnte ich (nach viel Aufwand) den Quellcode für DAEPACK erhalten. Mit dem Quellcode, den ich habe, konnte ich eine DAEPACK-Version kompilieren, die mit 64-Bit-Versionen von Linux und Versionen von libstdc kompatibel ist, die gcc 4.xx entsprechen. Kompiliert eine ausführbare Datei, die den Intervall-Erweiterungscode, den ich für die Fertigstellung meiner Diplomarbeit benötige, nicht erfolgreich generiert. Ich habe den Entwickler kontaktiert, um Hilfe bei der Korrektur des Quellcodes zu erhalten, aber aufgrund des vorherigen Kontakts mit dem Entwickler weiß ich, dass es einige Zeit dauern wird, bis er den Quellcode repariert, wenn er dies überhaupt tut.
Hier ist das große Problem: Ich habe noch 6 Monate Zeit, bis ich meinen Abschluss machen muss, weil mir die Finanzierung ausgeht. Ich kann mich nicht darauf verlassen, dass der Entwickler DAEPACK so schnell repariert, dass ich meine Doktorarbeit erfolgreich abschließen kann.
Ich brauche ein Paket, das folgendes leistet:
- Generiert Intervallerweiterungen, Taylor-Modelle (unter Verwendung von Intervallarithmetik) und Ableitungen von nahezu beliebigem Fortran 77-Code. Ich denke, die einzigen Strukturen, die nicht von DAEPACK analysiert werden, sind
DO
Schleifen undIF
Anweisungen. Da ich Taylor-Modelle benötige, muss der Code auch über die Fähigkeit zur automatischen Differenzierung (AD) verfügen. - Generiert diese Intervallerweiterungen und Taylor-Modelle durch Übersetzung des Fortran 77-Codes von Quelle zu Quelle (dh, der Quellcode wird wie ein Compiler analysiert, um den Quellcode zu generieren, der die Intervallerweiterungen und Taylor-Modelle berechnet).
Zur Not kann ich Software verwenden, die die beiden oben genannten Schritte für C-Code anstelle von Fortran 77-Code ausführt und dann alles durchläuft f2c
. Ich würde es wirklich vorziehen, es nicht so zu machen, weil ich keine Ahnung habe, ob f2c
es überhaupt funktionieren wird oder nicht , aber ich bin ziemlich verzweifelt.
Könnt ihr einem verzweifelten Doktoranden helfen?
Um einige mögliche Vorschläge zu antizipieren, sind hier Ansätze, die bei mir aus Zeitgründen NICHT funktionieren:
- Es ist schwieriger, DAEPACK zum Laufen zu bringen. Glaub mir, ich habe es versucht. Und ich nerve den Entwickler häufig.
- Werkzeuge, die Intervallverlängerungen oder Taylor-Modelle mit objektorientierten (oder objektorientierten) Ansätzen berechnen. Ich habe keine Zeit, CHEMKIN-II (oder eine andere ähnlich große Bibliothek) mit neuen Typen neu zu codieren. es ist zu groß.
- Verwenden einer anderen Sprache als Fortran 77/90 oder C. Der CHEMKIN-II-Code befindet sich in Fortran. Ich kann es in C konvertieren, indem ich
f2c
einen Sandia-basierten Klon von CHEMKIN-II namens TChem verwende oder wenn nötig benutze. Meine alten Ergebnisse verwenden CHEMKIN-II; Meine neuen Ergebnisse sollten meine alten Ergebnisse replizieren, und ich weiß bereits, dass Cantera nicht repliziert, was CHEMKIN-II basierend auf Fallstudien und Unit-Tests tut. Außerdem hat der Doktorand, der mir vorausgegangen war, den CHEMKIN-II-Quellcode mit schwarzer Magie bearbeitet, damit die Intervallarithmetik besonders gut funktioniert. Es wäre schwierig für mich, dies in einem anderen Paket zu wiederholen.