24.02.2014 Aufrufe

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!