Skip to content

Commit ba9284e

Browse files
docs: update NEWS.md with v9 update notes
1 parent 3b4fb73 commit ba9284e

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

NEWS.md

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,34 @@
1-
# ModelingToolkit v8 Release Notes
1+
# ModelingToolkit v9 Release Notes
22

33
### Upgrade guide
44

5-
- `connect` should not be overloaded by users anymore. `[connect = Flow]`
6-
informs ModelingToolkit that particular variable in a connector ought to sum
7-
to zero, and by default, variables are equal in a connection. Please check out
8-
[acausal components tutorial](https://docs.sciml.ai/ModelingToolkit/stable/tutorials/acausal_components/)
9-
for examples.
5+
- The function `states` is renamed to `unknowns`. In a similar vein:
6+
- `unknown_states` is now `solved_unknowns`.
7+
- `get_states` is `get_unknowns`.
8+
- `get_unknown_states` is now `get_solved_unknowns`.
9+
- The default backend for using units in models is now `DynamicQuantities.jl` instead of
10+
`Unitful.jl`.
11+
- ModelingToolkit.jl now exports common definitions of `t` (time independent variable)
12+
and `D` (the first derivative with respect to `t`). Any models made using ModelingToolkit.jl
13+
should leverage these common definitions. There are three variants:
14+
- `t` and `D` use DynamicQuantities.jl units.
15+
- `t_unitful` and `D_unitful` use Unitful.jl units.
16+
- `t_nounits` and `D_nounits` are unitless.
17+
- `ODAEProblem` is deprecated in favor of `ODEProblem`.
18+
- Specifying the independent variable for an `ODESystem` is now mandatory. The `ODESystem(eqs)`
19+
constructor is removed.
20+
- Systems must be marked as `complete` before creating `*Function`/`*FunctionExpr`/`*Problem`/
21+
`*ProblemExpr`. Typically this involved using `@mtkbuild` to create the system or calling
22+
`structural_simplify` on an existing system.
23+
- All systems will perform parameter splitting by default. Problems created using ModelingToolkit.jl
24+
systems will have a custom struct instead of a `Vector` of parameters. The internals of this
25+
type are undocumented and subject to change without notice or a breaking release. Parameter values
26+
can be queried, updated or manipulated using SciMLStructures.jl or SymbolicIndexingInterface.jl.
27+
This also requires that the symbolic type of a parameter match its assigned value. For example,
28+
`@parameters p` will always use a `Float64` value for `p`. To use `Int` instead, use
29+
`@parameters p::Int`. Array-valued parameters must be array symbolics; `@parameters p = [1.0, 2.0]`
30+
is now invalid and must be changed to `@parameters p[1:2] = [1.0, 2.0]`. The index of a parameter
31+
in the system is also not guaranteed to be an `Int`, and will instead be a custom undocumented type.
32+
- To restore the old behavior, use `ModelingToolkit.@set sys.index_cache = nothing` before creating
33+
a problem, and after calling `structural_simplify`.
34+
- Discrete-time system using `Difference` are unsupported. Instead, use the new `Clock`-based syntax.

0 commit comments

Comments
 (0)