I have non-uniform 2D grid, over which my RHS is defined and where I need to evaluate my potential \phi. Now, I tried looking at BSplineKit and other Julia tools, however I’m not finding much success, BSplinesKit seem to work for 1D splines yet (I don’t know how to make it work for 2D grid if it could be done). May someone suggest how to solve this in Julia with decent performance?
P.S. I have attached a few pictures of the equations, I don’t know if that it is advised not to in the community.
If it’s the first Time you implement it you should definitely do it from scratch or just use DifferentialEquation.jl for the time solver then you can have a look on how to improve it, DataInterpolation.jl supports BSpline approximation and integration/derivation of the interpolation but only for R-> R^n function I think. If you need powerful tools for mesh ect Ferrite.jl may be great I don’t know if BSpline basis are supported though.
I have some questions which might clarify some things:
Is your grid curvilinear or more unstructured? As far as I know B-splines are quite Cartesiany
Where does your decision to use B-splines stem from?
Have you looked into isogeometric analysis (I think that only has implementations in C++ though)?
I’ve been working on SplineGrids.jl and I thought it’d be cool if that was integrated into FEM/FVM like methods, but you’d have to quite a lot of work to implement everything I think.
It’s curvilinear only. Very much like 2D polar coordinates.
Using Bsplines is motivated by previous studies, the descritization of the fields takes care fixes the charge assignment process (calculation of delta n_i in the equation, which is just charge density). Also, the finite support of BSplines make the matrices are quite sparse. Also, I’ll doing cubic interpolations so, BSpline seemed like a natural choice.
I did see one paper, where the very similar thing is done, not in Julia of course. [https://hal.science/hal-00908500v1/document]. The paper uses BSplines too, I may have to implement something like this from scratch. But, I was hoping that such things may be already available in Julia.
Hello. The equation is just poisson’s equation. It’s 2D because the system has symmetry and the coordinate gets decoupled. Capital \lambda is just tensor product of 1D BSplines. So, it’s just a projection of the equation onto BSpline basis and using Galerkin to solve it as a linear system.
It would be great to be able to solve these SOL equations in Trixi. Have you tried? Trixi would be great for gridding but it’s primarily for hyperbolic equations. Perhaps Boussinesq approximation would be informative.