diff options
author | Erich Eckner <git@eckner.net> | 2015-09-30 15:05:04 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2015-09-30 15:05:04 +0200 |
commit | 5edd975607b8b0824995b7c44674a535686a60c8 (patch) | |
tree | eb8772282534a959e8dd2df7840480a16e144444 | |
parent | 775e1c775b919eba3660f1eb0f31d384fe4a290c (diff) | |
download | Plasmapropagation-5edd975607b8b0824995b7c44674a535686a60c8.tar.xz |
FFT wird nun eher geplant, sodass die initialiserte Dichte nicht mehr überschrieben wird
-rw-r--r-- | Physikunit.pas | 42 |
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; |