Changelog
TeMFpy 0.3 (21 July 2026)
API breaking changes
By default, the iMPS creation routines
temfpy.slater.C_to_iMPS(),temfpy.slater.H_to_iMPS(), andtemfpy.iMPS.MPS_to_iMPS()now subtract an estimate of the total U(1) charge to the left of the extracted unit cell from the quantum numbers on the virtual legs of the iMPS. The amount of this offset can be controlled with the newoffsetparameter; the old behaviour can be restored usingoffset=0. #20
New features
Gutzwiller projections
temfpy.gutzwiller.abrikosov()andtemfpy.gutzwiller.abrikosov_ph()allow targeting different virtual charge/parity sectors, which may give access to different topological sectors. #18All functions that create an
MPSsupport an optionalunit_cell_widthargument for specifying the physical length of the system being simulated. Sensible defaults are also provided. #21
Bug fixes
Gutzwiller projections
temfpy.gutzwiller.abrikosov()andtemfpy.gutzwiller.abrikosov_ph()now handle most infinite fermion MPS correctly. #18A check in assumed that at most half of all Nambu eigenvalues are 1/2, which is not always the case. These checks now pass. #24
A bug in the construction of Nambu eigenvectors with eigenvalue 1/2 is now fixed. #25
In certain edge cases involving many 1/2 Nambu-Schmidt eigenvalues, the preference of eigensolvers to return the identity matrix as eigen/singular vectors of the identity matrix resulted in zero overlaps between Boguliubov vacua when constructing
temfpy.pfaffian.MPSTensorDataobjects. This issue is mitigated by rotating the real Nambu eigenvectors with eigenvalue 1/2 with a quasi-random orthogonal matrix. This results in a unitary rotation of degenerate Boguliubov-Schmidt states and hence a gauge rotation of the MPS tensors. However, this should have no observable consequences. #26
TeMFpy 0.2.1 (28 January 2026)
Bug fixes
TeMFpy 0.2 (23 January 2026)
First stable version without severe bugs.