use params object in step method, preparing for seperating into multiple files
parent
34da199ff2
commit
1e9885bd4b
|
|
@ -9,7 +9,7 @@ dx = 1.0
|
||||||
Du, Dv = Observable(0.16), Observable(0.08)
|
Du, Dv = Observable(0.16), Observable(0.08)
|
||||||
F, k = Observable(0.060), Observable(0.062)
|
F, k = Observable(0.060), Observable(0.062)
|
||||||
dt = 1.0
|
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)
|
function update_params!(params_obs, u, v, feed, kill)
|
||||||
old = params_obs[]
|
old = params_obs[]
|
||||||
|
|
@ -39,16 +39,19 @@ function laplacian5(f)
|
||||||
return (left .+ right .+ down .+ up .- 4 .* center) ./ h2
|
return (left .+ right .+ down .+ up .- 4 .* center) ./ h2
|
||||||
end
|
end
|
||||||
|
|
||||||
function step!(U, V)
|
function step!(U, V, params_obs::Observable)
|
||||||
lap_u = laplacian5(U)
|
lap_u = laplacian5(U)
|
||||||
lap_v = laplacian5(V)
|
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]
|
u = U[2:end-1, 2:end-1]
|
||||||
v = V[2:end-1, 2:end-1]
|
v = V[2:end-1, 2:end-1]
|
||||||
|
|
||||||
uvv = u .* v .* v
|
uvv = u .* v .* v
|
||||||
u_new = u .+ (Du[] .* lap_u .- uvv .+ F[] .* (1 .- u))
|
u_new = u .+ (diff_u .* lap_u .- uvv .+ feed_u .* (1 .- u))
|
||||||
v_new = v .+ (Dv[] .* lap_v .+ uvv .- (F[] .+ k[]) .* v)
|
v_new = v .+ (diff_v .* lap_v .+ uvv .- (feed_u .+ kill_v) .* v)
|
||||||
|
|
||||||
# Update with new values
|
# Update with new values
|
||||||
U[2:end-1, 2:end-1] .= u_new
|
U[2:end-1, 2:end-1] .= u_new
|
||||||
|
|
@ -70,7 +73,7 @@ function step!(U, V)
|
||||||
end
|
end
|
||||||
function multi_step!(state, n_steps)
|
function multi_step!(state, n_steps)
|
||||||
for _ in 1: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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue