annotate +rv/+diffops/constructDiffOps.m @ 1184:ecc605453733 feature/rv

Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 05 Jul 2019 17:51:11 +0200
parents e3d8f24b2c1c
children 79618b58b0a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1178
e3d8f24b2c1c Add wrapper function calling constructDiffOps* for a specified RV method
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
1 function diffOpsStruct = constructDiffOps(method, varargin)
1184
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
2 switch method
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
3 case {'standard'}
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
4 diffOpsStruct = diffOpsStandard(varargin{:});
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
5 case {'bdf','backwards-difference-formula'}
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
6 diffOpsStruct = diffOpsBdf(varargin{:});
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
7 case {'ms','multi-stage'}
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
8 diffOpsStruct = diffOpsMultiStage(varargin{:});
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
9 case {'mg1','multi-grid1'}
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
10 diffOpsStruct = diffOpsMultiGrid1(varargin{:});
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
11 case {'mg2','multi-grid2'}
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
12 diffOpsStruct = diffOpsMultiGrid2(varargin{:});
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
13 end
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
14 end
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
15
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
16 function diffOpsStruct = diffOpsStandard(scheme, g, schemeOrder, residualOrder, schemeParams, opSet, BCs)
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
17 % DiffOps for stabilized solution vector
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
18 [D_scheme, penalties_scheme, D_t] = rv.diffops.constructSchemeDiffOp(scheme, g, schemeOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
19 %% DiffOps for residual viscosity
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
20 D_flux = rv.diffops.constructFluxDiffOpWithClosures(scheme, g, residualOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
21 D_flux = @(v) -D_flux(v);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
22 diffOpsStruct = struct('D_scheme', D_scheme,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
23 'D_flux', D_flux,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
24 'D_t', D_t,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
25 'penalties_scheme', penalties_scheme);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
26 end
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
27
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
28 function diffOpsStruct = diffOpsBdf(scheme, g, schemeOrder, residualOrder, schemeParams, opSet, BCs)
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
29 %% DiffOps for solution vector
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
30 [D_scheme, penalties_scheme, ~] = rv.diffops.constructSchemeDiffOp(scheme, g, schemeOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
31 %% DiffOps for residual viscosity
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
32 [D_flux, ~] = rv.diffops.constructFluxDiffOp(scheme, g, residualOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
33 D_flux = @(v) -D_flux(v);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
34 diffOpsStruct = struct('D_scheme', D_scheme,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
35 'D_flux', D_flux,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
36 'penalties_scheme', penalties_scheme);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
37 end
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
38
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
39 function diffOpsStruct = diffOpsMultiStage(scheme, g, schemeOrder, residualOrder, schemeParams, opSet, BCs)
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
40 % DiffOps for stabilized solution vector
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
41 [D_scheme, penalties_scheme] = rv.diffops.constructSchemeDiffOp(scheme, g, schemeOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
42 % DiffOp for unstabilized solution vector
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
43 D_unstable = rv.diffops.constructFluxDiffOpWithClosures(scheme, g, schemeOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
44 %% DiffOps for residual viscosity
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
45 [D_t, penalties_res] = rv.diffops.constructFluxDiffOpWithClosures(scheme, g, residualOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
46 D_flux = @(v) -D_t(v);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
47 diffOpsStruct = struct('D_scheme', D_scheme,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
48 'D_unstable', D_unstable,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
49 'D_flux', D_flux,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
50 'D_t', D_t,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
51 'penalties_scheme', penalties_scheme,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
52 'penalties_res', penalties_res);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
53 end
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
54
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
55 function diffOpsStruct = diffOpsMultiGrid1(scheme, g, schemeOrder, residualOrder, schemeParams, opSet, BCs)
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
56 % DiffOps for stabilized solution vector
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
57 [D_scheme, penalties_scheme, D] = rv.diffops.constructSchemeDiffOp(scheme, g, schemeOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
58 % DiffOp for unstabilized solution vector
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
59 D_coarse = coarserGridDiffOp(scheme, g, residualOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
60 %% DiffOps for residual viscosity
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
61 [D_flux, penalties_res] = rv.diffops.constructFluxDiffOpWithClosures(scheme, g, residualOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
62 D_flux = @(v) -D_flux(v);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
63 D_t = @(v) D(v);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
64 diffOpsStruct = struct('D_scheme', D_scheme,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
65 'D_coarse', D_coarse,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
66 'D_flux', D_flux,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
67 'D_t', D_t,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
68 'penalties_scheme', penalties_scheme,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
69 'penalties_res', penalties_res);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
70 end
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
71
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
72 function diffOpsStruct = diffOpsMultiGrid2(scheme, g, schemeOrder, residualOrder, schemeParams, opSet, BCs)
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
73 % DiffOps for stabilized solution vector
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
74 [D_scheme, penalties_scheme, D] = rv.diffops.constructSchemeDiffOp(scheme, g, schemeOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
75 % TODO: What orders to use here?
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
76 D_coarse = coarserGridDiffOp(scheme, g, residualOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
77 %% DiffOps for residual viscosity
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
78 D_flux = rv.diffops.constructFluxDiffOpWithClosures(scheme, g, schemeOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
79 D_flux = @(v) -D_flux(v);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
80 D_t = @(v) D_coarse(v);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
81 diffOpsStruct = struct('D_scheme', D_scheme,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
82 'D_flux', D_flux,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
83 'D_t', D_t,...
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
84 'penalties_scheme', penalties_scheme);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
85 end
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
86
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
87 % TODO: Only works for equidistant grids
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
88 function D_coarse = coarserGridDiffOp(scheme, g, schemeOrder, schemeParams, opSet, BCs)
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
89 m = g.m();
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
90 lim = g.lim();
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
91 m_coarse = (m-1)/2 + 1;
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
92 g_coarse = grid.equidistant(m_coarse, lim{1});
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
93 D_coarse = rv.diffops.constructFluxDiffOpWithClosures(scheme, g_coarse, schemeOrder, schemeParams, opSet, BCs);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
94 x = g.x{1};
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
95 x_coarse = x(1:2:end);
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
96 % TODO: Fix interpolation
ecc605453733 Move specialized constructDiffOps* into constructDiffOps.m. Add multigrid RV using the standard RungekuttaRV time stepper
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1178
diff changeset
97 D_coarse = @(v) interp1(x_coarse,D_coarse(v(1:2:end)),x,'spline');
1178
e3d8f24b2c1c Add wrapper function calling constructDiffOps* for a specified RV method
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
98 end