在球形的传染媒介领域Streamline

时间:2014-02-01 08:03:17

标签: matlab vector geometry field

我的问题与球体上的矢量场相关联。我有六个2d数组:前三个用于坐标,第二个用于向量组件。 我需要在球体上绘制这个矢量场的流线。我尝试过流线型和流线型,但它们不支持球面Surfacec。你有什么建议可以解决这个矢量场的流线型吗?

1 个答案:

答案 0 :(得分:2)

首先使用meshgrid定义流竞技场。这将创建一个3D点阵列,可以计算速度幅度和方向。

[x,y,z] = meshgrid(-1.01:0.02:1.01,-1.01:0.02:1.01,-1.01:0.02:1.01);

定义您的流量参数。

U = 1; % x-wise free stream velocity
a = 0.5; % sphere radius
mu = -2*pi*a^3*U; % doublet strength required to create spherical streamlines

与x方向流叠加的x方向(流向)双峰的x,y,z速度分量为:

ux = U+mu.*(2.*x.^2-y.^2-z.^2)./(4*pi.*(x.^2+y.^2+z.^2).^(5/2));
uy = 3*mu.*x.*y./(4*pi.*(x.^2+y.^2+z.^2).^(5/2));
uz = 3*mu.*x.*z./(4*pi.*(x.^2+y.^2+z.^2).^(5/2));

需要定义流线的起点。对于这种情况,以停滞流线为中心的流场上游侧的小的2D网格点是一个很好的选择。

[startx, starty, startz] = meshgrid(-1,-0.1:0.02:0.1,-0.1:0.02:0.1); 

生成流线图。

streamline(x,y,z,ux,uy,uz,startx,starty,startz)

结果看起来有点像洋葱,但代表球体周围的3D潜在流动。