correct temp update for IBE and IBC parameter

This commit is contained in:
dwarning 2021-10-06 09:26:07 +02:00 committed by Holger Vogt
parent 01fb0ac18b
commit b15c7d29f1
2 changed files with 18 additions and 4 deletions

View File

@ -47,11 +47,11 @@ BJTsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
if(!model->BJTsatCurGiven) {
model->BJTsatCur = 1e-16;
}
if(!model->BJTBEsatCurGiven) {
model->BJTBEsatCur = model->BJTsatCur;
if(!model->BJTBEsatCurGiven) { /* temp update will decide of IS usage */
model->BJTBEsatCur = 0.0;
}
if(!model->BJTBCsatCurGiven) {
model->BJTBCsatCur = model->BJTsatCur;
if(!model->BJTBCsatCurGiven) { /* temp update will decide of IS usage */
model->BJTBCsatCur = 0.0;
}
if(!model->BJTbetaFGiven) {
model->BJTbetaF = 100;

View File

@ -149,15 +149,29 @@ BJTtemp(GENmodel *inModel, CKTcircuit *ckt)
if (model->BJTBEsatCurGiven) {
factor = exp(factlog / model->BJTemissionCoeffF);
here->BJTBEtSatCur = model->BJTBEsatCur * factor;
} else {
here->BJTBEtSatCur = here->BJTtSatCur;
}
if (model->BJTBCsatCurGiven) {
factor = exp(factlog / model->BJTemissionCoeffR);
here->BJTBCtSatCur = model->BJTBCsatCur * factor;
} else {
here->BJTBCtSatCur = here->BJTtSatCur;
}
if (model->BJTsubSatCurGiven)
here->BJTtSubSatCur = model->BJTsubSatCur * factor;
} else if (model->BJTtlev == 3) {
here->BJTtSatCur = pow(model->BJTsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
if (model->BJTBEsatCurGiven) {
here->BJTBEtSatCur = pow(model->BJTBEsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
} else {
here->BJTBEtSatCur = here->BJTtSatCur;
}
if (model->BJTBCsatCurGiven) {
here->BJTBCtSatCur = pow(model->BJTBCsatCur,(1+model->BJTtis1*dt+model->BJTtis2*dt*dt));
} else {
here->BJTBCtSatCur = here->BJTtSatCur;
}
if (model->BJTsubSatCurGiven)
here->BJTtSubSatCur = pow(model->BJTsubSatCur,(1+model->BJTtiss1*dt+model->BJTtiss2*dt*dt));
}