Enable Automatic Isodesmic Reaction Generation for Arkane#1561
Conversation
e4ccf76 to
025890e
Compare
Codecov Report
@@ Coverage Diff @@
## master #1561 +/- ##
==========================================
+ Coverage 44.49% 45.06% +0.56%
==========================================
Files 84 86 +2
Lines 21776 22210 +434
Branches 5679 5787 +108
==========================================
+ Hits 9689 10008 +319
- Misses 11020 11096 +76
- Partials 1067 1106 +39
Continue to review full report at Codecov.
|
|
How did you generate the yaml files? When do you run the reference species through arkane to get the NASA polynomials? Do you have a script to make them? |
|
We've been looking into the YAML thing a bit more. Line 217 in bb7175c But the yaml looks different from that generated by the yaml Dumper in Line 53 in 81c7cee Should we pick one horse to back? Re-use existing I/O routines? |
|
I think it is probably best if the yaml files follow the already established Arkane yaml format as much as possible. I'll take a look at this and update this PR. |
81c7cee to
8e35d46
Compare
davidfarinajr
left a comment
There was a problem hiding this comment.
Looks great Mark!
My comments are mostly about adding isinstance or assert statements where I think we could use them. For the bigger picture, on this or future PRs:
- perhaps add
model_chemistryto low_level_hf attribute for ErrorCancelingSpecies object and use themodel_chemistryas a constraint to only select reference species calculated with the same model chemistry - incorporate uncertainty in hf determined from EBRs scheme. Instead of using the median of multiple EBRs to calculate hf, weigh each EBR by its uncertainty and put greater weight on less uncertain reactions (reactions with reference species with higher certainty in low or high level hf, maybe)
- add a function to test the reference dataset. Delete a reference species from reference dataset and use the deleted species as a target species to calculate hf using isodesmic scheme. This could be a way to gauge the uncertainty for that species.
3c85534 to
bc317b0
Compare
amarkpayne
left a comment
There was a problem hiding this comment.
@davidfarinajr I have addressed your comments, and pushed the last of the commits for this PR. I added some of the assert/type checking statements, but not all of them. I think they are are bigger deal in the reference species section where we want to enforce a standard. For the remaining cases at the very least I added type hints in the docstrings that IDEs like PyCharm can pick up on. Do you mind doing one last review now that everything is in?
After this I will need a Merger review. @alongd , @mliu49 , @mjohnson541 , or @goldmanm do any of you have time to take a look at this after David's review? I know we have a lot of PRs right now, so if not I understand.
bc317b0 to
aade36f
Compare
45ec98b to
702bff6
Compare
davidfarinajr
left a comment
There was a problem hiding this comment.
It's looking good! A few comments...
- I like the new
ReferenceDatabaseclass. Theextract_mode_chemistrymethod is useful for getting a reference subset with desiredmodel chemistryfrom the reference set. However, I think we need a naming convention formodel chemistryand also a way to see all the model chemistries in your reference set from which you can select. - Since
ReferenceSpeciesis very similar toArkaneSpecies, I think it would make sense to add a method to initialize aReferenceSpeciesobject from anArkaneSpeciesobject. - For isodesmic scheme, we need to get Species Constraints. For Species Constraints, we need a list of
ErrorCancelingSpeciesfrom a reference set. You can get this list from theextract_model_chemistrymethod from theReferenceDatabaseclass. However, I think we should add a method to convertReferenceSpeciestoErrorCancelingSpecies.
|
@alongd I have removed the temporary commit from this PR. Let me know if there are any other comments or changes you would like me to make. |
|
The code looks great, thanks!! |
1ddfa85 to
30f124b
Compare
|
I had added an example before, but we were encountering memory issues. I created a new example, and tried to make the QM output files as small as possible (though I don't think they contribute much anyways). It ran fine on my local machine, so let's hope that Travis handles it okay. |
Also add additional apin-orbit corrections.
30f124b to
97d6868
Compare
alongd
left a comment
There was a problem hiding this comment.
Thanks for this valuable addition to Arkane!! All looks good.
|
Thanks for all of the hard work you put in to reviewing and help me fine tune this PR @alongd, @davidfarinajr and @cgrambow !! I really appreciate it |
Based heavily on ideas and algorithms provided by
Buerger, P., Akroyd, J., Mosbach, S., & Kraft, M. (2018). A systematic method to estimate and validate enthalpies of
formation using error-cancelling balanced reactions. Combustion and Flame (Vol. 187).
https://doi.org/10.1016/j.combustflame.2017.08.013
Dobek, F. J., Ranasinghe, D. S., Throssell, K., & Petersson, G. A. (2013). Evaluation of the heats of formation of
corannulene and C60 by means of inexpensive theoretical procedures. Journal of Physical Chemistry A, 117(22), 4726–4730.
https://doi.org/10.1021/jp404158v