This example shows how to use the telescope method of chi3D, e.g. in start-2-end simulations
% galilai telescope
clear all
close all
clc
%% create chi3D obj with standard SHG from 1030nm pulse example with
obj=chi3D('tag','galilai telescope',...
'Nt',64,... %sampling in time is relaced if the SHG pulse must not be sampled - check limit using obj.constVect.lambda(end)
'xWindow',4e-3,'yWindow',4e-3); % larger aperture - telescope will not work with to small beams
%% remove detector for SHG pulse
obj = obj.removeDetectors('SHGexample_green');
obj.detectors.SHGexample_IR.ftlim=[3e8/1050e-9 3e8/950e-9];
%% create complex field
[Eftfxfy,~] = obj.getFields({'pulse1','beamRadius_x',1e-3,'beamRadius_y',1e-3});
results = obj.getResults(Eftfxfy,0);
disp('beam radius in x and y (mm)')
disp([results.SHGexample_IR.diameter2M_x*1e3/2 results.SHGexample_IR.diameter2M_y*1e3/2])
%% propagate pulse through telescope
[new_E_ftfxfy] = obj.galileiTelescope(Eftfxfy,'magnification',0.75,'length',0.25);
%%
results = obj.getResults(new_E_ftfxfy,0);
disp('beam radius in x and y (mm)')
disp([results.SHGexample_IR.diameter2M_x*1e3/2 results.SHGexample_IR.diameter2M_y*1e3/2])
computation time constants galilai telescope 0.16872 s
computation time constants galilai telescope 0.0008926 s
computation time electric fields galilai telescope 0.083717 s
beam radius in x and y (mm)
0.9994 0.9994
computation time constants galilai telescope 0.022711 s
computation time constants galilai telescope 0.0005123 s
computation time electric fields galilai telescope 0.024891 s
computation time constant fields galilai telescope 0.33605 s
computation time propagation galilai telescope 1.1139 s
computation time constants galilai telescope 0.0069308 s
computation time electric fields galilai telescope 0.047649 s
beam radius in x and y (mm)
0.7538 0.7538
Tino Lang