1% Brusselator reaction-diffusion on a closed surface.
2%
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%
6% Same scheme as models/schnakenberg.m: explicit reaction, then the implicit
7% diffusion solve handed to solvers/richardson.m.
9function [U, V, u, v] = init(noise, A, B)
10 U = analys(A + noise);
11 V = analys((B / A) * ones(numel(noise), 1));
12 u = synth(U);
13 v = synth(V);
14end
16function [Un, Vn, u, v] = step(U, V, lam, filt, gx, gy, gz, Vtx, Vty, Vtz, Vpx, Vpy, Vpz, A, B, D1, D2, dt, niter)
17 u = synth(U);
18 v = synth(V);
19 uuv = u .* u .* v;
21 Bu = U + dt * analys(A - (B + 1) * u + uuv);
22 Bv = V + dt * analys(B * u - uuv);
24 Un = richardson(Bu, dt * D1, lam, filt, Vtx, Vty, Vtz, Vpx, Vpy, Vpz, niter);
25 Vn = richardson(Bv, dt * D2, lam, filt, Vtx, Vty, Vtz, Vpx, Vpy, Vpz, niter);
26end