155 int min(
int a,
int b);
160 int max(
int a,
int b);
167 void vcross(
double* res,
double* top,
double* bottom);
173 double dot(
double* x1,
double* x2);
178 double mag(
double* x1);
194 double dist_from_frac(
double* coords1,
double* coords2,
double* lattice);
200 void min_cart_path(
double* coord,
double* center,
double* lattice,
double* path,
double*
r);
251 double complex
Ylm(
int l,
int m,
double theta,
double phi);
256 double complex
Ylm2(
int l,
int m,
double costheta,
double phi);
277 double* pos,
double*
x,
double*
f,
double** s,
int l,
int m);
284 int size,
double* ion_pos,
double* pos,
double* lattice);
291 int size,
double* ion_pos,
double* pos,
double* lattice);
298 double* ion_pos,
double* pos,
double* lattice);
304 double complex
wave_value2(
double*
x,
double* wave,
double** spline,
int size,
305 int l,
int m,
double* pos);
311 int* labels,
double* coords,
double* lattice,
int* fftg,
int pr0_pw1);
336 double sbf(
double x,
int l);
343 double complex
rayexp(
double* kpt,
int* Gs,
float complex* Cs,
int l,
int m,
344 int num_waves,
double complex* sum_terms,
double* ionp);
350 double complex*
rayexp_terms(
double* kpt,
int* Gs,
int num_waves,
351 int l,
int wave_gridsize,
double*
grid,
352 double* wave,
double** spline,
double* reclattice);
int * G_bounds
Definition: utils.h:114
int get_nband(pswf_t *wf)
int total_projs
number of projector functions
Definition: utils.h:70
double rmax
Definition: utils.h:146
band_t ** bands
bands with this k-point
Definition: utils.h:106
double * aewave
all electron partial wave
Definition: utils.h:34
real_proj_t * projs
Definition: utils.h:149
struct projection projection_t
double dist_from_frac(double *coords1, double *coords2, double *lattice)
short int up
spin
Definition: utils.h:100
grid
Definition: rayleigh.py:30
double ** spline_coeff(double *x, double *y, int N)
double * lattice
Definition: utils.h:119
double complex Ylm2(int l, int m, double costheta, double phi)
double * smooth_grid
Definition: utils.h:64
double occ
occupancy of the band
Definition: utils.h:85
double sbf(double x, int l)
int nspin
Definition: utils.h:116
double * proj_grid
real radial grid for projector functions
Definition: utils.h:63
double ** smooth_diffwave_spline
spline coefficients for smooth_diffwave
Definition: utils.h:43
double complex * overlaps
list of <p_i|psi>
Definition: utils.h:74
double * pspw_overlap_matrix
overlap matrix for pseudo partial waves
Definition: utils.h:55
double complex wave_value(funcset_t funcs, int size, double *x, int m, double *ion_pos, double *pos, double *lattice)
int num_waves
number of plane waves
Definition: utils.h:84
double complex Ylm(int l, int m, double theta, double phi)
double * smooth_diffwave
diffwave on linear grid with high-frequency components removed
Definition: utils.h:42
int index
Definition: utils.h:140
double * dense_kwave
Definition: utils.h:44
double dot(double *x1, double *x2)
double complex proj_value(funcset_t funcs, double *x, int m, double rmax, int size, double *ion_pos, double *pos, double *lattice)
double weight
k-point weight
Definition: utils.h:104
int * Gs
plane wave coefficients, in sets of three
Definition: utils.h:102
double * coord
Definition: utils.h:147
int nwk
Definition: utils.h:118
int n
band number
Definition: utils.h:83
y
Definition: rayleigh.py:27
int num_projs
Definition: utils.h:142
int num_projs
number of radial projector functions
Definition: utils.h:49
int total_projs
Definition: utils.h:143
double * diffwave
aewave-pswave
Definition: utils.h:38
double complex proj_value_helper(double r, double rmax, int size, double *pos, double *x, double *f, double **s, int l, int m)
void free_ppot(ppot_t *pp)
double * get_occs(pswf_t *wf)
projection_t * projections
length==number of sites in structure
Definition: utils.h:90
int m
Definition: utils.h:133
double N
Definition: utils.h:86
double determinant(double *m)
int num_projs
number of radial projector functions
Definition: utils.h:69
void setup_site(real_proj_site_t *sites, ppot_t *pps, int num_sites, int *site_nums, int *labels, double *coords, double *lattice, int *fftg, int pr0_pw1)
double ** diffwave_spline
spline coefficients for diffwave
Definition: utils.h:39
double * proj
projector function
Definition: utils.h:32
void generate_rayleigh_expansion_terms(pswf_t *wf, ppot_t *pps, int num_elems)
double * k
k-point vector
Definition: utils.h:103
double complex trilinear_interpolate(double complex *c, double *frac, int *fftg)
void free_real_proj_site(real_proj_site_t *site)
double complex rayexp(double *kpt, int *Gs, float complex *Cs, int l, int m, int num_waves, double complex *sum_terms, double *ionp)
int * ns
radial projector index
Definition: utils.h:71
double complex energy
energy of the band
Definition: utils.h:87
void vcross(double *res, double *top, double *bottom)
float complex * Cs
plane wave coefficients (normalized to 1)
Definition: utils.h:88
int l
angular momentum quantum number
Definition: utils.h:95
struct real_proj real_proj_t
list x
Definition: quadrature.py:9
double complex * rayexp_terms(double *kpt, int *Gs, int num_waves, int l, int wave_gridsize, double *grid, double *wave, double **spline, double *reclattice)
int nband
Definition: utils.h:117
int num_indices
Definition: utils.h:144
void free_kpoint(kpoint_t *kpt, int num_elems, ppot_t *pps)
void set_num_sites(pswf_t *wf, int nsites)
int num_bands
number of bands
Definition: utils.h:105
rayleigh_set_t ** expansion
Definition: utils.h:107
struct real_proj_site real_proj_site_t
double complex ** overlaps
Definition: utils.h:124
double complex * values
Definition: utils.h:136
double legendre(int l, int m, double x)
int gridsize
Definition: utils.h:145
void free_pswf(pswf_t *wf)
double ** pswave_spline
ps partial wave spline coefficients
Definition: utils.h:37
int elem
Definition: utils.h:141
int num_cart_gridpts
number of real space grid points that can fit in the projector sphere
Definition: utils.h:60
double complex * values
Definition: utils.h:128
void free_real_proj_site_list(real_proj_site_t *sites, int length)
double ** aewave_spline
ae partial wave spline coefficients
Definition: utils.h:35
int num_aug_overlap_sites
Definition: utils.h:122
double * paths
Definition: utils.h:135
double sph_bessel(double k, double r, int l)
double ** kwave_spline
spline coefficients for kwave
Definition: utils.h:41
struct projgrid projgrid_t
double rmax
Definition: utils.h:53
void cartesian_to_frac(double *coord, double *reclattice)
int lmax
maximum l-value of any projector
Definition: utils.h:51
double * kwave_grid
reciprocal radial grid for partial waves
Definition: utils.h:62
void copy_rayleigh_expansion_terms(pswf_t *wf, ppot_t *pps, int num_elems, pswf_t *wf_R)
double complex wave_value2(double *x, double *wave, double **spline, int size, int l, int m, double *pos)
int * fftg
Definition: utils.h:121
void free_ppot_list(ppot_t *pps, int length)
void frac_from_index(int index, double *coord, int *fftg)
int proj_gridsize
number of points on projector radial grid
Definition: utils.h:58
struct rayleigh_set rayleigh_set_t
int func_num
Definition: utils.h:134
int total_projs
number of projector functions
Definition: utils.h:50
int * ls
l values of projectors
Definition: utils.h:72
double proj_interpolate(double r, double rmax, int size, double *x, double *proj, double **proj_spline)
int l
Definition: utils.h:132
double spline_integral(double *x, double *a, double **s, int size)
double * dense_kgrid
Definition: utils.h:65
int * indices
Definition: utils.h:148
int wave_gridsize
number of points on partial wave radial grid
Definition: utils.h:59
int k
Definition: rayleigh.py:4
void free_real_proj(real_proj_t *proj)
int num_elems
Definition: utils.h:111
r
Definition: rayleigh.py:38
double * reclattice
Definition: utils.h:120
int l
l quantum number
Definition: utils.h:31
double * aepw_overlap_matrix
overlap matrix for all electron partial waves
Definition: utils.h:56
double * dcoords
Definition: utils.h:123
kpoint_t ** kpts
Definition: utils.h:115
double * kwave
Expansion of diffwave in spherical Bessel functions.
Definition: utils.h:40
int * ms
m values of projectors
Definition: utils.h:73
void CHECK_ALLOCATION(void *ptr)
double ** dense_kwave_spline
Definition: utils.h:45
void min_cart_path(double *coord, double *center, double *lattice, double *path, double *r)
double wave_interpolate(double r, int size, double *x, double *f, double **wave_spline)
ppot_t * pps
Definition: utils.h:113
funcset_t * funcs
funcset for each projector, see funcset
Definition: utils.h:52
double complex * CRs
wavefunction in real space
Definition: utils.h:89
int num_sites
Definition: utils.h:112
double * wave_grid
real radial grid for partial waves
Definition: utils.h:61
double * pswave
pseudo partial wave
Definition: utils.h:36
double complex smooth_wave_value(funcset_t funcs, double *x, int m, double rmax, int size, double *ion_pos, double *pos, double *lattice)
void frac_to_cartesian(double *coord, double *lattice)
double wave_rmax
maximum radius of the partial waves
Definition: utils.h:54
double complex * terms
rayleigh epansion terms
Definition: utils.h:96
double * diff_overlap_matrix
overlap matrix of difference between all electron and partial waves
Definition: utils.h:57
projection_t * wave_projections
length==number of sites in structure
Definition: utils.h:91
int get_nspin(pswf_t *wf)
double ** proj_spline
projector function spline
Definition: utils.h:33
int num_waves
number of plane waves in a band
Definition: utils.h:101