Last modified by rangeadm on 2025/04/23 16:13

From version 25.1
edited by sndueste
on 2022/03/17 17:47
Change comment: There is no comment for this version
To version 24.1
edited by sndueste
on 2021/03/24 15:23
Change comment: There is no comment for this version

Summary

Details

Page properties
Tags
... ... @@ -1,1 +1,0 @@
1 -favourite|fel|simulation
Content
... ... @@ -31,14 +31,12 @@
31 31  
32 32  \\
33 33  
34 -offline version:
34 +\\
35 35  
36 +[[attach:GenerateSASE.ipynb]]
36 36  
38 +[[attach:GenerateSASE.py]]
37 37  
38 -{{view-file att--filename="simulating_SASE_pulses.pdf" height="250"/}}
39 -
40 -[[attach:simulating_SASE_pulses.ipynb]]
41 -
42 42  \\
43 43  
44 44  \\
... ... @@ -48,5 +48,3 @@
48 48  \\
49 49  
50 50  \\
51 -
52 -\\
2020-07-07 16_48_07-Window.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -82.8 KB
Content
2020-07-07 16_51_14-Window.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -59.9 KB
Content
2020-07-07 16_52_27-Window.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -95.5 KB
Content
2020-07-07 16_53_22-Window.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -75.7 KB
Content
GenerateSASE.ipynb
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -3.5 KB
Content
... ... @@ -1,104 +1,0 @@
1 -{
2 - "cells": [
3 - {
4 - "cell_type": "code",
5 - "execution_count": 1,
6 - "metadata": {
7 - "collapsed": true
8 - },
9 - "outputs": [],
10 - "source": [
11 - "import numpy as np\n",
12 - "import matplotlib.pyplot as plt\n",
13 - "\n",
14 - "def GetSASE(CentralEnergy, dE_FWHM, dt_FWHM, samples=0, Axis=True):\n",
15 - " h=4.135667662 #in eV*fs\n",
16 - " dE=dE_FWHM/2.355 #in eV, converts to sigma\n",
17 - " dt=dt_FWHM/2.355 #in fs, converts to sigma\n",
18 - " if samples == 0:\n",
19 - " \tsamples=int(400.*dt*CentralEnergy/h)\n",
20 - " else:\n",
21 - " \tif (samples < 400.*dt*CentralEnergy/h):\n",
22 - " \t\tprint(\"Number of samples is a little small, proceeding anyway. Got\", samples, \"prefer more than\",400.*dt*CentralEnergy/h)\n",
23 - "\n",
24 - " EnAxis=np.linspace(0.,20.*CentralEnergy,num=samples)\n",
25 - " EnInput=np.zeros(samples, dtype=np.complex64)\n",
26 - " #for i in range(samples):\n",
27 - " EnInput=np.exp(-(EnAxis-CentralEnergy)**2/2./dE**2+2*np.pi*1j*np.random.random(size=samples))\n",
28 - " En_FFT=np.fft.fft(EnInput)\n",
29 - " TAxis=np.fft.fftfreq(samples,d=(20.*CentralEnergy)/samples)*h\n",
30 - " TOutput=np.exp(-TAxis**2/2./dt**2)*En_FFT\n",
31 - " EnOutput=np.fft.ifft(TOutput)\n",
32 - " if (Axis):\n",
33 - " \treturn EnAxis, EnOutput, TAxis, TOutput\n",
34 - " else:\n",
35 - " \treturn EnOutput, TOutput\n",
36 - "\n"
37 - ]
38 - },
39 - {
40 - "cell_type": "code",
41 - "execution_count": 2,
42 - "metadata": {
43 - "collapsed": true
44 - },
45 - "outputs": [],
46 - "source": [
47 - "\n",
48 - "# set the main parameters here:\n",
49 - "CentralEnergy=80. # in eV\n",
50 - "bandwidth=0.5 # bandwidth in %\n",
51 - "dt_FWHM=30. # FWHM of the temporal duration on average \n",
52 - "\n",
53 - "dE_FWHM=CentralEnergy/100 *bandwidth # calculate bandwidth of the spectrum in eV\n",
54 - "\n",
55 - "# calculate 3 SASE pulses\n",
56 - "EnAxis, EnOutput, TAxis, TOutput = GetSASE(CentralEnergy=CentralEnergy, dE_FWHM=dE_FWHM, dt_FWHM=dt_FWHM)\n",
57 - "EnAxis2, EnOutput2, TAxis2, TOutput2 = GetSASE(CentralEnergy=CentralEnergy, dE_FWHM=dE_FWHM, dt_FWHM=dt_FWHM)\n",
58 - "EnAxis3, EnOutput3, TAxis3, TOutput3 = GetSASE(CentralEnergy=CentralEnergy, dE_FWHM=dE_FWHM, dt_FWHM=dt_FWHM)\n",
59 - "\n",
60 - "\n",
61 - "# plot spectrum\n",
62 - "ax1 = plt.subplot(1, 2, 1)\n",
63 - "plt.plot(EnAxis,np.absolute(EnOutput),EnAxis2,np.absolute(EnOutput2),EnAxis3,np.absolute(EnOutput3) )\n",
64 - "plt.xlim(CentralEnergy-2.*dE_FWHM,CentralEnergy+2.*dE_FWHM)\n",
65 - "plt.title('Average pulse duration: %.1f fs' % dt_FWHM ) \n",
66 - "ax1.set_xlabel('Photon energy in eV')\n",
67 - "ax1.set_ylabel('spectral intensity')\n",
68 - "\n",
69 - "# plot time structure\n",
70 - "ax1 =plt.subplot(1, 2, 2)\n",
71 - "plt.plot(TAxis,np.absolute(TOutput),TAxis2,np.absolute(TOutput2), TAxis3,np.absolute(TOutput3))\n",
72 - "plt.xlim(-2.*dt_FWHM,+2.*dt_FWHM)\n",
73 - "ax1.set_xlabel('time in fs')\n",
74 - "ax1.set_ylabel('pulse amplitude')\n",
75 - "\n",
76 - "plt.show()\n",
77 - "\n",
78 - "\n"
79 - ]
80 - }
81 - ],
82 - "metadata": {
83 - "kernelspec": {
84 - "display_name": "Python 3",
85 - "language": "python",
86 - "name": "python3"
87 - },
88 - "language_info": {
89 - "codemirror_mode": {
90 - "name": "ipython",
91 - "version": 3
92 - },
93 - "file_extension": ".py",
94 - "mimetype": "text/x-python",
95 - "name": "python",
96 - "nbconvert_exporter": "python",
97 - "pygments_lexer": "ipython3",
98 - "version": "3.4.3"
99 - }
100 - },
101 - "nbformat": 4,
102 - "nbformat_minor": 0
103 -}
104 -
GenerateSASE.py
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -2.0 KB
Content
... ... @@ -1,56 +1,0 @@
1 -import numpy as np
2 -import matplotlib.pyplot as plt
3 -
4 -def GetSASE(CentralEnergy, dE_FWHM, dt_FWHM, samples=0, Axis=True):
5 -h=4.135667662 #in eV*fs
6 -dE=dE_FWHM/2.355 #in eV, converts to sigma
7 -dt=dt_FWHM/2.355 #in fs, converts to sigma
8 -if samples == 0:
9 -samples=int(400.*dt*CentralEnergy/h)
10 -else:
11 -if (samples < 400.*dt*CentralEnergy/h):
12 -print("Number of samples is a little small, proceeding anyway. Got", samples, "prefer more than",400.*dt*CentralEnergy/h)
13 -
14 -EnAxis=np.linspace(0.,20.*CentralEnergy,num=samples)
15 -EnInput=np.zeros(samples, dtype=np.complex64)
16 -EnInput=np.exp(-(EnAxis-CentralEnergy)**2/2./dE**2+2*np.pi*1j*np.random.random(size=samples))
17 -En_FFT=np.fft.fft(EnInput)
18 -TAxis=np.fft.fftfreq(samples,d=(20.*CentralEnergy)/samples)*h
19 -TOutput=np.exp(-TAxis**2/2./dt**2)*En_FFT
20 -EnOutput=np.fft.ifft(TOutput)
21 -if (Axis):
22 -return EnAxis, EnOutput, TAxis, TOutput
23 -else:
24 -return EnOutput, TOutput
25 -
26 -
27 -# set the main parameters here:
28 -CentralEnergy=80. # in eV
29 -bandwidth=0.5 # bandwidth in %
30 -dt_FWHM=30. # FWHM of the temporal duration on average
31 -
32 -dE_FWHM=CentralEnergy/100 *bandwidth # calculate bandwidth of the spectrum in eV
33 -
34 -# calculate 3 SASE pulses
35 -EnAxis, EnOutput, TAxis, TOutput = GetSASE(CentralEnergy=CentralEnergy, dE_FWHM=dE_FWHM, dt_FWHM=dt_FWHM)
36 -EnAxis2, EnOutput2, TAxis2, TOutput2 = GetSASE(CentralEnergy=CentralEnergy, dE_FWHM=dE_FWHM, dt_FWHM=dt_FWHM)
37 -EnAxis3, EnOutput3, TAxis3, TOutput3 = GetSASE(CentralEnergy=CentralEnergy, dE_FWHM=dE_FWHM, dt_FWHM=dt_FWHM)
38 -
39 -
40 -# plot spectrum
41 -ax1 = plt.subplot(1, 2, 1)
42 -plt.plot(EnAxis,np.absolute(EnOutput),EnAxis2,np.absolute(EnOutput2),EnAxis3,np.absolute(EnOutput3) )
43 -plt.xlim(CentralEnergy-2.*dE_FWHM,CentralEnergy+2.*dE_FWHM)
44 -plt.title('Average pulse duration: %.1f fs' % dt_FWHM )
45 -ax1.set_xlabel('Photon energy in eV')
46 -ax1.set_ylabel('spectral intensity')
47 -
48 -# plot time structure
49 -ax1 =plt.subplot(1, 2, 2)
50 -plt.plot(TAxis,np.absolute(TOutput),TAxis2,np.absolute(TOutput2), TAxis3,np.absolute(TOutput3))
51 -plt.xlim(-2.*dt_FWHM,+2.*dt_FWHM)
52 -ax1.set_xlabel('time in fs')
53 -ax1.set_ylabel('pulse amplitude')
54 -
55 -plt.show()
56 -
SASEPulseGenV2.ipynb
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -103.3 KB
Content
SASEPulseGenV4.ipynb
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -3.7 KB
Content
... ... @@ -1,105 +1,0 @@
1 -{
2 - "cells": [
3 - {
4 - "cell_type": "code",
5 - "execution_count": 1,
6 - "metadata": {
7 - "collapsed": false
8 - },
9 - "outputs": [],
10 - "source": [
11 - "# -*- coding: utf-8 -*-\n",
12 - "import numpy as np\n",
13 - "from IPython import embed\n",
14 - "import matplotlib.pyplot as plt\n",
15 - "\n",
16 - "def GetSASE(CentralEnergy, dE_FWHM, dt_FWHM, samples=0, Axis=True):\n",
17 - " h=4.135667662 #in eV*fs\n",
18 - " dE=dE_FWHM/2.355 #in eV, converts to sigma\n",
19 - " dt=dt_FWHM/2.355 #in fs, converts to sigma\n",
20 - " if samples == 0:\n",
21 - " \tsamples=int(400.*dt*CentralEnergy/h)\n",
22 - " else:\n",
23 - " \tif (samples < 400.*dt*CentralEnergy/h):\n",
24 - " \t\tprint(\"Number of samples is a little small, proceeding anyway. Got\", samples, \"prefer more than\",400.*dt*CentralEnergy/h)\n",
25 - "\n",
26 - " EnAxis=np.linspace(0.,20.*CentralEnergy,num=samples)\n",
27 - " EnInput=np.zeros(samples, dtype=np.complex64)\n",
28 - " #for i in range(samples):\n",
29 - " EnInput=np.exp(-(EnAxis-CentralEnergy)**2/4./dE**2+2*np.pi*1j*np.random.random(size=samples))\n",
30 - " En_FFT=np.fft.fft(EnInput)\n",
31 - " TAxis=np.fft.fftfreq(samples,d=(20.*CentralEnergy)/samples)*h\n",
32 - " TOutput=np.exp(-TAxis**2/4./dt**2)*En_FFT\n",
33 - " EnOutput=np.fft.ifft(TOutput)\n",
34 - " if (Axis):\n",
35 - " \treturn EnAxis, EnOutput, TAxis, TOutput\n",
36 - " else:\n",
37 - " \treturn EnOutput, TOutput\n",
38 - "\n"
39 - ]
40 - },
41 - {
42 - "cell_type": "code",
43 - "execution_count": 2,
44 - "metadata": {
45 - "collapsed": false
46 - },
47 - "outputs": [],
48 - "source": [
49 - "# set the main parameters here:\n",
50 - "CentralEnergy=80. # in eV\n",
51 - "bandwidth=0.3 # bandwidth in %\n",
52 - "dt_FWHM=30. # FWHM of the temporal duration on average \n",
53 - "\n",
54 - "dE_FWHM=CentralEnergy/100 *bandwidth # calculate bandwidth of the spectrum in eV\n",
55 - "\n",
56 - "# calculate 3 SASE pulses\n",
57 - "EnAxis, EnOutput, TAxis, TOutput = GetSASE(CentralEnergy=CentralEnergy, dE_FWHM=dE_FWHM, dt_FWHM=dt_FWHM)\n",
58 - "EnAxis2, EnOutput2, TAxis2, TOutput2 = GetSASE(CentralEnergy=CentralEnergy, dE_FWHM=dE_FWHM, dt_FWHM=dt_FWHM)\n",
59 - "EnAxis3, EnOutput3, TAxis3, TOutput3 = GetSASE(CentralEnergy=CentralEnergy, dE_FWHM=dE_FWHM, dt_FWHM=dt_FWHM)\n",
60 - "\n",
61 - "\n",
62 - "# plot them\n",
63 - "ax1 = plt.subplot(1, 2, 1)\n",
64 - "plt.plot(EnAxis,np.absolute(EnOutput),EnAxis2,np.absolute(EnOutput2),EnAxis3,np.absolute(EnOutput3) )\n",
65 - "plt.xlim(CentralEnergy-2.*dE_FWHM,CentralEnergy+2.*dE_FWHM)\n",
66 - "plt.title('Average pulse duration: %.1f fs' % dt_FWHM ) \n",
67 - "ax1.set_xlabel('Photon energy in eV')\n",
68 - "ax1.set_ylabel('spectral intensity')\n",
69 - "\n",
70 - "ax1 =plt.subplot(1, 2, 2)\n",
71 - "plt.plot(TAxis,np.absolute(TOutput),TAxis2,np.absolute(TOutput2), TAxis, np.max(np.absolute(TOutput))*np.exp(-TAxis**2/2/dt_FWHM**2*2.355**2))\n",
72 - "plt.plot(TAxis,np.absolute(TOutput),TAxis2,np.absolute(TOutput2), TAxis3,np.absolute(TOutput3))\n",
73 - "\n",
74 - "plt.xlim(-2.*dt_FWHM,+2.*dt_FWHM)\n",
75 - "ax1.set_xlabel('time in fs')\n",
76 - "ax1.set_ylabel('pulse amplitude')\n",
77 - "\n",
78 - "plt.show()\n"
79 - ]
80 - }
81 - ],
82 - "metadata": {
83 - "celltoolbar": "Raw Cell Format",
84 - "kernelspec": {
85 - "display_name": "Python 3",
86 - "language": "python",
87 - "name": "python3"
88 - },
89 - "language_info": {
90 - "codemirror_mode": {
91 - "name": "ipython",
92 - "version": 3
93 - },
94 - "file_extension": ".py",
95 - "mimetype": "text/x-python",
96 - "name": "python",
97 - "nbconvert_exporter": "python",
98 - "pygments_lexer": "ipython3",
99 - "version": "3.4.3"
100 - }
101 - },
102 - "nbformat": 4,
103 - "nbformat_minor": 2
104 -}
105 -
badge_logo.svg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -3.3 KB
Content
... ... @@ -1,1 +1,0 @@
1 -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="109" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="109" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h64v20H0z"/><path fill="#579aca" d="M64 0h45v20H64z"/><path fill="url(#b)" d="M0 0h109v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/png;base64,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"/> <text x="415" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="370">launch</text><text x="415" y="140" transform="scale(.1)" textLength="370">launch</text><text x="855" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">binder</text><text x="855" y="140" transform="scale(.1)" textLength="350">binder</text></g> </svg>
binder_badge.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -6.6 KB
Content
image2020-2-5_15-14-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -55.4 KB
Content
partia__coherence1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -328.7 KB
Content
partia__coherence2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -72.5 KB
Content
simulating_SASE_pulses.ipynb
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -147.1 KB
Content
simulating_SASE_pulses.pdf
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -33.4 KB
Content