Poisson's Equation: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
= Quick Guide = | = Quick Guide = | ||
=== Set error tolerances in the parameter database (pdb) === | ==== Set error tolerances in the parameter database (pdb) ==== | ||
pdbSetDouble Silicon DevPsi DampValue 0.025;#0.025 is Vt, or kt/q | pdbSetDouble Silicon DevPsi DampValue 0.025;#0.025 is Vt, or kt/q | ||
pdbSetDouble Oxide DevPsi DampValue 0.025 | pdbSetDouble Oxide DevPsi DampValue 0.025 | ||
=== Use Tcl to define the constants you will use === | ==== Use Tcl to define the constants you will use ==== | ||
set ep0 8.85418e-14;#F/cm - vacuum permittivity - this is SI units w/ cm | set ep0 8.85418e-14;#F/cm - vacuum permittivity - this is SI units w/ cm | ||
set eps_Si 11.8;# relative permittivity | set eps_Si 11.8;# relative permittivity | ||
Line 10: | Line 10: | ||
#assume Nd and Na are defined elsewhere (or set them here and use the $) | #assume Nd and Na are defined elsewhere (or set them here and use the $) | ||
=== Poisson's equation for silicon === | ==== Poisson's equation for silicon ==== | ||
set eqnP "($ep0*$eps_Si/$q)*grad(DevPsi) - Elec + Hole - Na + Nd";#define a local string | set eqnP "($ep0*$eps_Si/$q)*grad(DevPsi) - Elec + Hole - Na + Nd";#define a local string | ||
pdbSetString Silicon DevPsi Equation "$eqnP";# use $eqnP=0 to solve for DevPsi in the Silicon | pdbSetString Silicon DevPsi Equation "$eqnP";# use $eqnP=0 to solve for DevPsi in the Silicon | ||
=== Poisson's equation in oxides === | ==== Poisson's equation in oxides ==== | ||
set ep0 8.85418e-14;#F/cm - vacuum permittivity - this is SI units w/ cm | set ep0 8.85418e-14;#F/cm - vacuum permittivity - this is SI units w/ cm | ||
set eps_ox 3.9;# relative permittivity | set eps_ox 3.9;# relative permittivity | ||
Line 24: | Line 24: | ||
= A More General Approach = | = A More General Approach = | ||
You can add these procedures to your code, and them call them for each material, and each charged species. You must | You can add these procedures to your code, and them call them for each material, and each charged species. | ||
==== Define Constants ==== | |||
You must store the relative permittivity of each material you are adding in the parameter database, and you must define elementary charge q, and vacuum permittivity ep0 outside these procedures. | |||
pdbSetDouble Silicon DevPsi Er 11.8 | pdbSetDouble Silicon DevPsi Er 11.8 | ||
pdbSetDouble Oxide DevPsi Er 3.9 | pdbSetDouble Oxide DevPsi Er 3.9 | ||
set q 1.60218e-19;#C - elementary unit of charge - this is SI units | set q 1.60218e-19;#C - elementary unit of charge - this is SI units | ||
set ep0 8.85418e-14;#F/cm - vacuum permittivity - for Poisson - this is SI units w/ cm | set ep0 8.85418e-14;#F/cm - vacuum permittivity - for Poisson - this is SI units w/ cm | ||
=== | ==== proc AddPoisson ==== | ||
If you have done the above, call this procedure to add Poisson's equation for any material. | |||
proc AddPoisson {Mat} { | proc AddPoisson {Mat} { | ||
global ep0 q | global ep0 q | ||
Line 49: | Line 50: | ||
AddPoisson Oxide | AddPoisson Oxide | ||
=== Call this procedure to add any charge to poisson's equation | ==== proc AddCharge ==== | ||
Call this procedure to add any charge to poisson's equation. | |||
proc AddCharge {Mat Q} { | proc AddCharge {Mat Q} { | ||
if {[pdbIsAvailable $Mat DevPsi Equation]} { | if {[pdbIsAvailable $Mat DevPsi Equation]} { |
Latest revision as of 20:12, 17 August 2010
Quick Guide
Set error tolerances in the parameter database (pdb)
pdbSetDouble Silicon DevPsi DampValue 0.025;#0.025 is Vt, or kt/q pdbSetDouble Oxide DevPsi DampValue 0.025
Use Tcl to define the constants you will use
set ep0 8.85418e-14;#F/cm - vacuum permittivity - this is SI units w/ cm set eps_Si 11.8;# relative permittivity set q 1.60218e-19;#C - elementary unit of charge - this is SI units #assume Nd and Na are defined elsewhere (or set them here and use the $)
Poisson's equation for silicon
set eqnP "($ep0*$eps_Si/$q)*grad(DevPsi) - Elec + Hole - Na + Nd";#define a local string pdbSetString Silicon DevPsi Equation "$eqnP";# use $eqnP=0 to solve for DevPsi in the Silicon
Poisson's equation in oxides
set ep0 8.85418e-14;#F/cm - vacuum permittivity - this is SI units w/ cm set eps_ox 3.9;# relative permittivity #you can add ionized dopants to your oxide, but eqnPox equation ignores them, so they have no effect set eqnPox "$ep0*$eps_ox*grad(DevPsi) - Elec + Hole";#define a local string pdbSetString Oxide DevPsi Equation "$eqnPox";# use $eqnPox=0 to solve for DevPsi in the Oxide
A More General Approach
You can add these procedures to your code, and them call them for each material, and each charged species.
Define Constants
You must store the relative permittivity of each material you are adding in the parameter database, and you must define elementary charge q, and vacuum permittivity ep0 outside these procedures.
pdbSetDouble Silicon DevPsi Er 11.8 pdbSetDouble Oxide DevPsi Er 3.9 set q 1.60218e-19;#C - elementary unit of charge - this is SI units set ep0 8.85418e-14;#F/cm - vacuum permittivity - for Poisson - this is SI units w/ cm
proc AddPoisson
If you have done the above, call this procedure to add Poisson's equation for any material.
proc AddPoisson {Mat} { global ep0 q #pdbSetDouble $Mat DevPsi DampValue 0.00431;# lowest Vt (T=50K) pdbSetDouble $Mat DevPsi DampValue 0.025 set Er [pdbGetDouble $Mat DevPsi Er] set eps [expr {$Er*$ep0/$q}] set eqnP "$eps*grad(DevPsi)"; #Poisson's equation, we'll add the charge terms later as we go along puts "Adding Poisson Equation in $Mat: $eqnP" pdbSetString $Mat DevPsi Equation "$eqnP" } #Example: AddPoisson Silicon AddPoisson Oxide
proc AddCharge
Call this procedure to add any charge to poisson's equation.
proc AddCharge {Mat Q} { if {[pdbIsAvailable $Mat DevPsi Equation]} { set eqnP [pdbGetString $Mat DevPsi Equation] set eqnP [append eqnP "+($Q)"] pdbSetString $Mat DevPsi Equation $eqnP puts "Adding ($Q) to Poisson Eqn in $Mat: $eqnP" } else {puts "you don't have DevPsi in the $Mat!"} } #Example: AddCharge Silicon Doping;#Doping is defined elsewhere as (Nd-Na) AddCharge Oxide Voplus;#a charged trap species