You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/model_creation/dsl_advanced.md
+10-13Lines changed: 10 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -272,22 +272,19 @@ sol = solve(oprob)
272
272
plot(sol)
273
273
```
274
274
275
-
### [Turning off species, parameter, and variable inferring](@id dsl_advanced_options_require_dec)
276
-
In some cases it may be desirable for Catalyst to not infer species and parameters from the DSL, as in the case of reaction networks with very many variables, or as a sanity check that variable names are written correctly. To turn off inferring, simply add the `@require_declaration`macro to one of the lines of the `@reaction_network`declaration. Having this macro means that every single variable, species, or parameter will have to be explicitly declared using the `@variable`, `@species`, or `@parameter`macro. In the case that the DSL parser encounters an undeclared symbolic, it will error with an `UndeclaredSymbolicError` and print the reaction or equation that the undeclared symbolic was found in.
275
+
### [Turning off species, parameter, and variable inference](@id dsl_advanced_options_require_dec)
276
+
In some cases it may be desirable for Catalyst to not infer species and parameters from the DSL, as in the case of reaction networks with very many variables, or as a sanity check that variable names are written correctly. To turn off inference, simply use the `@require_declaration`option when using the `@reaction_network`DSL. This will require every single variable, species, or parameter used within the DSL to be explicitly declared using the `@variable`, `@species`, or `@parameter`options. In the case that the DSL parser encounters an undeclared symbolic, it will error with an `UndeclaredSymbolicError` and print the reaction or equation that the undeclared symbolic was found in.
277
277
278
-
```@example dsl_advanced_no_infer
278
+
```julia
279
279
using Catalyst
280
280
# The following case will throw an UndeclaredSymbolicError.
281
-
try @macroexpand @reaction_network begin
281
+
rn =@reaction_networkbegin
282
282
@require_declaration
283
283
(k1, k2), A <--> B
284
284
end
285
-
catch e
286
-
println(e.msg)
287
-
end
288
285
```
289
286
In order to avoid an error in this case all the relevant species and parameters will have to be declared.
290
-
```
287
+
```@example dsl_advanced_require_dec
291
288
# The following case will not error.
292
289
t = default_t()
293
290
rn = @reaction_network begin
@@ -299,11 +296,11 @@ end
299
296
```
300
297
301
298
The following cases in which the DSL would normally infer variables will all throw errors if `@require_declaration` is set and the variables are not explicitly declared.
302
-
-Inferring a species in a reaction, as in the example above
303
-
-Inferring a parameter in a reaction rate expression, as in the reaction line `k*n, A --> B`
304
-
-Inferring a parameter in the stoichiometry of a species, as in the reaction line `k, n*A --> B`
305
-
-Inferring a differential variable on the LHS of a coupled differential equation, as in `A` in `@equations D(A) ~ A^2`
306
-
-Inferring an [observable](@ref dsl_advanced_options_observables) that is declared using `@observables`
299
+
-Occurrence of an undeclared species in a reaction, as in the example above.
300
+
-Occurrence of an undeclared parameter in a reaction rate expression, as in the reaction line `k*n, A --> B`.
301
+
-Occurrence of an undeclared parameter in the stoichiometry of a species, as in the reaction line `k, n*A --> B`.
302
+
-Occurrence of an undeclared differential variable on the LHS of a coupled differential equation, as in `A` in `@equations D(A) ~ A^2`.
303
+
-Occurrence of an undeclared [observable](@ref dsl_advanced_options_observables) in an `@observables` expression, such as `@observables X1 ~ A + B`.
0 commit comments