SCJ_Projekt/scripts/main.jl

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)