MATLAB Answers


Problem in mapping axisymmetric vector field to a 3D rectangular coordinate system

Asked by AP
on 29 Oct 2012

Dear All,

I have a velocity vector field in axisymmetric coordinate system (r,z), where r is the radius (sqrt(x^2+y^2)) and z is the axis. Suppose we have the following simple axisymmetric vector field:

[ r, z ] = meshgrid( 0.1:0.1:1, 0.1:0.1:1);
ur = ones(size(r)); % velocity vector component in r direction.
uz = ones(size(r)); % velocity vector component in z direction.
quiver(r, z, ur, uz)

QUIVER function shows the vector field which is exactly similar for all theta due to being axisymmetric. theta is the angle between the radius and x-axis and actually revolves around z-axis. Any theta has a velocity vector field similar to the above code. My questions is:

  1. How I can map this vector field to three dimensional space? In other words, how can I revolve this vector field and at the same time copy it to other angles to cover 360° and make a three dimensional Cartesian vector field?
  2. How can I make the result of the mapping a valid MESHGRID data? To achieve this, do I have to do interpolation? Is interpolation the only way? I would like to avoid interpolation because it affects the vector field. My ultimate goal is to be able to use the functions CURL and ISOSURFACE and these functions needs a valid MESHGRID data.

For question#1, to make a three dimensional vector field, I kept 'z' and 'uz' and mapped 'r' and 'ur' to their 'x' and 'y' components by using 'r*cos()' and 'r*sin()'. Unfortunately, this will not yield a valid MESHGRID which I mentioned in question#2.

I would be thankful for any help.




This looks related to your other meshgrid question. Is it? If so, just combine them into one and delete your other question - don't keep two questions going on the same question.

I deleted it and explained my question in more details here.

Log in to comment.

0 Answers

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today