Project-4/latex/sections/results.tex
2023-12-01 13:54:59 +01:00

182 lines
8.1 KiB
TeX

\documentclass[../ising_model.tex]{subfiles}
\begin{document}
\section{Results}\label{sec:results}
% 2.1-2-4 divided into 40 steps, which gives us a step size of 0.0075.
% 10 MPI processes
% - 10 threads per process
% = 100 threads total
% Not a lot of downtime for the threads
However, when the temperature is close to the critical point, we observe an increase
in expected energy and a decrease in magnetization. Suggesting a higher energy and
a loss of magnetization close to the critical temperature.
% We did not set the seed for the random number generator, which resulted in
% different numerical estimates each time we ran the model. However, all expectation
% values are calculated using the same data. The burn-in time varied each time.
% We see a burn-in time t = 5000-10000 MC cycles. However, this changed between runs.
We decided with a burn-in time parallelization trade-off. That is, we set the
burn-in time lower in favor of sampling. To take advantage of the parallelization
and not to waste computational resources. The argument to discard samples generated
during the burn-in time is ... Increasing number of samples outweigh the ...
parallelize using MPI. We generated
samples for the temperature range $T \in [2.1, 2.4]$. Using Fox we generated both
1 million samples and 10 million samples.
It is worth mentioning that the time (number of MC cycles) necessary to get a
good numerical estimate, compared to the analytical result, foreshadowing the
burn-in time.
Markov chain starting point can differ, resulting in different simulation. By
discarding the first samples, the ones generated before system equilibrium we can
get an estimate closer to the real solution. Since we want to estimate expectation
values at a given temperature, the samples should represent the system at that
temperature.
Depending on number of samples used in numerical estimates, using the samples
generated during burn-in can in high bias and high variance if the ratio is skewed.
However, if most samples are generated after burn-in the effect is not as visible.
Can't remove randomness by starting around equilibrium, since samples are generated
using several ising models we need to sample using the same conditions that is
system state equilibrium.
\subsection{Burn-in time}\label{subsec:burnin_time}
$\boldsymbol{Draft}$
We start with a lattice where $L = 20$, to study the burn-in time, that is the
number of Monte Carlo cycles necessary for the system to reach an equilibrium.
We consider two different temperatures $T_{1} = 1.0 J/k_{B}$ and $T_{2} = 2.4 J/k_{B}$,
where $T_{2}$ is close to the critical temperature. We can use the correlation
time $\tau \approx L^{d + z}$ to determine time, 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.}
% Need to include a section of Onsager's analytical result.
We show the numerical estimates for temperature $T_{1}$ of $\langle \epsilon \rangle$
in Figure \ref{fig:burn_in_energy_1_0} and $\langle |m| \rangle$ in Figure
\ref{fig:burn_in_magnetization_1_0}. For temperature $T_{2}$, the numercal estimate
of $\langle \epsilon \rangle$ is shown in Figure \ref{fig:burn_in_energy_2_4} and
$\langle |m| \rangle$ in Figure \ref{fig:burn_in_magnetization_2_4}. The lattice
is initialized in both an ordered and an unordered state. We observe that for
$T_{1}$ there is no change in either expectation value with increasing number of
Monte Carlo cycles, when we start with an ordered state. As for the unordered
lattice, we observe a change for the first 5000 MC cycles, where it stabilizes.
The approximated expected energy is $-2$ and expected magnetization is $1.0$,
which is to be expected for temperature 0f $1.0$. T is below the critical and the
pdf using $T = 1.0$ result in
\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*}
% Burn-in figures
\begin{figure}[H]
\centering
\includegraphics[width=\linewidth]{../images/burn_in_time_magnetization_1_0.pdf}
\caption{$\langle |m| \rangle$ as a function of time, 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{$\langle \epsilon \rangle$ as a function of time, 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{$\langle |m| \rangle$ as a function of time, 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{$\langle \epsilon \rangle$ as a function of time, for $T = 2.4 J / k_{B}$}
\label{fig:burn_in_energy_2_4}
\end{figure}
\subsection{Probability distribution}\label{subsec:probability_distribution}
$\boldsymbol{Draft}$
% Histogram figures
We use the estimated burn-in time to set starting time for sampling, then generate
samples to plot in a histogram for $T_{1}$ in Figure \ref{fig:histogram_1_0} and
$T_{2}$ in Figure \ref{fig:histogram_2_4}. For $T_{1}$ we can see that most samples
have the expected value $-2$, we have a distribution with low variance.
\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}
\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}
\subsection{Phase transition}\label{subsec:phase_transition}
$\boldsymbol{Draft}$
% Phase transition figures
\begin{figure}
\centering
\includegraphics[width=\linewidth]{../images/phase_transition/fox/wide/1M/energy.pdf}
\caption{$\langle \epsilon \rangle$ for $T \in [2.1, 2.4]$, 1000000 MC cycles.}
\label{fig:phase_energy}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[width=\linewidth]{../images/phase_transition/fox/wide/1M/magnetization.pdf}
\caption{$\langle |m| \rangle$ for $T \in [2.1, 2.4]$, 1000000 MC cycles.}
\label{fig:phase_magnetization}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[width=\linewidth]{../images/phase_transition/fox/wide/1M/heat_capacity.pdf}
\caption{$C_{V}$ for $T \in [2.1, 2.4]$, 1000000 MC cycles.}
\label{fig:phase_heat}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[width=\linewidth]{../images/phase_transition/fox/wide/1M/susceptibility.pdf}
\caption{$\chi$ for $T \in [2.1, 2.4]$, 1000000 MC cycles.}
\label{fig:phase_susceptibility}
\end{figure}
We include results for 10 million MC cycles in Appendix \ref{sec:extra_results}
\subsection{Critical temperature}\label{subsec:critical_temperature}
$\boldsymbol{Draft}$
We use the critical temperatures found in previous section, in addition to the
scaling relation in Equation \eqref{eq:critical_intinite}
\begin{equation}
T_{c} - T_{c}(L = \infty) = \alpha L^{-1}
\label{eq:critical_intinite}
\end{equation}
to estimate the critical temperature for a lattize of infinte size. We also
compared the estimate with the analytical solution
\begin{equation}
T_{c}(L = \infty) = \frac{2}{\ln (1 + \sqrt{2})} J/k_{B} \approx 2.269 J/k_{B}
\end{equation}
using linear regression. In Figure \ref{fig:linreg} we find the critical
temperatures as function of the inverse lattice size. When the lattice size increase
toward infinity, $1/L$ goes toward zero, we find the intercept which gives us an
estimated value of the critical temperature for a lattice of infinite size.
% Critical temp regression figure
\begin{figure}[H]
\centering
\includegraphics[width=\linewidth]{../images/phase_transition/fox/wide/1M/linreg.pdf}
\caption{Linear regression, where $\beta_{0}$ is the intercept $T_{c}(L = \infty)$ and $\beta_{1}$ is the slope.}
\label{fig:linreg}
\end{figure}
\end{document}