How to plot a 3D vortex flow
30 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Prashan Beddagana
el 2 de Sept. de 2021
Comentada: Prashan Beddagana
el 2 de Sept. de 2021
I have been given a set of large data for an airfoil. Where i have a mesh file of X,Y,Z Coordinates and data file of its velocity map as Xi,Yi,Zi,Ui,Vi,Wi at a given timestep. I want to be able to plot a 3D Vortex structure on the suction side of the airfoil ( something similar to the images below) but i am unsure how to do this. I have tried using the curl function but i think my code is wrong and gives me an error saying 'contour not rendered for non-finite Zdata). Please could someone guide me in the right direction to how to approach this.
5 comentarios
Respuesta aceptada
Wan Ji
el 2 de Sept. de 2021
Editada: Wan Ji
el 2 de Sept. de 2021
If you donot have a mesh, then you need to reconstruct your mesh!
X = X(:); Y = Y(:); Z = Z(:); U = U(:); V= V(:); W=W(:);
minX = min(X);
maxX = max(X);
minY = min(Y);
maxY = max(Y);
minZ = min(Z);
maxZ = max(Z);
n = ceil(numel(X)^(1/3))+1;
x = linspace(minX,maxX,n);
y = linspace(minY,maxY,n);
z = linspace(minZ,maxZ,n);
[Xr,Yr,Zr] = meshgrid(x,y,z);
Ur = zeros(size(Xr));
Vr = Ur;
Wr = Ur;
Fu = scatteredInterpolant(X,Y,Z,U,'linear');
Fv = scatteredInterpolant(X,Y,Z,V,'linear');
Fw = scatteredInterpolant(X,Y,Z,W,'linear');
Ur(:) = Fu(Xr(:),Yr(:),Zr(:));
Vr(:) = Fv(Xr(:),Yr(:),Zr(:));
Wr(:) = Fw(Xr(:),Yr(:),Zr(:));
[sx,sy,sz] = meshgrid(linspace(minX,maxX,11),linspace(minY,maxY,11),linspace(minZ,maxZ,11));
streamline(stream3(Xr,Yr,Zr,Ur,Vr,Wr,sx,sy,sz))
4 comentarios
Wan Ji
el 2 de Sept. de 2021
Hi, I have recieved your email but I dont know how to reply@Prashan Beddagana
Más respuestas (0)
Ver también
Categorías
Más información sobre Polar Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!