**How can streamlines be restricted to a surface?**

You can seed the target surface, and integrate streamlines for a new (modified) velocity field you have created using the *Function Formula Specification Panel*. For instance, if you have a plane (flat surface), let N=(N1,N2,N3) be the (constant) normal to the surface:

N = nrmlz (N1*UnitX + N2*UnitY + N3*UnitZ) where “nrmlz” makes sure this is a unit normal (length 1).

Let V be the velocity.

The velocity magnitude normal (perpendicular) to the surface is: V dot N

To get the velocity restricted to the surface, subtract the normal velocity from the velocity:

V – (V dot N) * N

If the surface is not flat, but you know the surface normal N, such as: nrmlz(grad(“pressure”)) for an iso-surface of pressure nrmlz(grad(“J”)) for a J computational surface then the above equation for velocity restricted to the surface is approximately true, and may give a reasonable approximation to surface-restricted flow.

NOTE: For an X plane (for instance) we can use a simpler function to restrict streamlines seeded on that plane with:

UnitY*VecY(“Velocity”) + UnitZ*VecZ(“Velocity”)

NOTE: If you have **boundary** surfaces, ..you can use the Vortex Cores and Surface Flow Visualization panel to produce Surface Restricted flow on those surfaces.