<div dir="ltr">I am writing to seek your guidance on generating and properly gridding complex-valued wavefunctions. Our goal is to obtain 3D complex wavefunctions, fully gridded on their defined FFT grid, which we intend to use for advanced spectroscopy simulations as an added feature to Quantum Espresso.<br><br>For instance, with a system defined by 2×2×2 k-points and no symmetry, we expect to have 8 k-vectors (and therefore, we will obtain 8 wavefunctions binaries stored in .save after SCF). If we desire 40 bands and an FFT grid of (20, 20, 20), our expectation is that 8 wavefunction files (binaries or texts) would be written, each with the same size of 16×20×20×20×40 = 5,120.000 bytes as we are aiming for each wavefunction to be stored as complex*16 data, separated by bands looping from 1 to 40, and in each band block its (1:20, 1:20, 1:20) a row of 3D complex wavefunction data.<br><br>We would greatly appreciate any advice or documentation you can provide on how to achieve this, especially how to ensure the wavefunctions are accurately gridded on their FFT grid in the desired complex format, we tried to count the bytes of the QE-generated .dat files, the bytes are far away from the expected, so we don't know how to grid them. We also tried pp.x postprocessing, however, since it is mainly designed for orbital visualization, the phase information, i.e., the complex nature of wavefunction is not stored after the post-processing. For Gamma-only, we can do a square-root transformation, however, for non-Gamma cases, the square-root won't work anymore.<div><div><br>We believe this capability could be highly beneficial for users interested in extending QE's functionality into advanced spectroscopy, and we would be more than happy to contribute to its development.<br><br>Thank you for your support and any assistance you can offer.<br></div></div><div><br></div><div>Sincerely</div><div>Barry</div></div>