CExA-project / ddc

DDC is a discrete domain computation library.
https://ddc.mdls.fr
Other
31 stars 3 forks source link

Uniform Splines with Hermite boundary conditions #359

Open EmilyBourne opened 5 months ago

EmilyBourne commented 5 months ago

If I am not mistaken, we mentioned that in the case of even degree uniform splines along with Hermite boundary conditions the function compute_interpolation_points_uniform produces a non-uniform mesh. However when printing the mesh it seems to be uniform whatever the value of the degree.

Originally created by @tpadioleau in gysela-developpers/gyselalibxx#89

EmilyBourne commented 5 months ago

It should be quasi-uniform. The first and last mesh step should be half the size of all other mesh steps

You are correct. There are missing evaluation points. For degree 2 with 10 cells on the domain [0,1] I obtain the points:

0.05 0.15 0.25 0.35 0.45 0.55 0.65 0.75 0.85 0.95

I expected to obtain:

0.00 0.05 0.15 0.25 0.35 0.45 0.55 0.65 0.75 0.85 0.95 1.00

I imagine that the outermost points have been absorbed into the boundary condition. This is not an unreasonable thing to do as specifying Hermite boundary conditions officially means specifying the value and the derivatives at the bounds. Thus the interpolation points are the Greville points, and the boundary conditions are any additional information required to solve the system. For degree 3 we obtain:

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

which includes the points at the boundary as this time they are Greville points. We therefore have 2 options:

  1. Add the points that I expected to see to the interpolation points. This way all values to be evaluated are available in one table, and it is not necessary to know the value of the Hermite boundary conditions at the boundary. The derivative is sufficient

  2. Keep the current points. In this case we have a uniform mesh, however we must be able to provide the value of the function at the boundary

In any case this is not a vital point as it is rare that even degree splines are used. Indeed the stability proofs become much harder for even degrees due to this kind of asymmetry so it is usually safer to stick to odd degrees.

EmilyBourne commented 5 months ago

We need to investigate if this issue is still relevant for GrevilleInterpolationPoints and KnotsAsInterpolationPoints