The JModelica.org platform is extensible in a number of different ways:
The JModelica.org platform supports export and import of FMUs, which are compliant with the FMI standard. In addition, JModelica.org features a C interface for efficient evaluation of model equations, the cost function and the constraints: the JModelica Model Interface (JMI). JMI also contains functions for evaluation of derivatives and sparsity and is intended to offer a convenient interface for integration of numerical algorithms. FMI is the default format for simulation, whereas JMI is the default interface for optimization.
In addition to the FMI and JMI interfaces, JModelica.org supports export of flat Modelica models in XML format. This format is based on FMI, and is suitable for integration with symbolic algorithms that can exploit access to the equations in symbolic form.
JastAdd produces compilers encoded in pure Java. As a result, the JModelica.org compilers are easily embedded in other applications aspiring to support Modelica and Optimica. In particular, a Java API for accessing the flat model representation and an extensible template-based code generation framework is offered.
The JModelica.org compilers are developed using the compiler construction framework JastAdd. JastAdd features extensible compiler construction, both at the language level and at the implementation level. This feature is explored in JModelica.org where the Optimica compiler is implemented as a fully modular extension of the core Modelica compiler. The JModelica.org platform is a suitable choice for experimental language design and research.
An overview of the JModelica.org platform is given [Jak2010]