Skip to content
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

JSON data handling #10

Open
5 of 7 tasks
bgpeyton opened this issue Nov 10, 2017 · 7 comments
Open
5 of 7 tasks

JSON data handling #10

bgpeyton opened this issue Nov 10, 2017 · 7 comments

Comments

@bgpeyton
Copy link
Member

bgpeyton commented Nov 10, 2017

Commit #2538754 added new functionality to generated input files. All input.dat files will now import json and dump the contents of core.get_variables() to output.json within the same directory.

Now, data harvesting functions must crawl these output.json files instead of output.dat files. It would be nice if the results were compiled into a master output.json but they could also possibly be handled within the shelved database as well. (Should totally switch to json at some point!)

List of WFN data types to work on (functions are harvest_{}_data())

  • scf_energy
  • scf_dipole
  • cc_energy
  • quadrupole
  • rotation
  • polarizability
  • Re-check all JSON values against output file

Rotation and polarizability tensors should be implemented at a later date (for use in ROA, for example), but these are not necessary for my current work.

@bgpeyton
Copy link
Member Author

Branch "harvest" can now pull scf energy, scf dipole, and cc energy data from json output files. (Commits #1133dad, #37cfcb6, and #d8f2970 respectively)

@bgpeyton
Copy link
Member Author

bgpeyton commented Nov 13, 2017

Rotation and polarizabilities have a problem: output.json (populated by core.get_variables()) only stores the last rotation and polarizability calculated, IE if you run a job to calculate these values at multiple wavelengths, psi4 only stores the last value. This can be seen in optrot.cc here and in polar.cc here. For now, harvesting functions for these two will pull the one value reported.

The respective tensors, on the other hand, are not stored at all. These will need to be added from the ground up. Rotations, polarizabilities, and their corresponding tensors will be the next thing to be worked on in this regard, and should finish up the (current) list of wfn data types.

@bgpeyton
Copy link
Member Author

bgpeyton commented Nov 13, 2017

PR 857 for psi4 has been submitted, which addresses the rotation and polarizability issues (pending review).

@bgpeyton
Copy link
Member Author

Update: rotation and polarization tensors can be implemented into Psi4 at a later date, as they are not necessary for the current project, so they will also be taken off the list of data harvesting functions. See legacy Taylor code for details on these functions (they will likely be removed in a recent PR).

@bgpeyton
Copy link
Member Author

PR 857 for PSI4 is merged, meaning this issue is taken care of!

@bgpeyton
Copy link
Member Author

New problem: it seems that quadrupoles (and possibly other values) dumped to the JSON dictionary are not matching output files. More testing is necessary.

@bgpeyton bgpeyton reopened this Jan 10, 2018
@bgpeyton
Copy link
Member Author

Another thing to check: wavefunction based rotation data harvesting should drop optrots into a list rather than having a further-nested ordered dictionary. While more confusing, it makes data cooking much easier (due to zipping of data within the function).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant