Mercurial > repos > public > sbplib
diff +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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/+noname/animate.m Thu Sep 17 10:12:50 2015 +0200 @@ -0,0 +1,61 @@ +% 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