|
9 | 9 | (at the time the release is made). If you need a dependency version increased,
|
10 | 10 | please open an issue and we can update it and make a new Catalyst release once
|
11 | 11 | 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 |
28 | 14 | species/variables/parameters is now:
|
29 | 15 | 1. Every symbol explicitly declared using `@species`, `@variables`, and
|
30 | 16 | `@parameters` are assigned to the correct category.
|
|
45 | 31 | and `@differentials` options still hold. Finally, the `@require_declaration`
|
46 | 32 | options (described in more detail below) can now be used to require everything
|
47 | 33 | 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 |
52 | 38 | differential with respect to the default independent variable:
|
53 | 39 | ```julia
|
54 | 40 | @reaction_network begin
|
|
61 | 47 | Please note that this cannot be used at the same time as `D` is used to
|
62 | 48 | represent a species, variable, or parameter (including if these are implicitly
|
63 | 49 | 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. |
68 | 54 | ```julia
|
69 | 55 | @parameters k[1:4]
|
70 | 56 | pmap = [k => rand(4)]
|
|
73 | 59 | *not* to do this as it has signifcant performance costs with ModelingToolkit
|
74 | 60 | v9. Note, scalarized parameter arrays passed to the two-argument
|
75 | 61 | `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: |
84 | 65 | ```julia
|
85 | 66 | @reaction_network begin
|
86 | 67 | (k1,k2), X --> Y
|
87 | 68 | end
|
88 | 69 | ```
|
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 |
95 | 75 | 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. |
117 | 83 | ```julia
|
118 | 84 | using Catalyst, GraphMakie, GLMakie
|
119 | 85 | brusselator = @reaction_network begin
|
|
124 | 90 | end
|
125 | 91 | plot_network(brusselator)
|
126 | 92 | ```
|
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. |
134 | 102 | ```julia
|
135 | 103 | using Catalyst
|
136 | 104 | rn = @reaction_network begin
|
|
145 | 113 | generates an ODE system with `D(A) ~ -A(t)*hill(X, v, K, n)`. This keyword
|
146 | 114 | argument can also be passed to problems defined over `ReactionSystem`s, i.e.
|
147 | 115 | 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 | + ``` |
148 | 157 |
|
149 | 158 | ## Catalyst 14.4.1
|
150 | 159 | - Support for user-defined functions on the RHS when providing coupled equations
|
|
0 commit comments