File band.c

Zincblende and Wurtzite structure band, compatible with structure BAND.

Defines

SQ(x)

short for square of a function

Typedefs

typedef struct ZBBAND ZBBand

structure for Zinc-blende band

typedef struct WZBAND WZBand

struct for Wurtzite band:

This may not be necessary because it’s still a 3 band model with F=0. It’s here to demonstrate how new material can be added.

Functions

numpyint ZBupdateM(Band *mat, double Eq, const double *xVc, double *m)

Update effective mass of a Zincblende band semiconductor

double ZBNormalize(Band *mat, double Eq, const double *xVc, double *psi, double xres)

The normalization condition for Zincblende band.

numpyint WZupdateM(Band *mat, double Eq, const double *xVc, double *m)

Update effective mass of a Wurtzite band semiconductor. Output N.

double WZNormalize(Band *mat, double Eq, const double *xVc, double *psi, double xres)

The normalization condition for Wurtzite band.

struct ZBBAND

structure for Zinc-blende band

Public Members

UpdateFunc updateM

Update effective mass

NormalizeFunc normalize

Normalize the wave function

numpyint N

Number of finite x positions

const double *xEg

Direct energy gap

const double *xF

Kane parameter

const double *xEp

Matrix element

const double *xESO

Spin-orbit splitting

struct WZBAND

struct for Wurtzite band:

This may not be necessary because it’s still a 3 band model with F=0. It’s here to demonstrate how new material can be added.

Public Members

UpdateFunc updateM

Update effective mass

NormalizeFunc normalize

Normalize the wave function

numpyint N

Number of finite x positions

const double *xEg

Direct energy gap

const double *xEp

Matrix parameter

const double *xESO

Spin-orbit splitting