Skip to content

Commit 8bcd972

Browse files
committed
Merge branch 'master' into tests___new___vector_valued
2 parents 45a8b7a + cc2f95f commit 8bcd972

File tree

131 files changed

+14912
-7585
lines changed

Some content is hidden

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

131 files changed

+14912
-7585
lines changed

.github/workflows/CI.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ on:
33
pull_request:
44
branches:
55
- master
6-
- Catalyst_version_14
76
push:
87
branches:
98
- master
10-
- Catalyst_version_14
119
jobs:
1210
test:
1311
runs-on: ubuntu-latest
@@ -19,7 +17,7 @@ jobs:
1917
- '1'
2018
steps:
2119
- uses: actions/checkout@v4
22-
- uses: julia-actions/setup-julia@v1
20+
- uses: julia-actions/setup-julia@v2
2321
with:
2422
version: ${{ matrix.version }}
2523
- uses: actions/cache@v4
@@ -35,9 +33,11 @@ jobs:
3533
- uses: julia-actions/julia-buildpkg@v1
3634
- uses: julia-actions/julia-runtest@v1
3735
- uses: julia-actions/julia-processcoverage@v1
38-
- uses: codecov/codecov-action@v3
36+
- uses: codecov/codecov-action@v4
3937
with:
4038
file: lcov.info
39+
token: ${{ secrets.CODECOV_TOKEN }}
40+
fail_ci_if_error: false
4141
- uses: coverallsapp/github-action@master
4242
with:
4343
github-token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/CompatHelper.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
run: which julia
1616
continue-on-error: true
1717
- name: Install Julia, but only if it is not already available in the PATH
18-
uses: julia-actions/setup-julia@v1
18+
uses: julia-actions/setup-julia@v2
1919
with:
2020
version: '1'
2121
arch: ${{ runner.arch }}

.github/workflows/Documentation.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ jobs:
2424
GKSwstype: "100" # https://discourse.julialang.org/t/generation-of-documentation-fails-qt-qpa-xcb-could-not-connect-to-display/60988
2525
run: julia --project=docs/ --code-coverage=user docs/make.jl
2626
- uses: julia-actions/julia-processcoverage@v1
27-
- uses: codecov/codecov-action@v3
27+
- uses: codecov/codecov-action@v4
2828
with:
2929
file: lcov.info
30-
30+
token: ${{ secrets.CODECOV_TOKEN }}
31+
fail_ci_if_error: false

.github/workflows/FormatCheck.yml

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: format-check
1+
name: "Format Check"
22

33
on:
44
push:
@@ -9,34 +9,6 @@ on:
99
pull_request:
1010

1111
jobs:
12-
build:
13-
runs-on: ${{ matrix.os }}
14-
strategy:
15-
matrix:
16-
julia-version: [1]
17-
julia-arch: [x86]
18-
os: [ubuntu-latest]
19-
steps:
20-
- uses: julia-actions/setup-julia@latest
21-
with:
22-
version: ${{ matrix.julia-version }}
23-
24-
- uses: actions/checkout@v4
25-
- name: Install JuliaFormatter and format
26-
# This will use the latest version by default but you can set the version like so:
27-
#
28-
# julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter", version="0.13.0"))'
29-
run: |
30-
julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter", version="1.0.32"))'
31-
julia -e 'using JuliaFormatter; format(".", verbose=true)'
32-
- name: Format check
33-
run: |
34-
julia -e '
35-
out = Cmd(`git diff --name-only`) |> read |> String
36-
if out == ""
37-
exit(0)
38-
else
39-
@error "Some files have not been formatted !!!"
40-
write(stdout, out)
41-
exit(1)
42-
end'
12+
format-check:
13+
name: "Format Check"
14+
uses: "SciML/.github/.github/workflows/format-check.yml@v1"

.github/workflows/Invalidations.yml

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,10 @@ on:
44
pull_request:
55

66
concurrency:
7-
# Skip intermediate builds: always.
8-
# Cancel intermediate builds: always.
97
group: ${{ github.workflow }}-${{ github.ref }}
108
cancel-in-progress: true
119

1210
jobs:
13-
evaluate:
14-
# Only run on PRs to the default branch.
15-
# In the PR trigger above branches can be specified only explicitly whereas this check should work for master, main, or any other default branch
16-
if: github.base_ref == github.event.repository.default_branch
17-
runs-on: ubuntu-latest
18-
steps:
19-
- uses: julia-actions/setup-julia@v1
20-
with:
21-
version: '1'
22-
- uses: actions/checkout@v4
23-
- uses: julia-actions/julia-buildpkg@v1
24-
- uses: julia-actions/julia-invalidations@v1
25-
id: invs_pr
26-
27-
- uses: actions/checkout@v4
28-
with:
29-
ref: ${{ github.event.repository.default_branch }}
30-
- uses: julia-actions/julia-buildpkg@v1
31-
- uses: julia-actions/julia-invalidations@v1
32-
id: invs_default
33-
34-
- name: Report invalidation counts
35-
run: |
36-
echo "Invalidations on default branch: ${{ steps.invs_default.outputs.total }} (${{ steps.invs_default.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
37-
echo "This branch: ${{ steps.invs_pr.outputs.total }} (${{ steps.invs_pr.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
38-
- name: Check if the PR does increase number of invalidations
39-
if: steps.invs_pr.outputs.total > steps.invs_default.outputs.total
40-
run: exit 1
11+
evaluate-invalidations:
12+
name: "Evaluate Invalidations"
13+
uses: "SciML/.github/.github/workflows/invalidations.yml@v1"

HISTORY.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
## Catalyst unreleased (master branch)
44

55
## Catalyst 14.0
6+
- The `reactionparams`, `numreactionparams`, and `reactionparamsmap` functions have been removed.
7+
- To be more consistent with ModelingToolkit's immutability requirement for systems, we have removed API functions that mutate `ReactionSystem`s such as `addparam!`, `addreaction!`, `addspecies`, `@add_reactions`, and `merge!`. Please use `ModelingToolkit.extend` and `ModelingToolkit.compose` to generate new merged and/or composed `ReactionSystem`s from multiple component systems.
68
- Added CatalystStructuralIdentifiabilityExtension, which permits StructuralIdentifiability.jl function to be applied directly to Catalyst systems. E.g. use
79
```julia
810
using Catalyst, StructuralIdentifiability
@@ -22,7 +24,7 @@ rn = @reaction_network begin
2224
@parameters η
2325
k, 2X --> X2, [noise_scaling=η]
2426
end
25-
get_noise_scaling(rn)
27+
getnoisescaling(rn)
2628
```
2729
- `SDEProblem` no longer takes the `noise_scaling` argument (see above for new approach to handle noise scaling).
2830
- Changed fields of internal `Reaction` structure. `ReactionSystems`s saved using `serialize` on previous Catalyst versions cannot be loaded using this (or later) versions.
@@ -84,6 +86,20 @@ plot(bif_dia; xguide="k1", yguide="X")
8486
```
8587
- Automatically handles elimination of conservation laws for computing bifurcation diagrams.
8688
- Updated Bifurcation documentation with respect to this new feature.
89+
- Added function `isautonomous` to check if a `ReactionSystem` is autonomous.
90+
- Added function `steady_state_stability` to compute stability for steady states. Example:
91+
```julia
92+
# Creates model.
93+
rn = @reaction_network begin
94+
(p,d), 0 <--> X
95+
end
96+
p = [:p => 1.0, :d => 0.5]
97+
98+
# Finds (the trivial) steady state, and computes stability.
99+
steady_state = [2.0]
100+
steady_state_stability(steady_state, rn, p)
101+
```
102+
Here, `steady_state_stability` take an optional argument `tol = 10*sqrt(eps())`, which is used to determine whether a eigenvalue real part is reliably less that 0.
87103

88104
## Catalyst 13.5
89105
- Added a CatalystHomotopyContinuationExtension extension, which exports the `hc_steady_state` function if HomotopyContinuation is exported. `hc_steady_state` finds the steady states of a reaction system using the homotopy continuation method. This feature is only available for julia versions 1.9+. Example:

Project.toml

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

55
[deps]
6+
Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
67
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
78
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
89
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
10+
DynamicPolynomials = "7c1d4256-1411-5781-91ec-d7bc3513ac07"
911
DynamicQuantities = "06fc5a27-2a28-4c7c-a15d-362465fb6821"
1012
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
1113
JumpProcesses = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5"
@@ -20,7 +22,6 @@ Requires = "ae029012-a4dd-5104-9daa-d747884805df"
2022
RuntimeGeneratedFunctions = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47"
2123
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
2224
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
23-
SymbolicUtils = "d1185830-fcd6-423d-90d6-eec64667417b"
2425
Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
2526
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
2627

@@ -36,34 +37,37 @@ CatalystStructuralIdentifiabilityExtension = "StructuralIdentifiability"
3637

3738
[compat]
3839
BifurcationKit = "0.3"
40+
Combinatorics = "1.0.2"
3941
DataStructures = "0.18"
4042
DiffEqBase = "6.83.0"
4143
DocStringExtensions = "0.8, 0.9"
44+
DynamicPolynomials = "0.5"
4245
DynamicQuantities = "0.13.2"
4346
Graphs = "1.4"
4447
HomotopyContinuation = "2.9"
4548
JumpProcesses = "9.3.2"
4649
LaTeXStrings = "1.3.0"
4750
Latexify = "0.14, 0.15, 0.16"
4851
MacroTools = "0.5.5"
49-
ModelingToolkit = "9.7.1"
52+
ModelingToolkit = "9.16.0"
5053
Parameters = "0.12"
5154
Reexport = "0.2, 1.0"
5255
Requires = "1.0"
5356
RuntimeGeneratedFunctions = "0.5.12"
5457
Setfield = "1"
55-
StructuralIdentifiability = "0.5.1"
56-
SymbolicUtils = "1.0.3"
57-
Symbolics = "5.14"
58+
StructuralIdentifiability = "0.5.8"
59+
Symbolics = "5.30.1"
5860
Unitful = "1.12.4"
59-
julia = "1.9"
61+
julia = "1.10"
6062

6163
[extras]
6264
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
65+
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
6366
DomainSets = "5b8099bc-c8ec-5219-889f-1d9e522a28bf"
6467
Graphviz_jll = "3c863552-8265-54e4-a6dc-903eb78fde85"
6568
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
6669
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
70+
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
6771
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
6872
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
6973
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
@@ -80,4 +84,4 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
8084
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
8185

8286
[targets]
83-
test = ["BifurcationKit", "DomainSets", "Graphviz_jll", "HomotopyContinuation", "NonlinearSolve", "OrdinaryDiffEq", "Plots", "Random", "SafeTestsets", "SciMLBase", "SciMLNLSolve", "StableRNGs", "Statistics", "SteadyStateDiffEq", "StochasticDiffEq", "StructuralIdentifiability", "Test", "Unitful"]
87+
test = ["BifurcationKit", "DiffEqCallbacks", "DomainSets", "Graphviz_jll", "HomotopyContinuation", "Logging", "NonlinearSolve", "OrdinaryDiffEq", "Plots", "Random", "SafeTestsets", "SciMLBase", "SciMLNLSolve", "StableRNGs", "Statistics", "SteadyStateDiffEq", "StochasticDiffEq", "StructuralIdentifiability", "Test", "Unitful"]

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
[![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)
44
[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://docs.sciml.ai/Catalyst/stable/)
55
[![API Stable](https://img.shields.io/badge/API-stable-blue.svg)](https://docs.sciml.ai/Catalyst/stable/api/catalyst_api/)
6-
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://docs.sciml.ai/Catalyst/dev/)
7-
[![API Dev](https://img.shields.io/badge/API-dev-blue.svg)](https://docs.sciml.ai/Catalyst/dev/api/catalyst_api/)
6+
<!--- [![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://docs.sciml.ai/Catalyst/dev/)
7+
[![API Dev](https://img.shields.io/badge/API-dev-blue.svg)](https://docs.sciml.ai/Catalyst/dev/api/catalyst_api/) -->
88

99
[![Build Status](https://github.com/SciML/Catalyst.jl/workflows/CI/badge.svg)](https://github.com/SciML/Catalyst.jl/actions?query=workflow%3ACI)
1010
[![codecov.io](https://codecov.io/gh/SciML/Catalyst.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/SciML/Catalyst.jl)

docs/Project.toml

Lines changed: 41 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
11
[deps]
2+
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
23
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
4+
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
35
Catalyst = "479239e8-5488-4da2-87a7-35f2df7eef83"
46
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
57
DiffEqParamEstim = "1130ab10-4a5a-5621-a13d-e4788d82bd4c"
6-
DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa"
78
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
89
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
10+
DynamicalSystems = "61744808-ddfa-5f27-97ff-6e42cc95d634"
11+
GlobalSensitivity = "af5da776-676b-467e-8baf-acd8249e4f0f"
912
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
13+
IncompleteLU = "40713840-3770-5561-ab4c-a76e7d0d7895"
14+
JumpProcesses = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5"
1015
Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
16+
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
1117
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
1218
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
1319
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
1420
Optim = "429524aa-4258-5aef-a3af-852621145aeb"
1521
Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba"
22+
OptimizationBBO = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b"
1623
OptimizationNLopt = "4e6fcdb7-1186-4e1f-a706-475e75c168bb"
1724
OptimizationOptimJL = "36348300-93cb-4f02-beb5-3c3902f8871e"
1825
OptimizationOptimisers = "42dfb2eb-d2b4-4451-abcd-913932933ac1"
@@ -21,37 +28,45 @@ Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
2128
QuasiMonteCarlo = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b"
2229
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
2330
SciMLSensitivity = "1ed8b502-d754-442c-8d5d-10ac956f44a1"
24-
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
2531
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
32+
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
2633
SteadyStateDiffEq = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f"
2734
StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0"
2835
StructuralIdentifiability = "220ca800-aa68-49bb-acd8-6037fa93a544"
2936
Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
3037

3138
[compat]
32-
BifurcationKit = "0.3"
39+
BenchmarkTools = "1.5"
40+
BifurcationKit = "0.3.4"
41+
CairoMakie = "0.12"
3342
Catalyst = "13"
34-
DataFrames = "1"
35-
DiffEqParamEstim = "2.1"
36-
DifferentialEquations = "7.7"
43+
DataFrames = "1.6"
44+
DiffEqParamEstim = "2.2"
3745
Distributions = "0.25"
38-
Documenter = "0.27"
39-
HomotopyContinuation = "2.6"
40-
Latexify = "0.15, 0.16"
41-
ModelingToolkit = "9.5"
42-
NonlinearSolve = "3.4.0"
43-
Optim = "1"
44-
Optimization = "3.19"
45-
OptimizationNLopt = "0.1.8"
46-
OptimizationOptimJL = "0.1.14"
47-
OptimizationOptimisers = "0.1.1"
48-
OrdinaryDiffEq = "6"
49-
Plots = "1.36"
50-
SciMLBase = "2.13"
51-
SciMLSensitivity = "7.19"
52-
Setfield = "1.1"
53-
SpecialFunctions = "2.1"
54-
SteadyStateDiffEq = "2.0.1"
55-
StochasticDiffEq = "6"
56-
StructuralIdentifiability = "0.5.1"
57-
Symbolics = "5.14"
46+
Documenter = "1.4.1"
47+
DynamicalSystems = "3.3"
48+
GlobalSensitivity = "2.6"
49+
HomotopyContinuation = "2.9"
50+
IncompleteLU = "0.2"
51+
JumpProcesses = "9.11"
52+
Latexify = "0.16"
53+
LinearSolve = "2.30"
54+
ModelingToolkit = "9.16.0"
55+
NonlinearSolve = "3.12"
56+
Optim = "1.9"
57+
Optimization = "3.25"
58+
OptimizationBBO = "0.2.1"
59+
OptimizationNLopt = "0.2.1"
60+
OptimizationOptimJL = "0.3.1"
61+
OptimizationOptimisers = "0.2.1"
62+
OrdinaryDiffEq = "6.80.1"
63+
Plots = "1.40"
64+
QuasiMonteCarlo = "0.3"
65+
SciMLBase = "2.39"
66+
SciMLSensitivity = "7.60"
67+
SpecialFunctions = "2.4"
68+
StaticArrays = "1.9"
69+
SteadyStateDiffEq = "2.2"
70+
StochasticDiffEq = "6.65"
71+
StructuralIdentifiability = "0.5.8"
72+
Symbolics = "5.30.1"

docs/make.jl

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,17 @@ include("pages.jl")
3131
# pages = pages)
3232

3333
makedocs(sitename = "Catalyst.jl",
34-
authors = "Samuel Isaacson",
35-
format = Documenter.HTML(; analytics = "UA-90474609-3",
36-
prettyurls = (get(ENV, "CI", nothing) == "true"),
37-
assets = ["assets/favicon.ico"],
38-
canonical = "https://docs.sciml.ai/Catalyst/stable/"),
39-
modules = [Catalyst, ModelingToolkit],
40-
doctest = false,
41-
clean = true,
42-
pages = pages)
34+
authors = "Samuel Isaacson",
35+
format = Documenter.HTML(; analytics = "UA-90474609-3",
36+
prettyurls = (get(ENV, "CI", nothing) == "true"),
37+
assets = ["assets/favicon.ico"],
38+
canonical = "https://docs.sciml.ai/Catalyst/stable/"),
39+
modules = [Catalyst, ModelingToolkit],
40+
doctest = false,
41+
clean = true,
42+
pages = pages,
43+
pagesonly = true,
44+
warnonly = [:missing_docs])
4345

4446
deploydocs(repo = "github.com/SciML/Catalyst.jl.git";
45-
push_preview = true)
47+
push_preview = true)

0 commit comments

Comments
 (0)