Skip to content

Commit fe402c7

Browse files
committed
Add SA class
1 parent c2cf35b commit fe402c7

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1212
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
1313
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
1414
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
15+
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
1516

1617
[compat]
1718
Catalyst = "11, 12"
1819
DiffEqBase = "6"
1920
DiffEqOperators = "4"
2021
Latexify = "0.15"
2122
ModelingToolkit = "7,8"
23+
StaticArrays = "1"
2224
julia = "1.6"
2325

2426
[extras]

src/ode/enright_pryce.jl

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
using ModelingToolkit
2+
using DiffEqBase, StaticArrays
3+
4+
@variables t y(t)[1:10]
5+
D = Differential(t)
6+
7+
sa1sys = let
8+
sa1eqs = [D(y[1]) ~ -0.5 * y[1], D(y[2]) ~ -y[2], D(y[3]) ~ -100*y[3], D(y[4]) ~ -90*y[4]]
9+
ODESystem(sa1eqs, t, name = :sa1)
10+
end
11+
12+
sa1prob = ODEProblem{false}(sa1sys, collect(y[1:4]) .=> 1.0, (0, 20.0), dt = 1e-2)
13+
14+
sa2sys = let
15+
sa2eqs = [D(y[1]) ~ -1800 * y[1] + 900 * y[2]]
16+
for i in 2:8
17+
push!(sa2eqs, D(y[i]) ~ y[i - 1] - 2 * y[i] + y[i + 1])
18+
end
19+
push!(sa2eqs, D(y[9]) ~ 1000 * y[8] - 2000 * y[9] + 1000)
20+
ODESystem(sa2eqs, t, name = :sa2)
21+
end
22+
23+
sa2prob = ODEProblem{false}(sa2sys, collect(y[1:9]) .=> 0.0, (0, 120.0), dt = 5e-4)
24+
25+
sa3sys = let
26+
sa3eqs = [
27+
D(y[1]) ~ -1e4 * y[1] + 100 * y[2] - 10 * y[3] + y[4],
28+
D(y[2]) ~ -1e3 * y[2] + 10 * y[3] - 10 * y[4],
29+
D(y[3]) ~ -y[3] + 10 * y[4],
30+
D(y[4]) ~ -0.1 * y[4],
31+
]
32+
ODESystem(sa3eqs, t, name = :sa3)
33+
end
34+
35+
sa3prob = ODEProblem{false}(sa3sys, collect(y[1:4]) .=> 1.0, (0, 20.0), dt = 1e-5)
36+
37+
sa4sys = let
38+
sa3eqs = [D(y[i]) ~ -i^5 * y[i] for i in 1:10]
39+
ODESystem(sa3eqs, t, name = :sa3)
40+
end
41+
42+
sa4prob = ODEProblem{false}(sa4sys, collect(y[1:10]) .=> 1.0, (0, 1.0), dt = 1e-5)

src/ode/ode_premade_problems.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ include("pollution_prob.jl")
2424
include("filament_prob.jl")
2525
include("nonlinchem.jl")
2626
include("strange_attractors.jl")
27+
include("enright_pryce.jl")

0 commit comments

Comments
 (0)