-
Notifications
You must be signed in to change notification settings - Fork 36
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
Request wavefunction data returns #38
Comments
I think here we really should think about what data gets stored in the JSON file, and which data we may want to provide a link path to, for example, an binary HDF5 file or something like that that we have a standardized format for. When it comes to densities and overlap matrices, how much do we want to allow for on the fly compute of the visualization software vs. providing them all the data without compute. What density are we looking at, a density matrix or density on a grid? |
Why not provide the facilities to do both things for all data?
IMO it should be possible to provide arbitrary data on a grid, with annotations and conventions for describing what it is. Same for matrices - think spin density matrix, etc. |
Agree, on both. Outputting matrices is relatively easy, any data on a grid is an extra compute step that is not a standard task. |
For the first pass I would encourage simple exports that would reproduce CClib's quantities for example. We can get fairly bogged down in making something complex that is not easily exportable by current codes while something like densities and orbitals are quite generally valuable even in list form. |
Maybe. On the other hand, the benefit of creating a schema from scratch is that we can discuss such things and settle on something sufficiently generic. I worry that having a simple field for specific matrices will disincentivize creating a more generic solution down the road. We could just punt on this entirely to make the first past simple and minimal. |
If possible I would like to split the line where we generate something that can produce results now, but is extensible and flexible that we can do more specifics things in the future. For example, for the key could be:
However in the future, this could be extended to the following during later versions:
|
So we don't plan to be backwards compatible? |
The above can be viewed as different inputs, and is valid/digestible in most languages. In this case, a simple If you have a good idea on how to do be both expressible as well as provide simple options please do suggest it. It's also worth considering that downstream QM programs must actually implement this which is more likely to happen if the first spec is straightforward. |
Don't forget that one of the most voted-on points was "aim for novice programmer". Related to #39, I think introducing complexity that requires checking value type (is
I thought the conclusion we came to was that as long as the schema version was appropriately marked, this would be ok. If that's the case, then the transition is made easier: the first implementation only works with the simple representation, which can be phased out with the second implementation. The problem is that cclib's quantities are too simple and inflexible for what I'll call the "average grad student workflow", and the internal representation now requires a potentially backward-incompatible update. |
FWIW, we can be backwards incompatible in cclib if need be as well, as long as we plan ahead and bump up to 2.x at the right time. I suppose it's better to err on the side of simplicity. |
I second (or third) the race-ahead and implement, backwards-compatibility be disregarded in this the pre-1.0 stage, especially as only so much can be planned before implementation. |
A key component of the schema which we have not hit on too much so far is the return of orbitals/densities/eigenvalues for visualization and passing data between programs. I would like to push the discussion of the return types and storage of these quantities off to a separate topic (there should be one soon discussing ordering and the like).
These "wavefunction" returns would be isolated to anything of the size of the basis set or larger. Browsing around it seems like the following quantities are useful to return:
Would a proposed structure like the following work?
with a similar return structure.
Questions:
orbitals_alpha
?The text was updated successfully, but these errors were encountered: