Schottky Contact
Model
pdbSetDouble Silicon Egcond 0.55 pdbSetDouble Silicon Egval -0.55 pdbSetDouble Silicon Ncond 2.51e19 pdbSetDouble Silicon Nval 2.51e19 proc n.schottky.contact {Contact Rvel} { pdbSetBoolean $Contact Elec Fixed 0 pdbSetBoolean $Contact Hole Fixed 0 pdbSetBoolean $Contact DevPsi Fixed 1 pdbSetBoolean $Contact Elec Flux 1 pdbSetBoolean $Contact Hole Flux 1 pdbSetBoolean $Contact DevPsi Flux 1 pdbSetDouble $Contact Hole Flux.Scale 1.619e-19 pdbSetDouble $Contact Elec Flux.Scale 1.619e-19 pdbSetString $Contact Elec Equation "$Rvel*(Elec-ND)" set Econd "[pdbDelayDouble $Mat Egcond] - DevPsi" set Nc "[pdbDelayDouble $Mat Ncond]" set eqn "$Econd + 0.025 * log( (ND+1.0e-15) / $Nc) + $Contact" pdbSetString $Contact DevPsi Equation $eqn pdbSetString $Contact Hole Equation "$Rvel*(Hole - 1.0e20/ND)" } proc p.schottky.contact {Contact Rvel} { pdbSetBoolean $Contact Elec Fixed 0 pdbSetBoolean $Contact Hole Fixed 0 pdbSetBoolean $Contact DevPsi Fixed 1 pdbSetBoolean $Contact Elec Flux 1 pdbSetBoolean $Contact Hole Flux 1 pdbSetBoolean $Contact DevPsi Flux 1 pdbSetDouble $Contact Hole Flux.Scale 1.619e-19 pdbSetDouble $Contact Elec Flux.Scale 1.619e-19 #charge neutrality for the dominant carrier w/ Recombination velocity pdbSetString $Contact Hole Equation "$Rvel*(Hole-NA)" set Eval "-[pdbDelayDouble $Mat Egval] + DevPsi" set Nv "[pdbDelayDouble $Mat Nval]" set eqn "$Eval + 0.025 * log( (NA+1.0e-15) / $Nv) + $Contact" pdbSetString $Contact DevPsi Equation $eqn pdbSetString $Contact Elec Equation "$Rvel*(Elec - 1.0e20/NA)" }
Notes
Minor bug: The definitions are currently defined causing the opposite bias to give the correct result.