no message

This commit is contained in:
dwarning 2011-03-04 17:34:21 +00:00
parent 34644f9671
commit 0a14caeb11
4 changed files with 68 additions and 89 deletions

View File

@ -33,17 +33,17 @@ BJTacLoad(GENmodel *inModel, CKTcircuit *ckt)
double xcpi;
double xcmu;
double xcbx;
double xccs;
double xcsub;
double xcmcb;
double m;
for( ; model != NULL; model = model->BJTnextModel) {
for( here = model->BJTinstances; here!= NULL;
for( here = model->BJTinstances; here!= NULL;
here = here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
if (here->BJTowner != ARCHme) continue;
m = here->BJTm;
gcpr=here->BJTtcollectorConduct * here->BJTarea;
gepr=here->BJTtemitterConduct * here->BJTarea;
gpi= *(ckt->CKTstate0 + here->BJTgpi);
@ -62,14 +62,15 @@ BJTacLoad(GENmodel *inModel, CKTcircuit *ckt)
xcpi= *(ckt->CKTstate0 + here->BJTcqbe) * ckt->CKTomega;
xcmu= *(ckt->CKTstate0 + here->BJTcqbc) * ckt->CKTomega;
xcbx= *(ckt->CKTstate0 + here->BJTcqbx) * ckt->CKTomega;
xccs= *(ckt->CKTstate0 + here->BJTcqcs) * ckt->CKTomega;
xcsub= *(ckt->CKTstate0 + here->BJTcqsub) * ckt->CKTomega;
xcmcb= *(ckt->CKTstate0 + here->BJTcexbc) * ckt->CKTomega;
*(here->BJTcolColPtr) += m * (gcpr);
*(here->BJTbaseBasePtr) += m * (gx);
*(here->BJTbaseBasePtr + 1) += m * (xcbx);
*(here->BJTemitEmitPtr) += m * (gepr);
*(here->BJTcolPrimeColPrimePtr) += m * (gmu+go+gcpr);
*(here->BJTcolPrimeColPrimePtr + 1) += m * (xcmu+xccs+xcbx);
*(here->BJTcolPrimeColPrimePtr + 1) += m * (xcmu+xcbx);
*(here->BJTsubstConSubstConPtr + 1) += m * (xcsub);
*(here->BJTbasePrimeBasePrimePtr) += m * (gx+gpi+gmu);
*(here->BJTbasePrimeBasePrimePtr + 1) += m * (xcpi+xcmu+xcmcb);
*(here->BJTemitPrimeEmitPrimePtr) += m * (gpi+gepr+gm+go);
@ -89,12 +90,12 @@ BJTacLoad(GENmodel *inModel, CKTcircuit *ckt)
*(here->BJTbasePrimeEmitPrimePtr + 1) += m * (-xcpi);
*(here->BJTemitPrimeEmitPtr) += m * (-gepr);
*(here->BJTemitPrimeColPrimePtr) += m * (-go);
*(here->BJTemitPrimeColPrimePtr + 1) += m * (xcmcb);
*(here->BJTemitPrimeColPrimePtr + 1) += m * (xcmcb);
*(here->BJTemitPrimeBasePrimePtr) += m * (-gpi-gm);
*(here->BJTemitPrimeBasePrimePtr + 1) += m * (-xcpi-xgm-xcmcb);
*(here->BJTsubstSubstPtr + 1) += m * (xccs);
*(here->BJTcolPrimeSubstPtr + 1) += m * (-xccs);
*(here->BJTsubstColPrimePtr + 1) += m * (-xccs);
*(here->BJTsubstSubstPtr + 1) += m * (xcsub);
*(here->BJTsubstConSubstPtr + 1) += m * (-xcsub);
*(here->BJTsubstSubstConPtr + 1) += m * (-xcsub);
*(here->BJTbaseColPrimePtr + 1) += m * (-xcbx);
*(here->BJTcolPrimeBasePtr + 1) += m * (-xcbx);
}

View File

@ -23,21 +23,21 @@ BJTdisto(int mode, GENmodel *genmodel, CKTcircuit *ckt)
DISTOAN* job = (DISTOAN*) ckt->CKTcurJob;
double td;
DpassStr pass;
double r1h1x = 0, i1h1x = 0;
double r1h1y = 0, i1h1y = 0;
double r1h1z = 0, i1h1z = 0;
double r1h2x = 0, i1h2x = 0;
double r1h2y = 0, i1h2y = 0;
double r1h2z = 0, i1h2z = 0;
double r1hm2x = 0, i1hm2x = 0;
double r1hm2y = 0, i1hm2y = 0;
double r1hm2z = 0, i1hm2z = 0;
double r2h11x = 0, i2h11x = 0;
double r2h11y = 0, i2h11y = 0;
double r2h11z = 0, i2h11z = 0;
double r2h1m2x = 0, i2h1m2x = 0;
double r2h1m2y = 0, i2h1m2y = 0;
double r2h1m2z = 0, i2h1m2z = 0;
double r1h1x = 0.0, i1h1x = 0.0;
double r1h1y = 0.0, i1h1y = 0.0;
double r1h1z = 0.0, i1h1z = 0.0;
double r1h2x = 0.0, i1h2x = 0.0;
double r1h2y = 0.0, i1h2y = 0.0;
double r1h2z = 0.0, i1h2z = 0.0;
double r1hm2x = 0.0, i1hm2x = 0.0;
double r1hm2y = 0.0, i1hm2y = 0.0;
double r1hm2z = 0.0, i1hm2z = 0.0;
double r2h11x = 0.0, i2h11x = 0.0;
double r2h11y = 0.0, i2h11y = 0.0;
double r2h11z = 0.0, i2h11z = 0.0;
double r2h1m2x = 0.0, i2h1m2x = 0.0;
double r2h1m2y = 0.0, i2h1m2y = 0.0;
double r2h1m2z = 0.0, i2h1m2z = 0.0;
double temp, itemp;
BJTinstance *here;
#ifdef DISTODEBUG

View File

@ -29,14 +29,14 @@ BJTpzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s)
double xcpi;
double xcmu;
double xcbx;
double xccs;
double xcsub;
double xcmcb;
double m;
for( ; model != NULL; model = model->BJTnextModel) {
for( here = model->BJTinstances; here!= NULL;
for( here = model->BJTinstances; here!= NULL;
here = here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
if (here->BJTowner != ARCHme) continue;
m = here->BJTm;
@ -51,61 +51,39 @@ BJTpzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s)
xcpi= *(ckt->CKTstate0 + here->BJTcqbe);
xcmu= *(ckt->CKTstate0 + here->BJTcqbc);
xcbx= *(ckt->CKTstate0 + here->BJTcqbx);
xccs= *(ckt->CKTstate0 + here->BJTcqcs);
xcsub= *(ckt->CKTstate0 + here->BJTcqsub);
xcmcb= *(ckt->CKTstate0 + here->BJTcexbc);
*(here->BJTcolColPtr) += m * (gcpr);
*(here->BJTcolColPtr) += m * (gcpr);
*(here->BJTbaseBasePtr) += m * ((gx) + (xcbx) * (s->real));
*(here->BJTbaseBasePtr + 1) += m * ((xcbx) * (s->imag));
*(here->BJTemitEmitPtr) += m * (gepr);
*(here->BJTcolPrimeColPrimePtr) += m * ((gmu+go+gcpr)
+ (xcmu+xccs+xcbx) * (s->real));
*(here->BJTcolPrimeColPrimePtr + 1) += m * ((xcmu+xccs+xcbx)
* (s->imag));
*(here->BJTbasePrimeBasePrimePtr) += m * ((gx+gpi+gmu)
+ (xcpi+xcmu+xcmcb) * (s->real));
*(here->BJTbasePrimeBasePrimePtr + 1) += m * ((xcpi+xcmu+xcmcb)
* (s->imag));
*(here->BJTemitPrimeEmitPrimePtr) += m * ((gpi+gepr+gm+go)
+ (xcpi+xgm) * (s->real));
*(here->BJTemitPrimeEmitPrimePtr + 1) += m * ((xcpi+xgm)
* (s->imag));
*(here->BJTbaseBasePtr + 1) += m * ((xcbx) * (s->imag));
*(here->BJTemitEmitPtr) += m * (gepr);
*(here->BJTcolPrimeColPrimePtr) += m * ((gmu+go+gcpr) + (xcmu+xcsub+xcbx) * (s->real));
*(here->BJTcolPrimeColPrimePtr + 1) += m * ((xcmu+xcsub+xcbx) * (s->imag));
*(here->BJTbasePrimeBasePrimePtr) += m * ((gx+gpi+gmu) + (xcpi+xcmu+xcmcb) * (s->real));
*(here->BJTbasePrimeBasePrimePtr + 1) += m * ((xcpi+xcmu+xcmcb) * (s->imag));
*(here->BJTemitPrimeEmitPrimePtr) += m * ((gpi+gepr+gm+go) + (xcpi+xgm) * (s->real));
*(here->BJTemitPrimeEmitPrimePtr + 1) += m * ((xcpi+xgm) * (s->imag));
*(here->BJTcolColPrimePtr) += m * (-gcpr);
*(here->BJTbaseBasePrimePtr) += m * (-gx);
*(here->BJTemitEmitPrimePtr) += m * (-gepr);
*(here->BJTcolPrimeColPtr) += m * (-gcpr);
*(here->BJTcolPrimeBasePrimePtr) += m * ((-gmu+gm)
+ (-xcmu+xgm) * (s->real));
*(here->BJTcolPrimeBasePrimePtr + 1) += m * ((-xcmu+xgm)
* (s->imag));
*(here->BJTcolPrimeEmitPrimePtr) += m * ((-gm-go)
+ (-xgm) * (s->real));
*(here->BJTcolPrimeEmitPrimePtr + 1) += m * ((-xgm) *
(s->imag));
*(here->BJTcolPrimeBasePrimePtr) += m * ((-gmu+gm) + (-xcmu+xgm) * (s->real));
*(here->BJTcolPrimeBasePrimePtr + 1) += m * ((-xcmu+xgm) * (s->imag));
*(here->BJTcolPrimeEmitPrimePtr) += m * ((-gm-go) + (-xgm) * (s->real));
*(here->BJTcolPrimeEmitPrimePtr + 1) += m * ((-xgm) * (s->imag));
*(here->BJTbasePrimeBasePtr) += m * (-gx);
*(here->BJTbasePrimeColPrimePtr) += m * ((-gmu)
+ (-xcmu-xcmcb) * (s->real));
*(here->BJTbasePrimeColPrimePtr + 1) += m * ((-xcmu-xcmcb)
* (s->imag));
*(here->BJTbasePrimeEmitPrimePtr) += m * ((-gpi)
+ (-xcpi) * (s->real));
*(here->BJTbasePrimeEmitPrimePtr + 1) += m * ((-xcpi)
* (s->imag));
*(here->BJTbasePrimeColPrimePtr) += m * ((-gmu) + (-xcmu-xcmcb) * (s->real));
*(here->BJTbasePrimeColPrimePtr + 1) += m * ((-xcmu-xcmcb) * (s->imag));
*(here->BJTbasePrimeEmitPrimePtr) += m * ((-gpi) + (-xcpi) * (s->real));
*(here->BJTbasePrimeEmitPrimePtr + 1) += m * ((-xcpi) * (s->imag));
*(here->BJTemitPrimeEmitPtr) += m * (-gepr);
*(here->BJTemitPrimeColPrimePtr) += m * ((-go)
+ (xcmcb) * (s->real));
*(here->BJTemitPrimeColPrimePtr + 1) += m * ((xcmcb)
* (s->imag));
*(here->BJTemitPrimeBasePrimePtr) += m * ((-gpi-gm)
+ (-xcpi-xgm-xcmcb) * (s->real));
*(here->BJTemitPrimeBasePrimePtr + 1) += m * ((-xcpi-xgm-xcmcb)
* (s->imag));
*(here->BJTsubstSubstPtr) += m * ((xccs) * (s->real));
*(here->BJTsubstSubstPtr + 1) += m * ((xccs) * (s->imag));
*(here->BJTcolPrimeSubstPtr) += m * ((-xccs) * (s->real));
*(here->BJTcolPrimeSubstPtr + 1) += m * ((-xccs) * (s->imag));
*(here->BJTsubstColPrimePtr) += m * ((-xccs) * (s->real));
*(here->BJTsubstColPrimePtr + 1) += m * ((-xccs) * (s->imag));
*(here->BJTemitPrimeColPrimePtr) += m * ((-go) + (xcmcb) * (s->real));
*(here->BJTemitPrimeColPrimePtr + 1) += m * ((xcmcb) * (s->imag));
*(here->BJTemitPrimeBasePrimePtr) += m * ((-gpi-gm) + (-xcpi-xgm-xcmcb) * (s->real));
*(here->BJTemitPrimeBasePrimePtr + 1) += m * ((-xcpi-xgm-xcmcb) * (s->imag));
*(here->BJTsubstSubstPtr) += m * ((xcsub) * (s->real));
*(here->BJTsubstSubstPtr + 1) += m * ((xcsub) * (s->imag));
*(here->BJTbaseColPrimePtr) += m * ((-xcbx) * (s->real));
*(here->BJTbaseColPrimePtr + 1) += m * ((-xcbx) * (s->imag));
*(here->BJTcolPrimeBasePtr) += m * ((-xcbx) * (s->real));

View File

@ -30,7 +30,7 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
double ss;
double sxpbe;
double sxpbc;
double sxpcs;
double sxpsub;
double sxpbx;
double dummy1;
double dummy2;
@ -52,7 +52,7 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
sxpbe = 0;
sxpbc = 0;
sxpcs = 0;
sxpsub = 0;
sxpbx = 0;
#ifdef SENSDEBUG
printf("senupdate Instance name: %s\n",here->BJTname);
@ -61,7 +61,7 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
printf("capbe = %.7e\n",here->BJTcapbe);
printf("capbc = %.7e\n",here->BJTcapbc);
printf("capcs = %.7e\n",here->BJTcapcs);
printf("capsub = %.7e\n",here->BJTcapsub);
printf("capbx = %.7e\n",here->BJTcapbx);
#endif /* SENSDEBUG */
@ -81,13 +81,13 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
sxpbc = model ->BJTtype * (sbprm - scprm)*here->BJTcapbc ;
sxpcs = model ->BJTtype * (ss - scprm)*here->BJTcapcs ;
sxpsub = model ->BJTtype * (ss - scprm)*here->BJTcapsub ;
sxpbx = model ->BJTtype * (sb - scprm)*here->BJTcapbx ;
if(iparmno == here->BJTsenParmNo){
sxpbe += *(here->BJTdphibedp);
sxpbc += *(here->BJTdphibcdp);
sxpcs += *(here->BJTdphicsdp);
sxpsub += *(here->BJTdphisubdp);
sxpbx += *(here->BJTdphibxdp);
}
@ -100,10 +100,10 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
sxpbc;
NIintegrate(ckt,&dummy1,&dummy2,here->BJTcapbc,
here->BJTsensxpbc + 8*(iparmno -1));
*(ckt->CKTstate0 + here->BJTsensxpcs + 8 * (iparmno - 1)) =
sxpcs;
NIintegrate(ckt,&dummy1,&dummy2,here->BJTcapcs,
here->BJTsensxpcs + 8*(iparmno -1));
*(ckt->CKTstate0 + here->BJTsensxpsub + 8 * (iparmno - 1)) =
sxpsub;
NIintegrate(ckt,&dummy1,&dummy2,here->BJTcapsub,
here->BJTsensxpsub + 8*(iparmno -1));
*(ckt->CKTstate0 + here->BJTsensxpbx + 8 * (iparmno - 1)) =
sxpbx;
NIintegrate(ckt,&dummy1,&dummy2,here->BJTcapbx,
@ -117,8 +117,8 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
printf("sxpbc = %.7e,sdotxpbc = %.7e\n",
sxpbc,*(ckt->CKTstate0 + here->BJTsensxpbc + 8 *
(iparmno - 1) + 1));
printf("sxpcs = %.7e,sdotxpsc = %.7e\n",
sxpcs,*(ckt->CKTstate0 + here->BJTsensxpcs + 8 *
printf("sxpsub = %.7e,sdotxpsc = %.7e\n",
sxpsub,*(ckt->CKTstate0 + here->BJTsensxpsub + 8 *
(iparmno - 1) + 1));
printf("sxpbx = %.7e,sdotxpbx = %.7e\n",
sxpbx,*(ckt->CKTstate0 + here->BJTsensxpbx + 8 *
@ -130,15 +130,15 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
sxpbe;
*(ckt->CKTstate1 + here->BJTsensxpbc + 8 * (iparmno - 1)) =
sxpbc;
*(ckt->CKTstate1 + here->BJTsensxpcs + 8 * (iparmno - 1)) =
sxpcs;
*(ckt->CKTstate1 + here->BJTsensxpsub + 8 * (iparmno - 1)) =
sxpsub;
*(ckt->CKTstate1 + here->BJTsensxpbx + 8 * (iparmno - 1)) =
sxpbx;
*(ckt->CKTstate1 + here->BJTsensxpbe + 8 * (iparmno - 1) +
1) = 0;
*(ckt->CKTstate1 + here->BJTsensxpbc + 8 * (iparmno - 1) +
1) = 0;
*(ckt->CKTstate1 + here->BJTsensxpcs + 8 * (iparmno - 1) +
*(ckt->CKTstate1 + here->BJTsensxpsub + 8 * (iparmno - 1) +
1) = 0;
*(ckt->CKTstate1 + here->BJTsensxpbx + 8 * (iparmno - 1) +
1) = 0;