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