From 09c8614cb2436480010ec5cd826525a81466a8f7 Mon Sep 17 00:00:00 2001 From: rlar Date: Thu, 3 Aug 2017 18:58:51 +0200 Subject: [PATCH] port connected --- .../adms/admst/ngspiceMODULEdefs.h.xml | 10 ++++++- .../admst/ngspiceMODULEguesstopology.c.xml | 6 ++--- .../adms/admst/ngspiceMODULEsetup.c.xml | 26 +++++++++++-------- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/spicelib/devices/adms/admst/ngspiceMODULEdefs.h.xml b/src/spicelib/devices/adms/admst/ngspiceMODULEdefs.h.xml index cfe2351f1..2cafc1b4c 100644 --- a/src/spicelib/devices/adms/admst/ngspiceMODULEdefs.h.xml +++ b/src/spicelib/devices/adms/admst/ngspiceMODULEdefs.h.xml @@ -200,7 +200,15 @@ typedef struct s$(module)instance { - + + + + + + + + + /* instance parameters */ diff --git a/src/spicelib/devices/adms/admst/ngspiceMODULEguesstopology.c.xml b/src/spicelib/devices/adms/admst/ngspiceMODULEguesstopology.c.xml index 765bb84c4..ecfcc0641 100644 --- a/src/spicelib/devices/adms/admst/ngspiceMODULEguesstopology.c.xml +++ b/src/spicelib/devices/adms/admst/ngspiceMODULEguesstopology.c.xml @@ -183,12 +183,12 @@ + format="here->%(lhs/branch/nnode/name)Node = here->%(lhs/branch/pnode/name)Node; /* nnode collapsed */\n here->%(lhs/branch/nnode/name)Node_mine = 0;\n"/> + format="here->%(lhs/branch/pnode/name)Node = here->%(lhs/branch/nnode/name)Node; /* pnode collapsed */\n here->%(lhs/branch/pnode/name)Node_mine = 0;\n"/> - + diff --git a/src/spicelib/devices/adms/admst/ngspiceMODULEsetup.c.xml b/src/spicelib/devices/adms/admst/ngspiceMODULEsetup.c.xml index 5f3f4558b..7edba1a53 100644 --- a/src/spicelib/devices/adms/admst/ngspiceMODULEsetup.c.xml +++ b/src/spicelib/devices/adms/admst/ngspiceMODULEsetup.c.xml @@ -114,6 +114,7 @@ int $(module)setup (SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int * here->%sNode = -1; + here->%(name)Node_mine = 0; } @@ -144,13 +145,12 @@ int $(module)setup (SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int * - - - if(here->%sNode == -1) + if(here->%(name)Node == -1) { error=CKTmkVolt(ckt,&tmp,here->$(module)name,"X%(name)X"); if(error) return(error); - here->%sNode = tmp->number; + here->%(name)Node = tmp->number; + here->%(name)Node_mine = 1; } } @@ -185,16 +185,20 @@ $(module)unsetup(GENmodel *inModel, CKTcircuit *ckt) for ( here = $(module)instances(model) ;here != NULL ; here = $(module)nextInstance(here) ) { - if (!here->%(name)Node_connected && here->%(name)Node >= 0) { - CKTdltNNum(ckt, here->%(name)Node); - here->%(name)Node = -1; + if (here->%(name)Node_mine) { + if (here->%(name)Node > 0) + CKTdltNNum(ckt, here->%(name)Node); + here->%(name)Node_mine = 0; } + if (!here->%(name)Node_connected) + here->%(name)Node = -1; - if (here->%(name)Node > 0) { - CKTdltNNum(ckt, here->%(name)Node); - here->%(name)Node = -1; - } + if (here->%(name)Node_mine) + if (here->%(name)Node > 0) + CKTdltNNum(ckt, here->%(name)Node); + here->%(name)Node = -1; + here->%(name)Node_mine = 0; } }