Converging K points in XANES-BSE calculations

Dear exciting developers
I’m converging k-points for an XANES-BSE calculations.
I run exciting_smp with: export OMP_NUM_THREADS=“24”, sometimes “20”, sometimes “8”, …
Calculations were done successfully for ngridk=“6 6 3” and ngridq=“6 6 3” in XS block, but not for ngridk=“7 7 4” and ngridq=“7 7 4”, at the last step of calculations, i.e., “Solving BSE Eigenvalue Problem” with the error below:
Intel MKL error: Parameter 8 was incorrect onentry to ZHEEVD.
Error (hermitian_solver): zheevd returned non-zero info: -8
dhesolver error cause: Invalid input

Hi Reihan
I could have avoided the same error by setting distribute=“true” for the BSE element. It seems like a memory-related error, so it’s better to check how much memory your process use. Checking convergence of BSE is hard in terms of both memory and storage…
Im not a developer but just a user btw, hope it would be helpful.

1 Like

Hi Reihan

Negative errors mean a parameter has an illegal value. Parameter 8 of ZHEEVD is the lwork array. I would guess it’s a bug, probably related to choice of qk-grid and/or threading.

However yinb is correct, you should consider using the distribute setting (probably requires scalapack) but also absolutely be using the MPI-parallel binary for BSE calculations, exciting_mpismp. It’s crazy to be running the smp-only binary on anything other than toy problems for BSE.

The faster solution to your poblem is to work around it via choice of ngridk/ngridk (i.e. jump to 8 8 4).

Cheers,
Alex