diff options
author | Erich Eckner <git@eckner.net> | 2015-12-09 11:11:31 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2015-12-09 11:11:31 +0100 |
commit | 56fc646e63363dbbe5f4e5b6e3f0ac3e116fe729 (patch) | |
tree | 59915dc989a12add97f16d8f4dbcd17b24c3c6c8 | |
parent | 39e39a351450a0c22ee3d6d81fb39e0c40714e78 (diff) | |
download | Plasmapropagation-56fc646e63363dbbe5f4e5b6e3f0ac3e116fe729.tar.xz |
zwei Optionen der Dichtenichtnegativierung: Skalieren und Einzelklau
-rw-r--r-- | Physikunit.pas | 62 | ||||
-rw-r--r-- | Plasmapropagation.lps | 157 | ||||
-rwxr-xr-x | genLikoInc | 2 | ||||
-rw-r--r-- | input.epost | 143 | ||||
-rw-r--r-- | input.plap | 33 | ||||
-rw-r--r-- | linearkombination.inc | 2 |
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> @@ -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 @@ -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} |