PAWpySeed
Parallel C/Python package for numerical analysis of PAW DFT wavefunctions
projector.h
Go to the documentation of this file.
1 
7 #ifndef PROJECTOR_H
8 #define PROJECTOR_H
9 #include "linalg.h"
10 
15 ppot_t* get_projector_list(int num_els, int* labels, int* ls, double* wave_grids,
16  double* projectors, double* aewaves, double* pswaves, double* rmaxs, double grid_encut);
17 
24 real_proj_site_t* projector_values(int num_sites, int* labels, double* coords,
25  double* lattice, double* reclattice, ppot_t* pps, int* fftg);
26 
33 real_proj_site_t* smooth_pw_values(int num_N, int* Nlst, int* labels, double* coords,
34  double* lattice, double* reclattice, ppot_t* pps, int* fftg);
35 
41 void onto_projector_helper(band_t* band, double complex* x, real_proj_site_t* sites,
42  int num_sites, double* lattice, double* reclattice, double* kpt, int num_cart_gridpts,
43  int* fftg, projection_t* projections);
44 
45 void get_aug_freqs_helper(band_t* band, double complex* x, real_proj_site_t* sites,
46  int num_sites, double* lattice, double* reclattice, double* kpt, int num_cart_gridpts,
47  int* fftg, projection_t* projections);
48 
52 void onto_projector(kpoint_t* kpt, int band_num, real_proj_site_t* sites, int num_sites,
53  int* G_bounds, double* lattice, double* reclattice, int num_cart_gridpts, int* fftg);
54 
55 void onto_projector_ncl(kpoint_t* kpt, int band_num, real_proj_site_t* sites, int num_sites,
56  int* G_bounds, double* lattice, double* reclattice, int num_cart_gridpts, int* fftg);
57 
61 void onto_smoothpw(kpoint_t* kpt, int band_num, real_proj_site_t* sites, int num_sites,
62  int* G_bounds, double* lattice, double* reclattice, int num_cart_gridpts, int* fftg);
63 
64 void get_aug_freqs(kpoint_t* kpt, int band_num, real_proj_site_t* sites, int num_sites,
65  int* G_bounds, double* lattice, double* reclattice, int num_cart_gridpts, int* fftg);
66 
72 void add_num_cart_gridpts(ppot_t* pp_ptr, double* lattice, int* fftg);
73 
79 
83 void setup_projections(pswf_t* wf, ppot_t* pps, int num_elems,
84  int num_sites, int* fftg, int* labels, double* coords);
85 
94 void overlap_setup_real(pswf_t* wf_R, pswf_t* wf_S,
95  int* labels_R, int* labels_S, double* coords_R, double* coords_S,
96  int* N_R, int* N_S, int* N_RS_R, int* N_RS_S, int num_N_R, int num_N_S, int num_N_RS);
97 
98 void overlap_setup_recip(pswf_t* wf_R, pswf_t* wf_S,
99  int* labels_R, int* labels_S, double* coords_R, double* coords_S,
100  int* N_R, int* N_S, int* N_RS_R, int* N_RS_S, int num_N_R, int num_N_S, int num_N_RS);
101 
106 void compensation_terms(double complex* overlap, int BAND_NUM, pswf_t* wf_S, pswf_t* wf_R,
107  int num_M, int num_N_R, int num_N_S, int num_N_RS,
108  int* M_R, int* M_S, int* N_R, int* N_S, int* N_RS_R, int* N_RS_S,
109  int* proj_labels, double* proj_coords, int* ref_labels, double* ref_coords,
110  int* fft_grid);
111 
112 void compensation_terms_recip(double complex* overlap, int BAND_NUM, pswf_t* wf_S, pswf_t* wf_R,
113  int num_M, int num_N_R, int num_N_S, int num_N_RS,
114  int* M_R, int* M_S, int* N_R, int* N_S, int* N_RS_R, int* N_RS_S,
115  int* proj_labels, double* proj_coords, int* ref_labels, double* ref_coords,
116  int* fft_grid);
117 
122 double* besselt(double* r, double* k, double* f, double encut, int N, int l);
123 
124 #endif
125 
void add_num_cart_gridpts(ppot_t *pp_ptr, double *lattice, int *fftg)
void setup_projections(pswf_t *wf, ppot_t *pps, int num_elems, int num_sites, int *fftg, int *labels, double *coords)
real_proj_site_t * smooth_pw_values(int num_N, int *Nlst, int *labels, double *coords, double *lattice, double *reclattice, ppot_t *pps, int *fftg)
real_proj_site_t * projector_values(int num_sites, int *labels, double *coords, double *lattice, double *reclattice, ppot_t *pps, int *fftg)
Definition: utils.h:102
void overlap_setup_recip(pswf_t *wf_R, pswf_t *wf_S, int *labels_R, int *labels_S, double *coords_R, double *coords_S, int *N_R, int *N_S, int *N_RS_R, int *N_RS_S, int num_N_R, int num_N_S, int num_N_RS)
Definition: utils.h:68
Definition: utils.h:48
f
Definition: gaunt.py:29
void overlap_setup_real(pswf_t *wf_R, pswf_t *wf_S, int *labels_R, int *labels_S, double *coords_R, double *coords_S, int *N_R, int *N_S, int *N_RS_R, int *N_RS_S, int num_N_R, int num_N_S, int num_N_RS)
void get_aug_freqs_helper(band_t *band, double complex *x, real_proj_site_t *sites, int num_sites, double *lattice, double *reclattice, double *kpt, int num_cart_gridpts, int *fftg, projection_t *projections)
void onto_smoothpw(kpoint_t *kpt, int band_num, real_proj_site_t *sites, int num_sites, int *G_bounds, double *lattice, double *reclattice, int num_cart_gridpts, int *fftg)
void onto_projector_helper(band_t *band, double complex *x, real_proj_site_t *sites, int num_sites, double *lattice, double *reclattice, double *kpt, int num_cart_gridpts, int *fftg, projection_t *projections)
void onto_projector_ncl(kpoint_t *kpt, int band_num, real_proj_site_t *sites, int num_sites, int *G_bounds, double *lattice, double *reclattice, int num_cart_gridpts, int *fftg)
list x
Definition: quadrature.py:9
void onto_projector(kpoint_t *kpt, int band_num, real_proj_site_t *sites, int num_sites, int *G_bounds, double *lattice, double *reclattice, int num_cart_gridpts, int *fftg)
void compensation_terms_recip(double complex *overlap, int BAND_NUM, pswf_t *wf_S, pswf_t *wf_R, int num_M, int num_N_R, int num_N_S, int num_N_RS, int *M_R, int *M_S, int *N_R, int *N_S, int *N_RS_R, int *N_RS_S, int *proj_labels, double *proj_coords, int *ref_labels, double *ref_coords, int *fft_grid)
Definition: utils.h:113
void compensation_terms(double complex *overlap, int BAND_NUM, pswf_t *wf_S, pswf_t *wf_R, int num_M, int num_N_R, int num_N_S, int num_N_RS, int *M_R, int *M_S, int *N_R, int *N_S, int *N_RS_R, int *N_RS_S, int *proj_labels, double *proj_coords, int *ref_labels, double *ref_coords, int *fft_grid)
Definition: utils.h:82
ppot_t * get_projector_list(int num_els, int *labels, int *ls, double *wave_grids, double *projectors, double *aewaves, double *pswaves, double *rmaxs, double grid_encut)
void make_pwave_overlap_matrices(ppot_t *pp_ptr)
int k
Definition: rayleigh.py:4
r
Definition: rayleigh.py:38
double * besselt(double *r, double *k, double *f, double encut, int N, int l)
void get_aug_freqs(kpoint_t *kpt, int band_num, real_proj_site_t *sites, int num_sites, int *G_bounds, double *lattice, double *reclattice, int num_cart_gridpts, int *fftg)
Definition: utils.h:147