Mercurial > repos > public > sbplib
annotate +scheme/Burgers2D.m @ 1031:2ef20d00b386 feature/advectionRV
For easier comparison, return both the first order and residual viscosity when evaluating the residual. Add the first order and residual viscosity to the state of the RungekuttaRV time steppers
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Thu, 17 Jan 2019 10:25:06 +0100 |
parents | a6f34de60044 |
children |
rev | line source |
---|---|
1008
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
1 classdef Burgers2D < scheme.Scheme |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
2 properties |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
3 grid % Physical grid |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
4 order % Order accuracy for the approximation |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
5 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
6 D % Non-stabilized scheme operator |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
7 H % Discrete norm |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
8 H_inv % Norm inverse |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
9 halfnorm_inv % Cell array halfnorm operators |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
10 e_l % Cell array of left boundary operators |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
11 e_r % Cell array of right boundary operators |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
12 d_l % Cell array of left boundary derivative operators |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
13 d_r % Cell array of right boundary derivative operators |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
14 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
15 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
16 methods |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
17 function obj = Burgers2D(g, operator_type, order, dissipation) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
18 if ~isa(g, 'grid.Cartesian') || g.D() ~= 2 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
19 error('Grid must be 2d cartesian'); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
20 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
21 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
22 obj.grid = g; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
23 obj.order = order; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
24 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
25 % Create cell array of 1D operators. For example D1_1d{1} = D1_x, D1_1d{2} = D1_y. |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
26 [Dp_1d, Dm_1d, H_1d, H_inv_1d, d_l_1d, d_r_1d, e_l_1d, e_r_1d, I, DissipationOp_1d] = ... |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
27 obj.assemble1DOperators(g, operator_type, order, dissipation); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
28 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
29 %% 2D-operators |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
30 % D1 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
31 D1_1d{1} = (Dp_1d{1} + Dp_1d{1})/2; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
32 D1_1d{2} = (Dp_1d{2} + Dp_1d{2})/2; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
33 D1_2d = obj.extendOperatorTo2D(D1_1d, I); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
34 D1 = D1_2d{1} + D1_2d{2}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
35 % D2 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
36 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
37 Dp_2d = obj.extendOperatorTo2D(Dp_1d, I); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
38 Dm_2d = obj.extendOperatorTo2D(Dm_1d, I); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
39 D2 = @(viscosity) Dm_2d{1}*spdiag(viscosity)*Dp_2d{1} + Dm_2d{2}*spdiag(viscosity)*Dp_2d{2}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
40 % m = g.size(); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
41 % ind = grid.funcToMatrix(g, 1:g.N()); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
42 % for i = 1:g.D() |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
43 % D2_2d{i} = sparse(zeros(g.N())); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
44 % end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
45 % % x-direction |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
46 % for i = 1:m(2) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
47 % p = ind(:,i); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
48 % D2_2d{1}(p,p) = @(viscosity) D2_1d{1}(viscosity(p)); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
49 % end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
50 % % y-direction |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
51 % for i = 1:m(1) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
52 % p = ind(i,:); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
53 % D2_2d{2}(p,p) = @(viscosity) D2_1d{2}(viscosity(p)); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
54 % end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
55 % D2 = D2_2d{1} + D2_2d{2}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
56 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
57 obj.d_l = obj.extendOperatorTo2D(d_l_1d, I); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
58 obj.d_r = obj.extendOperatorTo2D(d_r_1d, I); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
59 obj.e_l = obj.extendOperatorTo2D(e_l_1d, I); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
60 obj.e_r = obj.extendOperatorTo2D(e_r_1d, I); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
61 obj.H = kron(H_1d{1},H_1d{2}); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
62 obj.H_inv = kron(H_inv_1d{1},H_inv_1d{2}); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
63 obj.halfnorm_inv = obj.extendOperatorTo2D(H_inv_1d, I); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
64 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
65 % Dissipation operator |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
66 switch dissipation |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
67 case 'on' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
68 DissOp_2d = obj.extendOperatorTo2D(DissipationOp_1d, I); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
69 DissOp = DissOp_2d{1} + DissOp_2d{2}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
70 obj.D = @(v, viscosity) -1/2*D1*v.^2 + (D2(viscosity) + max(abs(v))*DissOp)*v; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
71 case 'off' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
72 obj.D = @(v, viscosity) -1/2*D1*v.^2 + D2(viscosity)*v; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
73 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
74 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
75 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
76 % Closure functions return the operators applied to the own doamin to close the boundary |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
77 % Penalty functions return the operators to force the solution. In the case of an interface it returns the operator applied to the other domain. |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
78 % boundary is a string specifying the boundary e.g. 'l','r' or 'e','w','n','s'. |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
79 % type is a string specifying the type of boundary condition if there are several. |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
80 % data is a function returning the data that should be applied at the boundary. |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
81 function [closure, penalty] = boundary_condition(obj,boundary,type,data) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
82 default_arg('type','robin'); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
83 default_arg('data',0); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
84 [e, d, halfnorm_inv, i_b, s] = obj.get_boundary_ops(boundary); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
85 switch type |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
86 % Stable robin-like boundary conditions ((u+-abs(u))*u/3 - eps*u_x)) with +- at left/right boundary |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
87 case {'R','robin'} |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
88 p = s*halfnorm_inv*e; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
89 closure = @(v, viscosity) p*(((v(i_b)-s*abs(v(i_b)))/3).*(v(i_b)) - ((viscosity(i_b)).*d*v)); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
90 switch class(data) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
91 case 'double' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
92 penalty = s*p*data; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
93 case 'function_handle' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
94 penalty = @(t) s*p*data(t); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
95 otherwise |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
96 error('Wierd data argument!') |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
97 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
98 otherwise |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
99 error('No such boundary condition: type = %s',type); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
100 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
101 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
102 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
103 % Ruturns the boundary ops, half-norm, boundary indices and sign for the boundary specified by the string boundary. |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
104 % The right boundary for each coordinate direction is considered the positive boundary |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
105 function [e, d, halfnorm_inv, ind_boundary, s] = get_boundary_ops(obj,boundary) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
106 ind = grid.funcToMatrix(obj.grid, 1:obj.grid.N()); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
107 switch boundary |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
108 case 'w' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
109 e = obj.e_l{1}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
110 d = obj.d_l{1}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
111 halfnorm_inv = obj.halfnorm_inv{1}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
112 ind_boundary = ind(1,:); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
113 s = -1; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
114 case 'e' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
115 e = obj.e_r{1}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
116 d = obj.d_r{1}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
117 halfnorm_inv = obj.halfnorm_inv{1}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
118 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
119 ind_boundary = ind(end,:); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
120 s = 1; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
121 case 's' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
122 e = obj.e_l{2}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
123 d = obj.d_l{2}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
124 halfnorm_inv = obj.halfnorm_inv{2}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
125 ind_boundary = ind(:,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
126 s = -1; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
127 case 'n' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
128 e = obj.e_r{2}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
129 d = obj.d_r{2}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
130 halfnorm_inv = obj.halfnorm_inv{2}; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
131 ind_boundary = ind(:,end); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
132 s = 1; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
133 otherwise |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
134 error('No such boundary: boundary = %s',boundary); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
135 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
136 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
137 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
138 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
139 error('An interface function does not exist yet'); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
140 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
141 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
142 function N = size(obj) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
143 N = obj.grid.m; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
144 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
145 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
146 |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
147 methods(Static) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
148 function [Dp, Dm, H, Hi, d_l, d_r, e_l, e_r, I, DissipationOp] = assemble1DOperators(g, operator_type, order, dissipation) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
149 dim = g.D(); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
150 I = cell(dim,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
151 D1 = cell(dim,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
152 D2 = cell(dim,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
153 H = cell(dim,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
154 Hi = cell(dim,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
155 e_l = cell(dim,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
156 e_r = cell(dim,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
157 d1_l = cell(dim,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
158 d1_r = cell(dim,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
159 DissipationOp = cell(dim,1); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
160 for i = 1:dim |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
161 switch operator_type |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
162 % case 'narrow' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
163 % ops = sbp.D4Variable(g.m(i), g.lim{i}, order); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
164 % D1{i} = ops.D1; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
165 % D2{i} = ops.D2; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
166 % d_l{i} = ops.d1_l'; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
167 % d_r{i} = ops.d1_r'; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
168 % if (strcmp(dissipation,'on')) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
169 % DissipationOp{i} = -1*sbp.dissipationOperator(g.m(i), order, ops.HI); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
170 % end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
171 % case 'upwind-' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
172 % ops = sbp.D1Upwind(g.m(i), g.lim{i}, order); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
173 % D1{i} = (ops.Dp + ops.Dm)/2; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
174 % D2{i} = @(viscosity) ops.Dp*spdiag(viscosity)*ops.Dm; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
175 % d_l{i} = ops.e_l'*ops.Dm; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
176 % d_r{i} = ops.e_r'*ops.Dm; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
177 % if (strcmp(dissipation,'on')) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
178 % DissipationOp{i} = (ops.Dp-ops.Dm)/2; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
179 % end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
180 case 'upwind+' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
181 ops = sbp.D1Upwind(g.m(i), g.lim{i}, order); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
182 Dp{i} = ops.Dp; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
183 Dm{i} = ops.Dm; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
184 % D1{i} = (ops.Dp + ops.Dm)/2; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
185 % D2{i} = @(viscosity) ops.Dm*spdiag(viscosity)*ops.Dp; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
186 d_l{i} = ops.e_l'*ops.Dp; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
187 d_r{i} = ops.e_r'*ops.Dp; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
188 if (strcmp(dissipation,'on')) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
189 DissipationOp{i} = (ops.Dp-ops.Dm)/2; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
190 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
191 % case 'upwind+-' |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
192 % ops = sbp.D1Upwind(g.m(i), g.lim{i}, order); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
193 % D1{i} = (ops.Dp + ops.Dm)/2; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
194 % D2{i} = @(viscosity) (ops.Dp*spdiag(viscosity)*ops.Dm + ops.Dm*spdiag(viscosity)*ops.Dp)/2; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
195 % d_l{i} = ops.e_l'*D1; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
196 % d_r{i} = ops.e_r'*D1; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
197 % if (strcmp(dissipation,'on')) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
198 % DissipationOp{i} = (ops.Dp-ops.Dm)/2; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
199 % end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
200 otherwise |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
201 error('Other operator types not yet supported', operator_type); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
202 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
203 H{i} = ops.H; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
204 Hi{i} = ops.HI; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
205 e_l{i} = ops.e_l; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
206 e_r{i} = ops.e_r; |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
207 I{i} = speye(g.m(i)); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
208 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
209 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
210 function op_2d = extendOperatorTo2D(op, I) |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
211 op_2d{1} = kr(op{1}, I{2}); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
212 op_2d{2} = kr(I{1}, op{2}); |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
213 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
214 end |
a6f34de60044
First attempt at implementing Burgers in 2D with RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
215 end |