The basic idea is to calculate $\chi^0v$ in the auxiliary basis representation (N_aux*N_aux, within LibRI or not), rather than in real space (N_grid*N_grid, outside LibRI, where $\chi^0(r,r',i\omega)$ is nonlocal).
To implement this, set_Vs would be added in physics/RPA.h, and we may need two operators Tr and Det which contracts both labels of a matrix.
For the detailed derivation and explanation, see part 3.2 in arXiv:2301.12119v1.
The basic idea is to calculate $\chi^0v$ in the auxiliary basis representation (N_aux*N_aux, within LibRI or not), rather than in real space (N_grid*N_grid, outside LibRI, where $\chi^0(r,r',i\omega)$ is nonlocal).
To implement this,
set_Vs
would be added in physics/RPA.h, and we may need two operatorsTr
andDet
which contracts both labels of a matrix.For the detailed derivation and explanation, see part 3.2 in arXiv:2301.12119v1.