From 1084b4205c4bf4f385cac0f5c7fbf303274fec7d Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Fri, 20 Aug 2021 11:50:01 +0200 Subject: [PATCH] Allow global .temp in addition to instance parameter 'temp'. Update to comments. --- src/spicelib/devices/dio/diosoachk.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/spicelib/devices/dio/diosoachk.c b/src/spicelib/devices/dio/diosoachk.c index 27d2dc0df..f9c1b2da9 100644 --- a/src/spicelib/devices/dio/diosoachk.c +++ b/src/spicelib/devices/dio/diosoachk.c @@ -74,7 +74,7 @@ DIOsoaCheck(CKTcircuit *ckt, GENmodel *inModel) *(ckt->CKTstate0 + here->DIOcurrent) * *(ckt->CKTstate0 + here->DIOcurrent) / here->DIOtConductance); - /* calculate max power including derating: + /* Calculate max power including derating: up to tnom the derating is zero, at maximum temp allowed the derating is 100%. Device temperature by self-heating or given externally. */ @@ -103,9 +103,10 @@ DIOsoaCheck(CKTcircuit *ckt, GENmodel *inModel) } } - /* derating without self-heating, external temp given */ - else if (!here->DIOthermal && here->DIOtempGiven && model->DIOrth0Given && model->DIOpd_maxGiven - && model->DIOte_maxGiven && model->DIOnomTempGiven) { + /* Derating of max allowed power dissipation, without self-heating, + external temp given by .temp (global) or instance parameter 'temp', + therefore no temperature limits are calculated */ + else if (!here->DIOthermal && model->DIOrth0Given && model->DIOpd_maxGiven && model->DIOnomTempGiven) { if (here->DIOtemp < model->DIOnomTemp) pd_max = model->DIOpd_max; else { @@ -120,7 +121,7 @@ DIOsoaCheck(CKTcircuit *ckt, GENmodel *inModel) warns_pd++; } } - /* no derating */ + /* No derating, max power is fixed by model parameter pd_max */ else { pd_max = model->DIOpd_max; if (pd > pd_max)