SET - Simple Example

From Flooxs
Revision as of 06:17, 17 November 2010 by Danieljc (talk | contribs) (New page: DevicePackage #Create Structure line x loc=0.0 tag=top spa=0.05 line x loc=0.02 spa=0.05 line x loc=10.0 spa=1.0 line x loc=30.0 spa=5.0 line x loc=40.0 tag=bot spa=5.0 line y loc=0.0...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

DevicePackage

  1. Create Structure

line x loc=0.0 tag=top spa=0.05 line x loc=0.02 spa=0.05 line x loc=10.0 spa=1.0 line x loc=30.0 spa=5.0 line x loc=40.0 tag=bot spa=5.0

line y loc=0.0 tag=left spa=4 line y loc=15.0 spa=0.02 line y loc=30.0 tag=right spa=4 region silicon xlo=top xhi=bot ylo=left yhi=right init

if {1} {

  1. Define Contacts

contact name=VCC silicon xlo=-1.0 xhi=0.0 ylo=0 yhi=110 depth=1 width=1 add contact name=GND silicon xlo=39.0 xhi=110 ylo=0 yhi=110 depth=1 width=1 add

  1. Plotting Options
  2. plot.2d grid
  3. plot.2d bound
  4. plot.2d contact=VCC !cle
  5. plot.2d contact=GND !cle

set T 300 set k 1.38066e-23 set q 1.619e-19 set Vt [expr {$k*$T/$q}] set ni 1.1e10 set esi [expr 11.8 * 8.85418e-14] set eps [expr $esi / $q]

  1. define doping

sel z=1.0e20*(x<=0.2)+1.0e12 name=ND sel z=1.0e18*(x<=1.0)+1.0e16 name=NA sel z=ND-NA name=Doping

  1. make sure models.v4 is in same directory or else define custom path

source models.v4

  1. Setup Solution Variables: Elec, Hole, DevPsi

solution name=Potential nosolve solution add name=DevPsi solve negative damp solution add name=Elec solve !negative solution add name=Hole solve !negative solution add name=Qfn const solve val= "DevPsi + $Vt*log(Hole/$ni)" solution add name=Qfp const solve val= "DevPsi - $Vt*log(Elec/$ni)"

mobility.radiation 300 RG.SRH RG.Auger

set T 300 set k 1.38066e-23 set q 1.619e-19 set Vt [expr {$k*$T/$q}] set ni 1.1e10 set esi [expr 11.8 * 8.85418e-14] set eps [expr $esi / $q] set Emob 200.0 set Hmob 100.0

  1. Poisson, Continuity Equations

set eqnP "$eps * grad(DevPsi) + Doping - Elec + Hole" set eqnE "ddt(Elec) - ($Emob) * $Vt * sgrad(Elec, DevPsi/$Vt) " set eqnH "ddt(Hole) - ($Hmob) * $Vt * sgrad(Hole, -DevPsi/$Vt) "

  1. with Recombination-Generation
  2. set eqnE "ddt(Elec) - ($Emob) * $Vt * sgrad(Elec, DevPsi/$Vt) + R_SRH + R_Auger "
  3. set eqnH "ddt(Hole) - ($Hmob) * $Vt * sgrad(Hole, -DevPsi/$Vt) + R_SRH + R_Auger "

pdbSetDouble Si DevPsi DampValue $Vt pdbSetDouble Si DevPsi Abs.Error 1.0e-9 pdbSetString Si DevPsi Equation $eqnP pdbSetString Si Elec Equation $eqnE pdbSetDouble Si Elec Abs.Error 1.0e-1 pdbSetString Si Hole Equation $eqnH pdbSetDouble Si Hole Abs.Error 1.0e-1

InitialGuess Doping

  1. Until Mixed-Mode implemented, Schotcky contact must be used to estimate load

n.sch.contact Si VCC 2e3 p.sch.contact Si GND 2e3

  1. ohmic.contact VCC
  2. ohmic.contact GND

contact name=VCC voltage supply=0.0 contact name=GND voltage supply=0.0 device

set WinA [CreateGraphWindow] set bias 0.0 for {set bias 0.0} {$bias <= 5.01} {set bias [expr $bias+0.5]} { contact name=VCC supply = $bias device puts "Electron Flux [contact name=VCC sol=Elec flux]" puts "Hole Flux [contact name=VCC sol=Hole flux]" set cur [expr [contact name=VCC sol=Hole flux] - [contact name=VCC sol=Elec flux] ] AddtoLine $WinA I_DC $bias $cur sel z=log10(Elec) plot.1d y.v=15 z.v=0.0 label=Elec !cle sel z=log10(Hole) plot.1d y.v=15 z.v=0.0 label=Hole !cle }

  1. Simple Gaussian to model e-h pairs generated by particle strike

sel z=2.46e19*exp(-(y-15.0)*(y-15.0)/(0.05^2))*(x<=20.0) name=Dist sel z=Elec+Dist+1.0 name=Elec sel z=Hole+Dist+1.0 name=Hole

set Win2 [CreateGraphWindow] device time=1.0e-5 movie = {

   set tim [simGetDouble Device time]
   set cur [expr abs([contact name=VCC sol=Elec flux] - [contact name=VCC sol=Hole flux])]
   AddtoLine $Win2 It_tot $tim $cur

}

}

}