Bandgap

class semiconductor.material.BandGap(**kwargs)[source]

A simple class that combines the intrinsic band gap (band gap variation with temperature) and band gap narrowing (band gap changes from everything else) for easy use.

Inputs to this class are:

  1. material: (str)
    The elemental name for the material. Defualt (Si)
  2. temp: (float)
    The temperature of the material in Kelvin (300)
  3. iEg_author: (str)
    The author of the intrinsic band gap model to be used
  4. multiplier: (float)
    A multipler. This is a hack that people use to adjust the bandgap to achieve other desired values.
  5. BGN_author: (str)
    The author of the band gap narrowing.
  1. nxc: (array like cm-3)
    The number of excess carriers
  2. Na: (array like cm-3 )
    The number of acceptor dopants
  3. Nd: (array like cm-3)
    The number of donar dopants
update(**kwargs)[source]

Calculates the band gap for the given models

There is also the option for drilling deeper down to look at

Intrinsic band gap

class semiconductor.material.IntrinsicBandGap(**kwargs)[source]

A class that calculates the intrinsic band-gap of a material from a provided model

The intrinsic bandgap is the band gap for an intrinsic material as a function of temperature
it changes as a result of:
different effective carrier mass (band strucutre)
inputs:
  1. material: (str)
    The elemental name for the material. Defualt (Si)
  2. temp: (float)
    The temperature of the material in Kelvin (300)
  3. author: (str)
    The author of the model to be used
  4. multiplier: (float)
    A multipler. This is a hack that people use to adjust the bandgap to achieve other desired values.
check_models()[source]

Displays a plot of the models against that taken from a respected website (https://www.pvlighthouse.com.au/)

update(**kwargs)[source]

a function to update the intrinsic BandGap

inputs:

temperature in kelvin author: (optional)

the author used. If not provided the last provided author is used If no author has then the author Passler’s is used

multiplier: A band gap multipler. 1.01 is suggested.

output:
the intrinsic bandgap in eV

Band gap narrowing

class semiconductor.material.BandGapNarrowing(**kwargs)[source]

Band gap narrowing accounts for a reduction in bandgap which occurs as a result of no thermal effects. These include:

doping excess carrier density (non thermal distribution)

This class allows calculation of an effective intrinsic carrier density. However, it only uses boltzman stastics.

Inputs to this class are:

  1. material: (str)
    The elemental name for the material. Defualt (Si)
  2. temp: (float)
    The temperature of the material in Kelvin (300)
  3. author: (str)
    The author of the model to be used
  4. nxc: (array like cm-3)
    The number of excess carriers
  5. Na: (array like cm-3)
    The number of acceptor dopants
  6. Nd: (array like cm-3)
    The number of donar dopants
ni_eff(ni, **kwargs)[source]

returns the effective intrinsic carrier densitiy

ni_multiplier(**kwargs)[source]

returns a multiplification factor that when applied to the intrinsic carrier concentration provides the effective intrinsic carrier concentraion.

update(**kwargs)[source]

Calculates the band gap narrowing

Inputs: Na, Nd, delta n, temp, ni

output:
band gap narrowing in eV