Finished abstract and conclusion.

This commit is contained in:
Janita Willumsen 2023-12-30 15:09:34 +01:00
parent cb06e1af96
commit 36b91e5206
9 changed files with 287 additions and 133 deletions

View File

@ -82,7 +82,7 @@
\begin{document}
\title{Simulating the Schrödinger wave equation using the Crank-Nicolson method in 2+1 dimensions} % self-explanatory
\title{Simulating the Schrödinger wave equation using the Crank-Nicolson scheme in 2+1 dimensions} % self-explanatory
\author{Cory Alexander Balaton \& Janita Ovidie Sandtrøen Willumsen \\ \faGithub \, \url{https://github.uio.no/FYS3150-G2-2023/Project-4}} % self-explanatory
\date{\today} % self-explanatory
\noaffiliation % ignore this, but keep it.
@ -122,12 +122,14 @@
\end{document}
% Methods
% P1: Theory, imag i = i, index i, j = \hat{i}, \hat{j}
% P2:
%
% Abstract: OK
% Introduction:
% Methods: Wave packet, Heisenberg, Hyugen
% Results:
% Conclusion: OK
% Appendices:
% Results
% P7:
% P7: OK
% P8:
% P9:

View File

@ -3,16 +3,18 @@
\begin{document}
\begin{abstract}
We have simulated the two-dimensional time-dependent Schrödinger equation, to study
variations of the double-slit experiment. To solve the partial differential equations
we have applied the Crank-Nicolson scheme in 2+1 dimensions, to derive a discretized
equation. In addition, we have used Dirichlet boundary conditions to express the
equation in matrix form and solve it using the sparse matrix solver \verb|superlu|.
Our implementation, and choice of solver method, resulted in conserved total
probability $\sum_{\ivec, \jvec} p_{\ivec, \jvec}^{n}=1$ for both the single and
double slit setup. To illustrate the time evolution of the probability function,
we created colormap plots at time steps $t = [0, 0.001, 0.002]$. We also included
separate plots for each time step of Re$(u_{\ivec, \jvec})$ and Im$(u_{\ivec, \jvec})$.
In addition, we determined the normalized particle detection probability $p(y \ | \ x=0.8, t=0.002)$,
for single-, double- and triple-slit.
variations of the double-slit experiment. To derive a discretized equation
we applied the Crank-Nicolson scheme in 2+1 dimensions. In addition, we have used
Dirichlet boundary conditions to express the equation in matrix form, and solve
it using the sparse matrix solver \verb|superlu|. Our implementation, and choice
of solver method, resulted in a deviation from conserved total probability on the
scale $10^{-14}$, for both the single and double slit setup. To illustrate the time
evolution of the probability function, we created colormap plots for time steps
$t = [0, 0.001, 0.002]$. We also included separate plots for each time step of
Re$(u_{\ivec, \jvec})$ and Im$(u_{\ivec, \jvec})$. In addition, we determined the
normalized particle detection probability $p(y \ | \ x=0.8, t=0.002)$, for single-,
double- and triple-slit.
\end{abstract}
\end{document}
% $| \sum_{\ivec, \jvec} p_{\ivec, \jvec}^{n} - 1 | \approx $

View File

@ -25,10 +25,10 @@ We need the first derivative in respect to both time and position, as well as th
Schrödinger contain $i$ at the lhs, factor it as
\begin{align*}
\frac{u_{\ivec, \jvec}^{n+1} - u_{\ivec, \jvec}^{n}}{\Delta t} &= \frac{1}{2i} \bigg[ F_{\ivec, \jvec}^{n+1} + F_{\ivec, \jvec}^{n} \bigg] \\
&= -\frac{i}{2} \bigg[ F_{\ivec, \jvec}^{n+1} + F_{\ivec, \jvec}^{n} \bigg] & \text{, where $\frac{1}{i} = -i$}
&= -\frac{i}{2} \bigg[ F_{\ivec, \jvec}^{n+1} + F_{\ivec, \jvec}^{n} \bigg] \ ,
\end{align*}
Using Equation \eqref{eq:schrodinger_dimensionless}, we get
where $1/i = -i$. Using Equation \eqref{eq:schrodinger_dimensionless}, which is
found in Section \ref{ssec:schrodinger}, we get
\begin{align*}
u_{\ivec, \jvec}^{n+1} - u_{\ivec, \jvec}^{n} & -\frac{i \Delta t}{2} \bigg[ F_{\ivec, \jvec}^{n+1} + F_{\ivec, \jvec}^{n} \bigg] \\
&= -\frac{i \Delta t}{2} \bigg[ - \frac{u_{\ivec+1, \jvec}^{n+1} - 2u_{\ivec, \jvec}^{n+1} + u_{\ivec-1, \jvec}^{n+1}}{2 \Delta x^{2}} \\
@ -94,4 +94,55 @@ $(M-2)^{2} \times (M-2)^{2} = 9 \times 9$ given by
0 & 0 & 0 & 0 & 0 & r & 0 & r & b_{8} \\
\end{bmatrix}
\end{align*}
\section{Figures}\label{ap:figures}
\begin{figure*}
\centering
\begin{subfigure}[b]{0.3\textwidth}
\centering
\includegraphics[width=\textwidth]{images/color_map_0_real.pdf}
\caption{Re$(u_{\ivec, \jvec})$ at time $t=0$.}
\label{fig:colormap_0_real}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.3\textwidth}
\centering
\includegraphics[width=\textwidth]{images/color_map_1_real.pdf}
\caption{Re$(u_{\ivec, \jvec})$ at time $t=0.001$.}
\label{fig:colormap_1_real}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.3\textwidth}
\centering
\includegraphics[width=\textwidth]{images/color_map_2_real.pdf}
\caption{Re$(u_{\ivec, \jvec})$ at time $t=0.002$.}
\label{fig:colormap_2_real}
\end{subfigure}
\newline
\begin{subfigure}[b]{0.3\textwidth}
\centering
\includegraphics[width=\textwidth]{images/color_map_0_imag.pdf}
\caption{Im$(u_{\ivec, \jvec})$ at time $t=0$.}
\label{fig:colormap_0_imag}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.3\textwidth}
\centering
\includegraphics[width=\textwidth]{images/color_map_1_imag.pdf}
\caption{Im$(u_{\ivec, \jvec})$ at time $t=0.001$.}
\label{fig:colormap_1_imag}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.3\textwidth}
\centering
\includegraphics[width=\textwidth]{images/color_map_2_imag.pdf}
\caption{Im$(u_{\ivec, \jvec})$ at time $t=0.002$.}
\label{fig:colormap_2_imag}
\end{subfigure}
\caption{The time evolution of the probability function $p_{\ivec, \jvec}^{n}$.}
\label{fig:colormap}
\end{figure*}
\end{document}

View File

@ -2,24 +2,36 @@
\begin{document}
\section{Conclusion}\label{sec:conclusion}
% We have simulated the two-dimensional time-dependent Schrödinger equation, to study
% variations of the double-slit experiment. To derive a discretized equation
% we applied the Crank-Nicolson scheme in 2+1 dimensions. In addition, we have used
% Dirichlet boundary conditions to express the equation in matrix form, and solve
% it using the sparse matrix solver \verb|superlu|. Our implementation, and choice
% of solver method, resulted in a deviation from conserved total probability on the
% scale $10^{-14}$, for both the single and double slit setup. To illustrate the time
evolution of the probability function, we created colormap plots for time steps
$t = [0, 0.001, 0.002]$. We also included separate plots for each time step of
Re$(u_{\ivec, \jvec})$ and Im$(u_{\ivec, \jvec})$. In addition, we determined the
normalized particle detection probability $p(y \ | \ x=0.8, t=0.002)$, for single-,
double- and triple-slit.
% Rewrite this section to differ from the abstract
We have simulated the two-dimensional time-dependent Schrödinger equation, to study
We simulated the two-dimensional time-dependent Schrödinger equation, and studied
variations of the double-slit experiment. To solve the partial differential equations
we have applied the Crank-Nicolson scheme in 2+1 dimensions, and derived a discretized
equation. In addition, we have used Dirichlet boundary conditions to express the
equation in matrix form and solve it using the sparse matrix solver \verb|superlu|.
Our implementation, and choice of solver method, resulted in conserved total
probability $\sum_{\ivec, \jvec} p_{\ivec, \jvec}^{n}=1$ for both the single and
double slit setup.
we applied the Crank-Nicolson scheme in 2+1 dimensions, and derived a discretized
equation. We used Dirichlet boundary conditions to simplify the equation,
expressed the equation in matrix form and solved it using the sparse matrix solver
\verb|superlu|. The total probability $\sum_{\ivec, \jvec} p_{\ivec, \jvec}^{n}$
deviated from $1.0$ by a factor of $10^{-14}$ for both the single and double slit
setup. % Add something about computational accuracy?
To illustrate the time evolution of the probability function $p_{\ivec, \jvec}^{n} = u_{\ivec, \jvec}^{n*} u_{\ivec, \jvec}^{n}$,
we created colormap plots at time steps $t = [0, 0.001, 0.002]$. Since we are working
with complex numbers, we included separate plots for each time step of Re$(u_{\ivec, \jvec})$
and Im$(u_{\ivec, \jvec})$.
% We observed something...
In addition, we determined the normalized particle detection probability $p(y \ | \ x=0.8, t=0.002)$,
for single-, double- and triple-slit.
% We observed something here as well...
We illustrated the time evolution of the probability function $p_{\ivec, \jvec}^{n} = u_{\ivec, \jvec}^{n*} u_{\ivec, \jvec}^{n}$,
using colormap plots for time steps $t = [0, 0.001, 0.002]$. In addition, we included
separate plots for each time step of Re$(u_{\ivec, \jvec})$ and Im$(u_{\ivec, \jvec})$,
to show the components of the complex values. This resulted in a visible diffraction
patterns for the double-slit experiment.
In addition, we studied the normalized particle detection probability $p(y \ | \ x=0.8, t=0.002)$,
for single-, double- and triple-slit. We found that increasing the number of slits
in the barrier, increased the number of areas of both high and low probability of
particle detection.
\end{document}

View File

@ -2,6 +2,10 @@
\begin{document}
\section{Introduction}\label{sec:introduction}
% Light: wave particle
% Wave equation
% Hyugens theory
% Thomas Young
The nature of light has long been a subject of interest and discussion. %
% Important part of human behavior is observing and understanding our surroundings.
% Many big discoveries have been made through observations, verified by mathematical

View File

@ -11,62 +11,64 @@ The Schrödinger equation has a general form
i \hbar \frac{\partial}{\partial t} | \Psi \rangle &= \hat{H} | \Psi \rangle \ ,
\label{eq:schrodinger_general}
\end{align}
where $i$ is the imaginary number, and $\hbar$ is Plancks constant. $\hat{H}$ is
a Hamiltonian operator, which represent the energy for the system, and $| \Psi \rangle$
where $i$ is the imaginary unit, and $\hbar$ is Plancks constant. $\hat{H}$ is
a Hamiltonian operator, which represents the energy for the system, and $| \Psi \rangle$
is the quantum state. In two-dimensional position space, the quantum state can
be expressed using the time-dependent complex-valued wave function $\Psi (x, y, t)$.
Using Born rule, the square modulus of the wave function is proportional to the
probability density of finding a particle at position $(x, y)$ at time t. The relation
is given by
probability density of detecting a particle at position $(x, y)$ at time $t$. The
relation is given by
\begin{align}
p(x, y \ | \ t) &= |\Psi(x, y, t)|^{2} = \Psi^{*}(x, y, t) \Psi(x, y, t) \ ,
\label{eq:born_rule}
\end{align}
where $\Psi^{*}$ denotes the complex conjugated wave function.
% Add something about kinetic and potential energy, to introduce the potential V
When the potential is time-independent, the Schrödinger equation can be expressed as
When the potential is time-independent, and the particle is non-relativistic,
the Schrödinger equation can be expressed as
\begin{align*}
i \hbar \frac{\partial}{\partial t} \Psi (x, y, t) &= - \frac{\hbar^{2}}{2m} \bigg( \frac{\partial^{2}}{\partial x^{2}} + \frac{\partial^{2}}{\partial y^{2}} \bigg) \Psi (x, y, t) \\
& \quad + V(x, y, t) \Psi (x, y, t) \numberthis \ .
\label{eq:schrodinger_special}
\end{align*}
The partial derivatives (...) gives the kinetic energy, and the potental $V$ is
the external environment. In this experiment we will only consider the case where
The partial derivatives are expressions of the kinetic energy, and the potental $V$
encodes the external environment. In this experiment we will only consider the case where
the potential is time-independent, resulting in $V = V(x, y)$
When we scale Schrödinger equation by the dimensionful variables, we are left with
a wave function $u$, potential $v$ and the dimensionless equation
the wave function $u$ and the potential $v$. The dimensionless equation is given by
\begin{align}
i \frac{\partial u}{\partial t} &= - \frac{\partial^{2} u}{\partial x^{2}} - \frac{\partial^{2} u}{\partial y^{2}} + v(x, y) u \ .
\label{eq:schrodinger_dimensionless}
\end{align} %
This gives us the Born rule
As a result of working in position space, the Born rule is given by
\begin{align}
p(x, y \ | \ t) &= |u(x, y, t)|^{2} = u^{*}(x, y, t) u(x, y, t) \ .
p(x, y \ | \ t) &= |u(x, y, t)|^{2} = u^{*}(x, y, t) u(x, y, t) \ ,
\label{eq:born_rule_scaled}
\end{align}
where we assume a normalized wave function $u(x, y, t)$.
\subsection{The Crank-Nicolson scheme}\label{ssec:crank_nicolson} %
When we evaluate a particle in position space, we have to consider partial differential
When we evaluate a particles position, we have to consider partial differential
equations (PDE). To solve these numerically, we have to discretize Equation \eqref{eq:schrodinger_dimensionless}.
We use the $\theta$-rule \footnote{Using the $\theta$-rule, we can derive Forward Euler using $\theta = 1$, and Backward Euler using $\theta = 0$},
to combine the forward (explicit) and backward (implicit) finite difference method.
to combine the forward (explicit) and backward (implicit) finite difference methods.
The result is a linear combination of the explicit and implicit scheme, given by
\begin{align}
\frac{u_{\ivec, \jvec}^{n+1} - u_{\ivec, \jvec}^{n}}{\Delta t} &= \theta F_{\ivec, \jvec}^{n+1} + (1 - \theta) F_{\ivec, \jvec}^{n} \ ,
\label{eq:theta_rule}
\end{align} %
where $\theta \in [0, 1]$.
To simplify notation and avoid confusion of indices with the imaginary number $i$,
To simplify the notation, and avoid any confusion of the indices with the imaginary unit $i$,
we have used the notation $\ivec, \jvec$ in subscript to indicate the commonly named indices $i, j$
in x- and y-direction. In addition, the superscript $n, n+1$ indicate position in time.
We get the Crank-Nicolson method (CN) when $\theta = 1/2$ gives Crank-Nicolson
We derive the Crank-Nicolson scheme (CN) by using $\theta = 1/2$, given by
\begin{align}
\frac{u_{\ivec, \jvec}^{n+1} - u_{\ivec, \jvec}^{n}}{\Delta t} &= \frac{1}{2} \bigg[ F_{\ivec, \jvec}^{n+1} + F_{\ivec, \jvec}^{n} \bigg] \ .
\label{eq:crank_nicolson_method}
\label{eq:crank_nicolson_scheme}
\end{align} %
Using CN, we derive the discretized Schrödinger equation given by
Using CN, we derive the discretized Schrödinger equation, given by
\begin{align*}
& u_{\ivec, \jvec}^{n+1} - r \big[ u_{\ivec+1, \jvec}^{n+1} - 2u_{\ivec, \jvec}^{n+1} + u_{\ivec-1, \jvec}^{n+1} \big] \\
& - r \big[ u_{\ivec, \jvec+1}^{n+1} - 2u_{\ivec, \jvec}^{n+1} + u_{\ivec, \jvec-1}^{n+1} \big] + \frac{i \Delta t}{2} v_{\ivec, \jvec} u_{\ivec, \jvec}^{n+1} \\
@ -76,34 +78,34 @@ Using CN, we derive the discretized Schrödinger equation given by
\end{align*} %
where $r$ is defined as
\begin{align*}
r \equiv \frac{i \Delta t}{2 \Delta h^{2}}
r \equiv \frac{i \Delta t}{2 \Delta h^{2}} \ .
\end{align*} %
The full derivation of both Equation \eqref{eq:crank_nicolson_method} and Equation \eqref{eq:schrodinger_discretized}
The full derivation of both Equation \eqref{eq:crank_nicolson_scheme} and Equation \eqref{eq:schrodinger_discretized}
can be found in Appendix \ref{ap:crank_nicolson}.
\subsection{The double-slit experiment}\label{ssec:double_slit} %
Thomas Young first performed the double-slit experiment in 1801 to demonstrate the
principle of interference of light \cite{britannica:2023:young}, while postulating
light as waves rather than particles. The double-slit experiment result in a diffraction
light as waves rather than particles. The double-slit experiment results in a diffraction
pattern on a detector screen, where constructive interference of light result in
bright spots, and destructive interference result in dark spots as showed in Figure
\ref{fig:youngs_double_slit}.
bright spots, and destructive interference result in dark spots. An illustration
of Thomas Young's setup can be found in Figure \ref{fig:youngs_double_slit}.
\begin{figure}
\centering
\includegraphics[width=\linewidth]{images/youngs_double_slit.pdf}
\caption{The setup of Thomas Young's double slit experiment, where $S_{0}$ denotes
the light source, $S_{1}$ and $S_{2}$ denotes the slits in the wall.}
the light source, $S_{1}$ and $S_{2}$ denotes the slits in the barrier \cite[p. 4]{mit:2004:physics}.}
\label{fig:youngs_double_slit}
\end{figure}
After the wave passes through the two slits, the pattern observed is determined by
the path difference determined by
After the wave passes through the barrier, the pattern observed is determined by
the path difference given by
\begin{align*}
\delta = d \sin (\theta) = m \lambda \ ,
\end{align*}
where $\lambda$ is the wavelength and $m$ is called the order number. $d$ is the
distance between the center of the two slits, assuming that the distance between
distance between the center of the two slits, while assuming that the distance between
the wall and the detector screen $L >> \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}

View File

@ -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}

View File

@ -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()