summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaron Kent-Dobias <jaron@kent-dobias.com>2018-02-21 11:40:28 -0500
committerJaron Kent-Dobias <jaron@kent-dobias.com>2018-02-21 11:40:28 -0500
commit05725b9fa4843d19561b026567979709cc6b62a2 (patch)
tree9befb0daadbb24647fad52635d36657fcb98b17c
downloadaps_mm_2018-05725b9fa4843d19561b026567979709cc6b62a2.tar.gz
aps_mm_2018-05725b9fa4843d19561b026567979709cc6b62a2.tar.bz2
aps_mm_2018-05725b9fa4843d19561b026567979709cc6b62a2.zip
initial commit
-rw-r--r--.gitignore7
-rw-r--r--.gitmodules3
-rw-r--r--aps_mm_2018.html194
-rw-r--r--aps_mm_2018.tex166
-rw-r--r--figs/test.webmbin0 -> 231287 bytes
-rw-r--r--figs/wolff-scoop_explanation.pngbin0 -> 98441 bytes
-rw-r--r--figs/wolff-scoop_title.pngbin0 -> 139907 bytes
-rw-r--r--main.css32
m---------vissense0
9 files changed, 402 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..203e646
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+aps_mm_2018.aux
+aps_mm_2018.log
+aps_mm_2018.nav
+aps_mm_2018.out
+aps_mm_2018.pdf
+aps_mm_2018.snm
+aps_mm_2018.toc
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..071b2fe
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "vissense"]
+ path = vissense
+ url = https://github.com/vissense/vissense.git
diff --git a/aps_mm_2018.html b/aps_mm_2018.html
new file mode 100644
index 0000000..afa519b
--- /dev/null
+++ b/aps_mm_2018.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Title</title>
+ <meta charset="utf-8">
+ <style>
+ @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
+ @import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
+ @import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
+
+ body { font-family: 'Droid Serif'; }
+ h1, h2, h3 {
+ font-family: 'Yanone Kaffeesatz';
+ font-weight: normal;
+ }
+ .remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
+ </style>
+ <link rel="stylesheet" type="text/css" href="main.css">
+ </head>
+ <body>
+ <textarea id="source">
+
+class: center, middle
+
+# An efficient cluster algorithm for spin systems in a symmetry-breaking field
+
+## Jaron Kent-Dobias &amp; James Sethna
+
+### Cornell University
+
+## 9 March 2018
+
+---
+
+# Spin systems
+
+Described by Hamiltonians
+
+$$\mathcal H=-\sum_{\langle ij\rangle}Z(s_i,s_j)-\sum_iH(s_i)$$
+
+for \\(Z\\) invariant under rotations \\(R\\): \\(Z(R(s),R(t))=Z(s,t)\\).
+
+<table style="border-collapse: collapse; table-layout: fixed; width: 80%; margin: auto;">
+ <thead style="border-bottom: 2px solid #000;">
+ <tr>
+ <td class="first"></td><td>\(s\)<td>\(R\)</td><td>\(Z(s_i,s_j)\)</td><td>\(H(s)\)</td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="first">Ising model</td><td>\(\{-1,1\}\)</td><td>\(s\mapsto-s\)</td><td>\(s_is_j\)</td><td>\(Hs\)</td>
+ </tr>
+ <tr>
+ <td class="first">Order-\(n\) model</td><td>\(S^n\)</td><td>\(\mathop{\mathrm{SO}}(n)\) (rotation)</td><td>\(s_i\cdot s_j\)</td><td>\(H\cdot s\)</td>
+ </tr>
+ <tr>
+ <td class="first">Potts model</td><td>\(\mathbb Z/q\mathbb Z\)</td><td>addition mod \(q\)</td><td>\(\delta(s_i,s_j)\)</td><td>\(\sum_iH_i\delta(i,s)\)</td>
+ </tr>
+ <tr>
+ <td class="first">Clock model</td><td>\(\mathbb Z/q\mathbb Z\)</td><td>addition mod \(q\)</td><td>\(\cos(2\pi\frac{s_i-s_j}q)\)</td><td>\(\sum_iH_i\cos(2\pi\frac{s-i}q)\)</td>
+ </tr>
+ </tbody>
+</table>
+
+Relatively simple with extremely rich behavior, phase transition galore!
+
+---
+
+# Local Monte Carlo: Not Great
+
+ Standard approach to modelling arbitrary stat mech system: metropolis.
+
+ 1. Pick random spin.
+ 2. Pick random rotation \\(R\\).
+ 3. Compute change in energy \\(\Delta\mathcal H\\) resulting from taking \\(s\\) to \\(R(s)\\).
+ 4. Take \\(s\\) to \\(R(s)\\) with probability \\(\max\\{1,e^{-\beta\Delta\mathcal H}\\}\\).
+
+
+Problem: Scales very poorly near phase transitions.
+
+Correlation time `\(\tau\sim L^z\)` at critical point, `\(\tau\sim t^{-z/\nu}\)`
+ approaching it.
+
+ `\(z\)` takes large integer values for Ising, order-`\(n\)`, Potts model critical
+
+
+---
+
+class: split-40
+
+# Wolff: wow, what a solution
+
+.column[
+
+ 1. Pick random spin, add to cluster.
+ 2. Pick random rotation `\(R\)`.
+ 3. For every neighboring spin, add to cluster with probability
+ `\(\min\{0,1-e^{-\beta(Z(R(s),t)-Z(R(s),R(t)))}\}\)`.
+ 4. Repeat 3 for every spin added to cluster.
+ 5. Transform entire cluster with rotation `\(R\)`.
+
+Relies on symmetry of `\(Z\)`
+
+Fast near the critical point: early studies thought `\(z\)` was zero, actually
+ 0.1–0.4.
+
+ ]
+
+ .column[
+<video width="320" height="320"><source src="figs/test.webm" type="video/webm"></video>
+]
+
+---
+
+# We want to apply an external field, though
+
+ The external field `\(H\)` is not invariant under global rotations!
+
+ Let's make it that way: introduce an extra spin `\(s_0\)`, let `\(R_s\)` be the rotation that takes `\(s\)` to the
+ identity
+ `\[
+ \tilde Z(s_i,s_j)=
+ \begin{cases}
+ Z(s_i,s_j) & \text{if $i,j\neq0$}\\
+ H(R_{s_0}s_i) & \text{if $j=0$}\\
+ H(R_{s_0}s_j) & \text{if $i=0$}
+ \end{cases}
+ \]`
+ Exact correspondence between expectation values of operators in old and new
+ models: if `\(A(s)\)` is an observable on old model, `\(\tilde
+ A(s_0,s)=A(R_{s_0}s)\)` has the property
+ `\[
+ \langle\tilde
+ A\rangle=\mathop{\mathrm{Tr}}\nolimits_s\mathop{\mathrm{Tr}}\nolimits_{s_0}\tilde
+ A(s_0,s)=\mathop{\mathrm{Tr}}\nolimits_sA(s)=\langle A\rangle
+ \]`
+
+---
+
+ ![scooped](figs/wolff-scoop_title.png)
+
+---
+
+ ![scoop details](figs/wolff-scoop_explanation.png)
+
+ </textarea>
+ <script src="https://remarkjs.com/downloads/remark-latest.min.js">
+ </script>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-AMS_HTML&delayStartupUntil=configured" type="text/javascript"></script>
+ <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
+ <script src="vissense/lib/vissense.js"></script>
+ <script>
+ $(document).ready(function(){
+ var videos = $('video'), // All videos element
+ allVidoesVisenseObj = [];
+ var monitorVideo = function(video){ //Handler for each video element
+ var visibility = VisSense(video, { fullyvisible: 0.75 }),
+ visibility_monitor = visibility.monitor({
+ fullyvisible: function(e) {
+ video.play();
+ },
+ hidden: function(e) {
+ video.pause();
+ }
+ }).start();
+ return {
+ visMonitor : visibility_monitor,
+ monitorStop : function(){
+ this.visMonitor.stop();
+ },
+ monitorStart : function(){
+ this.visMonitor.start();
+ }
+ };
+ };
+ videos.each(function( index ) {
+ var monitorVids = monitorVideo(this);
+ allVidoesVisenseObj.push(monitorVids);
+ });
+ });
+ </script>
+ <script type="text/javascript">
+ var slideshow = remark.create({ ratio: "16:9" });
+
+ MathJax.Hub.Config({
+ tex2jax: {
+ skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
+ }
+ });
+
+ MathJax.Hub.Configured();
+ </script>
+ </body>
+</html>
diff --git a/aps_mm_2018.tex b/aps_mm_2018.tex
new file mode 100644
index 0000000..34e9114
--- /dev/null
+++ b/aps_mm_2018.tex
@@ -0,0 +1,166 @@
+%
+% research_midsummer.tex - Research Presentation for the Topaz lab.
+%
+% Created by Jaron Kent-Dobias on Tue Mar 20 20:57:40 PDT 2012.
+% Copyright (c) 2012 pants productions. All rights reserved.
+%
+
+\documentclass[fleqn,aspectratio=169]{beamer}
+
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath,amssymb,latexsym,graphicx,multimedia}
+\usepackage{concmath}
+\usepackage[T1]{fontenc}
+
+\usecolortheme{beaver}
+\usefonttheme{serif}
+\setbeamertemplate{navigation symbols}{}
+
+\title{Direct Measurement of Metastable Properties Near Critical Points}
+\author{ Jaron~Kent-Dobias \and James~Sethna}
+\institute{Cornell University}
+\date{9 March 2018}
+
+\begin{document}
+
+\def\H{\mathcal H}
+\def\Z{\mathbb Z}
+
+\begin{frame}
+ \titlepage
+\end{frame}
+
+\begin{frame}
+ \frametitle{Outline}
+ \begin{itemize}
+ \item Simulating equilibrium spin systems
+ \item Local updates: it's got problems
+ \item Solution: cluster flips!
+ \item Cluster flips\dots in an external field???
+ \item \dots{}yes!
+ \item Analysis of runtime, efficiency
+ \item Formal redefinition of magnetization
+ \item Use: direct measurement of the metastable state
+ \end{itemize}
+ \vfill
+\end{frame}
+
+\begin{frame}
+ \frametitle{Spin systems: we love them}
+
+ Described by Hamiltonians
+ \[
+ \H=-\sum_{\langle ij\rangle}Z(s_i,s_j)-\sum_iH(s_i)
+ \]
+ for $Z$ invariant under rotations $R$: $Z(R(s),R(t))=Z(s,t)$
+
+ \begin{table}
+ \renewcommand{\tabcolsep}{7pt}
+ \begin{tabular}{l||cccc}
+ & $s$ & $R$ & $Z(s_i,s_j)$ & $H(s)$ \\
+ \hline\hline
+ Ising model & $\{-1,1\}$ & $s\mapsto-s$ & $s_is_j$ & $Hs$ \\
+ Order-$n$ model & $S^n$ & $\mathop{\mathrm{SO}}(n)$ (rotation) & $s_i\cdot s_j$ & $H\cdot s$ \\
+ Potts model & $\Z/q\Z$ & addition mod $q$ & $\delta(s_i,s_j)$ &
+ $\sum_iH_i\delta(i,s)$ \\
+ Clock model & $\Z/q\Z$ & addition mod $q$ & $\cos(2\pi\frac{s_i-s_j}q)$ &
+ $\sum_iH_i\cos(2\pi\frac{s-i}q)$
+ \end{tabular}
+ \end{table}
+
+ Relatively simple with extremely rich behavior, phase transitions galore!
+\end{frame}
+
+\begin{frame}
+ \frametitle{Local Monte Carlo: Not Great}
+
+ Standard approach to modelling arbitrary stat mech system: metropolis.
+
+ \begin{enumerate}
+ \item Pick random spin.
+ \item Pick random rotation $R$.
+ \item Compute change in energy $\Delta\H$ resulting from taking $s$ to
+ $R(s)$.
+ \item Take $s$ to $R(s)$ with probability $\max\{1,e^{-\beta\Delta\H}\}$.
+ \end{enumerate}
+
+ Problem: Scales very poorly near phase transitions.
+
+ Correlation time $\tau\sim L^z$ at critical point, $\tau\sim t^{-z/\nu}$
+ approaching it.
+
+ $z$ takes large integer values for Ising, order-$n$, Potts model critical
+ points.
+\end{frame}
+
+\begin{frame}
+ \frametitle{Wolff: wow, what a solution}
+
+ \begin{enumerate}
+ \item Pick random spin, add to cluster.
+ \item Pick random rotation $R$.
+ \item For every neighboring spin, add to cluster with probability
+ $\min\{0,1-e^{-\beta(Z(R(s),t)-Z(R(s),R(t)))}\}$.
+ \item Repeat 3 for every spin added to cluster.
+ \item Transform entire cluster with rotation $R$.
+ \end{enumerate}
+ Relies on symmetry of $Z$
+
+ Fast near the critical point: early studies thought $z$ was zero, actually
+ $0.1$--$0.4$.
+\end{frame}
+
+\begin{frame}
+ \frametitle{We want to apply an external field, though}
+
+ The external field $H$ is not invariant under global rotations!
+
+ Let's make it that way: $R_s$ is the rotation that takes $s$ to the
+ identity
+ (1, first basis vector, etc)
+ \[
+ \tilde Z(s_i,s_j)=
+ \begin{cases}
+ Z(s_i,s_j) & \text{if $i,j\neq N$}\\
+ H(R_{s_0}s_i) & \text{if $j=0$}\\
+ H(R_{s_0}s_j) & \text{if $i=0$}
+ \end{cases}
+ \]
+ Exact correspondence between expectation values of operators in old and new
+ models: if $A(s)$ is an observable on old model, $\tilde
+ A(s_0,s)=A(R_{s_0}s)$ has the property
+ \[
+ \langle\tilde
+ A\rangle=\mathop{\mathrm{Tr}}\nolimits_s\mathop{\mathrm{Tr}}\nolimits_{s_0}\tilde
+ A(s_0,s)=\mathop{\mathrm{Tr}}\nolimits_sA(s)=\langle A\rangle
+ \]
+\end{frame}
+
+\begin{frame}
+ \centering
+ \includegraphics[height=0.8\textheight]{figs/wolff-scoop_title}
+\end{frame}
+
+\begin{frame}
+ \centering
+ \includegraphics[height=0.8\textheight]{figs/wolff-scoop_explanation}
+\end{frame}
+
+\begin{frame}
+ \frametitle{But does it actually work well? (yes)}
+ \movie[height=.4\textwidth,width=0.4\textwidth]{}{figs/test.avi}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Measuring direction-dependant quantities}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Metastable state!}
+\end{frame}
+
+\begin{frame}
+\end{frame}
+
+\end{document}
+
diff --git a/figs/test.webm b/figs/test.webm
new file mode 100644
index 0000000..811be0e
--- /dev/null
+++ b/figs/test.webm
Binary files differ
diff --git a/figs/wolff-scoop_explanation.png b/figs/wolff-scoop_explanation.png
new file mode 100644
index 0000000..4c2e891
--- /dev/null
+++ b/figs/wolff-scoop_explanation.png
Binary files differ
diff --git a/figs/wolff-scoop_title.png b/figs/wolff-scoop_title.png
new file mode 100644
index 0000000..8bbb0c2
--- /dev/null
+++ b/figs/wolff-scoop_title.png
Binary files differ
diff --git a/main.css b/main.css
new file mode 100644
index 0000000..f16954f
--- /dev/null
+++ b/main.css
@@ -0,0 +1,32 @@
+td {
+ padding-bottom: 5px;
+ padding-top: 5px;
+}
+
+td.first {
+ border-right: 2px solid #000;
+ padding-right: 5px;
+}
+
+td:not(.first) {
+ text-align: center;
+}
+
+
+.column:first-of-type {float:left}
+.column:last-of-type {float:right}
+
+.split-40 .column:first-of-type {width: 60%}
+.split-40 .column:last-of-type {width: 40%}
+
+.remark-slide-number {
+ opacity: 0.0;
+}
+
+img {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ width: 80%;
+}
+
diff --git a/vissense b/vissense
new file mode 160000
+Subproject f169c9347dc98d3895de65fbb6bcd725351d624