-
Notifications
You must be signed in to change notification settings - Fork 135
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
Orbital rotation optimization test for Be atom #4619
Conversation
Test Be atom with STO basis. The coefficient matrix is partially optimized, taken from an optimizer run that started from the identity coefficient matrix. This tests the remainder of the optimization.
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.
What reliability do you expect with the 0.03 errorbar and the current test inputs?
From the graph it looks like we would need a higher value for this test to nearly always work (>>95%).
Otherwise LGTM. Good the Jastrow version is even better.
I assume the optimal |
The second graph shows there is still failure with |
Two possibilities:
|
And default minwalkers. Seems stable.
Still worth adding in a later PR imo. All of our vmc tests with jastrows and all our dmc tests have this issue, but it does help us catch new breakage. |
Just a comment, but isn't it interesting that we see only ~two sets of energies on the first optimization step and not a continuum of possible results? Why would that be? (Assuming the updated test gets through CI, I suggest we merge it and then keep an eye on the pass/fail rate and adjust the acceptable error bar accordingly) |
Test this please |
I think the discrete splits are due to rejected parameter moves. |
So the higher split set of energies after one iteration actually uses the same parameters as the zeroth iteration? |
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.
LGTM
Test this please |
Yes, the same variational parameters get used. I would expect it would have the same distribution as in the first iteration. There's only 4 runs that had the first move rejected, so it's a very small sample size. |
Test Be atom with STO basis. The coefficient matrix is partially optimized, taken from an optimizer run that started from the identity coefficient matrix. This tests the remainder of the optimization.
The test takes about a minute on a Broadwell CPU.
The input file does 3 iterations with minwalkers=0.1, and 3 iterations with minwalkers=0.95 (for reference, default minwalkers is 0.3). After new parameters are calculated, a correlated sampling run is done and the effective number of walkers is computed. If it is less than minwalkers, the new parameters are rejected, and the next optimizer loop iterations proceeds.
A run using the default parameters produces large variations in later optimizer iterations.
![be_opt_default](https://private-user-images.githubusercontent.com/266185/242709983-d35f09b8-baff-43b7-91e8-225e738aa76b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAyMTA1MjgsIm5iZiI6MTcyMDIxMDIyOCwicGF0aCI6Ii8yNjYxODUvMjQyNzA5OTgzLWQzNWYwOWI4LWJhZmYtNDNiNy05MWU4LTIyNWU3MzhhYTc2Yi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNVQyMDEwMjhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hMWVkODczMTVmM2ExY2E1MTIzNTA4ZmYwN2RhNGE0YjBjYTg1YzA4YzIwYzAyY2Y3ZWYzNjFlOGE4NjNkZTYwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.no9AsjZDu1BIl83EdMize_mApGIjL42nMtLirZCpi0w)
It could be that this is such a small system that parameter moves with a large overlap can still produce a poor energy. Using stricter minwalkers cutoff in the last 3 iterations seems to alleviate the issue.
It could also relate to the intrinsic noise. Adding more samples helps (at the cost of a longer test). A run using these orbitals with an e-e Jastrow factor had an order of magnitude less variance in the energy, and did not show optimizer histories with poor energies.
In both graphs, the last iteration is a VMC run.
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.