# **************************************************************************** # # ALPS Project: Algorithms and Libraries for Physics Simulations # # ALPS Libraries # # Copyright (C) 2009-2010 by Matthias Troyer # # This software is part of the ALPS libraries, published under the ALPS # Library License; you can use, redistribute it and/or modify it under # the terms of the license, either version 1 or (at your option) any later # version. # # You should have received a copy of the ALPS Library License along with # the ALPS Libraries; see the file LICENSE.txt. If not, the license is also # available from http://alps.comp-phys.org/. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT # SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE # FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. # # **************************************************************************** import pyalps import matplotlib.pyplot as plt import pyalps.plot #prepare the input parameters parms = [] for h in [0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1.0, 1.25, 1.5, 1.75, 2.0, 2.25, 2.5, 2.75, 3.0, 3.25, 3.5]: parms.append( { 'LATTICE' : "ladder", 'MODEL' : "spin", 'local_S' : 0.5, 'T' : 0.08, 'J0' : 1 , 'J1' : 1 , 'THERMALIZATION' : 1000, 'SWEEPS' : 10000, 'L' : 20, 'h' : h } ) #write the input file and run the simulation input_file = pyalps.writeInputFiles('parm3b',parms) res = pyalps.runApplication('dirloop_sse',input_file,Tmin=5) #load the magnetization and collect it as function of field h data = pyalps.loadMeasurements(pyalps.getResultFiles(prefix='parm3b'),'Magnetization Density') magnetization = pyalps.collectXY(data,x='h',y='Magnetization Density') #make plot plt.figure() pyalps.plot.plot(magnetization) plt.xlabel('Field $h$') plt.ylabel('Magnetization $m$') plt.ylim(0.0,0.5) plt.title('Quantum Heisenberg ladder') plt.show()