When used for the first time, for each equation the appropriate quantities are automatically created and initialized with proper initial values. These initial values are either taken from a previous simulation or are calculated to give reasonable defaults as follows.
= - - - | (D1) | |
= + | (D2) | |
= - | (D3) | |
= q^{ . }N_{C}^{ . }exp - | (D4) | |
= q^{ . }N_{V}^{ . }exp | (D5) | |
= - ^{ . } + + | (D6) | |
= - ^{ . } + + | (D7) | |
= - | (D8) |
Currently two different versions of
E_{div} exist depending on the
current model used ((3.5) or (3.7)), namely
E_{div}^{DD} and
E_{div}^{HD}, vice-versa for
holes. The groups resulting from the equation assembly models given above are
listed in Table D.1.
Group name | Equation assembly models |
electrons | E_{div}^{DD}, P_{n} |
electronsTrans | E_{t} |
electronsQFL | P_{n}^{QFL} |
electronsHD | E_{div}^{HD}, P_{n}, S_{n, div}, S_{n, J}, S_{n,} |
electronsHDTrans | E_{t}, S_{n, t} |
holes | H_{div}^{DD}, P_{h} |
holesTrans | H_{t} |
holesQFL | P_{p}^{QFL} |
holesHD | H_{div}^{HD}, P_{p}, S_{p, div}, S_{p, J}, S_{p,} |
holesHDTrans | H_{t}, S_{p, t} |
potential | P_{poiss}, P_{C} |
<recombination> | R,, P_{CTrap}, S_{n, R}, S_{p, R} |
selfHeating | T_{div}, T_{H} |
selfHeatingTrans | T_{t} |
Iterate { Scheme { models = "potential,potentialInt"; ... } }
If one is also interested in the electron concentration, e.g., in the channel of a HEMT, the electron group has to be added:
Iterate { Scheme { models = "potential,potentialInt,electrons,electronsInt"; ... } }
If the derivative of the electron concentration with respect to time is relevant, e.g., for a transient simulation, the electronTrans group has to be added:
Iterate { Scheme { models = "potential,potentialInt," "electrons,electronsInt,electronsTrans"; ... } }
Group Name | Created Quantity Classes |
electrons | Potential |
ElectronConcentration | |
electronsTrans | ElectronConcentration |
electronsQFL | Potential |
ElectronConcentration | |
electronsHD | Potential |
ElectronConcentration | |
ElectronTemperature | |
electronsHDTrans | ElectronConcentration |
holes | Potential |
HoleConcentration | |
holesTrans | HoleConcentration |
holesQFL | Potential |
HoleConcentration | |
holesHD | Potential |
HoleConcentration | |
HoleTemperature | |
holesHDTrans | HoleConcentration |
potential | Potential |
<recombination> | Potential |
ElectronConcentration | |
HoleConcentration | |
selfHeating | LatticeTemperature |
selfHeatingTrans | LatticeTemperature |
potentialInt | Potential on both segments |
electronsInt | Potential on both segments |
ElectronConcentration on both segments | |
electronsHDInt | Potential on both segments |
ElectronConcentration on both segments | |
ElectronTemperature on both segments | |
terminal | ContactVoltage |
ContactCurrent | |
ContactCharge | |
ContactTemperature | |
BoundaryCurrent | |
BoundaryElectronCurrent | |
BoundaryHoleCurrent | |
BoundaryConductionCurrent | |
BoundaryDisplacementCurrent |
As pointed out above, each group automatically creates the quantities which form the unknowns of the equation system. Each quantity belongs to a so-called quantity class, e.g., the potentials inside all insulator, conductor, and semiconductor segments belong to the quantity class Potential. Table D.2 lists the quantity classes and the model groups which create them. It is important to note that each quantity is created and initialized when it is first requested by one of the model groups. The mere creation of a quantity does not imply that there is a controlling equation available. In case the user registers only the electrons group on one segment, the quantities and n are created. The potential is initialized to the built-in potential whereas the electron concentration n is computed using a charge-neutrality assumption. As there has been no Poisson equation requested (group Potential has not been used), the electron continuity equation will be solved stand-alone.
The same is true for interface models. When using for instance the HD interface group, carrier temperature quantities on both sides of the interface are created and are initialized to the lattice temperature. However, by simply creating these quantities the interface model does not make any assumptions about the transport models used on either side. It is possible to use a DD model on one side and a HD model on the other side which implies an equilibrium boundary condition for the carrier temperatures as the carrier temperatures are set equal to the lattice temperature in this case.
The terminal group needs some further attention. It creates an abundance of quantities which might seem unnecessary at a first glance. The quantities whose names start with Contact are the terminal quantities which are used to formulate the boundary conditions. The quantities with names beginning with Boundary are supplementary quantities which represent the current components and are used to simplify calculation of the contact current.
For mixed-mode simulations the basic semiconductor equations are augmented by the circuit equations resulting from the modified nodal approach (MNA) and the MNA equations for the thermal equivalent circuit. It is worthwhile to note that for the KCL equation the node voltage vector is split into two quantity classes namely node voltages (NodeVoltage) and fixed node voltages (FixNodeVoltage), respectively. Since each quantity class can be marked separately for the solving process, this separation has the major advantage that the fixed node voltage class can be arbitrarily solved or not. One way to utilize this feature is to emulate the behavior of typical circuit simulators like SPICE. To aid convergence, SPICE allows the user to set some critical node voltages to a constant value, iterate until convergence, release the critical node voltages, and continue iteration until final convergence. This has been implemented in the MixedDD and MixedHD iteration schemes.
Schemes { MixedDD { DDPre : DDBlock { ignoreQuantities = "FixNodeVoltage"; } DDPre : DDBlock; } } Iterate { Scheme : ~Schemes.MixedDD; }
However, due to the generality of this concept, it is possible to design own iteration schemes with a different behavior. One useful possibility might be to fix some node voltages only at distinct time points to their initial or last value (which is internally the same).