Mercurial > repos > public > sbplib
diff +noname/testCfl.m @ 2:bce9e28c1e26
Added a cfl paramater to getTimestepper in Discretization. Added function to get cfl value for a Discr.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 18 Sep 2015 12:50:52 +0200 |
parents | |
children | 7249f105e67b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/+noname/testCfl.m Fri Sep 18 12:50:52 2015 +0200 @@ -0,0 +1,32 @@ +function testCfl(discr, timestepper_method, T, alpha0, tol,threshold) + default_arg('tol',0.00005); + default_arg('threshold',1e2); + + alpha0(2) = alpha0(1)+2*(alpha0(2)-alpha0(1)); + + while( (alpha0(2)-alpha0(1))/alpha0(1) > tol) + alpha = mean(alpha0); + + ts = discr.getTimestepper(timestepper_method,[],alpha); + + warning('off','all') + ts.evolve(T,true); + warning('on','all') + + [v,t] = ts.getV(); + + max_val = max(v); + + if isnan(max_val) || max_val == Inf || max_val > threshold + alpha0(2) = alpha; + else + alpha0(1) = alpha; + end + + fprintf('[%.3e,%.3e]: a = %.3e, max= %.2e\n',alpha0(1),alpha0(2), alpha,max_val); + + end + + fprintf('T = %-3d dof = %-4d order = %d: clf = %.4e\n',T, discr.size(), discr.order, alpha0(1)); + +end \ No newline at end of file