3+1 dimensional simulation of the parametric superfluorescence ring behind a non-collinear parametric amplifier

matlab code
clear all
obj = chi3D('tag','NOPA');
%% ___________________computational parameters_____________________________________
obj('Nx',256,'xWindow',0.0007,...
'Ny',128, 'yWindow',0.00035,... %use Ny=1 for 2+1D, Ny=2^N for 3+1d
'Nt',1024, 'tWindow',2e-12,'shiftFreqWindow',8.55e+13,...
'Nz',300, 'propagationLength', 0.003,...
'GPUOn',1,... %change to 0 to compute without GPU
'showResultEach',100, 'showProgress',1);%plots pump field and PSF evulution during amplification inside the crystal
%% ___________________material parameters__________________________________________
obj( 'material','BBO','theta',0.425775,'phi',0,'plane','XZ','temperature',20,'abortIntensity', inf); %BBO in broadband noncollinear configuration
%% ___________________effects to be included_________________________________________
obj('deff1',2e-12,'noiseOn',1); %noiseOn=1 adds a spectral noise field with a random phase and a spectral power density calculated on basis of Homann, Riedle, et.al., Volume 7, Issue 4 July 2013 Pages 580–588
%% ______________________________input pulse definition______________________________
%pump pulse
obj({ 'pulse1','EorI',2.5e+15,'polarization','e','centerWavelength',5.15e-07,...
'pulseDuration',4e-13,'GD',0,'GDD',0,'TOD',0,'Phase',0,'beamShape_t','gauss',...
'beamRadius_x',100e-6,'beamRadius_y',100e-6,...
'shift_x',0,'shift_y',0,...
'alpha_x',0,'alpha_y',0,...
'slant_x',0,'slant_y',0,...
'radiusOfCurvature_x',0,'radiusOfCurvature_y',0,...
'beamShape_x',{'supergauss',2},'beamShape_y',{'supergauss',2}});
%% ______________________________detector properties________________________________
obj.detectors = rmfield(obj.detectors,fieldnames(obj.detectors)); %delete default detectors
obj.detectors.PSF.plotIntegratedProfiles=1;
obj.detectors.PSF.polarization='o';
obj.detectors.pump.plotIntegratedProfiles=1;
obj.detectors.pump.polarization='e';
%% ______________________________run simulation__________________________________
[E_ftfxfy_o,~]=run(obj,{'pulse1'});
%% compute PSF ring 4 mm behind the crystal
%adapt the sampling of the ordinary field to match the size of the PSF ring
%after 4 mm propagation
N=2;
[E_ftfxfy_PFSring,~,New_tWindow,New_xWindow,New_yWindow]= changeWindowSize(obj,gather(E_ftfxfy_o),0,...
'Nx',256*N,'xWindow',0.0007*N,...
'Ny',256*N,'yWindow',0.0007*N);
% new chi3D obj to perfom linear propagation of 4 mm in vaccum behind the crystal
objP=obj('tag','superfluorescence ring',...
'Nx',256*N,'xWindow',New_xWindow,...
'Ny',256*N, 'yWindow',New_yWindow,...
'GPUOn',0,... % this field will not find in any GPU memory (in 2017)
'material','Vacuum','deff1',0,'deff2',0,'n2',0,'noiseOn',0);
objP.detectors = rmfield(objP.detectors,fieldnames(objP.detectors)); %delete old detectors
%new detector showing only the ordinary field
objP.detectors.PSF.plotIntegratedProfiles=1;
objP.detectors.PSF.polarization='o';
%propagate the ordinary field 4 mm in vacuum
[~,~]=run(objP,{'field2','Eftfxfy',E_ftfxfy_PFSring,'Nz',1,'propagationLength', 4e-3,'showResultEach',1, 'showProgress',1}); % change Nz to see intermediate steps
benchmark on Tesla K40m
computation time constants NOPA 0.11963 s
computation time constants NOPA 0.1018 s
computation time constants NOPA 0.069702 s
computation time constants NOPA 0.000518 s
computation time constants NOPA 0.003284 s
computation time electircal fields NOPA 1.6325 s
computation time constant fields NOPA 7.7341 s
computation time propagation NOPA 75.3597 s
computation time constants superfluorescence ring 0.087786 s
computation time constants superfluorescence ring 0.000172 s
computation time electircal fields superfluorescence ring 0.47684 s
computation time constant fields superfluorescence ring 41.2627 s
Tino Lang