<div dir="ltr"><div><div>Dear ALPS,<br><br></div>I'm having some troubling getting a sensible result using DMRG with ALPS 2.3.0 on a simple transverse Ising model (i.e. using the "spin" model with Jz != 0, Gamma != 0). Other methods seem to get the correct result with the same parameters. It seems to be the Gamma term which causes the trouble. I've pasted a script below which demonstrates the problem. The script gives me the following output, with the second number being the ground state energy found by each method:<br><br>Model fulldiag: {10.0: -5.3178022046739857}<br>Model sparsediag: {10.0: -5.3178022046739937}<br>Model mps_optim: {10.0: -5.3178022046739919}<br>Model dmrg: {10.0: -213.49032836522568}<br><br></div><div>Adjusting the various DMRG parameters produces similar results of E0 ~= -210. I assume I am doing something wrong, or perhaps the Gamma term isn't supported by DMRG? I have searched the mailing list archive without success. Ultimately, I want to use DMRG on a more complex model which includes a term similar to the Gamma / Sx term in the spin model.<br><br></div><div>Thank you for your great work,<br></div><div>Alex Henry<br><br></div><div><div><br>The script:<br><br>##########################<br>import pyalps<br>import numpy as np<br>import matplotlib.pyplot as plt<br>import copy<br>import math<br><br>models = ['fulldiag', 'sparsediag', 'mps_optim', 'dmrg']<br>parms = [{<br>        'LATTICE'    : "chain lattice",<br>        'MODEL'      : "spin",<br>        'local_S'    : 0.5,<br>        'Jxy'        : 0,<br>        'Jz'         : 1,<br>        'Gamma'      : 1,<br>        'h'          : 0,<br>        'NUMBER_EIGENVALUES' : 1,<br>        'L'          : 10,<br>    }]<br><br>def process(prefix, prog):<br>    input_file = pyalps.writeInputFiles(prefix, parms)<br>    res = pyalps.runApplication(prog, input_file)<br>    data = pyalps.loadEigenstateMeasurements(pyalps.getResultFiles(prefix=prefix))<br>    return data<br><br>def get_results(d):<br>    E0 = {}<br>    for Lsets in d:<br>        L = pyalps.flatten(Lsets)[0].props['L']<br>        allE = []<br>        for q in pyalps.flatten(Lsets):<br>            allE += list(q.y)<br>        allE = np.sort(allE)<br>        E0[L] = allE[0]<br>    return E0<br><br>results = {} <br>for model in models:<br>    name = "ising_" + model<br>    data = process(name, model)<br>    results[model] = (get_results(data))<br><br>for model in models:<br>    print "Model " + model + ": " + str(results[model])<br>#############################</div></div></div>