# 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!!!

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/algorithms/dmrg.py:docstring of tenpy.algorithms.dmrg, line 30.)

Todo

Rebuild TDVP engine as subclasses of sweep Do testing

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/algorithms/mps_sweeps.py:docstring of tenpy.algorithms.mps_sweeps, line 18.)

Todo

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

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

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/algorithms/network_contractor.py:docstring of tenpy.algorithms.network_contractor, line 10.)

Todo

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

(The original entry is located in /home/johannes/postdoc/tenpy_other/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 /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/algorithms/tdvp.py:docstring of tenpy.algorithms.tdvp, line 16.)

Todo

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

(The original entry is located in /home/johannes/postdoc/tenpy_other/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.

Todo

make sure this function is used for expectation values…

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.Honeycomb.mps2lat_values, line 52.)

Todo

• this doesn’t fully work yet…

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.IrregularLattice, line 3.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.IrregularLattice.mps2lat_values, line 52.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.Kagome.mps2lat_values, line 52.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.Ladder.mps2lat_values, line 52.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.Lattice.mps2lat_values, line 52.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/models/lattice.py:docstring of tenpy.models.lattice.TrivialLattice.mps2lat_values, line 52.)

Todo

implement MPO for time evolution…

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/models/model.py:docstring of tenpy.models.model.MPOModel, line 7.)

Todo

make sure this function is used for expectation values…

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/models/toric_code.py:docstring of tenpy.models.toric_code.DualSquare.mps2lat_values, line 52.)

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 /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/networks/mpo.py:docstring of tenpy.networks.mpo.MPOGraph, line 17.)

Todo

Make more general: it should be possible to specify states as strings.

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/networks/mps.py:docstring of tenpy.networks.mps.build_initial_state, line 14.)

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 /home/johannes/postdoc/tenpy_other/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 /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/networks/site.py:docstring of tenpy.networks.site.SpinHalfFermionSite, line 61.)

Todo

For memory caching with big MPO environments, we need a Hdf5Cacher clearing the memo’s every now and then (triggered by what?).

(The original entry is located in /home/johannes/postdoc/tenpy_other/tenpybot/tenpy/tenpy/tools/hdf5_io.py:docstring of tenpy.tools.hdf5_io, line 59.)