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 <[email protected]> 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 <[email protected]> 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 <[email protected]>
> http://www.perimeterinstitute.ca/personal/eschnetter/