diff +time/ExplicitRungeKuttaDiscreteData.m @ 890:c70131daaa6e feature/d1_staggered

Merge with feature/poroelastic.
author Martin Almquist <malmquist@stanford.edu>
date Wed, 21 Nov 2018 18:29:29 -0800
parents 44c46bd6913a 4c7532db42cd
children
line wrap: on
line diff
--- a/+time/ExplicitRungeKuttaDiscreteData.m	Sun Nov 04 12:36:30 2018 -0800
+++ b/+time/ExplicitRungeKuttaDiscreteData.m	Wed Nov 21 18:29:29 2018 -0800
@@ -3,7 +3,6 @@
         D
         S           % Function handle for time-dependent data
         data        % Matrix of data vectors, one column per stage
-        F
         k
         t
         v
@@ -57,7 +56,13 @@
             a = obj.a;
             b = obj.b;
             c = obj.c;
-            s = obj.s; 
+            s = obj.s;
+        end
+
+        % Returns quadrature weights for stages in one time step
+        function quadWeights = getTimeStepQuadrature(obj)
+            [~, b] = obj.getTableau();
+            quadWeights = obj.k*b;
         end
 
         function obj = step(obj)
@@ -82,12 +87,12 @@
                 K(:,i) = D*U(:,i);
                 obj.T(i) = obj.t + c(i)*dt;
 
-                % Data from continuos function and discrete time-points.
+                % Data from continuous function and discrete time-points.
                 if ~isempty(S)
-                    K(:,i) = K(:,i) + S(obj.T(i)); 
+                    K(:,i) = K(:,i) + S(obj.T(i));
                 end
                 if ~isempty(data)
-                    K(:,i) = K(:,i) + data(:,obj.n*s + i); 
+                    K(:,i) = K(:,i) + data(:,obj.n*s + i);
                 end
 
             end
@@ -102,11 +107,11 @@
 
 
     methods (Static)
-        function k = getTimeStep(lambda)
-
-            switch obj.order
+        function k = getTimeStep(lambda, order)
+            default_arg('order', 4);
+            switch order
             case 4
-                k = rk4.get_rk4_time_step(lambda);
+                k = time.rk4.get_rk4_time_step(lambda);
             otherwise
                 error('Time-step function not available for this order');
             end