Modelica ist ein Sprachstandard zur Modellierung physikalischer Systeme. Es handelt sich um eine objektorientierte Programmiersprache, die es ermöglicht komplexe Systeme effizient zu beschreiben. Die Modellierung erfolgt dabei gleichungsbasiert und ohne Zuweisung von Ursache-Wirkungs-Beziehungen (Prinzip der Akausalität). Somit kann der Entwickler seinen Fokus auf die Beschreibung des Systems legen. Das so entwickelte Modell wird dann von einem Modelica-Compiler automatisch in ein mathematisches Modell überführt und gelöst. Mit Modelica ist der Entwickler in der Lage, jedes System welches sich mittels Gleichungen beschreiben lässt (momentan noch keine partiellen Differentialgleichungen) abzubilden und von einem Modelica-Compiler berechnen zu lassen. Für die Beschreibung von physikalischen und insbesondere technischen Systemen ist Modelica somit ein universelles und vielfältig einsetzbares Werkzeug.

OpenModelica ist eine frei verfügbare Modellierungs- und Simulationsumgebung auf der Basis von Modelica. Die Open-Source-Software umfasst neben dem eigentlichen Modelica-Compiler (OMC) auch eine graphische Entwicklungsumgebung (OMEdit), eine Modelica-Entwicklungsumgebung für Eclipse (MDT) und viele andere nützliche Erweiterungen. Ursprünglich wurde OpenModelica an der Universität von Linköping in Schweden entwickelt. Da der Quellcode frei verfügbar ist, kann an der Weiterentwicklung von OpenModelica aktiv mitgearbeitet werden. Gegenwärtig wird das Projekt an verschiedenen Forschungseinrichtungen und Universitäten in Europa vorangetrieben und dient als Entwicklungsgrundlage für Forschungsprojekte wie beispielsweise HPC-OM und PARADOM.

 

ADOL-C

Das Softwarepaket ADOL-C (Automatic Differentiation by OverLoading in C++) ermöglicht die Auswertung von ersten und höheren Ableitungen für vektorwertige Funktionen, die als C- oder C++-Programm vorliegen. Die Funktionen zur Berechnung der Ableitungen können von C, C++ und Fortran bzw. jeder anderen Sprache aufgerufen werden, die gegen C gelinkt werden kann. ADOL-C implementiert den Vorwärts- und Rückwärtsmodus des Algorithmischen Differenzierens und nutzt hierfür das Prinzip der Operatorüberladung in C- und C++-Programmen.

Im Gegensatz zu numerischen Verfahren wie etwa Finiten Differenzen berechnet ADOL-C die Ableitungen exakt innerhalb der Maschinengenauigkeit und der Overhead beträgt nur ein kleines Vielfaches der Laufzeit. Neben dem großen Funktionsumfang (unter anderem auch Checkpointing) ist insbesondere die Möglichkeit Ableitungen für (MPI und OpenMP-) parallele Programme zu erhalten wichtig für den Einsatz in HPC-Anwendungen.

Das Paket ADOL-C wird durch die Gruppe von Prof. Dr. Andrea Walther an der Universität Paderborn gepflegt und weiter entwickelt. Es steht den Anwendern sowohl unter der Eclipse Public License (EPL) als auch der GNU General Public License (GPL) auf der Plattform COIN-OR zur Verfügung.