Dear all,
I found an interesting wrong var assignment in ALPS MPS Project version: MAQUIS repo r4143 (2013-2014). It appears both on OSX bmg package version and builds from source code version on Linux. You can use the following simple script to reappear the problem:
********************************************************
#
# Author: Rongyang Sun <sun-rongyang(a)outlook.com>
# Date: 2017-12-13 11:59
# Last Modified Date: 2017-12-13 11:59
# Last Modified By: Rongyang Sun <sun-rongyang(a)outlook.com>
#
# Description: A demo to show the interesting bug
#
import pyalps
#prepare the input parameters
parms = [ {
'LATTICE' : "open chain lattice",
'MODEL' : "spin",
'CONSERVED_QUANTUMNUMBERS' : 'N,Sz',
'Sz_total' : 0,
'J' : 1,
'spin' : 1,
'SWEEPS' : 4,
'NUMBER_EIGENVALUES' : 1,
'L' : 10,
'MAXSTATES' : 100
} ]
input_file = pyalps.writeInputFiles('bug',parms)
res = pyalps.runApplication('mps_optim',input_file,writexml=True)
data = pyalps.loadEigenstateMeasurements(pyalps.getResultFiles(prefix='bug'),verbose=True)
print("\nMODEL: {0}".format(str(data[0][0].props['MODEL'])))
********************************************************
It will return "MODEL: 1" not the right "MODEL" parameter because I define an unused parameter 'spin' with value 1. Once a parameter with a name which appears at the value of 'MODEL', it will be replaced by the value of the parameter. It is more severe for 't-J' model case. if you set 't': 1.0 and 'J': 0.5, 'MODEL' will be assigned as 0.5 which equals 1.0('t') - 0.5('J')! I have checked the output hdf5 file and found that the wrong replace had happened in the file. That means it may be a bug about ALPS MPS code.
Best regards,
Rongyang Sun