MPS more than 1000 sites

Hi everyone,
I am trying to construct a 2D square system with function

lattice = square_lattice(Nx, Ny; yperiodic = false)

and Nx* Ny>1000 like Nx=35;Ny=35. Although the program can run, the calculation resultes (like fidelity) are wrong. When I reduce the number of sites to Nx* Ny<1000 like Nx=49;Ny=19, the results are right.

I want to know whether there are some restrictions in ITensors and ITensorMPS so that we cannot construct a too large system. I notice that for a site of MPS like

(dim=2|id=45|"S=1/2,Site,n=53")

the second term “id” is less than 1000. If this is the reson, do we have any way to construct a system over 1000 sites?

The id number shown is only a portion of the full, 64-bit, ID number. To see the full number you can use id(i) where i is an Index. There’s no real limit on the number of indices or sites you can make in ITensor.

Regarding the square lattice, choosing an Ny of 35, or indeed larger than even 10, is extremely large for what I assume is a DMRG calculation. DMRG and 2D MPS methods scale exponentially with Ny, so it’s remarkable that the results were good for Ny=19. If you look through the DMRG literature, you’ll see most 2D DMRG results are for Ny values like 4,6,8.