SET - Simple Example: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 38: | Line 38: | ||
#make sure models.v4 is in same directory or else define custom path | #make sure models.v4 is in same directory or else define custom path | ||
source | source modelsv4.doc | ||
#Setup Solution Variables: Elec, Hole, DevPsi | #Setup Solution Variables: Elec, Hole, DevPsi | ||
Line 80: | Line 80: | ||
InitialGuess Doping | InitialGuess Doping | ||
# Until Mixed-Mode implemented, Schotcky contact must be used to estimate load | #Until Mixed-Mode implemented, Schotcky contact must be used to estimate load | ||
n.sch.contact Si VCC 2e3 | n.sch.contact Si VCC 2e3 | ||
p.sch.contact Si GND 2e3 | p.sch.contact Si GND 2e3 | ||
Line 94: | Line 94: | ||
for {set bias 0.0} {$bias <= 5.01} {set bias [expr $bias+0.5]} { | for {set bias 0.0} {$bias <= 5.01} {set bias [expr $bias+0.5]} { | ||
contact name=VCC supply = $bias | 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 | |||
} | } | ||
Latest revision as of 06:29, 17 November 2010
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 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} { #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
#Plotting Options #plot.2d grid #plot.2d bound #plot.2d contact=VCC !cle #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]
#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
#make sure models.v4 is in same directory or else define custom path source modelsv4.doc
#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
#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) " #with Recombination-Generation #set eqnE "ddt(Elec) - ($Emob) * $Vt * sgrad(Elec, DevPsi/$Vt) + R_SRH + R_Auger " #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
#Until Mixed-Mode implemented, Schotcky contact must be used to estimate load n.sch.contact Si VCC 2e3 p.sch.contact Si GND 2e3 #ohmic.contact VCC #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 }
#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 }
}
}