Enable GS runs for spinors on GPUs
Description
Fix subspace diagonalization and orthogonalization for spinors on GPUs. The main changes are enabling get_points
and set_points
functions to deal with spinor wave functions and the corresponding memory layout. Moreover, st%d%dim
needed to be inserted in some places. Also, some blas functions needed offsets for GPU runs.
I have enabled now some spinor tests to also run on GPUs. I have changed the Poisson solver to fft for the finite systems, so I might need to recenter the tests a bit; but from what I tested so far, the difference between GPU and CPU is very small for the same Poisson solver.
In this MR, I also fix a bug for systems with one complex states, for which the scalapack pzheev
call returns wrong results; in this case we just set the eigenvalue and eigenvector ourselves because it is trivial.
Closes #547 (closed).
News snippet
Enable GS runs for spinors on GPUs.
Checklist
-
I have checked that my code follows the Octopus coding standards -
I have added tests for all the new features added in this request.