Hi,

I am involved in the JModelica/Assimulo effort, and I have also used
CasADi in collaboration with the Leuven team, so I thought I offer my
five cents.

I think that both JModelica/Assimulo and CasADi would be valuable
additions to Sage, since they address different problems, even though
there is some overlapping functionality. Also, there is ongoing work
to integrate JModelica.org and CasADi.

CasADi is mainly targeting a flexible environment for implementation
of dynamic optimization algorithms, e.g., multiple shooing and
collocation. CasADi also offers excellent support for automatic
differentiation of expressions, a generic functionality that can be
explored by many simulation and optimization algorithms. In addition,
CasADi comes with interfaces to a number of algorithms, including
Ipopt, CSparse, SuperLU and some of the algorithms in the SUNDIALS
suite. From a simulation perspective, CasADi offers strong support for
simulation of sensitivities (both forward and adjoint I think), since
these are typically useful in optimization, but it does not offer
support for hybrid DAEs.

Assimulo is a general purpose simulation package for Python offering
integration with different solvers, including IDA and CVODE in the
SUNDIALS suite. The main focus of Assimulo is to provide comprehensive
Python classes that make it easy to add new integrators and to provide
a user-friendly and Pythonesque model description format. Assimulo
also supports sensitivity computations (only forward mode) and
handling of events, i.e., hyrid DAEs.

Assimulo is tightly integrated in the JModelica.org platform, and
serves as the simulation engine for Modelica models, which is one of
the main features of JModelica.org. Modelica is a modeling language
enabling users to build object-oriented equation-based models of
physical systems - a compiler is available in JModelica.org to
translate the Modelica code into C code that is compiled into a model
executable that can be simulated with Assimulo. The Assimulo
integration in JModelica.org also offers some convenience features
like writing of the simulation result to file in a standardized
format, setting of model parameters. In addition, the industrial
standard Functional Mock-up Interface (http://www.functional-mockup-
interface.org/) is supported. There are additional details in the
paper http://www.control.lth.se/Publication/cand+11mod11.html.

JModelica.org supports export of DAE models in XML-format, which can
be imported into CasADi. Based on this feature, collocation algorithms
for dynamic optimization have been implemented in JModelica.org - in
this sense CasADi is one of the dependencies of JModelica.org. This
approach has shown great potential in that efficient evaluation of
first and second order derivatives as offered by CasADi is combined
with the flexibility of scripting in Python offered by CasADi's SWIG
interface. Preliminary results are reported in the paper
http://www.control.lth.se/Publication/and+11mod11.html.

Best
/Johan

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to