diff +time/+sbp/sbpintime.m @ 365:f908ce064f35

Added SBP in time timestepper.
author Martin Almquist <martin.almquist@it.uu.se>
date Tue, 24 Jan 2017 14:01:18 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/+time/+sbp/sbpintime.m	Tue Jan 24 14:01:18 2017 +0100
@@ -0,0 +1,28 @@
+% Takes one time step of size k using the sbp in time method
+% starting from v_0 and where
+% M v_t = E_r'*v + f(t)
+function v = sbpintime(v, t, tvec, penalty, f, Nblock, E_r,...
+                     L, U, P, Q)
+
+% Pick out last time step
+v_r = E_r'*v;  
+
+% Form RHS
+RHS = penalty*v_r; 
+
+% Build vector of f-values and add to RHS
+if(~isempty(f))
+    fvec = [];
+    for i = 1:Nblock
+        fvec = [fvec;f(t+tvec(i))];
+    end
+    RHS = RHS + fvec;
+end
+
+% Solve system
+%v = M\RHS;
+RHS = P*RHS;
+RHS = L\RHS;
+v = U\RHS;
+v = Q*v; 
+