annotate +rv/ResidualViscosity.m @ 1193:921595039ab8 feature/rv

Add options for postprocessing RV
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Mon, 29 Jul 2019 16:44:21 +0200
parents 7173b6fd4063
children bd5383809917
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
1193
921595039ab8 Add options for postprocessing RV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1188
diff changeset
17 % TODO: pass opt struct with waveSpeed, normalization etc.
1016
4b42999874c0 Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1015
diff changeset
18 % 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
19 % 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
20 function obj = ResidualViscosity(g, Df, waveSpeed, Cmax, Cres, h, normalization, postProcess)
1193
921595039ab8 Add options for postprocessing RV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1188
diff changeset
21 %default_arg('normalization',@(v)abs(obj.minmaxDiffNeighborhood1d(v)-norm(v-mean(v),inf)));
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
1193
921595039ab8 Add options for postprocessing RV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1188
diff changeset
33 case {'', 'none'}
1158
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);
1193
921595039ab8 Add options for postprocessing RV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1188
diff changeset
35 case {'filt', 'filter'}
921595039ab8 Add options for postprocessing RV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1188
diff changeset
36 % TBD: Keep?
921595039ab8 Add options for postprocessing RV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1188
diff changeset
37 order =
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
38 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
39 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
40 obj.fRes = @(v,dvdt) obj.Mres*abs(dvdt + obj.Df(v))./obj.normalization(v);
1193
921595039ab8 Add options for postprocessing RV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1188
diff changeset
41 case {'max', '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
42 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
43 case 1
1180
beecb580c5bf Add missing semicolons
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1164
diff changeset
44 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
45 case 2
1180
beecb580c5bf Add missing semicolons
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1164
diff changeset
46 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
47 end
1158
2ba63553ccfc Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1152
diff changeset
48 end
1012
1e437c9e5132 Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
49 end
1e437c9e5132 Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
50
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
51 function viscosity = evaluateViscosity(obj, v, dvdt)
1164
fc2631ba4da5 Remove unnecessary variable
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1161
diff changeset
52 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
53 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
54
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
55 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
56 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
57 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
58 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
59 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
60 end
1159
1ad7da049b50 Fix bug using 2d maximum neighborhood in 1d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1158
diff changeset
61
1ad7da049b50 Fix bug using 2d maximum neighborhood in 1d
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1158
diff changeset
62 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
63 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
64 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
65 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
66 end
1e437c9e5132 Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
67 end
1150
922996695952 Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1039
diff changeset
68 methods (Static)
922996695952 Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1039
diff changeset
69 function minmaxDiff = minmaxDiffNeighborhood1d(u)
922996695952 Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1039
diff changeset
70 umax = movmax(u,3);
922996695952 Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1039
diff changeset
71 umin = movmin(u,3);
922996695952 Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1039
diff changeset
72 minmaxDiff = umax - umin;
922996695952 Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1039
diff changeset
73 end
1158
2ba63553ccfc Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1152
diff changeset
74
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
75 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
76 uMatrix = grid.funcToMatrix(g,u);
1150
922996695952 Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1039
diff changeset
77 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
78 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
79 minmaxDiff = umax - umin;
1158
2ba63553ccfc Add option to compute maximum neighbordhood residual
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1152
diff changeset
80 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
81 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
82 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
83 switch order
3364a51f0d9e Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1180
diff changeset
84 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
85 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
86 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
87 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
88 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
89 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
90 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
91 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
92 end
3364a51f0d9e Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1180
diff changeset
93 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
94 % 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
95 % Fx(1,:) = 0;
3364a51f0d9e Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1180
diff changeset
96 % 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
97 % Fx(end,:) = 0;
3364a51f0d9e Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1180
diff changeset
98 % 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
99 % 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
100 % Fy(1,:) = 0;
3364a51f0d9e Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1180
diff changeset
101 % 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
102 % Fy(end,:) = 0;
3364a51f0d9e Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1180
diff changeset
103 % 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
104 % 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
105 % 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
106 % 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
107 end
1150
922996695952 Implement local residual normalization functions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1039
diff changeset
108 end
1186
3364a51f0d9e Add 1d shapiro filter function to ResidualViscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1180
diff changeset
109
1012
1e437c9e5132 Create residual viscosity package +rv and generalize the ResidualViscosity class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
110 end