Conversation
|
I haven't gotten a chance to look at the code too closely yet, but I am concerned about this implementation easily diverging from the one in RMG-Py. Of course, as you noted there is a problem because the RMG-Py class discards hyphens (it does this so that the methods are not necessarily software dependent). I wonder if there is a way that we can use the RMG-Py objects but build an interface to them such that issues like hyphens are handled when ARC needs them. This shouldn't be an issue when trying to convert ARC representations to LOT (discarding hyphens is easy), but I think there should be a solution to go the other way as well. One possible idea: What if we implement adapters between LOT and each quantum chemistry software? Some of these software adapters might be very simple if the software does not care about hyphens. @cgrambow also has an interesting idea about using the We should discuss this tomorrow during subgroup if you want, or setup a Zoom meeting |
|
Adding on to what @amarkpayne is saying, I also don't think it's necessary to implement yet another class for dealing with levels of theory; rather we could try to make the level of theory classes in RMG-Py suitable for ARC. This is what I was thinking:
|
|
@amarkpayne I think implementing adapters between LOT and each quantum chemistry software is a good idea and a potential way to clean up some long if-else rules in ARC. Also, we should think about within each ESS, how to treat different job types. Currently, ARC uses if-else to treat job_type and ESS together, which is really hard to maintain. Maybe to generate a job we can do: LOT --> ESS adaptor --> method for creating the input file for the required job_type for the particular ESS |
|
@oscarwumit @alongd Check out the modifications I just pushed to the |
|
@cgrambow @amarkpayne , sounds good!
These are all implemented in this PR if you'd like to take a look, I'm happy to relocate them to Arkane. |
|
I take my above comment back: There's no need to add all that stuff to Arkane which isn't being used in the RMG repo, instead, we should set up a class in ARC that inherits from |
44da546 to
603bf36
Compare
|
@oscarwumit, could you review the Level class again? Let's talk tomorrow. There are some API changes, see the edited first comment for details. I plan to modify the examples and scripts as needed, and modify the documentation. |
to avoid maintaining two separate argument checks in main
- removed input/restart file load and argument checks - non backward compatible API changes: species (arc_species_list), reactions (arc_rxn_list), arkane_level_of_theory (model_chemistry), removed job_additional_options and job_shortcut_keywords, removed solvation, thermo_adapter and kinetics_adapter instead of statmech_adapter, bac_type (use_bac) - changed how level of theories per job type are handled - removed the from_dict method
- determine_model_chemistry_type - format_level_of_theory_inputs - format_level_of_theory_for_logging other minor style modifications, also blocked matplotlib warnings
Also includes minor style modifications to Scheduler
This is a complementary commit, many modifications were already made in other commits in this PR. Since shebangs are only important for executable files, they were removed from non-executable files, leaving them in ARC.py, scripts, and tests.
|
This pull request fixes 4 alerts when merging 35ba12b into 2e71a1a - view on LGTM.com fixed alerts:
|
Added a
Levelclass that converts easily to the new ArkaneLevelOfTheoryclass to determine freq scale factor and energy corrections.This class also organizes the different functions related to the level of theory.
This PR also introduces significant changes to
main, resulting in changes to ARC's API. In particular:main(removed the from_dict method).species(wasarc_species_list),reactions(wasarc_rxn_list),arkane_level_of_theory(wasmodel_chemistry, now only refers to the sp level, not freq level),job_additional_optionsandjob_shortcut_keywords, they are included in theLevelobject as anargsargumentsolvation, now included in theLevelobject which can be specified per job typethermo_adapterandkinetics_adapterwere added, replacing the generalstatmech_adapterbac_typespecifies'p'or'm'BAC type (could beNonefor not using BACs), replaced the boolean flaguse_bac