From f3891e5af3816165d88f830fbc6e57486f63ba67 Mon Sep 17 00:00:00 2001 From: Francesco Lannutti Date: Mon, 14 Jan 2013 11:37:41 +0100 Subject: [PATCH] Added support for "new_kirchoff" for IND, RES, VSRC devices --- src/spicelib/devices/ind/indload.c | 3 +++ src/spicelib/devices/res/resload.c | 13 ++++++++----- src/spicelib/devices/vsrc/vsrcload.c | 4 ++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/spicelib/devices/ind/indload.c b/src/spicelib/devices/ind/indload.c index 711953f89..878e68463 100644 --- a/src/spicelib/devices/ind/indload.c +++ b/src/spicelib/devices/ind/indload.c @@ -121,6 +121,9 @@ INDload(GENmodel *inModel, CKTcircuit *ckt) *(here->INDibrPosptr) += 1; *(here->INDibrNegptr) -= 1; *(here->INDibrIbrptr) -= req; + + *(ckt->CKTfvk+here->INDposNode) += *(ckt->CKTrhsOld+here->INDbrEq) ; + *(ckt->CKTfvk+here->INDnegNode) -= *(ckt->CKTrhsOld+here->INDbrEq) ; } } return(OK); diff --git a/src/spicelib/devices/res/resload.c b/src/spicelib/devices/res/resload.c index 9b9506f87..84d39e404 100644 --- a/src/spicelib/devices/res/resload.c +++ b/src/spicelib/devices/res/resload.c @@ -29,11 +29,14 @@ RESload(GENmodel *inModel, CKTcircuit *ckt) here->REScurrent = (*(ckt->CKTrhsOld+here->RESposNode) - *(ckt->CKTrhsOld+here->RESnegNode)) * here->RESconduct; - m = (here->RESm); - *(here->RESposPosptr) += m * here->RESconduct; - *(here->RESnegNegptr) += m * here->RESconduct; - *(here->RESposNegptr) -= m * here->RESconduct; - *(here->RESnegPosptr) -= m * here->RESconduct; + *(here->RESposPosptr) += m * here->RESconduct; + *(here->RESnegNegptr) += m * here->RESconduct; + *(here->RESposNegptr) -= m * here->RESconduct; + *(here->RESnegPosptr) -= m * here->RESconduct; + + *(ckt->CKTfvk+here->RESposNode) += here->REScurrent ; + *(ckt->CKTfvk+here->RESnegNode) -= here->REScurrent ; + } } return(OK); diff --git a/src/spicelib/devices/vsrc/vsrcload.c b/src/spicelib/devices/vsrc/vsrcload.c index 60ff58e9d..a3b7b6869 100644 --- a/src/spicelib/devices/vsrc/vsrcload.c +++ b/src/spicelib/devices/vsrc/vsrcload.c @@ -44,6 +44,10 @@ VSRCload(GENmodel *inModel, CKTcircuit *ckt) *(here->VSRCnegIbrptr) -= 1.0 ; *(here->VSRCibrPosptr) += 1.0 ; *(here->VSRCibrNegptr) -= 1.0 ; + + *(ckt->CKTfvk+here->VSRCposNode) += *(ckt->CKTrhsOld+here->VSRCbranch) ; + *(ckt->CKTfvk+here->VSRCnegNode) -= *(ckt->CKTrhsOld+here->VSRCbranch) ; + if( (ckt->CKTmode & (MODEDCOP | MODEDCTRANCURVE)) && here->VSRCdcGiven ) { /* load using DC value */