diff --git a/scripts/run_simulation.jl b/scripts/run_simulation.jl index e5955a9..8bd6c69 100644 --- a/scripts/run_simulation.jl +++ b/scripts/run_simulation.jl @@ -9,7 +9,7 @@ dx = 1.0 Du, Dv = Observable(0.16), Observable(0.08) F, k = Observable(0.060), Observable(0.062) dt = 1.0 -params_obs = Observable(GSParams(N, dx, 0.16, 0.08, 0.08, 0.06)) +params_obs = Observable(GSParams(N, dx, Du[], Dv[], F[], k[])) function update_params!(params_obs, u, v, feed, kill) old = params_obs[] @@ -39,16 +39,19 @@ function laplacian5(f) return (left .+ right .+ down .+ up .- 4 .* center) ./ h2 end -function step!(U, V) +function step!(U, V, params_obs::Observable) lap_u = laplacian5(U) lap_v = laplacian5(V) - + diff_u = params_obs[].Du + diff_v = params_obs[].Dv + feed_u = params_obs[].F + kill_v = params_obs[].k u = U[2:end-1, 2:end-1] v = V[2:end-1, 2:end-1] uvv = u .* v .* v - u_new = u .+ (Du[] .* lap_u .- uvv .+ F[] .* (1 .- u)) - v_new = v .+ (Dv[] .* lap_v .+ uvv .- (F[] .+ k[]) .* v) + u_new = u .+ (diff_u .* lap_u .- uvv .+ feed_u .* (1 .- u)) + v_new = v .+ (diff_v .* lap_v .+ uvv .- (feed_u .+ kill_v) .* v) # Update with new values U[2:end-1, 2:end-1] .= u_new @@ -70,7 +73,7 @@ function step!(U, V) end function multi_step!(state, n_steps) for _ in 1:n_steps - heat_obs[] = step!(state[1], state[2]) + heat_obs[] = step!(state[1], state[2], params_obs) end end