Mercurial > repos > public > sbplib
annotate +parametrization/dataSpline.m @ 1331:60c875c18de3 feature/D2_boundary_opt
Merge with feature/poroelastic for Elastic schemes
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Thu, 10 Mar 2022 16:54:26 +0100 |
parents | 36d092a00040 0eef5c8ccb88 |
children |
rev | line source |
---|---|
1125
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
1 % dataSpline calculates a Curve through the points f_i using cubic spline interpolation. |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
2 % The spline curve is parametrized with the arc length parametrization |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
3 % to facilitate better grids. |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
4 % |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
5 % f - m x D matrix of m points in D dimensions |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
6 function C = dataSpline(f) |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
7 m = size(f, 1); |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
8 |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
9 t = linspace(0,1,m); |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
10 |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
11 pp_g = spapi(4, t, f'); |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
12 pp_gp = fnder(pp_g); |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
13 |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
14 g = @(t) fnval(pp_g, t); |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
15 gp = @(t) fnval(pp_gp, t); |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
16 |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
17 C = parametrization.Curve(g, gp); |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
18 C = C.arcLengthParametrization(); |
0eef5c8ccb88
Copy dataSpline() from feature/laplace_curvilinear_test
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
19 end |