From 77150cb66db9ca171fe418ae30d996195ebc83dd Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 14 Oct 2015 16:29:38 +0200 Subject: A-Feld-Ableitungen werden jetzt in der richtigen Reihenfolge berechnet. --- Physikunit.pas | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Physikunit.pas b/Physikunit.pas index d546621..7847c28 100644 --- a/Physikunit.pas +++ b/Physikunit.pas @@ -822,6 +822,12 @@ begin ((emFelder[efAY,false]+i+1)^ - (emFelder[efAY,false]+i-1)^)*iDX/2; (emFelder[efBZ,false]+aX-1)^:=0; // rechter Rand + // erste Ableitung des A-Feldes berechnen + // dA/dt = dA/dt - E + for i:=1 to aX-2 do + (emFelder[efAX,true]+i)^:=(emFelder[efDAXDT,false]+i)^ - (emFelder[efEX,false]+i)^; + move(emFelder[efDAYDT,false]^,emFelder[efAY,true]^,aX*sizeof(double)); + // Randbedingungen für die Ableitungen des A-Felds setzen for emF:=efAX to efAY do begin // Vakuumrandbedingungen für das A-Feld emFelder[emF,true]^:= @@ -838,8 +844,7 @@ begin (emFelder[efAY,true]+(aX-1)*byte(rechts))^ + exprToFloat(false,lichters[rechts][i],gitter.kvs,nil); - // sonstige Ableitungen des A-Feldes berechnen - + // zweite Ableitung des A-Feldes berechnen // d2A/dt2 = Laplace(A) - j ( - dE/dt wird auf dA/dt direkt aufgeschlagen !!! ) for i:=1 to aX-2 do (emFelder[efDAXDT,true]+i)^:= @@ -850,11 +855,6 @@ begin ( (emFelder[efAY,false]+i+1)^ - 2*(emFelder[efAY,false]+i)^ + (emFelder[efAY,false]+i-1)^ )*sqr(iDX) - (emQuellen[eqJY]+i)^; - // dA/dt = dA/dt - E - for i:=1 to aX-2 do - (emFelder[efAX,true]+i)^:=(emFelder[efDAXDT,false]+i)^ - (emFelder[efEX,false]+i)^; - move(emFelder[efDAYDT,false]^,emFelder[efAY,true]^,aX*sizeof(double)); - // Gradienten der Phasenraumbesetzungsdichte berechnen pruefeArrayEnden('Jemand hat das FFT-Array überschrieben!'); -- cgit v1.2.3-54-g00ecf