v0.9.0
ModiaBase v0.9.0
Non-backwards compatible improvements
- Parameter values in the code are now type cast to the type of the parameter value from the
@instantiatedModel(..)
call. The benefit is that access of parameter values in the code is type stable
and operations with the parameter value are more efficient and at run-time no memory is allocated.
Existing models can no longer be simulated, if parameter values provided viasimulate!(.., merge=xx)
are not
type compatible to their definition. For example, an error is thrown if the @instantedModel(..) uses a Float64 value and the
simulate!(.., merge=xx)
uses aMeasurement{Float64}
value for the same parameter.
Other improvements
-
Hierarchical names in function calls supported (e.g.
a.b.c.fc(..)
). -
Functions can return multiple values, e.g.
(tau1,tau2) = generalizedForces(derw1, derw2)
. -
Large speedup of symbolic transformation, if function depends on many input (and output) arguments
(includes new operatorimplicitDependency(..)
). -
Support for StaticArrays variables (the StaticArrays feature is kept in the generated AST).
-
Support for Array variables (especially of state and tearing variables)
where the dimension can change after @instantiateModel(..) -
Included DAE-Mode in solution of linear equation system (if DAE integrator is used and all unknowns of a linear
equation system are part of the DAE states, solve the linear equation system during continuous integration
via DAE solver (= usually large simulation speed-up, for larger linear equation systems) -
Improved code generation of linear equation systems lead to more efficient solution of linear equation systems.
Bug fixes
- Do no longer expand the unit macro in the AST, such as
u"N"
, because otherwiselogCode=true
results in wrong code
(previously, au"N"
definition in the model was displayed in the code asN
which is not correct Julia code).
Merged pull requests:
- Branch merge development to main2 (#6) (@MartinOtter)