Convergence: Difference between revisions
(One intermediate revision by the same user not shown) | |||
Line 21: | Line 21: | ||
should be written so that the ND term exists over the entire structure (this applies for NA as well): | should be written so that the ND term exists over the entire structure (this applies for NA as well): | ||
sel z=1.0e20*(x<3)+ | sel z=1.0e20*(x<3)+1.0 name=ND | ||
=== | === Newton Step Number === | ||
The default number of Newton steps allowed is 20. In '''very rare''' cases the solution will be about to convergence but will run out of steps. To increase the number of Newton steps use: | The default number of Newton steps allowed is 20. In '''very rare''' cases the solution will be about to convergence but will run out of steps. To increase the number of Newton steps use: | ||
Latest revision as of 19:11, 8 December 2008
Device Convergence
DC Bias Increments
If your voltage steps are too large, the solution may not converge.
Continuity Equation Signs
The continuity equations should be of the form:
set eqnE "ddt(Elec) - ($Emob) * $Vt * sgrad(Elec, DevPsi/$Vt)" set eqnH "ddt(Hole) - ($Hmob) * $Vt * sgrad(Hole, -DevPsi/$Vt)"
Grid Spacing
In areas with high e-fields, the grid spacing needs to be much smaller. Examples of this would be the depletion region of a diode or the SiO2/Si channel interface of a MOSFET.
Doping Profile
The doping profile you create needs to be defined for all regions. Be especially careful at boundaries.
If you are using some of the advanced device models, make sure that donor (ND) and acceptors (NA) level terms are defined everywhere in the device. For example, a diode that is 10 microns long in the x-direction starting at x=0.0, the term:
sel z=1.0e20*(x<3) name=ND
should be written so that the ND term exists over the entire structure (this applies for NA as well):
sel z=1.0e20*(x<3)+1.0 name=ND
Newton Step Number
The default number of Newton steps allowed is 20. In very rare cases the solution will be about to convergence but will run out of steps. To increase the number of Newton steps use:
pdbSetDouble Math iterLimit 50
where any number can be used in place of the last term.