Skip to content

Commit c8c1364

Browse files
committed
Merge remote-tracking branch 'origin/master' into detailedbalance
2 parents fa0df9d + 1e9e216 commit c8c1364

File tree

63 files changed

+3250
-937
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+3250
-937
lines changed

HISTORY.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,38 @@
22

33
## Catalyst unreleased (master branch)
44

5+
6+
## Catalyst 14.1.1
7+
The expansion of `ReactionSystem` models to spatial lattices has been enabled. Here follows a
8+
simple example where a Brusselator model is expanded to a 20x20 grid of compartments, with diffusion
9+
for species X, and then simulated using ODEs. Finally, an animation of the simulation is created.
10+
```julia
11+
using Catalyst, CairoMakie, OrdinaryDiffEq
12+
13+
# Create `LatticeReactionSystem` model.
14+
brusselator = @reaction_network begin
15+
A, ∅ --> X
16+
1, 2X + Y --> 3X
17+
B, X --> Y
18+
1, X -->
19+
end
20+
diffusion_rx = @transport_reaction D X
21+
lattice = CartesianGrid((20,20))
22+
lrs = LatticeReactionSystem(brusselator, [diffusion_rx], lattice)
23+
24+
# Create a spatial `ODEProblem`.
25+
u0 = [:X => rand(20, 20), :Y => 10.0]
26+
tspan = (0.0, 40.0)
27+
ps = [:A => 1.0, :B => 4.0, :D => 0.2]
28+
oprob = ODEProblem(lrs, u0, tspan, ps)
29+
30+
# Simulate the ODE and plot the results.
31+
sol = solve(oprob, FBDF())
32+
lattice_animation(sol, :X, lrs, "brusselator.mp4")
33+
```
34+
The addition of spatial modelling in Catalyst contains a large number of new features, all of which are
35+
described in the [corresponding documentation](https://docs.sciml.ai/Catalyst/stable/spatial_modelling/lattice_reaction_systems/).
36+
537
## Catalyst 14.0.1
638
Bug fix to address that independent variables, like time, should now be `@parameters`
739
according to MTKv9. Converted internal time variables to consistently use `default_t()`

Project.toml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "Catalyst"
22
uuid = "479239e8-5488-4da2-87a7-35f2df7eef83"
3-
version = "14.0.1"
3+
version = "14.1.1-DEV"
44

55
[deps]
66
Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
@@ -20,29 +20,36 @@ Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a"
2020
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
2121
Requires = "ae029012-a4dd-5104-9daa-d747884805df"
2222
RuntimeGeneratedFunctions = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47"
23+
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
2324
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
2425
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
2526
Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
2627
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
2728

2829
[weakdeps]
2930
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
31+
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
32+
GraphMakie = "1ecd5474-83a3-4783-bb4f-06765db800d2"
3033
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
3134
StructuralIdentifiability = "220ca800-aa68-49bb-acd8-6037fa93a544"
3235

3336
[extensions]
3437
CatalystBifurcationKitExtension = "BifurcationKit"
38+
CatalystCairoMakieExtension = "CairoMakie"
39+
CatalystGraphMakieExtension = "GraphMakie"
3540
CatalystHomotopyContinuationExtension = "HomotopyContinuation"
3641
CatalystStructuralIdentifiabilityExtension = "StructuralIdentifiability"
3742

3843
[compat]
3944
BifurcationKit = "0.3"
45+
CairoMakie = "0.12"
4046
Combinatorics = "1.0.2"
4147
DataStructures = "0.18"
4248
DiffEqBase = "6.83.0"
4349
DocStringExtensions = "0.8, 0.9"
4450
DynamicPolynomials = "0.5"
4551
DynamicQuantities = "0.13.2"
52+
GraphMakie = "0.5"
4653
Graphs = "1.4"
4754
HomotopyContinuation = "2.9"
4855
JumpProcesses = "9.3.2"
@@ -54,6 +61,7 @@ Parameters = "0.12"
5461
Reexport = "0.2, 1.0"
5562
Requires = "1.0"
5663
RuntimeGeneratedFunctions = "0.5.12"
64+
SciMLBase = "2.46"
5765
Setfield = "1"
5866
StructuralIdentifiability = "0.5.8"
5967
Symbolics = "5.30.1"
@@ -62,8 +70,10 @@ julia = "1.10"
6270

6371
[extras]
6472
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
73+
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
6574
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
6675
DomainSets = "5b8099bc-c8ec-5219-889f-1d9e522a28bf"
76+
GraphMakie = "1ecd5474-83a3-4783-bb4f-06765db800d2"
6777
Graphviz_jll = "3c863552-8265-54e4-a6dc-903eb78fde85"
6878
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
6979
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
@@ -85,4 +95,4 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
8595
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
8696

8797
[targets]
88-
test = ["BifurcationKit", "DiffEqCallbacks", "DomainSets", "Graphviz_jll", "HomotopyContinuation", "Logging", "NonlinearSolve", "OrdinaryDiffEq", "Plots", "Random", "SafeTestsets", "SciMLBase", "SciMLNLSolve", "StableRNGs", "StaticArrays", "Statistics", "SteadyStateDiffEq", "StochasticDiffEq", "StructuralIdentifiability", "Test", "Unitful"]
98+
test = ["BifurcationKit", "CairoMakie", "DiffEqCallbacks", "DomainSets", "Graphviz_jll", "HomotopyContinuation", "Logging", "GraphMakie", "NonlinearSolve", "OrdinaryDiffEq", "Plots", "Random", "SafeTestsets", "SciMLBase", "SciMLNLSolve", "StableRNGs", "StaticArrays", "Statistics", "SteadyStateDiffEq", "StochasticDiffEq", "StructuralIdentifiability", "Test", "Unitful"]

README.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Catalyst.jl
22

33
[![Latest Release (for users)](https://img.shields.io/badge/docs-latest_release_(for_users)-blue.svg)](https://docs.sciml.ai/Catalyst/stable/)
4-
[![API Latest Release (for users)](https://img.shields.io/badge/API-latest_release_(for_users)-blue.svg)](https://docs.sciml.ai/Catalyst/stable/api/catalyst_api/)
4+
[![API Latest Release (for users)](https://img.shields.io/badge/API-latest_release_(for_users)-blue.svg)](https://docs.sciml.ai/Catalyst/stable/api/)
55
[![Master (for developers)](https://img.shields.io/badge/docs-master_branch_(for_devs)-blue.svg)](https://docs.sciml.ai/Catalyst/dev/)
6-
[![API Master (for developers](https://img.shields.io/badge/API-master_branch_(for_devs)-blue.svg)](https://docs.sciml.ai/Catalyst/dev/api/catalyst_api/)
6+
[![API Master (for developers](https://img.shields.io/badge/API-master_branch_(for_devs)-blue.svg)](https://docs.sciml.ai/Catalyst/dev/api/)
77
<!--[![Join the chat at https://julialang.zulipchat.com #sciml-bridged](https://img.shields.io/static/v1?label=Zulip&message=chat&color=9558b2&labelColor=389826)](https://julialang.zulipchat.com/#narrow/stream/279055-sciml-bridged)-->
88

99
[![Build Status](https://github.com/SciML/Catalyst.jl/workflows/CI/badge.svg)](https://github.com/SciML/Catalyst.jl/actions?query=workflow%3ACI)
@@ -55,7 +55,7 @@ be found in its corresponding research paper, [Catalyst: Fast and flexible model
5555
- Leveraging ModelingToolkit, generated models can be converted to symbolic reaction rate equation ODE models, symbolic Chemical Langevin Equation models, and symbolic stochastic chemical kinetics (jump process) models. These can be simulated using any [DifferentialEquations.jl](https://docs.sciml.ai/DiffEqDocs/stable/) [ODE/SDE/jump solver](https://docs.sciml.ai/Catalyst/stable/model_simulation/simulation_introduction/), and can be used within `EnsembleProblem`s for carrying out [parallelized parameter sweeps and statistical sampling](https://docs.sciml.ai/Catalyst/stable/model_simulation/ensemble_simulations/). Plot recipes are available for [visualization of all solutions](https://docs.sciml.ai/Catalyst/stable/model_simulation/simulation_plotting/).
5656
- Non-integer (e.g. `Float64`) stoichiometric coefficients [are supported](https://docs.sciml.ai/Catalyst/stable/model_creation/dsl_basics/#dsl_description_stoichiometries_decimal) for generating ODE models, and symbolic expressions for stoichiometric coefficients [are supported](https://docs.sciml.ai/Catalyst/stable/model_creation/parametric_stoichiometry/) for all system types.
5757
- A [network analysis suite](https://docs.sciml.ai/Catalyst/stable/model_creation/network_analysis/) permits the computation of linkage classes, deficiencies, reversibility, and other network properties.
58-
- [Conservation laws can be detected and utilized](https://docs.sciml.ai/Catalyst/stable/model_creation/network_analysis/#working_with_conservation_laws) to reduce system sizes, and to generate non-singular Jacobians (e.g. during conversion to ODEs, SDEs, and steady state equations).
58+
- [Conservation laws can be detected and utilized](https://docs.sciml.ai/Catalyst/stable/model_creation/conservation_laws/) to reduce system sizes, and to generate non-singular Jacobians (e.g. during conversion to ODEs, SDEs, and steady state equations).
5959
- Catalyst reaction network models can be [coupled with differential and algebraic equations](https://docs.sciml.ai/Catalyst/stable/model_creation/constraint_equations/) (which are then incorporated during conversion to ODEs, SDEs, and steady state equations).
6060
- Models can be [coupled with events](https://docs.sciml.ai/Catalyst/stable/model_creation/constraint_equations/#constraint_equations_events) that affect the system and its state during simulations.
6161
- By leveraging ModelingToolkit, users have a variety of options for generating optimized system representations to use in solvers. These include construction of [dense or sparse Jacobians](https://docs.sciml.ai/Catalyst/stable/model_simulation/ode_simulation_performance/#ode_simulation_performance_sparse_jacobian), [multithreading or parallelization of generated derivative functions](https://docs.sciml.ai/Catalyst/stable/model_simulation/ode_simulation_performance/#ode_simulation_performance_parallelisation), [automatic classification of reactions into optimized jump types for Gillespie type simulations](https://docs.sciml.ai/JumpProcesses/stable/jump_types/#jump_types), [automatic construction of dependency graphs for jump systems](https://docs.sciml.ai/JumpProcesses/stable/jump_types/#Jump-Aggregators-Requiring-Dependency-Graphs), and more.
@@ -78,11 +78,10 @@ be found in its corresponding research paper, [Catalyst: Fast and flexible model
7878
- [SciMLSensitivity.jl](https://github.com/SciML/SciMLSensitivity.jl) can be used to compute local sensitivities of functions containing forward model simulations.
7979

8080
#### Features of packages built upon Catalyst
81-
- Catalyst [`ReactionSystem`](@ref)s can be [imported from SBML files](https://docs.sciml.ai/Catalyst/stable/model_creation/model_file_loading_and_export/#Loading-SBML-files-using-SBMLImporter.jl-and-SBMLToolkit.jl) via [SBMLImporter.jl](https://github.com/SciML/SBMLImporter.jl) and [SBMLToolkit.jl](https://github.com/SciML/SBMLToolkit.jl), and [from BioNetGen .net files](https://docs.sciml.ai/Catalyst/stable/model_creation/model_file_loading_and_export/#file_loading_rni_net) and various stoichiometric matrix network representations using [ReactionNetworkImporters.jl](https://github.com/SciML/ReactionNetworkImporters.jl).
81+
- Catalyst [`ReactionSystem`](@ref)s can be [imported from SBML files](https://docs.sciml.ai/Catalyst/stable/model_creation/model_file_loading_and_export/#Loading-SBML-files-using-SBMLImporter.jl-and-SBMLToolkit.jl) via [SBMLImporter.jl](https://github.com/sebapersson/SBMLImporter.jl) and [SBMLToolkit.jl](https://github.com/SciML/SBMLToolkit.jl), and [from BioNetGen .net files](https://docs.sciml.ai/Catalyst/stable/model_creation/model_file_loading_and_export/#file_loading_rni_net) and various stoichiometric matrix network representations using [ReactionNetworkImporters.jl](https://github.com/SciML/ReactionNetworkImporters.jl).
8282
- [MomentClosure.jl](https://github.com/augustinas1/MomentClosure.jl) allows generation of symbolic ModelingToolkit `ODESystem`s that represent moment closure approximations to moments of the Chemical Master Equation, from reaction networks defined in Catalyst.
8383
- [FiniteStateProjection.jl](https://github.com/kaandocal/FiniteStateProjection.jl) allows the construction and numerical solution of Chemical Master Equation models from reaction networks defined in Catalyst.
8484
- [DelaySSAToolkit.jl](https://github.com/palmtree2013/DelaySSAToolkit.jl) can augment Catalyst reaction network models with delays, and can simulate the resulting stochastic chemical kinetics with delays models.
85-
- [BondGraphs.jl](https://github.com/jedforrest/BondGraphs.jl), a package for constructing and analyzing bond graphs models, which can take Catalyst models as input.
8685

8786

8887
## Illustrative example

docs/Project.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
99
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
1010
DynamicalSystems = "61744808-ddfa-5f27-97ff-6e42cc95d634"
1111
GlobalSensitivity = "af5da776-676b-467e-8baf-acd8249e4f0f"
12+
GraphMakie = "1ecd5474-83a3-4783-bb4f-06765db800d2"
13+
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
1214
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
1315
IncompleteLU = "40713840-3770-5561-ab4c-a76e7d0d7895"
1416
JumpProcesses = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5"
@@ -46,6 +48,8 @@ Distributions = "0.25"
4648
Documenter = "1.4.1"
4749
DynamicalSystems = "3.3"
4850
GlobalSensitivity = "2.6"
51+
GraphMakie = "0.5"
52+
Graphs = "1.11.1"
4953
HomotopyContinuation = "2.9"
5054
IncompleteLU = "0.2"
5155
JumpProcesses = "9.11"
@@ -62,7 +66,7 @@ OptimizationOptimisers = "0.2.1"
6266
OrdinaryDiffEq = "6.80.1"
6367
Plots = "1.40"
6468
QuasiMonteCarlo = "0.3"
65-
SciMLBase = "2.39"
69+
SciMLBase = "2.46"
6670
SciMLSensitivity = "7.60"
6771
SpecialFunctions = "2.4"
6872
StaticArrays = "1.9"

docs/pages.jl

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ pages = Any[
1111
"model_creation/programmatic_CRN_construction.md",
1212
"model_creation/compositional_modeling.md",
1313
"model_creation/constraint_equations.md",
14+
"model_creation/conservation_laws.md",
1415
"model_creation/parametric_stoichiometry.md",
1516
"model_creation/model_file_loading_and_export.md",
1617
"model_creation/model_visualisation.md",
18+
"model_creation/reactionsystem_content_accessing.md",
1719
"model_creation/network_analysis.md",
1820
"model_creation/chemistry_related_functionality.md",
1921
"Model creation examples" => Any[
@@ -29,7 +31,10 @@ pages = Any[
2931
"model_simulation/simulation_structure_interfacing.md",
3032
"model_simulation/ensemble_simulations.md",
3133
"model_simulation/ode_simulation_performance.md",
32-
"model_simulation/sde_simulation_performance.md"
34+
"model_simulation/sde_simulation_performance.md",
35+
"Model simulation examples" => Any[
36+
"model_simulation/examples/periodic_events_simulation.md"
37+
]
3338
],
3439
"Steady state analysis" => Any[
3540
"steady_state_functionality/homotopy_continuation.md",
@@ -48,6 +53,13 @@ pages = Any[
4853
"inverse_problems/examples/ode_fitting_oscillation.md"
4954
]
5055
],
56+
"Spatial Modelling" => Any[
57+
"spatial_modelling/lattice_reaction_systems.md",
58+
"spatial_modelling/lattice_simulation_structure_ interaction.md",
59+
"spatial_modelling/lattice_simulation_plotting.md",
60+
"spatial_modelling/spatial_ode_simulations.md",
61+
"spatial_modelling/spatial_jump_simulations.md"
62+
],
5163
"FAQs" => "faqs.md",
5264
"API" => "api.md"
5365
]

docs/src/api.md

Lines changed: 100 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,12 @@ jumpsys = convert(JumpSystem, rs)
6868
jumpsys = complete(jumpsys)
6969
u₀map = [S => 999, I => 1, R => 0]
7070
dprob = DiscreteProblem(jumpsys, u₀map, tspan, parammap)
71-
jprob = JumpProblem(jumpsys, dprob, Direct(); save_positions = (false,false))
72-
sol = solve(jprob, SSAStepper(), saveat = 2.0)
71+
jprob = JumpProblem(jumpsys, dprob, Direct())
72+
sol = solve(jprob, SSAStepper())
73+
sol = solve(jprob, SSAStepper(), seed = 1234) # hide
7374
p3 = plot(sol, title = "jump")
74-
7575
plot(p1, p2, p3; layout = (3,1))
76+
Catalyst.PNG(plot(p1, p2, p3; layout = (3,1), fmt = :png, dpi = 200)) # hide
7677
```
7778

7879
```@docs
@@ -84,6 +85,22 @@ Reaction
8485
ReactionSystem
8586
```
8687

88+
## [Options for the `@reaction_network` DSL](@id api_dsl_options)
89+
We have [previously described](@ref dsl_advanced_options) how options permits the user to supply non-reaction information to [`ReactionSystem`](@ref) created through the DSL. Here follows a list
90+
of all options currently available.
91+
- [`parameters`]:(@ref dsl_advanced_options_declaring_species_and_parameters) Allows the designation of a set of symbols as system parameter.
92+
- [`species`](@ref dsl_advanced_options_declaring_species_and_parameters): Allows the designation of a set of symbols as system species.
93+
- [`variables`](@ref dsl_advanced_options_declaring_species_and_parameters): Allows the designation of a set of symbols as system non-species variables.
94+
- [`ivs`](@ref dsl_advanced_options_ivs): Allows the designation of a set of symbols as system independent variables.
95+
- [`compounds`](@ref chemistry_functionality_compounds): Allows the designation of compound species.
96+
- [`observables`](@ref dsl_advanced_options_observables): Allows the designation of compound observables.
97+
- [`default_noise_scaling`](@ref simulation_intro_SDEs_noise_saling): Enables the setting of a default noise scaling expression.
98+
- [`differentials`](@ref constraint_equations_coupling_constraints): Allows the designation of differentials.
99+
- [`equations`](@ref constraint_equations_coupling_constraints): Allows the creation of algebraic and/or differential equations.
100+
- [`continuous_events`](@ref constraint_equations_events): Allows the creation of continuous events.
101+
- [`discrete_events`](@ref constraint_equations_events): Allows the creation of discrete events.
102+
- [`combinatoric_ratelaws`](@ref faq_combinatoric_ratelaws): Takes a single option (`true` or `false`), which sets whether to use combinatorial rate laws.
103+
87104
## [ModelingToolkit and Catalyst accessor functions](@id api_accessor_functions)
88105
A [`ReactionSystem`](@ref) is an instance of a
89106
`ModelingToolkit.AbstractTimeDependentSystem`, and has a number of fields that
@@ -156,18 +173,36 @@ accessor functions.
156173

157174
```@docs
158175
species
176+
Catalyst.get_species
159177
nonspecies
160178
reactions
179+
Catalyst.get_rxs
161180
nonreactions
162181
numspecies
163182
numparams
164183
numreactions
165184
speciesmap
166185
paramsmap
167-
isspecies
168186
isautonomous
187+
```
188+
189+
## Coupled reaction/equation system properties
190+
The following system property accessor functions are primarily relevant to reaction system [coupled
191+
to differential and/or algebraic equations](@ref constraint_equations).
192+
```@docs
193+
ModelingToolkit.has_alg_equations
194+
ModelingToolkit.alg_equations
195+
ModelingToolkit.has_diff_equations
196+
ModelingToolkit.diff_equations
197+
```
198+
199+
## Basic species properties
200+
The following functions permits the querying of species properties.
201+
```@docs
202+
isspecies
169203
Catalyst.isconstant
170204
Catalyst.isbc
205+
Catalyst.isvalidreactant
171206
```
172207

173208
## Basic reaction properties
@@ -181,6 +216,17 @@ netstoichmat
181216
reactionrates
182217
```
183218

219+
## [Reaction metadata](@id api_rx_metadata)
220+
The following functions permits the retrieval of [reaction metadata](@ref dsl_advanced_options_reaction_metadata).
221+
```@docs
222+
Catalyst.hasnoisescaling
223+
Catalyst.getnoisescaling
224+
Catalyst.hasdescription
225+
Catalyst.getdescription
226+
Catalyst.hasmisc
227+
Catalyst.getmisc
228+
```
229+
184230
## [Functions to extend or modify a network](@id api_network_extension_and_modification)
185231
`ReactionSystem`s can be programmatically extended using [`ModelingToolkit.extend`](@ref) and
186232
[`ModelingToolkit.compose`](@ref).
@@ -297,3 +343,53 @@ validate(rs::ReactionSystem, info::String="")
297343
```@docs
298344
symmap_to_varmap
299345
```
346+
347+
## [Spatial modelling](@id api_lattice_simulations)
348+
The first step of spatial modelling is to create a so-called `LatticeReactionSystem`:
349+
```@docs
350+
LatticeReactionSystem
351+
```
352+
353+
The following functions can be used to querying the properties of `LatticeReactionSystem`s:
354+
```@docs
355+
reactionsystem
356+
Catalyst.spatial_reactions
357+
Catalyst.lattice
358+
Catalyst.num_verts
359+
Catalyst.num_edges
360+
Catalyst.num_species
361+
Catalyst.spatial_species
362+
Catalyst.vertex_parameters
363+
Catalyst.edge_parameters
364+
Catalyst.edge_iterator
365+
Catalyst.is_transport_system
366+
has_cartesian_lattice
367+
has_masked_lattice
368+
has_grid_lattice
369+
has_graph_lattice
370+
grid_size
371+
grid_dims
372+
```
373+
In addition, most accessor functions for normal `ReactionSystem`s (such as `species` and `parameters`) works when applied to `LatticeReactionSystem`s as well.
374+
375+
The following two helper functions can be used to create non-uniform parameter values.
376+
```@docs
377+
make_edge_p_values
378+
make_directed_edge_values
379+
```
380+
381+
The following functions can be used to access, or change, species or parameter values stored in problems, integrators, and solutions that are based on `LatticeReactionSystem`s.
382+
```@docs
383+
lat_getu
384+
lat_setu!
385+
lat_getp
386+
lat_setp!
387+
rebuild_lat_internals!
388+
```
389+
390+
Finally, we provide the following helper functions to plot and animate spatial lattice simulations.
391+
```@docs
392+
lattice_plot
393+
lattice_animation
394+
lattice_kymograph
395+
```

0 commit comments

Comments
 (0)