Implementing Complex Arithmetic in DMRG for Studying Chiral Spin Liquids in the Hubbard Model

Hello everyone,

I am currently engaged in research on the chiral spin liquid phase within the Hubbard model, focusing on the non-zero expectation values of the operator \hat{\chi}_i. Given that the matrix elements of \hat{\chi}_i are purely imaginary, using standard real-valued DMRG with a real-valued Hamiltonian results in \left\langle\hat{\chi}_i\right\rangle = 0. Evidently, a real-valued wave function cannot spontaneously break time-reversal symmetry.

To address this, complex arithmetic seems necessary to allow a non-zero expectation value of the order parameter \langle\hat{\chi}_i\rangle. However, I am unsure about the best practices for implementing complex arithmetic in the DMRG algorithm using Julia version of ITensor. Could anyone share insights or resources on this topic? I am particularly interested in any examples or code modifications that could guide my implementation.

Thank you in advance for your assistance and suggestions!

Additional information for chiral order parameter: chirality operator is

\hat{\chi}_{ \alpha \beta \gamma } =\left(\hat{\sigma}_ \alpha \times \hat{\sigma}_ \beta \right) \cdot \hat{\sigma}_ \gamma \equiv 8\left(\hat{S}_ \alpha \times \hat{S}_ \beta \right) \cdot \hat{S}_ \gamma =4 i \left(\hat{S}_ \alpha ^{+} \hat{S}_ \beta ^{-} \hat{S}_ \gamma ^z+\hat{S}_ \alpha ^z \hat{S}_ \beta ^{+} \hat{S}_ \gamma ^{-}+\hat{S}_ \alpha ^{-} \hat{S}_ \beta ^z \hat{S}_ \gamma ^{+}-\text {H.c. }\right) .

with \alpha, \beta, \gamma \in\text{three-spin triangles } \Delta_i in counterclockwise order for the Pauli operators.

It’s a good question. One thing you can do is to initialize your initial MPS to have complex numbers in it, and see if that allows the symmetry to break, but it may not happen still if the Hamiltonian does not itself break it.

So another approach that may be more promising is to use the framework laid out in this paper:
https://arxiv.org/abs/1105.1374
where one adds “pinning fields” along the boundaries that explicitly break the symmetry (but only at the boundaries). Then by careful finite-size extrapolations, one can estimate what value of the symmetry-breaking order parameter would be if the fields were not there.

Your fields could just be \hat{\chi}_{\alpha \beta \gamma} on plaquettes along the edges of the system, or one edge of the system.

1 Like

Thank you for your prompt response!
I tried initializing the MPS with complex numbers using the command:

psi0 = productMPS(ComplexF64, sites)

However, it didn’t work as expected. I was wondering if there are any alternative approaches, aside from adding pinning fields? Specifically, there may be other observables that could become complex with complex arithmetic. Any further insights or guidance on this would be greatly appreciated.

I think you’ll just have to give it some thought and discuss it with colleagues or an advisor. Essentially this is really a physics/math issue more than a DRMG isssue. Of course, others on here may reply with some ideas. I would encourage you to try the pinning field approach, which can be very effective for detecting symmetry breaking.

Also, the key thing to understand is that ground states of finite-size systems do not spontaneously break symmetries, generally. Thus it can be crucial to either modify your Hamiltonian to explicitly break the symmetry in some way, or use a method that does break symmetries (for example some infinite MPS techniques do, as well as the METTS finite temperature method).

1 Like