How to solve two-dimensional transient partial differential equations?

What’s stopping you from using the same methods in Julia?

Of course, there are tons of methods to choose from, from spectral methods (e.g. via ApproxFun.jl) to finite-element methods (e.g. via Gridap.jl) to hand-rolled finite-difference methods (which are relatively easy in Julia — you can just write loops, for example, or use automated finite-difference code like MethodOfLines.jl). For time evolution you can of course use a hand-rolled scheme like Crank–Nicolson, or you could use Method of Lines (discretized space + time integration handled by ODE integration software).

PDE methods are complicated because there are so many good options, and the “best” choice depends strongly on the problem and on the context. But if you have a method that is already debugged and works well for your problem, you should consider starting there.

6 Likes