-
Notifications
You must be signed in to change notification settings - Fork 8
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
IAO fragmentation for DMET #24
Comments
On closer look, changing IAO to SAO fragmentation doesn't seem to break the (E)DMET tests for me at all - @cjcscott is it only the skipped ebcc tests that break? |
I like that idea of checking the 'completeness' of the fragmentation. I don't really understand the fundamental problem in having a non-spanning fragmentation of the virtual space in (E)DMET though. Of course, you can not hope to expand to 'in-method' completeness, but that is still a physically valid method? |
Depends what you do with it - the democratic DMs do not trace correctly, so calculating any properties from them (including the total energy) does not really make sense. If someone is only interested in "cluster properties" this wouldn't apply of course. One way to combine both is just to check the completeness when calling any routine that assumes a complete fragmentation, such as |
Sure - I like that idea. |
I added a few such check here |
It may only be the ebcc tests skipped when you haven't got it installed that ended up failing- I guess we've removed all non-minimal basis DMET tests and only have minimal basis EBFCI tests. Even without that the point still stands. Few other qs:
|
aka, adding an option to allow someone to say I don't want to be warned about this on this run |
I will change the non EBFCI tests to SAO, since they pass for me and leave the EBFCI tests at IAO OK?
If I recall correctly, trying to optimize the chemical potential with a non-complete fragmentation almost never converges
This is a good point, however I would suggest that the user has to add the "HF fragment" manually in this case, i.e.
which would then not print a warning |
The other way you can do it (which is essentially what 'ab initio' DMFT does), is optimize the bath chemical potential for each cluster solver, s.t. the number of electrons in each fragment is the same as HF in the fragment (rather than a global chemical potential). This then does not require a fully spanning fragmentation, but rather just an occupied fragmentation to ensure electron number is conserved. Correlation essentially changes the fragment state, but does not net change the number of electrons between fragment and bath in each cluster compared to MF. Electron number is then conserved in the democratically partitioned DMs (and potentially adjusted in a 'global' self-consistency which changes the MF state). This could then legitimately use an IAO fragmentation (albeit without any 'dynamic' correlation)? |
So you are saying fragment electrons are only allowed to rearrange within the IAO space - the "PAO" space can only be occupied by bath electrons? |
I don't see why this should necessarily be the case- self-consistency could be interesting though, would need to relax the traceless condition on the correlation potential...
Depending on what you're doing, defining the space treated at HF level might well be non-trivial. Should also note that in EDMET this will be effectively treated at the level of RPA via other mechanisms, so could for instance include higher virtual orbitals outside the IAOs or similar.
I suppose this just assumes that the mean-field electron distribution at the mean-field level is correct; probably more reasonable in DMFT using a DFT reference, but might not be terrible. And if you're just trying to capture physics relevant to a particular problem, rather than the whole system, this might give a balanced representation for energy changes over some transformation.
Wouldn't this trigger a warning on calculating the energy from the democratic RDMs? |
Yes, this was from experience only
We could add a
Yes true, unless the remaining virtual space is added as a HF fragment. |
#21 reverted the removal of the IAO fragmentation for DMET.
I'm fine with leaving it available for DMET (but leaving the documentation as it is, saying it's not available?)
One of the reasons was that the change from IAO to SAO breaks the miniumum basis (STO-6G) DMET tests; this only happens because the IAO reference basis is taken to be the
'minao'
basis of G. Knizia, but I think it is hard to justify that the IAOs for a minimal basis set should be anything different than the unchanged basis set itself. I will update the default basis at least for the STO-nG family, while leaving the tests untouched.I actually think we should protect the user from using an insufficient fragmentation in a more general sense (which would also catch if some atoms were forgotten for example). That is, we could add two routines,
fragmentation_complete()
andfragmentation_occupied_complete()
, which check that the entire occupied+virtual and occupied space is spanned by orthonormal fragment orbitals, respectively. This can be tested either on__exit__
of the fragmentation context manager, or at the beggining ofkernel()
and print a warning if it returnsFalse
.The text was updated successfully, but these errors were encountered: