summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmds2/realistic_Rb/Makefile.par15
-rw-r--r--xmds2/realistic_Rb/Makefile.pp29
-rw-r--r--xmds2/realistic_Rb/OptimizationNotes.txt17
-rw-r--r--xmds2/realistic_Rb/pp_I2.m99
-rw-r--r--xmds2/realistic_Rb/realistic_Rb.xmds8
5 files changed, 139 insertions, 29 deletions
diff --git a/xmds2/realistic_Rb/Makefile.par b/xmds2/realistic_Rb/Makefile.par
index cc21c7b..5fddce1 100644
--- a/xmds2/realistic_Rb/Makefile.par
+++ b/xmds2/realistic_Rb/Makefile.par
@@ -7,15 +7,24 @@
### This makefile can be used to build and run the XMDS examples
+XMDS_FILES = $(wildcard *.xmds)
+BASE_NAME = $(patsubst %.xmds,%,$(XMDS_FILES))
+RUN_FILES = $(patsubst %.xmds,%.run,$(XMDS_FILES))
+XSIL_FILES = $(patsubst %.xmds,%.xsil,$(XMDS_FILES))
PARAMS_FILES = $(wildcard *.params)
PP_DIR = $(PARAMS_FILES:%.params=%)
-CALC_XSIL_FILES = $(PARAMS_FILES:%.params=%/data.xsil)
+CALC_XSIL_FILES = $(PARAMS_FILES:%.params=%/$(BASE_NAME).xsil)
default: $(CALC_XSIL_FILES)
-$(CALC_XSIL_FILES): %/data.xsil : % %.params
+$(CALC_XSIL_FILES): %/$(BASE_NAME).xsil : % %.params
echo processing $$(dirname $(@)) dir
- $(MAKE) -C $$(dirname $(@)) -f ../Makefile.pp SCRIPTS_DIR=../ PARAMS_FILE=../$<.params
+ $(MAKE) -C $$(dirname $(@)) \
+ -f ../Makefile.pp \
+ SCRIPTS_DIR=../ \
+ PARAMS_FILE=../$<.params \
+ XSIL_FILES=$(XSIL_FILES) \
+ RUN_FILES=$(RUN_FILES)
$(PP_DIR): % : %.params
echo need to make dir
diff --git a/xmds2/realistic_Rb/Makefile.pp b/xmds2/realistic_Rb/Makefile.pp
index 83e5bec..e24107e 100644
--- a/xmds2/realistic_Rb/Makefile.pp
+++ b/xmds2/realistic_Rb/Makefile.pp
@@ -2,35 +2,20 @@
### This makefile can be used to build and run the XMDS examples
-XSIL_FILES = Nlevels_with_doppler_with_z_4wm.xsil
-M_FILES = $(patsubst %.xsil,%.m,$(XSIL_FILES))
GNUPLOT_FILES = $(wildcard *.gp)
+XSIL_FILES = $(wildcard *.xsil)
+RUN_FILES = $(patsubst %.xsil,%.run,$(XSIL_FILES))
+M_FILES = $(patsubst %.xsil,%.m,$(XSIL_FILES))
-SCRIPTS_DIR = .
+SCRIPTS_DIR = ..
XSIL2GRAPHICS = xsil2graphics
-# fast light
-#PARAMS = --delta1=0 --delta2=0 --delta3=0 --E1o=1.9e7 --E2o=3.1e5 --E3o=3.8e7 --E4o=1e1
-#PARAMS = --delta1=0 --delta2=0 --delta3=0 --E1o=0.1e7 --E2o=1e4 --E3o=.3e7 --E4o=0 --Lcell=1.5e-2 --Temperature=.0001
-PARAMS = \
- --Ndens=1e15 \
- --Lcell=10.0e-2 \
- --Temperature=5 \
- --Pwidth=0.4e-6 \
- --delta1=0 --delta2=0 --delta3=0 \
- --E1o=2e7 --E2o=1e2 --E3o=4e7 --E4o=1e0
-
-
include $(PARAMS_FILE)
+all: $(XSIL_FILES) $(M_FILES) plot fig
-# slow light EIT
-#PARAMS = --delta1=0 --delta2=0 --delta3=0 --E1o=1.9e7 --E2o=3.1e5 --E3o=0 --E4o=0
-
-all: $(XSIL_FILES) Nlevels_with_doppler_with_z_4wm.xsil $(M_FILES) plot fig
-
-Nlevels_with_doppler_with_z_4wm.xsil: ../Nlevels_with_doppler_with_z_4wm.run $(PARAMS_FILE)
+$(XSIL_FILES): ../$(RUN_FILES) $(PARAMS_FILE)
$< $(PARAMS) | grep "Time elapsed for simulation is:" > exact_analysis_execution_time.txt
%.m: %.xsil
@@ -50,11 +35,11 @@ pp_I2.stamp: $(XSIL_FILES) $(M_FILES)
octave -q $(SCRIPTS_DIR)/pp_I2.m
clean:
- rm -f $(M_FILES) $(XSIL_FILES) *.dat octave-core
rm -f pp_I2.stamp
$(MAKE) -f $(SCRIPTS_DIR)/Makefile.fig $@
real_clean: clean
+ rm -f $(M_FILES) $(XSIL_FILES) *.dat octave-core
$(MAKE) -f $(SCRIPTS_DIR)/Makefile.fig $@
rm -f exact_analysis_execution_time.txt
diff --git a/xmds2/realistic_Rb/OptimizationNotes.txt b/xmds2/realistic_Rb/OptimizationNotes.txt
new file mode 100644
index 0000000..4aea670
--- /dev/null
+++ b/xmds2/realistic_Rb/OptimizationNotes.txt
@@ -0,0 +1,17 @@
+I use gcc 4.7.1
+
+Enabling OpenMP option makes my 6 core CPU busy on all 6 of them.
+Surprisingly on Time x Velocity = 10000 x 10 grid it takes longer them with
+disabled OpenMp option and only single core working. I have got 230 seconds
+vs 160 seconds. Besides optimizing wisdom of FFT takes forever with OpenMP.
+
+
+on a grid Time x Velocity = 10000 x 100
+with OpenMP execution time = 988 seconds
+without = 1708 seconds
+
+with 4 thread
+on a grid Time x Velocity = 10000 x 100
+with OpenMP execution time = 1036 seconds
+without = 1603 seconds
+
diff --git a/xmds2/realistic_Rb/pp_I2.m b/xmds2/realistic_Rb/pp_I2.m
new file mode 100644
index 0000000..47b5f48
--- /dev/null
+++ b/xmds2/realistic_Rb/pp_I2.m
@@ -0,0 +1,99 @@
+% suppress output of plots on display
+set (0, "defaultfigurevisible", "off")
+
+realistic_Rb
+
+%% field I2 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
+tmin=-0.4;
+tmax= 0.4;
+ylim([tmin,tmax],'manual');
+xlabel('z (cm)')
+ylabel('t (uS)')
+zlabel('I_2')
+title('I_2')
+print('-color','-depsc2', '-tight', '-S200,120', 'fields_propagation_I2.eps')
+
+desired_x_size=200;
+desired_y_size=200;
+xskip=ceil(length(z_1)/desired_x_size);
+yskip=ceil(length(t_1)/desired_y_size);
+map2dat('I2.dat',z_1,t_1, I2_out_1, xskip, yskip);
+
+
+%% field I4 propagation
+figure(2)
+
+imagesc(z_1, t_1, I4_out_1); colorbar
+tmin=-0.4;
+tmax= 0.4;
+ylim([tmin,tmax],'manual');
+xlabel('z (cm)')
+ylabel('t (uS)')
+zlabel('I_4')
+title('I_4')
+print('-color','-depsc2', '-tight', '-S200,120', 'fields_propagation_I4.eps')
+map2dat('I4.dat',z_1,t_1, I4_out_1, xskip, yskip);
+
+
+
+
+
+%% fields before and after the cell
+figure(3)
+%set(gca,'fontsize',30);
+plot( ...
+ t_1,I2_out_1(:,1),'.-;I_2 before;', "linewidth", 4 ...
+ ,t_1,I2_out_1(:,end), '-;I_2 after;', "linewidth", 4 ...
+ ,t_1,I4_out_1(:,end), '-;I_4 after;', "linewidth", 4 ...
+ )
+xlabel('t (uS)')
+ylabel('I (1/s)^2')
+title('Fields before and after cell')
+legend('location', 'northeast');
+
+[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.01; %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','-depsc2', '-tight','-S200,120', 'fields_before_after_cell.eps')
+print('-color','-depsc2', 'fields_before_after_cell.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));
+I4_max_out=max(I4_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;
+I4_out_norm=(I4_out_1(:,end))/I4_max_out;
+tmin=-.05;
+tmax=.05;
+indx=(t_1>=tmin & t_1<=tmax); % soom in in time to this region
+plot( ...
+ t_1(indx),I2_in_norm(indx),'.-;I_2 before;', "linewidth", 4, ...
+ t_1(indx),I2_out_norm(indx), '-;I_2 after;', "linewidth", 4 ...
+ ,t_1(indx),I4_out_norm(indx), '-;I_4 after;', "linewidth", 4 ...
+ )
+legend('location', 'southeast');
+xlim([tmin,tmax],'manual');
+ylim([0.5,1],'manual');
+xlabel('t (uS)')
+ylabel('I normalized')
+title('Fields 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','-depsc2', '-tight','-S200,120', 'fields_before_after_cell_normalized.eps')
+print('-color','-depsc2', 'fields_before_after_cell_normalized.eps')
+
+fid_stamp=fopen ("pp_I2.stamp", "a+");
+fclose (fid_stamp);
diff --git a/xmds2/realistic_Rb/realistic_Rb.xmds b/xmds2/realistic_Rb/realistic_Rb.xmds
index 598715f..3f558bb 100644
--- a/xmds2/realistic_Rb/realistic_Rb.xmds
+++ b/xmds2/realistic_Rb/realistic_Rb.xmds
@@ -521,10 +521,10 @@
<integration_vectors>E_field</integration_vectors>
<dependencies>density_matrix</dependencies>
<![CDATA[
- dE1_dz = 0.16666666666666666*eta1*(2.449489742783178*r0309 + 4.242640687119286*r0410 + 6.*r0511) - Lt[E1];
- dE2_dz = -0.8164965809277261*eta1*(r0709 + r0810) - Lt[E2];
- dE3_dz = -1.*eta2*(1.7320508075688772*r0614 + 3.*r0715 + 4.242640687119286*r0816) - Lt[E3];
- dE4_dz = (4*eta2*(2.449489742783178*r0113 + 3*r0214 + 3*r0315 + 2.449489742783178*r0416))/3. - Lt[E4];
+ dE1_dz = i*0.16666666666666666*eta1*(2.449489742783178*r0309 + 4.242640687119286*r0410 + 6.*r0511) - Lt[E1];
+ dE2_dz = -i*0.8164965809277261*eta1*(r0709 + r0810) - Lt[E2];
+ dE3_dz = -i*1.*eta2*(1.7320508075688772*r0614 + 3.*r0715 + 4.242640687119286*r0816) - Lt[E3];
+ dE4_dz = i*(4*eta2*(2.449489742783178*r0113 + 3*r0214 + 3*r0315 + 2.449489742783178*r0416))/3. - Lt[E4];
]]>
</operators>
</integrate>