Mercurial > repos > public > sbplib
comparison +rv/+time/getRvTimestepper.m @ 1183:27f3b173dcfa feature/rv
Add RungekuttaRv to getRvTimesteppers
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Fri, 05 Jul 2019 17:48:54 +0200 |
parents | cc2fd58989d1 |
children | 5aa3049a4212 |
comparison
equal
deleted
inserted
replaced
1182:f35ff0861d5a | 1183:27f3b173dcfa |
---|---|
1 function ts = getRvTimestepper(opt, diffOpStruct, residualViscosity, data, t0, v0) | 1 function ts = getRvTimestepper(opt, diffOpStruct, residualViscosity, data, t0, v0) |
2 switch opt.method | 2 switch opt.method |
3 case 'rkRv' | |
4 ts = rkRvTimestepper(opt, diffOpStruct, residualViscosity, data, t0, v0); | |
3 case 'rkRvBdf' | 5 case 'rkRvBdf' |
4 ts = rkRvBdfTimestepper(opt, diffOpStruct, residualViscosity, data, t0, v0); | 6 ts = rkRvBdfTimestepper(opt, diffOpStruct, residualViscosity, data, t0, v0); |
5 case 'rkRvMs' | 7 case 'rkRvMs' |
6 ts = rkRvMsTimestepper(opt, diffOpStruct, residualViscosity, data, t0, v0); | 8 ts = rkRvMsTimestepper(opt, diffOpStruct, residualViscosity, data, t0, v0); |
7 case 'rkRvMg' | 9 case 'rkRvMg' |
27 else | 29 else |
28 F = @(v, t) D(v) + data; | 30 F = @(v, t) D(v) + data; |
29 end | 31 end |
30 end | 32 end |
31 | 33 |
34 function ts = rkRvTimestepper(opt, diffOpStruct, residualViscosity, data, t0, v0) | |
35 F = stabilizedRhs(diffOpStruct.D_scheme, data); | |
36 ts = rv.time.RungekuttaRv(F, opt.k, t0, v0, residualViscosity, diffOpStruct.D_t, opt.rkOrder); | |
37 end | |
38 | |
32 function ts = rkRvBdfTimestepper(opt, diffOpStruct, residualViscosity, data, t0, v0) | 39 function ts = rkRvBdfTimestepper(opt, diffOpStruct, residualViscosity, data, t0, v0) |
33 F = stabilizedRhs(diffOpStruct.D_scheme, data); | 40 F = stabilizedRhs(diffOpStruct.D_scheme, data); |
34 ts = rv.time.RungekuttaRvBdf(F, opt.k, t0, v0, residualViscosity, opt.rkOrder, opt.bdfOrders); | 41 ts = rv.time.RungekuttaRvBdf(F, opt.k, t0, v0, residualViscosity, opt.rkOrder, opt.bdfOrders); |
35 end | 42 end |
36 | 43 |