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