00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef RHOMAT_HEADER
00029 #define RHOMAT_HEADER 1
00030
00031 #include "grid_matrix.h"
00032
00035 void
00036 getrho_blocked_lda(int nbast, const real * dmat, const real * gao,
00037 const int* nblocks, const int (*iblocks)[2],
00038 int ldaib, real *tmp, int nvclen, real *rho);
00039
00040 inline void
00041 getrho_blocked_lda(int nbast, const Dft::FullMatrix& m, const real * gao,
00042 const int* nblocks, const int (*iblocks)[2],
00043 int ldaib, real *tmp, int nvclen, real *rho)
00044 {
00045 getrho_blocked_lda(nbast, m.mat, gao, nblocks, iblocks,
00046 ldaib, tmp, nvclen, rho);
00047 }
00048
00049
00050 void
00051 getrho_blocked_gga(int nbast, const real * dmat, const real * gao,
00052 const int* nblocks, const int (*iblocks)[2],
00053 int ldaib, real *tmp, int nvclen,
00054 real *rho, real (*grad)[3]);
00055
00056 inline void
00057 getrho_blocked_gga(int nbast, const Dft::FullMatrix& dmat, const real * gao,
00058 const int* nblocks, const int (*iblocks)[2],
00059 int ldaib, real *tmp, int nvclen,
00060 real *rho, real (*grad)[3])
00061 {
00062 getrho_blocked_gga(nbast, dmat.mat, gao, nblocks, iblocks,
00063 ldaib, tmp, nvclen, rho, grad);
00064 }
00065
00066 void
00067 getexp_blocked_lda(int nbast, const real * dmat, const real * gao,
00068 const int* nblocks, const int (*iblocks)[2],
00069 int ldaib, real *tmp, int nvclen, real *rho);
00070 void
00071 getexp_blocked_gga(int nbast, const real * dmat, const real * gao,
00072 const int* nblocks, const int (*iblocks)[2],
00073 int ldaib, real *tmp, int nvclen,
00074 real (*rgrad)[4]);
00075
00076 #endif