Modelica is a language standard, used for modelling physical systems. It is an object oriented programming language, enabling us to describe complex systems efficiently. Modelling is done equation based and without the assignment of cause-effect relations (concept of acausality). Hence, the developer can put the focus on the description of systems. Modelica-Compiler automatically transfers the thus developed model into a mathematical form and solves it. With the help of Modelica, developers are able to depict any system which can be described through equations (so far, this is not the case with partial differential equations) and to have it calculated by a Modelica-compiler. Therefore, Modelica is a universal and versatile tool.
OpenModelica is a free modelling and simulation environment based on Modelica. Apart from the actual Modelica-compiler (OMC), the open-source software includes a graphic development environment (OMEdit), a Modelica-development environment for Eclipse (MDT) as well as several other useful extensions.
Originally, OpenModelica was designed at the University of Linköping in Sweden. Since the source code is discretionary, participation in the active advancement of OpenModelica is open to anyone. Currently, the project is furthered by various research institutions and universities in Europe. It constitutes the developmental basis for research projects such as HPC-OM.
The package ADOL-C (Automatic Differentiation by OverLoading in C++) facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++. The resulting derivative evaluation routines may be called from C/C++, Fortran, or any other language that can be linked with C. ADOL-C implements the forward and reverse mode of algorithmic differentiation by using operator overloading in C and C++.
In contrast to numerical methods like finite differences the numerical values of derivative vectors are obtained free of truncation errors at a small multiple of the run time. The hugh functionality (e.g., checkpointing) together with the ability to compute derivatives from (MPI and OpenMP-) parallel programs is a essential for HPC-applications.
The package ADOL-C is maintained and further developed by the group of Prof. Dr. Andrea Walther at Universität Paderborn. It is released under the Eclipse Public License (EPL) and the GNU General Public License (GPL), respectively. ADOL-C is is available from the COIN-OR initiative.