Jump to content

Rep:Mod:DMS3053-8

From ChemWiki
   from matplotlib import pylab as pl
   import numpy as np
   def extract_data_c(file):
       data_array = np.loadtxt(file)
       temps = data_array[:,0]
       heat_cap_per_spin = data_array[:,5]
       return temps, heat_cap_per_spin
   def extract_data(file):
       data_array = np.loadtxt(file)
       list = file.split("x") # Splits the file name to find the lattice size
       spin = int(list[0])
       spins = spin*spin # Provided that the lattice in use is square
       temps = data_array[:,0]
       energies = data_array[:,1]
       squared_energies = data_array[:,2]
       variance = squared_energies - (energies*energies)
       heat_capacity = variance / (temps*temps)
       heat_cap_per_spin = heat_capacity / spins
       return temps, heat_cap_per_spin
   
   def plotdata(fileC, filePY):
       fileC_data = extract_data_c(fileC)
       filePY_data = extract_data(filePY)
       pl.ylabel("Heat Capacity")
       pl.xlabel("Temperature")
       pl.ylim([0.0, 2.0])
       pl.plot(fileC_data[0], fileC_data[1], filePY_data[0], filePY_data[1])
       pl.legend(['C++', 'Python'], loc='upper center', bbox_to_anchor=(0.5, 1.10),
             ncol=5)
       pl.show()