Using the GaussianMPS package

Hi everyone,
I was experimenting with the GaussianMPS package for studying the SSH model. I am reading up on the algorithm, and I was wondering if one could modify the code to study something like an SSH model with a ladder geometry. The ladder structure would just translate to a slightly longer hopping interaction, instead of the standard nearest neighbour hopping. I was wondering if I just passing this via OpSum() into the hopping_hamiltonian() function would that suffice to construct the initial state? Or is there some additional caveat to the construction I should be aware of?

TIA!

Hi @mathew0036,
Using that package to study the SSH model is an interesting idea. I would say there’s nothing to specific you’d have to worry about when introducing longer-ranged hoppings or applying those tools to a system like SSH, other than being aware of the exotic physics of that system and how it behaves with open boundaries and so on (which is a separate issue from using Gaussian MPS).

All you should have to do is to include the longer-ranged hoppings to your OpSum. Also keep in mind that it’s important to try different values of the eigval_cutoff keyword argument when calling functions like slater_determinant_to_mps to ensure that you haven’t set it too small (or else the code will run too slowly and you’ll get too big a bond dimension) or too large (in case you might get inaccurate results). Basically start with it on the larger side and try lowering it until various properties you’re interested in (e.g. total energy) don’t appreciably change anymore.

1 Like

Hi Miles,
Thanks for the reply! I initially set the cut-off as too small, and the convergence time was large. I’ll play around with the values and see what is optimal. Thanks again for the help!