I am investigating a system with an expected high degeneracy in the ground state.
My system is a two-site thick ladder model consisting of sites of type Electron.
In parts of my system I have superconductivity while in other parts I consider some local interactions, hence the need for ITensor, and DMRG in particular. Each interface where superconductors meet interactions hosts zero-energy excitations.
If there are many interfaces in the system then the system is expected to have a highly degenerate ground state if the interfaces are far enough apart.
It is quite easy to find the first few groundstates, however, finding the rest of the degenerate subspace is proven to be cumulatively more hard.

All the states found are decently converged, I use a relatively conservative parameter set for the sweeps detailed below:

With a minimum of 15 sweeps before convergence is at all tested.
During the DMRG runs, I never hit the maxlinkdim threshold of 1000, this is I guess due to the fact that my system has a decent local gap everywhere, which is underpinned by previous DMRG results with fewer interfaces.

Right now I use randomMPS to generate separate initial states with the appropriate parity (since this is the only symmetry) for all runs as choosing the same initial random state for all the runs has proven to be counterproductive. I have noticed that the inner product of the initial and converged states is basically zero. Thus, correct me if the following thought is wrong, DMRG basically has to essentially enlarge numerical dirt to get near the right state.

I was wondering if picking the right initial states could help with finding the rest of the states.

What are good strategies for choosing good starting states?

Are some properties one can learn from the already converged states?

Interesting question. So when you say youâ€™re having trouble getting the other ground states, does that mean you are finding the same subset of ground states over and over while you know there are supposed to be more than the ones you are finding?

Something that might help is our â€śexcited state targetingâ€ť DMRG algorithm if you arenâ€™t using that already. Even though it seems like itâ€™s just for excited states, it can be used for finding other ground states too. It works by orthogonalizing the state currently being optimized against other previous MPS that you pass to the dmrg function. Here is a sample code page about how to use it: https://itensor.github.io/ITensors.jl/stable/examples/DMRG.html#Compute-excited-states-with-DMRG

Choosing good initial states will be quite important too. Here itâ€™s hard to give good general advice, as it really depends on each situation. I would say please think about whether there is some distinguishing property of the various ground states you are expecting to find, like whether they might be distinguished by having more electron density in one region of the system or another. Or it could be that your Hamiltonian is â€śadiabatically connectedâ€ť to a simpler Hamiltonian where the different ground states are more obvious to construct, and you could solve this nearby Hamiltonian to get good initial states to feed into your more complicated Hamiltonian DMRG.

Thanks for the answer Miles! I already use penalty states for exploring the degenerate ground state. What I found was that starting from the same initial state the penalty method quite often skips the lower energy states and jumps to states higher in energy states. I found that this happens more often if I start the calculation for the second state from the same starting state as I used for the first. Anyway, I think we can close this question, as it seems to be a bit more subtle than I thought initially.