add textbox for setting stepsize and some documentation
parent
5140a2f32c
commit
d50c843709
|
|
@ -2,7 +2,7 @@ using GLMakie, Observables
|
||||||
include("../src/constants.jl")
|
include("../src/constants.jl")
|
||||||
using .Constants
|
using .Constants
|
||||||
|
|
||||||
|
# # Gray Scott Model Parameters
|
||||||
# Parameters and initial conditions
|
# Parameters and initial conditions
|
||||||
N = 128
|
N = 128
|
||||||
dx = 1.0
|
dx = 1.0
|
||||||
|
|
@ -13,6 +13,12 @@ F, k = Observable(0.060), Observable(0.062)
|
||||||
dt = 1.0
|
dt = 1.0
|
||||||
params_obs = Observable(GSParams(N, dx, Du[], Dv[], F[], k[]))
|
params_obs = Observable(GSParams(N, dx, Du[], Dv[], F[], k[]))
|
||||||
|
|
||||||
|
# # GUI Parameters
|
||||||
|
run_label = Observable{String}("Run")
|
||||||
|
stepsize = Observable{Int}(30)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function update_params!(params_obs, u, v, feed, kill)
|
function update_params!(params_obs, u, v, feed, kill)
|
||||||
old = params_obs[]
|
old = params_obs[]
|
||||||
params_obs[] = GSParams(old.N, old.dx, u, v, feed, kill)
|
params_obs[] = GSParams(old.N, old.dx, u, v, feed, kill)
|
||||||
|
|
@ -122,11 +128,11 @@ on(spoint) do pt
|
||||||
end
|
end
|
||||||
|
|
||||||
# # Controls
|
# # Controls
|
||||||
run_label = Observable("Run")
|
|
||||||
fig[2, 1] = buttongrid = GridLayout(ax.scene, tellwidth=false)
|
fig[2, 1] = buttongrid = GridLayout(ax.scene, tellwidth=false)
|
||||||
btn_step = Button(buttongrid[1, 1], width=50, label="Step")
|
btn_step = Button(buttongrid[1, 1], width=50, label="Step")
|
||||||
btn_start = Button(buttongrid[1, 2], width=50, label=run_label)
|
btn_start = Button(buttongrid[1, 2], width=50, label=run_label)
|
||||||
btn_reset = Button(buttongrid[1, 3], width=50, label="Reset")
|
btn_reset = Button(buttongrid[1, 3], width=50, label="Reset")
|
||||||
|
step_box = Textbox(buttongrid[1, 4], width=50, validator=Int, placeholder="Stepsize", stored_string="$(stepsize[])")
|
||||||
|
|
||||||
gh[1, 2] = textboxgrid = GridLayout(ax.scene, tellwidth=false)
|
gh[1, 2] = textboxgrid = GridLayout(ax.scene, tellwidth=false)
|
||||||
rowsize!(gh, 1, Relative(1.0))
|
rowsize!(gh, 1, Relative(1.0))
|
||||||
|
|
@ -164,9 +170,18 @@ on(running) do r
|
||||||
run_label[] = r ? "Pause" : "Run"
|
run_label[] = r ? "Pause" : "Run"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
on(step_box.stored_string) do s
|
||||||
|
try
|
||||||
|
stepsize[] = parse(Int, s)
|
||||||
|
println("Changed stepsize to $s")
|
||||||
|
catch
|
||||||
|
@warn "Invalid input for $labeltxt: $s"
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
# Button Listeners
|
# Button Listeners
|
||||||
on(btn_step.clicks) do _
|
on(btn_step.clicks) do _
|
||||||
multi_step!((U, V), 30)
|
multi_step!((U, V), stepsize[])
|
||||||
end
|
end
|
||||||
|
|
||||||
on(btn_start.clicks) do _
|
on(btn_start.clicks) do _
|
||||||
|
|
@ -175,7 +190,7 @@ end
|
||||||
|
|
||||||
on(btn_start.clicks) do _
|
on(btn_start.clicks) do _
|
||||||
@async while running[]
|
@async while running[]
|
||||||
multi_step!((U, V), 60)
|
multi_step!((U, V), stepsize[])
|
||||||
sleep(0.05) # ~20 FPS
|
sleep(0.05) # ~20 FPS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue