Mercurial > repos > public > sbplib
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