ANN: PyDSTool now compatible with numpy 1.0.1,scipy 0.5.2 and 64-bit CPUs.

R

Rob Clewley

We are pleased to announce version 0.84 of PyDSTool, an open-source
dynamical systems simulation, modeling, and analysis package.

This long-overdue release is primarily intended to bring existing
PyDSTool functionality up to date with the latest numpy and scipy releases
(previous versions required scipy 0.3.2, numarray, numeric, etc).
Also, PyDSTool is now compatible with 64-bit CPUs.

While we have added a few new features and made several fixes, major
improvements to functionality are in the pipeline for version 0.90.

Please see http://pydstool.sourceforge.net for release notes and documentation,
and http://sourceforge.net/projects/pydstool for downloading. As ever, please
send us feedback if you have any problems with this new release or ideas and
code contributions for future releases.

Regards,

Rob, Erik, and Drew.
Center for Applied Mathematics,
Cornell University.

******************

PyDSTool is an integrated simulation, modeling and analysis package
for dynamical systems, written in Python (and partly in C). It is
being developed at Cornell University, and the source code is
available under the terms of the BSD license. PyDSTool runs on Linux,
Windows, and Macs, and aims to have a minimal number of package
dependencies.
 
S

Stef Mientki

Sounds GREAT !
thank you !
I just took a quick look,
the comparison to SimuLink looks good,
now if someone could make a comparison with Modelica ;-)

cheers,
Stef Mientki
 
M

michael.tiller

Sounds GREAT !
thank you !
I just took a quick look,
the comparison to SimuLink looks good,
now if someone could make a comparison with Modelica;-)

cheers,
Stef Mientki

As far as I can tell, PyDSTool provides some basic symbolic math
capabilities sufficient to formulate systems of equations that can
then be simulated. The symbolic capability seems to be mainly to
allow for analytical Jacobian calculation (presumably for backward
differentiation algorithms, etc). Someone feel free to correct me if
I'm wrong.

This is all quite useful and it is implicitly included in Modelica but
may important aspects of Modelica are missing. For example, Modelica
includes inheritance (to facilitate reuse), polymorphism (to
substitute one implementation of a component for another), a strong
types system (to ensure safety and robustness), a meta-data
infrastructure including standardized metadata for documentation and
graphical representation, connectors to define interactions between
components, an expansive standard library and support for numerous
modeling formalisms both continuous, discrete and mixed systems of
DAEs (e.g. block diagrams, acausal modeling, state charts, petri
nets, ...).

My sense is that perhaps PyDSTool is attempting to leverage some of
these aspects directly from Python (e.g. inheritance). I am a fan of
both Python and Modelica but when it comes to the kind of modeling
work I do I prefer the more "static" approach to type checking that
Modelica uses (of course that is just a personal preference).
 
R

Rob Clewley

Mike,

Yes, that is a pretty fair description of our support for symbolics
using Python's own inheritance. Our ModelSpec classes provide only an
elementary form of inheritance, polymorphism and type checking. We
hope to expand our existing support for hybrid/DAE systems at the
level of our ModelSpec model-building tools. All ideas and code
contributions are welcome!

Cheers,
Rob
 
M

michael.tiller

Mike,

Yes, that is a pretty fair description of our support for symbolics
using Python's own inheritance. Our ModelSpec classes provide only an
elementary form of inheritance, polymorphism and type checking. We
hope to expand our existing support for hybrid/DAE systems at the
level of our ModelSpec model-building tools. All ideas and code
contributions are welcome!

It is a fair amount of work to figure out all the details for trying
to come up with a clean way of describing hybrid DAE systems for
usability, expressiveness, efficiency, etc (based on my 7 year
involvement in the 10 year and counting Modelica effort). As a user,
what I would find more interesting would be a python implementation
that could import such descriptions and then work with them (rather
than expressing them in Python). There is a ton of interesting stuff
in the area of UI, symbolic methods, etc. that is completely
independent of the specification side. It seems to me the
specification stuff bogs down the effort.

By "outsourcing" all the specification stuff you can offload that
burden and then focus on python based tools for introspection,
symbolic manipulation, visualization, graphical model construction,
etc. I don't know your ultimate goals but it just seems to me you'll
get their faster by co-opting the existing work. Not only that, if
you interest is in studying complex dynamic systems there is a
mountain of stuff already out there (in the form of fully specified
models) that you can incorporate.

For what it's worth.
 
R

Rob Clewley

This kind of comment comes up often, so I think it's worth spelling
out a response that will persist on the web and can appear in our FAQ.

I have a different and admittedly limited view of hybrid systems as
part of dynamical systems theory. In principle, I would love to have
time to write an interface to something like Modelica, but PyDSTool
isn't intended as an industrial-scale simulation package: it is
intended for applied dynamical systems research involving small
systems that people want to analyze with tools like bifurcation theory
and parameter estimation. I also want to switch components in and out
of a model with minimum overhead as part of model estimation and
parameter estimation routines that remain an open research area.
Partly for this reason I don't want to start depending on large
external packages, most features of which people may never be needed.
Given my present purposes the overhead of writing an interface is a
demanding sink of my time when basic (essentially prototype) tools
suffice in the short term. That is also why I am not planning a
graphical UI at this time. (The related DsTool and XPP packages
already have GUIs.)

I appreciate the idea of outsourcing to take advantage of good work in
areas such as yours. I hope to step up to that bar later on as part
of an ongoing research project connected to me, which involves
studying the mechanisms of locomotion in insects. There are other
mechanical simulation packages that I would like to interface to (most
are commercial), but on close inspection it turns out there's a lot of
very technical issues involved -- although at least modelica is open
source! Sorry to be taking a short-term view here (I try to avoid
that), but we're just a couple of guys trying to concentrate on our
day jobs...

Rob
 
M

michael.tiller

I have a different and admittedly limited view of hybrid systems as
part of dynamical systems theory. In principle, I would love to have
time to write an interface to something like Modelica, but PyDSTool
isn't intended as an industrial-scale simulation package: it is
intended for applied dynamical systems research involving small
systems that people want to analyze with tools like bifurcation theory
and parameter estimation. ....
Sorry to be taking a short-term view here (I try to avoid
that), but we're just a couple of guys trying to concentrate on our
day jobs...

As long as these are your stated objectives I certainly can't take any
issue with them. In fact, I qualified my statement with "I don't know
your ultimate goals" for precisely this reason. Without knowing your
goals I certainly can't made a valid argument about your approach. I
am glad that you appear to have understood the spirit of the comment.

If you ever do decide to consider larger scale models, you might want
to look into "OpenModelica" (an open source implementation from
Linkoeping University). It includes a compiler that can take Modelica
code and generate "flat Modelica" (processing inheritance, hierarchy,
replaceable components, etc. down to just variables and equations).

One final note on perspective. The main driver for my comment is that
I am an industrial user but I would love to have these kinds of
analysis capabilities. I see that as one of the remaining
opportunities in Modelica (i.e. the ability to build niche analysis
capabilities, which commercial vendors perhaps could not justify,
around a standard description). Having it done within a Python
framework would be icing on the cake. :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top