I am trying to obtain some ground state properties for the Hubbard model with higher symmetry, where I add a symmetry breaking term in the Hamiltonian (see code attached).
In the code, for the particular case of B0=0, everythign runs fine and I get the observables. For any B>0, however, it runs for a long time and doesn't return anything , even for small systems.
Any thoughts on what the issue might be?
Rafael
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I was running the file and got a warning regarding the symmetry. The symmetry breaking term does not commute with any of the symmetry generators you defined in the simulation. In my opinion, this warning is the cause that OSMPS does not return any results for B0 not equal to zero. Why do you want to use and break the same symmetry within one simulation? Did you want to break another additional symmetry which was actually not accounted for in the simulation? Is the symmetry breaking term defined correctly?
My response is independent of Matthew; maybe he has some more insights. But I hope that we can help you.
Best regards,
Daniel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I understand it's a bit unorthodox, but my goal was to add that symmetry breaking term while still maintaining the same number of particles per component. I did not seem contradictory to me since we have both the term and it's complex conjugate acting on each site.
Relaxing the condition of particle number consevation will return an artbitrary number of particles in each component, which is not what I am looking for.
But you may be right and perhaps this term is not correctly defined. I would appreciate any ideas on how to improve the definitions.
Best,
Rafael
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
do you know if the number of particles is conserved globally, although the generator does not commute locally with the symmetry breaking term? Otherwise, you will never conserve the number of particles per component.
I assume you prefer to keep the symmetry breaking. Then, I would define a state with the correct number of particles and feed it to the ground state search as an initial state (where examples should be floating around the forum). If the number of particles per component is conserved globally, you do not have to define the symmetry at all and the ground state search should stay with the number of particles (both variational and imaginary TEBD). But you can easily double check. You could still use the total number of particles as a conserved quantity, but then the definition of the initial state is messier. And I would start with the easy steps.
Best regards,
Daniel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you for the reply, I really appreciate you taking the time to discuss this.
P.S. Each component is not conserved globally.
I have to say I don't immediately see why that is, given the form of the extra term in the Hamiltonian...
But if that's the case, you say that not even a variational ground state search with an initial state like you described would work to provide a correct ground state?
Meaning the only way I could approach the problem would be to relax the condition of conservation of particles? I tried running some cases where only nf_2 is conserved, but then I have a hard time comparing results with different particle numbers. Let me know what you think.
Best wishes,
Rafael
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I was thinking of an initial state with all particles in one state, say 0. Then the symmetry breaking term has (fdagger_0 f_1 + h.c.) which will for sure exchange particles between components 0 and 1 and thus break the number conservation for each component, here 0 and 1. As I said, if you start with equal number of particles, each component might (one would have to proof that!) conserve the number of particles; but this would not be a symmetry of the Hamiltonian in any way that OSMPS could use it as far as I know.
I would get rid of all symmetries for instance and lower the bond dimension and number of sweeps. It is always easier to converge a simulation than start with a very time-consuming simulation. Then, feed in a ground state with the number of particles that you want to have and try both variational ground state search and imaginary time evolution and measure the number of particles at the end in each species. That should give you a good idea.
I avoid to answer if you will find the "correct" ground state. Correct could either mean the ground state you were expecting or the ground state of the corresponding Hamiltonian. Maybe you can run some simulations without symmetry and report back with the findings and more questions.
Best regards,
Daniel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ok, so I was not taking into account those single-component states, indeed you're right that numbers would not be conserved in those cases.
So suppose I want to write the initial state with given number of particles in each component. The correct way to do that would be to write it with the state.productstate module? Do we have any examples around for that?
Alternatively, the imaginary time-evolution procedure would require to calculate the ground state of a given Hamiltonian and then 'quench' the system to the desired 'final' Hamiltonian? This is usually what I do for the cases of real time evolution.
Best wishes,
Rafael
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
my script is attached. The variational method does not conserve the total number of particles. The imaginary time evolution does conserve each component in this specific case - in my opinion because we start with equal populations on each site and never break this with any term in the Hamiltonian. But leave one component out in the initial guess and you should easily be able to verify that this does not apply to all simulations.
The imaginary time evolution differs from the variational search and does not set by default energy and variance and the convergence criterion is different. We have some options here, but I would have to look into them myself for details.
Hello there,
I am trying to obtain some ground state properties for the Hubbard model with higher symmetry, where I add a symmetry breaking term in the Hamiltonian (see code attached).
In the code, for the particular case of B0=0, everythign runs fine and I get the observables. For any B>0, however, it runs for a long time and doesn't return anything , even for small systems.
Any thoughts on what the issue might be?
Rafael
Sorry guys, but does anyone have any idea about this issue?
Thanks,
Rafael
I'm looking into your issue. I'll report back in a day or two with initial findings
Hi Rafael,
I was running the file and got a warning regarding the symmetry. The symmetry breaking term does not commute with any of the symmetry generators you defined in the simulation. In my opinion, this warning is the cause that OSMPS does not return any results for B0 not equal to zero. Why do you want to use and break the same symmetry within one simulation? Did you want to break another additional symmetry which was actually not accounted for in the simulation? Is the symmetry breaking term defined correctly?
My response is independent of Matthew; maybe he has some more insights. But I hope that we can help you.
Best regards,
Daniel
Hi Daniel,
I understand it's a bit unorthodox, but my goal was to add that symmetry breaking term while still maintaining the same number of particles per component. I did not seem contradictory to me since we have both the term and it's complex conjugate acting on each site.
Relaxing the condition of particle number consevation will return an artbitrary number of particles in each component, which is not what I am looking for.
But you may be right and perhaps this term is not correctly defined. I would appreciate any ideas on how to improve the definitions.
Best,
Rafael
Hi Rafael,
do you know if the number of particles is conserved globally, although the generator does not commute locally with the symmetry breaking term? Otherwise, you will never conserve the number of particles per component.
I assume you prefer to keep the symmetry breaking. Then, I would define a state with the correct number of particles and feed it to the ground state search as an initial state (where examples should be floating around the forum). If the number of particles per component is conserved globally, you do not have to define the symmetry at all and the ground state search should stay with the number of particles (both variational and imaginary TEBD). But you can easily double check. You could still use the total number of particles as a conserved quantity, but then the definition of the initial state is messier. And I would start with the easy steps.
Best regards,
Daniel
P.S. Each component is not conserved globally. It might be if you start with equal numbers of each component, but that is nothing we can use in OSMPS.
Hi Daniel,
Thank you for the reply, I really appreciate you taking the time to discuss this.
I have to say I don't immediately see why that is, given the form of the extra term in the Hamiltonian...
But if that's the case, you say that not even a variational ground state search with an initial state like you described would work to provide a correct ground state?
Meaning the only way I could approach the problem would be to relax the condition of conservation of particles? I tried running some cases where only nf_2 is conserved, but then I have a hard time comparing results with different particle numbers. Let me know what you think.
Best wishes,
Rafael
Hi Rafael,
I was thinking of an initial state with all particles in one state, say 0. Then the symmetry breaking term has (fdagger_0 f_1 + h.c.) which will for sure exchange particles between components 0 and 1 and thus break the number conservation for each component, here 0 and 1. As I said, if you start with equal number of particles, each component might (one would have to proof that!) conserve the number of particles; but this would not be a symmetry of the Hamiltonian in any way that OSMPS could use it as far as I know.
I would get rid of all symmetries for instance and lower the bond dimension and number of sweeps. It is always easier to converge a simulation than start with a very time-consuming simulation. Then, feed in a ground state with the number of particles that you want to have and try both variational ground state search and imaginary time evolution and measure the number of particles at the end in each species. That should give you a good idea.
I avoid to answer if you will find the "correct" ground state. Correct could either mean the ground state you were expecting or the ground state of the corresponding Hamiltonian. Maybe you can run some simulations without symmetry and report back with the findings and more questions.
Best regards,
Daniel
Hi Daniel,
Thanks again for the details.
Ok, so I was not taking into account those single-component states, indeed you're right that numbers would not be conserved in those cases.
So suppose I want to write the initial state with given number of particles in each component. The correct way to do that would be to write it with the state.productstate module? Do we have any examples around for that?
Alternatively, the imaginary time-evolution procedure would require to calculate the ground state of a given Hamiltonian and then 'quench' the system to the desired 'final' Hamiltonian? This is usually what I do for the cases of real time evolution.
Best wishes,
Rafael
Hi Rafael,
my script is attached. The variational method does not conserve the total number of particles. The imaginary time evolution does conserve each component in this specific case - in my opinion because we start with equal populations on each site and never break this with any term in the Hamiltonian. But leave one component out in the initial guess and you should easily be able to verify that this does not apply to all simulations.
The imaginary time evolution differs from the variational search and does not set by default energy and variance and the convergence criterion is different. We have some options here, but I would have to look into them myself for details.
Best regards,
Daniel
Hi Daniel,
Thanks again for looking into it. This is indeed very helpful, looks like a simple enough way to provide an initial state.
I will run some tests with this modified code and I'll write back if I have other questions.
Best regards,
Rafael