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

Add pymatgen.io.pwmat module #3512

Merged
merged 112 commits into from
Jan 18, 2024
Merged

Add pymatgen.io.pwmat module #3512

merged 112 commits into from
Jan 18, 2024

Conversation

lhycms
Copy link
Contributor

@lhycms lhycms commented Dec 13, 2023

Summary

PWmat is a GPU-accelerated first-principles calculation software developed under the leadership of Professor Lin-wang Wang. I am currently utilizing it for my research project, and in the course of this work, I have written some scripts. I hope to submit them to pymatgen to assist more people in conveniently handling data in the PWmat format. This submission includes only structure file and trajectory file, and I plan to continue developing code for other input and output files in subsequent submissions.

Major changes:

  • feature 1: Add pymatgen.io.pwmat.inputs.AtomConfig which is input/output structure file, work as POCAR in vasp.
  • feature 2: Add pymatgen.io.pwmat.outputs.Movement which is trajectory file generated when running MD.
  • feature 3: Add pwmat fmt within Structure.from_file() and Structure.from_str().
  • feature 4: Add object for output files of PWmat: OUT.FERMI, REPORT, DOS.totalspin and so on.

Todos

In the future, I will contribute code processing other input and output files for PWmat.

@janosh
Copy link
Member

janosh commented Dec 13, 2023

Thanks a lot! This is much appreciated! 👍

We also need extensive tests for these three new features.

@janosh janosh added enhancement A new feature or improvement to an existing one needs testing PRs that are not ready to merge due to lacking tests io Input/output functionality labels Dec 13, 2023
@janosh janosh force-pushed the master branch 2 times, most recently from 3c23114 to 36e289c Compare December 19, 2023 02:10
@janosh janosh changed the title Add pymatgen.io.pwmat module Add pymatgen.io.pwmat module Jan 17, 2024
Copy link
Member

@janosh janosh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I renamed a bunch of method names and dict keys to use snake_case. Let me know if you're ok with that. there's one more test missing for the new Structure pwmat IO format. otherwise this is ready to go.

pymatgen/core/structure.py Show resolved Hide resolved
@janosh janosh removed the needs testing PRs that are not ready to merge due to lacking tests label Jan 18, 2024
Copy link
Member

@janosh janosh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great now. Thanks a lot @lhycms for this impressive contribution! 👍

@janosh janosh enabled auto-merge (squash) January 18, 2024 11:05
@lhycms
Copy link
Contributor Author

lhycms commented Jan 18, 2024

Thank you for your guidance and assistance. You are really nice😄. @janosh

@janosh janosh merged commit 0d7e6cd into materialsproject:master Jan 18, 2024
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement A new feature or improvement to an existing one io Input/output functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants