To-Do list

You can check https://github.com/tenpy/tenpy/issues for things to be done.

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

Todo

This is still under development and lacks rigorous tests.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/tenpy/algorithms/algorithm.py:docstring of tenpy.algorithms.algorithm.TimeDependentHAlgorithm, line 19.)

Todo

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

    (arXiv:1304.6112)

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/tenpy/algorithms/network_contractor.py:docstring of tenpy.algorithms.network_contractor, line 8.)

Todo

extend code to infinite MPS

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/tenpy/algorithms/tdvp.py:docstring of tenpy.algorithms.tdvp, line 27.)

Todo

allow for increasing bond dimension in SingleSiteTDVPEngine, similar to DMRG Mixer

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/tenpy/algorithms/tdvp.py:docstring of tenpy.algorithms.tdvp, line 30.)

Todo

To use use_eig_based_svd == True, which makes sense on GPU only, we need to implement the _eig_based_svd for “non-square” matrices. This means that \(M^{\dagger} M\) and \(M M^{\dagger}\) dont have the same size, and we need to disregard those eigenvectors of the larger one, that have eigenvalue zero, since we dont have corresponding eigenvalues of the smaller one.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/tenpy/algorithms/tebd.py:docstring of tenpy.algorithms.tebd.QRBasedTEBDEngine, line 13.)

Todo

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

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/tenpy/models/fermions_spinless.py:docstring of tenpy.models.fermions_spinless, line 3.)

Todo

Long term: implement different lattices. Long term: implement variable hopping strengths Jx, Jy.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/tenpy/models/hofstadter.py:docstring of tenpy.models.hofstadter, line 3.)

Todo

This is a naive, expensive implementation contracting the full network. Try to follow arXiv:1711.01104 for a better estimate; would that even work in the infinite limit?

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/tenpy/networks/mpo.py:docstring of tenpy.networks.mpo.MPO.variance, line 5.)

Todo

  • Currently, we only allow simple loops. E.g. a double loop

    Outer[j] -> A1 -> Outer[j] AND Outer[j] -> A2 -> Outer[j] is not allowed. This can in principle be adjusted by grouping nodes of the graph.

  • Currently, we assume identities along the loops. In principle, we can allow

    arbitrary operators if we compute the dominant eigenvectors explicitly.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/tenpy/networks/mpo.py:docstring of tenpy.networks.mpo.MPOEnvironmentBuilder, line 48.)

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/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/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/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/latest/tenpy/networks/mps.py:docstring of tenpy.networks.mps.build_initial_state, line 14.)