[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnucap-devel] temperature, precalc
From: |
Felix Salfelder |
Subject: |
[Gnucap-devel] temperature, precalc |
Date: |
Fri, 26 Feb 2016 18:31:02 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Feb 26, 2016 at 12:06:41PM -0500, al davis wrote:
> Do you have some test cases that demonstrate the problem, and that it
> is fixed?
(apologies for promoting gtithub)
https://github.com/felix-salfelder/gnucap/blob/testing-uf/tests/dc_temp.ckt
https://github.com/felix-salfelder/gnucap/blob/testing-uf/tests/dc_temp.ckt.ref
https://github.com/felix-salfelder/gnucap/blob/testing-uf/tests/tran_temp.gc
https://github.com/felix-salfelder/gnucap/blob/testing-uf/tests/tran_temp.ref
> Doing a code walk-through .. I see the problem, but this patch doesn't
> fix it. In some cases, temperature is handled in precalc_first().
lets fix s__init first, then all the devices. i can do some of them,
later.
> I think a better change to the code is to not use the flags, but
> instead move precalc_last() to always happen after setup().
i.e.
try {
setup(cmd);
+ CARD_LIST::card_list.precalc_last();
::status.set_up.stop();
in s__init.cc? perfect. it has been like this in gnucap-uf for years :D
(anyway, just trying to reduce the difference).
void SIM_DATA::init() calls precalc_last. i have never tried to remove
that. maybe i should. (also later).
> It probably should be
> that unless the calculations are needed before expand() and setup(), it
> they should be in precalc_last(). A lot of devices need to change.
yes, that wording makes perfect sense. that's what i did in -uf without
ever putting it down anywhere.
thanks
felix