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 
48 void onto_projector(kpoint_t* kpt, int band_num, real_proj_site_t* sites, int num_sites,
49  int* G_bounds, double* lattice, double* reclattice, int num_cart_gridpts, int* fftg);
50 
51 void onto_projector_ncl(kpoint_t* kpt, int band_num, real_proj_site_t* sites, int num_sites,
52  int* G_bounds, double* lattice, double* reclattice, int num_cart_gridpts, int* fftg);
53 
57 void onto_smoothpw(kpoint_t* kpt, int band_num, real_proj_site_t* sites, int num_sites,
58  int* G_bounds, double* lattice, double* reclattice, int num_cart_gridpts, int* fftg);
59 
65 void add_num_cart_gridpts(ppot_t* pp_ptr, double* lattice, int* fftg);
66 
72 
76 void setup_projections(pswf_t* wf, ppot_t* pps, int num_elems,
77  int num_sites, int* fftg, int* labels, double* coords);
78 
87 void overlap_setup_real(pswf_t* wf_R, pswf_t* wf_S,
88  int* labels_R, int* labels_S, double* coords_R, double* coords_S,
89  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);
90 
95 void compensation_terms(double complex* overlap, int BAND_NUM, pswf_t* wf_S, pswf_t* wf_R,
96  int num_M, int num_N_R, int num_N_S, int num_N_RS,
97  int* M_R, int* M_S, int* N_R, int* N_S, int* N_RS_R, int* N_RS_S,
98  int* proj_labels, double* proj_coords, int* ref_labels, double* ref_coords,
99  int* fft_grid);
100 
105 double* besselt(double* r, double* k, double* f, double encut, int N, int l);
106 
107 #endif
108 
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:101
Definition: utils.h:68
Definition: utils.h:48
f
Definition: gaunt.py:28
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 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)
Definition: utils.h:112
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)
Definition: utils.h:146