Nexus: QE HDF5 charge density results support - #5427
Conversation
|
Thanks Kayahan. Can you please confirm that a "meaningful" QE spin polarized workflow is still good with the latest QE? e.g. Check https://github.com/QMCPACK/qmcpack/blob/develop/nexus/examples/qmcpack/rsqmc_quantum_espresso/04_iron_dft_dmc_gcta/iron_ldaU_dmc_gcta.py works, or at least looks to work (no need to run the whole thing). Anything similar would be fine, including potentially what you used to develop this. Unfortunately there is no meaningful testing on Nexus workflows yet. |
|
@prckent, The added code covers when transfers are made between SCF to SCF calculations e.g. when you only need the charge density, but not the whole wavefunction. From SCF to NSCF calculations, whole pwscf.save directory is saved using rsync (due to sync_from_scf = True if calc='nscf'). The new code does not modify the rsync option, therefore should not affect most QMC workflows. I have tested this on a non-collinear, spin-orbit coupling calculations (with SCF to SCF) workflow using Nexus. Additionally, I ran the QE part of the workflow you shared and that worked for me as well, but that workflow has no SCF to SCF calculations. |
|
Test this please |
|
Test this please |
When QE is installed with HDF5 support(default to compile pw2qmcpack.x), instead of the charge-density.dat and spin-polarization.dat files, a single charge_density.hdf5 file is produced. Currently Nexus does not support transferring results between simulation objects with hdf5 extensions.
I have noticed that while creating these softlinks, Nexus does not actually check if the .dat file exists in the reference directory. I initially tried implementing these checks, but it broke several tests. New code checks if there is a charge-density.hdf5 file in the reference directory, if not then assumes there is a .dat file (which is the current behavior).
What type(s) of changes does this code introduce?
Does this introduce a breaking change?
What systems has this change been tested on?
Python 3.12.8
Checklist