Browse Source

Fixed the accounting statistics for SPICE and CIDER about number of elements in KLU

pre-master-46
Francesco Lannutti 6 years ago
committed by Holger Vogt
parent
commit
0b7dc09fc1
  1. 10
      src/ciderlib/oned/onesolve.c
  2. 12
      src/ciderlib/twod/twosolve.c
  3. 5
      src/spicelib/analysis/cktacct.c

10
src/ciderlib/oned/onesolve.c

@ -635,9 +635,7 @@ ONEequilSolve(ONEdevice *pDevice)
return ; // Francesco Lannutti - Fix KLU return values
}
}
printf ("CIDER: KLU to be fixed: spElementCount\n") ;
pDevice->numOrigEquil = 0 ; //pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->lnz + pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->unz
//+ pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->nzoff ;
pDevice->numOrigEquil = (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
} else {
pDevice->numOrigEquil = spElementCount (pDevice->matrix->SPmatrix) ;
}
@ -668,7 +666,7 @@ ONEequilSolve(ONEdevice *pDevice)
#ifdef KLU
if (pDevice->matrix->CKTkluMODE) {
pDevice->numFillEquil = pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->lnz + pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->unz
+ pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->nzoff - (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
- (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
} else {
#endif
@ -781,7 +779,7 @@ ONEbiasSolve(ONEdevice *pDevice, int iterationLimit,
return ; // Francesco Lannutti - Fix KLU return values
}
}
pDevice->numOrigBias = 0 ; // Francesco Lannutti - Fix for KLU
pDevice->numOrigBias = (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
} else {
pDevice->numOrigBias = spElementCount(pDevice->matrix->SPmatrix);
}
@ -827,7 +825,7 @@ ONEbiasSolve(ONEdevice *pDevice, int iterationLimit,
#ifdef KLU
if (pDevice->matrix->CKTkluMODE) {
pDevice->numFillBias = pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->lnz + pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->unz
+ pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->nzoff - (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
- (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
} else {
#endif

12
src/ciderlib/twod/twosolve.c

@ -549,9 +549,7 @@ int TWOequilSolve(TWOdevice *pDevice)
return E_NOMEM ; // Francesco Lannutti - Fix KLU return values
}
}
printf ("CIDER: KLU to be fixed: spElementCount\n") ;
pDevice->numOrigEquil = 0 ; //pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->lnz + pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->unz
//+ pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->nzoff ;
pDevice->numOrigEquil = (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
} else {
pDevice->numOrigEquil = spElementCount (pDevice->matrix->SPmatrix) ;
}
@ -582,7 +580,7 @@ int TWOequilSolve(TWOdevice *pDevice)
#ifdef KLU
if (pDevice->matrix->CKTkluMODE) {
pDevice->numFillEquil = pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->lnz + pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->unz
+ pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->nzoff - (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
- (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
} else {
#endif
@ -708,9 +706,7 @@ TWObiasSolve(TWOdevice *pDevice, int iterationLimit, BOOLEAN tranAnalysis,
return ; // Francesco Lannutti - Fix KLU return values
}
}
printf ("CIDER: KLU to be fixed: spElementCount\n") ;
pDevice->numOrigBias = 0 ; //pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->lnz + pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->unz
//+ pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->nzoff ;
pDevice->numOrigBias = (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
} else {
pDevice->numOrigBias = spElementCount(pDevice->matrix->SPmatrix);
}
@ -756,7 +752,7 @@ TWObiasSolve(TWOdevice *pDevice, int iterationLimit, BOOLEAN tranAnalysis,
#ifdef KLU
if (pDevice->matrix->CKTkluMODE) {
pDevice->numFillBias = pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->lnz + pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->unz
+ pDevice->matrix->SMPkluMatrix->KLUmatrixNumeric->nzoff - (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
- (int)pDevice->matrix->SMPkluMatrix->KLUmatrixNZ ;
} else {
#endif

5
src/spicelib/analysis/cktacct.c

@ -59,7 +59,7 @@ CKTacct(CKTcircuit *ckt, JOB *anal, int which, IFvalue *val)
#ifdef KLU
if (ckt->CKTmatrix->CKTkluMODE)
val->iValue = ckt->CKTmatrix->SMPkluMatrix->KLUmatrixNumeric->lnz + ckt->CKTmatrix->SMPkluMatrix->KLUmatrixNumeric->unz
+ ckt->CKTmatrix->SMPkluMatrix->KLUmatrixNumeric->nzoff - (int)ckt->CKTmatrix->SMPkluMatrix->KLUmatrixNZ ;
- (int)ckt->CKTmatrix->SMPkluMatrix->KLUmatrixNZ ;
else
val->iValue = spFillinCount(ckt->CKTmatrix->SPmatrix);
#else
@ -73,8 +73,7 @@ CKTacct(CKTcircuit *ckt, JOB *anal, int which, IFvalue *val)
if ( ckt->CKTmatrix != NULL ) {
#ifdef KLU
if (ckt->CKTmatrix->CKTkluMODE)
val->iValue = ckt->CKTmatrix->SMPkluMatrix->KLUmatrixNumeric->lnz + ckt->CKTmatrix->SMPkluMatrix->KLUmatrixNumeric->unz
+ ckt->CKTmatrix->SMPkluMatrix->KLUmatrixNumeric->nzoff ;
val->iValue = ckt->CKTmatrix->SMPkluMatrix->KLUmatrixNumeric->lnz + ckt->CKTmatrix->SMPkluMatrix->KLUmatrixNumeric->unz ;
else
val->iValue = spElementCount(ckt->CKTmatrix->SPmatrix);
#else

Loading…
Cancel
Save