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

Use HDF5 data format to store force constants #13

Open
ttadano opened this issue Oct 2, 2018 · 1 comment
Open

Use HDF5 data format to store force constants #13

ttadano opened this issue Oct 2, 2018 · 1 comment

Comments

@ttadano
Copy link
Owner

ttadano commented Oct 2, 2018

Currently, ALM stores calculated force constants in a single XML file when executed via the command line. This approach often results in a huge XML file especially when the symmetry of the system is low and/or the higher-order (>3) force constants are included. Besides, reading a data subset from a huge XML by the boost XML parser, which is done in the anphon code of ALAMODE, is very inefficient.

I expect HDF5 library can solve these performance issues as it can store data in binary format (if I understand correctly). Many major languages, such as python, have their own interface to the HDF5 data format. This is an advantage of using HDF5.

I need to work on the following points:

  1. Decide the structure of the HDF5 force constant file
  2. Implement the parser for C++
  3. Write a document describing the data structure

Any other points?

@atztogo
Copy link
Contributor

atztogo commented Oct 3, 2018

I think the format may not be necessary to be understandable for users if the purpose is to make the size small. In this case, it is nice if you could provide a converter from this force constants files to that relatively easily understood by users.

A HDF5 file can pack not only force constants but also other properties such as crystal structure or the parameters (norder, rcs etc) used for creating force constants. These additional information can be used for consistency check. For example, we can warn when incorrect crystal structure is provided.

ttadano added a commit that referenced this issue Oct 17, 2018
This is related to #13. To enable the HDF5 option, add -D_FCS_HDF5
in the compiler option.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants