summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaron Kent-Dobias <jaron@kent-dobias.com>2018-10-02 22:04:25 -0400
committerJaron Kent-Dobias <jaron@kent-dobias.com>2018-10-02 22:04:25 -0400
commit1bae73b2a7378d501342ccbd8a7942317ffe02f7 (patch)
tree2a6cf1514042df1b56e90409205e4a3a201bec3f
parentcf23dc322e08831152647d47fcd499f33f4b0ac1 (diff)
downloadPRE_98_063306-1bae73b2a7378d501342ccbd8a7942317ffe02f7.tar.gz
PRE_98_063306-1bae73b2a7378d501342ccbd8a7942317ffe02f7.tar.bz2
PRE_98_063306-1bae73b2a7378d501342ccbd8a7942317ffe02f7.zip
began editing the performance section, and many figure improvements
-rw-r--r--figs/fig_clusters_ising2d.gplot44
-rw-r--r--figs/fig_correlation-times.gplot32
-rw-r--r--monte-carlo.tex35
3 files changed, 77 insertions, 34 deletions
diff --git a/figs/fig_clusters_ising2d.gplot b/figs/fig_clusters_ising2d.gplot
index 6f1a75d..e5d847c 100644
--- a/figs/fig_clusters_ising2d.gplot
+++ b/figs/fig_clusters_ising2d.gplot
@@ -76,26 +76,35 @@ set ylabel @scaledylabel
# ploting Ising 2D
set xrange @isingRange
-#set yrange [0.8:10]
+set yrange [0.8:6]
-plot dataIsing2D using (column("H")/column("T") * exp(log(column("L")) * betaIsing2D * deltaIsing2D / nuIsing2D)):(column("S") * exp(-log(column("L")) * (gammaIsing2D / nuIsing2D))):(column("dS") * exp(-log(column("L")) * (gammaIsing2D / nuIsing2D))):1 with yerrorbars pt 0 lw 2 palette,\
- dataIsing2D using (column("H")/column("T") * exp(log(column("L")) * betaIsing2D * deltaIsing2D / nuIsing2D)):(column("S") * exp(-log(column("L")) * (gammaIsing2D / nuIsing2D))):1 with lines palette
+set title '\twodee Ising' offset -6.5,-2.5
+plot dataIsing2D using (column("H")/column("T") * exp(log(column("L")) * betaIsing2D * deltaIsing2D / nuIsing2D)):(column("S") * exp(-log(column("L")) * (gammaIsing2D / nuIsing2D))):(column("dS") * exp(-log(column("L")) * (gammaIsing2D / nuIsing2D))):1 with yerrorbars pt 0 lw 2 palette,\
+ dataIsing2D using (column("H")/column("T") * exp(log(column("L")) * betaIsing2D * deltaIsing2D / nuIsing2D)):(column("S") * exp(-log(column("L")) * (gammaIsing2D / nuIsing2D))):1 with lines palette,\
+ 1.4 * exp(log(x) * 2 / deltaIsing2D) with lines lc rgb "black"
+
unset ylabel
# plotting 3 Potts 2D
set xrange @pottsRange
-set yrange [0.5:10]
+set yrange [0.9:6]
+
+set title '\twodee 3-State Potts' offset -4,-2.5
plot data3Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta3Potts2D * delta3Potts2D / nu3Potts2D)):(column("S") * exp(-log(column("L")) * (gamma3Potts2D / nu3Potts2D))):(column("dS") * exp(-log(column("L")) * (gamma3Potts2D / nu3Potts2D))):1 with yerrorbars pt 0 lw 2 palette,\
- data3Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta3Potts2D * delta3Potts2D / nu3Potts2D)):(column("S") * exp(-log(column("L")) * (gamma3Potts2D / nu3Potts2D))):1 with lines palette
+ data3Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta3Potts2D * delta3Potts2D / nu3Potts2D)):(column("S") * exp(-log(column("L")) * (gamma3Potts2D / nu3Potts2D))):1 with lines palette,\
+ 1.4 * exp(log(x) * 2 / delta3Potts2D) with lines lc rgb "black"
# plotting 2 Vector 3D
set xrange @vectorRange
-set yrange [0.4:250]
+set yrange [0.2:80]
+
+set title '\threedee O(2)' offset -6.5,-2.5
plot data2Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta2Vector3D * delta2Vector3D / nu2Vector3D)):(column("S") * exp(-log(column("L")) * (gamma2Vector3D / nu2Vector3D))):(column("dS") * exp(-log(column("L")) * (gamma2Vector3D / nu2Vector3D))):1 with yerrorbars pt 0 lw 2 palette,\
- data2Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta2Vector3D * delta2Vector3D / nu2Vector3D)):(column("S") * exp(-log(column("L")) * (gamma2Vector3D / nu2Vector3D))):1 with lines palette
+ data2Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta2Vector3D * delta2Vector3D / nu2Vector3D)):(column("S") * exp(-log(column("L")) * (gamma2Vector3D / nu2Vector3D))):1 with lines palette,\
+ 1 * exp(log(x) * 2 / delta2Vector3D) with lines lc rgb "black"
# plotting the second row
set format x '$10^{%T}$'
@@ -104,24 +113,33 @@ set ylabel @scaledylabel
# plotting Ising 3D
set xrange @isingRange
-set yrange [0.5:500]
+set yrange [0.5:200]
+
+set title '\threedee Ising' offset -6.5,-2.5
plot dataIsing3D using (column("H")/column("T") * exp(log(column("L")) * betaIsing3D * deltaIsing3D / nuIsing3D)):(column("S") * exp(-log(column("L")) * (gammaIsing3D / nuIsing3D))):(column("dS") * exp(-log(column("L")) * (gammaIsing3D / nuIsing3D))):1 with yerrorbars pt 0 lw 2 palette,\
- dataIsing3D using (column("H")/column("T") * exp(log(column("L")) * betaIsing3D * deltaIsing3D / nuIsing3D)):(column("S") * exp(-log(column("L")) * (gammaIsing3D / nuIsing3D))):1 with lines palette
+ dataIsing3D using (column("H")/column("T") * exp(log(column("L")) * betaIsing3D * deltaIsing3D / nuIsing3D)):(column("S") * exp(-log(column("L")) * (gammaIsing3D / nuIsing3D))):1 with lines palette,\
+ 4 * exp(log(x) * 2 / deltaIsing3D) with lines lc rgb "black"
unset ylabel
# plotting 4 Potts 2D
set xrange @pottsRange
-set yrange [0.8:4]
+set yrange [0.8:6]
+
+set title '\twodee 4-State Potts' offset -4,-2.5
plot data4Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta4Potts2D * delta4Potts2D / nu4Potts2D)):(column("S") * exp(-log(column("L")) * (gamma4Potts2D / nu4Potts2D))):(column("dS") * exp(-log(column("L")) * (gamma4Potts2D / nu4Potts2D))):1 with yerrorbars pt 0 lw 2 palette,\
- data4Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta4Potts2D * delta4Potts2D / nu4Potts2D)):(column("S") * exp(-log(column("L")) * (gamma4Potts2D / nu4Potts2D))):1 with lines palette
+ data4Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta4Potts2D * delta4Potts2D / nu4Potts2D)):(column("S") * exp(-log(column("L")) * (gamma4Potts2D / nu4Potts2D))):1 with lines palette,\
+ 1.4 * exp(log(x) * 2 / delta4Potts2D) with lines lc rgb "black"
# plotting 3 Vector 3D
set xrange @vectorRange
-set yrange [0.1:100]
+set yrange [0.3:100]
+
+set title '\threedee O(3)' offset -6.5,-2.5
plot data3Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta3Vector3D * delta3Vector3D / nu3Vector3D)):(column("S") * exp(-log(column("L")) * (gamma3Vector3D / nu3Vector3D))):(column("dS") * exp(-log(column("L")) * (gamma3Vector3D / nu3Vector3D))):1 with yerrorbars pt 0 lw 2 palette,\
- data3Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta3Vector3D * delta3Vector3D / nu3Vector3D)):(column("S") * exp(-log(column("L")) * (gamma3Vector3D / nu3Vector3D))):1 with lines palette
+ data3Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta3Vector3D * delta3Vector3D / nu3Vector3D)):(column("S") * exp(-log(column("L")) * (gamma3Vector3D / nu3Vector3D))):1 with lines palette,\
+ 1 * exp(log(x) * 2 / delta3Vector3D) with lines lc rgb "black"
diff --git a/figs/fig_correlation-times.gplot b/figs/fig_correlation-times.gplot
index 67c5dcb..874fa79 100644
--- a/figs/fig_correlation-times.gplot
+++ b/figs/fig_correlation-times.gplot
@@ -82,10 +82,13 @@ set ylabel @scaledylabel
# ploting Ising 2D
set xrange @isingRange
-set yrange [0.2:1.1]
+set yrange [0.2:1.2]
+
+set title '\twodee Ising' offset -6.5,-8
plot dataIsing2D using (column("H")/column("T") * exp(log(column("L")) * betaIsing2D * deltaIsing2D / nuIsing2D)):(column("t") * column("S") * exp(-log(column("L")) * (zIsing2D + 2))):(sqrt((column("dt")/column("t"))**2 + (column("dS")/column("S"))**2) * column("t") * column("S") * exp(-log(column("L")) * (zIsing2D + 2))):1 with yerrorbars pt 0 lw 2 palette,\
- dataIsing2D using (column("H")/column("T") * exp(log(column("L")) * betaIsing2D * deltaIsing2D / nuIsing2D)):(column("t") * column("S") * exp(-log(column("L")) * (zIsing2D + 2))):1 with lines palette
+ dataIsing2D using (column("H")/column("T") * exp(log(column("L")) * betaIsing2D * deltaIsing2D / nuIsing2D)):(column("t") * column("S") * exp(-log(column("L")) * (zIsing2D + 2))):1 with lines palette,\
+ 0.7 * exp(- log(x) * zIsing2D * nuIsing2D / (betaIsing2D * deltaIsing2D)) with lines lc rgb "black"
unset ylabel
@@ -93,15 +96,21 @@ unset ylabel
set xrange @pottsRange
set yrange [0.05:2]
+set title '\twodee 3-State Potts' offset -4,-8
+
plot data3Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta3Potts2D * delta3Potts2D / nu3Potts2D)):(column("t") * column("S") * exp(-log(column("L")) * (z3Potts2D + 2))):(sqrt((column("dt")/column("t"))**2 + (column("dS")/column("S"))**2) * column("t") * column("S") * exp(-log(column("L")) * (z3Potts2D + 2))):1 with yerrorbars pt 0 lw 2 palette,\
- data3Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta3Potts2D * delta3Potts2D / nu3Potts2D)):(column("t") * column("S") * exp(-log(column("L")) * (z3Potts2D + 2))):1 with lines palette
+ data3Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta3Potts2D * delta3Potts2D / nu3Potts2D)):(column("t") * column("S") * exp(-log(column("L")) * (z3Potts2D + 2))):1 with lines palette,\
+ 0.6 * exp(- log(x) * z3Potts2D * nu3Potts2D / (beta3Potts2D * delta3Potts2D)) with lines lc rgb "black"
# plotting 2 Vector 3D
set xrange @vectorRange
set yrange [0.4:2]
+set title '\threedee O(2)' offset -6.5,-8
+
plot data2Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta2Vector3D * delta2Vector3D / nu2Vector3D)):(column("t") * column("S") * exp(-log(column("L")) * (z2Vector3D + 3))):(sqrt((column("dt")/column("t"))**2 + (column("dS")/column("S"))**2) * column("t") * column("S") * exp(-log(column("L")) * (z2Vector3D + 3))):1 with yerrorbars pt 0 lw 2 palette,\
- data2Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta2Vector3D * delta2Vector3D / nu2Vector3D)):(column("t") * column("S") * exp(-log(column("L")) * (z2Vector3D + 3))):1 with lines palette
+ data2Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta2Vector3D * delta2Vector3D / nu2Vector3D)):(column("t") * column("S") * exp(-log(column("L")) * (z2Vector3D + 3))):1 with lines palette,\
+ 1.1 * exp(- log(x) * z2Vector3D * nu2Vector3D / (beta2Vector3D * delta2Vector3D)) with lines lc rgb "black"
# plotting the second row
set format x '$10^{%T}$'
@@ -112,8 +121,11 @@ set ylabel @scaledylabel
set xrange @isingRange
set yrange [0.2:1]
+set title '\threedee Ising' offset -6.5,-8
+
plot dataIsing3D using (column("H")/column("T") * exp(log(column("L")) * betaIsing3D * deltaIsing3D / nuIsing3D)):(column("t") * column("S") * exp(-log(column("L")) * (zIsing3D + 3))):(sqrt((column("dt")/column("t"))**2 + (column("dS")/column("S"))**2) * column("t") * column("S") * exp(-log(column("L")) * (zIsing3D + 3))):1 with yerrorbars pt 0 lw 2 palette,\
- dataIsing3D using (column("H")/column("T") * exp(log(column("L")) * betaIsing3D * deltaIsing3D / nuIsing3D)):(column("t") * column("S") * exp(-log(column("L")) * (zIsing3D + 3))):1 with lines palette
+ dataIsing3D using (column("H")/column("T") * exp(log(column("L")) * betaIsing3D * deltaIsing3D / nuIsing3D)):(column("t") * column("S") * exp(-log(column("L")) * (zIsing3D + 3))):1 with lines palette,\
+ 0.5 * exp(- log(x) * zIsing3D * nuIsing3D / (betaIsing3D * deltaIsing3D)) with lines lc rgb "black"
unset ylabel
@@ -121,13 +133,19 @@ unset ylabel
set xrange @pottsRange
set yrange [0.02:4]
+set title '\twodee 4-State Potts' offset -4,-8
+
plot data4Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta4Potts2D * delta4Potts2D / nu4Potts2D)):(column("t") * column("S") * exp(-log(column("L")) * (z4Potts2D + 2))):(sqrt((column("dt")/column("t"))**2 + (column("dS")/column("S"))**2) * column("t") * column("S") * exp(-log(column("L")) * (z4Potts2D + 2))):1 with yerrorbars pt 0 lw 2 palette,\
- data4Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta4Potts2D * delta4Potts2D / nu4Potts2D)):(column("t") * column("S") * exp(-log(column("L")) * (z4Potts2D + 2))):1 with lines palette
+ data4Potts2D using (column("H")/column("T") * exp(log(column("L")) * beta4Potts2D * delta4Potts2D / nu4Potts2D)):(column("t") * column("S") * exp(-log(column("L")) * (z4Potts2D + 2))):1 with lines palette,\
+ 0.4 * exp(- log(x) * z4Potts2D * nu4Potts2D / (beta4Potts2D * delta4Potts2D)) with lines lc rgb "black"
# plotting 3 Vector 3D
set xrange @vectorRange
set yrange [0.9:4]
+set title '\threedee O(3)' offset -6.5,-8
+
plot data3Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta3Vector3D * delta3Vector3D / nu3Vector3D)):(column("t") * column("S") * exp(-log(column("L")) * (z3Vector3D + 3))):(sqrt((column("dt")/column("t"))**2 + (column("dS")/column("S"))**2) * column("t") * column("S") * exp(-log(column("L")) * (z3Vector3D + 3))):1 with yerrorbars pt 0 lw 2 palette,\
- data3Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta3Vector3D * delta3Vector3D / nu3Vector3D)):(column("t") * column("S") * exp(-log(column("L")) * (z3Vector3D + 3))):1 with lines palette
+ data3Vector3D using (column("H")/column("T") * exp(log(column("L")) * beta3Vector3D * delta3Vector3D / nu3Vector3D)):(column("t") * column("S") * exp(-log(column("L")) * (z3Vector3D + 3))):1 with lines palette,\
+ 2.1 * exp(- log(x) * z3Vector3D * nu3Vector3D / (beta3Vector3D * delta3Vector3D)) with lines lc rgb "black"
diff --git a/monte-carlo.tex b/monte-carlo.tex
index 265e376..db606a1 100644
--- a/monte-carlo.tex
+++ b/monte-carlo.tex
@@ -500,7 +500,7 @@ When $x<1$ transformations that do not change the energy of a bond can still
activate it in the cluster, which allows nontrival clusters to be seeded when
the height of the starting site is also the plane of reflection. This
modification is likely useful in general for systems with large yet discrete
-configuration spaces $X$.
+state spaces.
\section{Performance}
\label{sec:performance}
@@ -509,13 +509,13 @@ No algorithm is worthwhile if it doesn't run efficiently. This algorithm,
being an extension of the Wolff algorithm into a new domain, should be
considered successful if it likewise extends the efficiency of the Wolff
algorithm into that domain. Some systems are not efficient under Wolff, and we
-don't expect this extension to help them. For instance, Ising models with
-random fields or bonds technically can be treated with Wolff
+don't expect them to fare better when extended in a field. For instance, Ising
+models with random fields or bonds technically can be treated with Wolff
\cite{dotsenko_cluster_1991}, but it is not efficient because the clusters
-formed do scale naturally with the correlation length
-\cite{rieger_monte_1995,redner_graphical_1998}. Other approaches, like replica methods, should
-be relied on instead
-\cite{redner_graphical_1998,chayes_graphical_1998,machta_replica-exchange_2000}.
+formed do scale naturally with the correlation length \cite{rieger_monte_1995,
+redner_graphical_1998}. Other approaches, like replica methods, should be
+relied on instead \cite{redner_graphical_1998, chayes_graphical_1998,
+machta_replica-exchange_2000}.
At a critical point, correlation time $\tau$ scales with system size
$L=N^{-D}$ as $\tau\sim L^z$. Cluster algorithms are celebrated for their
@@ -528,18 +528,25 @@ as a function of temperature $t$ and field $h$ of the form
If a given dynamics for a system at zero field results in scaling like $L^z$,
one should expect its natural extension in the presence of a field to scale
roughly like $h^{-z\nu/\beta\delta}$ and collapse appropriately as a function
-of $hL^{\beta\delta/\nu}$. We measured the autocorrelation time for the $D=2$
-square-lattice model at a variety of system sizes, temperatures, and fields
-$B(s)=hs/\beta$ using standard methods \cite{ossola_dynamic_2004}. The
-resulting scaling behavior, plotted in
+of $hL^{\beta\delta/\nu}$.
+
+We measured the autocorrelation time of the energy $\H$ for a variety of
+models at critical temperature with many system sizes and canonical fields
+(see Table~\ref{table:models} with $h=\beta H$) using standard methods
+\cite{ossola_dynamic_2004}. The resulting scaling behavior, plotted in
Fig.~\ref{fig:correlation_time-collapse}, is indeed consistent with an
-extension to finite field of the behavior at zero field.
+extension to finite field of the behavior at zero field, with an eventual
+finite-size crossover to constant autocorrelation time.
\begin{figure*}
\include{fig_correlation-times}
\caption{
- Correlation times $\tau$ scaled by the average cluster size as a function
- of external field for various models at various system sizes.
+ Scaling collapse of autocorrelation times $\tau$ for the energy $\H$
+ scaled by the average cluster size as a function of external field for
+ various models of Table~\ref{table:models}. Critical exponents are
+ model-dependent. Colored lines and points depict values as measured by the
+ extended algorithm. Solid black lines show a plot proportional to
+ $h^{-z\nu/\beta\delta}$ for each model.
}
\label{fig:correlation_time-collapse}
\end{figure*}