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/stable/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)

  • implement or deprecate the outer_product in sequence behavior

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

Todo

extend code to infinite MPS

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

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/stable/tenpy/algorithms/tdvp.py:docstring of tenpy.algorithms.tdvp, line 29.)

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/stable/tenpy/algorithms/tebd.py:docstring of tenpy.algorithms.tebd.QRBasedTEBDEngine, line 5.)

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/stable/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/stable/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/stable/tenpy/networks/mpo.py:docstring of tenpy.networks.mpo.MPO.variance, line 5.)

Todo

Right now, for infinite/long range it just limits the number of iterations. In general, we could calculate the exact $X = C + CA + CAA +…$ with the geometric series by solving the set of linear equation $ X(1-A) = C$ for X, (and analogously $(1-A)X = B$ for the right environment RP).

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/tenpy/checkouts/stable/tenpy/networks/mpo.py:docstring of tenpy.networks.mpo.MPOEnvironment.init_LP, line 22.)

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/stable/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/stable/tenpy/networks/mps.py:docstring of tenpy.networks.mps.build_initial_state, line 14.)