Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Diagonalizing PairStateInteractions fails for interactionsUpTo = 2 #18

Closed
vxq9e7bx opened this issue Sep 18, 2018 · 3 comments
Closed

Comments

@vxq9e7bx
Copy link

vxq9e7bx commented Sep 18, 2018

Hi,
I would like to calculate some pairstate interactions, but unfortunately the code fails... is there a simple solution to this?
using ARC in python 3.6, and just did the pip install ARC-Alkali-Rydberg-Calculator --upgrade, and also deleted the .arc-data directory...

calc = PairStateInteractions(Caesium(), 28,0,0.5,28,0,0.5, 0.5, 0.5, interactionsUpTo = 2)
calc.defineBasis(0, 0, 5, 5, 25e9,progressOutput=True)
calc.diagonalise(np.linspace(0.2,3,300),250,progressOutput=True)

output.log

@nikolasibalic nikolasibalic self-assigned this Sep 18, 2018
@nikolasibalic
Copy link
Owner

nikolasibalic commented Sep 18, 2018

I've reproduced the error. I haven't seen this error before. I will take a look and let you know.

@nikolasibalic
Copy link
Owner

nikolasibalic commented Sep 18, 2018

@wetsixteen Simple solution is just to reduce the number of requested eigenstates from 250 to 200. That's second argument in diagonalise method. So the corrected call that should give result is

calc.diagonalise(np.linspace(0.2,3,300), 200, progressOutput=True)

Let me know if you have problems with this.

Reason: For the parameters set, you have only 231 purely dipole-dipole coupled states. That you can see if you run code with interactoinsUpTo=1 , it will tell you in matrix dimension what is the total number of states you have. Therefore if you ask for 250 eigenstates, it will have to diagonalise also quadrupole-dipole an quadrupole-quadrupole coupled states. For larger interatomic distances, these states essentially don't interact, and their close energy differences might be causing a trouble for ARPAC that seeks eigenstates closest to the given eigenValue (that is, it cannot sort eigenstates by their energies if they are essentially degenerate). That's why originally diagonalisation works, but then for larger inter-atomic distances it breaks, having finished first ~30%.

Future steps: I will try to check if this was the underlying reason and also adjust underlying routines so that in this case they output some user-friendly comment to help users.

@wetsixteen Thank you for submitting this. Please let me know if you experience any other problems.

@vxq9e7bx
Copy link
Author

works perfect, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants