Future Directions

Future Directions

To improve upon the package, there are two main places for improvement - trg and ctmrg. An area that impacts both is the ability to run on the GPU. While a lot of the components are GPU-compatible, there are currently problems with Zygote. The add-gpu branch is a work in progress on compatibility but is hold back by a problem with Zygote at the moment.

TRG

For trg, we should support different lattice-geometries, e.g. triangular or hexagonal. This would require dispatching trg on an AbstractLattice type and implementing the necessary coarse-graining functions.

Keeping it AD-compatible should be easy since the building blocks remain the same for different geometries.

If Zygote allows, getting the second derivative would allow to the direct calculation of the specific heat.

CTMRG

ctmrg currently only works for tensors that are invariant under permutation of its indices. Adding an implementation that does not assume symmetries would be a big improvement. This could be combined with the ability to specify a unit-cell for the problem. First attempts are in the unitcell-branch where most of the groundwork is laid but it does not work yet and its interface needs to be updated to the current interface. It is based on this paper. Again, AD-compatibility should be easy to maintain, given that the code generally uses the same functions.