I've set up a model

`mm`

. I'm using `'bc':'periodic'`

boundary conditions for my lattice. For the mps I'm using `'bc_MPS':'finite'`

.Prior to dmrg, and for checks I've used

`ExactDiag.from_H_mpo`

, `build_full_H_from_mpo`

, `full_H.to_ndarray`

to extract the full Hamiltonian on some small system, to independently compare it with the Hamiltonian 'on a piece of paper'. At this level, things seem all ok.Then I set up a

`psi = MPS.from_product_state`

and run dmrg with `out = dmrg.run(psi,mm,dmrg_params)`

, where Code: Select all

```
dmrg_params={
'mixer': True,
'max_E_err': 1.e-10,
'trunc_params': {
'chi_max': 200, # I've used various values here up to 300
'svd_min': 1.e-10
}
}
```

Code: Select all

`final DMRG state not in canonical form up to norm_tol=1.00e-10: norm_err=xyz`

`norm_err`

will 'easily' go up to \(O(1)\).- My
**first problem**is, that I have no idea, if this issue is devastating, just a warning, or totally irrelevant for a user's perspective? If I do`psi.test_sanity()`

after the dmrg run, it raises no error. Moreover some of the anticipated dmrg output, including some 1st operator's expectation values seem ok. ... hopefully.

- My
**second problem**is, that I have no idea how to get rid of this issue - if indeed one should? Playing with the value of`chi_max`

does not really help and it is unclear to me anyway if that is direction into which to look. Adding things like`'norm_tol_iter': 500`

and`'norm_tol': 1.e-10`

to`dmrg_params`

does not 'do' anything. (Additionally, something happens, which I don't understand at all , namely, when I use the in-place-solution for`psi`

from a dmrg run as a starting state for a run with identical parameters, I still get the same norm_err issue.)

Xaver

PS.: Certainly I have tried to understand SciPost Phys. Lect. Notes 5, tenpy.readthedocs.io, and the discussion in this post ... but obviously in vain.