annotate +rv/+time/BdfDerivative.m @ 1169:d02e5b8a0b24 feature/rv

Rename RungekuttaRV time steppers. Add RungekuttaRVMultiStage time stepper
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 28 Jun 2019 13:13:17 +0200
parents 010bb2677230
children a4c00628a39d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1016
4b42999874c0 Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1014
diff changeset
1 classdef BdfDerivative < handle
1013
eb441fbdf379 Draft implementation of RungeKutta with exterior RV updates
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
2 properties
1014
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
3 coefficients
1013
eb441fbdf379 Draft implementation of RungeKutta with exterior RV updates
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
4 end
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: 1016
diff changeset
5 methods
1016
4b42999874c0 Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1014
diff changeset
6 function obj = BdfDerivative()
4b42999874c0 Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1014
diff changeset
7 obj.coefficients = obj.getBdfCoefficients();
1013
eb441fbdf379 Draft implementation of RungeKutta with exterior RV updates
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
8 end
1014
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
9 function DvDt = evaluate(obj, v, v_prev, dt)
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
10 order = size(v_prev,2);
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
11 DvDt = (obj.coefficients(order,1)*v - sum(obj.coefficients(order,2:order+1).*v_prev,2))/dt;
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
12 end
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
13 end
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
14 methods(Static)
1016
4b42999874c0 Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1014
diff changeset
15 function c = getBdfCoefficients()
1014
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
16 c = zeros(6,7);
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
17 c(1,1) = 1; c(1,2) = 1;
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
18 c(2,1) = 3/2; c(2,2) = 4/2; c(2,3) = -1/2;
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
19 c(3,1) = 11/6; c(3,2) = 18/6; c(3,3) = -9/6; c(3,4) = 2/6;
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
20 c(4,1) = 25/12; c(4,2) = 48/12; c(4,3) = -36/12; c(4,4) = 16/12; c(4,5) = -3/12;
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
21 c(5,1) = 137/60; c(5,2) = 300/60; c(5,3) = -300/60; c(5,4) = 200/60; c(5,5) = -75/60; c(5,6) = 12/60;
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
22 c(6,1) = 147/60; c(6,2) = 360/60; c(6,3) = -450/60; c(6,4) = 400/60; c(6,5) = -225/60; c(6,6) = 72/60; c(6,7) = -10/60;
1013
eb441fbdf379 Draft implementation of RungeKutta with exterior RV updates
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
23 end
eb441fbdf379 Draft implementation of RungeKutta with exterior RV updates
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
24 end
eb441fbdf379 Draft implementation of RungeKutta with exterior RV updates
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
25 end