view +noname/animate.m @ 0:48b6fb693025

Initial commit.
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 17 Sep 2015 10:12:50 +0200
parents
children c7efff913935
line wrap: on
line source

% animate(dirname,discretization,Tend, time_modifier,time_method)
%
% Example:
%      animate('',discr,tend)
%      animate('my_mov',discr,tend,time_mod,time_method)

function hand = animate(dirname,discretization,Tend, time_modifier,time_method)
    makemovies = ~strcmp(dirname,'');
    if makemovies
        dirname = ['mov/' dirname];
    end

    default_arg('Tend',5*60);
    default_arg('time_modifier',1);
    default_arg('time_method',[]);


    fprintf('Animating: %s\n',discretization.name);
    fprintf('Tend     : %.2f\n',Tend);
    fprintf('order    : %d\n',discretization.order);
    fprintf('m        : %d\n',size(discretization));

    fprintf('Creating time discretization');
    tic
    ts = discretization.getTimestepper(time_method);
    fprintf(' - done  %fs\n', toc())

    [update, figure_handle] = discretization.setupPlot();

    if makemovies
        save_frame = anim.setup_fig_mov(figure_handle,dirname);
    end


    % Initialize loop
    str = '';
    % Loop function
    function next_t = G(next_t)
        ts.evolve(next_t);
        update(ts);
        % waitforbuttonpress
        if makemovies
            save_frame();
        end
        % pause(0.1)
        str = util.replace_string(str,'t = %.2f',ts.t);

    end
    update(ts);

    fprintf('Using time step k = %.6f\n',ts.k)
    fprintf('System size: %d\n',size(discretization))
    waitforbuttonpress
    anim.animate(@G,0,Tend,time_modifier)
    str = util.replace_string(str,'');

    % if makemovies
        % fprintf('Generating movies...\n')
        % system(sprintf('bash make_movie.sh %s',dirname));
    % end
end