From cb6fe6389c8b9c8bb3fb00bab79768345345c93f Mon Sep 17 00:00:00 2001 From: h_vogt Date: Thu, 9 May 2013 10:28:38 +0200 Subject: [PATCH] indload.c, indacld.c: multiplier m added --- src/spicelib/devices/ind/indacld.c | 5 ++++- src/spicelib/devices/ind/indload.c | 12 +++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/spicelib/devices/ind/indacld.c b/src/spicelib/devices/ind/indacld.c index 5ab7f769f..6a910d4fd 100644 --- a/src/spicelib/devices/ind/indacld.c +++ b/src/spicelib/devices/ind/indacld.c @@ -17,13 +17,16 @@ INDacLoad(GENmodel *inModel, CKTcircuit *ckt) { INDmodel *model = (INDmodel*)inModel; double val; + double m; INDinstance *here; for( ; model != NULL; model = model->INDnextModel) { for( here = model->INDinstances;here != NULL; here = here->INDnextInstance) { - val = ckt->CKTomega * here->INDinduct; + m = (here->INDm); + + val = ckt->CKTomega * here->INDinduct / m; *(here->INDposIbrptr) += 1; *(here->INDnegIbrptr) -= 1; diff --git a/src/spicelib/devices/ind/indload.c b/src/spicelib/devices/ind/indload.c index bdc445202..711953f89 100644 --- a/src/spicelib/devices/ind/indload.c +++ b/src/spicelib/devices/ind/indload.c @@ -21,6 +21,7 @@ INDload(GENmodel *inModel, CKTcircuit *ckt) INDinstance *here; double veq; double req; + double m; int error; #ifdef MUTUAL @@ -37,12 +38,14 @@ INDload(GENmodel *inModel, CKTcircuit *ckt) for (here = model->INDinstances; here != NULL ; here=here->INDnextInstance) { + m = (here->INDm); + if(!(ckt->CKTmode & (MODEDC|MODEINITPRED))) { if(ckt->CKTmode & MODEUIC && ckt->CKTmode & MODEINITTRAN) { - *(ckt->CKTstate0 + here->INDflux) = here->INDinduct * + *(ckt->CKTstate0 + here->INDflux) = here->INDinduct / m * here->INDinitCond; } else { - *(ckt->CKTstate0 + here->INDflux) = here->INDinduct * + *(ckt->CKTstate0 + here->INDflux) = here->INDinduct / m * *(ckt->CKTrhsOld + here->INDbrEq); } } @@ -86,6 +89,7 @@ INDload(GENmodel *inModel, CKTcircuit *ckt) req = 0.0; veq = 0.0; } else { + double newmind; #ifndef PREDICTOR if(ckt->CKTmode & MODEINITPRED) { *(ckt->CKTstate0 + here->INDflux) = @@ -99,7 +103,9 @@ INDload(GENmodel *inModel, CKTcircuit *ckt) #ifndef PREDICTOR } #endif /*PREDICTOR*/ - error=NIintegrate(ckt,&req,&veq,here->INDinduct,here->INDflux); + m = (here->INDm); + newmind = here->INDinduct/m; + error=NIintegrate(ckt,&req,&veq,newmind,here->INDflux); if(error) return(error); }