Mercurial > repos > public > sbplib
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 |
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 |