Re: [ng-spice-devel] convergence


To ng-spice-devel@ieee.ing.uniroma1.it
From Al Davis <aldavis@ieee.org>
Date Tue, 1 May 2001 14:37:49 -0700
Delivered-To mailing list ng-spice-devel@ieee.ing.uniroma1.it
In-Reply-To <15087.4373.92293.407021@pearls >
Mailing-List contact ng-spice-devel-help@ieee.ing.uniroma1.it; run by ezmlm
References <CF654D964573D311A1CA0090278A36FF4CBE4C@EDIN_EXM1 > <01050102085802.26584@hobbes > <15087.4373.92293.407021@pearls >
Reply-To ng-spice-devel@ieee.ing.uniroma1.it

On Tue, 01 May 2001, Steve Hamm wrote:
> Uh, we have a different definition of "consistent". 

> When I mention consistent, I'm meaning that when the iterations
> stop, I want some solution x, such that F(x) is close to zero, and
> F and J have been evaluated at x so that conductances,
> capacitances, currents, etc. have been evaluated at x.

Define it however you want.  It is all an approximation anyway.  You 
even say so in "F(x) is CLOSE TO zero".

What is important is that errors are bounded, with reasonable bounds, 
and we have some confidence that the bounds are meaningful.

With either method, if you stop the iteration prematurely you get a 
bad solution.  If it hasn't converged to a reasonable tolerance it 
doesn't matter whether it is "consistent" or not.  It is bad anyway.

If the convergence checking is adequate, the last two iterations are 
sufficiently close that the error is bounded.  You can mix and match 
and the error will still be bounded.

Strict attention to this "consistency" detail may have the benefit of 
being able to accept a solution with one less iteration, but more 
likely it distracts us from more significant issues.

When you throw in bypass, trace algorithms, latency exploitation, 
multi-rate, ....  you throw out any notion of exactness in terms of 
"consistency", but with proper tolerances the error is bounded, and 
can be bounded to an arbitrary tolerance.

If you don't throw in bypass, trace algorithms, latency exploitation, 
multi-rate, ....  you get a slow simulation that is only useful for 
small circuits.

I did get some benefit from this, in the form of ideas for 
maintaining some notion of "consistency" when limiting and damping is 
applied.

By the way ...  ACS doesn't even guarantee that all components of 
F(x) are solved at the same iteration, or that all components of J(x) 
are solved at the same iteration, or even that all components of x 
are solved at the same iteration or by the same method.  As long as 
the errors are bounded, to a reasonable bound, it is ok.

Partial thread listing: