From 74a0dbbecbd118937e5b7c44008eb97d12b8c592 Mon Sep 17 00:00:00 2001 From: 2211567 Date: Sun, 15 Jun 2025 21:05:07 +0200 Subject: [PATCH] IMplemented a working switch --- scripts/main.jl | 5 +---- src/fhn_solver.jl | 15 +++++++++------ src/visualization.jl | 8 +++++++- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/scripts/main.jl b/scripts/main.jl index 394dc86..d4ec92f 100644 --- a/scripts/main.jl +++ b/scripts/main.jl @@ -1,12 +1,9 @@ -include("../src/utils/constants.jl") -#include("../src/fhn_solver.jl") -include("../src/gray_scott_solver.jl") include("../src/visualization.jl") using Observables using GLMakie -using .Constants +using .Visualization.Constants using .Visualization # GSParams AND FHNParams diff --git a/src/fhn_solver.jl b/src/fhn_solver.jl index 835872f..31dbc87 100644 --- a/src/fhn_solver.jl +++ b/src/fhn_solver.jl @@ -73,14 +73,17 @@ function step_fhn!(U, V, params_obs::Observable; dx=1) params = params_obs[] - Δu = reshape(Laplacian.laplacian(U, params.N, params.dx), params.N, params.N) - Δv = reshape(Laplacian.laplacian(V, params.N, params.dx), params.N, params.N) + Δu = laplacian(U, params.dx) + Δv = laplacian(V, params.dx) - fu = params.Du * Δu .+ U .- (U .^ 3) ./ 3 .- V - fv = params.Dv * Δv .+ params.ϵ .* (U .+ params.a .- params.b .* V) + u = U[2:end-1, 2:end-1] + v = V[2:end-1, 2:end-1] - U .+= 0.1 .* fu - V .+= 0.1 .* fv + fu = params.Du .* Δu .+ u .- (u .^ 3) ./ 3 .- v + fv = params.Dv .* Δv .+ params.ϵ .* (u .+ params.a .- params.b .* v) + + U[2:end-1, 2:end-1] .+= 0.1 .* fu + V[2:end-1, 2:end-1] .+= 0.1 .* fv return U end diff --git a/src/visualization.jl b/src/visualization.jl index 6dd6548..5c73a69 100644 --- a/src/visualization.jl +++ b/src/visualization.jl @@ -1,4 +1,5 @@ module Visualization + include("../src/utils/constants.jl") include("gray_scott_solver.jl") include("fhn_solver.jl") @@ -57,7 +58,12 @@ function param_box!(grid, row, labeltxt, observable::Observable) end function rebuild_param_boxes!(grid, model_type::Symbol, param_obs_map::NamedTuple) - empty!(grid) + for pos in keys(grid.content) + if isa(pos, Tuple) && length(pos) == 2 + i, j = pos + grid[i, j] = nothing + end + end param_box!(grid, 1, "Du", param_obs_map.Du) param_box!(grid, 2, "Dv", param_obs_map.Dv)