The JModelica.org platform consists of a number of different parts:
The compiler front-ends (one for Modelica and one for Modelica/Optimica) transforms Modelica and Optimica code into a flat model representation. The compilers also check the correctness of model descriptions and reports errors.
The compiler back-ends generates C code and XML code for Modelica and Optimica. The C code contains the model equations, cost functions and constraints whereas the XML code contains model meta data such as variable names and parameter values.
The JModelica.org runtime library is written in C and contains supporting functions needed to compile the generated model C code. Also, the runtime library contains an integration with CppAD, a tool for computation of high accuracy derivatives by means of automatic differentiation.
Currently, JModelica.org features one particular algorithm for solving dynamic optimization problems. The algorithm is based on collocation on finite elements and relies on the solver IPOPT for obtaining a solution of the resulting NLP.
JModelica.org uses Python for scripting and prototyping. For this purpose, a Python package is under development with the objective of offering functions for driving the compilers and for accessing the (compiled) functions in the runtime library/generated C code.