Skip to content

Commit f614cc6

Browse files
Merge pull request #103 from xtalax/bruss
no deo bruss (was wrong anyway)
2 parents 0afb033 + 628268b commit f614cc6

File tree

3 files changed

+15
-21
lines changed

3 files changed

+15
-21
lines changed

lib/ODEProblemLibrary/Project.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ version = "0.1.4"
44

55
[deps]
66
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
7-
DiffEqOperators = "9fdde737-9c7f-55bf-ade8-46b3f136cc48"
87
Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
98
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
109
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
@@ -15,7 +14,6 @@ RuntimeGeneratedFunctions = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47"
1514
[compat]
1615
Aqua = "0.5"
1716
DiffEqBase = "6"
18-
DiffEqOperators = "4"
1917
Latexify = "0.15"
2018
ModelingToolkit = "7,8"
2119
RuntimeGeneratedFunctions = "0.5"

lib/ODEProblemLibrary/src/ODEProblemLibrary.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ __precompile__(false)
33
module ODEProblemLibrary
44

55
using DiffEqBase
6-
using DiffEqOperators
76
using Latexify
87
using ModelingToolkit
98

lib/ODEProblemLibrary/src/brusselator_prob.jl

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -97,23 +97,20 @@ prob_ode_brusselator_2d = ODEProblem(brusselator_2d_loop,
9797
length(xyd_brusselator)))
9898

9999
const N_brusselator_1d = 40
100-
const D_brusselator_u = CenteredDifference{Float64}(2, 2, 1 / (N_brusselator_1d - 1),
101-
N_brusselator_1d)
102-
const D_brusselator_v = CenteredDifference{Float64}(2, 2, 1 / (N_brusselator_1d - 1),
103-
N_brusselator_1d)
104-
function brusselator_1d(du, u_, p, t)
105-
A, B, α, buffer = p
106-
u = @view(u_[:, 1])
107-
v = @view(u_[:, 2])
108-
mul!(buffer, D_brusselator_u, u)
109-
Du = buffer
110-
@. du[:, 1] = A + u^2 * v - (B + 1) * u + α * Du
111-
112-
mul!(buffer, D_brusselator_v, v)
113-
Dv = buffer
114-
@. du[:, 2] = B * u - u^2 * v + α * Dv
115-
nothing
100+
101+
function brusselator_1d_loop(du, u, p, t)
102+
A, B, alpha, dx = p
103+
alpha = alpha / dx^2
104+
@inbounds for i in 2:(N - 1)
105+
x = xyd_brusselator[i]
106+
ip1, im1 = i + 1, i - 1
107+
du[i, 1] = alpha * (u[im1, 1] + u[ip1, 1] - 2u[i, 1]) +
108+
A + u[i, 1]^2 * u[i, 2] - (B + 1) * u[i, 1]
109+
du[i, 2] = alpha * (u[im1, 2] + u[ip1, 2] - 2u[i, 2]) +
110+
B * u[i, 1] - u[i, 1]^2 * u[i, 2]
111+
end
116112
end
113+
117114
function init_brusselator_1d(N)
118115
u = zeros(N, 2)
119116
x = range(0, stop = 1, length = N)
@@ -154,7 +151,7 @@ v(0,t) = v(1,t) = 3
154151
155152
From Hairer Norsett Wanner Solving Ordinary Differential Equations II - Stiff and Differential-Algebraic Problems Page 6
156153
"""
157-
prob_ode_brusselator_1d = ODEProblem(brusselator_1d,
154+
prob_ode_brusselator_1d = ODEProblem(brusselator_1d_loop,
158155
init_brusselator_1d(N_brusselator_1d),
159156
(0.0, 10.0),
160-
(1.0, 3.0, 1 / 50, zeros(N_brusselator_1d)))
157+
(1.0, 3.0, 1 / 41, zeros(N_brusselator_1d)))

0 commit comments

Comments
 (0)