{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"authorship_tag":"ABX9TyMWdpe4GJ0m/pneJIfCBsn/"},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":[{"cell_type":"markdown","metadata":{"id":"HwvaNgJ578Ua"},"source":["# MCMC simulation of the Ising model\n","\n","The goal of the tutorial is to implement the Metropolis algorithm to sample configurations from the Ising model on the discrete torus in dimension $d=2$."]},{"cell_type":"code","metadata":{"id":"1SICXgNjpQYO","executionInfo":{"status":"ok","timestamp":1700426991810,"user_tz":-60,"elapsed":6,"user":{"displayName":"Julien Reygner","userId":"06465841509771183939"}}},"source":["import numpy as np\n","import matplotlib.pyplot as plt"],"execution_count":1,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"az9yXzVw9mhh"},"source":["# 1. The case $\\beta=0$\n","\n","A configuration is represented by an array of size $N \\times N$. Write a function `ising_0(N)` which returns such an array with cells containing spins independently uniformly distributed in $\\{-1,1\\}$."]},{"cell_type":"code","metadata":{"id":"13vhUcUm8qUe","executionInfo":{"status":"ok","timestamp":1700426996768,"user_tz":-60,"elapsed":244,"user":{"displayName":"Julien Reygner","userId":"06465841509771183939"}}},"source":["def ising_0(N):\n"," return np.sign(np.random.randn(N,N))\n"," # many other solutions are possible!"],"execution_count":2,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"69xFZVXe_Kt2"},"source":["The function `plot_configuration(conf)` takes in argument a configuration and plots a figure in which spins $+$ are represented by a black pixel and spins $-$ are represented by a white pixel."]},{"cell_type":"code","metadata":{"id":"tmJ_1I7l-hps","colab":{"base_uri":"https://localhost:8080/","height":406},"executionInfo":{"status":"ok","timestamp":1700427009604,"user_tz":-60,"elapsed":1043,"user":{"displayName":"Julien Reygner","userId":"06465841509771183939"}},"outputId":"8d97f7a8-b2c2-41b2-b728-9bca68c48ce1"},"source":["def plot_configuration(conf):\n"," fig, ax = plt.subplots()\n"," ax.matshow(conf,cmap=\"Greys\",vmin=-1,vmax=1)\n"," ax.set_axis_off()\n","\n","plot_configuration(ising_0(1000))"],"execution_count":3,"outputs":[{"output_type":"display_data","data":{"text/plain":[""],"image/png":"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\n"},"metadata":{}}]},{"cell_type":"markdown","metadata":{"id":"M4kaMHO_FsIZ"},"source":["# 2. Metropolis algorithm\n","\n","Write a function `sigma(conf,i,j)` which takes in argument a configuration `conf` and two indices `i` and `j` between $0$ and $N-1$, and returns the sum of the spins over the neighbours of the vertex with coordinates $(i,j)$.\n","\n","We recall that boundary conditions are periodic, so that for example, the neighbours of the vertex $(0,0)$ are $(0,N-1)$, $(0,1)$, $(N-1,0)$ and $(1,0)$. You may therefore fruitfully use the operator `%`."]},{"cell_type":"code","metadata":{"id":"1wy3Gnw8GyfY","executionInfo":{"status":"ok","timestamp":1700427258369,"user_tz":-60,"elapsed":299,"user":{"displayName":"Julien Reygner","userId":"06465841509771183939"}}},"source":["def sigma(conf,i,j):\n"," N = np.shape(conf)[0]\n"," s = conf[i,(j+1)%N] + conf[i,(j-1)%N] + conf[(i+1)%N,j] + conf[(i-1)%N,j]\n"," return s"],"execution_count":4,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"8d0P19C7NpdB"},"source":["Implement the Metropolis algorithm, with the rule of your choice, to return a configuration of size $N \\times N$, at inverse temperature $\\beta$, in $n_\\mathrm{max}$ iterations.\n","\n","You may take as an initial configuration one returned by `ising_0`."]},{"cell_type":"code","metadata":{"id":"mVu8IfvUF4WJ","colab":{"base_uri":"https://localhost:8080/","height":795},"executionInfo":{"status":"ok","timestamp":1700427264306,"user_tz":-60,"elapsed":2916,"user":{"displayName":"Julien Reygner","userId":"06465841509771183939"}},"outputId":"f2237c4f-c822-40b9-e511-98d9c0798373"},"source":["def ising_Barker(N,beta,n_max):\n"," conf = ising_0(N)\n","\n"," for n in range(n_max):\n"," i = np.random.randint(0, N)\n"," j = np.random.randint(0, N)\n"," s = sigma(conf,i,j)\n"," p_plus = 1/(1+np.exp(-2*beta*s))\n"," if np.random.rand() < p_plus:\n"," conf[i,j] = 1\n"," else:\n"," conf[i,j] = -1\n","\n"," return conf\n","\n","# Test with inverse temperatures below and above \\beta_c\n","plot_configuration(ising_Barker(50,.3,10**5))\n","plot_configuration(ising_Barker(50,3,10**5))"],"execution_count":5,"outputs":[{"output_type":"display_data","data":{"text/plain":[""],"image/png":"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\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"image/png":"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\n"},"metadata":{}}]},{"cell_type":"code","metadata":{"id":"do_nw7ChKx3y","colab":{"base_uri":"https://localhost:8080/","height":795},"executionInfo":{"status":"ok","timestamp":1700427304914,"user_tz":-60,"elapsed":3091,"user":{"displayName":"Julien Reygner","userId":"06465841509771183939"}},"outputId":"35b3bf0a-938f-43fe-8256-abadc19eb29b"},"source":["def ising_MH(N,beta,n_max):\n"," conf = ising_0(N)\n","\n"," for n in range(n_max):\n"," i = np.random.randint(0, N)\n"," j = np.random.randint(0, N)\n"," s = sigma(conf,i,j)\n","\n"," xu = conf[i,j]\n"," U = np.random.rand() # a uniform variable\n","\n"," if xu < 0 and U < min(1,np.exp(2*beta*s)): conf[i,j]=1\n"," if xu > 0 and U < min(1,np.exp(-2*beta*s)): conf[i,j]=-1\n","\n"," return conf\n","\n","# Test with inverse temperatures below and above \\beta_c\n","plot_configuration(ising_MH(50,.3,10**5))\n","plot_configuration(ising_MH(50,3,10**5))"],"execution_count":6,"outputs":[{"output_type":"display_data","data":{"text/plain":[""],"image/png":"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\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"image/png":"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\n"},"metadata":{}}]},{"cell_type":"markdown","metadata":{"id":"LfhUsv-LPCLt"},"source":["# 3. Observation of the phase transition\n","\n","For any $\\beta \\geq 0$, we set\n","$$p_\\beta = 1-\\mathrm{e}^{-2\\beta} \\in [0,1].$$\n","The critical inverse temperature $\\beta_\\mathrm{c}$ corresponds to\n","$$p_{\\beta_\\mathrm{c}} = \\frac{\\sqrt{2}}{1+\\sqrt{2}} \\simeq 0,585786.$$\n","\n","We draw typical configurations, for $N=250$, with several values of $p_\\beta$."]},{"cell_type":"code","metadata":{"id":"OvCy33eIRQAp"},"source":["val_p = [.1, .5, .6, .8]\n","\n","for p in val_p: plot_configuration(ising_MH(250,-.5*np.log(1-p),10**6))"],"execution_count":null,"outputs":[]}]}