How to solve two-dimensional transient partial differential equations?

Dear Julia community,
I am beginner to Julia.
Kindly suggest me a suitable resource (packages) to solve coupled PDEs via Finite-difference method or any other numerical method? Please see the equations in shared image for detailed info (link of equations).

I have solved 1-D form of these equations via FDM based Crank-Nicolson scheme in MATLAB and C++ environment. For solving set of algebraic equations, we have used Thomas algorithm (TDMA).

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

thanks Sir, I will look into these resources. I will try Gridap and Method of Line packages to solve solute transport in the porous media

(Disclaimer: me being the author): VoronoiFVM.jl and VoronoiFVMDiffEq.jl probably can handle this.

3 Likes

Hello [abhayguleria92]
I want to solve the first equation in 1D form. Can you guide me how can I solve them?