Skip to content

Commit 56b17a4

Browse files
committed
update HISTORY and README for v15
1 parent 4da11bd commit 56b17a4

File tree

2 files changed

+79
-69
lines changed

2 files changed

+79
-69
lines changed

HISTORY.md

Lines changed: 75 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,8 @@
99
(at the time the release is made). If you need a dependency version increased,
1010
please open an issue and we can update it and make a new Catalyst release once
1111
testing against the newer dependency version is complete.
12-
- It is no longer recommended to install and use the full OrdinaryDiffEq library
13-
to access specific ODE solvers. Instead, only install the specific
14-
OrdinaryDiffEq sub-libraries that contain the desired solver. This
15-
significantly reduces installation and package loading times. I.e. to use the
16-
default solver that auto-switches between explicit and implicit methods,
17-
install `OrdinaryDiffEqDefault`. To use `Tsit5` install `OrdinaryDiffEqTsit5`,
18-
etc. The possible sub-libraries, each containing different solvers, can be
19-
viewed [here](https://github.com/SciML/OrdinaryDiffEq.jl/tree/master/lib).
20-
- It should now be safe to use `remake` on problems which have had conservation
21-
laws removed with the exception of `NonlinearProblem`s or `NonlinearSystem`s.
22-
For NonlinearProblems it is safe to use `remake` if only updating `u0` values,
23-
but it is not safe to update the value of the conserved constant, `Γ`. See
24-
[the FAQ](https://docs.sciml.ai/Catalyst/stable/faqs/#faq_remake_nonlinprob)
25-
for details.
26-
- New formula for inferring variables from equations (declared using the
27-
`@equations` options) in the DSL. The order of inference of
12+
- **BREAKING:** New formula for inferring variables from equations (declared
13+
using the `@equations` options) in the DSL. The order of inference of
2814
species/variables/parameters is now:
2915
1. Every symbol explicitly declared using `@species`, `@variables`, and
3016
`@parameters` are assigned to the correct category.
@@ -45,10 +31,10 @@
4531
and `@differentials` options still hold. Finally, the `@require_declaration`
4632
options (described in more detail below) can now be used to require everything
4733
to be explicitly declared.
48-
- New formula for determining whether the default differentials have been used
49-
within an `@equations` option. Now, if any expression `D(...)` is encountered
50-
(where `...` can be anything), this is inferred as usage of the default
51-
differential D. E.g. in the following equations `D` is inferred as a
34+
- **BREAKING:** New formula for determining whether the default differentials
35+
have been used within an `@equations` option. Now, if any expression `D(...)`
36+
is encountered (where `...` can be anything), this is inferred as usage of the
37+
default differential D. E.g. in the following equations `D` is inferred as a
5238
differential with respect to the default independent variable:
5339
```julia
5440
@reaction_network begin
@@ -61,10 +47,10 @@
6147
Please note that this cannot be used at the same time as `D` is used to
6248
represent a species, variable, or parameter (including if these are implicitly
6349
designated as such by e.g. appearing as a reaction reactant).
64-
- Array symbolics support is more consistent with ModelingToolkit v9. Parameter
65-
arrays are no longer scalarized by Catalyst, while species and variables
66-
arrays still are (as in ModelingToolkit). As such, parameter arrays should now
67-
be specified as arrays in value mappings, i.e.
50+
- **BREAKING:** Array symbolics support is more consistent with ModelingToolkit
51+
v9. Parameter arrays are no longer scalarized by Catalyst, while species and
52+
variables arrays still are (as in ModelingToolkit). As such, parameter arrays
53+
should now be specified as arrays in value mappings, i.e.
6854
```julia
6955
@parameters k[1:4]
7056
pmap = [k => rand(4)]
@@ -73,47 +59,27 @@
7359
*not* to do this as it has signifcant performance costs with ModelingToolkit
7460
v9. Note, scalarized parameter arrays passed to the two-argument
7561
`ReactionSystem` constructor may become unscalarized.
76-
- Functional (e.g. time-dependent) parameters can now be used in Catalyst
77-
models. These can e.g. be used to incorporate arbitrary time-dependent
78-
functions (as a parameter) in a model. For more details on how to use these,
79-
please read:
80-
https://docs.sciml.ai/Catalyst/stable/model_creation/functional_parameters/.
81-
- We have introduced a restriction on bundling of reactions in the DSL. Now,
82-
bundling is not permitted if multiple rates are provided but only one set each
83-
of substrates/products. E.g. this model:
62+
- **BREAKING:** We have introduced a restriction on bundling of reactions in the
63+
DSL. Now, bundling is not permitted if multiple rates are provided but only
64+
one set each of substrates/products. E.g. this model:
8465
```julia
8566
@reaction_network begin
8667
(k1,k2), X --> Y
8768
end
8869
```
89-
will now throw an error. The reason that users attempting to write bi-directional
90-
reactions but typing `-->` instead of `<-->` would get a wrong model. We decided that
91-
this kind of bundling was unlikely to be used, and throwing errors for people who
92-
made the typo was more important.
93-
94-
If you use this type of bundling and it indeed is useful to you, please raise and issue
70+
will now throw an error. The reason that users attempting to write
71+
bi-directional reactions but typing `-->` instead of `<-->` would get a wrong
72+
model. We decided that this kind of bundling was unlikely to be used, and
73+
throwing errors for people who made the typo was more important. If you use
74+
this type of bundling and it indeed is useful to you, please raise and issue
9575
and we will see if we can sort something out.
96-
- Scoped species/variables/parameters are now treated similar to the latest MTK
97-
releases ( 9.49).
98-
- A tutorial on making interactive plot displays using Makie has been added.
99-
- The BifurcationKit extension has been updated to v.4.
100-
- There is a new DSL option `@require_declaration` that will turn off automatic inferring for species, parameters, and variables in the DSL. For example, the following will now error:
101-
```julia
102-
rn = @reaction_network begin
103-
@require_declaration
104-
(k1, k2), A <--> B
105-
end
106-
```
107-
When this flag is set, all symbolics must be explicitly declared.
108-
```julia
109-
rn = @reaction_network begin
110-
@species A(t) B(t)
111-
@parameters k1 k2
112-
@require_declaration
113-
(k1, k2), A <--> B
114-
end
115-
```
116-
- Catalyst's network visualization capability has shifted from using Graphviz to [GraphMakie.jl](https://graph.makie.org/stable/). To use this functionality, load the GraphMakie extension by installing `Catalyst` and `GraphMakie`, along with a Makie backend like `GLMakie`. There are two new methods for visualizing graphs: `plot_network` and `plot_complexes`, which respectively display the species-reaction graph and complex graph.
76+
- **BREAKING:** Catalyst's network visualization capability has shifted from
77+
using Graphviz to [GraphMakie.jl](https://graph.makie.org/stable/). To use
78+
this functionality, load the GraphMakie extension by installing `Catalyst` and
79+
`GraphMakie`, along with a Makie backend like `CairoMakie` or `GLMakie`. There
80+
are two new methods for visualizing graphs: `plot_network` and
81+
`plot_complexes`, which respectively display the species-reaction graph and
82+
complex graph.
11783
```julia
11884
using Catalyst, GraphMakie, GLMakie
11985
brusselator = @reaction_network begin
@@ -124,13 +90,15 @@
12490
end
12591
plot_network(brusselator)
12692
```
127-
- The letter Ø (used in Danish/Norwegian alphabet) is now considered the same as ∅ (empty set). It can no longer be used as a species/parameter.
128-
- When converting a Catalyst `ReactionSystem` to a ModelingToolkit system, for
129-
example an `ODESystem`, Catalyst defined functions like `hill(A,B,C,D)` are
130-
now replaced with the explicit rational function they represent in the
131-
equations of the generated system. For example `mm(X,v,K)` will be replaced
132-
with `v*X / (X + K)`. This can be disabled by passing the keyword argument
133-
`expand_catalyst_funs = false`. e.g.
93+
- **BREAKING:** The letter Ø (used in Danish/Norwegian alphabet) is now
94+
considered the same as ∅ (empty set). It can no longer be used as a
95+
species/parameter.
96+
- **BREAKING:** When converting a Catalyst `ReactionSystem` to a ModelingToolkit
97+
system, for example an `ODESystem`, Catalyst defined functions like
98+
`hill(A,B,C,D)` are now replaced with the explicit rational function they
99+
represent in the equations of the generated system. For example `mm(X,v,K)`
100+
will be replaced with `v*X / (X + K)`. This can be disabled by passing the
101+
keyword argument `expand_catalyst_funs = false`. e.g.
134102
```julia
135103
using Catalyst
136104
rn = @reaction_network begin
@@ -145,6 +113,47 @@
145113
generates an ODE system with `D(A) ~ -A(t)*hill(X, v, K, n)`. This keyword
146114
argument can also be passed to problems defined over `ReactionSystem`s, i.e.
147115
when calling `ODEProblem(rn, u0, tspan, p; expand_catalyst_funs = false)`.
116+
- It is no longer recommended to install and use the full OrdinaryDiffEq library
117+
to access specific ODE solvers. Instead, only install the specific
118+
OrdinaryDiffEq sub-libraries that contain the desired solver. This
119+
significantly reduces installation and package loading times. I.e. to use the
120+
default solver that auto-switches between explicit and implicit methods,
121+
install `OrdinaryDiffEqDefault`. To use `Tsit5` install `OrdinaryDiffEqTsit5`,
122+
etc. The possible sub-libraries, each containing different solvers, can be
123+
viewed [here](https://github.com/SciML/OrdinaryDiffEq.jl/tree/master/lib).
124+
- It should now be safe to use `remake` on problems which have had conservation
125+
laws removed with the exception of `NonlinearProblem`s or `NonlinearSystem`s.
126+
For NonlinearProblems it is safe to use `remake` if only updating `u0` values,
127+
but it is not safe to update the value of the conserved constant, `Γ`. See
128+
[the FAQ](https://docs.sciml.ai/Catalyst/stable/faqs/#faq_remake_nonlinprob)
129+
for details.
130+
- Functional (e.g. time-dependent) parameters can now be used in Catalyst
131+
models. These can e.g. be used to incorporate arbitrary time-dependent
132+
functions (as a parameter) in a model. For more details on how to use these,
133+
please read:
134+
https://docs.sciml.ai/Catalyst/stable/model_creation/functional_parameters/.
135+
- Scoped species/variables/parameters are now treated similar to the latest MTK
136+
releases ( 9.49).
137+
- A tutorial on making interactive plot displays using Makie has been added.
138+
- The BifurcationKit extension has been updated to v.4.
139+
- There is a new DSL option `@require_declaration` that will turn off automatic
140+
inferring for species, parameters, and variables in the DSL. For example, the
141+
following will now error:
142+
```julia
143+
rn = @reaction_network begin
144+
@require_declaration
145+
(k1, k2), A <--> B
146+
end
147+
```
148+
When this flag is set, all symbolics must be explicitly declared.
149+
```julia
150+
rn = @reaction_network begin
151+
@species A(t) B(t)
152+
@parameters k1 k2
153+
@require_declaration
154+
(k1, k2), A <--> B
155+
end
156+
```
148157

149158
## Catalyst 14.4.1
150159
- Support for user-defined functions on the RHS when providing coupled equations

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,10 @@ Pkg.add("Catalyst")
4747

4848
## Breaking changes and new features
4949

50-
**NOTE:** Version 14 is a breaking release, prompted by the release of ModelingToolkit.jl version 9. This caused several breaking changes in how Catalyst models are represented and interfaced with.
51-
52-
Breaking changes and new functionality are summarized in the [HISTORY.md](HISTORY.md) file. Furthermore, a migration guide on how to adapt your workflows to the new v14 update can be found [here](https://docs.sciml.ai/Catalyst/stable/v14_migration_guide/).
50+
**NOTE:** Version 15 is a breaking release, though most breaking changes are
51+
likely to only impact libraries being developed on top of Catalyst. Please
52+
see the [HISTORY.md](HISTORY.md) file for a summary of breaking changes and new
53+
functionality.
5354

5455
## Tutorials and documentation
5556

0 commit comments

Comments
 (0)