Julia → WebAssembly GC · OrdinaryDiffEq + LinearSolve

The Brusselator, a stiff reaction–diffusion system

Two chemical species diffusing along a line, solved by OrdinaryDiffEq's Rodas5P in your browser. Each step factorizes W = I/(γ·dt) − J and solves with it; which of LinearSolve's pure-Julia solvers does that is yours to pick. All of it is Julia compiled to WebAssembly, the integrators built at compile time and serialized into the module.

u_t = A + u²v − (B+1)·u + α·u_xx u = A, v = B/A at x = 0 and 1 v_t = B·u − u²v + α·v_xx u(x, 0) = A + a·sin 2πx, v(x, 0) = B/A, 32 points
Parameters
1.00
3.00
Oscillates: B > 1 + A² = 2.00
0.020
1.00
Linear solver for W
Solve time (WebAssembly)
–
Steps (rejected)
–
W factorizations
–
Linear solves
–
f evaluations
–
Loading the module…

u(x, t)

–

At the midpoint x = ½

uv

The three linear solvers, same parameters

Each solver re-solves the problem above five times; the time is the median. The counts agree because Rodas5P takes the same steps whichever solver it uses; GMRES solves W only to its tolerance, so its answer differs from the factorizations' by about that much.

SolverWebAssemblyNative Julia, defaultsStepsWSolvesmax |u − uLU|
Dense LUGenericLUFactorization––––––
Sparse KLUPureKLUFactorization––––––
Krylov GMRESKrylovJL_GMRES––––––