changes_1_4_0

Joel Andersson edited this page Jul 5, 2012 · 24 revisions

Changes from version 1.3.0beta to 1.4.0beta

  • A major rewriting effort of the Modelica XML parsing has taken place. The changes are not backward compatible.
  • The function "symbolic" has been removed and replaced by "ssym". Symbolic variables can now be created by either SX("name")/MX("name") (scalar-style) or ssym("name",d1,d2)/msym("name",d1,d2) (matrix-style).
  • The characters ()[]{},; and whitespace are no longer valid variable names
  • A collocation based integrator (essentially equivalent to a fixed-step Runge-Kutta method) is now available and ready to use. The integrator supports forward and adjoint sensitivitity analysis, explicit and implicit ODEs/DAEs and quadratures. It is intended to be a very robost and fast integrator to be used in shooting based dynamic optimization.
  • To avoid confusion with Python's and Matlab's prod and dot functions, matrix multiplication in CasADi now uses the syntax "mul" instead of prod or dot. Using the old syntax will cause a compilation error in C++, and a runtime error in Python.
  • Sparse matrices of type CasAD::Matrix<> or CasADi::MX can now be created with the syntax MX::sparse(n,m) instead of MX::zeros(n,m). MX::zeros(n,m) will be used to create dense n-by-m matrices before the next release. The change will give a syntax which should be more familiar to Matlab users.
  • The MultipleShooting now expects continuous time dynamics, rather than discrete time as before.
  • sum(matrix,axis=0) has been dropped in favor of sumRows ad sumCols. Also, sum_all has been renamed to sumAll for better consistency.
  • vec(MX) was changed to match the behaviour of vec(Matrix)
  • The CasAD::Integrator class has had its syntax changed. The new DAE syntax is based on a semi-explicit form, although the ODE part of the DAE is allowed to be implicit. The user now supplies one function which contains both the differential right hand side, the algebraic right hand side and the quadrature right hand side. For more information see the API documentation of the CasAD::Integrator class.