summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2015-09-30 15:05:04 +0200
committerErich Eckner <git@eckner.net>2015-09-30 15:05:04 +0200
commit5edd975607b8b0824995b7c44674a535686a60c8 (patch)
treeeb8772282534a959e8dd2df7840480a16e144444
parent775e1c775b919eba3660f1eb0f31d384fe4a290c (diff)
downloadPlasmapropagation-5edd975607b8b0824995b7c44674a535686a60c8.tar.xz
FFT wird nun eher geplant, sodass die initialiserte Dichte nicht mehr überschrieben wird
-rw-r--r--Physikunit.pas42
1 files changed, 21 insertions, 21 deletions
diff --git a/Physikunit.pas b/Physikunit.pas
index 24e3140..736df34 100644
--- a/Physikunit.pas
+++ b/Physikunit.pas
@@ -631,25 +631,6 @@ begin
(impulsraum[i,abl]+aX*aP)^:=pi;
end;
- fillchar(massen,sizeof(massen),#0);
- setlength(massen,length(teilchen));
- for i:=0 to length(massen)-1 do
- massen[i]:=0;
- for i:=0 to aX-1 do
- for j:=0 to length(teilchen)-1 do begin
- dens:=_teilchen[j].gibDichte(gitter.xl+(i-2)*gitter.dX,parent.kvs);
- initialisiereDichte(i,j,_teilchen[j].breite,dens);
- massen[j]:=massen[j]+dens*gitter.dX*teilchen[j].eigenschaften[tsgMasse];
- end;
- for rechts:=false to true do begin
- lichters[rechts]:=tMyStringlist.create(nil,'');
- lichters[rechts].text:=lichter.text;
- end;
- lichters[false].grep('^links .*');
- lichters[false].subst('^links *','');
- lichters[true].grep('^rechts .*');
- lichters[true].subst('^rechts *','');
-
i:=max((aP div 2 + 1)*aX,(aX div 2 + 1)*aP);
fftw_getmem(fftTmp,(i+1)*sizeof(complex_double));
fillchar(fftTmp^,(i+1)*sizeof(complex_double),#0);
@@ -658,7 +639,7 @@ begin
lFftTmp^.re:=pi;
lFftTmp^.im:=sqr(pi);
- fillchar(ffts,sizeof(ffts),#0);
+ fillchar(ffts,sizeof(ffts),#0); // Vorsicht, die Planung der FFTs überschreibt den Input, auch wenn die eigentlichen FFTs das nicht tun!
setlength(ffts,length(teilchen));
for i:=0 to length(ffts)-1 do begin
ffts[i,0,false]:= // Planung der Hintransformationen über x
@@ -687,7 +668,26 @@ begin
double *out, const int *onembed,
int ostride, int odist,
unsigned flags);
- *)
+ *)
+
+ fillchar(massen,sizeof(massen),#0);
+ setlength(massen,length(teilchen));
+ for i:=0 to length(massen)-1 do
+ massen[i]:=0;
+ for i:=0 to aX-1 do
+ for j:=0 to length(teilchen)-1 do begin
+ dens:=teilchen[j].gibDichte(gitter.xl+(i-2)*gitter.dX,parent.kvs);
+ initialisiereDichte(i,j,teilchen[j].breite,dens);
+ massen[j]:=massen[j]+dens*gitter.dX*teilchen[j].eigenschaften[tsgMasse];
+ end;
+ for rechts:=false to true do begin
+ lichters[rechts]:=tMyStringlist.create(nil,'');
+ lichters[rechts].text:=lichter.text;
+ end;
+ lichters[false].grep('^links .*');
+ lichters[false].subst('^links *','');
+ lichters[true].grep('^rechts .*');
+ lichters[true].subst('^rechts *','');
end;
destructor tFelder.destroy;