gnucap-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnucap-devel] "transient" branch


From: al davis
Subject: [Gnucap-devel] "transient" branch
Date: Fri, 12 Aug 2016 19:48:35 -0400

What's this branch about?

The main thing is to remove the requirement to specify a step size for
transient analysis.

and if you don't specify a step size, it shows all steps, as if "trace
all".

The step size is a throwback to Spice and older programs.  In the very
early days, the user would need to explicitly specify a step size
because it was all manual.

In early Spice, with text output and ascii-plots, you had to specify
the print interval to something uniform to get a decent plot.  Besides,
the step control didn't work very well.

So that has stuck, but Gnucap's step control is good enough that
usually it doesn't need help, so the specified step size was really
unnecessary, except that the output was strobed at those steps.  So
most users specified step size a lot smaller than it needs to be.  It
was better to say "trace all" to get all of the steps in the output
file,but most people didn't know that.  Usually I specified step size
equal to end time, essentially asking for one step, which let the
automatic control do what it can.

So this version is syntax compatible, but now allows you to specify
just start and stop, without a step.  You can also specify by keyword
"start" "stop" "strobe".

In most cases, it is better not to specify a step size.  Just let
Gnucap's auto step size take care of it.

Some work in progress ......

Testing this more completely, I did discover something that needs to
change that hasn't yet ....  The default values for "chgtol" and
"trtol" are not good ones.  If you want accuracy, try "trtol=1".

"chgtol" is absolute tolerance on charge.  Default value was 10
femto-Amps. (1e-14)  which corresponds to 1 volt on a 10 femtofarad
capacitor. This capacitance is common for strays inside a device model,
so the auto step size was missing these for step control, leading to
steps too large and the dreaded trap-ringing.  I think it should change
to .1fA (1e-16).  If this makes steps too small, and run time too slow,
you should use method=euler or method=gear instead of the default
method=trap.

There is supposed to be a way to set the method device by device,
with intent that setting a device method to euler causes that device
to not be considered for step control, but somehow it got lost.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]