view +noname/testCfl.m @ 82:df642750e8f7

Added Dirichelt BC to Wave2dCurve.
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 26 Nov 2015 16:24:25 +0100
parents 7249f105e67b
children 9933169d2651
line wrap: on
line source

function testCfl(discr, timestepper_method, T, alpha0, tol,threshold, silentFlag)
    default_arg('tol',0.00005);
    default_arg('threshold',1e2);
    default_arg('silentFlag', false);

    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

        if ~silentFlag
            fprintf('[%.3e,%.3e]: a = %.3e, max= %.2e\n',alpha0(1),alpha0(2), alpha,max_val);
        end
    end

    fprintf('T = %-3d dof = %-4d order = %d: clf = %.4e\n',T, discr.size(), discr.order, alpha0(1));

end