diff options
-rw-r--r-- | Physikunit.pas | 17 | ||||
-rw-r--r-- | Plasmapropagation.lps | 66 | ||||
-rwxr-xr-x | genLikoInc | 2 | ||||
-rw-r--r-- | linearkombination.inc | 2 |
4 files changed, 49 insertions, 38 deletions
diff --git a/Physikunit.pas b/Physikunit.pas index fc2dcd2..bbd63f1 100644 --- a/Physikunit.pas +++ b/Physikunit.pas @@ -11,11 +11,14 @@ unit Physikunit; // 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 dnZwischenRKSchritten} // nach jeder LiKo Dichten nicht negativ machen { $DEFINE negativeDichteueberwachung} // prüfen, ob die Dichten negativ werden { $DEFINE exzessiveArrayBereichsTests} // zeitaufwändige(!) Array-Bereichstest für fftw +{ $DEFINE laengenSindZweierpotenzen} // Laengen auf Zweierpotenzen runden (ggf. günstiger für fft) + interface uses @@ -1554,6 +1557,7 @@ var begin inherited create; +{$IFDEF laengenSindZweierpotenzen} i:=aP; aP:=round(power(2,ceil(ln(aP-0.5)/ln(2)))); deltaP:=deltaP*(i-1)/(aP-1); @@ -1561,6 +1565,7 @@ begin i:=aX; aX:=round(power(2,ceil(ln(aX+4-0.5)/ln(2)))); // zwei Felder links und rechts extra für Randbedingungen deltaX:=deltaX*(i-1)/(aX-4-1); +{$ENDIF} abbruch:=false; simulation:=besitzer; @@ -1663,7 +1668,13 @@ begin until abbruch; aktuelleFelder:=1-aktuelleFelder; - {$IFDEF negativeDichteueberwachung} +{$IF DEFINED(DichteNichtnegativieren) and not DEFINED(dnZwischenRKSchritten)} + felders[aktuelleFelder].nichtnegativieren; +{$ENDIF} +{$IFDEF negativeDichteueberwachung} +{$IFNDEF DichteNichtnegativieren} + {$WARNING Negative Dichte wird überwacht, aber nicht korrigiert - das führt wahrscheinlich zum Abbruch!} +{$ENDIF} for i:=0 to length(felders[aktuelleFelder].impulsraum)-1 do for j:=0 to felders[aktuelleFelder].aX*felders[aktuelleFelder].aP-1 do if (felders[aktuelleFelder].impulsraum[i,false]+j)^<0 then begin @@ -1674,7 +1685,7 @@ begin pro.schreibe(' n = ' +floattostr((felders[aktuelleFelder].impulsraum[i,false]+j)^),true); abbrechen; end; - {$ENDIF} +{$ENDIF} t:=t+dT; end; @@ -2164,7 +2175,7 @@ end; function fourierWindow(x: extended): extended; begin - result:=exp(-sqr(sqr(sqr(3*x)))); + result:=exp(-sqr(3*x)); end; initialization diff --git a/Plasmapropagation.lps b/Plasmapropagation.lps index 64406c4..cdb7b0d 100644 --- a/Plasmapropagation.lps +++ b/Plasmapropagation.lps @@ -17,9 +17,9 @@ <IsPartOfProject Value="True"/> <IsVisibleTab Value="True"/> <EditorIndex Value="1"/> - <TopLine Value="193"/> - <CursorPos Y="216"/> - <FoldState Value=" T7i8MO3 T3mX0{D5 pjYmB0R[944k20R6]9RkT0}h3]A1o60{j4]AgnA0V2 pkJlF0L[I4akQ03]IpVq10H023\"/> + <TopLine Value="1658"/> + <CursorPos X="14" Y="1676"/> + <FoldState Value=" T7iBMO3 T3ma0{D5 pjYmB0R[944k20R6]9RkT0}h3]A1o60{j4]AgnA0V2 pkJlF0L31]UpYtZ0H5P"/> <UsageCount Value="200"/> <Loaded Value="True"/> </Unit1> @@ -44,7 +44,7 @@ <IsPartOfProject Value="True"/> <EditorIndex Value="-1"/> <TopLine Value="226"/> - <UsageCount Value="175"/> + <UsageCount Value="176"/> </Unit4> <Unit5> <Filename Value="linearkombinationen.inc"/> @@ -52,7 +52,7 @@ <EditorIndex Value="-1"/> <TopLine Value="52"/> <CursorPos X="11" Y="6"/> - <UsageCount Value="138"/> + <UsageCount Value="139"/> </Unit5> <Unit6> <Filename Value="input.epost"/> @@ -171,121 +171,121 @@ <JumpHistory Count="30" HistoryIndex="29"> <Position1> <Filename Value="Physikunit.pas"/> - <Caret Line="1370" Column="33" TopLine="1318"/> + <Caret Line="2085" Column="13" TopLine="1460"/> </Position1> <Position2> <Filename Value="Physikunit.pas"/> - <Caret Line="1378" Column="37" TopLine="1351"/> + <Caret Line="1412" Column="93" TopLine="1392"/> </Position2> <Position3> <Filename Value="Physikunit.pas"/> - <Caret Line="1367" Column="33" TopLine="1314"/> + <Caret Line="1449" Column="117" TopLine="1428"/> </Position3> <Position4> <Filename Value="Physikunit.pas"/> - <Caret Line="166" TopLine="110"/> + <Caret Line="2047" Column="32" TopLine="2029"/> </Position4> <Position5> <Filename Value="Physikunit.pas"/> - <Caret Line="1531" TopLine="1512"/> + <Caret Line="1353" Column="27" TopLine="1313"/> </Position5> <Position6> <Filename Value="Physikunit.pas"/> - <Caret Line="1449" Column="72" TopLine="1420"/> + <Caret Line="10" Column="36"/> </Position6> <Position7> <Filename Value="Physikunit.pas"/> - <Caret Line="482" TopLine="214"/> + <Caret Line="1558" Column="39" TopLine="1579"/> </Position7> <Position8> <Filename Value="Physikunit.pas"/> - <Caret Line="2085" Column="13" TopLine="1460"/> + <Caret Line="1350" Column="41" TopLine="1228"/> </Position8> <Position9> <Filename Value="Physikunit.pas"/> - <Caret Line="1412" Column="93" TopLine="1392"/> + <Caret Line="1386" Column="12" TopLine="1356"/> </Position9> <Position10> <Filename Value="Physikunit.pas"/> - <Caret Line="1449" Column="117" TopLine="1428"/> + <Caret Line="1360" Column="31" TopLine="1322"/> </Position10> <Position11> <Filename Value="Physikunit.pas"/> - <Caret Line="2047" Column="32" TopLine="2029"/> + <Caret Line="1399" TopLine="1364"/> </Position11> <Position12> <Filename Value="Physikunit.pas"/> - <Caret Line="1353" Column="27" TopLine="1313"/> + <Caret Line="1364" TopLine="1055"/> </Position12> <Position13> <Filename Value="Physikunit.pas"/> - <Caret Line="10" Column="36"/> + <Caret Line="1557" TopLine="1536"/> </Position13> <Position14> <Filename Value="Physikunit.pas"/> - <Caret Line="1558" Column="39" TopLine="1579"/> + <Caret Line="1407" Column="13" TopLine="1379"/> </Position14> <Position15> <Filename Value="Physikunit.pas"/> - <Caret Line="1350" Column="41" TopLine="1228"/> + <Caret Line="1372" Column="47" TopLine="1327"/> </Position15> <Position16> <Filename Value="Physikunit.pas"/> - <Caret Line="1386" Column="12" TopLine="1356"/> + <Caret Line="2130" Column="35" TopLine="1679"/> </Position16> <Position17> <Filename Value="Physikunit.pas"/> - <Caret Line="1360" Column="31" TopLine="1322"/> </Position17> <Position18> <Filename Value="Physikunit.pas"/> - <Caret Line="1399" TopLine="1364"/> + <Caret Line="212" Column="15" TopLine="179"/> </Position18> <Position19> <Filename Value="Physikunit.pas"/> - <Caret Line="1364" TopLine="1055"/> + <Caret Line="2121" Column="41" TopLine="1429"/> </Position19> <Position20> <Filename Value="Physikunit.pas"/> - <Caret Line="1557" TopLine="1536"/> </Position20> <Position21> <Filename Value="Physikunit.pas"/> - <Caret Line="1407" Column="13" TopLine="1379"/> + <Caret Line="228" Column="23" TopLine="188"/> </Position21> <Position22> <Filename Value="Physikunit.pas"/> - <Caret Line="1372" Column="47" TopLine="1327"/> + <Caret Line="216" TopLine="193"/> </Position22> <Position23> <Filename Value="Physikunit.pas"/> - <Caret Line="2130" Column="35" TopLine="1679"/> + <Caret Line="2100" Column="22" TopLine="1613"/> </Position23> <Position24> <Filename Value="Physikunit.pas"/> + <Caret Line="215" Column="32" TopLine="193"/> </Position24> <Position25> <Filename Value="Physikunit.pas"/> - <Caret Line="212" Column="15" TopLine="179"/> + <Caret Line="2165" TopLine="1548"/> </Position25> <Position26> <Filename Value="Physikunit.pas"/> - <Caret Line="2121" Column="41" TopLine="1429"/> + <Caret Line="1561" Column="20" TopLine="1548"/> </Position26> <Position27> <Filename Value="Physikunit.pas"/> + <Caret Line="19" Column="10"/> </Position27> <Position28> <Filename Value="Physikunit.pas"/> - <Caret Line="228" Column="23" TopLine="188"/> + <Caret Line="1562" Column="26" TopLine="1528"/> </Position28> <Position29> <Filename Value="Physikunit.pas"/> - <Caret Line="216" TopLine="193"/> + <Caret Line="19" Column="3"/> </Position29> <Position30> <Filename Value="Physikunit.pas"/> - <Caret Line="2100" Column="22" TopLine="1613"/> + <Caret Line="1669" Column="25" TopLine="1649"/> </Position30> </JumpHistory> </ProjectSession> @@ -101,7 +101,7 @@ do done echo ";" >> ${file} echo >> ${file} -echo " {\$IFDEF DichteNichtnegativieren}" >> ${file} +echo " {\$IF DEFINED(DichteNichtnegativieren) and DEFINED(dnZwischenRKSchritten)}" >> ${file} echo " nichtnegativieren;" >> ${file} echo " {\$ENDIF}" >> ${file} echo >> ${file} diff --git a/linearkombination.inc b/linearkombination.inc index ccfdd41..6036461 100644 --- a/linearkombination.inc +++ b/linearkombination.inc @@ -259,7 +259,7 @@ begin + fak32*(in32.impulsraum[i,true]+j)^ {$ENDIF}; - {$IFDEF DichteNichtnegativieren} + {$IF DEFINED(DichteNichtnegativieren) and DEFINED(dnZwischenRKSchritten)} nichtnegativieren; {$ENDIF} |