A new version of ApproxFun.jl has been tagged, with several major changes
behind the scenes. It's now possible to solve some PDEs on a disk, for
example the following solves Poisson equation Δ u = f with Dirichlet
boundary conditions:
d=Disk()
f=Fun((x,y)->exp(-10(x+.2).^2-20(y-.1).^2),d)
u=[dirichlet(d),lap(d)]\[0.,f]
plot(u)
# Requires PyPlot or GLPlot
and the following evolves the beam equation u_tt + Δ^2 u = 0 with Dirichlet
boundary conditions:
d=Disk()
# initial condition, with zero velocity
u0 =
Fun((x,y)->exp(-50x.^2-40(y-.1).^2)+.5exp(-30(x+.5).^2-40(y+.2).^2),d)
B= [dirichlet(d) ,neumann(d)]
L=-lap(d)^2
h = 0.001
timeevolution(2,B,L,u0,h) # Requires GLPlot
Further examples are found in
examples/Disk PDEs.ipynb Laplace, Poisson, Helmholtz,
Screened Poisson and Laplacian squared on a disk
examples/Periodic PDEs.ipynb Poisson, Transport,
Convection-diffusion, Wave, Linear KdV, Beam equation with periodic
boundary conditions
examples/Rectange PDEs.ipynb Laplace, Poisson, Helmholtz,
Screened Poisson, Convection, Wave, Linear KdV, Beam, and Schrödinger
equation with Dirichlet/Neumann boundary conditions
examples/Time Evolution PDEs on a Disk.ipynb Heat,
Wave, Klein–Gordon and Beam equation evolved on a disk
examples/Time Evolution PDEs on a Square.ipynb Heat,
Advection–diffusion, Wave and Klein–Gordon equation evolved on a square