diff options
author | Erich Eckner <git@eckner.net> | 2015-08-07 17:07:56 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2015-08-07 17:07:56 +0200 |
commit | 8ea445b956d22d923f7538c5b98587b4ba9c50ae (patch) | |
tree | acb30262b358b4f4c4f07d7e79633072bcedb67d | |
parent | 6e9ff86a556e5afc555d1580a70ecbf5f301c987 (diff) | |
download | Plasmapropagation-8ea445b956d22d923f7538c5b98587b4ba9c50ae.tar.xz |
nun nur noch 2D im Impulsraum, mal schauen ...
-rw-r--r-- | Physikunit.pas | 203 | ||||
-rw-r--r-- | Plasmapropagation.lps | 80 |
2 files changed, 118 insertions, 165 deletions
diff --git a/Physikunit.pas b/Physikunit.pas index 491c186..727f0dc 100644 --- a/Physikunit.pas +++ b/Physikunit.pas @@ -19,18 +19,18 @@ type tZeitverfahren = (zfEulerVorwaerts,zfRungeKuttaDreiAchtel,zfRungeKuttaVier,zfRungeKuttaZehn,zfRungeKuttaZwoelf,zfRungeKuttaVierzehn); tVerteilungsfunktion = function(x: extended): extended; tEMFeldGroesze = ( - efAX,efAY,efAZ, - efDAXDT,efDAYDT,efDAZDT, + efAX,efAY, + efDAXDT,efDAYDT, efEX,efBY,efBZ ); tEMQuellGroesze = ( - eqRho,eqJX,eqJY,eqJZ + eqRho,eqJX,eqJY ); tEMQuellen = array[tEMQuellGroesze] of extended; const erstesEMFMitAbleitung = efAX; - letztesEMFMitAbleitung = efDAZDT; + letztesEMFMitAbleitung = efDAYDT; type @@ -85,19 +85,19 @@ type tImpulsPunkt = class(tObject) // Besetzungsdichten verschiedener Teilchenspezies für ein Paar (r;p) private raumpunkt: tRaumPunkt; - nachbarn: array[0..3,boolean] of tImpulsPunkt; // x-, px-, py-, pz-Nachbarn (jeweil in Richtung - und +) + nachbarn: array[0..2,boolean] of tImpulsPunkt; // x-, px-, py-Nachbarn (jeweil in Richtung - und +) public werte: array of array[boolean] of extended; // Besetzungsdichten und deren Ableitungen für verschiedene Teilchenspezies - constructor create(rp: tRaumPunkt; linksRaum,linksImpuls,untenImpuls,vorneImpuls: tImpulsPunkt; anzTeilchen: longint); + constructor create(rp: tRaumPunkt; linksRaum,linksImpuls,untenImpuls: tImpulsPunkt; anzTeilchen: longint); destructor destroy; override; {$DEFINE LiKotImpulsPunktHeader} {$INCLUDE linearkombinationen.inc} {$UNDEF LiKotImpulsPunktHeader} procedure nichtnegativieren; - procedure akkumuliereEMQuellen(var emQuellen: tEMQuellen; vx,vy,vz,dVP: extended); + procedure akkumuliereEMQuellen(var emQuellen: tEMQuellen; vx,vy,dVP: extended); function gibMirWas(var defizit: extended; entfernung, teilchen,richtung: longint; positiv: boolean): boolean; // ich habe jemanden erreicht procedure setzeNull; - procedure berechneAbleitungen(pX,pY,pZ,iDX,iDPX,iDPY,iDPZ: extended); + procedure berechneAbleitungen(pX,pY,iDX,iDPX,iDPY: extended); end; { tRaumPunkt } @@ -115,12 +115,12 @@ type // Quellen für die EM-Felder lN,rN: tRaumPunkt; // Nachbarpunkte - dPX,dPY,dPZ: extended; + dPX,dPY: extended; // Impulsdiskretisierung - aPX,aPY,aPZ: longint; + aPX,aPY: longint; // Anzahl der Impulsbins - constructor create(linkerNachbar: tRaumPunkt; derBesitzer: tFelder; teilchen,_aPX,_aPY,_aPZ: longint; _dPX,_dPY,_dPZ: extended); + constructor create(linkerNachbar: tRaumPunkt; derBesitzer: tFelder; teilchen,_aPX,_aPY: longint; _dPX,_dPY: extended); destructor destroy; override; procedure berechneEMFelder(dX: extended; rechts: boolean); overload; procedure berechneEMFelder(dX,iDX: extended); overload; @@ -149,7 +149,7 @@ type inhalt: array of tRaumPunkt; gitter: tGitter; - constructor create(groesse: longint; teilchen: array of tTeilchenSpezies; lichter: tMyStringList; parent: tGitter; aPX,aPY,aPZ: longint; dPX,dPY,dPZ: extended); + constructor create(groesse: longint; teilchen: array of tTeilchenSpezies; lichter: tMyStringList; parent: tGitter; aPX,aPY: longint; dPX,dPY: extended); destructor destroy; override; procedure berechneAbleitungen(dX,iDX: extended); {$DEFINE LiKotFelderHeader} @@ -174,7 +174,7 @@ type aktuelleFelder: longint; felders: array of tFelder; // mehrere komplette Simulationsboxen von Feldern, benötigt um Zwischenschritte für die Zeitentwicklung zu speichern - constructor create(derBesitzer: tSimulation; size: longint; deltaX: extended; bekannteWerte: tKnownValues; teilchen: array of tTeilchenSpezies; lichter: tMyStringlist; zv: tZeitverfahren; protokollant: tProtokollant; name: string; aPX,aPY,aPZ: longint; dPX,dPY,dPZ: extended); + constructor create(derBesitzer: tSimulation; size: longint; deltaX: extended; bekannteWerte: tKnownValues; teilchen: array of tTeilchenSpezies; lichter: tMyStringlist; zv: tZeitverfahren; protokollant: tProtokollant; name: string; aPX,aPY: longint; dPX,dPY: extended); destructor destroy; override; procedure iteriereSchritt(dT: extended); end; @@ -201,10 +201,10 @@ implementation const emFeldNamen: array[tEMFeldGroesze] of string = ( - 'AX','AY','AZ','DAXDT','DAYDT','DAZDT','EX','BY','BZ' + 'AX','AY','DAXDT','DAYDT','EX','BY','BZ' ); emQuellNamen: array[tEMQuellGroesze] of string = ( - 'RHO','JX','JY','JZ' + 'RHO','JX','JY' ); minAusgabeBuffer = 1024*1024; @@ -520,7 +520,7 @@ end; // tImpulsPunkt **************************************************************** -constructor tImpulsPunkt.create(rp: tRaumPunkt; linksRaum,linksImpuls,untenImpuls,vorneImpuls: tImpulsPunkt; anzTeilchen: longint); +constructor tImpulsPunkt.create(rp: tRaumPunkt; linksRaum,linksImpuls,untenImpuls: tImpulsPunkt; anzTeilchen: longint); var i: longint; b: boolean; @@ -538,9 +538,7 @@ begin nachbarn[1,true]:=nil; nachbarn[2,false]:=untenImpuls; nachbarn[2,true]:=nil; - nachbarn[3,false]:=vorneImpuls; - nachbarn[3,true]:=nil; - for i:=0 to 3 do + for i:=0 to 2 do if assigned(nachbarn[i,false]) then nachbarn[i,false].nachbarn[i,true]:=self; end; @@ -588,7 +586,7 @@ begin end; end; -procedure tImpulsPunkt.akkumuliereEMQuellen(var emQuellen: tEMQuellen; vx,vy,vz,dVP: extended); +procedure tImpulsPunkt.akkumuliereEMQuellen(var emQuellen: tEMQuellen; vx,vy,dVP: extended); var i: longint; tmp: extended; @@ -598,7 +596,6 @@ begin emQuellen[eqRho]:=emQuellen[eqRho] + tmp; emQuellen[eqJX]:= emQuellen[eqJX] + tmp * vx; emQuellen[eqJY]:= emQuellen[eqJY] + tmp * vy; - emQuellen[eqJZ]:= emQuellen[eqJZ] + tmp * vz; end; end; @@ -638,39 +635,36 @@ begin werte[i,abl]:=0; end; -procedure tImpulsPunkt.berechneAbleitungen(pX,pY,pZ,iDX,iDPX,iDPY,iDPZ: extended); +procedure tImpulsPunkt.berechneAbleitungen(pX,pY,iDX,iDPX,iDPY: extended); var igam: extended; i: longint; begin - igam:=1/sqrt(1+sqr(pX)+sqr(pY)+sqr(pZ)); + igam:=1/sqrt(1+sqr(pX)+sqr(pY)); pX:=pX*igam; pY:=pY*igam; - pZ:=pZ*igam; // df/dt = - v Nabla f - q(E + v/c x B) Nabla_p f for i:=0 to length(werte)-1 do werte[i,true]:= - pX * (nachbarn[0,true].werte[i,false] - nachbarn[0,false].werte[i,false]) * iDX/2 - raumpunkt.felder.spezLadungen[i] * ( - (raumpunkt.emFelder[efEX,false] + pY*raumpunkt.emFelder[efBZ,false] - pZ*raumpunkt.emFelder[efBY,false]) + (raumpunkt.emFelder[efEX,false] + pY*raumpunkt.emFelder[efBZ,false]) * (nachbarn[1,true].werte[i,false] - nachbarn[1,false].werte[i,false]) * iDPX/2 -pX*raumpunkt.emFelder[efBZ,false] * (nachbarn[2,true].werte[i,false] - nachbarn[2,false].werte[i,false]) * iDPY/2 - +pX*raumpunkt.emFelder[efBY,false] - * (nachbarn[3,true].werte[i,false] - nachbarn[3,false].werte[i,false]) * iDPZ/2 ); end; // tRaumPunkt ****************************************************************** -constructor tRaumPunkt.create(linkerNachbar: tRaumPunkt; derBesitzer: tFelder; teilchen,_aPX,_aPY,_aPZ: longint; _dPX,_dPY,_dPZ: extended); +constructor tRaumPunkt.create(linkerNachbar: tRaumPunkt; derBesitzer: tFelder; teilchen,_aPX,_aPY: longint; _dPX,_dPY: extended); var - emF: tEMFeldGroesze; - emQ: tEMQuellGroesze; - abl: boolean; - i,j,k: longint; - xN,pxN,pyN,pzN: tImpulsPunkt; + emF: tEMFeldGroesze; + emQ: tEMQuellGroesze; + abl: boolean; + i,j: longint; + xN,pxN,pyN: tImpulsPunkt; begin inherited create; felder:=derBesitzer; @@ -685,33 +679,26 @@ begin lN.rN:=self; aPX:=_aPX+byte(not odd(_aPX)); aPY:=_aPY+byte(not odd(_aPY)); - aPZ:=_aPZ+byte(not odd(_aPZ)); dPX:=_dPX; dPY:=_dPY; - dPZ:=_dPZ; fillchar(phasenraum,sizeof(phasenraum),#0); - setlength(phasenraum,aPX*aPY*aPZ); + setlength(phasenraum,aPX*aPY); for i:=0 to aPX-1 do - for j:=0 to aPY-1 do - for k:=0 to aPZ-1 do begin - if assigned(linkerNachbar) then - xN:=linkerNachbar.phasenraum[i+aPX*(j+k*aPY)] - else - xN:=nil; - if i>0 then - pxN:=phasenraum[i-1+aPX*(j+k*aPY)] - else - pxN:=nil; - if j>0 then - pyN:=phasenraum[i+aPX*(j-1+k*aPY)] - else - pyN:=nil; - if k>0 then - pzN:=phasenraum[i+aPX*(j+(k-1)*aPY)] - else - pzN:=nil; - phasenraum[i+aPX*(j+k*aPY)]:=tImpulsPunkt.create(self,xN,pxN,pyN,pzN,teilchen); - end; + for j:=0 to aPY-1 do begin + if assigned(linkerNachbar) then + xN:=linkerNachbar.phasenraum[i+aPX*j] + else + xN:=nil; + if i>0 then + pxN:=phasenraum[i-1+aPX*j] + else + pxN:=nil; + if j>0 then + pyN:=phasenraum[i+aPX*(j-1)] + else + pyN:=nil; + phasenraum[i+aPX*j]:=tImpulsPunkt.create(self,xN,pxN,pyN,teilchen); + end; end; destructor tRaumPunkt.destroy; @@ -756,23 +743,20 @@ begin (lN.emQuellen[eqRho] + emQuellen[eqRho]) * dX/2; // B = rot A - emFelder[efBY,false]:= - (lN.emFelder[efAZ,false]-rN.emFelder[efAZ,false])*iDX/2; emFelder[efBZ,false]:= (rN.emFelder[efAY,false]-lN.emFelder[efAY,false])*iDX/2; end; procedure tRaumPunkt.berechneEMAbleitungen(iDX: extended); // Zeitableitungen der EM-Potentiale berechnen var - i,j,k: longint; - emQ: tEMQuellGroesze; + i,j: longint; + emQ: tEMQuellGroesze; begin for emQ:=low(tEMQuellGroesze) to high(tEMQuellGroesze) do emQuellen[emQ]:=0; for i:=0 to aPX-1 do for j:=0 to aPY-1 do - for k:=0 to aPZ-1 do - phasenraum[i+aPX*(j+aPY*k)].akkumuliereEMQuellen(emQuellen,(i-aPX/2)*dPX,(j-aPY/2)*dPY,(k-aPZ/2)*dPZ,dPX*dPY*dPZ); + phasenraum[i+aPX*j].akkumuliereEMQuellen(emQuellen,(i-aPX/2)*dPX,(j-aPY/2)*dPY,dPX*dPY); // d2A/dt2 = Laplace(A) - j ( - dE/dt wird auf dA/dt direkt aufgeschlagen !!! ) emFelder[efDAXDT,true]:= @@ -781,25 +765,20 @@ begin emFelder[efDAYDT,true]:= ( rN.emFelder[efAY,false] - 2*emFelder[efAY,false] + lN.emFelder[efAY,false] )*sqr(iDX) - emQuellen[eqJY]; - emFelder[efDAZDT,true]:= - ( rN.emFelder[efAZ,false] - 2*emFelder[efAZ,false] + lN.emFelder[efAZ,false] )*sqr(iDX) - - emQuellen[eqJZ]; // dA/dt = dA/dt - E emFelder[efAX,true]:=emFelder[efDAXDT,false] - emFelder[efEX,false]; emFelder[efAY,true]:=emFelder[efDAYDT,false]; - emFelder[efAZ,true]:=emFelder[efDAZDT,false]; end; procedure tRaumPunkt.berechnePhasenraumAbleitungen(iDX: extended); var - i,j,k: longint; + i,j: longint; begin // df/dt = - v Nabla f - q(E + v/c x B) Nabla_p f for i:=1 to aPX-2 do for j:=1 to aPY-2 do - for k:=1 to aPZ-2 do - phasenraum[i+aPX*(j+aPY*k)].berechneAbleitungen((i-(aPX div 2))*dPX,(j-(aPY div 2))*dPY,(k-(aPZ div 2))*dPZ,iDX,1/dPX,1/dPY,1/dPZ); + phasenraum[i+aPX*j].berechneAbleitungen((i-(aPX div 2))*dPX,(j-(aPY div 2))*dPY,iDX,1/dPX,1/dPY); end; procedure tRaumPunkt.nichtnegativieren; // Dichten nicht negativ machen @@ -812,7 +791,7 @@ end; function tRaumPunkt.impulsIntegral(teilchen: longint; emQ: tEMQuellGroesze): extended; var - i,j,k: longint; + i,j: longint; begin if teilchen<0 then begin result:=emQuellen[emQ]; // das ist leicht :-) @@ -825,32 +804,22 @@ begin eqRho: for i:=0 to aPX-1 do for j:=0 to aPY-1 do - for k:=0 to aPZ-1 do - result:= - result + - phasenraum[i+aPX*(j+aPY*k)].werte[teilchen,false]*dPX*dPY*dPZ; + result:= + result + + phasenraum[i+aPX*j].werte[teilchen,false]*dPX*dPY; eqJX: for i:=0 to aPX-1 do for j:=0 to aPY-1 do - for k:=0 to aPZ-1 do - result:= - result + - phasenraum[i+aPX*(j+aPY*k)].werte[teilchen,false]*dPX*dPY*dPZ * (i-aPX/2)*dPX; + result:= + result + + phasenraum[i+aPX*j].werte[teilchen,false]*dPX*dPY * (i-aPX/2)*dPX; eqJY: for i:=0 to aPX-1 do for j:=0 to aPY-1 do - for k:=0 to aPZ-1 do - result:= - result + - phasenraum[i+aPX*(j+aPY*k)].werte[teilchen,false]*dPX*dPY*dPZ * (j-aPY/2)*dPY; - eqJZ: - for i:=0 to aPX-1 do - for j:=0 to aPY-1 do - for k:=0 to aPZ-1 do - result:= - result + - phasenraum[i+aPX*(j+aPY*k)].werte[teilchen,false]*dPX*dPY*dPZ * (k-aPZ/2)*dPZ; - end; + result:= + result + + phasenraum[i+aPX*j].werte[teilchen,false]*dPX*dPY * (j-aPY/2)*dPY; + end{of case}; end; procedure tRaumPunkt.initialisiereDichte(teilchen: longint; n: extended); @@ -858,7 +827,7 @@ var i: longint; begin for i:=0 to length(phasenraum)-1 do - if (aPX div 2) + aPX*((aPY div 2) + aPY*(aPZ div 2)) = i then + if (aPX div 2) + aPX*(aPY div 2) = i then phasenraum[i].werte[teilchen,false]:=n else phasenraum[i].werte[teilchen,false]:=0; @@ -869,7 +838,7 @@ var i,j,k: longint; begin for i:=(aPX div 2 + 1)*byte(rechts) to (aPX div 2)-1 + (apx-(aPX div 2))*byte(rechts) do - for j:=0 to aPY*aPZ-1 do + for j:=0 to aPY-1 do for k:=0 to felder.matAnz-1 do if phasenraum[i+aPX*j].werte[k,false]>0 then begin phasenraum[aPX-1-i+aPX*j].werte[k,false]:=phasenraum[i+aPX*j].werte[k,false]; @@ -901,7 +870,7 @@ end; // tFelder ********************************************************************* -constructor tFelder.create(groesse: longint; teilchen: array of tTeilchenSpezies; lichter: tMyStringList; parent: tGitter; aPX,aPY,aPZ: longint; dPX,dPY,dPZ: extended); +constructor tFelder.create(groesse: longint; teilchen: array of tTeilchenSpezies; lichter: tMyStringList; parent: tGitter; aPX,aPY: longint; dPX,dPY: extended); var i,j: longint; rechts: boolean; @@ -916,9 +885,9 @@ begin spezLadungen[i]:=teilchen[i].spezifischeLadung; fillchar(inhalt,sizeof(inhalt),#0); setlength(inhalt,groesse+4); // zwei Felder links und rechts extra für Randbedingungen - inhalt[0]:=tRaumPunkt.create(nil,self,length(teilchen),aPX,aPY,aPZ,dPX,dPY,dPZ); + inhalt[0]:=tRaumPunkt.create(nil,self,length(teilchen),aPX,aPY,dPX,dPY); for i:=1 to length(inhalt)-1 do - inhalt[i]:=tRaumPunkt.create(inhalt[i-1],self,length(teilchen),aPX,aPY,aPZ,dPX,dPY,dPZ); + inhalt[i]:=tRaumPunkt.create(inhalt[i-1],self,length(teilchen),aPX,aPY,dPX,dPY); fillchar(massen,sizeof(massen),#0); setlength(massen,length(teilchen)); for i:=0 to length(massen)-1 do @@ -958,7 +927,7 @@ var rechts: boolean; i: longint; begin - for emF:=efAX to efAZ do begin // Vakuumrandbedingungen für das A-Feld + for emF:=efAX to efAY do begin // Vakuumrandbedingungen für das A-Feld inhalt[0].emFelder[emF,true]:= (inhalt[1].emFelder[emF,false] - inhalt[0].emFelder[emF,false])*iDX; @@ -1005,7 +974,7 @@ end; // tGitter ********************************************************************* -constructor tGitter.create(derBesitzer: tSimulation; size: longint; deltaX: extended; bekannteWerte: tKnownValues; teilchen: array of tTeilchenSpezies; lichter: tMyStringlist; zv: tZeitverfahren; protokollant: tProtokollant; name: string; aPX,aPY,aPZ: longint; dPX,dPY,dPZ: extended); +constructor tGitter.create(derBesitzer: tSimulation; size: longint; deltaX: extended; bekannteWerte: tKnownValues; teilchen: array of tTeilchenSpezies; lichter: tMyStringlist; zv: tZeitverfahren; protokollant: tProtokollant; name: string; aPX,aPY: longint; dPX,dPY: extended); var i: longint; begin @@ -1032,7 +1001,7 @@ begin xl:=dX/2; for i:=0 to length(felders)-1 do - felders[i]:=tFelder.create(size,teilchen,lichter,self,aPX,aPY,aPZ,dPX,dPY,dPZ); + felders[i]:=tFelder.create(size,teilchen,lichter,self,aPX,aPY,dPX,dPY); aktuelleFelder:=0; t:=0; @@ -1146,16 +1115,16 @@ end; constructor tSimulation.create(inName: string; protokollant: tProtokollant; name: string); var - ifile: tMyStringlist; - zeitverfahren: tZeitverfahren; - s,t,aSuffix,aPrefix: string; - deltaX,breite,dPX,dPY,dPZ,pXMax,pYMax,pZMax: extended; - i: longint; - kvs: tKnownValues; - teilchen: array of tTeilchenSpezies; - lichter: tMyStringlist; - pro: tProtokollant; - na: pSigActionRec; + ifile: tMyStringlist; + zeitverfahren: tZeitverfahren; + s,t,aSuffix,aPrefix: string; + deltaX,breite,dPX,dPY,pXMax,pYMax: extended; + i: longint; + kvs: tKnownValues; + teilchen: array of tTeilchenSpezies; + lichter: tMyStringlist; + pro: tProtokollant; + na: pSigActionRec; begin inherited create; prot:=tProtokollant.create(protokollant,name); @@ -1187,10 +1156,8 @@ begin gotSighup:=false; dPX:=-1; dPY:=-1; - dPZ:=-1; pXMax:=3; pYMax:=3; - pZMax:=3; // Standardeinstellungen Bereich 'ausgaben' aPrefix:=extractfilepath(paramstr(0)); @@ -1264,13 +1231,8 @@ begin dPY:=exprtofloat(false,s,kvs,nil); continue; end; - if startetMit('z ',s) then begin - dPZ:=exprtofloat(false,s,kvs,nil); - continue; - end; dPX:=exprtofloat(false,s,kvs,nil); dPY:=dPX; - dPZ:=dPX; continue; end; if startetMit('maximalimpuls ',s) then begin @@ -1282,13 +1244,8 @@ begin pYMax:=exprtofloat(false,s,kvs,nil); continue; end; - if startetMit('z ',s) then begin - pZMax:=exprtofloat(false,s,kvs,nil); - continue; - end; pXMax:=exprtofloat(false,s,kvs,nil); pYMax:=pXMax; - pZMax:=pXMax; continue; end; if startetMit('zeit ',s) then begin @@ -1436,8 +1393,6 @@ begin dPX:=deltaX; if dPY<0 then dPY:=sqrt(deltaX); - if dPZ<0 then - dPZ:=sqrt(deltaX); pro:=tProtokollant.create(prot,'create'); case zeitverfahren of @@ -1463,8 +1418,6 @@ begin pro.schreibe('pXMax = '+floattostr(pXMax)); pro.schreibe('dPY = '+floattostr(dPY)); pro.schreibe('pYMax = '+floattostr(pYMax)); - pro.schreibe('dPZ = '+floattostr(dPZ)); - pro.schreibe('pZMax = '+floattostr(pZMax)); pro.schreibe('bekannte Werte:'); kvs.dump(pro,' '); if length(teilchen)>0 then begin @@ -1503,7 +1456,7 @@ begin setlength(sighupSimulationen,length(sighupSimulationen)+1); sighupSimulationen[length(sighupSimulationen)-1]:=self; - gitter:=tGitter.create(self,round(breite/deltaX)+1,deltaX,kvs,teilchen,lichter,zeitverfahren,prot,'gitter',2*round(pXMax/dPX)+1,2*round(pYMax/dPY)+1,2*round(pZMax/dPZ)+1,dPX,dPY,dPZ); + gitter:=tGitter.create(self,round(breite/deltaX)+1,deltaX,kvs,teilchen,lichter,zeitverfahren,prot,'gitter',2*round(pXMax/dPX)+1,2*round(pYMax/dPY)+1,dPX,dPY); for i:=0 to length(teilchen)-1 do teilchen[i].free; setlength(teilchen,0); diff --git a/Plasmapropagation.lps b/Plasmapropagation.lps index b7f8821..adb0f8b 100644 --- a/Plasmapropagation.lps +++ b/Plasmapropagation.lps @@ -17,12 +17,12 @@ <IsPartOfProject Value="True"/> <IsVisibleTab Value="True"/> <EditorIndex Value="1"/> - <TopLine Value="1437"/> - <CursorPos X="40" Y="1467"/> - <FoldState Value=" T3m00/5 pjdlc0A[94Cja0B413 piXlT0E115]BckQ0a211122 p0v70G011 T0!QPc07121N"/> - <UsageCount Value="154"/> + <TopLine Value="1376"/> + <CursorPos Y="1396"/> + <FoldState Value=" T3m00/5 pjdlc0A41212133131112 p0tP0601221[C4a07 T0\QPc07]dL"/> + <UsageCount Value="155"/> <Bookmarks Count="1"> - <Item0 Y="1096"/> + <Item0 Y="1065"/> </Bookmarks> <Loaded Value="True"/> </Unit1> @@ -31,14 +31,14 @@ <IsPartOfProject Value="True"/> <EditorIndex Value="-1"/> <CursorPos X="15" Y="46"/> - <UsageCount Value="116"/> + <UsageCount Value="117"/> </Unit2> <Unit3> <Filename Value="input.plap"/> <IsPartOfProject Value="True"/> <EditorIndex Value="4"/> <CursorPos X="44" Y="23"/> - <UsageCount Value="115"/> + <UsageCount Value="116"/> <Loaded Value="True"/> <DefaultSyntaxHighlighter Value="None"/> </Unit3> @@ -48,7 +48,7 @@ <EditorIndex Value="3"/> <TopLine Value="51"/> <CursorPos X="62" Y="77"/> - <UsageCount Value="63"/> + <UsageCount Value="64"/> <Loaded Value="True"/> </Unit4> <Unit5> @@ -56,7 +56,7 @@ <EditorIndex Value="5"/> <TopLine Value="22"/> <CursorPos X="36" Y="29"/> - <UsageCount Value="91"/> + <UsageCount Value="92"/> <Loaded Value="True"/> <DefaultSyntaxHighlighter Value="None"/> </Unit5> @@ -147,130 +147,130 @@ <EditorIndex Value="2"/> <TopLine Value="89"/> <CursorPos X="77" Y="102"/> - <UsageCount Value="26"/> + <UsageCount Value="27"/> <Loaded Value="True"/> </Unit18> </Units> <JumpHistory Count="30" HistoryIndex="29"> <Position1> <Filename Value="Physikunit.pas"/> - <Caret Line="954" Column="69" TopLine="934"/> + <Caret Line="33" Column="34"/> </Position1> <Position2> <Filename Value="Physikunit.pas"/> - <Caret Line="1237" Column="13" TopLine="1202"/> + <Caret Line="4" Column="37"/> </Position2> <Position3> <Filename Value="Physikunit.pas"/> - <Caret Line="1146" Column="30" TopLine="968"/> + <Caret Line="207" Column="20" TopLine="184"/> </Position3> <Position4> <Filename Value="Physikunit.pas"/> - <Caret Line="202" Column="46" TopLine="178"/> + <Caret Line="601" TopLine="561"/> </Position4> <Position5> <Filename Value="Physikunit.pas"/> - <Caret Line="125" Column="25" TopLine="98"/> + <Caret Line="100" Column="41" TopLine="75"/> </Position5> <Position6> <Filename Value="Physikunit.pas"/> - <Caret Line="705" Column="38" TopLine="641"/> + <Caret Line="523" Column="82" TopLine="521"/> </Position6> <Position7> <Filename Value="Physikunit.pas"/> - <Caret Line="715" Column="17" TopLine="691"/> + <Caret Line="91" Column="73" TopLine="78"/> </Position7> <Position8> <Filename Value="Physikunit.pas"/> - <Caret Line="742" Column="23" TopLine="724"/> + <Caret Line="597" Column="78" TopLine="559"/> </Position8> <Position9> <Filename Value="Physikunit.pas"/> - <Caret Line="941" Column="26" TopLine="851"/> + <Caret Line="646" TopLine="602"/> </Position9> <Position10> <Filename Value="Physikunit.pas"/> - <Caret Line="125" TopLine="114"/> + <Caret Line="656" TopLine="628"/> </Position10> <Position11> <Filename Value="Physikunit.pas"/> - <Caret Line="725" Column="41" TopLine="692"/> + <Caret Line="707" Column="74" TopLine="687"/> </Position11> <Position12> <Filename Value="Physikunit.pas"/> - <Caret Line="24" Column="10" TopLine="24"/> + <Caret Line="80" TopLine="80"/> </Position12> <Position13> <Filename Value="Physikunit.pas"/> - <Caret Line="203" Column="50" TopLine="183"/> + <Caret Line="685" Column="31" TopLine="654"/> </Position13> <Position14> <Filename Value="Physikunit.pas"/> - <Caret Line="721" TopLine="692"/> + <Caret Line="123" Column="111" TopLine="97"/> </Position14> <Position15> <Filename Value="Physikunit.pas"/> - <Caret Line="734" TopLine="714"/> + <Caret Line="700" Column="60" TopLine="669"/> </Position15> <Position16> <Filename Value="Physikunit.pas"/> - <Caret Line="731" Column="53" TopLine="714"/> + <Caret Line="746" TopLine="658"/> </Position16> <Position17> <Filename Value="Physikunit.pas"/> - <Caret Line="724" Column="22" TopLine="692"/> + <Caret Line="759" Column="93" TopLine="739"/> </Position17> <Position18> <Filename Value="Physikunit.pas"/> - <Caret Line="124" Column="38" TopLine="89"/> + <Caret Line="772" TopLine="748"/> </Position18> <Position19> <Filename Value="Physikunit.pas"/> - <Caret Line="125" Column="38" TopLine="125"/> + <Caret Line="781" Column="102" TopLine="761"/> </Position19> <Position20> <Filename Value="Physikunit.pas"/> - <Caret Line="957" Column="38" TopLine="925"/> + <Caret Line="794" Column="8" TopLine="784"/> </Position20> <Position21> <Filename Value="Physikunit.pas"/> - <Caret Line="641" TopLine="560"/> + <Caret Line="830" Column="37" TopLine="810"/> </Position21> <Position22> <Filename Value="Physikunit.pas"/> - <Caret Line="101" TopLine="77"/> + <Caret Line="841" Column="20" TopLine="821"/> </Position22> <Position23> <Filename Value="Physikunit.pas"/> - <Caret Line="100" Column="15" TopLine="80"/> + <Caret Line="873" Column="149" TopLine="868"/> </Position23> <Position24> <Filename Value="Physikunit.pas"/> - <Caret Line="661" Column="87" TopLine="520"/> + <Caret Line="152" Column="127" TopLine="132"/> </Position24> <Position25> <Filename Value="Physikunit.pas"/> - <Caret Line="641" Column="52" TopLine="521"/> + <Caret Line="890" Column="83" TopLine="870"/> </Position25> <Position26> <Filename Value="Physikunit.pas"/> - <Caret Line="100" Column="62" TopLine="80"/> + <Caret Line="930" Column="24" TopLine="910"/> </Position26> <Position27> <Filename Value="Physikunit.pas"/> - <Caret Line="802" Column="120" TopLine="765"/> + <Caret Line="977" TopLine="966"/> </Position27> <Position28> <Filename Value="Physikunit.pas"/> - <Caret Line="794" Column="66" TopLine="765"/> + <Caret Line="177" Column="243" TopLine="157"/> </Position28> <Position29> <Filename Value="Physikunit.pas"/> - <Caret Line="128" Column="59" TopLine="110"/> + <Caret Line="1127" Column="38" TopLine="1100"/> </Position29> <Position30> <Filename Value="Physikunit.pas"/> - <Caret Line="995" Column="49" TopLine="1078"/> + <Caret Line="1161" TopLine="1139"/> </Position30> </JumpHistory> </ProjectSession> |