Ramping up of bond dimension of a 1D critical system

I am trying to study a short range 1D chain at a critical point.
I have two questions.
1.Theoretically the entanglement entropy(S) across the ground state should be a semicircle like graph against Log(l) where l is the smaller half of the divided lattice. When i see the entanglement(S) across the ground state MPS that DMRG gives, I don’t see this, rather I see a a well like graph, Higher near the boundaries, lower in the middle.
I monitored the scaling of S at the center of the chain, with the DMRG sweeps, as it progresses. I saw that initially it was growing reached a max value and then started decreasing rapidly. When this maximum S was reached at that sweep I saw the max bond dimension as well after which it started decreasing for the following sweeps.
I have a possible explanation, is it because the maxdim for the next sweep was not set as high as required and hence something weird happened?
Could someone please explain to me why they think this happened and how can it be cured.

  1. As I am looking into critical systems the bond dimensions required are huge and hence the ram required is also huge. I have taken a few measures to minimize the ram usage like- using the --heap-init command and writing to disk the MPS and MPO.
    Does anyone have anymore suggestions I could use to reduce my RAM usage and hence be able to tackle larger systems?
    Could THE C++ version of ITensor be possibly better in this regard?
    Or is there some other method/library using which I could study bigger 1d critical systems easily?