To-Do list

Primary goals for the coming release

  • finish documentation and tests on existing stuff

Concrete things to be fixed in different files

  • The MPO class has no function for expectation value with MPS

  • Since we switched to python 3 completely, there’s no need to subclass ‘object’ anymore.

  • npc.Array: comparison with ==, pickle, hashable?

  • MPS class: group_sites, split_sites, pad

  • MPS class: probability_per_charge, charge_variance

  • MPS class: string correlation function

To be done at some point for the next releases

  • remove this file: use GitHub issues instead

  • overview and usage introduction to the overall library

  • trace: allow multiple axes to be traced over; optimize

  • Summary of defined classes/functions at the beginning of a module in the reference

  • Inconsistency: NearestNeighborModel.H_bond with bc_MPS='infinite' has bonds [(L, 0), (0, 1), ...], but expectation_value() takes two-site operators on bonds [(0, 1), (1, 2), ...(L,0)].

Wish-list

  • logging mechanism?

  • Johannes Motruk: extend simulation class: save standard variables like entropy, energy, etc?

  • Ruben: extend MPS TransferMatrix class

  • Jakob: function for Arrays: Perfrom trace over multiple pairs of legs at once. Tracing one after the other calculates unnecessary “off-diagonal” elements.

Auto-generated To-Do list

The following list is auto-generated by sphinx, extracting .. todo :: blocks from doc-strings of the code.

Todo

Write UserGuide/Example!!!

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/algorithms/dmrg.py:docstring of tenpy.algorithms.dmrg, line 25.)

Todo

separate effective Hamiltonian from Engine for better readability?

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/algorithms/dmrg.py:docstring of tenpy.algorithms.dmrg, line 28.)

Todo

  • implement or wrap netcon.m, a function to find optimal contractionn sequences

    (arXiv:1304.6112)

  • improve helpfulness of Warnings

  • _do_trace: trace over all pairs of legs at once. need the corresponding npc function first.

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/algorithms/network_contractor.py:docstring of tenpy.algorithms.network_contractor, line 8.)

Todo

This is still a beta version, use with care. The interface might still change.

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/algorithms/tdvp.py:docstring of tenpy.algorithms.tdvp, line 12.)

Todo

long-term: Much of the code is similar as in DMRG. To avoid too much duplicated code, we should have a general way to sweep through an MPS and updated one or two sites, used in both cases.

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/algorithms/tdvp.py:docstring of tenpy.algorithms.tdvp, line 16.)

Todo

The TEBD wikipedia article (in the section ‘Errors coming from the truncation of the Hilbert space’) claims that there is a second more subtle error, which stems from the change of the Schmidt basis \(|R_a\rangle\) on bond i-1 if we truncate bond i. In the end, that leads just to a factor of 2 in TruncationError.__init__ ??? (I couldn’t follow the argument completely, and the factor was definetly not included in the old TenPy.)

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/algorithms/truncation.py:docstring of tenpy.algorithms.truncation, line 44.)

Todo

Should we redefine the hopping to have a negative prefactor by default if t = 1? How to notify users of the class???

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/fermions_hubbard.py:docstring of tenpy.models.fermions_hubbard, line 3.)

Todo

add further terms (e.g. c^dagger c^dagger + h.c.) to the Hamiltonian.

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/fermions_spinless.py:docstring of tenpy.models.fermions_spinless, line 3.)

Todo

WARNING: These models are still under development and not yet tested for correctness. Use at your own risk! Replicate known results to confirm models work correctly. Long term: implement different lattices. Long term: implement variable hopping strengths Jx, Jy.

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/hofstadter.py:docstring of tenpy.models.hofstadter, line 3.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.Honeycomb.mps2lat_values, line 68.)

Todo

this doesn’t fully work yet…

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.IrregularLattice, line 4.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.IrregularLattice.mps2lat_values, line 68.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.Kagome.mps2lat_values, line 68.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.Ladder.mps2lat_values, line 68.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.Lattice.mps2lat_values, line 68.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.TrivialLattice.mps2lat_values, line 68.)

Todo

implement MPO for time evolution…

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/model.py:docstring of tenpy.models.model.MPOModel, line 8.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/models/toric_code.py:docstring of tenpy.models.toric_code.DualSquare.mps2lat_values, line 68.)

Todo

might be useful to add a “cleanup” function which removes operators cancelling each other and/or unused states. Or better use a ‘compress’ of the MPO?

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/networks/mpo.py:docstring of tenpy.networks.mpo.MPOGraph, line 18.)

Todo

One can also look at the canonical ensembles by defining the conserved quantities differently, see Barthel (2016), arXiv:1607.01696 for details. Idea: usual charges on p, trivial charges on q; fix total charge to desired value. I think it should suffice to implement another from_infiniteT.

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/networks/purification_mps.py:docstring of tenpy.networks.purification_mps, line 104.)

Todo

Check if Jordan-Wigner strings for 4x4 operators are correct.

(The original entry is located in /scratch/ga93non/tmp/tenpybot/tenpy/tenpy/networks/site.py:docstring of tenpy.networks.site.SpinHalfFermionSite, line 62.)