We are using Kitware VTK to visualize our models. When we display streamlines, it sometimes happens that a single streamline is left out. This can be especially seen when duplicating a model several times, so that there is a model that has several components that look alike with the same distance between each other. Usually in one of the components close to the middle, a single streamline is missing. I suspect that it is due to an accumulated error in the integration VTK performs. Can it be solved in some way, e.g. by changing the Runge-Kutta method?
-
$\begingroup$ It would really help to illustrate your problem with a screenshot. I doubt it has anything to do with RK if you are just using Paraview, but I don't really get what exactly you are doing. $\endgroup$– Vladimir F Героям славаCommented Apr 25, 2017 at 9:27
-
1$\begingroup$ It would really help to see either screenshots or raw data (VTK files). $\endgroup$– Anton Menshov ♦Commented Apr 25, 2017 at 17:15
1 Answer
Are you using a program that implements VTK (i.e. ParaView), or are you implementing the RK method yourself? I know that in the ParaView GUI, it's possible to adjust the relative error between the two RK methods, assuming it's some kind of adaptive method like 4/5 Cash-Karp.
If you are implementing your own RK method, I would adjust the error or tolerance. If you are using VTK directly, but not through a GUI like ParaView, you should investigate if the RK method has some API that addresses this issue. For very sensitive systems, adaptive RK methods are very dependent on this tolerance/error value.
-
$\begingroup$ We are developing our program using Kitware VTK. So we access the methods of VTK directly. vtkStreamTracer has three built-in integrators, Runge-Kutta-2, Runge-Kutta-4 and Runge-Kutta-45. Unfortunately it does not seem to be possible to use custom-made integrators. $\endgroup$ Commented Apr 27, 2017 at 6:42
-
$\begingroup$ Well then I would suggest you use Runge-Kutta-45. It's an adaptive RK method, and will give you control on the allowable error between timesteps. That should help you solve your problem. $\endgroup$ Commented Apr 27, 2017 at 9:24