/ concept-collection / turing-surface
Sign in
concept-collection / turing-surface
33 lines · 882 BCodeBlameHistory
62e6cc4Simplify UI text and built-in .m script commentsJeremy Magland 1% Brusselator reaction-diffusion on a closed surface.
3% du/dt = D1*lap_g(u) + A - (B+1)*u + u^2*v
4% dv/dt = D2*lap_g(v) + B*u - u^2*v
5%
62e6cc4Simplify UI text and built-in .m script commentsJeremy Magland 6% Same scheme as models/schnakenberg.m.
8function [U, V, u, v] = init(noise, A, B)
9 U = analys(A + noise);
10 V = analys((B / A) * ones(numel(noise), 1));
11 u = synth(U);
12 v = synth(V);
13end
15function [Un, Vn, u, v] = step(U, V, lam, gx, gy, gz, A, B, D1, D2, dt, niter)
16 u = synth(U);
17 v = synth(V);
18 uuv = u .* u .* v;
20 Bu = U + dt * analys(A - (B + 1) * u + uuv);
21 Bv = V + dt * analys(B * u - uuv);
23 Un = Bu ./ (1 + (dt * D1) * lam);
24 Vn = Bv ./ (1 + (dt * D2) * lam);
26 for k = 1:niter
62e6cc4Simplify UI text and built-in .m script commentsJeremy Magland 27 % Placeholder: dlap = lap_g - lap_s (see models/schnakenberg.m).
0af3386Reaction-diffusion on spherical-harmonic surfacesJeremy Magland 28 dLu = 0 * Un;
29 dLv = 0 * Vn;
30 Un = (Bu + (dt * D1) * dLu) ./ (1 + (dt * D1) * lam);
31 Vn = (Bv + (dt * D2) * dLv) ./ (1 + (dt * D2) * lam);
32 end
33end
moveopenescclose