-
Notifications
You must be signed in to change notification settings - Fork 0
/
run_siffer_test.m
111 lines (71 loc) · 2.08 KB
/
run_siffer_test.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
function run_siffer_test
% Wrapper to validate the siffer solver with simplified morphology and flow
% conditions.
%% Define paths
% Root directory for saving and loading simulation data
sim_path = '/Users/mmchenry/Dropbox/Projects/Holzmann/sims/validate';
%sim_path = '/Volumes/Flow HD/Dropbox/Projects/Holzmann/sims/validate';
%% Set parameter values
% Default parameter values
%[sim,pred,prey] = params_validate;
[sim,pred,prey] = params_danio;
run_const_accel = 1;
run_const_grad = 0;
% Visualize flow
vis_flow = 0;
% Vizualize simulation results
vis_sim = 1;
%% Test code on a spatially uniform flow field with constant acceleration
% Used to text predictions of drag
if run_const_accel
% Create spatially uniform flow field
%fl = flow_uniform_ramp(sim,pred,vis_flow);
%save([sim_path filesep 'uni_flow'],'fl')
load([sim_path filesep 'uni_flow.mat'])
% Run simulation
tic
r = siffer(sim,prey,fl);
% Save results
save([sim_path filesep 'sim_results.mat'],'r')
% Report time
t_lapse = toc;
disp(['Sim complete in ' num2str(t_lapse) 's'])
% Visualize results
if vis_sim
figure;
subplot(2,1,1)
plot(r.t,1000.*r.pos(1,:),'k-',r.t,r.pred_pos,'r--')
xlabel('time (s)');ylabel('position (mm)');
if r.cap
title('Captured!');
else
title('Escaped!');
end
subplot(2,1,2)
plot(r.t,r.D(1,:),'r-',r.t,r.PF(1,:),'b-',r.t,r.AR(1,:),'g-')
legend('D','PF','AR')
xlabel('time (s)');ylabel('Force (N)');
end
end
%% Test code on a spatially uniform flow field with fixed spatial gradient
if run_const_grad
% Create spatially uniform flow field
%fl = flow_constant_gradient(sim,pred,vis_flow);
%save([sim_path filesep 'grad_flow'],'fl')
load([sim_path filesep 'grad_flow.mat'])
% Run simulation
tic
r = siffer(sim,prey,fl);
% Save feeding flow field data
save([sim_path filesep 'sim_results.mat'],'r')
% Report time
t_lapse = toc;
disp(['Sim complete in ' num2str(t_lapse) 's'])
% Visualize results
if vis_sim
figure;
plot(r.t,r.pos(:,1),'r--')
xlabel('time');ylabel('position');title('Fixed gradient');
end
end
end