From d6cb9e0f62195d4bda2d7226933278bc4d35426c Mon Sep 17 00:00:00 2001 From: rlar Date: Sun, 22 May 2011 10:23:30 +0000 Subject: [PATCH] hisim2, add HSM2unsetup() --- ChangeLog | 4 ++ src/spicelib/devices/hisim2/hsm2set.c | 58 +++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/ChangeLog b/ChangeLog index 07b525d82..cbcaf81ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-05-22 Robert Larice + * src/spicelib/devices/hisim2/hsm2set.c : + hisim2, add HSM2unsetup() + 2011-05-22 Robert Larice * src/spicelib/devices/hisim2/hsm2def.h : hisim2, add ngspice specific GENinstance struct slot 'HSM2owner' aka `GENowner' diff --git a/src/spicelib/devices/hisim2/hsm2set.c b/src/spicelib/devices/hisim2/hsm2set.c index 2fa753af2..7050f4b62 100644 --- a/src/spicelib/devices/hisim2/hsm2set.c +++ b/src/spicelib/devices/hisim2/hsm2set.c @@ -772,3 +772,61 @@ if((here->ptr = SMPmakeElt(matrix,here->first,here->second))==(double *)NULL){\ } return(OK); } + + +int +HSM2unsetup( + GENmodel *inModel, + CKTcircuit *ckt) +{ +#ifndef HAS_BATCHSIM + HSM2model *model; + HSM2instance *here; + + for (model = (HSM2model *)inModel; model != NULL; + model = model->HSM2nextModel) + { + for (here = model->HSM2instances; here != NULL; + here=here->HSM2nextInstance) + { + if (here->HSM2dNodePrime + && here->HSM2dNodePrime != here->HSM2dNode) + { + CKTdltNNum(ckt, here->HSM2dNodePrime); + here->HSM2dNodePrime = 0; + } + if (here->HSM2sNodePrime + && here->HSM2sNodePrime != here->HSM2sNode) + { + CKTdltNNum(ckt, here->HSM2sNodePrime); + here->HSM2sNodePrime = 0; + } + if (here->HSM2gNodePrime + && here->HSM2gNodePrime != here->HSM2gNode) + { + CKTdltNNum(ckt, here->HSM2gNodePrime); + here->HSM2gNodePrime = 0; + } + if (here->HSM2bNodePrime + && here->HSM2bNodePrime != here->HSM2bNode) + { + CKTdltNNum(ckt, here->HSM2bNodePrime); + here->HSM2bNodePrime = 0; + } + if (here->HSM2dbNode + && here->HSM2dbNode != here->HSM2bNode) + { + CKTdltNNum(ckt, here->HSM2dbNode); + here->HSM2dbNode = 0; + } + if (here->HSM2sbNode + && here->HSM2sbNode != here->HSM2bNode) + { + CKTdltNNum(ckt, here->HSM2sbNode); + here->HSM2sbNode = 0; + } + } + } +#endif + return OK; +}