Drift Diffusion
Jump to navigation
Jump to search
FLOODS uses the the sgrad() operator (the Scharfetter-Gummel discretization scheme for the grad() operator) to model Drift-Diffusion. Do this for each material and species you want drift-diffusion in (i.e. for each species that is charged and mobile). The example below is the drift-diffusion model of electrons (Elec) and holes (Hole) in silicon (Silicon).
Set error tolerances, define constants
pdbSetDouble Silicon Elec Abs. Error 1.0e-5 pdbSetDouble Silicon Elec Rel. Error 1.0e-2 pdbSetDouble Silicon Hole Abs. Error 1.0e-5 pdbSetDouble Silicon Hole Rel. Error 1.0e-2 set Emob 350.0; # Electron mobility set Hmob 150.0; # Hole Mobility set Vt 0.025; # kT/q
if you are using Boltzmann statistics (equivalent to Gamma_n,p=1)
set eqnE "ddt(Elec)-$Emob*$Vt*sgrad((Elec), +DevPsi/$Vt)";#if your species is negatively charged: set eqnH "ddt(Hole)-$Hmob*$Vt*sgrad((Hole), -DevPsi/$Vt)";#if your species is positively charged:
if you are using Fermi-Dirac statistics
set eqnE "ddt(Elec)-$Emob*$Vt*sgrad((Elec), +DevPsi/Vt-log(Gamma_n))";#if your species is negatively charged: set eqnH "ddt(Hole)-$Hmob*$Vt*sgrad((Hole), -DevPsi/Vt+log(Gamma_p))";#if your species is positively charged:
Store the transport equations in the pdb
pdbSetString Silicon Elec Equation $eqnE;#store the transport equation in the pdb pdbSetString Silicon Hole Equation $eqnH;#store the transport equation in the pdb