summaryrefslogtreecommitdiff
path: root/rk4.inc
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2015-08-04 15:55:25 +0200
committerErich Eckner <git@eckner.net>2015-08-04 15:55:25 +0200
commit9a20545e798a68ebd73f92ca0f19a2cfbebf5983 (patch)
tree5dae20a84b7c2127d0f182f99a2f79c554304517 /rk4.inc
parente425856940fd5237241d315c26d61b5f41e23ad4 (diff)
downloadPlasmapropagation-9a20545e798a68ebd73f92ca0f19a2cfbebf5983.tar.xz
alle Runge-Kuttas in .inc ausgelagert,
minimales dT auf dX gesetzt (sonst Bug z.B. in AY)
Diffstat (limited to 'rk4.inc')
-rw-r--r--rk4.inc41
1 files changed, 41 insertions, 0 deletions
diff --git a/rk4.inc b/rk4.inc
new file mode 100644
index 0000000..4b1cc86
--- /dev/null
+++ b/rk4.inc
@@ -0,0 +1,41 @@
+ felders[2].liKo(
+ felders[aktuelleFelder],
+ felders[aktuelleFelder],
+ 0.5 * dT
+ );
+ felders[2].berechneAbleitungen(dX,iDX,pDNMax);
+
+ if pruefeMaxDT(2,dTMax,dT,dTMin) then
+ continue;
+
+ felders[3].liKo(
+ felders[aktuelleFelder],
+ felders[2],
+ 0.5 * dT
+ );
+ felders[3].berechneAbleitungen(dX,iDX,pDNMax);
+
+ if pruefeMaxDT(3,dTMax,dT,dTMin) then
+ continue;
+
+ felders[4].liKo(
+ felders[aktuelleFelder],
+ felders[3],
+ 1 * dT
+ );
+ felders[4].berechneAbleitungen(dX,iDX,pDNMax);
+
+ if pruefeMaxDT(4,dTMax,dT,dTMin) then
+ continue;
+
+ felders[1-aktuelleFelder].liKo(
+ felders[aktuelleFelder],
+ felders[aktuelleFelder],
+ felders[2],
+ felders[3],
+ felders[4],
+ 1/6 * dT,
+ 1/3 * dT,
+ 1/3 * dT,
+ 1/6 * dT
+ );