Skip to content

Benchmark pymatgen notebook#13

Open
ligerzero-ai wants to merge 1 commit intomainfrom
replace_with_pymatgen
Open

Benchmark pymatgen notebook#13
ligerzero-ai wants to merge 1 commit intomainfrom
replace_with_pymatgen

Conversation

@ligerzero-ai
Copy link
Contributor

contains a notebook for parsing with pymatgen - drop in replacement.

Some notes:

pymatgen outcar parsing is limited to last step parsing only; this is problematic for certain properties (magmoms), etc.

in my testing, pymatgen is about 10% slower in real files, (0.3s per parse of my typical output folder) vs pyiron's current parsing.

This might narrow with extremely large vasp runs, but it also might not.

@ahmedabdelkawy can you test with ab-initio md? just replace path_real with the path that you'd like to test.

@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@@ -0,0 +1,280 @@
{
Copy link
Contributor

@ahmedabdelkawy ahmedabdelkawy Jul 12, 2024

Choose a reason for hiding this comment

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

Line #63.        output["generic"]["steps"] = len(vr.ionic_steps)

The definition of steps here is not the total number of ionic steps it is a method (as I understand) that allows the user to do something like: plt.plot(job.output.steps, job.output.energy_tot). In other words it keeps an index for each ionic step. However, I agree that the parsing is wrong (there is the get_steps in the outcar.py which is never called) and then we end up using the arrange(energy) thing in the output.py.


Reply via ReviewNB

@@ -0,0 +1,280 @@
{
Copy link
Contributor

@ahmedabdelkawy ahmedabdelkawy Jul 12, 2024

Choose a reason for hiding this comment

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

Line #64.        # Another grievous offender that pollutes the interface for no good reason...

The structure object in the generic output is only for the first and final structures: job['input/structure/positions'] and job['output/structure/positions']. The positions for the entire trajectory can be obtained only via job['output/generic/positions'] So I don't think we double the storage or save the trajectory twice (as I understand how we currently parse things).


Reply via ReviewNB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants