ngspice/src/spicelib/devices/ind/indinit.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;
}