0
|
1 % animate(dirname,discretization,Tend, time_modifier,time_method)
|
|
2 %
|
|
3 % Example:
|
|
4 % animate('',discr,tend)
|
|
5 % animate('my_mov',discr,tend,time_mod,time_method)
|
|
6
|
|
7 function hand = animate(dirname,discretization,Tend, time_modifier,time_method)
|
|
8 makemovies = ~strcmp(dirname,'');
|
|
9 if makemovies
|
|
10 dirname = ['mov/' dirname];
|
|
11 end
|
|
12
|
|
13 default_arg('Tend',5*60);
|
|
14 default_arg('time_modifier',1);
|
|
15 default_arg('time_method',[]);
|
|
16
|
|
17
|
|
18 fprintf('Animating: %s\n',discretization.name);
|
|
19 fprintf('Tend : %.2f\n',Tend);
|
|
20 fprintf('order : %d\n',discretization.order);
|
|
21 fprintf('m : %d\n',size(discretization));
|
|
22
|
|
23 fprintf('Creating time discretization');
|
|
24 tic
|
|
25 ts = discretization.getTimestepper(time_method);
|
|
26 fprintf(' - done %fs\n', toc())
|
|
27
|
|
28 [update, figure_handle] = discretization.setupPlot();
|
|
29
|
|
30 if makemovies
|
|
31 save_frame = anim.setup_fig_mov(figure_handle,dirname);
|
|
32 end
|
|
33
|
|
34
|
|
35 % Initialize loop
|
|
36 str = '';
|
|
37 % Loop function
|
|
38 function next_t = G(next_t)
|
|
39 ts.evolve(next_t);
|
|
40 update(ts);
|
|
41 % waitforbuttonpress
|
|
42 if makemovies
|
|
43 save_frame();
|
|
44 end
|
|
45 % pause(0.1)
|
|
46 str = util.replace_string(str,'t = %.2f',ts.t);
|
|
47
|
|
48 end
|
|
49 update(ts);
|
|
50
|
|
51 fprintf('Using time step k = %.6f\n',ts.k)
|
|
52 fprintf('System size: %d\n',size(discretization))
|
|
53 waitforbuttonpress
|
|
54 anim.animate(@G,0,Tend,time_modifier)
|
|
55 str = util.replace_string(str,'');
|
|
56
|
|
57 % if makemovies
|
|
58 % fprintf('Generating movies...\n')
|
|
59 % system(sprintf('bash make_movie.sh %s',dirname));
|
|
60 % end
|
|
61 end
|