Skip to content

Improve B-splines efficiency with their parametric expression

Sacha Duverger requested to merge improve/bspline into custom_cbgeo

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)

Material_points_positions_on_the__y_z__plane__199__t___3.25e-01_s_

With kernel correction (better than with linear shape functions)

Material_points_positions_on_the__y_z__plane__199__t___3.25e-01_s_

What remains to do

  • add the parametric expressions for hexahedron (should be very easy)
  • add cubic B-splines (should be tedious)

Merge request reports