From 4ea0e8b86d0b5020bf710e4cede1328d4416727b Mon Sep 17 00:00:00 2001 From: Francesco Lannutti Date: Sun, 6 May 2018 20:45:40 +0200 Subject: [PATCH] Fix IND model to work with 'alter' command in CUSPICE --- src/spicelib/devices/ind/indparam.c | 18 ++++++++++++++++++ src/spicelib/devices/ind/indsetup.c | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/spicelib/devices/ind/indparam.c b/src/spicelib/devices/ind/indparam.c index e39584c6f..6d038ce84 100644 --- a/src/spicelib/devices/ind/indparam.c +++ b/src/spicelib/devices/ind/indparam.c @@ -11,6 +11,9 @@ Author: 1985 Thomas L. Quarles #include "ngspice/sperror.h" #include "ngspice/suffix.h" +#ifdef USE_CUSPICE +#include "ngspice/CUSPICE/CUSPICE.h" +#endif /* ARGSUSED */ int @@ -65,5 +68,20 @@ INDparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select) default: return(E_BADPARM); } + +#ifdef USE_CUSPICE + int status ; + INDmodel *model ; + + model = INDmodPtr(here) ; + if (model->gen.GENinitCUDA) { + model->INDparamCPU.INDinductArray[here->gen.GENcudaIndex] = here->INDinduct; + model->INDparamCPU.INDinitCondArray[here->gen.GENcudaIndex] = here->INDinitCond; + status = cuINDtemp ((GENmodel *)model); + if (status != 0) + return E_NOMEM; + } +#endif + return(OK); } diff --git a/src/spicelib/devices/ind/indsetup.c b/src/spicelib/devices/ind/indsetup.c index 6c711ec75..5715550dd 100644 --- a/src/spicelib/devices/ind/indsetup.c +++ b/src/spicelib/devices/ind/indsetup.c @@ -196,6 +196,8 @@ do { if((here->ptr = SMPmakeElt(matrix, here->first, here->second)) == NULL){\ status = cuINDsetup ((GENmodel *)model) ; if (status != 0) return (E_NOMEM) ; + + model->gen.GENinitCUDA = 1 ; } #endif