diff --git a/latex/images/color_map_all.pdf b/latex/images/color_map_all.pdf index f4b982c..83f9cbc 100644 Binary files a/latex/images/color_map_all.pdf and b/latex/images/color_map_all.pdf differ diff --git a/latex/schrodinger_simulation.tex b/latex/schrodinger_simulation.tex index 56e828a..0058e3a 100644 --- a/latex/schrodinger_simulation.tex +++ b/latex/schrodinger_simulation.tex @@ -102,7 +102,7 @@ \subfile{sections/results} % Conclusion -% \subfile{sections/conclusion} +\subfile{sections/conclusion} % Notes % \subfile{draft} diff --git a/latex/sections/appendices.tex b/latex/sections/appendices.tex index 14aefbc..54adff5 100644 --- a/latex/sections/appendices.tex +++ b/latex/sections/appendices.tex @@ -3,7 +3,8 @@ \begin{document} \appendix \section{The Crank-Nicholson method}\label{ap:crank_nicolson} -The Crank-Nicolson (CN) approach consider both the forward difference, an explicit scheme, +The Crank-Nicolson (CN) approach consider both the forward difference, an explicit +scheme, \begin{equation*} \frac{u_{\ivec, \jvec}^{n+1} - u_{\ivec, \jvec}^{n}}{\Delta t} = F_{\ivec, \jvec}^{n} \ , \end{equation*} @@ -20,9 +21,11 @@ The parameter $\theta$ is introduced for a general approach, however, for CN $\t \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] \\ \end{align*} -We need the first derivative in respect to both time and position, as well as the second derivative in respect to position. Taylor expanding will result in a discretized version, assume this is known... +We need the first derivative in respect to both time and position, as well as the +second derivative in respect to position. Taylor expanding will result in a discretized +version. -Schrödinger contain $i$ at the lhs, factor it as +The Schrödinger equation contains $i$ on the left hand side, we rewrite 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] \ , @@ -44,8 +47,7 @@ the left hand side, and the terms containing $n$ time step on the right hand sid &= u_{\ivec, \jvec}^{n} + \frac{i \Delta t}{2 \Delta x^{2}} \big[ u_{\ivec+1, \jvec}^{n} - 2u_{\ivec, \jvec}^{n} + u_{\ivec-1, \jvec}^{n} \big] \\ & \quad + \frac{i \Delta t}{2 \Delta y^{2}} \big[ u_{\ivec, \jvec+1}^{n} - 2u_{\ivec, \jvec}^{n} + u_{\ivec, \jvec-1}^{n} \big] - \frac{i \Delta t}{2} v_{\ivec, \jvec} u_{\ivec, \jvec}^{n} \end{align*} -In addition, since we will use an equal step size $h$ in both $x$ and $y$ direction, -we can use +Since we will use an equal step size $h$ in both $x$ and $y$ direction, we can use \begin{align*} \frac{i \Delta t}{2 \Delta h^{2}} = \frac{i \Delta t}{2 \Delta x^{2}} = \frac{i \Delta t}{2 \Delta y^{2}} \ , \end{align*} @@ -53,7 +55,7 @@ and define \begin{align*} r \equiv \frac{i \Delta t}{2 \Delta h^{2}} \end{align*} -Now, the discretized Schrödinger equation can be written as +Now, the discretized Schrödinger equation can be rewritten as \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} \\ @@ -97,6 +99,8 @@ $(M-2)^{2} \times (M-2)^{2} = 9 \times 9$ given by \section{Figures}\label{ap:figures} +We created colormap plots of the real and imaginary part of $u_{\ivec, \jvec}$, +in Figure \ref{fig:colormap_real_imag}. \begin{figure*} \centering \begin{subfigure}[b]{0.3\textwidth} @@ -119,9 +123,7 @@ $(M-2)^{2} \times (M-2)^{2} = 9 \times 9$ given by \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} @@ -142,7 +144,17 @@ $(M-2)^{2} \times (M-2)^{2} = 9 \times 9$ given by \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} + \caption{The time evolution of Re($u_{\ivec, \jvec}$) and Im($u_{\ivec, \jvec}$), + for time steps $t=[0, 0.001, 0.002]$.} + \label{fig:colormap_real_imag} \end{figure*} +% \begin{figure*} +% \centering +% \includegraphics[width=0.9\textwidth]{images/color_map_all.pdf} +% \caption{The time evolution of the probability function $p_{\ivec, \jvec}^{n}$ (top row), +% Re($u_{\ivec, \jvec}^{n}$) (middle row), and Im($u_{\ivec, \jvec}^{n}$) (bottom row). +% Time step $t=0$ in the left column, $t=0.001$ in the middle column, and $t=0.002$ +% in the right column.} +% \label{fig:colormap_all} +% \end{figure*} \end{document} diff --git a/latex/sections/methods.tex b/latex/sections/methods.tex index 8f0e512..1994cdf 100644 --- a/latex/sections/methods.tex +++ b/latex/sections/methods.tex @@ -273,8 +273,8 @@ and for the simulations, we used the parameter settings in Table \ref{tab:sim_se 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| \ . + s^{n} &= |1.0 - \sum_{\ivec , \jvec} p_{\ivec , \jvec}^{n}| \\ + &= |1.0 - \sum_{\ivec , \jvec} u_{\ivec , \jvec}^{n*} u_{\ivec , \jvec}^{n}| \ . \end{align*} \subsection{Tools}\label{ssec:tools} % diff --git a/latex/sections/results.tex b/latex/sections/results.tex index 85d9cbb..02543fb 100644 --- a/latex/sections/results.tex +++ b/latex/sections/results.tex @@ -74,6 +74,20 @@ areas at both sides of the barries. Some of the probability function is reflecte by the barrier, while the the rest spread out after passing the barrier. This is a consequence of the wave-particle duality. +To compare the probability function $p_{\ivec, \jvec}$ for all the time steps in +a colormap plot, with the real and imaginary part of $u_{\ivec, \jvec}$, we created +Figure \ref{fig:colormap_all}. Where we excluded all x- and y-ticks, and labels, to +better visualize the diffraction pattern. +\begin{figure} + \centering + \includegraphics[width=\linewidth]{images/color_map_all.pdf} + \caption{The time evolution of the probability function $p_{\ivec, \jvec}^{n}$ (top row), + Re($u_{\ivec, \jvec}$) (middle row), and Im($u_{\ivec, \jvec}$) (bottom row). + Time step $t=0$ in the left column, $t=0.001$ in the middle column, and $t=0.002$ + in the right column.} + \label{fig:colormap_all} +\end{figure} + \subsection{Particle detection}\label{ssec:particle_detection} % Problem 9: Plot detection probability for single-, double- and triple-slit diff --git a/python_scripts/colormap_all.py b/python_scripts/colormap_all.py index 6090b97..ae19e9b 100644 --- a/python_scripts/colormap_all.py +++ b/python_scripts/colormap_all.py @@ -9,17 +9,23 @@ params = { "font.family": "Serif", "font.serif": "Roman", "text.usetex": True, - "axes.titlesize": "large", - "axes.labelsize": "large", - "xtick.labelsize": "large", - "ytick.labelsize": "large", - "legend.fontsize": "medium", + "xtick.bottom": False, + "xtick.labelbottom": False, + "ytick.left": False, + "ytick.labelleft": False, + "axes.grid": False, + # "figure.autolayout": True + # "figure.constrained_layout.use": False, + # "figure.constrained_layout.h_pad": 0.04167, + # "figure.constrained_layout.w_pad": 0.04167 + # "figure.subplot.wspace": 0, + # "figure.subplot.hspace": 0 } plt.rcParams.update(params) def plot(): - fig, axes = plt.subplots(nrows=3, ncols=3) + fig, axes = plt.subplots(figsize=(6,6), nrows=3, ncols=3) with open("data/color_map.txt") as f: lines = f.readlines() size = int(lines[0]) @@ -35,39 +41,45 @@ def plot(): arr = arr.reshape(size, size).T # Plot color maps - color_map1 = axes[i,0].imshow( + color_map1 = axes[0, i].imshow( np.multiply(arr, arr.conj()).real, interpolation="nearest", cmap=sns.color_palette("mako", as_cmap=True) ) - color_map2 = axes[i,1].imshow( + color_map2 = axes[1, i].imshow( arr.real, interpolation="nearest", cmap=sns.color_palette("mako", as_cmap=True) ) - color_map3 = axes[i,2].imshow( + color_map3 = axes[2, i].imshow( arr.imag, interpolation="nearest", cmap=sns.color_palette("mako", as_cmap=True) ) # Create color bar - fig.colorbar(color_map1, ax=axes) - # fig2.colorbar(color_map2, ax=ax2) - # fig3.colorbar(color_map3, ax=ax3) + fig.subplots_adjust(wspace=0, hspace=0) + # fig.colorbar(color_map1, ax=axes[0, 2]) + # fig.colorbar(color_map2, ax=axes[1, 2]) + # fig.colorbar(color_map3, ax=axes[2, 2]) - # # Remove grids - axes.grid(False) - # ax2.grid(False) - # ax3.grid(False) + # Remove grids + # for i in range(3): + # axes[i, 0].set_xticks([]) + # axes[i, 0].set_yticks([]) + # axes[i, 0]. + # axes[i, 1].set_xticks([]) + # axes[i, 1].set_yticks([]) + # axes[i, 2].set_xticks([]) + # axes[i, 2].set_yticks([]) - # # Set custom ticks - # ax1.set_xticks(ticks) - # ax1.set_yticks(ticks) - # ax2.set_xticks(ticks) - # ax2.set_yticks(ticks) - # ax3.set_xticks(ticks) - # ax3.set_yticks(ticks) + + # axes[0].set_xticks([]) + # axes[0].set_yticks([]) + # axes[1].set_xticks([]) + # axes[].set_yticks([]) + # axes[].set_xticks([]) + # axes[].set_yticks([]) # # Set labels # ax1.set_xlabel("x-axis") @@ -78,7 +90,7 @@ def plot(): # ax3.set_ylabel("y-axis") # # Save the figures - fig.savefig(f"latex/images/color_map_all.pdf", bbox_inches="tight") + plt.savefig(f"latex/images/color_map_all.pdf", bbox_inches="tight") # fig2.savefig(f"latex/images/color_map_{i}_real.pdf", bbox_inches="tight") # fig3.savefig(f"latex/images/color_map_{i}_imag.pdf", bbox_inches="tight")