Add option 'klu', keeping option 'sparse'. Sparse is default.

This commit is contained in:
Holger Vogt 2023-08-18 15:09:59 +02:00
parent c75eeb758e
commit 306c1a5b47
3 changed files with 8 additions and 1 deletions

View File

@ -124,6 +124,7 @@ enum {
#ifdef KLU
OPT_SPARSE,
OPT_KLU,
OPT_KLU_MEMGROW_FACTOR,
#endif

View File

@ -141,7 +141,7 @@ CKTnewTask(CKTcircuit *ckt, TSKtask **taskPtr, IFuid taskName, TSKtask **defPtr)
tsk->TSKepsmin = 1e-28;
#ifdef KLU
tsk->TSKkluMODE = CKTkluON;
tsk->TSKkluMODE = CKTkluOFF;
tsk->TSKkluMemGrowFactor = 1.2 ;
#endif

View File

@ -181,6 +181,10 @@ CKTsetOpt(CKTcircuit *ckt, JOB *anal, int opt, IFvalue *val)
task->TSKkluMODE = (val->iValue == 0);
break;
case OPT_KLU:
task->TSKkluMODE = (val->iValue == 1);
break;
case OPT_KLU_MEMGROW_FACTOR:
task->TSKkluMemGrowFactor = (val->rValue == 1.2);
break;
@ -348,6 +352,8 @@ static IFparm OPTtbl[] = {
#ifdef KLU
{ "sparse", OPT_SPARSE, IF_SET|IF_FLAG,
"Set SPARSE 1.3 as Direct Linear Solver" },
{ "klu", OPT_KLU, IF_SET | IF_FLAG,
"Set KLU as Direct Linear Solver" },
{ "klu_memgrow_factor", OPT_KLU_MEMGROW_FACTOR, IF_SET|IF_REAL,
"KLU Memory Grow Factor (default is 1.2)" }
#endif