Effacer les filtres
Effacer les filtres

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

15 vues (au cours des 30 derniers jours)
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.

Réponse acceptée

VBBV
VBBV le 13 Déc 2022
verts = stream2(Xi,Yi,ui,vi,R,Th);
streamline(verts);
  5 commentaires
VBBV
VBBV le 15 Déc 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);
Jagadeesh Korukonda
Jagadeesh Korukonda le 15 Déc 2022
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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Lighting, Transparency, and Shading dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by