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