Mercurial > repos > public > sbplib
annotate +time/+rk/butcherTableauFromStr.m @ 990:1066bb31bc95 feature/timesteppers
Create class for butcher tableau
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 09 Jan 2019 09:09:15 +0100 |
parents | a32856fc2ad2 |
children |
rev | line source |
---|---|
888
8732d6bd9890
Add general Runge-Kutta class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
1 % Returns the coefficients used in a RK method as defined by a Butcher Tableau. |
8732d6bd9890
Add general Runge-Kutta class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
2 % |
8732d6bd9890
Add general Runge-Kutta class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
3 % @param method - string specifying which Runge-Kutta method to be used. |
8732d6bd9890
Add general Runge-Kutta class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
4 % @return s - number of stages |
8732d6bd9890
Add general Runge-Kutta class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
5 % @return a - coefficents for intermediate stages |
8732d6bd9890
Add general Runge-Kutta class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
6 % @return b - weights for summing stages |
8732d6bd9890
Add general Runge-Kutta class
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
7 % @return c - time step coefficents for intermediate stages |
986
a32856fc2ad2
Rename butcherTableau() to butcherTableauFromStr() in preparation of butcher tableau class
Jonatan Werpers <jonatan@werpers.com>
parents:
929
diff
changeset
|
8 function [s,a,b,c] = butcherTableauFromStr(method) |
990
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
9 try |
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
10 bt = time.rk.ButcherTableau.(method); |
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
11 catch |
929
0344fff87139
Improve error msg in rk.butcherTableau
Martin Almquist <malmquist@stanford.edu>
parents:
916
diff
changeset
|
12 error('Runge-Kutta method %s is not implemented', method) |
990
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
13 end |
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
14 |
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
15 assert(bt.isExplicit()); |
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
16 |
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
17 s = bt.nStages(); |
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
18 a = bt.a(:,1:end-1); |
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
19 b = bt.b; |
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
20 c = bt.c; |
1066bb31bc95
Create class for butcher tableau
Jonatan Werpers <jonatan@werpers.com>
parents:
986
diff
changeset
|
21 end |