Make GPAW dependency optional
We should try to get rid of the mandatory GPAW dependency in rhodent. rhodent should be able to parse, for example, density matrices on disk (which are saved as numpy archives) and calculate hot carriers and energies. GPAW should still be an optional dependency, and would be needed in order to:
- Compute induced densities
- Calculate Voronoi weights
- Parse the time-dependent wave function files from GPAW
- Parse dipole moment files written in the GPAW format
as all of the above depend specifically on implementation details of GPAW (in particular, anything density based depends on the particular PAW projectors and basis sets implemented in GPAW).
In order to get rid of the mandatory dependency we need to replace
- [ ] MPI. It should be straight forward to switch to MPI4PY (GPAW will do this in the future as well). One needs to make sure that all of the mpi operations `send`, `receive`, `alltoallv`, etc. still work, and update the syntax if necessary.
- [ ] The KohnShamDecomposition. We should make our own KohnShamDecomposition (which can be very similar to the one in GPAW)
- [ ] Unit conversions (`from gpaw.tddft.units`). This is very straight forward, just copy the necessary definitions.
issue