Browse Source

Fixed the AC part of the Sensitivity Analysis

pre-master-46
Francesco Lannutti 10 years ago
committed by Holger Vogt
parent
commit
7b0d1ef2ac
  1. 10
      src/maths/KLU/klusmp.c
  2. 31
      src/spicelib/analysis/cktsens.c

10
src/maths/KLU/klusmp.c

@ -473,6 +473,16 @@ SMPdestroy (SMPmatrix *Matrix)
free (Matrix->CKTdiag_CSC) ;
free (Matrix->CKTkluAx_Complex) ;
free (Matrix->CKTkluIntermediate_Complex) ;
Matrix->CKTkluNumeric = NULL ;
Matrix->CKTkluSymbolic = NULL ;
Matrix->CKTkluAp = NULL ;
Matrix->CKTkluAi = NULL ;
Matrix->CKTkluAx = NULL ;
Matrix->CKTkluIntermediate = NULL ;
Matrix->CKTbindStruct = NULL ;
Matrix->CKTdiag_CSC = NULL ;
Matrix->CKTkluAx_Complex = NULL ;
Matrix->CKTkluIntermediate_Complex = NULL ;
}
}

31
src/spicelib/analysis/cktsens.c

@ -372,20 +372,23 @@ int sens_sens(CKTcircuit *ckt, int restart)
if (error)
return error;
//#ifdef KLU
// if (ckt->CKTmatrix->CKTkluMODE)
// {
// /* Conversion from Real Matrix to Complex Matrix */
// if (!ckt->CKTmatrix->CKTkluMatrixIsComplex)
// {
// for (i = 0 ; i < DEVmaxnum ; i++)
// if (DEVices [i] && DEVices [i]->DEVbindCSCComplex && ckt->CKThead [i])
// DEVices [i]->DEVbindCSCComplex (ckt->CKThead [i], ckt) ;
//
// ckt->CKTmatrix->CKTkluMatrixIsComplex = CKTkluMatrixComplex ;
// }
// }
//#endif
#ifdef KLU
if (ckt->CKTmatrix->CKTkluMODE)
{
/* ReOrder */
error = SMPpreOrder (ckt->CKTmatrix) ;
/* Conversion from Real Matrix to Complex Matrix */
if (!ckt->CKTmatrix->CKTkluMatrixIsComplex)
{
for (i = 0 ; i < DEVmaxnum ; i++)
if (DEVices [i] && DEVices [i]->DEVbindCSCComplex && ckt->CKThead [i])
DEVices [i]->DEVbindCSCComplex (ckt->CKThead [i], ckt) ;
ckt->CKTmatrix->CKTkluMatrixIsComplex = CKTkluMatrixComplex ;
}
}
#endif
error = NIacIter(ckt);
if (error)

Loading…
Cancel
Save