diff options
-rw-r--r-- | Physikunit.pas | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Physikunit.pas b/Physikunit.pas index 9966c3b..24e3140 100644 --- a/Physikunit.pas +++ b/Physikunit.pas @@ -626,8 +626,9 @@ begin setlength(impulsraum,length(teilchen)); for i:=0 to length(impulsraum)-1 do for abl:=false to true do begin - fftw_getmem(impulsraum[i,abl],aX*aP*sizeof(double)); + fftw_getmem(impulsraum[i,abl],(aX*aP+1)*sizeof(double)); fillchar(impulsraum[i,abl]^,aX*aP*sizeof(double),#0); + (impulsraum[i,abl]+aX*aP)^:=pi; end; fillchar(massen,sizeof(massen),#0); @@ -750,6 +751,7 @@ end; procedure tFelder.pruefeArrayEnden(fehler: string); var i,j: longint; + abl: boolean; begin if (abs(lFftTmp^.re-pi)>1e-10) or (abs(lFftTmp^.im-sqr(pi))>1e-10) then begin gitter.prot.schreibe(fehler); @@ -765,6 +767,14 @@ begin gitter.prot.destroyall; halt(1); end; + for i:=0 to length(impulsRaum)-1 do + for abl:=false to true do + if abs((impulsRaum[i,abl]+aP*aX)^-pi)>1e-10 then begin + gitter.prot.schreibe(fehler); + gitter.prot.schreibe(floattostr((impulsRaum[i,abl]+aP*aX)^)+' vs. '+floattostr(pi)); + gitter.prot.destroyall; + halt(1); + end; end; procedure tFelder.berechneAbleitungen; |