The context of my question is how to compute high order derivates on direct numerical simulation of turbulent channel flow. It is of particular interest for fluid dynamics and turbulence research.

I want to find the coefficients of a B-spline curve given the value of the resulting function on a set of collocatioin points. Is there any way to do it without resorting to solve a linear system each time I need to find the coefficients.

My specific case is to interpolate using a 7-th order B-spline scheme with knots given, but the values are set on 'Greville Abscisae'.

The knots are given in this address: http://turbulence.pha.jhu.edu/docs/channel/y-knots.txt

And the collocation ponits in this: http://turbulence.pha.jhu.edu/docs/channel/y.txt

Though not necessary, you can query any example of such coefficients on this website, just inputing the collocation points on this website:


The quantity I am seeking to interpolate is the velocity field for the channel dataset.

I have never worked with b-splines before, so I might be missing something, but I haven't found anywere a way to compute the coefficients from the collocation points, and this is bothering me.

Solve a linear system for each line (in this case, a 512 x 506) would be bothersome, since I would need to do this for each vertical line on each snapshot of the simulation, and I would like to avoid this as much as possible, but I am not finding any other alternative.

  • $\begingroup$ If you just wish to compute derivatives, you can use the Fourier transform on your data. But if the interpolation using a B-spline is mandatory, then you have to invert a system. $\endgroup$ – gpavanb Jul 24 '17 at 19:56
  • $\begingroup$ I can't use FFT to do the derivative directly because the nodes were the data was given are not equally spaced, and also the data is non-periodic. I could use something like NUFFT, but if I was going to go that way, I would prefer to simply use some high order finite diferences. My idea to use B-spline was to do exactly the way the original simulation was done, and that way be as close as possible to the original thing. It's not mandatory, but it would be "ideal" in some sense. $\endgroup$ – Hydro Guy Jul 27 '17 at 2:59
  • $\begingroup$ You can perform differentiation using other orthogonal polynomials for non-periodic BCs in $O(N^{2})$ operations. I would recommend Spectral Methods by Shen, Wang and Tang, which discusses 'differentiation in physical space' in detail. Note that for non-uniform grids, you would also have to compute a Jacobian term for converting between the derivative in the uniform grid to the actual one. $\endgroup$ – gpavanb Jul 27 '17 at 4:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.