Mercurial > repos > public > sbplib
annotate +noname/testCfl.m @ 4:8e14b5a577a6
Attempt att optimization of CdiffNonlin.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 18 Sep 2015 15:12:44 +0200 |
parents | bce9e28c1e26 |
children | 7249f105e67b |
rev | line source |
---|---|
2
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 function testCfl(discr, timestepper_method, T, alpha0, tol,threshold) |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 default_arg('tol',0.00005); |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 default_arg('threshold',1e2); |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 alpha0(2) = alpha0(1)+2*(alpha0(2)-alpha0(1)); |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 while( (alpha0(2)-alpha0(1))/alpha0(1) > tol) |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 alpha = mean(alpha0); |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 ts = discr.getTimestepper(timestepper_method,[],alpha); |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 warning('off','all') |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 ts.evolve(T,true); |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 warning('on','all') |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 [v,t] = ts.getV(); |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
18 max_val = max(v); |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
19 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
20 if isnan(max_val) || max_val == Inf || max_val > threshold |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
21 alpha0(2) = alpha; |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
22 else |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
23 alpha0(1) = alpha; |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
24 end |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
25 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
26 fprintf('[%.3e,%.3e]: a = %.3e, max= %.2e\n',alpha0(1),alpha0(2), alpha,max_val); |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
27 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
28 end |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
29 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
30 fprintf('T = %-3d dof = %-4d order = %d: clf = %.4e\n',T, discr.size(), discr.order, alpha0(1)); |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
31 |
bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
32 end |