Improve the xsf format data precision #5233
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed changes
A common way to analyze charge/spin densities in qmcpack is to generate the
*.xsf
data files viaqdens
that reads the data from the nativestat.h5
files. The xsf files can then be further analyzed viaqdens-radial
or other tools. Currently, the data (such as charge density) in the xsf files are written as floats with 8 significant digits (12.8f
). I think scientific notation is better for this type of data. For example, QE (v7.0) uses scientific notation with 6 significant digits (12.6E
). In a simple test I did, the integrated charge (norm) has improved significantly using the12.6E
style for CH4 molecules in a 16^3 Ang box. Here the correct norm is 5.Old code:
New code:
The accuracy can be further improved at the expense of a larger file size.
What type(s) of changes does this code introduce?
Does this introduce a breaking change?
What systems has this change been tested on?
Checklist