File band.h

header file for band.c

Typedefs

typedef struct BAND Band

Base class for band structure.

typedef numpyint (*UpdateFunc)(Band*, double, const double*, double*)

An update parameter function pointer that accepts a pointer to to band struct (with its parameters as members) and according to the Band parameters and energy, update para (usually effective mass). The latter two double * parameters are potential (including band offset) and effective mass respectively.

typedef double (*NormalizeFunc)(Band*, double, const double*, double*, double)

An update parameter function pointer that accepts a pointer to to band struct (with its parameters as members) and according to the Band parameters and energy, update para (usually effective mass). The latter two double * parameters are potential (including band offset) and effective mass respectively.

Functions

numpyint BandUpdateM(Band *band, double E, const double *xVc, double *m)

Update effective mass in band.

double BandNormalize(Band *band, double E, const double *xVc, double *psi, double xres)

Normalize the wave function psi according to the band.

Band *ZBband_new(numpyint N, const double *xEg, const double *xF, const double *xEp, const double *xESO)

Initiate new Zinc-blende semiconductor.

void ZBband_free(Band*)

Free a Zinc-blende semiconductor.

Band *WZband_new(numpyint N, const double *xEg, const double *xEp, const double *xESO)

Initiate new Wurtzite semiconductor.

void WZband_free(Band*)

Free a Wurtzite semiconductor.

struct BAND
#include <band.h>

Base class for band structure.

Public Members

const UpdateFunc updateM

Update band structure effective mass

const NormalizeFunc normalize

Normalize the wave function

numpyint N

Size of datas

double *Eg

Band gap in eV