summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Physikunit.pas17
-rw-r--r--Plasmapropagation.lps66
-rwxr-xr-xgenLikoInc2
-rw-r--r--linearkombination.inc2
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>
diff --git a/genLikoInc b/genLikoInc
index 2a16dcb..8010e44 100755
--- a/genLikoInc
+++ b/genLikoInc
@@ -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}