Mercurial > repos > public > sbplib
comparison +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 |
comparison
equal
deleted
inserted
replaced
| 363:8c8fd649bae3 | 365:f908ce064f35 |
|---|---|
| 1 % Takes one time step of size k using the sbp in time method | |
| 2 % starting from v_0 and where | |
| 3 % M v_t = E_r'*v + f(t) | |
| 4 function v = sbpintime(v, t, tvec, penalty, f, Nblock, E_r,... | |
| 5 L, U, P, Q) | |
| 6 | |
| 7 % Pick out last time step | |
| 8 v_r = E_r'*v; | |
| 9 | |
| 10 % Form RHS | |
| 11 RHS = penalty*v_r; | |
| 12 | |
| 13 % Build vector of f-values and add to RHS | |
| 14 if(~isempty(f)) | |
| 15 fvec = []; | |
| 16 for i = 1:Nblock | |
| 17 fvec = [fvec;f(t+tvec(i))]; | |
| 18 end | |
| 19 RHS = RHS + fvec; | |
| 20 end | |
| 21 | |
| 22 % Solve system | |
| 23 %v = M\RHS; | |
| 24 RHS = P*RHS; | |
| 25 RHS = L\RHS; | |
| 26 v = U\RHS; | |
| 27 v = Q*v; | |
| 28 |
