Whitespaces and cosmetic changes to improve readability

This commit is contained in:
Francesco Lannutti 2014-05-01 14:17:12 +02:00
parent f0117a54f5
commit ce9ac6a5bd
5 changed files with 135 additions and 110 deletions

View File

@ -10,68 +10,77 @@ Author: 1985 Thomas L. Quarles
void
CKTterr(int qcap, CKTcircuit *ckt, double *timeStep)
CKTterr (int qcap, CKTcircuit *ckt, double *timeStep)
{
double volttol;
double chargetol;
double tol;
double del;
double diff[8];
double deltmp[8];
double factor=0;
int i;
int j;
static double gearCoeff[] = {
double volttol, chargetol, tol, del ;
double diff [8] ;
double deltmp [8] ;
double factor = 0 ;
int i, j ;
static double gearCoeff [] = {
.5,
.2222222222,
.1363636364,
.096,
.07299270073,
.05830903790
};
static double trapCoeff[] = {
} ;
static double trapCoeff [] = {
.5,
.08333333333
};
} ;
volttol = ckt->CKTabstol + ckt->CKTreltol * MAX (fabs (ckt->CKTstate0 [ccap]), fabs (ckt->CKTstate1 [ccap])) ;
chargetol = MAX (fabs (ckt->CKTstate0 [qcap]), fabs (ckt->CKTstate1 [qcap])) ;
chargetol = ckt->CKTreltol * MAX (chargetol, ckt->CKTchgtol) / ckt->CKTdelta ;
tol = MAX (volttol, chargetol) ;
volttol = ckt->CKTabstol + ckt->CKTreltol *
MAX( fabs(ckt->CKTstate0[ccap]), fabs(ckt->CKTstate1[ccap]));
chargetol = MAX(fabs(ckt->CKTstate0[qcap]),fabs(ckt->CKTstate1[qcap]));
chargetol = ckt->CKTreltol * MAX(chargetol,ckt->CKTchgtol)/ckt->CKTdelta;
tol = MAX(volttol,chargetol);
/* now divided differences */
for(i=ckt->CKTorder+1;i>=0;i--) {
diff[i] = ckt->CKTstates[i][qcap];
for (i = ckt->CKTorder + 1 ; i >= 0 ; i--)
{
diff [i] = ckt->CKTstates[i] [qcap] ;
}
for(i=0 ; i <= ckt->CKTorder ; i++) {
deltmp[i] = ckt->CKTdeltaOld[i];
for (i = 0 ; i <= ckt->CKTorder ; i++)
{
deltmp [i] = ckt->CKTdeltaOld [i] ;
}
j = ckt->CKTorder;
for (;;) {
for(i=0;i <= j;i++) {
diff[i] = (diff[i] - diff[i+1])/deltmp[i];
j = ckt->CKTorder ;
for (;;)
{
for (i = 0 ; i <= j ; i++)
{
diff [i] = (diff [i] - diff [i + 1]) / deltmp [i] ;
}
if (--j < 0) break;
for(i=0;i <= j;i++) {
deltmp[i] = deltmp[i+1] + ckt->CKTdeltaOld[i];
if (--j < 0)
break ;
for (i = 0 ; i <= j ; i++)
{
deltmp [i] = deltmp [i + 1] + ckt->CKTdeltaOld [i] ;
}
}
switch(ckt->CKTintegrateMethod) {
switch (ckt->CKTintegrateMethod)
{
case GEAR:
factor = gearCoeff[ckt->CKTorder-1];
break;
factor = gearCoeff [ckt->CKTorder - 1] ;
break ;
case TRAPEZOIDAL:
factor = trapCoeff[ckt->CKTorder - 1] ;
break;
factor = trapCoeff [ckt->CKTorder - 1] ;
break ;
}
del = ckt->CKTtrtol * tol/MAX(ckt->CKTabstol,factor * fabs(diff[0]));
if(ckt->CKTorder == 2) {
del = sqrt(del);
del = ckt->CKTtrtol * tol / MAX (ckt->CKTabstol, factor * fabs (diff [0])) ;
if (ckt->CKTorder == 2)
{
del = sqrt (del) ;
} else if (ckt->CKTorder > 2) {
del = exp(log(del)/ckt->CKTorder);
del = exp (log (del) / ckt->CKTorder) ;
}
*timeStep = MIN(*timeStep,del);
return;
*timeStep = MIN (*timeStep, del) ;
return ;
}

View File

@ -17,43 +17,51 @@ Author: 1985 Thomas L. Quarles
int
CKTtrunc(CKTcircuit *ckt, double *timeStep)
CKTtrunc (CKTcircuit *ckt, double *timeStep)
{
#ifndef NEWTRUNC
int i;
double timetemp;
#ifdef STEPDEBUG
double debugtemp;
#endif /* STEPDEBUG */
double startTime;
int error = OK;
int i ;
double timetemp ;
startTime = SPfrontEnd->IFseconds();
timetemp = HUGE;
for (i=0;i<DEVmaxnum;i++) {
if (DEVices[i] && DEVices[i]->DEVtrunc && ckt->CKThead[i]) {
#ifdef STEPDEBUG
debugtemp = timetemp;
double debugtemp ;
#endif /* STEPDEBUG */
error = DEVices[i]->DEVtrunc (ckt->CKThead[i], ckt, &timetemp);
if(error) {
ckt->CKTstat->STATtranTruncTime += SPfrontEnd->IFseconds()
- startTime;
return(error);
double startTime ;
int error = OK ;
startTime = SPfrontEnd->IFseconds () ;
timetemp = HUGE ;
for (i = 0 ; i < DEVmaxnum ; i++)
{
if (DEVices[i] && DEVices[i]->DEVtrunc && ckt->CKThead[i])
{
#ifdef STEPDEBUG
debugtemp = timetemp ;
#endif /* STEPDEBUG */
error = DEVices[i]->DEVtrunc (ckt->CKThead[i], ckt, &timetemp) ;
if (error)
{
ckt->CKTstat->STATtranTruncTime += SPfrontEnd->IFseconds () - startTime ;
return (error) ;
}
#ifdef STEPDEBUG
if(debugtemp != timetemp) {
printf("timestep cut by device type %s from %g to %g\n",
DEVices[i]->DEVpublic.name, debugtemp, timetemp);
if (debugtemp != timetemp)
{
printf ("timestep cut by device type %s from %g to %g\n", DEVices[i]->DEVpublic.name, debugtemp, timetemp) ;
}
#endif /* STEPDEBUG */
}
}
*timeStep = MIN(2 * *timeStep,timetemp);
*timeStep = MIN (2 * *timeStep, timetemp) ;
ckt->CKTstat->STATtranTruncTime += SPfrontEnd->IFseconds() - startTime;
return(OK);
ckt->CKTstat->STATtranTruncTime += SPfrontEnd->IFseconds () - startTime ;
return (OK) ;
#else /* NEWTRUNC */
int i;
CKTnode *node;

View File

@ -18,43 +18,49 @@
int
BSIM4trunc(
GENmodel *inModel,
CKTcircuit *ckt,
double *timeStep)
BSIM4trunc (GENmodel *inModel, CKTcircuit *ckt, double *timeStep)
{
BSIM4model *model = (BSIM4model*)inModel;
BSIM4instance *here;
BSIM4model *model = (BSIM4model*)inModel ;
BSIM4instance *here ;
#ifdef STEPDEBUG
double debugtemp;
double debugtemp ;
#endif /* STEPDEBUG */
for (; model != NULL; model = model->BSIM4nextModel)
{ for (here = model->BSIM4instances; here != NULL;
here = here->BSIM4nextInstance)
{
for ( ; model != NULL ; model = model->BSIM4nextModel)
{
for (here = model->BSIM4instances ; here != NULL ; here = here->BSIM4nextInstance)
{
#ifdef STEPDEBUG
debugtemp = *timeStep;
debugtemp = *timeStep ;
#endif /* STEPDEBUG */
CKTterr(here->BSIM4qb,ckt,timeStep);
CKTterr(here->BSIM4qg,ckt,timeStep);
CKTterr(here->BSIM4qd,ckt,timeStep);
CKTterr (here->BSIM4qb, ckt, timeStep) ;
CKTterr (here->BSIM4qg, ckt, timeStep) ;
CKTterr (here->BSIM4qd, ckt, timeStep) ;
if (here->BSIM4trnqsMod)
CKTterr(here->BSIM4qcdump,ckt,timeStep);
CKTterr (here->BSIM4qcdump, ckt, timeStep) ;
if (here->BSIM4rbodyMod)
{ CKTterr(here->BSIM4qbs,ckt,timeStep);
CKTterr(here->BSIM4qbd,ckt,timeStep);
}
if (here->BSIM4rgateMod == 3)
CKTterr(here->BSIM4qgmid,ckt,timeStep);
{
CKTterr (here->BSIM4qbs, ckt, timeStep) ;
CKTterr (here->BSIM4qbd, ckt, timeStep) ;
}
if (here->BSIM4rgateMod == 3)
CKTterr (here->BSIM4qgmid, ckt, timeStep) ;
#ifdef STEPDEBUG
if(debugtemp != *timeStep)
{ printf("device %s reduces step from %g to %g\n",
here->BSIM4name,debugtemp,*timeStep);
if (debugtemp != *timeStep)
{
printf ("device %s reduces step from %g to %g\n", here->BSIM4name, debugtemp, *timeStep) ;
}
#endif /* STEPDEBUG */
}
}
return(OK);
return (OK) ;
}

View File

@ -14,17 +14,18 @@ Modified: September 2003 Paolo Nenzi
int
CAPtrunc(GENmodel *inModel, CKTcircuit *ckt, double *timeStep)
CAPtrunc (GENmodel *inModel, CKTcircuit *ckt, double *timeStep)
{
CAPmodel *model = (CAPmodel*)inModel;
CAPinstance *here;
CAPmodel *model = (CAPmodel*)inModel ;
CAPinstance *here ;
for( ; model!= NULL; model = model->CAPnextModel) {
for(here = model->CAPinstances ; here != NULL ;
here = here->CAPnextInstance) {
CKTterr(here->CAPqcap,ckt,timeStep);
for ( ; model != NULL ; model = model->CAPnextModel)
{
for (here = model->CAPinstances ; here != NULL ; here = here->CAPnextInstance)
{
CKTterr (here->CAPqcap, ckt, timeStep) ;
}
}
return(OK);
return (OK) ;
}

View File

@ -13,16 +13,17 @@ Author: 1985 Thomas L. Quarles
int
INDtrunc(GENmodel *inModel, CKTcircuit *ckt, double *timeStep)
INDtrunc (GENmodel *inModel, CKTcircuit *ckt, double *timeStep)
{
INDmodel *model = (INDmodel*)inModel;
INDinstance *here;
for( ; model!= NULL; model = model->INDnextModel) {
for(here = model->INDinstances ; here != NULL ;
here = here->INDnextInstance) {
CKTterr(here->INDflux,ckt,timeStep);
INDmodel *model = (INDmodel*)inModel ;
INDinstance *here ;
for ( ; model!= NULL ; model = model->INDnextModel)
{
for (here = model->INDinstances ; here != NULL ; here = here->INDnextInstance)
{
CKTterr (here->INDflux, ckt, timeStep) ;
}
}
return(OK);
return (OK) ;
}