From 587e34821af1f79b65915e96a3c336a25d40b57b Mon Sep 17 00:00:00 2001 From: dwarning Date: Fri, 18 Dec 2009 16:58:05 +0000 Subject: [PATCH] add the ngspice specific copyNodesets approach --- src/spicelib/devices/bsim3/b3set.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/spicelib/devices/bsim3/b3set.c b/src/spicelib/devices/bsim3/b3set.c index c23bbd79c..7bbc74632 100644 --- a/src/spicelib/devices/bsim3/b3set.c +++ b/src/spicelib/devices/bsim3/b3set.c @@ -38,6 +38,8 @@ BSIM3instance *here; int error; CKTnode *tmp; +CKTnode *tmpNode; +IFuid tmpName; /* loop through all the BSIM3 device models */ for( ; model != NULL; model = model->BSIM3nextModel ) @@ -907,6 +909,14 @@ CKTnode *tmp; { error = CKTmkVolt(ckt,&tmp,here->BSIM3name,"drain"); if(error) return(error); here->BSIM3dNodePrime = tmp->number; + if (ckt->CKTcopyNodesets) { + if (CKTinst2Node(ckt,here,1,&tmpNode,&tmpName)==OK) { + if (tmpNode->nsGiven) { + tmp->nodeset=tmpNode->nodeset; + tmp->nsGiven=tmpNode->nsGiven; + } + } + } } else { here->BSIM3dNodePrime = here->BSIM3dNode; @@ -919,6 +929,14 @@ CKTnode *tmp; { error = CKTmkVolt(ckt,&tmp,here->BSIM3name,"source"); if(error) return(error); here->BSIM3sNodePrime = tmp->number; + if (ckt->CKTcopyNodesets) { + if (CKTinst2Node(ckt,here,3,&tmpNode,&tmpName)==OK) { + if (tmpNode->nsGiven) { + tmp->nodeset=tmpNode->nodeset; + tmp->nsGiven=tmpNode->nsGiven; + } + } + } } else { here->BSIM3sNodePrime = here->BSIM3sNode;