188 lines
9.9 KiB
TeX
188 lines
9.9 KiB
TeX
\documentclass[../ising_model.tex]{subfiles}
|
|
|
|
\begin{document}
|
|
\section{Results}\label{sec:results}
|
|
\subsection{Burn-in time}\label{subsec:burnin_time}
|
|
We started with a lattice size $L = 20$ and considered the temperatures $T_{1} = 1.0 J/k_{B}$,
|
|
and $T_{2} = 2.4 J/k_{B}$, where $T_{2}$ is close to the analytical critical
|
|
temperature given by Equation \eqref{eq:critical_solution}.
|
|
|
|
To determine the burn-in time, we used the numerical estimates of energy
|
|
per spin for $T_{1}$ in Figure \ref{fig:burn_in_energy_1_0}, and $T_{2}$ in Figure
|
|
\ref{fig:burn_in_energy_2_4}. We also considered the estimates of magnetization
|
|
per spin for $T_{1}$ in Figure \ref{fig:burn_in_magnetization_1_0}, and for $T_{2}$
|
|
in Figure \ref{fig:burn_in_energy_2_4}.
|
|
% Not sure about the relevance of the paragraph below
|
|
We used random numbers to set the initial state and the index of spin to flip, and
|
|
observed different graphs ... However, when we set the seed of the random number
|
|
engine, we could reproduce the results at every run. It is possible to determine
|
|
the burn-in time analytically, using the correlation time given by $\tau \approx L^{d + z}$.
|
|
Where $d$ is the dimensionality of the system and $z = 2.1665 \pm 0.0012$
|
|
\footnote{This value was determined by Nightingale and Blöte for the Metropolis algorithm.}.
|
|
However, when we increased number of Monte Carlo cycles the sampled generated during
|
|
the burn-in time did not affect the mean value (...). % Should add result showing this
|
|
|
|
The lattice was initialized in an ordered and an unordered state, for both temperatures. We observed
|
|
no change in expectation value of energy or magnetization for $T_{1}$, when we
|
|
initialized the lattice in an ordered state. As for the unordered initialized
|
|
lattice, we first observed a change in expectation values, and a stabilization around
|
|
$5000$ Monte Carlo cycles. The expected energy per spin is $\langle \epsilon \rangle = -2$
|
|
and the expected magnetization per spin is $\langle |m| \rangle = 1.0$. % add something about what is expected for $T_{1}$ ?
|
|
For $T_{2}$ we observed a change in expectation values for both the ordered and the
|
|
unordered lattice.
|
|
% \begin{align*}
|
|
% p(s|T=1.0) &= \frac{1}{e^{-\beta \sum E(s)}} e^{-\beta E(s)} \\
|
|
% &= \frac{1}{e^{-(1/k_{B}) \sum E(s)}} e^{-(1/k_{B}) E(s)} \ .
|
|
% \end{align*}
|
|
For $T_{2}$ we observe an increase in expected energy per spin $\langle \epsilon \rangle \approx -1.23$,
|
|
and a decrease in expected magnetization per spin $\langle |m| \rangle \approx 0.46$.
|
|
% Burn-in figures
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/burn_in_time_magnetization_1_0.pdf}
|
|
\caption{Magnetization per spin $\langle |m| \rangle$ as a function of time $t$ given by Monte Carlo cycles, for $T = 1.0 J / k_{B}$}
|
|
\label{fig:burn_in_magnetization_1_0}
|
|
\end{figure}
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/burn_in_time_energy_1_0.pdf}
|
|
\caption{Energy per spin $\langle \epsilon \rangle$ as a function of time $t$ given by Monte Carlo cycles, for $T = 1.0 J / k_{B}$}
|
|
\label{fig:burn_in_energy_1_0}
|
|
\end{figure}
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/burn_in_time_magnetization_2_4.pdf}
|
|
\caption{Magnetization per spin $\langle |m| \rangle$ as a function of time $t$ given by Monte Carlo cycles, for $T = 2.4 J / k_{B}$}
|
|
\label{fig:burn_in_magnetization_2_4}
|
|
\end{figure}
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/burn_in_time_energy_2_4.pdf}
|
|
\caption{Energy per spin $\langle \epsilon \rangle$ as a function of time $t$ given by Monte Carlo cycles, for $T = 2.4 J / k_{B}$}
|
|
\label{fig:burn_in_energy_2_4}
|
|
\end{figure}
|
|
|
|
|
|
\subsection{Probability distribution}\label{subsec:probability_distribution}
|
|
% Histogram figures
|
|
We used the estimated burn-in time of $5000$ Monte Carlo cycles as starting time, and generated
|
|
samples. To visualize the distribution of energy per spin $\epsilon$, we used histograms
|
|
with a bin size $0.02$. In Figure \ref{fig:histogram_1_0} we show the distribution
|
|
for $T_{1}$. Where the resulting expectation
|
|
value of energy per spin is $\langle \epsilon \rangle = -1.9969$, with a low variance
|
|
of Var$(\epsilon) = 0.0001$. %
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/pd_estimate_1_0.pdf}
|
|
\caption{Histogram $T = 1.0 J / k_{B}$}
|
|
\label{fig:histogram_1_0}
|
|
\end{figure} %
|
|
In Figure \ref{fig:histogram_2_4}, for $T_{2}$, the samples of energy per spin is
|
|
centered around the expectation value $\langle \epsilon \rangle = -1.2370$. %
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/pd_estimate_2_4.pdf}
|
|
\caption{Histogram $T = 2.4 J / k_{B}$}
|
|
\label{fig:histogram_2_4}
|
|
\end{figure} %
|
|
However, we observed a higher variance of Var$(\epsilon) = 0.0203$. When the temperature
|
|
increased, the system moved from an ordered to an onordered state. The change in
|
|
system state, or phase transition, indicates the temperature is close to a critical
|
|
point.
|
|
|
|
|
|
\subsection{Phase transition}\label{subsec:phase_transition}
|
|
% Phase transition figures
|
|
We continued investigating the behavior of the system around the critical temperature.
|
|
First, we generated $10$ million samples of spin configurations for lattices of
|
|
size $L \in \{20, 40, 60, 80, 100\}$, and temperatures $T \in [2.1, 2.4]$. We divided the
|
|
temperature range into $40$ steps, with an equal step size of $0.0075$. The samples
|
|
were generated in parallel, where we allocated $4$ sequential temperatures to $10$
|
|
MPI processes. Each process was set to spawn $10$ thread, resulting in a total of
|
|
$100$ threads working in parallel. We include results for $1$ million MC cycles
|
|
in Appendix \ref{sec:additional_results}
|
|
|
|
$\boldsymbol{Rewrite}$ We ran a profiler to make sure the program was fully optimized which found that the
|
|
workload was balanced, the threads was not left idle to long/not a lot of downtime.
|
|
|
|
In Figure \ref{fig:phase_energy_10M}, for the larger lattices we observe a sharper
|
|
increase in $\langle \epsilon \rangle$ in the temperature range $T \in [2.25, 2.35]$. %]
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/phase_transition/fox/wide/10M/energy.pdf}
|
|
\caption{$\langle \epsilon \rangle$ for $T \in [2.1, 2.4]$, $10^7$ MC cycles.}
|
|
\label{fig:phase_energy_10M}
|
|
\end{figure} %
|
|
We observe a deacrese in $\langle |m| \rangle$ for the same temperature range in
|
|
Figure \ref{fig:phase_magnetization_10M}, suggesting the system moves from an ordered
|
|
magnetized state to a state of no net magnetization. The system energy increase,
|
|
however, there is a loss of magnetization close to the critical temperature.
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/phase_transition/fox/wide/10M/magnetization.pdf}
|
|
\caption{$\langle |m| \rangle$ for $T \in [2.1, 2.4]$, $10^7$ MC cycles.}
|
|
\label{fig:phase_magnetization_10M}
|
|
\end{figure} %
|
|
In Figure \ref{fig:phase_heat_10M}, we observe an increase in heat capacity in the
|
|
temperature range $T \in [2.25, 2.35]$. In addition, we observed a sharper peak
|
|
value of heat capacity the lattice size increase.
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/phase_transition/fox/wide/10M/heat_capacity.pdf}
|
|
\caption{$C_{V}$ for $T \in [2.1, 2.4]$, $10^7$ MC cycles.}
|
|
\label{fig:phase_heat_10M}
|
|
\end{figure} %
|
|
The magnetic susceptibility in Figure \ref{fig:phase_susceptibility_10M}, show
|
|
the sharp peak in the same temperature range as that of the heat capacity. Since
|
|
shape of the curve for both heat capacity and the magnetic susceptibility become
|
|
sharper when we increase lattice size, we are moving closer to the critical temperature.
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/phase_transition/fox/wide/10M/susceptibility.pdf}
|
|
\caption{$\chi$ for $T \in [2.1, 2.4]$, $10^7$ MC cycles.}
|
|
\label{fig:phase_susceptibility_10M}
|
|
\end{figure} %
|
|
% Add something about the correlation length?
|
|
|
|
|
|
\subsection{Critical temperature}\label{subsec:critical_temperature}
|
|
Based on the heat capacity (Figure \ref{fig:phase_heat_10M}) and susceptibility
|
|
(Figure \ref{fig:phase_susceptibility_10M}), we estimated the critical temperatures
|
|
of lattices of size $L \in \{20, 40, 60, 80, 100\}$ found in Table \ref{tab:critical_temperatures}.
|
|
\begin{table}[H]
|
|
\centering
|
|
\begin{tabular}{cc} % @{\extracolsep{\fill}}
|
|
\hline
|
|
$L$ & $T_{c}(L)$ \\
|
|
\hline
|
|
$20$ & $ J / k_{B}$ \\
|
|
$40$ & $ J / k_{B}$ \\
|
|
$60$ & $ J / k_{B}$ \\
|
|
$80$ & $ J / k_{B}$ \\
|
|
$100$ & $ J / k_{B}$ \\
|
|
\hline
|
|
\end{tabular}
|
|
\caption{Estimated critical temperatures for lattices $L \times L$, where $L$ denote the lattice size.}
|
|
\label{tab:critical_temperatures}
|
|
\end{table}
|
|
We used the critical temperatures of finite lattices and the scaling relation in
|
|
Equation \eqref{eq:critical_infinite}, Section \ref{subsec:phase_critical}, to estimate
|
|
the critical temperature of a lattice of infinite size. In Figure \ref{fig:linreg_10M},
|
|
we plot the critical temperatures $T_{c}(L)$ of the inverse lattice size $1/L$. When
|
|
the lattice size increase toward infinity, $1/L$ approaches zero. %
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{../images/phase_transition/fox/wide/10M/linreg.pdf}
|
|
\caption{Linear regression, where $\beta_{0}$ is the intercept approximating $T_{c}(L = \infty)$, and $\beta_{1}$ is the slope.}
|
|
\label{fig:linreg_10M}
|
|
\end{figure}
|
|
Using linear regression, we find the intercept which gives us an estimated value
|
|
of the critical temperature for a lattice of infinite size. We find the critical
|
|
temperature to be $T_{c \text{num}} \approx 2.2695 J/k_{B}$. We also compared the
|
|
estimate with the analytical solution, the relative error of our estimate is
|
|
\begin{equation*}
|
|
\text{Relative error} = \frac{T_{c \text{ numerical}} - T_{c \text{ analytical}}}{T_{c \text{ analytical}}} \approx 0.001 J/k_{B}
|
|
\end{equation*}
|
|
|
|
\end{document}
|