-
Notifications
You must be signed in to change notification settings - Fork 139
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
Update handling of array sizes in SplineR2R and SplineC2C for rotation cases #4288
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
myV is sized to an aligned value, and so its size may be greater than the size of psi. Which doesn't cause a problem in the evaluate3d call, but can cause invalid accesses in the assign_* call.
Make the size of vector that is a slice of the matrix consistent with the size of the matrix.
Test the case where the size of psi is not the same as the orbital set size. Add a script to validate the spline evaluation.
Use 2*psi instead of myV
markdewing
changed the title
Update handling of array sizes in SplineR2R for rotation cases
Update handling of array sizes in SplineR2R and SplineC2C for rotation cases
Oct 21, 2022
PDoakORNL
requested changes
Oct 24, 2022
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.
Haven't look at this file in a while. I feel kinda nauseous. Considering the centrality of spline evaluation in the code its sad that SIMD optimization requirements seem to result in C from the nineties.
The factor of 2 in the size comes from using real types for storing complex numbers.
PDoakORNL
previously approved these changes
Oct 24, 2022
test this please |
prckent
previously approved these changes
Oct 24, 2022
Test this please |
Fix errors in the CUDA build with the test in test_einset.cpp where the input psi is a different size than the orbital set size.
Test this please |
ye-luo
approved these changes
Oct 25, 2022
Test this please |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In the case of orbital rotation, the orbital set size from the H5 file may not match the number of SPOs used, which may not match the number of occupied orbitals.
In BsplineSet.h, the slices of the matrices need to have a size consistent with the size of the matrix.
In SplineR2R.cpp, use the size of psi rather than myV. In the call to evaluate3d it doesn't matter because all the inputs are sized the same as myV, but in the following call to assign_*, the size discrepancy can cause invalid accesses.
Add a Python script for evaluating SPOs given the HDF file of coefficients. It uses autograd to evaluate the spatial derivatives.
What type(s) of changes does this code introduce?
Delete the items that do not apply
Does this introduce a breaking change?
What systems has this change been tested on?
desktop
Checklist
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.