-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
[BUG] Inconsistent contractions between gbasis inner workings and iodata wrapper? #163
Comments
Hey @marco-2023, if I am not mistaken and understood your message properly, the length of generalized contractions shells is not equal to the number of AO. Each shell represents all the contractions that share the same set of exponents, centers, and angular momentum (AOs). For the overlap, this is taken care of in gbasis/gbasis/integrals/overlap.py Line 101 in bd7bd7d
This for a p orbital for example looks like:
And this done for all the angular momentums generates the |
If you try the code below you should get the 184 as total number of atomic orbitals:
|
Thank you very much @leila-pujal, your answer helps a lot. I was not clear on what the |
No worries, I know the shell contractions are confusing because it looks like they should relate to the number of AOs. Let me know if you have any more questions related to this. Feel free to close the issue if you think everything is clear. |
@leila-pujal and @marco-2023 is this a case where there is a failure of documentation? We should probably be really clear about documentation, especially the dimension of objects. We probably also need to define, for those who are not among the QC-Devs cognoscenti, our verbiage (AOs = atomic basis functions; shells = basis functions with the same set of exponents; etc.) Having an example tutorial (or including it in an example tutorial) or something like that is helpful too. In some sense, it may go into the scientific documentation, but we need to make it feasible/usable for people who haven't seen all the documentation too. |
hi, I agree we may have not been really conscious about our notation/dimensions. In my opinion, I think the part about covering it in the documentation is there. I think we are including this in the paper and the docstring for the contractions base class. I was trying to look at IOData earlier to see if they give more information about this I only found this. On the other hand, I agree that reading that a contractions groups together all AO for that angular momentum does not give you a clear idea of what the shells mean. I had to spend some time myself at the begining of using Gbasis. I agree this is one of the most important things to show in the tutorial. I am mentioning things from the email and issue #162 (sorry about mixing) about the units. if I am not mistaken (I will double check) Gbasis does not follow a particular convention meaning it just takes the convention of the parser or wrapper the user is using. Indeed this is missing in the documentation and we should state it clearly early in the documentation that the user should know what are the units is using. For example if using IOData it internally uses Bohr (I think). PySCF wrapper I checked and Gbasis just reads whatever is stored there so it could be Bohr or Angstrom. Anyway, I'll check the documentation and comment on issue #162 about where we could add this. @PaulWAyers I know you mentioned there to check point-sets passed in, basis functions, and the properties/integrals, I ll check those. |
Describe the bug
It is not clear what are the objects returned by the
from_iodata
interface. If the returned lists contains the contracted shells, then the overlap and other integrals should return square matrix with the number of rows/columnsequal to the returned value from
from_iodata
.To Reproduce
returns:
Expected behaviour
The overlap matrix should be of dimension NxN where N is the number of contracted shells that
from_iodata
returnsScreenshots
System Information:
Additional context
The text was updated successfully, but these errors were encountered: