summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2015-12-09 11:11:31 +0100
committerErich Eckner <git@eckner.net>2015-12-09 11:11:31 +0100
commit56fc646e63363dbbe5f4e5b6e3f0ac3e116fe729 (patch)
tree59915dc989a12add97f16d8f4dbcd17b24c3c6c8
parent39e39a351450a0c22ee3d6d81fb39e0c40714e78 (diff)
downloadPlasmapropagation-56fc646e63363dbbe5f4e5b6e3f0ac3e116fe729.tar.xz
zwei Optionen der Dichtenichtnegativierung: Skalieren und Einzelklau
-rw-r--r--Physikunit.pas62
-rw-r--r--Plasmapropagation.lps157
-rwxr-xr-xgenLikoInc2
-rw-r--r--input.epost143
-rw-r--r--input.plap33
-rw-r--r--linearkombination.inc2
6 files changed, 274 insertions, 125 deletions
diff --git a/Physikunit.pas b/Physikunit.pas
index 0ba1418..2a87c63 100644
--- a/Physikunit.pas
+++ b/Physikunit.pas
@@ -6,9 +6,15 @@ unit Physikunit;
{$ERROR This program can be compiled only on/for Unix/Linux based systems.}
{$ENDIF}
-{$DEFINE Dichteueberwachung}
-{$DEFINE negativeDichteueberwachung}
-{ $DEFINE exzessiveArrayBereichsTests}
+{$MACRO on}
+
+// nach einer LiKo negative Dichten entfernen:
+{ $DEFINE DichteNichtnegativieren:=perSkalieren} // insgesamt runter skalieren um negative Dichten aufzufüllen
+{$DEFINE DichteNichtnegativieren:=perEinzelklau} // negative Dichten aus zufälligen Phasenraumpunkten auffüllen
+
+{ $DEFINE negativeDichteueberwachung} // prüfen, ob die Dichten negativ werden
+
+{ $DEFINE exzessiveArrayBereichsTests} // zeitaufwändige(!) Array-Bereichstest für fftw
interface
@@ -132,7 +138,9 @@ type
{$IFDEF exzessiveArrayBereichsTests}
procedure pruefeArrayEnden(fehler: string);
{$ENDIF}
+ {$IFDEF dichteNichtnegativieren}
procedure nichtnegativieren; inline;
+ {$ENDIF}
procedure berechnePhasenraumAbleitungen; inline;
public
emFelder: array[tEMFeldGroesze,boolean] of pDouble; // EM-Felder und deren Zeitableitungen
@@ -171,7 +179,9 @@ type
abbruch: boolean;
dX,iDX,xl,t: double;
kvs: tKnownValues;
+ {$IF dichteNichtnegativieren = perEinzelklau}
impulsRaumPermutationen: array of tLongintArray;
+ {$ENDIF}
procedure abbrechen;
public
@@ -182,7 +192,9 @@ type
destructor destroy; override;
procedure iteriereSchritt(dT: double);
procedure dumpErhaltungsgroeszen;
+ {$IF dichteNichtnegativieren = perEinzelklau}
function gibImpulsRaumPermutation: pTLongintArray;
+ {$ENDIF}
end;
{ tSimulation }
@@ -1349,22 +1361,35 @@ begin
end;
end;
+{$IFDEF dichteNichtnegativieren}
procedure tFelder.nichtnegativieren; // Dichten nicht negativ machen
var
- i,j: longint;
- defizit: double;
- perm: pTLongintArray;
+ i,j: longint;
+ defizit
+ {$IF dichteNichtnegativieren = perSkalieren}
+ ,enfizit
+ {$ENDIF}: double;
+ {$IF dichteNichtnegativieren = perEinzelklau}
+ perm: pTLongintArray;
+ {$ENDIF}
begin
for i:=0 to length(teilchen)-1 do begin
defizit:=0;
+ {$IF dichteNichtnegativieren = perSkalieren}
+ enfizit:=0;
+ {$ENDIF}
for j:=0 to aP*aX-1 do
if (impulsraum[i,false]+j)^ < 0 then begin
defizit:=defizit-(impulsraum[i,false]+j)^;
(impulsraum[i,false]+j)^:=0;
- end;
+ end
+ {$IF dichteNichtnegativieren = perSkalieren}
+ else enfizit:=enfizit+(impulsraum[i,false]+j)^
+ {$ENDIF};
gesamtDefizit:=gesamtDefizit+defizit;
+ {$IF dichteNichtnegativieren = perEinzelklau}
if defizit>0 then begin
perm:=gitter.gibImpulsRaumPermutation;
for j:=0 to aP*aX-1 do begin
@@ -1376,16 +1401,31 @@ begin
end
else if (impulsraum[i,false]+perm^[j])^>0 then begin
defizit:=defizit-(impulsraum[i,false]+perm^[j])^;
- (impulsraum[i,false]+perm^[j])^:=0;
+ (impulsraum[i,false]+perm^[j])^:=0;
end;
end;
end;
if defizit>0 then begin
+ {$ENDIF}
+ {$IF dichteNichtnegativieren = perSkalieren}
+ if enfizit=0 then begin
+ {$ENDIF}
gitter.prot.schreibe('Kann Defizit der Teilchensorte '+inttostr(i+1)+' nicht ausgleichen, '+floattostr(defizit)+' bleibt übrig!',true);
+ gitter.prot.schreibe('Kann Defizit der Teilchensorte '+inttostr(i+1)+' nicht ausgleichen, es ist nichts positives mehr übrig!',true);
gitter.abbrechen;
+ continue;
end;
+
+ {$IF dichteNichtnegativieren = perSkalieren}
+ enfizit:=1-defizit/enfizit;
+
+ if defizit>0 then
+ for j:=0 to aP*aX-1 do
+ (impulsraum[i,false]+j)^:=(impulsraum[i,false]+j)^ * enfizit;
+ {$ENDIF}
end;
end;
+{$ENDIF}
procedure tFelder.berechnePhasenraumAbleitungen;
var
@@ -1535,9 +1575,11 @@ begin
end{of Case};
xl:=dX/2;
- setlength(impulsRaumPermutationen,10);
+{$IF dichteNichtnegativieren = perEinzelklau}
+ setlength(impulsRaumPermutationen,100);
for i:=0 to length(impulsRaumPermutationen)-1 do
impulsRaumPermutationen[i]:=permutation(aX*aP);
+{$ENDIF}
for i:=0 to length(felders)-1 do
felders[i]:=tFelder.create(aX,aP,deltaX,deltaP,teilchen,lichter,self);
@@ -1633,10 +1675,12 @@ begin
felders[aktuelleFelder].dumpErhaltungsgroeszen;
end;
+{$IF dichteNichtnegativieren = perEinzelklau}
function tGitter.gibImpulsRaumPermutation: pTLongintArray;
begin
result:=@(impulsRaumPermutationen[random(length(impulsRaumPermutationen))]);
end;
+{$ENDIF}
// tSimulation *****************************************************************
diff --git a/Plasmapropagation.lps b/Plasmapropagation.lps
index 2ae0fd8..997f683 100644
--- a/Plasmapropagation.lps
+++ b/Plasmapropagation.lps
@@ -3,12 +3,12 @@
<ProjectSession>
<Version Value="9"/>
<BuildModes Active="Default"/>
- <Units Count="21">
+ <Units Count="22">
<Unit0>
<Filename Value="Plasmapropagation.lpr"/>
<IsPartOfProject Value="True"/>
- <TopLine Value="19"/>
- <CursorPos Y="48"/>
+ <TopLine Value="29"/>
+ <CursorPos Y="33"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit0>
@@ -17,9 +17,9 @@
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
- <TopLine Value="120"/>
- <CursorPos Y="780"/>
- <FoldState Value=" T3lN0{F5 pjdmK0G[94DkB0{d3 piclb0{-4]KgnT0f3]9BkH031 pp5pE0G2 T0?OPc071F311_"/>
+ <TopLine Value="1394"/>
+ <CursorPos Y="1420"/>
+ <FoldState Value=" T7i8MO311 T3mP0{D5 pjYmB0R[944k20R6]9RkT0}h3]A1o60{j4]AgnA0V011]B0lF0L[K4akQ032 ppVq10H3z"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit1>
@@ -28,14 +28,14 @@
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="20" Y="8"/>
- <UsageCount Value="176"/>
+ <UsageCount Value="200"/>
</Unit2>
<Unit3>
<Filename Value="input.plap"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="3"/>
- <CursorPos X="33" Y="23"/>
- <UsageCount Value="175"/>
+ <CursorPos X="19" Y="12"/>
+ <UsageCount Value="200"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="None"/>
</Unit3>
@@ -43,39 +43,40 @@
<Filename Value="linearkombination.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
- <TopLine Value="153"/>
- <UsageCount Value="123"/>
+ <TopLine Value="226"/>
+ <UsageCount Value="175"/>
</Unit4>
<Unit5>
<Filename Value="linearkombinationen.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
- <TopLine Value="25"/>
- <UsageCount Value="86"/>
+ <TopLine Value="52"/>
+ <CursorPos X="11" Y="6"/>
+ <UsageCount Value="138"/>
</Unit5>
<Unit6>
<Filename Value="input.epost"/>
- <EditorIndex Value="-1"/>
- <TopLine Value="22"/>
- <CursorPos X="26" Y="29"/>
+ <EditorIndex Value="4"/>
+ <TopLine Value="58"/>
+ <CursorPos X="23" Y="40"/>
<UsageCount Value="100"/>
+ <Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="None"/>
</Unit6>
<Unit7>
<Filename Value="../units/matheunit.pas"/>
- <EditorIndex Value="2"/>
- <TopLine Value="19"/>
- <CursorPos X="66" Y="48"/>
- <FoldState Value=" T3iA05B pj0jV034 piaj60U6 plLmM041p"/>
- <UsageCount Value="28"/>
- <Loaded Value="True"/>
+ <EditorIndex Value="-1"/>
+ <TopLine Value="343"/>
+ <CursorPos X="21" Y="358"/>
+ <UsageCount Value="40"/>
</Unit7>
<Unit8>
<Filename Value="../units/lowlevelunit.pas"/>
- <EditorIndex Value="-1"/>
- <TopLine Value="626"/>
- <CursorPos X="27" Y="657"/>
- <UsageCount Value="10"/>
+ <EditorIndex Value="2"/>
+ <TopLine Value="866"/>
+ <CursorPos X="96" Y="886"/>
+ <UsageCount Value="15"/>
+ <Loaded Value="True"/>
</Unit8>
<Unit9>
<Filename Value="../units/mystringlistunit.pas"/>
@@ -83,64 +84,65 @@
<TopLine Value="367"/>
<CursorPos X="17" Y="390"/>
<FoldState Value=" T3i3075 piZjD0WQ"/>
- <UsageCount Value="2"/>
+ <UsageCount Value="8"/>
</Unit9>
<Unit10>
<Filename Value="rk14.inc"/>
<EditorIndex Value="-1"/>
- <UsageCount Value="2"/>
+ <UsageCount Value="8"/>
</Unit10>
<Unit11>
<Filename Value="rk1210.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="492"/>
<CursorPos X="28" Y="565"/>
- <UsageCount Value="3"/>
+ <UsageCount Value="9"/>
</Unit11>
<Unit12>
<Filename Value="rk1412.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="640"/>
<CursorPos X="3" Y="676"/>
- <UsageCount Value="9"/>
+ <UsageCount Value="5"/>
</Unit12>
<Unit13>
<Filename Value="rk108.inc"/>
<EditorIndex Value="-1"/>
<CursorPos X="28" Y="8"/>
- <UsageCount Value="3"/>
+ <UsageCount Value="9"/>
</Unit13>
<Unit14>
<Filename Value="rk3_8.inc"/>
<EditorIndex Value="-1"/>
- <UsageCount Value="10"/>
+ <CursorPos X="78" Y="16"/>
+ <UsageCount Value="9"/>
</Unit14>
<Unit15>
<Filename Value="/usr/lib/fpc/src/rtl/objpas/math.pp"/>
<EditorIndex Value="-1"/>
<TopLine Value="559"/>
<CursorPos X="14" Y="568"/>
- <UsageCount Value="7"/>
+ <UsageCount Value="3"/>
</Unit15>
<Unit16>
<Filename Value="../units/fftw_l.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="70"/>
<CursorPos Y="85"/>
- <UsageCount Value="14"/>
+ <UsageCount Value="10"/>
</Unit16>
<Unit17>
<Filename Value="../units/fftw_s.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="79"/>
<CursorPos X="29" Y="96"/>
- <UsageCount Value="9"/>
+ <UsageCount Value="5"/>
</Unit17>
<Unit18>
<Filename Value="../units/fftw.pas"/>
<EditorIndex Value="-1"/>
- <TopLine Value="67"/>
- <CursorPos X="60" Y="95"/>
+ <TopLine Value="127"/>
+ <CursorPos X="86" Y="127"/>
<UsageCount Value="9"/>
</Unit18>
<Unit19>
@@ -148,133 +150,144 @@
<EditorIndex Value="-1"/>
<TopLine Value="295"/>
<CursorPos X="3" Y="315"/>
- <UsageCount Value="10"/>
+ <UsageCount Value="6"/>
</Unit19>
<Unit20>
<Filename Value="genLikoInc"/>
<EditorIndex Value="-1"/>
<TopLine Value="65"/>
<CursorPos X="39" Y="86"/>
- <UsageCount Value="10"/>
+ <UsageCount Value="6"/>
<DefaultSyntaxHighlighter Value="None"/>
</Unit20>
+ <Unit21>
+ <Filename Value="../epost/epostunit.pas"/>
+ <EditorIndex Value="-1"/>
+ <TopLine Value="1165"/>
+ <CursorPos X="46" Y="982"/>
+ <UsageCount Value="6"/>
+ </Unit21>
</Units>
- <JumpHistory Count="29" HistoryIndex="28">
+ <JumpHistory Count="30" HistoryIndex="29">
<Position1>
- <Filename Value="Physikunit.pas"/>
- <Caret Line="984" Column="19" TopLine="952"/>
+ <Filename Value="../units/lowlevelunit.pas"/>
+ <Caret Line="881" Column="18" TopLine="861"/>
</Position1>
<Position2>
- <Filename Value="Physikunit.pas"/>
- <Caret Line="125" Column="37" TopLine="106"/>
+ <Filename Value="../units/lowlevelunit.pas"/>
+ <Caret Line="857" Column="29" TopLine="839"/>
</Position2>
<Position3>
- <Filename Value="Physikunit.pas"/>
- <Caret Line="1001" Column="8" TopLine="1496"/>
+ <Filename Value="Plasmapropagation.lpr"/>
+ <Caret Line="42" Column="26" TopLine="20"/>
</Position3>
<Position4>
- <Filename Value="Physikunit.pas"/>
- <Caret TopLine="55"/>
+ <Filename Value="Plasmapropagation.lpr"/>
+ <Caret Line="48" Column="55" TopLine="21"/>
</Position4>
<Position5>
<Filename Value="Physikunit.pas"/>
- <Caret Line="57" Column="38" TopLine="36"/>
+ <Caret Line="1365" Column="109" TopLine="1317"/>
</Position5>
<Position6>
<Filename Value="Physikunit.pas"/>
- <Caret Line="64" Column="75" TopLine="36"/>
</Position6>
<Position7>
<Filename Value="Physikunit.pas"/>
- <Caret Line="84" Column="39" TopLine="51"/>
+ <Caret Line="1361" Column="60" TopLine="1317"/>
</Position7>
<Position8>
<Filename Value="Physikunit.pas"/>
- <Caret Line="86" Column="145" TopLine="53"/>
+ <Caret Line="1632" Column="75" TopLine="1379"/>
</Position8>
<Position9>
<Filename Value="Physikunit.pas"/>
- <Caret Line="142" Column="48" TopLine="109"/>
+ <Caret Line="1370" Column="33" TopLine="1318"/>
</Position9>
<Position10>
<Filename Value="Physikunit.pas"/>
- <Caret Line="153" Column="226" TopLine="120"/>
+ <Caret Line="1378" Column="37" TopLine="1351"/>
</Position10>
<Position11>
<Filename Value="Physikunit.pas"/>
- <Caret Line="1107" Column="34" TopLine="1087"/>
+ <Caret Line="1367" Column="33" TopLine="1314"/>
</Position11>
<Position12>
<Filename Value="Physikunit.pas"/>
- <Caret Line="1089" Column="21" TopLine="1019"/>
+ <Caret Line="166" TopLine="110"/>
</Position12>
<Position13>
<Filename Value="Physikunit.pas"/>
- <Caret Line="153" Column="199" TopLine="133"/>
+ <Caret Line="1531" TopLine="1512"/>
</Position13>
<Position14>
<Filename Value="Physikunit.pas"/>
- <Caret Line="1585" Column="124" TopLine="1539"/>
+ <Caret Line="1449" Column="72" TopLine="1420"/>
</Position14>
<Position15>
<Filename Value="Physikunit.pas"/>
- <Caret Line="1151" Column="30" TopLine="1088"/>
+ <Caret Line="482" TopLine="214"/>
</Position15>
<Position16>
<Filename Value="Physikunit.pas"/>
- <Caret Line="155" Column="30" TopLine="135"/>
+ <Caret Line="2085" Column="13" TopLine="1460"/>
</Position16>
<Position17>
<Filename Value="Physikunit.pas"/>
- <Caret Line="172" Column="29" TopLine="139"/>
+ <Caret Line="1412" Column="93" TopLine="1392"/>
</Position17>
<Position18>
<Filename Value="Physikunit.pas"/>
- <Caret Line="1233" Column="4" TopLine="560"/>
+ <Caret Line="1449" Column="117" TopLine="1428"/>
</Position18>
<Position19>
<Filename Value="Physikunit.pas"/>
- <Caret Line="1617" Column="20" TopLine="1132"/>
+ <Caret Line="2047" Column="32" TopLine="2029"/>
</Position19>
<Position20>
<Filename Value="Physikunit.pas"/>
- <Caret Line="1609" TopLine="1002"/>
+ <Caret Line="1353" Column="27" TopLine="1313"/>
</Position20>
<Position21>
<Filename Value="Physikunit.pas"/>
- <Caret Line="1132" TopLine="1097"/>
+ <Caret Line="10" Column="36"/>
</Position21>
<Position22>
<Filename Value="Physikunit.pas"/>
- <Caret Line="1134" Column="43" TopLine="560"/>
+ <Caret Line="1558" Column="39" TopLine="1579"/>
</Position22>
<Position23>
<Filename Value="Physikunit.pas"/>
- <Caret Line="642" Column="79" TopLine="617"/>
+ <Caret Line="1350" Column="41" TopLine="1228"/>
</Position23>
<Position24>
<Filename Value="Physikunit.pas"/>
- <Caret Line="564" Column="49" TopLine="479"/>
+ <Caret Line="1386" Column="12" TopLine="1356"/>
</Position24>
<Position25>
<Filename Value="Physikunit.pas"/>
+ <Caret Line="1360" Column="31" TopLine="1322"/>
</Position25>
<Position26>
<Filename Value="Physikunit.pas"/>
- <Caret Line="125" Column="37" TopLine="92"/>
+ <Caret Line="1399" TopLine="1364"/>
</Position26>
<Position27>
<Filename Value="Physikunit.pas"/>
- <Caret Line="156" Column="37" TopLine="123"/>
+ <Caret Line="1364" TopLine="1055"/>
</Position27>
<Position28>
<Filename Value="Physikunit.pas"/>
- <Caret Line="996" Column="37" TopLine="472"/>
+ <Caret Line="1557" TopLine="1536"/>
</Position28>
<Position29>
<Filename Value="Physikunit.pas"/>
- <Caret Line="1217" Column="37" TopLine="570"/>
+ <Caret Line="1407" Column="13" TopLine="1379"/>
</Position29>
+ <Position30>
+ <Filename Value="Physikunit.pas"/>
+ <Caret Line="1372" Column="47" TopLine="1327"/>
+ </Position30>
</JumpHistory>
</ProjectSession>
</CONFIG>
diff --git a/genLikoInc b/genLikoInc
index e4e49d6..2a16dcb 100755
--- a/genLikoInc
+++ b/genLikoInc
@@ -101,7 +101,7 @@ do
done
echo ";" >> ${file}
echo >> ${file}
-echo " {\$IFDEF Dichteueberwachung}" >> ${file}
+echo " {\$IFDEF DichteNichtnegativieren}" >> ${file}
echo " nichtnegativieren;" >> ${file}
echo " {\$ENDIF}" >> ${file}
echo >> ${file}
diff --git a/input.epost b/input.epost
index 40b67a6..4a14358 100644
--- a/input.epost
+++ b/input.epost
@@ -3,6 +3,9 @@
# Führende und folgende Leerzeichen werden ignoriert.
# Leere oder mit # beginnende Zeilen werden ignoriert.
+ohne Logdateien
+#ohne Bildschirmausgaben
+
Palette
Name: erweiterter Regenbogen
ffffff
@@ -22,13 +25,101 @@ Palette
0000ff
Ende
+Palette
+ Name: monoblau
+ 000000
+ ff0000
+Ende
+
+Palette
+ Name: monogelb
+ 000000
+ 00ffff
+Ende
+
+!setze $iBereich: 0..4
+!setze $jBereich: 0..99
+
+#!setze $iBereich: 0
+#!setze $jBereich: 00
+
Threadanzahl: 11
+externer Befehl: rm /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/*
+externer Befehl: rm /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Videos/*
+
+sequentiell lesen
+
+!Schleife: $spezies: 1 2
+
+!Schleife: $i: $iBereich
+!Schleife: $j: $jBereich
+
+Daten einlesen Phasenraum$spezies-$i-$j
+ Genauigkeit: double
+ PhaseSpace-Datei: /nfs/synologynfs/erich/Plasmapropagation/Daten/N$spezies-$i-$j_test.dat
+Ende
+
+maximale und minimale Dichten bestimmen Phasenraum$spezies-$i-$j
+
+!Schleifenende
+!Schleifenende
+
+maximale und minimale Dichten angleichen Phasenraum$spezies-0-00
+ !Schleife: $i: $iBereich
+ !Schleife: $j: $jBereich
+ Phasenraum$spezies-$i-$j
+ !Schleifenende
+ !Schleifenende
+Ende
+
+!Schleifenende
+
+!Schleife: $spezies: -beides 1 2
+
+# !Schleife: $spezies: 1 2
+
+!Schleife: $i: $iBereich
+!Schleife: $j: $jBereich
+
+?$spezies = -beides: lineares Bild Phasenraum1-$i-$j
+?$spezies = -beides: Palette: monoblau
+?$spezies = -beides: Daten: 1 Phasenraum2-$i-$j
+?$spezies = -beides: Palette: 1 monogelb
+?$spezies = -beides: Nachbearbeitung: 1 Log: 10^-4
+?$spezies ≠ -beides: lineares Bild Phasenraum$spezies-$i-$j
+?$spezies ≠ -beides: Palette: erweiterter Regenbogen
+
+ Minimaldichte: 10^-4
+ Nachbearbeitung: Log: 10^-4
+ Datei: /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/Phasenraum$spezies-$i$j.test.bmp
+ Schriftgröße: 60
+ Achse: oben 10+
+ Achse: links 2+
+ Achse: unten 10+
+ Achse: rechts 2+
+ Rahmen
+Ende
+
+externer Befehl: convert /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/Phasenraum$spezies-$i$j.test.bmp /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/Phasenraum$spezies-$i$j.test.png&
+
+!Schleifenende
+!Schleifenende
+
+warte auf externe Befehle
+
+externer Befehl: rm /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/*.bmp
+externer Befehl: ffmpeg -r 25 -i /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/Phasenraum$spezies-%03d.test.png /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Videos/Phasenraum$spezies-test.mp4 &
+
+!Schleifenende
+
+Dateiende
+
parallel lesen
-!setze $symFelder: VX1 # AY DAYDT # EX
-!setze $asyFelder: N1 PXRIPPLE1
-!setze $reineInputFelder: PX1 PXSQR1
+!setze $symFelder: AY #VX1 # AY DAYDT # EX
+!setze $asyFelder: N1 N2 #PXRIPPLE1
+!setze $reineInputFelder: #PX1 PXSQR1
!Schleife: $Feld: $reineInputFelder $asyFelder $symFelder
@@ -37,34 +128,34 @@ Daten einlesen
Genauigkeit: double
xmax: 5
tmax: 2
- SpaceTime-Datei: /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Daten/$Feld-*_test.dat
+ SpaceTime-Datei: /nfs/synologynfs/erich/Plasmapropagation/Daten/$Feld-*_test.dat
Ende
!Schleifenende
-!setze $asyBerFelder: PXBreite
+!setze $asyBerFelder: #PXBreite
-Teile VX1 durch N1 zu VX1
-Ende
+#Teile VX1 durch N1 zu VX1
+#Ende
-Teile PX1 durch N1 zu PX1
-Ende
+#Teile PX1 durch N1 zu PX1
+#Ende
-Teile PXRIPPLE1 durch N1 zu PXRIPPLE1
-Ende
+#Teile PXRIPPLE1 durch N1 zu PXRIPPLE1
+#Ende
-Teile PXSQR1 durch N1 zu PXSQR1
-Ende
+#Teile PXSQR1 durch N1 zu PXSQR1
+#Ende
-Multipliziere PX1 mal PX1
- Name: PX1SQR
-Ende
+#Multipliziere PX1 mal PX1
+# Name: PX1SQR
+#Ende
-Linearkombination
- Name: PXBreite
- PXSQR1 1
- PX1SQR -1
-Ende
+#Linearkombination
+# Name: PXBreite
+# PXSQR1 1
+# PX1SQR -1
+#Ende
!Schleife: $Feld: $symFelder $asyFelder $asyBerFelder
@@ -75,7 +166,7 @@ lineares Bild $Feld
?$Feld in $asyFelder $asyBerFelder: maximale und minimale Dichten bestimmen
?$Feld = N1: Minimaldichte: 10^-4
?$Feld = N1: Nachbearbeitung: Log: 10^-4
- Datei: /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Daten/$Feld_test.bmp
+ Datei: /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/$Feld_test.bmp
Schriftgröße: 60
Achse: oben 10+
Achse: links 2+
@@ -83,7 +174,7 @@ lineares Bild $Feld
Achse: rechts 2+
Rahmen
?$Feld ≠ N1: !überspringe: 11
- Legende: /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Daten/$Feld_Legende.bmp
+ Legende: /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/$Feld_Legende.bmp
Schriftgröße: 30
Ausrichtung: senkrecht
Breite: 50
@@ -96,12 +187,12 @@ lineares Bild $Feld
Ende
Ende
-?$Feld = N1: externer Befehl: convert /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Daten/$Feld_Legende.bmp /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Daten/$Feld_Legende.png&
+?$Feld = N1: externer Befehl: convert /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/$Feld_Legende.bmp /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/$Feld_Legende.png&
-externer Befehl: convert /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Daten/$Feld_test.bmp /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Daten/$Feld_test.png&
+externer Befehl: convert /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/$Feld_test.bmp /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/$Feld_test.png&
!Schleifenende
warte auf externe Befehle
-externer Befehl: rm /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Daten/*.bmp
+externer Befehl: rm /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Bilder/*.bmp
diff --git a/input.plap b/input.plap
index 4a699ad..67ba191 100644
--- a/input.plap
+++ b/input.plap
@@ -11,7 +11,7 @@ allgemein
zeitschritt 10^-2 * T
maximalimpuls 5
impulsschritt 2*10^-2
- zeit 2 * T
+ zeit 5 * T
!setze $breite: (5 * λ)
breite $breite
mit Fortschrittsanzeige
@@ -19,15 +19,16 @@ allgemein
allgemeinEnde
ausgaben
- prefix /home_raid/erich/Dokumente/Prograemmchen/Plasmapropagation/Daten/
+ prefix /nfs/synologynfs/erich/Plasmapropagation/Daten/
suffix _test.dat
- felder AX,AY,dAYDT,EX,BZ,Rho1,Rho2,VX1,PX1,PXSqr1,N1,PXRipple1
+ felder AX,AY,dAYDT,EX,BZ,VX1,PX1,PXSqr1,N1,N2,PXRipple1,Rho1,Rho2
+ phasenraum N1,N2
ausgabenEnde
!setze $tFwhm: (2.5 * T)
!setze $tMitte: (1 * T)
-# licht von links 2 * 2^(-2*((t-$tMitte)/$tFwhm)^2) * ω * cos(ω*t) # Zeitableitung des A-Feldes
+licht von links 2 * 2^(-2*((t-$tMitte)/$tFwhm)^2) * ω * cos(ω*t) # Zeitableitung des A-Feldes
!setze $IonenMassenFaktor: (1836.15267245 + 1838.68366158)
@@ -62,18 +63,18 @@ teilchen2
maximales dLnN/dX 10
maximales dLnN/dP 2
impulsbreite 1/20
-# verteilung wie teilchen1
- verteilung stückweise
- 0
- (0.1 + $breite-$profilbreite)/2 - $randbreite
- sin((x - (0.1 + $breite-$profilbreite)/2 - $randbreite)*π/2/$randbreite)^2
- (0.1 + $breite-$profilbreite)/2
- 1
- (0.1 + $breite+$profilbreite)/2
- sin((x - (0.1 + $breite+$profilbreite)/2 + $randbreite)*π/2/$randbreite)^2
- (0.1 + $breite+$profilbreite)/2 + $randbreite
- 0
- stückweiseEnde
+ verteilung wie teilchen1
+# verteilung stückweise
+# 0
+# (0.1 + $breite-$profilbreite)/2 - $randbreite
+# sin((x - (0.1 + $breite-$profilbreite)/2 - $randbreite)*π/2/$randbreite)^2
+# (0.1 + $breite-$profilbreite)/2
+# 1
+# (0.1 + $breite+$profilbreite)/2
+# sin((x - (0.1 + $breite+$profilbreite)/2 + $randbreite)*π/2/$randbreite)^2
+# (0.1 + $breite+$profilbreite)/2 + $randbreite
+# 0
+# stückweiseEnde
teilchen2Ende
Dateiende
diff --git a/linearkombination.inc b/linearkombination.inc
index bca3601..ccfdd41 100644
--- a/linearkombination.inc
+++ b/linearkombination.inc
@@ -259,7 +259,7 @@ begin
+ fak32*(in32.impulsraum[i,true]+j)^
{$ENDIF};
- {$IFDEF Dichteueberwachung}
+ {$IFDEF DichteNichtnegativieren}
nichtnegativieren;
{$ENDIF}