Changes for page Partial Coherence Simulation
Last modified by rangeadm on 2025/04/23 16:13
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,11 +1,15 @@ 1 -In order to simulate the temporal and spectral distribution of SASE pulses there is an easy way based random fluctuations filtered spectraly and temporally. 1 +In order to simulate the temporal and spectral distribution of SASE pulses there is an easy way based random fluctuations filtered spectrally and temporally. 2 2 3 -The only input parameters are the spectral bandwidth and the pulse duration. 3 +The only input parameters are the center wavelength, spectral bandwidth and the pulse duration. 4 4 5 -Here you can find a small python script (by (% class="twikiNewLink" %)MartinB(%%)) implementing the partial coherence method eas described inThomas Pfeifer et al. //Partial-coherence method to model experimental free-electron laser pulse statistics,// Opt. Lett. 35, 3441-3443 (2010); [[link to the paper>>url:http://dx.doi.org/10.1364/OL.35.003441||shape="rect"]]5 +Here you can find a small python script (by (% class="twikiNewLink" %)MartinB(%%)) implementing the partial coherence method as described in: 6 6 7 -The pulseshapesintimeANDcorrespondingspectraldstributioncanbeeasilycreatedwith:7 +* **Thomas Pfeifer et al. //Partial-coherence method to model experimental free-electron laser pulse statistics,// Opt. Lett. 35, 3441-3443 (2010);** [[link to the paper>>url:http://dx.doi.org/10.1364/OL.35.003441||shape="rect"]] 8 8 9 +\\ 10 + 11 +The pulse shapes in time AND corresponding spectral distribution can be easily created with: 12 + 9 9 * ((( 10 10 a python script 11 11 ... ... @@ -25,7 +25,6 @@ 25 25 26 26 EnAxis=np.linspace(0.,20.*CentralEnergy,num=samples) 27 27 EnInput=np.zeros(samples, dtype=np.complex64) 28 -#for i in range(samples): 29 29 EnInput=np.exp(-(EnAxis-CentralEnergy)~*~*2/2./dE~*~*2+2*np.pi*1j*np.random.random(size=samples)) 30 30 En_FFT=np.fft.fft(EnInput) 31 31 TAxis=np.fft.fftfreq(samples,d=(20.*CentralEnergy)/samples)*h ... ... @@ -69,19 +69,28 @@ 69 69 plt.show() 70 70 {{/expand}} 71 71 ))) 72 -* a Jupyter Notebook** [[attach:GenerateSASE.ipynb]] ** 75 +* or the same as a Jupyter Notebook** [[attach:GenerateSASE.ipynb]] ** 73 73 77 +== 78 +Some examples: == 74 74 75 - Someexamplesofresults:80 +//CentralEnergy=80 # in eV// 76 76 77 - \\82 +//bandwidth=0.5 # bandwidth in %// 78 78 79 - [[image:attach:partia__coherence2.png]]or:[[image:attach:image2020-2-5_15-14-4.png||width="480"]]84 +//dt_FWHM=10, 30., 70 # FWHM of the temporal duration on average// 80 80 81 -\\ 82 82 87 + 88 + 89 + [[image:attach:2020-07-07 16_51_14-Window.png||height="250"]] 90 + 83 83 \\ 84 84 93 +[[image:attach:2020-07-07 16_53_22-Window.png||height="250"]] 94 + 95 +[[image:attach:2020-07-07 16_52_27-Window.png||height="250"]] 96 + 85 85 \\ 86 86 87 87 \\