Evaluate '.options cshunt=xx' earlier to allow the following:
Set the option by calling INPpas4() during parsing the circuit,
before .ic is set.
Ckt and Task cshunt are still set, but their values are available
only too late for INPpas4(), but may be used by command 'option'
(w/o parameters) for assessing the options and their values.
for initial evaluation. .nodeset or .ic have never set CKTrhsOld,
so initalization for B source failed.
We still have to check why .nodeset and .ic are set two times,
first in CKTic(), then in CKTload()!
The old behavior, stepping diagmin, is re-obtained by adding flag
set 'dyngmin'
to .spiceinit or spinit
This flag may also be set within a .control section (e.g. to
compare results)
c86f6265d ("relieve the step size limitation..." 2019-02-02)
to 'nostepsizelimit', thus keeping the limit, if not set.
Maximum step size is limited to tstep given by .tran tstep tstop <tstart <tmax>>.
May be overridden by giving 'set nostepsizelimit' to (tstop - tstart)/50.
Both may be overriden by setting tmax.
However not all examples will do without, thus the variable 'stepsizelimit'
is set in spinit. Unset it in .spiceinit to get the new behavior.
Of course then you might add the limit by setting TMAX in the tran command.
currently each and every device specific instance and model structure
duplicates the memory layout of a struct GENmodel / GENinstance
further the first structure elements behind a GENinstance header
are reinterpreted as a sort of a generic "node" array.
This business is very error prone, and makes it difficult to
extend struct GENmodel / struct GENinstance.
This patch makes this business much more bearable.
loop over DEVmodDelete() and DEVdelete() in CKTdestroy()
instead of doing this business in the DEVdestroy() functions.
As a consequence, most DEVdestroy() functions
collapse completely.