Mercurial > repos > public > sbplib
annotate +time/+sbp/sbpintime.m @ 413:0b87863cb29c feature/diags
Add missing eol
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Tue, 07 Feb 2017 14:03:20 +0100 |
| parents | f908ce064f35 |
| children |
| rev | line source |
|---|---|
|
365
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
1 % Takes one time step of size k using the sbp in time method |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
2 % starting from v_0 and where |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
3 % M v_t = E_r'*v + f(t) |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
4 function v = sbpintime(v, t, tvec, penalty, f, Nblock, E_r,... |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
5 L, U, P, Q) |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
6 |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
7 % Pick out last time step |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
8 v_r = E_r'*v; |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
9 |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
10 % Form RHS |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
11 RHS = penalty*v_r; |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
12 |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
13 % Build vector of f-values and add to RHS |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
14 if(~isempty(f)) |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
15 fvec = []; |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
16 for i = 1:Nblock |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
17 fvec = [fvec;f(t+tvec(i))]; |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
18 end |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
19 RHS = RHS + fvec; |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
20 end |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
21 |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
22 % Solve system |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
23 %v = M\RHS; |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
24 RHS = P*RHS; |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
25 RHS = L\RHS; |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
26 v = U\RHS; |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
27 v = Q*v; |
|
f908ce064f35
Added SBP in time timestepper.
Martin Almquist <martin.almquist@it.uu.se>
parents:
diff
changeset
|
28 |
