Hi Erik, 3D/4D is in the eventual plan: I really want to be able to solve PDEs on cylinders/spheres/cubes. Representing functions as tensor product of coefficients should be straightforward. For low rank approximation a la Townsend&Trefethen/Chebfun2, which makes many computations competitive, things are less obvious.
Also, its not clear yet how to structure these two representations in software. Now there are two classes — TensorFun & Fun2D (which will probably be renamed LowRankFun) — and the code will sometimes convert between the two via an SVD. Whether this is the “right” approach is not clear. I think Chebfun2’s approach is to only have low rank representations, but this has certain drawbacks speedwise (e.g., addition is not a linear operation). Cheers, Sheehan On 15 Sep 2014, at 5:13 am, Erik Schnetter <schnet...@cct.lsu.edu> wrote: > Sheehan > > I notice that ApproxFun handles 1D and 2D domains. Do you plan to > extend it to 3D or 4D as well? Would that be complicated? If so, is > this about software engineering, or about the numerical analysis > behind the package? > > -erik > > > On Wed, Sep 10, 2014 at 6:22 PM, Sheehan Olver <dlfivefi...@gmail.com> wrote: >> >> This is to announce a new version of ApproxFun >> (https://github.com/dlfivefifty/ApproxFun.jl), a package for approximating >> functions. The biggest new feature is support for PDE solving. The >> following lines solve Helmholtz equation u_xx + u_yy + 100 u = 0 with the >> solution held to be one on the boundary: >> >> d=Interval()⊗Interval() # the domain to solve is a rectangle >> >> u=[dirichlet(d),lap(d)+100I]\ones(4) # first 4 entries are boundary >> conditions, further entries are assumed zero >> contour(u) # contour plot of the solution, >> requires GadFly >> >> PDE solving is based on a recent preprint with Alex Townsend >> (http://arxiv.org/abs/1409.2789). Only splitting rank 2 PDEs are >> implemented at the moment. Examples included are: >> >> "examples/RectPDE Examples.ipynb": Poisson equation, Wave equation, >> linear KdV, semiclassical Schrodinger equation with a potential, and >> convection/convection-diffusion equations. >> "examples/Wave and Klein–Gordon equation on a square.ipynb": On-the-fly >> 3D simulation of time-evolution PDEs on a square. Requires GLPlot.jl >> (https://github.com/SimonDanisch/GLPlot.jl). >> "examples/Manipulate Helmholtz.upynb": On-the-fly variation of Helmholtz >> frequency. Requires Interact.jl (https://github.com/JuliaLang/Interact.jl) >> >> Another new feature is faster root finding, thanks to Alex. > > > > -- > Erik Schnetter <schnet...@cct.lsu.edu> > http://www.perimeterinstitute.ca/personal/eschnetter/