SHG with subsequent collinear OPA (long pump pulse)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

SHG with subsequent collinear OPA (long pump pulse)

tinolang
Administrator
This post was updated on .

Contents

%Start to end simulation of the a collinar OPA including the generation of the SHG from a 10ps IR pump laser
%This example includes the SHG, the relay imaging and demagnifigation
%and a first possible collinear OPA stage


%

SHG stage (see example "long pulse SHG")

[~,E_ftfxfy_e_SHG,obj_SHG]=fSHG(); %3D SHG simulation - script was generated by chi2D (3D botton)
% getResults(obj_SHG,E_ftfxfy_e_SHG,0); %recalulates all results as defined by the detectors in obj_temp applied to E_ftfxfy_o_temp



obj_temp=obj_SHG('tag','interim results'); %creates a new instance of obj_SHG
E_ftfxfy_temp=E_ftfxfy_e_SHG;

change the sampling of the green pump pulse

%to reduce the array size of ft and enlarge the sampling of fx and fy for the larger spatial k-vector space of the telescope
[E_ftfxfy_temp,~,shiftFreqWindow] = shiftFrequencyWindow(obj_temp,E_ftfxfy_temp,0,3e8/550e-9); %shifts the frequency window starting right under the pump frequency (IR is not include in the extraordinary field anymore)
obj_temp=obj_SHG('shiftFreqWindow',shiftFreqWindow); %creates a new instance of obj_SHG but with the new frequency window
%getResults(obj_temp,E_ftfxfy_temp,0); %recalulates all results as defined by the detectors in obj_temp applied to E_ftfxfy_o_temp


[E_ftfxfy_temp,~,New_tWindow,New_xWindow,New_yWindow] = changeWindowSize(obj_temp,E_ftfxfy_temp,0,'tWindow',30e-12,'Nt',1024,'Nx',128,'Ny',128); %after the frequency window was shifted the span of this window can be reduced by a decrease of Nt
obj_temp('tWindow',New_tWindow,'xWindow',New_xWindow,'yWindow',New_yWindow,'Nt',1024','Nx',128,'Ny',128); %updates the temporal obj with the new sampling parameters
%getResults(obj_temp,E_ftfxfy_temp,0); %recalulates all results as defined by the detectors in obj_temp applied to E_ftfxfy_o_temp

beam transport

[E_ftfxfy_temp] = relayTelescope(obj_temp,E_ftfxfy_temp,'magnification',1/5,'length',1); %computes the demagnification and different pointing due to the telescope between SHG generation and first OPA stage
E_ftfxfy_temp = 0.95*E_ftfxfy_temp; %atteniuation between SHG and the first OPA stage

change the sampling of the green pump pulse

to enlarge the spectral sampling ft to include pump, signal and idler

[E_ftfxfy_temp2,~,New_tWindow,New_xWindow,New_yWindow] = changeWindowSize(obj_temp,E_ftfxfy_temp,0,'tWindow',30e-12,'Nt',16384,'xWindow',2.2e-3,'Nx',64,'yWindow',2.2e-3,'Ny',64); %for the OPA stage the span of frequency window needs to enlarged again to include pump, signal and idler and the spatial sampling and width is more relaxed due to the collinear propagation in the OPA
obj_temp2=obj_temp('tWindow',New_tWindow,'xWindow',New_xWindow,'yWindow',New_yWindow,'Nt',16384','Nx',64,'Ny',64); %updates obj_temp with the new sampling parameters
%getResults(obj_temp2,E_ftfxfy_temp2,0); %recalulates all results as defined by the detectors in obj_temp applied to E_ftfxfy_o_temp


[E_ftfxfy_temp2,~,shiftFreqWindow] = shiftFrequencyWindow(obj_temp2,E_ftfxfy_temp2,0,3e8/1700e-9); %shifts the frequency window to beyond the longes idler wavelength again
obj_temp2('shiftFreqWindow',shiftFreqWindow); %updates obj_temp with the new sampling parameters
%getResults(obj_temp2,E_ftfxfy_temp2,0); %recalulates all results as defined by the detectors in obj_temp applied to E_ftfxfy_o_temp

first OPA stage (see example "long pulse collinear OPA)

[E_ftfxfy_o_OPA1_2_seed,E_ftfxfy_e_OPA1_2_pump]=fOPA1_1(obj_temp2,E_ftfxfy_temp2); %3D OPA simulation - script was generated by chi2D (3D botton)
plot(obj_temp2.constVect.lambda,abs(E_ftfxfy_o_OPA1_2_seed(:,end/2,end/2))); %not correct -> use getSpectrum(obj,Eftfxfy)


%Start to end simulation of the a collinar OPA including the generation of the SHG from a 10ps IR pump laser
%This example includes the SHG, the relay imaging and demagnifigation
%and a first possible collinear OPA stage


%
%% SHG stage (see example "long pulse SHG")
[~,E_ftfxfy_e_SHG,obj_SHG]=fSHG(); %3D SHG simulation - script was generated by chi2D (3D botton)
% getResults(obj_SHG,E_ftfxfy_e_SHG,0); %recalulates all results as defined by the detectors in obj_temp applied to E_ftfxfy_o_temp



obj_temp=obj_SHG('tag','interim results'); %creates a new instance of obj_SHG
E_ftfxfy_temp=E_ftfxfy_e_SHG; 


%% change the sampling of the green pump pulse
%to reduce the array size of ft and enlarge the sampling of fx and fy for the larger spatial k-vector space of the telescope
[E_ftfxfy_temp,~,shiftFreqWindow] = shiftFrequencyWindow(obj_temp,E_ftfxfy_temp,0,3e8/550e-9); %shifts the frequency window starting right under the pump frequency (IR is not include in the extraordinary field anymore)
obj_temp=obj_SHG('shiftFreqWindow',shiftFreqWindow); %creates a new instance of obj_SHG but with the new frequency window
%getResults(obj_temp,E_ftfxfy_temp,0); %recalulates all results as defined by the detectors in obj_temp applied to E_ftfxfy_o_temp


[E_ftfxfy_temp,~,New_tWindow,New_xWindow,New_yWindow] = changeWindowSize(obj_temp,E_ftfxfy_temp,0,'tWindow',30e-12,'Nt',1024,'Nx',128,'Ny',128); %after the frequency window was shifted the span of this window can be reduced by a decrease of Nt
obj_temp('tWindow',New_tWindow,'xWindow',New_xWindow,'yWindow',New_yWindow,'Nt',1024','Nx',128,'Ny',128); %updates the temporal obj with the new sampling parameters
%getResults(obj_temp,E_ftfxfy_temp,0); %recalulates all results as defined by the detectors in obj_temp applied to E_ftfxfy_o_temp




%% beam transport
[E_ftfxfy_temp] = relayTelescope(obj_temp,E_ftfxfy_temp,'magnification',1/5,'length',1); %computes the demagnification and different pointing due to the telescope between SHG generation and first OPA stage
E_ftfxfy_temp = 0.25*E_ftfxfy_temp; %atteniuation between SHG and the first OPA stage




%% change the sampling of the green pump pulse
% to enlarge the spectral sampling ft to include pump, signal and idler
[E_ftfxfy_temp2,~,New_tWindow,New_xWindow,New_yWindow] = changeWindowSize(obj_temp,E_ftfxfy_temp,0,'tWindow',30e-12,'Nt',16384,'xWindow',2.2e-3,'Nx',64,'yWindow',2.2e-3,'Ny',64); %for the OPA stage the span of frequency window needs to enlarged again to include pump, signal and idler and the spatial sampling and width is more relaxed due to the collinear propagation in the OPA
obj_temp2=obj_temp('tWindow',New_tWindow,'xWindow',New_xWindow,'yWindow',New_yWindow,'Nt',16384','Nx',64,'Ny',64); %updates obj_temp with the new sampling parameters
%getResults(obj_temp2,E_ftfxfy_temp2,0); %recalulates all results as defined by the detectors in obj_temp applied to E_ftfxfy_o_temp


[E_ftfxfy_temp2,~,shiftFreqWindow] = shiftFrequencyWindow(obj_temp2,E_ftfxfy_temp2,0,3e8/1700e-9); %shifts the frequency window to beyond the longes idler wavelength again
obj_temp2('shiftFreqWindow',shiftFreqWindow); %updates obj_temp with the new sampling parameters
%getResults(obj_temp2,E_ftfxfy_temp2,0); %recalulates all results as defined by the detectors in obj_temp applied to E_ftfxfy_o_temp




%% first OPA stage (see example "long pulse collinear OPA)
[E_ftfxfy_o_OPA1_2_seed,E_ftfxfy_e_OPA1_2_pump]=fOPA1_1(obj_temp2,E_ftfxfy_temp2); %3D OPA simulation - script was generated by chi2D (3D botton)
plot(obj_temp2.constVect.lambda,abs(E_ftfxfy_o_OPA1_2_seed(:,end/2,end/2))); %not correct -> use getSpectrum(obj,Eftfxfy)


	
	
	
Tino Lang