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

Define what needs to be parsed #10

Open
ligerzero-ai opened this issue Jun 12, 2024 · 6 comments
Open

Define what needs to be parsed #10

ligerzero-ai opened this issue Jun 12, 2024 · 6 comments

Comments

@ligerzero-ai
Copy link
Contributor

Let's have a clear scope of what parsing needs to return:

A dict of objects (1 object per file)?

A dict of generic DFT outputs (stresses, magmoms, forces, energies etc.)?

The goal is to minimise any custom parsing that we might have to do ourselves, and leverage existing parsers where possible (ase, pymatgen etc.)

@ligerzero-ai ligerzero-ai added bug Something isn't working and removed bug Something isn't working labels Jun 12, 2024
@liamhuber
Copy link
Member

liamhuber commented Jun 12, 2024

If possible, I feel it would be nice to see the IO formatted in terms of a dataclass dataclasses rather than a raw dict

@jan-janssen
Copy link
Member

For compatibility with pyiron_atomistics I would aim for reproducing the output of parse_vasp_output():

from pyiron_atomistics.vasp.output import parse_vasp_output
parse_vasp_output(working_directory="pyiron_vasp/tests/static/vasp_test_files/full_job_sample")
parse_vasp_output(working_directory="pyiron_vasp/tests/static/vasp_test_files/full_job_corrupt_potcar")

@jan-janssen
Copy link
Member

jan-janssen commented Jun 12, 2024

The ASE parser for atomistic structures is better than expected:

atoms = read(filename="pyiron_vasp/tests/static/vasp_test_files/poscar_samples/POSCAR_no_species", format="vasp")
atoms

>>> Atoms(symbols='HZn32', pbc=True, cell=[7.9, 7.9, 7.9], constraint=FixAtoms(indices=[0, 29, 30, 31, 32]))

@ligerzero-ai
Copy link
Contributor Author

The ASE parser for atomistic structures is better than expected:

atoms = read(filename="pyiron_vasp/tests/static/vasp_test_files/poscar_samples/POSCAR_no_species", format="vasp")
atoms

>>> Atoms(symbols='HZn32', pbc=True, cell=[7.9, 7.9, 7.9], constraint=FixAtoms(indices=[0, 29, 30, 31, 32]))

In what way? speed?

@jan-janssen
Copy link
Member

In what way? speed?

It is picking up the selective dynamics and converts those into the corresponding constraint.

@jan-janssen
Copy link
Member

If possible, I feel it would be nice to see the IO formatted in terms of a dataclass dataclasses rather than a raw dict

We are working on the dataclasses in https://github.com/pyiron-dev/pyiron-hdf5-format/blob/main/pyiron_io/dataclasses/generic.py

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

No branches or pull requests

3 participants