\documentclass[../ising_model.tex]{subfiles}

\begin{document}
\section{Results}\label{sec:results}
\subsection{Burn-in time}\label{subsec:burnin_time}
$\boldsymbol{Draft}$
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.

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.}
% 
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}
% Histogram figures
We used the estimated burn-in time as starting time for sampling, and generated 
samples. To visualize the distribution of energy per spin $\epsilon$, we used histograms 
with a bin size (...). In Figure \ref{fig:histogram_1_0} we show the distribution 
for $T_{1}$, where the majority of the energy per spin is $-2$. 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 observe a higher variance of Var$(\epsilon) = 0.0203$. When the temperature 
increase, the system moves 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}
$\boldsymbol{Draft}$
% Phase transition figures
We continue 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}, showed 
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$ \\
        $40$ & $1$ \\
        $60$ & $J / k_{B}$ \\
        $80$ & $k_{B}$ \\
        $100$ & $1 / J$ \\
        \hline
    \end{tabular}
    \caption{Estimated critical temperatures for lattices $L \times L$.}
    \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}
