diff options
-rw-r--r-- | Physikunit.pas | 14 |
1 files 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!'); |