jipolanco / BSplineKit.jl

A collection of B-spline tools in Julia
https://jipolanco.github.io/BSplineKit.jl/dev/
MIT License
50 stars 9 forks source link

Tensor products #97

Open panbroggi opened 3 weeks ago

panbroggi commented 3 weeks ago

Hi,

thanks a lot for this package and its documentation! I want to solve a 2D differential equation with BSplines, and I saw that there is a PR to merge tensor products that is ~2 years old. Is there some caveat about using the corresponding branch of the code? I was implementing Galerkin projections by hand for my code, but then discovered this branch - and soon realised that probably your implementation is more efficient (e.g. cycling over knots instead of cycling over BSplines).

jipolanco commented 3 weeks ago

Hi, thank you for your interest!

As you noticed, I started implementing tensor product splines a while ago in #41, but I haven't had the motivation to finish that work. Things should mostly work, but some documentation is missing and some features may not be implemented yet. I also wasn't sure about some decisions in that PR which also impacted 1D splines, which is one of the reasons it has not been merged yet.

So for now you can try out the implementation in that branch if it works for you. In any case I think it would be great to have tensor product splines, so I'll try to get back to that PR soon and see if I can merge it.

panbroggi commented 3 weeks ago

Oh great! For the moment, I will try to import the functions I need (and kludge it to my temporary wrapper). The design of the library has changed a bit, and I need some time to replace the current version of BSplineKit (For example, 1D Splines are now generalised to any input type). If you plan to have tensor product splines merged, in the end, I will replace my temporary wrapper as a whole.

I still haven't looked in detail at the structure of the library, but if you need any help in the process of merging or with boring stuff, ping me -- I will be happy to learn.