devices/res, #5/6, RESconduct, include RESm

Henceforward RESconduct (renamed to RESconductX) shall include factor RESm.
That's a mere rewrite and doesn't change functionality.
This commit is contained in:
rlar 2017-10-21 11:33:48 +02:00
parent afd5147f98
commit 93ab0fb0e0
7 changed files with 16 additions and 16 deletions

View File

@ -37,7 +37,7 @@ RESask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value,
value->rValue = fast->RESdtemp;
return(OK);
case RES_CONDUCT:
value->rValue = fast->RESm * fast->RESconduct;
value->rValue = fast->RESconductX;
return(OK);
case RES_RESIST:
value->rValue = fast->RESresist;
@ -144,7 +144,7 @@ RESask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value,
} else if (ckt->CKTrhsOld) {
value->rValue = (*(ckt->CKTrhsOld + fast->RESposNode) -
*(ckt->CKTrhsOld + fast->RESnegNode));
value->rValue *= fast->RESm * fast->RESconduct;
value->rValue *= fast->RESconductX;
return(OK);
} else {
errMsg = tprintf("No current values available for %s", fast->RESname);
@ -162,7 +162,7 @@ RESask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value,
*(ckt->CKTrhsOld + fast->RESnegNode)) *
(*(ckt->CKTrhsOld + fast->RESposNode) -
*(ckt->CKTrhsOld + fast->RESnegNode));
value->rValue *= fast->RESm * fast->RESconduct;
value->rValue *= fast->RESconductX;
return(OK);
} else {
errMsg = tprintf("No power values available for %s", fast->RESname);

View File

@ -30,7 +30,7 @@ typedef struct sRESinstance {
double REStemp; /* temperature at which this resistor operates */
double RESdtemp; /* delta-temperature of a particular instance */
double RESconduct; /* conductance at current analysis temperature */
double RESconductX; /* conductance at current analysis temperature */
double RESresist; /* resistance at temperature Tnom */
double REScurrentX; /* The dc current in the resistor */
/* serban */

View File

@ -26,12 +26,12 @@ RESload(GENmodel *inModel, CKTcircuit *ckt)
here = here->RESnextInstance) {
here->REScurrentX = (*(ckt->CKTrhsOld+here->RESposNode) -
*(ckt->CKTrhsOld+here->RESnegNode)) * here->RESm * here->RESconduct;
*(ckt->CKTrhsOld+here->RESnegNode)) * here->RESconductX;
*(here->RESposPosPtr) += here->RESm * here->RESconduct;
*(here->RESnegNegPtr) += here->RESm * here->RESconduct;
*(here->RESposNegPtr) -= here->RESm * here->RESconduct;
*(here->RESnegPosPtr) -= here->RESm * here->RESconduct;
*(here->RESposPosPtr) += here->RESconductX;
*(here->RESnegNegPtr) += here->RESconductX;
*(here->RESposNegPtr) -= here->RESconductX;
*(here->RESnegPosPtr) -= here->RESconductX;
}
}
return(OK);
@ -59,7 +59,7 @@ RESacload(GENmodel *inModel, CKTcircuit *ckt)
if (here->RESacresGiven)
g = here->RESacConductX;
else
g = here->RESm * here->RESconduct;
g = here->RESconductX;
*(here->RESposPosPtr) += g;
*(here->RESnegNegPtr) += g;

View File

@ -93,7 +93,7 @@ RESnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt,
NevalSrcInstanceTemp(&noizDens[RESTHNOIZ],&lnNdens[RESTHNOIZ],
ckt,THERMNOISE, inst->RESposNode,inst->RESnegNode,
inst->RESm * inst->RESconduct, inst->RESdtemp);
inst->RESconductX, inst->RESdtemp);
NevalSrcInstanceTemp(&noizDens[RESFLNOIZ], NULL, ckt,
N_GAIN,inst->RESposNode, inst->RESnegNode,

View File

@ -36,7 +36,7 @@ RESpzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s)
if (here->RESacresGiven)
g = here->RESacConductX;
else
g = here->RESm * here->RESconduct;
g = here->RESconductX;
*(here->RESposPosPtr) += g;
*(here->RESnegNegPtr) += g;

View File

@ -33,8 +33,8 @@ RESsLoad(GENmodel *inModel, CKTcircuit *ckt)
double value;
value = *(ckt->CKTrhsOld+here->RESposNode) -
*(ckt->CKTrhsOld+here->RESnegNode);
value *= here->RESm * here->RESconduct;
value *= here->RESm * here->RESconduct;
value *= here->RESconductX;
value *= here->RESconductX;
/* load the RHS matrix */
*(ckt->CKTsenInfo->SEN_RHS[here->RESposNode] +

View File

@ -98,13 +98,13 @@ RESupdate_conduct(RESinstance *here, bool spill_warnings)
else
factor = (((tc2 * difference) + tc1) * difference) + 1.0;
here->RESconduct = (1.0/(here->RESresist * factor * here->RESscale));
here->RESconductX = here->RESm / (here->RESresist * factor * here->RESscale);
/* Paolo Nenzi: AC value */
if (here->RESacresGiven) {
here->RESacConductX = here->RESm / (here->RESacResist * factor * here->RESscale);
} else {
here->RESacConductX = here->RESm * here->RESconduct;
here->RESacConductX = here->RESconductX;
here->RESacResist = here->RESresist;
}
}