62 lines
1.4 KiB
Julia
62 lines
1.4 KiB
Julia
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
|
|
|
|
|
|
# Rebuild when model or sliders change
|
|
function setup_param_binding!(model_type, gray_params, fhn_params, params_obs)
|
|
if model_type[] == :gray_scott
|
|
return gray_params
|
|
else
|
|
return fhn_params
|
|
end
|
|
end
|
|
|
|
model_type = Observable(:gray_scott) # or :fhn
|
|
|
|
# GSParams
|
|
N = 128
|
|
dx = 1.0
|
|
gray_params = (
|
|
Du = Observable(0.16),
|
|
Dv = Observable(0.08),
|
|
F = Observable(0.060),
|
|
k = Observable(0.062)
|
|
)
|
|
|
|
# FHNParams
|
|
N = 128
|
|
dx = 1.0
|
|
fhn_params = (
|
|
Du = Observable(0.16),
|
|
Dv = Observable(0.08),
|
|
ϵ = Observable(0.05),
|
|
a = Observable(0.7),
|
|
b = Observable(0.8)
|
|
)
|
|
|
|
params_obs = Observable(Constants.GSParams(N, dx, gray_params.Du[], gray_params.Dv[], gray_params.F[], gray_params.k[]))
|
|
#params_obs = Observable(Constants.FHNParams(N=N, dx=dx, Du=Du[], Dv=Dv[], ϵ=ϵ[], a=a[], b=b[]))
|
|
|
|
param_observables = setup_param_binding!(model_type, gray_params, fhn_params, params_obs)
|
|
|
|
"""
|
|
lift(Du, Dv, ϵ, a, b) do d_u, d_v, eps, aa, bb
|
|
params_obs[] = FHNParams(N=N, dx=dx, Du=d_u, Dv=d_v, ϵ=eps, a=aa, b=bb)
|
|
end
|
|
"""
|
|
|
|
U = ones(N, N)
|
|
V = zeros(N, N)
|
|
heat_obs = Observable(U)
|
|
|
|
fig = build_ui(U, V, param_observables, params_obs, heat_obs)
|
|
display(fig)
|