From 7d9cea4531dd330e5edf698e769df553c804de82 Mon Sep 17 00:00:00 2001 From: Janita Willumsen Date: Sat, 30 Dec 2023 15:09:34 +0100 Subject: [PATCH] Finished abstract and conclusion. --- latex/images/probability_deviation.pdf | Bin 136911 -> 137426 bytes latex/schrodinger_simulation.tex | 14 +- latex/sections/abstract.tex | 24 ++-- latex/sections/appendices.tex | 57 ++++++++- latex/sections/conclusion.tex | 44 ++++--- latex/sections/introduction.tex | 4 + latex/sections/methods.tex | 171 ++++++++++++++----------- latex/sections/results.tex | 83 ++++++++++-- python_scripts/normalization.py | 23 +++- 9 files changed, 287 insertions(+), 133 deletions(-) diff --git a/latex/images/probability_deviation.pdf b/latex/images/probability_deviation.pdf index d8baea3be729534dd3edb08f13aa78d776f080c1..c25bc6bf7d4348cddff49efe4886b75b53e19729 100644 GIT binary patch delta 6138 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 E54wa#*Z=?k delta 5607 zcmZu#c{CN=*A8`wo5)PJj2D^iJR~zAAu=mmt}*iz*Kj3WGZ`{Zkuf1tulYrE&6zKf z%w#Haratet*0;X(>;0Xz_S$Y62l8eASF?}k9nn( zT%0|vojpBxvAhsoUEYMdR0c%Tav^oM7ZNuH$|U{g*xlRgfd|JsPiyw9z7=}@-fSVxd<{I_UoAW& zXPd85d}B}#&DVY^O^I&BEfG%DzwT@LeA@`k3S46;FIiLbC8xPd+tdY~ot}C)s7f-> z>>r-ymHmj7%6c;w`pC>WN??A5c(lLwcKmm<>}hov+pj(I!#z-7Dmu5tM#ey*>b^PC zm1(Jf=WN3^MS&aAGw6Es^wdL$vdlw zj{Cn4OKtpxW){E3G^v96GCx_F5BqVsQ2bt1cBjeJA9U0DlzI?Sg4Ysr)vzTalIyjA%Z42-NIVpU(RTtaYTykvC z+9*A4y!=J3{&6AL_Qq2wS=ztKfl~%%9z-SEqh(cy# zjU9cu*6}Xy{nd)H1^3drmp45|j^0aGlb4@9 zrW~!{Gh@#SNejRSSremZVoaVs#m*GsmZ@wUtY2xLEV!_~d#j~*Ay%f_?y|Mp%KQcs zHc@n+u$T8HjzzFi)ypyVYCp}+fPt<34xvwuQU-b)V6uPDEBTAC*0a8tAd$tx1UC@% z)EdWDyLw?6k{DChvwm&(a;wW^YAK_}u|ZSnV+Ua4?xfEQ_x3U;h@wx}rtHbLKZ_8} zqjX8n{w{y~Stu%ACHA$Mba-3i{+%B`OZ;$c8YZpy%!gT~#sg(3qEVIwuQzP8R#U8Y zCGu7jE8ZH0=egg|ZSc{rfC|-!2}s$LYnp}%ImL3JVu?Izyvssdytdz|y|0(3jnoS@aS4fq zP>l8sN8(ntvJl9j@|69POgiV3y-XCTQavJl6z9A4`Q+8hd!C_=7F;uwIU7OLQ+umu z(RnPWMs7$yt9Yk-T>1jVo37DBRI1IujC(9&jY@7dn;aoSVnkw$`l1+mPwf_~J=AVq zdj0w5Gp8f64S8zt$X>YNl2hZlnz~(gdB%YkiAblOl^W>%R20*T#nKD)#`6@X?ex+%L*I zt!r4X)WM&xyXLx8mUpG80~^+#JEGP(t8FB|^?Toqtx3}=S}}a32`Ut)vp=jA0Z#N! z!xIP35*WQ?g~UF*p%<^+87T@83*h^BWh1JXeWCIo81WgWhqdd{4oK(X%cRi9-nFb=(;7@!$2 zUWQ_f^M%XYuZ+ERGb8thLEP<_fCf{e0+Gf^P%ctsc61XHUUVLZzBkpZeNecVMa(HF zFAQs(kT3~m33WDgQzR51(!w1|*u+~SON!Y`WX5X5Yab?>Z!pTf=n*tHS-3W6*xsI& z9M;TbmNPA2jK|4q*kHCIh3Z|XY#EZt$9XTh)gn+?agTF19dH>ux$m>%rujDw@iG=e z0xcfD*|$vMx960pm*7T2ZCkb#MBd%@i*&drUc!FqBT6;+dmjL=45gfyT_f3?7%~Vk zxb1c-DP8^hfiDdhNPYS3FSqub)e?_iHwcBhnwFBY&z+p*3lwP1={>!+Mw3Cq{4oDl z8?PAe(=$J%k|HB}Wy@+Z?Xy*G%vDQcJU9mC58}z3Xl2D|g zoJ1naZlId@T*w_L!$hJuEI?>AQ_Ve~Ni*;b?o)A3u)cC(_G^`$3eCV^tcvF(@T&H~ z(^!Szo#F5N^-cz%+L6xbqwcceNEZZ>HKdIgDHmr6M)D{u*I%Be3!#VfM zfL)%I$e8jajWm%Dlb~xHSCqI6WoJ}thLr0x<0*x9oDu5RIP^Tt9&D;+cC3BQ40X^? zE2?$E-zv-xcaY-_A5y6qkWA&S9a5ZGRip z(`D|(s<~9BHxxgJP9w;Gi_ktPeI|ZxREhQ^of*x-c*S5Bx~-fZF(zv*W+5z zRL}CyZ&04AN_x|Gg1|g}9;{xJms#g=^yR5avom&2?&**B8EO6U3k+e_YPV7tUJf<% z0LI-$f_D&{V?^0EoGA=BHz)wI0Z0{z8F=m%SWLS_Q~#`kdF!Ppli99u-rJ{ztTY}} zs9ojxCt%HDz!LRGj%US5e?9DOU8Sz8OI6bXC8t?P%IDf26^q5~4UcS2pXjpnUQ#3U zj@CyjS@u`uUN##Fthryzute=>n7D&84hk(0HG_EF!x14@d1pQo^UJaxwVmYWCovFu z8iYF9?gU-Yf1jzTpQOjIBhQkzoKYVywAglsH(Ihc6IC+;+_^9(%k5onaVxOY8gjGC?aD!j zHB1OykPYFsWXzf1vmwNV%5~t?H*^+kZx=;R5$`Tr&+97m23FE;$!v>;th+bO+x=`mCMt$AIwk(2niBut5&Q1RjG#Nj}*{G!~;uSa}Kb5_RWO{2YM zU>CX`UTmA#(Y-%HHKbB%X8Q1xyb1l%-SPOztfhAGd}Wyj>%2*Ogl83%i4N-s!QhxY zsL*5x>UytTg!C$wXX64 z^7{3O%-aw)uuRc^Wv`>dnO*^dW35cc)yhOnN&!TJUfFQ^DQrz$C+QSenWs5?pakF`=^?pr~OZo8cP7W^=9+jv2Ix00bdpjlnEMIdr zJ6dN14b_(BMq^!;g`n}`eOcM#r;WsQz3O^{AhC@1J<^xf`4g5mM|Xy6zkpWj8wR}R zo-KU$X?EV4-vli-x2US|aI%t)@Vu)f7|xh@NG zM>!8yAJ3U(#BG0mX!OE4+wg!;tT)D$k1gx*tJ7Dk+;E!TX>JJ}v};V;_*A#a<1Z-g z|3QMVqEW_k0%;!ddLi{8O{Arx(&E)xo2-Bi0JU5DlQ2WEGJl0BZc&;fTyNuAK=Qy9+v$zw9#yJda%@4?m(%8+SeNSu*0KjH zY<*q6saNGJRD~VIK<0tz+P2TPc;ujKGkw7KdF#YBpfu5gwWjJSHhu3V5l`}@wy@*e zT*>4n)kvd&w3uZQwHDx-hbW=3m2W162LlxT@JdoYo^IpH>d-8Yh|QBrrTt7g3vfn0 z6~-!fhpR4s5vPH>l8TDV3Uh?)h930(oL-#ysvcB6pFu1>9VABb1&NcMOU0=yMJuz5 z>cz0nPde9fG6rjLa2*htA1^FIA4koj&GanM`9J-p{h_8V_L{U*ca7<;ze2$EFYW`j#6K@ClBxmxJ)F#=oOS1M{O1cp+qY>5U%rED!<`)VSe>x zF1dSR6cahSXZ^Q zSwNgy!tL-V;(R|p%_Nw;>tw=M@HPVP;e_(9BCAPes=!oN-5>ru0bk;~SAZpnDAA=n zaIZbpSLC9LX6c61v2?G9s3t~LWIov5fH2={W)oHnZ+i~kl;!YYxhGToZZQZJEK8dR zbOSy3PF0#sPz;JUPNV6@99$9EyD*u4gX!`EK-5|g5$2P2!J0RYQKZYOUzjFb?w4R; z(2n|{ax=3_>5tBYb!1@zUx}7*JL-{pi=FwFh-uL zk>LbT?PAzy%a1FO64q^DOvjYV!cuMOHu6bmGEnrJU_uut;eLUtGOUYSsC^MWyGY(kVv=j(KrTyV|@F5&p5Up92LJAIJw zoxY0k3>T7x^h^|Rdnp~qb9-jNMV5I6c*fh@^%dUC#b|jEBaqlcCH#TuB1Vav=|XB+ z^?~aS@wjx(raJ>dF<(X+j2wNQr}U$+JsC~_O=vY&{A3rHgN-_!?^VW=Tb)EPZ?3yW z@RT_{xT{-enp=FjJz!~b1s3wf4S%>q8YWx()vi`%@{zy&faKP;ni zQ**eUir%i6>wLhTf$E&)K~)B09f0=V-atQoQLu82f8JR^n*j&xZ>7YE@hjYw9bm!( z84#VE%@uQDP|8LKG_0JallW4jpX2##KZjDKv>7mB(I<{ZgEcM^prh)6&BZ?? zO5)^q!CHp7v7r^Cv}fqzO#S)8#0xJn6^{$~lbLx5~ z$p_N!Z$B@0^ zA(oG}qnYc%m{b-1b(~5W zUYV`^%&mxw%t+z4Eo13ma;A;IP4u(O52Lm5NQ|2$PYVIt{^pqrn9Yn+r*m;@=xt(r55xQ>Tn23jrY{_;?9%*b#erHcaO zq;-MYi^|Zy$j>ZYTc|q@zxA;^_s41hb-dEZs!YM*t+#E%U*C|10cVf5T~D@|cY}9fB=Yc4_l+rod)855d8Ru!u zE24ZG27$q$Fc=Jqh9VKkZ0yvUwh$^l2$3x*rGzRrA41xO)T<{0|*EV0s8}kAh9s?pBM^?`lB%j z0&;%YA3QVyhWX!m#Q&ebIS~u}qcaEs3WcBlfBv)nZ&DC60s;L)G!%k_VgD3}K7Xk{ z1)`DA{}5yR&*&jY1nkd(a3l)(M> \delta$ \cite[p. 6]{mit:2004:physics}. In this case, we observe constructive interference when \begin{align*} @@ -111,24 +113,32 @@ this case, we observe constructive interference when \end{align*} and destructive interference when \begin{align*} - \delta = (m + \frac{1}{2}) \lambda && m = 0, \pm 1, \pm 2 \dots \ , + \delta = (m + \frac{1}{2}) \lambda && m = 0, \pm 1, \pm 2 \dots \ . \end{align*} - % Something about Heisenberg uncertainty principle + \subsection{Implementation}\label{ssec:implementation} % -% Add tables of parameters used, initial conditions, notation etc. -A, B are sparse csc matrix -- theory of csc matrix? -% \begin{equation*} -% \begin{pNiceArray}{ccc|ccc} -% \bullet & \bullet & & \bullet & & & & & \\ -% \bullet & \bullet & \bullet & & \bullet & & & & \\ -% & \bullet & \bullet & & & \bullet & & & -% \end{pNiceArray} -% \end{equation*} -We use Dirichlet boundary conditions, as given in Table \ref{tab:boundary_conditions}, -which allows us to express Equation \eqref{eq:schrodinger_discretized} as a matrix +In this experiment, we set up the grid with an equal step size in x- and y-direction $h$, +and step size in t-direction $\Delta t$, such that +\begin{align*} + x \in [0, 1] && x \rightarrow x_{\ivec} = \ivec h && \ivec = 0, 1, \dots, M-1 \\ + y \in [0, 1] && y \rightarrow y_{\jvec} = \jvec h && \jvec = 0, 1, \dots, M-1 \\ + t \in [0, T] && t \rightarrow t_{n} = n \Delta t && n = 0, 1, \dots, N_{t}-1 \ . +\end{align*} +In addition, we simplified the indices such that +\begin{align*} + u(x, y, t) \rightarrow u(\ivec h, \jvec h, n \Delta t) \equiv u_{\ivec, \jvec}^{n} \\ + v(x, y) \rightarrow u(\ivec h, \jvec h) \equiv v_{\ivec, \jvec} \ , +\end{align*} +which results in a matrix $U^{n}$ that contains elements $u_{\ivec, \jvec}^{n}$, and +a matrix $V$ that contains elements $v_{\ivec, \jvec}$. We used Dirichlet boundary +conditions, given by +\begin{align*} + u(x=0, y, t) &= 0 & u(x=1, y, t) &= 0 \\ + u(x, y=0, t) &= 0 & u(x, y=1, t) &= 0 \ , +\end{align*} +which allowed us to express Equation \eqref{eq:schrodinger_discretized} as a matrix equation \begin{align} A u^{n+1} = B u^{n} \ . @@ -137,8 +147,8 @@ Here, both $u^{n+1}$ and $u^{n}$ are column vectors containing the internal poin of the $xy$ grid at time step $n+1$ and $n$, respectively. Since we have $M$ points in $x$- and $y$-direction, we have $M-2$ internal points. Both $u$ vectors have length $(M-2)^{2}$, and the matrices $A$ and $B$ have size $(M-2)^{2} \times (M-2)^{2}$. -The matrices can be decomposed as submatrices of size $(M-2) \times (M-2)$, with -the following pattern +The matrices are sparse and can be decomposed as submatrices of size $(M-2) \times (M-2)$, +with the following pattern \begin{align*} A, B = \begin{bmatrix} @@ -195,7 +205,7 @@ the following pattern \bullet & \bullet & \bullet \\ \phantom{\bullet} & \bullet & \bullet \end{matrix} - \end{bmatrix} + \end{bmatrix} \ . \end{align*} To fill the matrices $A$ and $B$, we used \begin{align*} @@ -204,37 +214,16 @@ To fill the matrices $A$ and $B$, we used \end{align*} An example of filled matrices can be found in Appendix \ref{ap:matrix_structure}. -Notations: -In addition, we use an equal step size in x- and y-direction, $h$ such that +For the general setup of the barrier, we used the values in Table \ref{tab:barrier_setup}, +and for the simulations, we used the parameter settings in Table \ref{tab:sim_settings}. +In addition, we initialized the wave function using a Gaussian wavepacket, given by \begin{align*} - x \in [0, 1] && x \rightarrow x_{\ivec} = \ivec h && \ivec = 0, 1, \dots, M-1 \\ - y \in [0, 1] && y \rightarrow y_{\jvec} = \jvec h && \jvec = 0, 1, \dots, M-1 \\ - t \in [0, T] && t \rightarrow t_{n} = n \Delta t && n = 0, 1, \dots, N_{t}-1 + u(x, y, t=0) &= e^{- \frac{(x-x_{c})^{2}}{2 \sigma_{x}^{2}} - \frac{(y-y_{c})^{2}}{2 \sigma_{y}^{2}} + ip_{x}x + ip_{y}y} \ . \end{align*} -And simplify indices such that -\begin{align*} - u(x, y, t) \rightarrow u(\ivec h, \jvec h, n \Delta t) \equiv u_{\ivec, \jvec}^{n} \\ - v(x, y) \rightarrow u(\ivec h, \jvec h) \equiv v_{\ivec, \jvec} -\end{align*} -which gives a matrix $U^{n}$ that contains elements $u_{\ivec, \jvec}^{n}$, and -a matrix $V$ that contains elements $v_{\ivec, \jvec}$. -\begin{table}[H] - \centering - \begin{tabular}{l r} % @{\extracolsep{\fill}} - \hline - Position & Value \\ - \hline - $u(x=0, y, t)$ & $0$ \\ - $u(x=1, y, t)$ & $0$ \\ - $u(x, y=0, t)$ & $0$ \\ - $u(x, y=1, t)$ & $0$ \\ - \hline - \end{tabular} - \caption{Boundary conditions in the xy-plane, also known as Dirichlet boundary conditions.} - \label{tab:boundary_conditions} -\end{table} - -For the general setup of the wall, we used +$x_{c}$ and $y_{c}$ are the coordinates of the center of the wavepacket, $\sigma_{x}$ +and $\sigma_{y}$ are the width of the wavepacket, when it is initialized. The wave +packet momenta are given by $p_{x}$ and $p_{y}$. +% Insert Heisenberg uncertainty here? Or refer to it? \begin{table}[H] \centering \begin{tabular}{l r} % @{\extracolsep{\fill}} @@ -247,15 +236,14 @@ For the general setup of the wall, we used Slit aperture & $0.05$ \\ \hline \end{tabular} - \caption{Wall setup.} - \label{tab:wall_setup} + \caption{Barrier parameters and values.} + \label{tab:barrier_setup} \end{table} - \begin{table}[H] \centering \begin{tabular}{l r r} % @{\extracolsep{\fill}} \hline - Simulation & $1$ & $2$ \\ + Parameter & Setting 1 & Setting 2 \\ \hline $h$ & $0.005$ & $0.005$ \\ $\Delta t$ & $2.5 \times 10^{-5}$ & $2.5 \times 10^{-5}$ \\ @@ -269,12 +257,39 @@ For the general setup of the wall, we used $v_{0}$ & $0$ & $1 \times10^{10}$ \\ \hline \end{tabular} - \caption{Wall setup.} - \label{tab:sim_setup} + \caption{Simulation settings used in the double slit experiment. Setting 1 is + used when the barrier is switched off and setting 2 is used when the barrier + switched on.} + \label{tab:sim_settings} \end{table} +To check if the total probability is conserved over time, and that the implementation +was correct, we computed the deviation from $1.0$ given by +\begin{align*} + s^{n} &= |\sum_{\ivec , \jvec} p_{\ivec , \jvec}^{n} - 1| \\ + &= |\sum_{\ivec , \jvec} u_{\ivec , \jvec}^{n*} u_{\ivec , \jvec}^{n} - 1| \ . +\end{align*} + \subsection{Tools}\label{ssec:tools} % The double-slit experiment is implemented in C++. We use the Python library \verb|matplotlib| \cite{hunter:2007:matplotlib} to produce all the plots, and \verb|seaborn| \cite{waskom:2021:seaborn} to set the theme in the figures. \end{document} + + + +% \begin{table}[H] +% \centering +% \begin{tabular}{l r} % @{\extracolsep{\fill}} +% \hline +% Position & Value \\ +% \hline +% $u(x=0, y, t)$ & $0$ \\ +% $u(x=1, y, t)$ & $0$ \\ +% $u(x, y=0, t)$ & $0$ \\ +% $u(x, y=1, t)$ & $0$ \\ +% \hline +% \end{tabular} +% \caption{Boundary conditions in the xy-plane, also known as Dirichlet boundary conditions.} +% \label{tab:boundary_conditions} +% \end{table} \ No newline at end of file diff --git a/latex/sections/results.tex b/latex/sections/results.tex index deeb5ea..f1846eb 100644 --- a/latex/sections/results.tex +++ b/latex/sections/results.tex @@ -4,32 +4,89 @@ \section{Results}\label{sec:results} \subsection{Deviation}\label{ssec:deviation} % Problem 3: Discuss approaches to solve Au^{n+1} = b, dealing with sparse matrix... -We used the superlu solver, which is a dedicated solver for sparse matrices. It is -generally used to solve nonsymmetric, sparse matrices. However, as the lapack solver -converts the sparse matrix to a dense matrix, it will increase memory usage compared -to superlu. +We used the \verb|superlu| solver, which is a solver for sparse matrices. It is +generally used to solve nonsymmetric, sparse matrices. However, as the alternative +solver \verb|lapack| converts a sparse matrix to a dense matrix, it will increase +memory usage compared to \verb|superlu|. % Problem 7: Consequenses of solver choice, in regards to accuracy of probability conserved % Add plot of deviation for both single- and double-slit -Since we use a solver for sparse matrices, we decrease number of computations performed -compared to solver using dense matrix. We check if the total probability is conserved -over time, by plotting the deviation $s$ as -\begin{align*} - s^{n} = 1 - \sum_{\ivec , \jvec} p_{\ivec , \jvec}^{n} = 1 - \sum_{\ivec , \jvec} u_{\ivec , \jvec}^{n*} u_{\ivec , \jvec}^{n} \ . -\end{align*} -The deviation as a function of time is plotted in Figure \ref{fig:deviation}. +Since we used a solver for sparse matrices, we decrease the number of computations performed +compared to number of computations using a solver for dense matrices. +We checked if the total probability was conserved over time, by plotting the deviation +from $1.0$. \begin{figure} \centering \includegraphics[width=\linewidth]{images/probability_deviation.pdf} - \caption{Deviation for $t \in [0, T]$ where $T=0.008$.} + \caption{Deviation of total probability, for time $t \in [0, T]$ where $T=0.008$.} \label{fig:deviation} \end{figure} +In Figure \ref{fig:deviation}, we observe a larger deviation of total probability +for a barrier with double slits compared to no barrier. Interaction with the +barrier result in a change ... of values, as the light passes through, +The result is more prone to computational errors. Using no barrier, the light is not +affected by obstacles resulting in a more stable deviation from the total probability. +In addition, we have to consider the limitation of a computer, some computational +error is to be expected. \subsection{Time evolution}\label{ssec:time_evolution} % Problem 8: Colormap, include plot of both Re and Im for different time steps % Account for color scale +We ran the simulation using the values in column 2 of Table \ref{tab:sim_setup}, found +in Section \ref{ssec:implementation}. To study the time evolution of the probability +function, we created colormap plots for different time steps. Figure \ref{fig:colormap_0_prob}, +Figure \ref{fig:colormap_1_prob}, and Figure \ref{fig:colormap_2_prob} show the +result for time steps $t=[0, 0.001, 0.002]$, respectively. In addition, we created +separate plots for the real and imaginary part of $u_{\ivec, \jvec}$, for the same +time steps. The result can be found in Appendix \ref{ap:figures}, in Figure \ref{fig:colormap}. +\begin{figure} + \centering + \includegraphics[width=\linewidth]{images/color_map_0_prob.pdf} + \caption{The probability function $p_{\ivec, \jvec}^{n}$, at time $t=0$.} + \label{fig:colormap_0_prob} +\end{figure} +\begin{figure} + \centering + \includegraphics[width=\linewidth]{images/color_map_1_prob.pdf} + \caption{The probability function $p_{\ivec, \jvec}^{n}$, at time $t=0.001$.} + \label{fig:colormap_1_prob} +\end{figure} +\begin{figure} + \centering + \includegraphics[width=\linewidth]{images/color_map_2_prob.pdf} + \caption{The probability function $p_{\ivec, \jvec}^{n}$, at time $t=0.002$.} + \label{fig:colormap_2_prob} +\end{figure} +In Figure \ref{fig:colormap_1_prob}, the ... interacts with the double +slitted barrier, which result in a wavelike pattern. However, the waves are more +visible when we observe the real and imaginary part separately in Figure \ref{fig:colormap}. + \subsection{Particle detection}\label{ssec:particle_detection} % Problem 9: Plot detection probability for single-, double- and triple-slit - +We used the simulation from the previous section, assumed a detector screen +located at $x=0.8$, and plotted the detection probability along the screen at time +$t=0.002$. We adjusted the parameters to include single-, double-, and triple-slitted +barrier. The results is found in Figure \ref{}, Figure \ref{}, and Figure \ref{fig:}. +\begin{figure} + \centering + \includegraphics[width=\linewidth]{images/single_slit_detector.pdf} + \caption{Probability of particle detection along a detector screen at time $t=0.002$, + when using a single-slit barrier.} + \label{fig:particle_detection_single} +\end{figure} +\begin{figure} + \centering + \includegraphics[width=\linewidth]{images/double_slit_detector.pdf} + \caption{Probability of particle detection along a detector screen at time $t=0.002$, + when using a double-slit barrier.} + \label{fig:particle_detection_double} +\end{figure} +\begin{figure} + \centering + \includegraphics[width=\linewidth]{images/triple_slit_detector.pdf} + \caption{Probability of particle detection along a detector screen at time $t=0.002$, + when using a triple-slit barrier.} + \label{fig:particle_detection_triple} +\end{figure} \end{document} diff --git a/python_scripts/normalization.py b/python_scripts/normalization.py index fb43137..cf50368 100644 --- a/python_scripts/normalization.py +++ b/python_scripts/normalization.py @@ -21,9 +21,17 @@ def plot(): "data/probability_deviation_no_slits.txt", "data/probability_deviation_slits.txt", ] - for file in files: + labels = [ + "none", + "double-slit" + ] + colors = sns.color_palette("mako", n_colors=2) + + fig, ax = plt.subplots() + + for file, label, color in zip(files, labels, colors): with open(file) as f: - lines = f.readlines(); + lines = f.readlines() x = [] arr = [] for line in lines: @@ -31,10 +39,13 @@ def plot(): x.append(float(tmp[0])) arr.append(float(tmp[1])) - plt.plot(x,arr) + ax.plot(x, arr, label=label, color=color) + + ax.legend(title="Barrier") + ax.set_xlabel("Time (t)") + ax.set_ylabel("Deviation") + fig.savefig("latex/images/probability_deviation.pdf", bbox_inches="tight") - plt.savefig("latex/images/probability_deviation.pdf") if __name__ == "__main__": - plot() - + plot() \ No newline at end of file