How do I plot Streamlines of velocity components of spherical coordinate system?

14 ビュー (過去 30 日間)
I solved Navier stokes in Spherical coordinates and I got velocity field inside a sphere i.e
If I plot contours using the code below its working. But, The same technique is not working for streamlines, instead I'm getting blank.
The streamlines are look like this
nr = 21;
nth = 21;
L = 1;
r = linspace(0,1,nr);
th = linspace(0,pi,nth);
[R,Th] = meshgrid(r,th);
Xi = R.*cos(Th); Yi = R.*sin(Th);
ui = (R.^2-1)/2/(L+1).*cos(Th);
vi = (1-2*R.^2)/2/(L+1).*sin(Th);
figure;contourf(Xi,Yi,ui,100,'LineStyle','none');axis image
figure;contourf(Xi,Yi,vi,100,'LineStyle','none');axis image
figure;streamline(Xi,Yi,ui,vi)
I'm getting streamlines as empty, can anyone help me in this regard?
Thanks in advance.

採用された回答

VBBV
VBBV 2022 年 12 月 13 日
verts = stream2(Xi,Yi,ui,vi,R,Th);
streamline(verts);
  5 件のコメント
VBBV
VBBV 2022 年 12 月 15 日
Ok, it seems your equations are in spherical coordinates, so use sph2cart function
clc
clear all
close all
nr = 21;
nth = 21;
L = 1;
r =linspace(-1,1,nr);
th =linspace(0,pi,nth);
[R,Th] = meshgrid(r,th);
[x y z] = sph2cart(cos(Th),sin(Th),R);
Xi = (R).*cos(Th);
Yi = R.*sin(Th);
ui = ((R.^2-1)/(2*(L+1))).*cos(Th);
vi = ((1-2*R.^2)/(2*(L+1))).*sin(Th);
% figure;contourf(Xi,Yi,ui,100,'LineStyle','none');axis image
% figure;contourf(Xi,Yi,vi,100,'LineStyle','none');axis image
streamslice(x,y,ui,vi);
Jagadeesh Korukonda
Jagadeesh Korukonda 2022 年 12 月 15 日
Thank you @VBBV
I've made small modification to your code. now its working fine. since my r-domian is [0 1] only.
clc
clear all
close all
nr = 5;
nth = 5;
L = 1;
r =linspace(0,1,nr);
th =linspace(0,pi,nth);
[R,Th] = meshgrid(r,th);
[x y z] = sph2cart(cos(Th),sin(Th),R);
Xi = (R).*cos(Th);
Yi = R.*sin(Th);
ui = ((R.^2-1)/(2*(L+1))).*cos(Th);
vi = ((1-2*R.^2)/(2*(L+1))).*sin(Th);
UI = [fliplr(ui(:,2:end)) ui];
VI = [fliplr(vi(:,2:end)) vi];
X1 = [fliplr(-x(:,2:end)) x];
Y1 = [fliplr(-y(:,2:end)) y];
streamslice(X1,Y1,UI,VI); axis image

サインインしてコメントする。

その他の回答 (0 件)

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by