rm unused files
This commit is contained in:
parent
8bc687ddbe
commit
c3cadb8de1
|
|
@ -1,361 +0,0 @@
|
|||
/**********
|
||||
Copyright 1990 Regents of the University of California. All rights reserved.
|
||||
Author: 1985 Thomas L. Quarles
|
||||
Model Author: 1990 Michael Schröter TU Dresden
|
||||
Spice3 Implementation: 2019 Dietmar Warning
|
||||
**********/
|
||||
|
||||
/*
|
||||
* Function to load the COMPLEX circuit matrix using the
|
||||
* small signal parameters saved during a previous DC operating
|
||||
* point analysis.
|
||||
*/
|
||||
|
||||
#include "ngspice/ngspice.h"
|
||||
#include "ngspice/cktdefs.h"
|
||||
#include "hicum2defs.h"
|
||||
#include "ngspice/sperror.h"
|
||||
#include "ngspice/suffix.h"
|
||||
|
||||
int
|
||||
HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
||||
{
|
||||
HICUMinstance *here;
|
||||
HICUMmodel *model = (HICUMmodel*)inModel;
|
||||
double Ibpei_Vbpei;
|
||||
double Ibpei_Vrth;
|
||||
|
||||
double Ibiei_Vbiei;
|
||||
double Ibiei_Vbici;
|
||||
double Ibiei_Vrth;
|
||||
|
||||
double Ibici_Vbici;
|
||||
double Ibici_Vbiei;
|
||||
double Ibici_Vrth;
|
||||
|
||||
double Ibpci_Vbpci;
|
||||
double Ibpci_Vrth;
|
||||
|
||||
double Isici_Vsici;
|
||||
double Isici_Vrth;
|
||||
|
||||
double Iciei_Vbiei;
|
||||
double Iciei_Vbici;
|
||||
double Iciei_Vrth;
|
||||
|
||||
|
||||
double Ibpbi_Vbpbi;
|
||||
double Ibpbi_Vciei;
|
||||
double Ibpbi_Vbiei;
|
||||
double Ibpbi_Vrth;
|
||||
|
||||
double Isis_Vsis;
|
||||
|
||||
double Icic_Vcic;
|
||||
double Ieie_Veie;
|
||||
double Ibbp_Vbbp;
|
||||
|
||||
double Ibpsi_Vbpci;
|
||||
double Ibpsi_Vsici;
|
||||
double Ibpsi_Vrth;
|
||||
|
||||
double XQrbi_Vbpbi;
|
||||
// double XQrbi_Vbiei;
|
||||
// double XQrbi_Vbici;
|
||||
double XQdeix_Vbiei;
|
||||
double XQjei_Vbiei;
|
||||
double XQdci_Vbici;
|
||||
double XQjci_Vbici;
|
||||
double XQjep_Vbpei;
|
||||
double Xqjcx0_t_i_Vbci;
|
||||
double Xqjcx0_t_ii_Vbpci;
|
||||
double XQdsu_Vbpci;
|
||||
// double XQdsu_Vsici;
|
||||
double XQjs_Vsici;
|
||||
double XQscp_Vsc;
|
||||
double XQbepar1_Vbe;
|
||||
double XQbepar2_Vbpe;
|
||||
double XQbcpar1_Vbci;
|
||||
double XQbcpar2_Vbpci;
|
||||
double XQsu_Vsis;
|
||||
|
||||
/* loop through all the models */
|
||||
for( ; model != NULL; model = HICUMnextModel(model)) {
|
||||
|
||||
/* loop through all the instances of the model */
|
||||
for( here = HICUMinstances(model); here!= NULL;
|
||||
here = HICUMnextInstance(here)) {
|
||||
|
||||
//todo: temperature derivatives
|
||||
Ibbp_Vbbp = 1/here->HICUMrbx_t.rpart;
|
||||
Icic_Vcic = 1/here->HICUMrcx_t.rpart;
|
||||
Ieie_Veie = 1/here->HICUMre_t.rpart;
|
||||
Isis_Vsis = 1/model->HICUMrsu;
|
||||
|
||||
Ibiei_Vbiei = *(ckt->CKTstate0 + here->HICUMibiei_Vbiei);
|
||||
Ibiei_Vbici = *(ckt->CKTstate0 + here->HICUMibiei_Vbici);
|
||||
Ibiei_Vrth = *(ckt->CKTstate0 + here->HICUMibiei_Vrth);
|
||||
|
||||
Ibpei_Vbpei = *(ckt->CKTstate0 + here->HICUMibpei_Vbpei);
|
||||
Ibpei_Vrth = *(ckt->CKTstate0 + here->HICUMibpei_Vrth);
|
||||
|
||||
Iciei_Vbiei = *(ckt->CKTstate0 + here->HICUMiciei_Vbiei);
|
||||
Iciei_Vbici = *(ckt->CKTstate0 + here->HICUMiciei_Vbici);
|
||||
Iciei_Vrth = *(ckt->CKTstate0 + here->HICUMiciei_Vrth);
|
||||
|
||||
Ibici_Vbici = *(ckt->CKTstate0 + here->HICUMibici_Vbici);
|
||||
Ibici_Vbiei = *(ckt->CKTstate0 + here->HICUMibici_Vbiei);
|
||||
Ibici_Vrth = *(ckt->CKTstate0 + here->HICUMibici_Vrth);
|
||||
|
||||
Ibpbi_Vbpbi = *(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi);
|
||||
Ibpbi_Vbiei = *(ckt->CKTstate0 + here->HICUMibpbi_Vbiei);
|
||||
Ibpbi_Vciei = *(ckt->CKTstate0 + here->HICUMibpbi_Vbici);
|
||||
Ibpbi_Vrth = *(ckt->CKTstate0 + here->HICUMibpbi_Vrth);
|
||||
|
||||
Isici_Vsici = *(ckt->CKTstate0 + here->HICUMisici_Vsici);
|
||||
Isici_Vrth = *(ckt->CKTstate0 + here->HICUMisici_Vrth);
|
||||
|
||||
Ibpsi_Vbpci = *(ckt->CKTstate0 + here->HICUMibpsi_Vbpci);
|
||||
Ibpsi_Vsici = *(ckt->CKTstate0 + here->HICUMibpsi_Vsici);
|
||||
Ibpsi_Vrth = *(ckt->CKTstate0 + here->HICUMibpsi_Vrth);
|
||||
|
||||
Ibpci_Vbpci = *(ckt->CKTstate0 + here->HICUMibpci_Vbpci);
|
||||
Ibpci_Vrth = *(ckt->CKTstate0 + here->HICUMibpci_Vrth);
|
||||
|
||||
/*
|
||||
c The real part
|
||||
*/
|
||||
/*
|
||||
c Stamp element: Ibiei (missing Ibiei_Vbici)
|
||||
*/
|
||||
*(here->HICUMbaseBIBaseBIPtr) += Ibiei_Vbiei;
|
||||
*(here->HICUMbaseBIEmitEIPtr) += -Ibiei_Vbiei;
|
||||
*(here->HICUMemitEIBaseBIPtr) += -Ibiei_Vbiei;
|
||||
*(here->HICUMemitEIEmitEIPtr) += Ibiei_Vbiei;
|
||||
/*
|
||||
c Stamp element: Ibpei
|
||||
*/
|
||||
*(here->HICUMbaseBPBaseBPPtr) += Ibpei_Vbpei;
|
||||
*(here->HICUMbaseBPEmitEIPtr) += -Ibpei_Vbpei;
|
||||
*(here->HICUMemitEIBaseBPPtr) += -Ibpei_Vbpei;
|
||||
*(here->HICUMemitEIEmitEIPtr) += Ibpei_Vbpei;
|
||||
|
||||
/*
|
||||
c Stamp element: Iciei
|
||||
*/
|
||||
*(here->HICUMcollCIBaseBIPtr) += Iciei_Vbiei;
|
||||
*(here->HICUMcollCIEmitEIPtr) += -Iciei_Vbiei;
|
||||
*(here->HICUMemitEIBaseBIPtr) += -Iciei_Vbiei;
|
||||
*(here->HICUMemitEIEmitEIPtr) += Iciei_Vbiei;
|
||||
*(here->HICUMcollCIBaseBIPtr) += Iciei_Vbici;
|
||||
*(here->HICUMcollCICollCIPtr) += -Iciei_Vbici;
|
||||
*(here->HICUMemitEIBaseBIPtr) += -Iciei_Vbici;
|
||||
*(here->HICUMemitEICollCIPtr) += Iciei_Vbici;
|
||||
/*
|
||||
c Stamp element: Ibici (missing Ibici_Vbiei)
|
||||
*/
|
||||
*(here->HICUMbaseBIBaseBIPtr) += Ibici_Vbici;
|
||||
*(here->HICUMbaseBICollCIPtr) += -Ibici_Vbici;
|
||||
*(here->HICUMcollCIBaseBIPtr) += -Ibici_Vbici;
|
||||
*(here->HICUMcollCICollCIPtr) += Ibici_Vbici;
|
||||
/*
|
||||
c Stamp element: Ibpci
|
||||
*/
|
||||
*(here->HICUMbaseBPCollCIPtr) += Ibpci_Vbpci;
|
||||
*(here->HICUMbaseBPBaseBPPtr) += -Ibpci_Vbpci;
|
||||
*(here->HICUMcollCIBaseBPPtr) += -Ibpci_Vbpci;
|
||||
*(here->HICUMcollCICollCIPtr) += Ibpci_Vbpci;
|
||||
/*
|
||||
c Stamp element: Rcx
|
||||
*/
|
||||
*(here->HICUMcollCollPtr) += Icic_Vcic;
|
||||
*(here->HICUMcollCICollPtr) += -Icic_Vcic;
|
||||
*(here->HICUMcollCollCIPtr) += -Icic_Vcic;
|
||||
*(here->HICUMcollCICollCIPtr) += Icic_Vcic;
|
||||
/*
|
||||
c Stamp element: Rbx
|
||||
*/
|
||||
*(here->HICUMbaseBasePtr) += Ibbp_Vbbp;
|
||||
*(here->HICUMbaseBPBasePtr) += -Ibbp_Vbbp;
|
||||
*(here->HICUMbaseBaseBPPtr) += -Ibbp_Vbbp;
|
||||
*(here->HICUMbaseBPBaseBPPtr) += Ibbp_Vbbp;
|
||||
/*
|
||||
c Stamp element: Ibpbi
|
||||
*/
|
||||
*(here->HICUMbaseBPBaseBPPtr) += Ibpbi_Vbpbi;
|
||||
*(here->HICUMbaseBPBaseBIPtr) += -Ibpbi_Vbpbi;
|
||||
*(here->HICUMbaseBPBaseBIPtr) += Ibpbi_Vbiei;
|
||||
*(here->HICUMbaseBPEmitEIPtr) += -Ibpbi_Vbiei;
|
||||
*(here->HICUMbaseBPCollCIPtr) += Ibpbi_Vciei;
|
||||
*(here->HICUMbaseBPEmitEIPtr) += -Ibpbi_Vciei;
|
||||
*(here->HICUMbaseBIBaseBPPtr) += -Ibpbi_Vbpbi;
|
||||
*(here->HICUMbaseBIBaseBIPtr) += Ibpbi_Vbpbi;
|
||||
*(here->HICUMbaseBIBaseBIPtr) += -Ibpbi_Vbiei;
|
||||
*(here->HICUMbaseBIEmitEIPtr) += Ibpbi_Vbiei;
|
||||
*(here->HICUMbaseBICollCIPtr) += -Ibpbi_Vciei;
|
||||
*(here->HICUMbaseBIEmitEIPtr) += Ibpbi_Vciei;
|
||||
/*
|
||||
c Stamp element: Re
|
||||
*/
|
||||
*(here->HICUMemitEmitPtr) += Ieie_Veie;
|
||||
*(here->HICUMemitEIEmitPtr) += -Ieie_Veie;
|
||||
*(here->HICUMemitEmitEIPtr) += -Ieie_Veie;
|
||||
*(here->HICUMemitEIEmitEIPtr) += Ieie_Veie;
|
||||
/*
|
||||
c Stamp element: Isici
|
||||
*/
|
||||
*(here->HICUMsubsSISubsSIPtr) += Isici_Vsici;
|
||||
*(here->HICUMsubsSICollCIPtr) += -Isici_Vsici;
|
||||
*(here->HICUMcollCISubsSIPtr) += -Isici_Vsici;
|
||||
*(here->HICUMcollCICollCIPtr) += Isici_Vsici;
|
||||
/*
|
||||
c Stamp element: Ibpsi
|
||||
*/
|
||||
*(here->HICUMbaseBPBaseBPPtr) += Ibpsi_Vbpci;
|
||||
*(here->HICUMbaseBPCollCIPtr) += -Ibpsi_Vbpci;
|
||||
*(here->HICUMbaseBPSubsSIPtr) += Ibpsi_Vsici;
|
||||
*(here->HICUMbaseBPCollCIPtr) += -Ibpsi_Vsici;
|
||||
*(here->HICUMsubsSIBaseBPPtr) += -Ibpsi_Vbpci;
|
||||
*(here->HICUMsubsSICollCIPtr) += Ibpsi_Vbpci;
|
||||
*(here->HICUMsubsSISubsSIPtr) += -Ibpsi_Vsici;
|
||||
*(here->HICUMsubsSICollCIPtr) += Ibpsi_Vsici;
|
||||
/*
|
||||
c Stamp element: Rs
|
||||
*/
|
||||
*(here->HICUMsubsSubsPtr) += Isis_Vsis;
|
||||
*(here->HICUMsubsSISubsPtr) += -Isis_Vsis;
|
||||
*(here->HICUMsubsSubsSIPtr) += -Isis_Vsis;
|
||||
*(here->HICUMsubsSISubsSIPtr) += Isis_Vsis;
|
||||
/*
|
||||
c The complex part
|
||||
*/
|
||||
//todo: Complete with partial dervatives e.g. Qjs_Vsici, Qrbi_Vbici
|
||||
|
||||
XQrbi_Vbpbi = *(ckt->CKTstate0 + here->HICUMcqrbi) * ckt->CKTomega;
|
||||
XQdeix_Vbiei = *(ckt->CKTstate0 + here->HICUMcqf) * ckt->CKTomega;
|
||||
XQjei_Vbiei = *(ckt->CKTstate0 + here->HICUMcqjei) * ckt->CKTomega;
|
||||
XQdci_Vbici = *(ckt->CKTstate0 + here->HICUMcqr) * ckt->CKTomega;
|
||||
XQjci_Vbici = *(ckt->CKTstate0 + here->HICUMcqjci) * ckt->CKTomega;
|
||||
XQjep_Vbpei = *(ckt->CKTstate0 + here->HICUMcqjep) * ckt->CKTomega;
|
||||
Xqjcx0_t_i_Vbci = *(ckt->CKTstate0 + here->HICUMcqcx0_t_i) * ckt->CKTomega;
|
||||
Xqjcx0_t_ii_Vbpci = *(ckt->CKTstate0 + here->HICUMcqcx0_t_ii) * ckt->CKTomega;
|
||||
XQdsu_Vbpci = *(ckt->CKTstate0 + here->HICUMcqdsu) * ckt->CKTomega;
|
||||
XQjs_Vsici = *(ckt->CKTstate0 + here->HICUMcqjs) * ckt->CKTomega;
|
||||
XQscp_Vsc = *(ckt->CKTstate0 + here->HICUMcqscp) * ckt->CKTomega;
|
||||
XQbepar1_Vbe = *(ckt->CKTstate0 + here->HICUMcqbepar1) * ckt->CKTomega;
|
||||
XQbepar2_Vbpe = *(ckt->CKTstate0 + here->HICUMcqbepar2) * ckt->CKTomega;
|
||||
XQbcpar1_Vbci = *(ckt->CKTstate0 + here->HICUMcqbcpar1) * ckt->CKTomega;
|
||||
XQbcpar2_Vbpci = *(ckt->CKTstate0 + here->HICUMcqbcpar2) * ckt->CKTomega;
|
||||
XQsu_Vsis = *(ckt->CKTstate0 + here->HICUMcqsu) * ckt->CKTomega;
|
||||
/*
|
||||
c Stamp element: Qbepar1
|
||||
*/
|
||||
*(here->HICUMbaseBasePtr + 1) += XQbepar1_Vbe;
|
||||
*(here->HICUMbaseEmitPtr + 1) += -XQbepar1_Vbe;
|
||||
*(here->HICUMemitBasePtr + 1) += -XQbepar1_Vbe;
|
||||
*(here->HICUMemitEmitPtr + 1) += XQbepar1_Vbe;
|
||||
/*
|
||||
c Stamp element: Qbepar2
|
||||
*/
|
||||
*(here->HICUMbaseBPBaseBPPtr + 1) += XQbepar2_Vbpe;
|
||||
*(here->HICUMemitBaseBPPtr + 1) += -XQbepar2_Vbpe;
|
||||
*(here->HICUMemitEmitPtr + 1) += -XQbepar2_Vbpe;
|
||||
*(here->HICUMbaseBPEmitPtr + 1) += XQbepar2_Vbpe;
|
||||
/*
|
||||
c Stamp element: Qdeix, Qjei
|
||||
*/
|
||||
*(here->HICUMbaseBIBaseBIPtr + 1) += XQdeix_Vbiei;
|
||||
*(here->HICUMbaseBIEmitEIPtr + 1) += -XQdeix_Vbiei;
|
||||
*(here->HICUMemitEIBaseBIPtr + 1) += -XQdeix_Vbiei;
|
||||
*(here->HICUMemitEIEmitEIPtr + 1) += XQdeix_Vbiei;
|
||||
*(here->HICUMbaseBIBaseBIPtr + 1) += XQjei_Vbiei;
|
||||
*(here->HICUMbaseBIEmitEIPtr + 1) += -XQjei_Vbiei;
|
||||
*(here->HICUMemitEIBaseBIPtr + 1) += -XQjei_Vbiei;
|
||||
*(here->HICUMemitEIEmitEIPtr + 1) += XQjei_Vbiei;
|
||||
/*
|
||||
c Stamp element: Qjep
|
||||
*/
|
||||
*(here->HICUMbaseBPBaseBPPtr + 1) += XQjep_Vbpei;
|
||||
*(here->HICUMbaseBPEmitEIPtr + 1) += -XQjep_Vbpei;
|
||||
*(here->HICUMemitEIBaseBPPtr + 1) += -XQjep_Vbpei;
|
||||
*(here->HICUMemitEIEmitEIPtr + 1) += XQjep_Vbpei;
|
||||
|
||||
/*
|
||||
c Stamp element: Qdci, Qjci
|
||||
*/
|
||||
*(here->HICUMbaseBIBaseBIPtr + 1) += XQdci_Vbici;
|
||||
*(here->HICUMbaseBICollCIPtr + 1) += -XQdci_Vbici;
|
||||
*(here->HICUMcollCIBaseBIPtr + 1) += -XQdci_Vbici;
|
||||
*(here->HICUMcollCICollCIPtr + 1) += XQdci_Vbici;
|
||||
*(here->HICUMbaseBIBaseBIPtr + 1) += XQjci_Vbici;
|
||||
*(here->HICUMbaseBICollCIPtr + 1) += -XQjci_Vbici;
|
||||
*(here->HICUMcollCIBaseBIPtr + 1) += -XQjci_Vbici;
|
||||
*(here->HICUMcollCICollCIPtr + 1) += XQjci_Vbici;
|
||||
/*
|
||||
c Stamp element: Qbcpar1, qjcx0_i
|
||||
*/
|
||||
*(here->HICUMbaseBasePtr + 1) += XQbcpar1_Vbci;
|
||||
*(here->HICUMbaseCollCIPtr + 1) += -XQbcpar1_Vbci;
|
||||
*(here->HICUMcollCIBasePtr + 1) += -XQbcpar1_Vbci;
|
||||
*(here->HICUMcollCICollCIPtr + 1) += XQbcpar1_Vbci;
|
||||
*(here->HICUMbaseBasePtr + 1) += Xqjcx0_t_i_Vbci;
|
||||
*(here->HICUMbaseCollCIPtr + 1) += -Xqjcx0_t_i_Vbci;
|
||||
*(here->HICUMcollCIBasePtr + 1) += -Xqjcx0_t_i_Vbci;
|
||||
*(here->HICUMcollCICollCIPtr + 1) += Xqjcx0_t_i_Vbci;
|
||||
/*
|
||||
c Stamp element: Qbcpar2, qjcx0_ii, Qdsu
|
||||
*/
|
||||
*(here->HICUMbaseBPBaseBPPtr + 1) += XQbcpar2_Vbpci;
|
||||
*(here->HICUMcollCICollCIPtr + 1) += XQbcpar2_Vbpci;
|
||||
*(here->HICUMbaseBPCollCIPtr + 1) += -XQbcpar2_Vbpci;
|
||||
*(here->HICUMcollCIBaseBPPtr + 1) += -XQbcpar2_Vbpci;
|
||||
*(here->HICUMbaseBPCollCIPtr + 1) += Xqjcx0_t_ii_Vbpci;
|
||||
*(here->HICUMbaseBPBaseBPPtr + 1) += -Xqjcx0_t_ii_Vbpci;
|
||||
*(here->HICUMcollCIBaseBPPtr + 1) += -Xqjcx0_t_ii_Vbpci;
|
||||
*(here->HICUMcollCICollCIPtr + 1) += Xqjcx0_t_ii_Vbpci;
|
||||
*(here->HICUMbaseBPCollCIPtr + 1) += XQdsu_Vbpci;
|
||||
*(here->HICUMbaseBPBaseBPPtr + 1) += -XQdsu_Vbpci;
|
||||
*(here->HICUMcollCIBaseBPPtr + 1) += -XQdsu_Vbpci;
|
||||
*(here->HICUMcollCICollCIPtr + 1) += XQdsu_Vbpci;
|
||||
/*
|
||||
c Stamp element: Qrbi
|
||||
*/
|
||||
*(here->HICUMbaseBPBaseBPPtr + 1) += XQrbi_Vbpbi;
|
||||
*(here->HICUMbaseBPBaseBIPtr + 1) += -XQrbi_Vbpbi;
|
||||
*(here->HICUMbaseBIBaseBPPtr + 1) += -XQrbi_Vbpbi;
|
||||
*(here->HICUMbaseBIBaseBIPtr + 1) += XQrbi_Vbpbi;
|
||||
//todo:
|
||||
// *(here->HICUMbaseBPBaseBIPtr + 1) += XQrbi_Vbiei;
|
||||
// *(here->HICUMbaseBPEmitEIPtr + 1) += -XQrbi_Vbiei;
|
||||
// *(here->HICUMbaseBIBaseBIPtr + 1) += -XQrbi_Vbiei;
|
||||
// *(here->HICUMbaseBIEmitEIPtr + 1) += XQrbi_Vbiei;
|
||||
// *(here->HICUMbaseBPCollCIPtr + 1) += XQrbi_Vbici;
|
||||
// *(here->HICUMbaseBPEmitEIPtr + 1) += -XQrbi_Vbici;
|
||||
// *(here->HICUMbaseBICollCIPtr + 1) += -XQrbi_Vbici;
|
||||
// *(here->HICUMbaseBIEmitEIPtr + 1) += XQrbi_Vbici;
|
||||
/*
|
||||
c Stamp element: Cscp
|
||||
*/
|
||||
*(here->HICUMsubsSubsPtr + 1) += XQscp_Vsc;
|
||||
*(here->HICUMcollSubsPtr + 1) += -XQscp_Vsc;
|
||||
*(here->HICUMcollCollPtr + 1) += -XQscp_Vsc;
|
||||
*(here->HICUMsubsCollPtr + 1) += XQscp_Vsc;
|
||||
/*
|
||||
c Stamp element: Cjs
|
||||
*/
|
||||
*(here->HICUMsubsSISubsSIPtr + 1) += XQjs_Vsici;
|
||||
*(here->HICUMsubsSICollCIPtr + 1) += -XQjs_Vsici;
|
||||
*(here->HICUMcollCISubsSIPtr + 1) += -XQjs_Vsici;
|
||||
*(here->HICUMcollCICollCIPtr + 1) += XQjs_Vsici;
|
||||
/*
|
||||
c Stamp element: Csu
|
||||
*/
|
||||
*(here->HICUMsubsSubsPtr + 1) += XQsu_Vsis;
|
||||
*(here->HICUMsubsSISubsPtr + 1) += -XQsu_Vsis;
|
||||
*(here->HICUMsubsSubsSIPtr + 1) += -XQsu_Vsis;
|
||||
*(here->HICUMsubsSISubsSIPtr + 1) += XQsu_Vsis;
|
||||
|
||||
}
|
||||
}
|
||||
return(OK);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue