summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Physikunit.pas14
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!');