summaryrefslogtreecommitdiff
path: root/simulate.m
blob: ebf882f282af66c275e6b45e165ba6b874cc122b (plain)
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
clear

matlabPath = getenv('LD_LIBRARY_PATH');
libPath = getenv('PATH');

setenv('LD_LIBRARY_PATH', libPath);
system('xmds2 eit.xmds');
setenv('LD_LIBRARY_PATH', matlabPath);

decay_bc = 0.001;
decay_ab = 6;

widths = [];
absorptions = [];
drives = logspace(-2, -3, 10);
drives = linspace(0.003298,0.003319,20);
detunings1 = [0:2:0];
dephase_bc = 0.05;

for drive = drives
    width_row = [];
    absorption_row = [];
    expected_width = (drive^2/decay_ab + dephase_bc + decay_bc);
    domain_max = expected_width*10;
    domain_min = -1*domain_max;
    final_time = 1/expected_width*100;
    for detuning1 = detunings1
    
        run_eit = sprintf('time ./eit --drive_arg=%f --decay_arg=%f --decay_bc_arg=%f --delta1_arg=%f --domain_min=%f --domain_max=%f --dephase_bc_arg=%f --final_time=%f', drive, decay_ab, decay_bc, detuning1, domain_min, domain_max, dephase_bc, final_time);
        
        setenv('LD_LIBRARY_PATH', libPath);
        system(run_eit);
        system('xsil2graphics2 -m eit.xsil');
        setenv('LD_LIBRARY_PATH', matlabPath);
        %[drive, detuning1] % Use for debugging
        run('eit.m');
        detunings2 = detuning_1';
        PabI = PabI_1(end,:)';
        [fwhm, absorption_min] = getPeak(detunings2, PabI);
        
        width_row = [width_row, fwhm];
        absorption_row = [absorption_row, absorption_min];
        eit_plot = [detunings2, PabI];
        csv_name = sprintf('data/%f_%f_%f_%f.dat', decay_bc, drive, detuning1, dephase_bc);
        csvwrite(csv_name, eit_plot);
    end
    widths = [widths; width_row];
    absorptions = [absorptions; absorption_row];
end


% plot(drives.^2, widths, drives.^2, absorptions*10^5)
% legend('width', 'absorption')
% xlabel('Drive^2')

% figure
% surf(detunings1, drives, widths)
% xlabel('detuning')
% ylabel('drive')
% zlabel('width')

% figure
% surf(detunings1, drives, absorptions)
% xlabel('detuning')
% ylabel('drive')
% zlabel('absorption')

% plot(detunings2, PabI)
% xlabel('Detuning')
% ylabel('Absorption')
% title(['Drive equals ' [int2str(drive)]])


save(['workspaces/workspace_', datestr(clock,0), '.mat']);