summaryrefslogtreecommitdiff
path: root/aps_mm_2018.html
diff options
context:
space:
mode:
Diffstat (limited to 'aps_mm_2018.html')
-rw-r--r--aps_mm_2018.html194
1 files changed, 194 insertions, 0 deletions
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>