Improve B-splines efficiency with their parametric expression
Summary
This MR replaces De Boor algorithm with the parametric expression of cardinal B-spline centered at 0. This change makes it much more efficient: it now takes ~3 min to run a GCC settling while before it took ~53 min.
Incidentally, I finally ~understood what the "kernel correction" is in the code (it was one of the addition of the Soga Research Group), and it turns out to be very important. This is in fact one of the main subject of the TPIC paper, see their figure 3 for instance. I'm not sure which kernel correction is applied in the code, but I noticed that it was absolutely necessary to obtain realistic results. For instance, the following GCC settling were both obtained with quadratic B-spline shape functions, but one does not use the kernel correction while the other does:
Without kernel correction (worse than with linear shape functions)
With kernel correction (better than with linear shape functions)
What remains to do
- add the parametric expressions for hexahedron (should be very easy)
- add cubic B-splines (should be tedious)