-
Notifications
You must be signed in to change notification settings - Fork 873
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
Inputs - JDFTx IO Module #4189
base: master
Are you sure you want to change the base?
Inputs - JDFTx IO Module #4189
Conversation
…d deleting "_input_utils.py" as it contained only one method that was used once in "generic_tags.py"
…ut calling `.items()`) - This does not appear in my local pre-commit (which I believe is running correctly) but started causing the "lint" action to fail starting around 11/22 (along with other failures from unrelated pre-existing parts of pymatgen)
… "as_dict" method that passes through the __setitem__ method so that the values within the dictionary fed to "as_dict" can be as flexible as the values set explicitly by the user (also made minor updates to __setitem__ to handle setting multiple values for repeatable tags better)
…e validation methods to AbstractTag for validations that are called multiple times, cleaned up cluttered tests and added comments to make it more clear what is being tested
Thanks for your patience with this one, long PRs adding a big new feature are always more difficult to review. I think this nicely self-contained and is in good shape to merge in. We can save further improvements for follow-up PRs that we can review/merge more quickly, and we can take the same approach with #4190 too. One thing that wasn't obvious to me, why the |
Awesome thank you! Sorry for the new push - had a minor bug from inconsistent tracking of units. And the Edit: The new push is actually restricted to #4078 -
So edits for minor bugs I should keep within #4078 and leave #4189 and #4190 untouched, right? |
It'd be better to remove it :) Creating a directory doesn't take much time, and might add some confusion to others to see it there. Tests should do "set up" and "tear down" as needed.
As long as you merge in changes from the main branch (or rebase) #4078 once #4189 and #4190 are merged, or you can create new PRs. Either way is fine, I will try and be responsive! |
Summary
Major changes:
inputs.py
module containingJDFTXInfile
class to give pythonic representation to the inputs for a JDFTx calculationgeneric_tags.py
holding "Tag" objects (AbstractTag
and inheritors ofAbstractTag
) to represent the different data structures JDFTx expects for inputsjdftxinfile_master_format.py
to create proper "Tag" objects for input tagsjdftxinfile_ref_options.py
to hold lists of acceptable input strings for different input tags (ie list of acceptable XC functionals for the tag "elec-ex-corr")