RE: [ng-spice-devel] NEW CVS Commit [URGENT]
> Limiting improperly applied usually makes it worse. If you violate
> Kirchoff's law it is guaranteed to make it worse.
How do you mean "violate Kirchoffs's laws" ? The implementation in
APLAC, if I understand it correctly, finds the node which is changing
the most, and then decides upon a factor to multiply this change by,
in order to keep the change within some limits. Once the value of that
factor has been decided, all the other node CHANGES are multiplied by
the same factor. These new change values are added to the original
node voltages, to create the next guess.
But whether you limit the changes or not, the next guess won't
obey Kirchoffs laws anyway. That is, when you re-evaluate all the
devices at the new voltages, there will be excess currents at each
node. If there wasn't, you'd have found convergance !
> ACS applies all damping at the state variables. The characteristics
> dynamically adjust. There is limiting applied at the gather step,
> primarily as protection against overflow. Then, damping may be
> applied to the state variables after evaluating model equations
> before loading the matrix. The decision of whether to damp, and by
> how much, is made after all models are evaluated and before any are
> loaded. There are several user .options to control it.
Do you mean you "damp" the changes in device terminal currents,
between iterations ?
> If you use any kind of damping, you will need to make the convergence
> testing more rigorous. The method used in Spice is already too prone
> to false indications of convergence
I've sometimes worried about this, but I don't think I've ever seen
it happen in Berkeley spice. It happens in HSPICE all the time.
Obeying Kirchoffs laws is an extra option you have to set !! Still,
if HSPICE wasn't that bad I'd never have got into this in the first
place :-)
I seem to remember noticing, though, that there looked like
there were some places in spice where the device limiting
functions didn't necessarily warn that they'd been used.
There seems to be a flag that says "you can't converge this
time". Certain devices - pn junctions, jfets and mosfets,
have "limiting" functions which limit the currents that
they produce, and/or limit the maximum voltage changes that
they will react to. If these functions actually operate,
they're supposed to set the "can't converge" flag, but since
that is done by the model which calls the function, rather
than the function itself, sometimes it slips through the
net. I can't remember where that was, though :-)
> Convergence in simulation is still a valid research area.
What happened to that Homotopy method, which is mentioned on
our web page ?
Partial thread listing:
- RE: [ng-spice-devel] NEW CVS Commit [URGENT], (continued)