Plotting 3D thoroidal field streamline
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Massimo Carpita
el 11 de Sept. de 2019
Comentada: Massimo Carpita
el 12 de Sept. de 2019
Hi everyone!
I'm having some trouble trying to plot streamlines of a field I'm using in a code. It is a 3D field whose components are represented by 3 functions (Bx,By,Bz) I defined.
I'm interested in plotting the streamlines of the field into a 3D thoroidal volume but I don't really have a clue about the right way to do this; I tried to use this code but it doesn't work.
Babs=5;
R0=0.1; %major R
r0=linspace(0,0.005,3); %inner R
th=linspace(0,2*pi,20); %poloidal angle
phi=linspace(0,2*pi,30); %thoroidal angle
[Phi,Th,rr0]=meshgrid(phi,th,r0);
xx=(R0+rr0.*cos(Th)).*cos(Phi);
yy=(R0+rr0.*cos(Th)).*sin(Phi);
zz=rr0.*sin(Th);
[starty,startz]=meshgrid(yy,zz);
streamline(xx,yy,zz,Bx(Babs,xx,yy,zz,R0),By(Babs,xx,yy,zz,R0),Bz(Babs,xx,yy,zz,R0),starty.*0,starty,startz);
%definisco le funzioni per il campo B
function a1 = Bx(Babs,x,y,z,R0)
RR=sqrt(x.^2+y.^2);
a1=R0.*Babs.*(-1.*sin(atan2(y,x)))./RR;
end
function b1 = By(Babs,x,y,z,R0)
RR=sqrt(x.^2+y.^2);
b1=R0.*Babs.*(cos(atan2(y,x)))./RR;
end
function c1 = Bz(Babs,x,y,z,R0)
c1=Babs.*x.*0;
end
the error I get is
Error using griddedInterpolant
The grid vectors must contain unique points.
I'm also not sure about what way would be the best to define startx, starty and startz in this case.
Thanks in advance for everyone who will try to help me!
0 comentarios
Respuesta aceptada
Más respuestas (0)
Ver también
Categorías
Más información sobre Vector Fields 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!