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 <…
[View More]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
[View Less]
Thank you for all the help so far, now I'm trying to check for convergence
of my results.
First, is it enough to just check how the truncation error changes with
sweeps (at a certain MAXSTATE value) or I need to both check the iteration
history of the ground state energy and the truncation error?
Second, checking the supplementary materials provided (Computer Physics
Communications 185 (2014) 3430–3440) for the Hubbard ladder, why are there
381 values of energy and truncation weights for …
[View More]every iteration? Why is the
total truncation error for that iteration is the sum of all the 381
truncation weight values (based on iteration.py)? How is truncation error
defined (e.g. is it 1 - sum of all reduced density eigenvalues
corresponding to all the picked states?) ?
As far as I understand the DMRG algorithm every iteration/sweep has a
corresponding bond dimension in which as you progress through iterations
(until you reach the "SWEEPS"th iteration), bond dimension increases until
you reach "MAXSTATES" at the "SWEEPS"th iteration.
Regards,
Robertson Esperanza
[View Less]