How to tackle 2D Poisson equation?

Can anyone point me in the right direction for solving a 2D Poisson equation in a circular region?

I’m a little overwhelmed by the number of different Julia packages which a google search returns, and it can be hard to work out what’s current, which packages are abandoned or superseded by others, etc.

Ideally I’m looking for something which is Julia all the way through, rather than a wrapper for a third party application.

I don’t know much about numerical methods for differential equations, having previously used Mathematica which takes care of all the details behind the scenes. I’m not averse to learning a bit more, but I’m not sure where to begin.

1 Like

https://github.com/PetrKryslUCSD/FinEtoolsHeatDiff.jl/blob/master/examples/steady_state/2-d/Poisson_examples.jl
Heat conduction with non-zero heat generation rate is a Poisson’s eqn. Where does your circular-domain mesh come from? FinEtools can generate it if you need to.

2 Likes

The nicest approach would be to use Zernike polynomials which avoids meshes. FastTransforms.jl gives a fast expansion in Zernike polynomials. and then Poisson can be reduce to tridiagonal linear solves (the different Fourier modes decouple). This used to be wrapped up in an ApproxFun.jl add on MultivariateOrthogonalPolynomials.jl though I’m afraid this code is quite stale.

I’m planning to update the code so will let you know when that happens.

EDIT: the transform part is in this example

3 Likes

Another alternative is the Gridap.jl project: 1 Poisson equation · Gridap tutorials

1 Like