-
Notifications
You must be signed in to change notification settings - Fork 141
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
[WIP] Next orbital rotation prototype #4351
Conversation
Now the stored coefficient are a shared pointer, only perform the rotation on a single thread.
Hack to specify the rotation method in the input file. Default is history list. Use 'optimize="global"' to use global rotation.
Otherwise an assert triggers with global rotation and multi-det.
This may not be the right place for this, but want to get out in the open so that we remember to circle back at some point. During optimization (oneshift at least but possibly for other methods), a rotation with a proposed set of wfn parameters is applied before deciding to accept/reject the proposed parameters. This is done, e.g. in line 1365 in QMCFixedSampleLinearOptimize.cpp in this line: Otherwise, this PR looks good to me. |
This is a copy and paste to get *something* working for the single determinant case.
In order to compute the delta rotation properly, myVars needs to stay in sync with the values in the driver. It always must be set to the value passed in to resetParametersExclusive. Also set initial values to match testing.
At least compute the det ratios if evaluateDerivRatios is not implemented. This matches the implementation in WaveFunctionComponent. This fixes the deterministic test failure in diamondC_1x1x1_pp-param-grad.
Accumulate the parameter derivatives correctly in the case where multiple wavefunction components use the same parameter.
Q. How much of this remains to be cleaved off and merged? Can we close this now? What is needed to run (say) FeO in splines at gamma in the batched code? |
The key changes to enable orbital rotation are the functions checkInVariablesExclusive and resetParametersExclusive in RotatedSPOs.
What's left after that is the saving and restoring of the rotation parameters |
Supersedes #4202
Changes from that version:
Updates:
evaluteDerivativesWF
in RotatedSPOs and a path to calling it.evaluateDerivRatios
in RotatedSPOs and a path to calling it, along with extra arguments.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?
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.