How do I plot Streamlines of velocity components of spherical coordinate system?
14 views (last 30 days)
Show older comments
Jagadeesh Korukonda
on 13 Dec 2022
Commented: Jagadeesh Korukonda
on 15 Dec 2022
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.
0 Comments
Accepted Answer
VBBV
on 13 Dec 2022
verts = stream2(Xi,Yi,ui,vi,R,Th);
streamline(verts);
5 Comments
VBBV
on 15 Dec 2022
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);
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!