Mercurial > repos > public > sbplib
annotate +sbp/Variable.m @ 99:ecf77a50d4fe feature/arclen-param
The arclength parameter function was slow because it called fzero. Now it is constructed once and for all with splines. Much better performance.
author | Martin Almquist <martin.almquist@it.uu.se> |
---|---|
date | Sun, 06 Dec 2015 15:41:42 +0100 |
parents | 32b39dc44474 |
children |
rev | line source |
---|---|
29
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 classdef Variable < sbp.OpSet |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 properties |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 norms % Struct containing norm matrices such as H,Q, M |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 boundary % Struct contanging vectors for boundry point approximations |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 derivatives % Struct containging differentiation operators |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 borrowing % Struct with borrowing limits for different norm matrices |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 m % Number of grid points. |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 h % Step size |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 end |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 methods |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 function obj = Variable(m,h,order) |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 switch order |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 case 4 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 [H, HI, D1, D2, e_1, e_m, S_1, S_m] = sbp.variable4(m,h); |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 obj.borrowing.M.S = 0.2505765857; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
18 otherwise |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
19 error('Invalid operator order %d.',order); |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
20 end |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
21 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
22 obj.h = h; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
23 obj.m = m; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
24 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
25 obj.norms.H = H; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
26 obj.norms.HI = HI; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
27 % obj.norms.Q = Q; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
28 % obj.norms.M = M; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
29 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
30 obj.boundary.e_1 = e_1; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
31 obj.boundary.S_1 = S_1; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
32 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
33 obj.boundary.e_m = e_m; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
34 obj.boundary.S_m = S_m; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
35 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
36 obj.derivatives.D1 = D1; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
37 obj.derivatives.D2 = D2; |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
38 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
39 end |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
40 end |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
41 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
42 methods (Static) |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
43 function lambda = smallestGrid(obj) |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
44 error('Not implmented') |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
45 end |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
46 end |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
47 end |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
48 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
49 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
50 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
51 |
32b39dc44474
Removed repository inside +sbp to make it part of the root repo.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
52 |