Poisson's Equation: Difference between revisions

From Flooxs
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 1: Line 1:
= Quick Guide =
= Quick Guide =
== 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 6: Line 6:
  #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 ===
  #you must have Na and Nd defined in your doping step
  #you must have Na and Nd defined in your doping step
  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 Oxide ==
==== Poisson's Equation in Oxide ==
  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 21: Line 21:


= A More General Approach =
= A More General Approach =
=== Call this Procedure to Add Poisson's Equation for Any Material ===
  # you must have already defined Er (relative permittivity) in the pdb for the material you call
  # you must have already defined Er (relative permittivity) in the pdb for the material you call
  # you must have defined ep0 and q outside this procedure
  # you must have defined ep0 and q outside this procedure
Line 37: Line 38:
  AddPoisson Oxide
  AddPoisson Oxide


=== Call this Procedure to Add Any Charge to Poisson's Equation ===
  #you must add +Doping to the Poisson Equation in Silicon, but not in Oxide
  #you must add +Doping to the Poisson Equation in Silicon, but not in Oxide
  proc AddCharge {Mat Q} {
  proc AddCharge {Mat Q} {
Line 48: Line 50:
  }
  }
  #Example:
  #Example:
  #AddCharge Silicon Doping;#Doping is defined elsewhere as (Nd-Na)
  AddCharge Silicon Doping;#Doping is defined elsewhere as (Nd-Na)
  #AddCharge Oxide Voplus;#a charged trap species
  AddCharge Oxide Voplus;#a charged trap species

Revision as of 17:34, 28 January 2010

Quick Guide

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

#you must have Na and Nd defined in your doping step
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 Oxide

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

Call this Procedure to Add Poisson's Equation for Any Material

# you must have already defined Er (relative permittivity) in the pdb for the material you call
# you must have defined ep0 and q outside this procedure
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

Call this Procedure to Add Any Charge to Poisson's Equation

#you must add +Doping to the Poisson Equation in Silicon, but not in Oxide
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