-
Notifications
You must be signed in to change notification settings - Fork 140
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
convert h5 orbs from spherical to Cartesian #4364
base: develop
Are you sure you want to change the base?
Conversation
print(m) | ||
return m | ||
|
||
s2cdict = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you add some documentation about what the numbers mean in this structure?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, I'm still moving some factors around, but I plan to add more documentation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added a description there.
It's not my ideal solution (I should just add a function to generate these for arbitrary l/m), but I wanted to get something working first, and this was simple.
I squared everything so that I could keep an array of values with terminating decimal expansions.
I haven't noticed any issues with accumulation of floating-point errors yet, but I should probably consider whether that might become a problem for high enough angular momenta.
(This actually led me to your jupyter notebooks yesterday: I grep
ped for factorial
while trying to decide whether to take a product of ratios prod(a_i/b_i)
or a ratio of products prod(a_i)/prod(b_i)
and found a comment that mentioned the GaussianOrbitals
notebook from the qmc_algorithms repo)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested this and it works and solves the #5205 issue. Can we merge it?
I think the only thing left to do here is to clean up the tests.
|
Could you expand the documentation mentioning spherical vs Cartesian and this tool that helps converting under LCAO to make this tool visible. |
Proposed changes
Added a utility to convert pyscf h5 orbitals from spherical to Cartesian AO basis.
I still need to check the normalization for the different shells, but all of the framework is in place.
The PyscfToQmcpack converter doesn't seem to correctly handle cases where different atoms of the same element have different basis sets, so I didn't account for that in this converter either (it will be simple to update this converter when PyscfToQmcpack is updated).
What type(s) of changes does this code introduce?
Does this introduce a breaking change?
Update the following with a yes where the items apply. If you're unsure about any of them, don't hesitate to ask. This is
simply a reminder of what we are going to look for before merging your code.