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
00029
00030 #ifndef RHOMAT_HEADER
00031 #define RHOMAT_HEADER 1
00032
00033 #include "grid_matrix.h"
00034
00037 void
00038 getrho_blocked_lda(int nbast, const real * dmat, const real * gao,
00039 const int* nblocks, const int (*iblocks)[2],
00040 int ldaib, real *tmp, int nvclen, real *rho);
00041
00042 inline void
00043 getrho_blocked_lda(int nbast, const Dft::FullMatrix& m, const real * gao,
00044 const int* nblocks, const int (*iblocks)[2],
00045 int ldaib, real *tmp, int nvclen, real *rho)
00046 {
00047 getrho_blocked_lda(nbast, m.mat, gao, nblocks, iblocks,
00048 ldaib, tmp, nvclen, rho);
00049 }
00050
00051
00052 void
00053 getrho_blocked_gga(int nbast, const real * dmat, const real * gao,
00054 const int* nblocks, const int (*iblocks)[2],
00055 int ldaib, real *tmp, int nvclen,
00056 real *rho, real (*grad)[3]);
00057
00058 inline void
00059 getrho_blocked_gga(int nbast, const Dft::FullMatrix& dmat, const real * gao,
00060 const int* nblocks, const int (*iblocks)[2],
00061 int ldaib, real *tmp, int nvclen,
00062 real *rho, real (*grad)[3])
00063 {
00064 getrho_blocked_gga(nbast, dmat.mat, gao, nblocks, iblocks,
00065 ldaib, tmp, nvclen, rho, grad);
00066 }
00067
00068 void
00069 getexp_blocked_lda(int nbast, const real * dmat, const real * gao,
00070 const int* nblocks, const int (*iblocks)[2],
00071 int ldaib, real *tmp, int nvclen, real *rho);
00072 void
00073 getexp_blocked_gga(int nbast, const real * dmat, const real * gao,
00074 const int* nblocks, const int (*iblocks)[2],
00075 int ldaib, real *tmp, int nvclen,
00076 real (*rgrad)[4]);
00077
00078 #endif