next up previous
Next: External circuit elements Up: Solving the electrical equations Previous: Solving the electrical equations

Numerical clamping

Newton's method will always give an update vector in the direction of the solution. However, often the update vector is non-optimal for convergence. Very often the update is too large and will jump over the solution, leading the solver far away from the desired answer. More often than not if this happens the solver will crash, as it will find it's self in an unphysical space. There have been many method proposed, to help Newton's take an optimal step towards the solution. Once is back tracking (see numerical recipes in C) which in general has a computational overhead to implement, and another faster possibility is numerical clamping. In gpvdm, we use clamping, updates to the solution variables are clamped by the following scheme.

$\displaystyle \Delta \zeta_n=\frac{\Delta \zeta_n}{1.0+\vert\frac{q \Delta \zeta_n}{c300\kappa}\vert}$ (52)

$\displaystyle \Delta \zeta_{\phi}=\frac{\Delta \zeta_{\phi}}{1.0+\vert\frac{q \Delta \zeta_{\phi}}{c300\kappa}\vert}$ (53)

$\displaystyle \Delta \zeta_{n}=\frac{\Delta \zeta_{n}}{1.0+\vert\frac{q \Delta \zeta_{n}}{c300\kappa}\vert}$ (54)

$\displaystyle \Delta \zeta_{p}=\frac{\Delta \zeta_{p}}{1.0+\vert\frac{q \Delta \zeta_{p}}{c300\kappa}\vert}$ (55)

$\displaystyle \Delta \zeta_{nt}=\frac{\Delta \zeta_{nt}}{1.0+\vert\frac{q \Delta \zeta_{nt}}{c300\kappa}\vert}$ (56)

$\displaystyle \Delta \zeta_{pt}=\frac{\Delta \zeta_{pt}}{1.0+\vert\frac{q \Delta \zeta_{pt}}{c300\kappa}\vert}$ (57)

The variable $ c$ is defined in the math.inp input file.


next up previous
Next: External circuit elements Up: Solving the electrical equations Previous: Solving the electrical equations
rod 2017-12-08