2014-02-01 3 views
0

У меня есть проблема, связанная с векторным полем на сфере. У меня шесть массивов 2d: первые три для координат и второй три для векторных компонентов. Мне нужно нарисовать линии тока этого векторного поля на сфере. Я попробовал линии тока и streamslice, но они не поддерживают сферическую поверхность. Есть ли у вас какие-либо предложения о том, как я могу строить линии тока этого векторного поля?Векторное поле Streamline on sphere

ответ

2

Сначала определите арену потока с помощью meshgrid. Это создает трехмерный массив точек, в котором можно вычислить величины и направления скорости.

[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 

Х, 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)); 

Точка начали линии тока должна быть определена , Для этого случая хорошим выбором является небольшая двумерная сетка точек на стороне выше по потоку поля потока, центрированной вокруг линии тока стагнации.

[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) 

Результат немного похож на лук, но представляет собой трехмерный потенциальный поток вокруг сферы.

Смежные вопросы