Mercurial > repos > public > sbplib
annotate +rv/ResidualViscosity.m @ 1188:7173b6fd4063 feature/rv
Rename class property grid to g, to avoid confusion with grid package
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Mon, 08 Jul 2019 14:50:19 +0200 |
parents | 3364a51f0d9e |
children | 921595039ab8 |
rev | line source |
---|---|
1012
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
1 classdef ResidualViscosity < handle |
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
2 properties |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
3 g % grid |
1017
2d7c1333bd6c
Add support for using the ODE to approximate the time derivative in the residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1016
diff
changeset
|
4 Df % Diff op approximating the gradient of the flux f(u) |
1012
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
5 waveSpeed % Wave speed at each grid point, e.g f'(u). %TBD: Better naming? |
1016
4b42999874c0
Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1015
diff
changeset
|
6 Cmax % Constant controlling relative amount of upwind dissipation |
4b42999874c0
Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1015
diff
changeset
|
7 Cres % Constant controling relative amount of upwind dissipation |
4b42999874c0
Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1015
diff
changeset
|
8 h % Length scale used for scaling the viscosity. Typically grid spacing. |
4b42999874c0
Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1015
diff
changeset
|
9 normalization % Function used to normalize the residual such that it is amplified in the |
1158
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
10 % shocks and suppressed elsewhere. |
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
11 Mres % Coefficients for the residual viscosity |
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
12 Mfirst % Coefficients for the first order viscosity |
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
13 fRes % Function handle for computing the residual. |
1012
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
14 end |
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
15 |
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
16 methods |
1016
4b42999874c0
Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1015
diff
changeset
|
17 % TBD: Decide on how to treat waveSpeed. It would be nice to just pass a constant value without |
4b42999874c0
Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1015
diff
changeset
|
18 % wrapping it in a function. |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
19 function obj = ResidualViscosity(g, Df, waveSpeed, Cmax, Cres, h, normalization, postProcess) |
1150
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
20 default_arg('normalization',@(v)abs(obj.minmaxDiffNeighborhood1d(v)-norm(v-mean(v),inf))); |
1161
856bd6291d17
Use same order for both time derivative and flux term when computing the residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1159
diff
changeset
|
21 default_arg('postProcess','maximum neighbors'); |
1017
2d7c1333bd6c
Add support for using the ODE to approximate the time derivative in the residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1016
diff
changeset
|
22 obj.Df = Df; |
1012
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
23 obj.waveSpeed = waveSpeed; |
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
24 obj.h = h; |
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
25 obj.Cmax = Cmax; |
1158
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
26 |
1012
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
27 obj.Cres = Cres; |
1016
4b42999874c0
Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1015
diff
changeset
|
28 obj.normalization = normalization; |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
29 obj.g = g; |
1158
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
30 obj.Mres = obj.Cres*obj.h^2; |
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
31 obj.Mfirst = obj.Cmax*obj.h; |
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
32 switch postProcess |
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
33 case 'none' |
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
34 obj.fRes = @(v,dvdt) obj.Mres*abs(dvdt + obj.Df(v))./obj.normalization(v); |
1186
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
35 case 'filter' |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
36 order = 4; |
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
37 F = obj.shapiroFilter(obj.g, order); |
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
38 obj.Mres = F*obj.Mres; |
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
39 obj.fRes = @(v,dvdt) obj.Mres*abs(dvdt + obj.Df(v))./obj.normalization(v); |
1158
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
40 case 'maximum neighbors' |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
41 switch g.D() |
1159
1ad7da049b50
Fix bug using 2d maximum neighborhood in 1d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1158
diff
changeset
|
42 case 1 |
1180
beecb580c5bf
Add missing semicolons
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1164
diff
changeset
|
43 obj.fRes = @(v,dvdt) movmax(obj.Mres*abs(dvdt + obj.Df(v))./obj.normalization(v),3); |
1159
1ad7da049b50
Fix bug using 2d maximum neighborhood in 1d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1158
diff
changeset
|
44 case 2 |
1180
beecb580c5bf
Add missing semicolons
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1164
diff
changeset
|
45 obj.fRes = @obj.maxResidualNeighbors2d; |
1159
1ad7da049b50
Fix bug using 2d maximum neighborhood in 1d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1158
diff
changeset
|
46 end |
1158
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
47 end |
1012
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
48 end |
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
49 |
1152
010bb2677230
Clean up in +rv/+time. Make the time stepping more efficient by not storing unnessecary properties in the RK-RV time steppers
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1151
diff
changeset
|
50 function viscosity = evaluateViscosity(obj, v, dvdt) |
1164
fc2631ba4da5
Remove unnecessary variable
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1161
diff
changeset
|
51 viscosity = min(obj.Mfirst*abs(obj.waveSpeed(v)), obj.fRes(v,dvdt)); |
1152
010bb2677230
Clean up in +rv/+time. Make the time stepping more efficient by not storing unnessecary properties in the RK-RV time steppers
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1151
diff
changeset
|
52 end |
010bb2677230
Clean up in +rv/+time. Make the time stepping more efficient by not storing unnessecary properties in the RK-RV time steppers
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1151
diff
changeset
|
53 |
1031
2ef20d00b386
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
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1017
diff
changeset
|
54 function [viscosity, Df, firstOrderViscosity, residualViscosity] = evaluate(obj, v, dvdt) |
1017
2d7c1333bd6c
Add support for using the ODE to approximate the time derivative in the residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1016
diff
changeset
|
55 Df = obj.Df(v); |
1158
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
56 firstOrderViscosity = obj.Mfirst*abs(obj.waveSpeed(v)); |
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
57 residualViscosity = obj.fRes(v,dvdt); |
1159
1ad7da049b50
Fix bug using 2d maximum neighborhood in 1d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1158
diff
changeset
|
58 viscosity = min(firstOrderViscosity, residualViscosity); |
1158
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
59 end |
1159
1ad7da049b50
Fix bug using 2d maximum neighborhood in 1d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1158
diff
changeset
|
60 |
1ad7da049b50
Fix bug using 2d maximum neighborhood in 1d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1158
diff
changeset
|
61 function res = maxResidualNeighbors2d(obj,v,dvdt) |
1158
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
62 res = obj.Mres*abs(dvdt + obj.Df(v))./obj.normalization(v); |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
63 resMat = grid.funcToMatrix(obj.g,res); |
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
64 res = reshape(max(movmax(resMat,3,1),movmax(resMat,3,2))',obj.g.N(),1); |
1012
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
65 end |
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
66 end |
1150
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
67 methods (Static) |
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
68 function minmaxDiff = minmaxDiffNeighborhood1d(u) |
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
69 umax = movmax(u,3); |
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
70 umin = movmin(u,3); |
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
71 minmaxDiff = umax - umin; |
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
72 end |
1158
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
73 |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
74 function minmaxDiff = minmaxDiffNeighborhood2d(g, u) |
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
75 uMatrix = grid.funcToMatrix(g,u); |
1150
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
76 umax = max(movmax(uMatrix,3,1),movmax(uMatrix,3,2)); |
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
77 umin = min(movmin(uMatrix,3,1),movmin(uMatrix,3,2)); |
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
78 minmaxDiff = umax - umin; |
1158
2ba63553ccfc
Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1152
diff
changeset
|
79 minmaxDiff = reshape(minmaxDiff',g.N(),1); |
1150
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
80 end |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
81 function F = shapiroFilter(g, order) |
1186
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
82 switch order |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
83 case 2 |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
84 F = spdiags(repmat([1 2 1],g.m(1),1), -1:1, g.m(1), g.m(1)); |
1186
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
85 case 4 |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
86 F = spdiags(repmat([-1 4 10 4 -1],g.m(1),1), -2:2, g.m(1), g.m(1)); |
1186
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
87 case 6 |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
88 F = spdiags(repmat([1 -6 15 44 15 -6 1],g.m(1),1), -3:3, g.m(1), g.m(1)); |
1186
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
89 case 8 |
1188
7173b6fd4063
Rename class property grid to g, to avoid confusion with grid package
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1186
diff
changeset
|
90 F = spdiags(repmat([-1 8 -28 56 186 56 -28 8 -1],g.m(1),1), -4:4, g.m(1), g.m(1)); |
1186
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
91 end |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
92 F = 1/2^order * F; |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
93 % Fx = spdiags(repmat(1/(mid+2)*[1 mid 1],g.m(1),1), -1:1, g.m(1), g.m(1)); |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
94 % Fx(1,:) = 0; |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
95 % Fx(1,1:2) = 1/(mid+1)*[mid 1]; |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
96 % Fx(end,:) = 0; |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
97 % Fx(end,end-1:end) = 1/(mid+1)*[1 mid]; |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
98 % Fy = spdiags(repmat(1/(mid+2)*[1 mid 1],g.m(2),1), -1:1, g.m(2), g.m(2)); |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
99 % Fy(1,:) = 0; |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
100 % Fy(1,1:2) = 1/(mid+1)*[mid 1]; |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
101 % Fy(end,:) = 0; |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
102 % Fy(end,end-1:end) = 1/(mid+1)*[1 mid]; |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
103 % Ix = speye(g.m(1)); |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
104 % Iy = speye(g.m(1)); |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
105 % F = kron(Fx, Iy) + kron(Ix, Fy); |
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
106 end |
1150
922996695952
Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1039
diff
changeset
|
107 end |
1186
3364a51f0d9e
Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1180
diff
changeset
|
108 |
1012
1e437c9e5132
Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
109 end |