Mercurial > repos > public > sbplib
annotate +rv/constructDiffOps.m @ 1142:cff49fba3cc8 rv-interpolation
Closing branch
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Mon, 05 Aug 2019 10:49:21 +0200 |
parents | 1a5c8723c9be |
children |
rev | line source |
---|---|
1032
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
1 function [D_rv, D_flux, DvDt, solutionPenalties, residualPenalties] = constructDiffOps(scheme, g, order, opSet, waveSpeed, BCs, fluxSplitting) |
1021
cc61dde120cd
Add upwind dissipation to the operator inside Utux2d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1020
diff
changeset
|
2 default_arg('fluxSplitting',[]); |
cc61dde120cd
Add upwind dissipation to the operator inside Utux2d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1020
diff
changeset
|
3 |
1020
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
4 %% DiffOps for solution vector |
1032
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
5 [D, solutionPenalties] = constructTotalFluxDiffOp(scheme, g, order, opSet, waveSpeed, BCs, fluxSplitting); |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
6 D2 = constructSymmetricD2Operator(g, order, opSet); |
1020
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
7 D_rv = @(v,viscosity)(D + D2(viscosity))*v; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
8 |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
9 %% DiffOps for residual viscosity |
1032
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
10 [D_flux, residualPenalties] = constructTotalFluxDiffOp(scheme, g, max(order-2,2), opSet, waveSpeed, BCs, fluxSplitting); |
1020
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
11 % DiffOp for flux in residual viscosity. Due to sign conventions of the implemnted schemes, we need to |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
12 % change the sign. |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
13 D_flux = -D_flux; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
14 D_flux = @(v) D_flux*v; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
15 % DiffOp for time derivative in residual viscosity |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
16 DvDt = @(v)D*v; |
1032
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
17 |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
18 %% DiffOps for residual viscosity |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
19 % xl = g.getBoundary('l'); |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
20 % xr = g.getBoundary('r'); |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
21 % xlim = {xl, xr}; |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
22 % m_f = 2*(g.m()-1)+1; |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
23 % g_f = grid.equidistant(m_f, xlim); |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
24 |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
25 % [DvDt, residualPenalties] = constructTotalFluxDiffOp(scheme, g_f, 9, opSet, waveSpeed, BCs, fluxSplitting); |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
26 % % DiffOp for flux in residual viscosity. Due to sign conventions of the implemnted schemes, we need to |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
27 % % change the sign. |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
28 % D_flux = -D; |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
29 % D_flux = @(v) D_flux*v; |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
30 % % DiffOp for time derivative in residual viscosity |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
31 % DvDt = @(v)applyInterpDiffOp(g.points(), v, g_f.points(), DvDt); |
1020
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
32 end |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
33 |
1032
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
34 % function u = applyInterpDiffOp(x_c, u_c, x_f, D_f) |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
35 % u_f = D_f*interp1(x_c,u_c,x_f,'linear'); |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
36 % u = u_f(ismember(x_f,x_c)); |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
37 % end |
1a5c8723c9be
Created a new branch for attempting to improve rv, via interpolation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1026
diff
changeset
|
38 |
1021
cc61dde120cd
Add upwind dissipation to the operator inside Utux2d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1020
diff
changeset
|
39 function [D, penalties] = constructTotalFluxDiffOp(scheme, grid, order, opSet, waveSpeed, BCs, fluxSplitting) |
cc61dde120cd
Add upwind dissipation to the operator inside Utux2d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1020
diff
changeset
|
40 if isequal(opSet, @sbp.D1Upwind) |
cc61dde120cd
Add upwind dissipation to the operator inside Utux2d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1020
diff
changeset
|
41 diffOp = scheme(grid, order, opSet, waveSpeed, fluxSplitting); |
cc61dde120cd
Add upwind dissipation to the operator inside Utux2d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1020
diff
changeset
|
42 else |
cc61dde120cd
Add upwind dissipation to the operator inside Utux2d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1020
diff
changeset
|
43 diffOp = scheme(grid, order, opSet, waveSpeed); |
cc61dde120cd
Add upwind dissipation to the operator inside Utux2d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1020
diff
changeset
|
44 end |
1020
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
45 [D, penalties] = addClosuresToDiffOp(diffOp, BCs); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
46 end |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
47 |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
48 function [D, penalties] = addClosuresToDiffOp(diffOp, BCs) |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
49 D = diffOp.D; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
50 penalties = cell(size(BCs)); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
51 for i = 1:size(BCs,1) |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
52 for j = 1:size(BCs,2) |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
53 [closure, penalties{i,j}] = diffOp.boundary_condition(BCs{i,j}.boundary, BCs{i,j}.type); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
54 D = D + closure; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
55 end |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
56 end |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
57 end |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
58 |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
59 function D2 = constructSymmetricD2Operator(grid, order, opSet) |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
60 % TODO: |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
61 % Currently only implemented for upwind operators. |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
62 % Remove this part once the time-dependent D2 operator is implemented for other opSets |
1021
cc61dde120cd
Add upwind dissipation to the operator inside Utux2d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1020
diff
changeset
|
63 % or if it is decided that it should only be supported for upwind operators. |
1020
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
64 assert(isequal(opSet,@sbp.D1Upwind)) |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
65 |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
66 m = grid.size(); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
67 ops = cell(grid.D(),1); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
68 I = cell(grid.D(),1); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
69 for i = 1:grid.D() |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
70 lim = {grid.x{i}(1), grid.x{i}(end)}; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
71 ops{i} = opSet(m(i), lim, order); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
72 I{i} = speye(m(i)); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
73 end |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
74 |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
75 % TBD: How is this generalized to a loop over dimensions or similar? |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
76 switch grid.D() |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
77 case 1 |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
78 e_r = ops{1}.e_r; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
79 e_l = ops{1}.e_l; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
80 Dm = ops{1}.Dm; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
81 Dp = ops{1}.Dp; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
82 Hi = ops{1}.HI; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
83 B = e_r*e_r' - e_l*e_l'; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
84 D2 = @(viscosity) Dm*spdiag(viscosity)*Dp-Hi*(B*spdiag(viscosity)*Dp); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
85 case 2 |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
86 e_e = kron(ops{1}.e_r,I{2}); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
87 e_w = kron(ops{1}.e_l,I{2}); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
88 Dm_x = kron(ops{1}.Dm,I{2}); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
89 Dp_x = kron(ops{1}.Dp,I{2}); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
90 H_x = kron(ops{1}.HI,I{2}); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
91 B_x = e_e*e_e' - e_w*e_w'; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
92 D2_x = @(viscosity) Dm_x*spdiag(viscosity)*Dp_x-H_x*(B_x*spdiag(viscosity)*Dp_x); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
93 |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
94 e_n = kron(I{1},ops{2}.e_r); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
95 e_s = kron(I{1},ops{2}.e_l); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
96 Dm_y = kron(I{1},ops{2}.Dm); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
97 Dp_y = kron(I{1},ops{2}.Dp); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
98 H_y = kron(I{1},ops{2}.HI); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
99 B_y = e_n*e_n' - e_s*e_s'; |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
100 D2_y = @(viscosity) Dm_y*spdiag(viscosity)*Dp_y-H_y*(B_y*spdiag(viscosity)*Dp_y); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
101 D2 = @(viscosity)D2_x(viscosity) + D2_y(viscosity); |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
102 otherwise |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
103 error('3D not yet implemented') |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
104 end |
5359a61cb4d9
Add utility for constructing the operators used by a discretization emplying RV-stabilization
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
105 end |