1 #ifndef VDW_Q0_H
2 #define VDW_Q0_H
3 void vdwxc_G_zeta0(double rs, double *e, double *dedn);
4 void vdwxc_compute_lda(double n, double* e, double* v);
5 void vdwxc_compute_lda_spin(double n_up, double n_dn,
6                             double *e, double *v_up, double *v_dn);
7 void vdwxc_compute_lda_spin_zeta(double n, double zeta,
8                                  double *e, double *v_up, double *v_dn);
9 void vdwxc_compute_q0x(double Z_ab, double rho, double sigma, double *q0x,
10                        double *dq0x_drho, double *dq0x_dsigma);
11 void vdwxc_compute_q0x_spin(double Z_ab, double rho_up, double rho_dn,
12                             double sigma_up, double sigma_dn,
13                             double *q0xt,
14                             double *dq0xt_drho_up, double *dq0xt_drho_dn,
15                             double *dq0xt_dsigma_up, double *d0xt_dsigma_dn);
16 void vdwxc_compute_q0_spin(double Z_ab,
17                            double rho_up, double rho_dn,
18                            double sigma_up, double sigma_dn,
19                            double* q0,
20                            double* dq0drho_up, double* dq0drho_dn,
21                            double* dq0dsigma_up, double* dq0dsigma_dn);
22 void vdwxc_hfilter(double q0, double q0cut, double *hq0, double *dhq0dq0);
23 
24 void vdwxc_calculate_q0(int N, double Z_ab, double q_cut,
25                         double* rho, double* sigma,
26                         double* q0, double* dq0_drho,
27                         double* dq0_dsigma);
28 
29 // Now does the same as vdwxc_calculate_q0.  What to do?
30 void vdwxc_calculate_q0_nospin(int N, double Z_ab,
31                                double *rho_g,
32                                double *sigma_g,
33                                double *q0_g,
34                                double *rho_dq0drho_g,
35                                double *rho_dq0dsigma_g);
36 
37 // XXX q_cut
38 void vdwxc_calculate_q0_spin(int N, double Z_ab, //double q_cut,
39                              double* rho_up_g, double* rho_dn_g,
40                              double* sigma_up_g, double* sigma_dn_g,
41                              double* q0_g,
42                              double* dq0drho_gs,
43                              double* dq0dsigma_gs);
44 #endif
45