Why no talk about EMSO?

175 views
Skip to first unread message

gani

unread,
Sep 11, 2008, 2:48:34 PM9/11/08
to Open source Process Simulator
Hi all:

This is my first post to this forum. I have been tooling around
looking for some good open source software and I see quite a few
mentions of Ascend, Sim21, Sim42, DWSIM, etc. Curiously I don't see
much for EMSO. I have played around with Ascend and EMSO for the past
few weeks on and off and find both have great features and drawbacks.
Ascend is truly open and it has powerful solvers. But the best thing I
like is the way to use it with Python. The drawback is that the
language is not 'crisp' and the thermodynamics implementation is hard
to understand. The PyGUI is nifty.

EMSO is really a slick general purpose tool with access to a
thermodynamics .dll (VRtherm). It really looks like a polished version
of Ascend and has a really nice IDE. It also looks a lot like gPROMS,
a commercial software. Another similar one would be Modelica. The
drawback (in my opinion :) ) is the lack of python support.

I am a bit surprised that not many people talk about EMSO and have
wondered why. Any comments?

gani --

Rafael de Pelegrini Soares

unread,
Sep 11, 2008, 3:32:04 PM9/11/08
to op...@googlegroups.com
Hi Gani/all,

Maybe there is not much about EMSO on this forum because although the
EMSO Model Library (EML) is an open-source piece of code, EMSO itself is
not.
People can inspect the source code of EML at
http://www.enq.ufrgs.br/trac/alsoc and also can download the simulator.
Further, the page above is also intended to be a portal for sharing new
user models.

Or perhaps because this forum was much about the development of a
(sequential) modular static simulator and EMSO is an equation-oriented
dynamic simulator. Of course static simulations are also possible with
EMSO.

Anyway, thank you for the comments.

Regards.
-
D.Sc. Rafael de Pelegrini Soares
raf...@enq.ufrgs.br - www.rps.eng.br

gani

unread,
Sep 11, 2008, 3:46:21 PM9/11/08
to Open source Process Simulator
Hi Rafael:

Thanks for your reply. Nice piece of work! True, EMSO is equation-
based, but so are Ascend, Modelica and I have seen a lot of traffic.
In a similar vein, I have seen a lot of work referencing Ascend, but
not much with EMSO. Is it because the primary audience is Portugese-
speaking folks or is it something else? Given the great features of
this tool, it is quite surprising to see so little traffic.

Also, I am willing to bet the traffic will take off if you can make it
python-friendly.

gani -


On Sep 11, 12:32 pm, Rafael de Pelegrini Soares <raf...@enq.ufrgs.br>
wrote:
> Hi Gani/all,
>
> Maybe there is not much about EMSO on this forum because although the
> EMSO Model Library (EML) is an open-source piece of code, EMSO itself is
> not.
> People can inspect the source code of EML athttp://www.enq.ufrgs.br/trac/alsocand also can download the simulator.

John Pye

unread,
Sep 11, 2008, 9:34:21 PM9/11/08
to op...@googlegroups.com
Hi Gani and Rafael,

I should mention that before I started working with Art Westerberg and
Ben Allen on the ASCEND project I did quite a bit of work with help from
Rafael on modelling with EMSO. I really liked the EMSO language, and it
was an inspiration for some parts of the PyGTK GUI that ASCEND now has.
I did quite a bit of modelling with EMSO including development of custom
CalcObjects and some attempts at writing a new solver. Rafael has
documented EMSO very well, and the APIs are very nice and clean.

I guess that for me the key issue is that EMSO is closed source, so
things like adding a Python API are impossible for outside
collaborators. One can't be sure that it won't just disappear like Sim42
did. Rafael has assured me that it will not, but all the same, the
closed source nature makes it impossible to work collaboratively on
adding new features to EMSO such as the Python bindings that you mention.

One other issue that I found with ASCEND as compared with EMSO was that
being open source, one has the opportunity to write solvers that
interact with the system of equations in a much more intimate way. For
example, a 'blocking' solver can be devised that solves a subset of the
system of equations at a time, and for equations with only one unknown,
a 'direct solution' can be performed by algebraic manipulation of that
single equation. This sort of thing is not possible with the current
EMSO solver API AFAIK, but has been implemented in the rather nice QRSlv
solver provided by ASCEND.

ASCEND contains quite a bit of old C code, which means that although it
is open, some of the data structures are a bit difficult to understand,
it uses a number of global variables, isn't thread-safe and some of the
code is rather wordy. It would be nice to be able to rewrite some of
that. From what I understand from Rafael about EMSO, on the other hand,
is that it has been coded up in more object-oriented ways using C++, and
is thread-safe. It would be really nice if it could be opened up!

Gani, your comment about the lack of 'crispness' of the ASCEND language
is a fair comment. I think that Rafael did a much better job of defining
a natural and concise modelling language. The ASCEND language has
strange 'sentence-like' grammar with lots of capitals and underscores
that feel very clunky to the C or Python programmer. I think that the
main areas of improvement to the ASCEND language would be in the syntax
for differential equations (currently works, but is atrocious to use)
and for conditional modelling (works, and is powerful, but very clunky).
EMSO's conditional modelling syntax is concise but limited; it's
differential equation syntax is really nice.

Finally, given that we're talking here on the DWSIM mailing list, I'd
mention that both EMSO and ASCEND (as well as OpenModelica) are
equation-based modelling systems, and that makes them quite different
from DWSIM, which is sequential-modular. These are two quite different
approaches, and I think there is room for both kinds of tools.

Cheers
JP

http://ascendwiki.cheme.cmu.edu/

Reply all
Reply to author
Forward
0 new messages