-
Notifications
You must be signed in to change notification settings - Fork 56
Description
Hi,
First I should mention that this isn't really an issue but rather a feature request. I'll first explain the feature that I think would be useful to implement and then explain the context in which I need this.
Requested feature
Given T::TensorMap with legs that charged under some group G that has a subgroup g, it would be nice to have a convert method (similar to the current Convert(Array, TensorMap) ) that outputs a new tensor t::TensorMapwhose legs are now only charged under g_1.
In particular I'd be interested in the case where g_1 is the FermionParity group.
(I hope this makes sense, if not I suspect the context will make it more clear)
Context
Often in MPSKit we will implement the Hamiltonian with as many symmetries as possible. This makes it easy to implement the Hamiltonian efficiently (since few elements are to be tweaked manually) and speeds up the code later down the line when we exploit symmetric MPS.
However, sometimes the charge density of the GS is unknown so before running the actual symmetric code we might want to perform some MPS sweeps without symmetries. Usually I do this by re-using my symmetric Hamiltonian using the existing Convert(Array, TensorMap). However, when the Hamiltonian has FermionParity it is desirable to keep this so that one does not have to go back in and manually perform Jordan Wigner...
Hence, it would be very nice to have a convert(subgroup, TensorMap) method to deal with this.
Further request
If this is implemented it should be backported to version of TensorKit that is being used by MPSKit. Otherwise my usecase remains unsolved...