179 lines
3.7 KiB
C
179 lines
3.7 KiB
C
#include "ngspice/config.h"
|
|
|
|
#include "ngspice/devdefs.h"
|
|
|
|
#include "inditf.h"
|
|
#include "indext.h"
|
|
#include "indinit.h"
|
|
|
|
#ifdef USE_CUSPICE
|
|
#include "ngspice/CUSPICE/CUSPICE.h"
|
|
#endif
|
|
|
|
SPICEdev INDinfo = {
|
|
.DEVpublic = {
|
|
.name = "Inductor",
|
|
.description = "Fixed inductor",
|
|
.terms = &INDnSize,
|
|
.numNames = &INDnSize,
|
|
.termNames = INDnames,
|
|
.numInstanceParms = &INDpTSize,
|
|
.instanceParms = INDpTable,
|
|
.numModelParms = &INDmPTSize,
|
|
.modelParms = INDmPTable,
|
|
.flags = 0,
|
|
|
|
#ifdef XSPICE
|
|
.cm_func = NULL,
|
|
.num_conn = 0,
|
|
.conn = NULL,
|
|
.num_param = 0,
|
|
.param = NULL,
|
|
.num_inst_var = 0,
|
|
.inst_var = NULL,
|
|
#endif
|
|
},
|
|
|
|
.DEVparam = INDparam,
|
|
.DEVmodParam = INDmParam,
|
|
#ifdef USE_CUSPICE
|
|
.DEVload = cuINDload,
|
|
#else
|
|
.DEVload = INDload,
|
|
#endif
|
|
.DEVsetup = INDsetup,
|
|
.DEVunsetup = INDunsetup,
|
|
.DEVpzSetup = INDsetup,
|
|
.DEVtemperature = INDtemp,
|
|
#ifdef USE_CUSPICE
|
|
.DEVtrunc = cuINDtrunc,
|
|
#else
|
|
.DEVtrunc = INDtrunc,
|
|
#endif
|
|
.DEVfindBranch = NULL,
|
|
.DEVacLoad = INDacLoad,
|
|
.DEVaccept = NULL,
|
|
.DEVdestroy = INDdestroy,
|
|
.DEVmodDelete = INDmDelete,
|
|
.DEVdelete = INDdelete,
|
|
.DEVsetic = NULL,
|
|
.DEVask = INDask,
|
|
.DEVmodAsk = INDmAsk,
|
|
.DEVpzLoad = INDpzLoad,
|
|
.DEVconvTest = NULL,
|
|
.DEVsenSetup = INDsSetup,
|
|
.DEVsenLoad = INDsLoad,
|
|
.DEVsenUpdate = INDsUpdate,
|
|
.DEVsenAcLoad = INDsAcLoad,
|
|
.DEVsenPrint = INDsPrint,
|
|
.DEVsenTrunc = NULL,
|
|
.DEVdisto = NULL,
|
|
.DEVnoise = NULL,
|
|
.DEVsoaCheck = NULL,
|
|
.DEVinstSize = &INDiSize,
|
|
.DEVmodSize = &INDmSize,
|
|
|
|
#ifdef CIDER
|
|
.DEVdump = NULL,
|
|
.DEVacct = NULL,
|
|
#endif
|
|
#ifdef KLU
|
|
.DEVbindCSC = INDbindCSC,
|
|
.DEVbindCSCComplex = INDbindCSCComplex,
|
|
.DEVbindCSCComplexToReal = INDbindCSCComplexToReal,
|
|
#endif
|
|
#ifdef USE_CUSPICE
|
|
.cuDEVdestroy = cuINDdestroy,
|
|
.DEVtopology = INDtopology,
|
|
#endif
|
|
};
|
|
|
|
|
|
SPICEdev MUTinfo = {
|
|
.DEVpublic = {
|
|
.name = "mutual",
|
|
.description = "Mutual inductors",
|
|
.terms = NULL,
|
|
.numNames = NULL,
|
|
.termNames = NULL,
|
|
.numInstanceParms = &MUTpTSize,
|
|
.instanceParms = MUTpTable,
|
|
.numModelParms = NULL,
|
|
.modelParms = NULL,
|
|
.flags = 0,
|
|
|
|
#ifdef XSPICE
|
|
.cm_func = NULL,
|
|
.num_conn = 0,
|
|
.conn = NULL,
|
|
.num_param = 0,
|
|
.param = NULL,
|
|
.num_inst_var = 0,
|
|
.inst_var = NULL,
|
|
#endif
|
|
},
|
|
|
|
.DEVparam = MUTparam,
|
|
.DEVmodParam = NULL,
|
|
#ifdef USE_CUSPICE
|
|
.DEVload = cuMUTload,
|
|
#else
|
|
.DEVload = NULL,
|
|
#endif
|
|
.DEVsetup = MUTsetup,
|
|
.DEVunsetup = NULL,
|
|
.DEVpzSetup = MUTsetup,
|
|
.DEVtemperature = MUTtemp,
|
|
.DEVtrunc = NULL,
|
|
.DEVfindBranch = NULL,
|
|
.DEVacLoad = MUTacLoad,
|
|
.DEVaccept = NULL,
|
|
.DEVdestroy = MUTdestroy,
|
|
.DEVmodDelete = MUTmDelete,
|
|
.DEVdelete = MUTdelete,
|
|
.DEVsetic = NULL,
|
|
.DEVask = MUTask,
|
|
.DEVmodAsk = NULL,
|
|
.DEVpzLoad = MUTpzLoad,
|
|
.DEVconvTest = NULL,
|
|
.DEVsenSetup = MUTsSetup,
|
|
.DEVsenLoad = NULL,
|
|
.DEVsenUpdate = NULL,
|
|
.DEVsenAcLoad = NULL,
|
|
.DEVsenPrint = MUTsPrint,
|
|
.DEVsenTrunc = NULL,
|
|
.DEVdisto = NULL,
|
|
.DEVnoise = NULL,
|
|
.DEVsoaCheck = NULL,
|
|
.DEVinstSize = &MUTiSize,
|
|
.DEVmodSize = &MUTmSize,
|
|
|
|
#ifdef CIDER
|
|
.DEVdump = NULL,
|
|
.DEVacct = NULL,
|
|
#endif
|
|
#ifdef KLU
|
|
.DEVbindCSC = MUTbindCSC,
|
|
.DEVbindCSCComplex = MUTbindCSCComplex,
|
|
.DEVbindCSCComplexToReal = MUTbindCSCComplexToReal,
|
|
#endif
|
|
#ifdef USE_CUSPICE
|
|
.cuDEVdestroy = cuMUTdestroy,
|
|
.DEVtopology = MUTtopology,
|
|
#endif
|
|
};
|
|
|
|
|
|
SPICEdev *
|
|
get_ind_info(void)
|
|
{
|
|
return &INDinfo;
|
|
}
|
|
|
|
|
|
SPICEdev *
|
|
get_mut_info(void)
|
|
{
|
|
return &MUTinfo;
|
|
}
|