From 0b4bcf31f4999901155d1a1135c02ccf8888b9b7 Mon Sep 17 00:00:00 2001 From: rlar Date: Tue, 14 Apr 2015 19:36:02 +0200 Subject: [PATCH] devices/res, bug fix, extend ac-resistance to the pz analysis --- src/spicelib/devices/res/resload.c | 22 +++++++++------------- src/spicelib/devices/res/respzld.c | 17 ++++++++++------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/spicelib/devices/res/resload.c b/src/spicelib/devices/res/resload.c index ff6e5d66f..87c62c7d0 100644 --- a/src/spicelib/devices/res/resload.c +++ b/src/spicelib/devices/res/resload.c @@ -47,7 +47,7 @@ int RESacload(GENmodel *inModel, CKTcircuit *ckt) { RESmodel *model = (RESmodel *)inModel; - double m; + double g; NG_IGNORE(ckt); @@ -59,19 +59,15 @@ RESacload(GENmodel *inModel, CKTcircuit *ckt) for (here = model->RESinstances; here != NULL ; here = here->RESnextInstance) { - m = (here->RESm); + if (here->RESacresGiven) + g = here->RESm * here->RESacConduct; + else + g = here->RESm * here->RESconduct; - if(here->RESacresGiven) { - *(here->RESposPosptr) += m * here->RESacConduct; - *(here->RESnegNegptr) += m * here->RESacConduct; - *(here->RESposNegptr) -= m * here->RESacConduct; - *(here->RESnegPosptr) -= m * here->RESacConduct; - } else { - *(here->RESposPosptr) += m * here->RESconduct; - *(here->RESnegNegptr) += m * here->RESconduct; - *(here->RESposNegptr) -= m * here->RESconduct; - *(here->RESnegPosptr) -= m * here->RESconduct; - } + *(here->RESposPosptr) += g; + *(here->RESnegNegptr) += g; + *(here->RESposNegptr) -= g; + *(here->RESnegPosptr) -= g; } } return(OK); diff --git a/src/spicelib/devices/res/respzld.c b/src/spicelib/devices/res/respzld.c index bee73b83b..dcee4b4f2 100644 --- a/src/spicelib/devices/res/respzld.c +++ b/src/spicelib/devices/res/respzld.c @@ -21,7 +21,7 @@ RESpzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s) { RESmodel *model = (RESmodel *)inModel; RESinstance *here; - double m; + double g; NG_IGNORE(s); NG_IGNORE(ckt); @@ -33,12 +33,15 @@ RESpzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s) for (here = model->RESinstances; here != NULL ; here=here->RESnextInstance) { - m = here->RESm; - - *(here->RESposPosptr) += m * here->RESconduct; - *(here->RESnegNegptr) += m * here->RESconduct; - *(here->RESposNegptr) -= m * here->RESconduct; - *(here->RESnegPosptr) -= m * here->RESconduct; + if (here->RESacresGiven) + g = here->RESm * here->RESacConduct; + else + g = here->RESm * here->RESconduct; + + *(here->RESposPosptr) += g; + *(here->RESnegNegptr) += g; + *(here->RESposNegptr) -= g; + *(here->RESnegPosptr) -= g; } } return(OK);