annotate +rv/+time/BdfDerivative.m @ 1031:2ef20d00b386 feature/advectionRV

For easier comparison, return both the first order and residual viscosity when evaluating the residual. Add the first order and residual viscosity to the state of the RungekuttaRV time steppers
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Thu, 17 Jan 2019 10:25:06 +0100
parents 4b42999874c0
children 010bb2677230
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
1014
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
5 methods %TBD: Decide if the BDF order should be passed in construction
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
6 % and only a row of coefficients stored based on the order.
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
7 % There would still be an implicit dependancy on the number
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
8 % of vectors in v_prev and elements in coefficients.
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
9 % In addition, dt could be stored, but this would be
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
10 % inflexible if different step sizes are employed.
1016
4b42999874c0 Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1014
diff changeset
11 function obj = BdfDerivative()
4b42999874c0 Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1014
diff changeset
12 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
13 end
1014
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
14 % Add asserts here?
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
15 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
16 order = size(v_prev,2);
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
17 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
18 end
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
19 end
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
20 methods(Static)
1016
4b42999874c0 Add lower level for boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1014
diff changeset
21 function c = getBdfCoefficients()
1014
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
22 c = zeros(6,7);
e547794a9407 Add boot-strapping to RungeKuttaExteriorRV
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1013
diff changeset
23 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
24 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
25 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
26 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
27 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
28 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
29 end
eb441fbdf379 Draft implementation of RungeKutta with exterior RV updates
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
30 end
eb441fbdf379 Draft implementation of RungeKutta with exterior RV updates
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
31 end