changeset 30:cd2e28c5ecd2

Corrected parameter treatment in nonlin timesteppers.
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 28 Sep 2015 13:23:52 +0200
parents 32b39dc44474
children d1f9dd55a2b0
files +time/CdiffNonlin.m +time/Rk4SecondOrderNonlin.m
diffstat 2 files changed, 15 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/+time/CdiffNonlin.m	Mon Sep 28 08:47:28 2015 +0200
+++ b/+time/CdiffNonlin.m	Mon Sep 28 13:23:52 2015 +0200
@@ -14,8 +14,16 @@
     methods
         function obj = CdiffNonlin(D, E, S, k, t0,n0, v, v_prev)
             m = size(D(v),1);
-            default_arg('E',@(v)sparse(m,m));
-            default_arg('S',@(v,t)sparse(m,1));
+            default_arg('E',0);
+            default_arg('S',0);
+
+            if isnumeric(S)
+                S = @(v,t)S;
+            end
+
+            if isnumeric(E)
+                E = @(v)E;
+            end
 
 
             % m = size(D,1);
@@ -45,7 +53,7 @@
         function obj = step(obj)
             D = obj.D(obj.v);
             E = obj.E(obj.v);
-            S = obj.S(obj.v);
+            S = obj.S(obj.v,obj.t);
 
             m = size(D,1);
             I = speye(m);
--- a/+time/Rk4SecondOrderNonlin.m	Mon Sep 28 08:47:28 2015 +0200
+++ b/+time/Rk4SecondOrderNonlin.m	Mon Sep 28 13:23:52 2015 +0200
@@ -19,12 +19,12 @@
             default_arg('S',0);
             default_arg('E',0);
 
-            if isnumeric(S) && S == 0
-                S = @(v,t)0;
+            if isnumeric(S)
+                S = @(v,t)S;
             end
 
-            if isnumeric(E) && E == 0
-                E = @(v,t)0;
+            if isnumeric(E)
+                E = @(v)E;
             end
 
             obj.k = k;