MATLAB Answers

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

2 ビュー (過去 30 日間)
AP 2012 年 10 月 29 日
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.
  2 件のコメント
AP 2012 年 10 月 29 日
I deleted it and explained my question in more details here.


回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by