summaryrefslogtreecommitdiff
path: root/xmds2/Nlevels_no_dopler_with_z_4wm
diff options
context:
space:
mode:
Diffstat (limited to 'xmds2/Nlevels_no_dopler_with_z_4wm')
-rw-r--r--xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/Makefile53
-rw-r--r--xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/map2dat.m33
-rw-r--r--xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/plot_fields_propagation_I2.gp15
-rw-r--r--xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/pp_I2.m67
4 files changed, 168 insertions, 0 deletions
diff --git a/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/Makefile b/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/Makefile
new file mode 100644
index 0000000..5a23dff
--- /dev/null
+++ b/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/Makefile
@@ -0,0 +1,53 @@
+### -*- make -*-
+### This makefile can be used to build and run the XMDS examples
+
+
+XSIL_FILES = Nlevels_no_dopler_with_z_4wm.xsil
+M_FILES = $(patsubst %.xsil,%.m,$(XSIL_FILES))
+GNUPLOT_FILES = $(wildcard *.gp)
+
+XSIL2GRAPHICS = xsil2graphics
+
+# fast light
+#PARAMS = --delta1=0 --delta2=0 --delta3=0 --E1o=1.9e7 --E2o=3.1e5 --E3o=3.8e7 --E4o=6.3e4
+# slow light EIT
+PARAMS = --delta1=0 --delta2=0 --delta3=0 --E1o=1.9e7 --E2o=3.1e5 --E3o=0 --E4o=0
+
+all: $(XSIL_FILES) Nlevels_no_dopler_with_z_4wm.xsil $(M_FILES) plot png
+
+Nlevels_no_dopler_with_z_4wm.xsil: ../Nlevels_no_dopler_with_z_4wm.run
+ $< $(PARAMS) | grep "Time elapsed for simulation is:" > exact_analysis_execution_time.txt
+
+%.m: %.xsil
+ $(XSIL2GRAPHICS) $<
+
+plot: $(M_FILES) $(GNUPLOT_FILES)
+ octave pp_I2.m
+ gnuplot plot_fields_propagation_I2.gp
+
+clean:
+ rm -f $(CC_FILES) $(RUN_FILES) $(M_FILES) $(XSIL_FILES) *.wisdom.fftw3 *.dat octave-core *.wisdom *.pdf
+ rm -f $(png_targets)
+
+real_clean: clean
+ rm -f *.eps
+
+eps_targets = $(wildcard *.eps)
+pdf_targets = $(eps_targets:%.eps=%.pdf)
+png_targets = $(pdf_targets:%.pdf=%.png)
+
+pdf: $(pdf_targets)
+
+$(pdf_targets): %.pdf : %.eps
+ cat $< | ps2eps -B > __tt.eps
+ epspdf __tt.eps $@
+ rm -f __tt.eps
+ #ps2eps -B $< | epspdf $< $@
+
+png: pdf $(png_targets)
+
+$(png_targets): %.png : %.pdf
+ convert -density 300 $< $@
+
+.PRECIOUS: %.run %.xsil %.m
+.PHONY: all clean
diff --git a/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/map2dat.m b/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/map2dat.m
new file mode 100644
index 0000000..969b6dc
--- /dev/null
+++ b/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/map2dat.m
@@ -0,0 +1,33 @@
+function map2dat(outfile, x,y,z, xskip, yskip)
+% saves 3D data in suitable way to be drawn by gnuplot
+% x,y - vectors of x,y values
+% z map of z values as used by Octave/Matlab
+% xskip, yskip - skip paprameters
+% only every, xskip, yskip point will be written
+
+
+
+Nx=length(x);
+Ny=length(y);
+Nxs=Nx/xskip;
+Nys=Ny/yskip;
+points=zeros(1,3*Nxs*Nys);
+%points=[];
+tic;
+for i=1:Nxs
+ for k=1:Nys
+ %points=[points x(i*xskip) y(k*yskip) z(k*yskip,i*xskip)];
+ points((i-1)*(Nys-1)*3+3*(k-1)+1) = x(i*xskip);
+ points((i-1)*(Nys-1)*3+3*(k-1)+2) = y(k*yskip);
+ points((i-1)*(Nys-1)*3+3*(k-1)+3) = z(k*yskip,i*xskip);
+ end
+end
+disp('=== points formation complete ===');
+toc
+tic;
+%points
+fd = fopen(outfile, "wt");
+fprintf (fd, "%g %g %g\n", points);
+fclose(fd);
+disp('=== points saving complete ===');
+toc;
diff --git a/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/plot_fields_propagation_I2.gp b/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/plot_fields_propagation_I2.gp
new file mode 100644
index 0000000..b6721d4
--- /dev/null
+++ b/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/plot_fields_propagation_I2.gp
@@ -0,0 +1,15 @@
+set terminal postscript portrait enhanced color solid size 5,3.5
+set output 'fields_propagation_I2.eps'
+set dgrid3d 100,100 qnorm 4
+set pm3d map
+#set contour
+set hidden3d
+set palette rgb 10,13,31 negative
+
+
+set xlabel "z (cm)"
+set ylabel "t ({/Symbol m}S)"
+set zlabel "I_2 (1/S)"
+set nokey
+#set view map
+splot [0:1.5][-0.4:0.4] 'I2.dat'
diff --git a/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/pp_I2.m b/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/pp_I2.m
new file mode 100644
index 0000000..73487e0
--- /dev/null
+++ b/xmds2/Nlevels_no_dopler_with_z_4wm/slow_light/pp_I2.m
@@ -0,0 +1,67 @@
+Nlevels_no_dopler_with_z_4wm
+
+%% field propagation
+z_1=z_1*100; % z in cm
+t_1=t_1*1e6; % time now measured in uS
+figure(1)
+set(gca,'fontsize',20);
+imagesc(z_1, t_1, I2_out_1); colorbar
+xlabel('z (cm)')
+ylabel('t (uS)')
+zlabel('I_2')
+title('I_2')
+
+xskip=1;
+yskip=10;
+map2dat('I2.dat',z_1,t_1, I2_out_1, xskip, yskip);
+
+
+
+print('-color','fields_propagation_I2.eps')
+
+
+
+%% fields before and after the cell
+figure(2)
+%set(gca,'fontsize',30);
+plot( ...
+ t_1,I2_out_1(:,1),'.-;before;', "linewidth", 4, ...
+ t_1,I2_out_1(:,end), '-;after;', "linewidth", 4 ...
+ )
+xlabel('t (uS)')
+ylabel('I_2 (1/s)^2')
+title('I_2 before and after cell')
+legend('location', 'southwest');
+
+[b, a]=butter(3, 0.05);
+I2_out_after=I2_out_1(:,end);
+I2_out_after_filtered=filtfilt(b,a,I2_out_after);
+settling_time=0.8; %uS
+t_good_indx=t_1> min(t_1 + settling_time);
+[m,max_pos_before]=max(I2_out_1(t_good_indx,1) ); [m,max_pos_after]=max(I2_out_after_filtered(t_good_indx));
+delay_time=t_1(max_pos_after)-t_1(max_pos_before);
+printf('Second field delay time = %f uS\n',delay_time);
+
+%set(gca,'fontsize',40);
+set (gcf,'paperposition',[0.5 0 2.5,1.5]); % IMPORTANT to shrink eps size for readable fonts
+print('-color','fields_before_after_cell_I2.eps')
+
+figure(4)
+I2_max_in=max(I2_out_1(t_good_indx,1));
+I2_max_out=max(I2_out_1(t_good_indx,end));
+I2_in_norm=(I2_out_1(:,1))/I2_max_in;
+I2_out_norm=(I2_out_1(:,end))/I2_max_out;
+tmin=-0.05;
+tmax=0.05;
+indx=(t_1>=tmin & t_1<=tmax); % soom in in time to this region
+plot( ...
+ t_1(indx),I2_in_norm(indx),'.-;before;', "linewidth", 4, ...
+ t_1(indx),I2_out_norm(indx), '-;after;', "linewidth", 4 ...
+ )
+xlim([tmin,tmax],'manual');
+xlabel('t (uS)')
+ylabel('I_2')
+title('I_2 before and after cell normalized')
+set (gcf,'paperposition',[0.5 0 2.5,1.5]); % IMPORTANT to shrink eps size for readable fonts
+print('-color','probe_before_after_cell_I2_normalized.eps')
+