Teilchenbewegungen in el./magn. Feldern (Visualisierung)
Teilchenbewegungen in el./magn. Feldern (Visualisierung)
Teilchenbewegungen in el./magn. Feldern (Visualisierung)
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
D.2 eqMotion MATLAB<br />
case ’1’ % B=0<br />
B = B0*[ 0 0 0 ];<br />
case ’2’<br />
% Bz<br />
B = B0*[ 0 0 bfi<strong>el</strong>dstrength ];<br />
case ’3’<br />
% dBz/dy<br />
B = B0*[ 0 0 1+bfi<strong>el</strong>dstrength*y ];<br />
case ’4’<br />
% dBz/dz cusp<br />
B = B0*[ -0.5*x (-1)*bfi<strong>el</strong>dstrength*y bfi<strong>el</strong>dstrength*z];<br />
case ’5’<br />
% B toroidal<br />
% Verwendung von Toroidal Koord<strong>in</strong>aten<br />
R = sqrt(x^2 +y^2 + 1.e-10); cosphi = x/R; s<strong>in</strong>phi = y/R;<br />
B = B0*(R0/R)*[ -s<strong>in</strong>phi cosphi 0 ]*bfi<strong>el</strong>dstrength;<br />
case ’6’<br />
% B tokamak<br />
% Verwendung von Toroidal Koord<strong>in</strong>aten<br />
R = sqrt(x^2 +y^2 + 1.e-10); cosphi = x/R; s<strong>in</strong>phi = y/R;<br />
rho = sqrt((R-R0)^2 + z^2+1.e-10); s<strong>in</strong>t = -z/rho; cost = (R-R0)/rho;<br />
Bt = B0 * (R0/R)*[-s<strong>in</strong>phi cosphi 0];<br />
Bp = B0 *(rho/R)*[-cosphi*s<strong>in</strong>t -s<strong>in</strong>phi*s<strong>in</strong>t -cost ];<br />
B = Bt +Bp/q;<br />
case ’7’<br />
% B dipole<br />
r2 = x^2 +y^2 +z^2;<br />
B = m0*r2^(-2.5)*[ 3*x*z 3*y*z 3*z^2-r2]*bfi<strong>el</strong>dstrength;<br />
case ’8’<br />
% user def<strong>in</strong>ed<br />
%<br />
% ==> Hier kann e<strong>in</strong> b<strong>el</strong>iebiges Vektorf<strong>el</strong>d e<strong>in</strong>gefuegt werden<br />
%<br />
otherwise<br />
% Hier wird der Fehler, der schon im GUI abgefangen wird nochmals zur<br />
% Sicherheit ueberprueft<br />
msgbox(’Diese Konfiguration existiert nicht’,’ERROR’,’error’);<br />
end<br />
Btot = norm(B); OmegaC=charge/mass*norm(B);<br />
% E-FELD: Def<strong>in</strong>ition der e<strong>in</strong>z<strong>el</strong>nen F<strong>el</strong>dstrukturen<br />
switch num2str(eFi<strong>el</strong>dTyp)<br />
case ’1’ % E=0<br />
E = E0*[ 0 0 0 ];<br />
case ’2’<br />
% Ex<br />
E = E0*[ efi<strong>el</strong>dstrength 0 0 ];<br />
case ’3’<br />
% Ez<br />
E = E0*[ 0 0 efi<strong>el</strong>dstrength ];<br />
case ’4’<br />
% dEy/dt<br />
E = E0*[ 0 t*charge/mass*Btot 0]*efi<strong>el</strong>dstrength;<br />
case ’5’<br />
% user def<strong>in</strong>ed<br />
%<br />
% ==> Hier kann e<strong>in</strong> b<strong>el</strong>iebiges Vektorf<strong>el</strong>d e<strong>in</strong>gefuegt werden<br />
%<br />
otherwise<br />
% Hier wird der Fehler, der schon im GUI abgefangen wird nochmals zur<br />
% Sicherheit ueberprueft<br />
msgbox(’Diese Konfiguration existiert nicht’,’ERROR’,’error’);<br />
end<br />
% diese Funktion setzt die <strong>in</strong>itialisierenden Werte fuer die Berechnung<br />
function [tspan,y0,options] = <strong>in</strong>it<br />
global charge mass B0 E0 R0 m0 nLarmor v<strong>el</strong>scala<br />
global xposv yposv zposv v<strong>el</strong>x v<strong>el</strong>y v<strong>el</strong>z<br />
72