-
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
Multi-method properties #39
Comments
I actually did not have a specific solution in mind, just think it'd be worthwhile to consider generalizing here. Adding keys is probably not scalable. Would there also be |
I think this is a good @loriab question who has thought about this quite a bit more than I have. Generally my thought was to explicitly tag the "99% case" and have these keys extensible like |
I will push for the objects instead of building a slew of keys...which a developer will have to look through, and which would have to be extended every time someone thinks of a new method. Now, the method alone does not provide enough information. In reality, the method should point to the full information, basis set, SCF and settings, etc. |
The output of that these properties are attached to the method, basis, settings etc. It seems overkill to to point to these again in a property structure, no? I dont quite understand, defining keys seems to be a large part of this so that users do not have to go fishing through each programs output keys to figure out what they have. Again, we do not need to define keys for everything; however, I am reasonably certain that the majority of cases comprise of a relatively small subset of possible keys. Dipole moments is a bit of an odd case as we have somewhat duplicate keys for multiple methods. However, the energy components of SCF/MP/CI/CC/SAPT/etc is all quite unique. |
If properties are already attached to method, etc. then having specific keys for specific methods seems to be mute. Reality is that many properties can be build from a (first-order) density matrix and integrals, and this density matrix can come from many methods. So, it's not just dipole moments. Actually this can hold for every property that can computed with response, there are now ccsd response methods out there. |
It's useful to have dedicated keys for the majority use cases, so maybe we should do both things. Several related issues come to mind:
|
|
I feel like we need some sort of test suite of example calculations, which we would officially support, and the corresponding JSON schema files they would be represented by for guidance. This would capture the common cases and the special ones that have been raised. Maybe that would make the discussion more concrete? We've done this for cclib from the start and it's helped tremendously focus discussions about scope and supported methods. |
In the course of a given QM computation multiple properties (particularly one-electron) could be constructed so that a single field may become ambiguous. A good example is a CCSD density computation which may form SCF, MP2, and CCSD densities. For a quantity like
dipole_moments
a program may build a set of moments for each density.A possibility is to have keys for each
scf_dipole_moments
,mp2_dipole_moments
, andccsd_dipole_moments
. Another possibility is to build a dipole moment definition object:which holds the properties for each method. (Let me know if I misunderstood this @langner.)
Brought up by @langner in #37.
The text was updated successfully, but these errors were encountered: