# How to stream surfaces in 3D velocity fields

7 views (last 30 days)
Jakob Sievers on 10 Mar 2011
Hi guys
I have three 3D matrices, each corresponding to a distinct directional velocity in a 3D matrix. I am trying to create a surface by drawing streamlines in all directions from one single point, but for some reason I cant make it work. Do any of you know of any matlab function which would do just that? If I had to guess, I would say that someone else would have needed this particular function before me.
Jakob Sievers on 10 Mar 2011
Just to be clear, what I had in mind was to use stream3 up and downstream of this single point and then somehow turn the velocity fields and use stream3 on all of the resulting points to cover all the orthogonal directions. To be honest, writing it now I kind of realise that this might not even be possible, so any input will be greatly appreciated!

Andrew Newell on 10 Mar 2011
You can't do that unless you start from a point with velocity zero. Elsewhere, the streamline has to be tangent to the velocity, so there is only one streamline per point. See, for example, the definition in this Wikipedia article.
EDIT: If you want to map out the surface, you could draw streamlines through several points.
Manar Al Asad on 19 Jul 2011
I'm interested in something similar to what Jakob is asking about. I'd like to plot the magnetic field lines starting at a spherical surface (like your photo). When I use streamline and give the matrices produced by [sx,sy,sz]=sphere(n) as starting points, the lines that are produced are not what I expect them to be (in 2D, it works fine)
Do you have any suggestions as to what I might be doing wrong?

Jakob Sievers on 10 Mar 2011
Maybe the real question should rather be: if stream3 can go either up or downstream depending on the sign of the velocities used, can it somehow also go 'along-stream'? That is, follow the path that leads not up or down the mountain but around it?
Andrew Newell on 10 Mar 2011
Do you have any other information besides velocities?