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* proj_grids, 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, ppot_t* pps, int* fftg,
43  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, ppot_t* pps, int* fftg);
50 
54 void onto_smoothpw(kpoint_t* kpt, int band_num, real_proj_site_t* sites, int num_sites,
55  int* G_bounds, double* lattice, double* reclattice, ppot_t* pps, int* fftg);
56 
62 void add_num_cart_gridpts(ppot_t* pp_ptr, double* lattice, int* fftg);
63 
69 
76 void setup_projections(pswf_t* wf, ppot_t* pps, int num_elems,
77  int num_sites, int* fftg, int* labels, double* coords);
78 
84 void setup_projections_copy_rayleigh(pswf_t* wf, pswf_t* wf_R, ppot_t* pps, int num_elems,
85  int num_sites, int* fftg, int* labels, double* coords);
86 
94 void overlap_setup(pswf_t* wf_R, pswf_t* wf_S, ppot_t* pps,
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 
106 void overlap_setup_real(pswf_t* wf_R, pswf_t* wf_S, ppot_t* pps,
107  int* labels_R, int* labels_S, double* coords_R, double* coords_S,
108  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);
109 
114 double* compensation_terms(int BAND_NUM, pswf_t* wf_proj, pswf_t* wf_ref, ppot_t* pps,
115  int num_elems, int num_M, int num_N_R, int num_N_S, int num_N_RS,
116  int* M_R, int* M_S, int* N_R, int* N_S, int* N_RS_R, int* N_RS_S,
117  int* proj_labels, double* proj_coords, int* ref_labels, double* ref_coords,
118  int* fft_grid);
119 
124 double* besselt(double* r, double* k, double* f, double encut, int N, int l);
125 
126 #endif
127 
void onto_projector_helper(band_t *band, double complex *x, real_proj_site_t *sites, int num_sites, double *lattice, double *reclattice, double *kpt, ppot_t *pps, int *fftg, projection_t *projections)
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:99
Definition: utils.h:68
Definition: utils.h:48
void setup_projections_copy_rayleigh(pswf_t *wf, pswf_t *wf_R, ppot_t *pps, int num_elems, int num_sites, int *fftg, int *labels, double *coords)
f
Definition: gaunt.py:28
void onto_projector(kpoint_t *kpt, int band_num, real_proj_site_t *sites, int num_sites, int *G_bounds, double *lattice, double *reclattice, ppot_t *pps, int *fftg)
ppot_t * get_projector_list(int num_els, int *labels, int *ls, double *proj_grids, double *wave_grids, double *projectors, double *aewaves, double *pswaves, double *rmaxs, double grid_encut)
double * compensation_terms(int BAND_NUM, pswf_t *wf_proj, pswf_t *wf_ref, ppot_t *pps, int num_elems, 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)
list x
Definition: quadrature.py:9
Definition: utils.h:110
void onto_smoothpw(kpoint_t *kpt, int band_num, real_proj_site_t *sites, int num_sites, int *G_bounds, double *lattice, double *reclattice, ppot_t *pps, int *fftg)
Definition: utils.h:82
void overlap_setup(pswf_t *wf_R, pswf_t *wf_S, ppot_t *pps, 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 make_pwave_overlap_matrices(ppot_t *pp_ptr)
int k
Definition: rayleigh.py:4
r
Definition: rayleigh.py:38
void overlap_setup_real(pswf_t *wf_R, pswf_t *wf_S, ppot_t *pps, 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)
double * besselt(double *r, double *k, double *f, double encut, int N, int l)
Definition: utils.h:139