DAE Tools Project / News: Recent posts

DAE Tools 1.2.1 released

  • Integration speed improvements (more than an order of magnitude, in some cases); no need for a memory copy from/to the DAE solver, a better integration step control and an option to avoid sparse matrix re-creations after a discontinuity
  • Added support for units; variables, parameters, domains points must have a numerical value in terms of a unit of measurement (quantity) and units-consistency is strictly enforced (although it can be switched off in the daetools.cfg config file); all constants in equations must be dimensional and assigned units
  • A basic support for external functions that can handle and evaluate functions in external libraries (the goal is to support certtain software components such as thermodynamic property packages)
  • A new type of 2D plots: Animated2D plot
  • Equations can have an optional scaling
  • Improved data reporting speed and changes in data reporting during an optimization
  • New distribution format (python disutils)
  • Mac OSX port
  • c++ (cDAE) tutorials
  • Support for the information about the progress of a simulation/optimization activity
  • Other small improvements and minor bugs fixes
Posted by ciroki 2012-06-14

DAE Tools 1.1.2 released

List of new features:
New type of ports: event ports (daeEventPort class)
A new function ON_EVENT in the daeModel class that specifies how the incoming events on a specific event port are handled
A new way of handling state transitions: the function ON_CONDITION in daeModel that specifies actions to be undertaken when the logical condition is satisfied
Non-linear least square minimization with daeMinpackLeastSq (scipy wrapper of Levenberg-Marquardt algorithm from Minpack)
Examples of DAE Tools and Scipy interoperabilty (scipy.optimize.fmin, scipy.optimize.leastsq)
Developed shell scripts to compile third party libraries (Sundials IDAS, SuperLU/SuperLU_MT, Trilinos, Bonmin, and NLopt), DAE Tools core libraries and boost.python extension modules
Some of the tutorials are available in c++ (cDAE) too
Some API polishing

Posted by ciroki 2011-09-29

DAE Tools 1.1.1 released

List of new features:
The main focus was to find and adapt a free multithreaded sparse direct solver for use with DAE Tools and it turned out that the best candidate is SuperLU_MT. As of DAE Tools v1.1.1 SuperLU (singlethreaded) and SuperLU_MT (multithreaded) are recommended linear equation solvers. All the other (Trilinos group of solvers, Intel Pardiso, ...) will remain there but with less support.
A set of Krylov iterative solvers has been added. Trilinos AztecOO solver with IFPACK, ML or built-in preconditioners is available. However, iterative solvers are not fully working yet and these solvers are still in an early/experimental phase.
As the GPGPUs become more and more attractive an effort is made to try to offload computation of the most demanding tasks to GPU. The starting point is obviously a linear equation solver and two options are offered:
- CUSP
- SuperLU_CUDA (OpenMP version of SuperLU_MT modifed to work on CUDA GPU devices). The solver is still in the early development phase and the brief description is given in SuperLU_CUDA. Few issues still remain unsolved and a help from CUDA experienced developers is welcomed!
The new NLP solver has been added (NLOPT from the Massachusetts Institute of Technology). More information about NLOPT and available solvers can be found on NLOPT wiki pages.
To separate NLP from MINLP problems the IPOPT is now a standalone solver.
All linear solvers are located in daetools/solvers directory.
Now all linear solvers support exporting sparse/dense matrices in .xpm image and matrix market file formats.
Models and ports now can be exported into some other modelling language. At the moment, models can be exported into pyDAE (python) and cDAE (c++) but other languages will be supported in the future (such as OpenModelica, EMSO, perhaps some proprietary etc...).
New data reporter (daeMatlabMATDataReporter) has been added that allows user to export the result into the Matlab MAT file format.
Operators + and - for daeDistributedEquationDomainInfo (daeDEDI) class which enable getting values/derivatives in distributed equations that are not equal to the index of the current iterator (see distillation column example for usage).
daeParameter/daeVariable constructors accept a list of domains (analogous to calling DistributeOnDomain for each domain).
Now all constraints are specified in the following way:
- Inequality constraints: g(i) <= 0
- Equality constraints: h(i) = 0
DAE Tools source code has been checked by Valgrind and no memory leaks has been detected.
Development of some useful models has been started. The models are located in model_library directory.
A set of standard variable types has been developed. Variable types are located in daeVariableTypes.py file.
Several minor bug fixes.

Posted by ciroki 2011-06-18

Version 1.0-5 released

Version 1.0-5 released (Sunday, December 12 2010).
It brings several new features such as:
Added opearators + - * / that accept both values and arrays.
Added functions d (partial derivative) and dt (derivative per time) which evaluate a derivative of an expression. Only opearators + - * / are supported.
Added daetools.cfg {in .info file format}. All core libraries use the settings from that file.
Added saving of the runtime simulation information.
Added support for initialization of complex models. Values of model variables now can be exported to a binary file and used later during the initialization.
Fixed functions Pause and Resume in daeDynamicActivity enabling pausing and resuming of a simulation.
Updated documentation (installation, getting started and user guide).
All tutorials modified so that they support two execution modes: gui (with daeSimulator GUI) and console. The execution modes are specified at the command line with the 'gui' and 'console' switches. Default is gui.
Matplotlib 3D plot replaced by Mayavi2 surface plots.

Posted by ciroki 2010-12-14