CrawfordGroup / n_body

Testing the n_body plugin code. Work in progress.
0 stars 2 forks source link

JSON data handling #10

Open bgpeyton opened 7 years ago

bgpeyton commented 7 years ago

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())

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 commented 7 years ago

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

bgpeyton commented 7 years ago

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 commented 7 years ago

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

bgpeyton commented 7 years ago

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 commented 6 years ago

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

bgpeyton commented 6 years ago

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 commented 6 years ago

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).