add real part of AC matrix
This commit is contained in:
parent
55e14e62e7
commit
6eefe34d56
|
|
@ -45,15 +45,14 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
|
|
||||||
|
|
||||||
double Ibpbi_Vbpbi;
|
double Ibpbi_Vbpbi;
|
||||||
double Ibpbi_Vciei;
|
double Ibpbi_Vbici;
|
||||||
double Ibpbi_Vbiei;
|
double Ibpbi_Vbiei;
|
||||||
double Ibpbi_Vrth;
|
double Ibpbi_Vrth;
|
||||||
|
|
||||||
double Isis_Vsis;
|
double Isis_Vsis, Isis_Vrth;
|
||||||
|
double Icic_Vcic, Icic_Vrth;
|
||||||
double Icic_Vcic;
|
double Ieie_Veie, Ieie_Vrth;
|
||||||
double Ieie_Veie;
|
double Ibbp_Vbbp, Ibbp_Vrth;
|
||||||
double Ibbp_Vbbp;
|
|
||||||
|
|
||||||
double Ibpsi_Vbpci;
|
double Ibpsi_Vbpci;
|
||||||
double Ibpsi_Vsici;
|
double Ibpsi_Vsici;
|
||||||
|
|
@ -86,12 +85,17 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
for( here = HICUMinstances(model); here!= NULL;
|
for( here = HICUMinstances(model); here!= NULL;
|
||||||
here = HICUMnextInstance(here)) {
|
here = HICUMnextInstance(here)) {
|
||||||
|
|
||||||
//todo: temperature derivatives
|
// get all derivatives of branch DC currents
|
||||||
Ibbp_Vbbp = 1/here->HICUMrbx_t.rpart;
|
Ibbp_Vbbp = 1/here->HICUMrbx_t.rpart;
|
||||||
Icic_Vcic = 1/here->HICUMrcx_t.rpart;
|
Icic_Vcic = 1/here->HICUMrcx_t.rpart;
|
||||||
Ieie_Veie = 1/here->HICUMre_t.rpart;
|
Ieie_Veie = 1/here->HICUMre_t.rpart;
|
||||||
Isis_Vsis = 1/model->HICUMrsu;
|
Isis_Vsis = 1/model->HICUMrsu;
|
||||||
|
|
||||||
|
Ibbp_Vrth = -*(ckt->CKTstate0 + here->HICUMvbbp)/here->HICUMrbx_t.rpart/here->HICUMrbx_t.rpart*here->HICUMrbx_t.dpart;
|
||||||
|
Icic_Vrth = -*(ckt->CKTstate0 + here->HICUMvcic)/here->HICUMrcx_t.rpart/here->HICUMrcx_t.rpart*here->HICUMrcx_t.dpart;
|
||||||
|
Icic_Vrth = -*(ckt->CKTstate0 + here->HICUMveie)/here->HICUMre_t.rpart/here->HICUMre_t.rpart*here->HICUMre_t.dpart;
|
||||||
|
Isis_Vrth = 0.0;
|
||||||
|
|
||||||
Ibiei_Vbiei = *(ckt->CKTstate0 + here->HICUMibiei_Vbiei);
|
Ibiei_Vbiei = *(ckt->CKTstate0 + here->HICUMibiei_Vbiei);
|
||||||
Ibiei_Vbici = *(ckt->CKTstate0 + here->HICUMibiei_Vbici);
|
Ibiei_Vbici = *(ckt->CKTstate0 + here->HICUMibiei_Vbici);
|
||||||
Ibiei_Vrth = *(ckt->CKTstate0 + here->HICUMibiei_Vrth);
|
Ibiei_Vrth = *(ckt->CKTstate0 + here->HICUMibiei_Vrth);
|
||||||
|
|
@ -109,9 +113,12 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
|
|
||||||
Ibpbi_Vbpbi = *(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi);
|
Ibpbi_Vbpbi = *(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi);
|
||||||
Ibpbi_Vbiei = *(ckt->CKTstate0 + here->HICUMibpbi_Vbiei);
|
Ibpbi_Vbiei = *(ckt->CKTstate0 + here->HICUMibpbi_Vbiei);
|
||||||
Ibpbi_Vciei = *(ckt->CKTstate0 + here->HICUMibpbi_Vbici);
|
Ibpbi_Vbici = *(ckt->CKTstate0 + here->HICUMibpbi_Vbici);
|
||||||
Ibpbi_Vrth = *(ckt->CKTstate0 + here->HICUMibpbi_Vrth);
|
Ibpbi_Vrth = *(ckt->CKTstate0 + here->HICUMibpbi_Vrth);
|
||||||
|
|
||||||
|
Ibpci_Vbpci = *(ckt->CKTstate0 + here->HICUMibpci_Vbpci);
|
||||||
|
Ibpci_Vrth = *(ckt->CKTstate0 + here->HICUMibpci_Vrth);
|
||||||
|
|
||||||
Isici_Vsici = *(ckt->CKTstate0 + here->HICUMisici_Vsici);
|
Isici_Vsici = *(ckt->CKTstate0 + here->HICUMisici_Vsici);
|
||||||
Isici_Vrth = *(ckt->CKTstate0 + here->HICUMisici_Vrth);
|
Isici_Vrth = *(ckt->CKTstate0 + here->HICUMisici_Vrth);
|
||||||
|
|
||||||
|
|
@ -119,116 +126,109 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
Ibpsi_Vsici = *(ckt->CKTstate0 + here->HICUMibpsi_Vsici);
|
Ibpsi_Vsici = *(ckt->CKTstate0 + here->HICUMibpsi_Vsici);
|
||||||
Ibpsi_Vrth = *(ckt->CKTstate0 + here->HICUMibpsi_Vrth);
|
Ibpsi_Vrth = *(ckt->CKTstate0 + here->HICUMibpsi_Vrth);
|
||||||
|
|
||||||
Ibpci_Vbpci = *(ckt->CKTstate0 + here->HICUMibpci_Vbpci);
|
////////////////////////////////////
|
||||||
Ibpci_Vrth = *(ckt->CKTstate0 + here->HICUMibpci_Vrth);
|
////////// The real part /////////
|
||||||
|
////////////////////////////////////
|
||||||
|
|
||||||
/*
|
// Stamp element: Ibiei
|
||||||
c The real part
|
*(here->HICUMbaseBIBaseBIPtr) += Ibiei_Vbiei;
|
||||||
*/
|
*(here->HICUMemitEIEmitEIPtr) += Ibiei_Vbiei;
|
||||||
/*
|
*(here->HICUMbaseBIEmitEIPtr) += -Ibiei_Vbiei;
|
||||||
c Stamp element: Ibiei (missing Ibiei_Vbici)
|
*(here->HICUMemitEIBaseBIPtr) += -Ibiei_Vbiei;
|
||||||
*/
|
*(here->HICUMbaseBIBaseBIPtr) += Ibiei_Vbici;
|
||||||
*(here->HICUMbaseBIBaseBIPtr) += Ibiei_Vbiei;
|
*(here->HICUMemitEICollCIPtr) += Ibiei_Vbici;
|
||||||
*(here->HICUMbaseBIEmitEIPtr) += -Ibiei_Vbiei;
|
*(here->HICUMbaseBICollCIPtr) += -Ibiei_Vbici;
|
||||||
*(here->HICUMemitEIBaseBIPtr) += -Ibiei_Vbiei;
|
*(here->HICUMemitEIBaseBIPtr) += -Ibiei_Vbici;
|
||||||
*(here->HICUMemitEIEmitEIPtr) += Ibiei_Vbiei;
|
|
||||||
/*
|
|
||||||
c Stamp element: Ibpei
|
|
||||||
*/
|
|
||||||
*(here->HICUMbaseBPBaseBPPtr) += Ibpei_Vbpei;
|
|
||||||
*(here->HICUMbaseBPEmitEIPtr) += -Ibpei_Vbpei;
|
|
||||||
*(here->HICUMemitEIBaseBPPtr) += -Ibpei_Vbpei;
|
|
||||||
*(here->HICUMemitEIEmitEIPtr) += Ibpei_Vbpei;
|
|
||||||
|
|
||||||
/*
|
// Stamp element: Ibpei
|
||||||
c Stamp element: Iciei
|
*(here->HICUMbaseBPBaseBPPtr) += Ibpei_Vbpei;
|
||||||
*/
|
*(here->HICUMemitEIEmitEIPtr) += Ibpei_Vbpei;
|
||||||
*(here->HICUMcollCIBaseBIPtr) += Iciei_Vbiei;
|
*(here->HICUMbaseBPEmitEIPtr) += -Ibpei_Vbpei;
|
||||||
*(here->HICUMcollCIEmitEIPtr) += -Iciei_Vbiei;
|
*(here->HICUMemitEIBaseBPPtr) += -Ibpei_Vbpei;;
|
||||||
*(here->HICUMemitEIBaseBIPtr) += -Iciei_Vbiei;
|
|
||||||
*(here->HICUMemitEIEmitEIPtr) += Iciei_Vbiei;
|
// Stamp element: Iciei
|
||||||
*(here->HICUMcollCIBaseBIPtr) += Iciei_Vbici;
|
*(here->HICUMcollCIBaseBIPtr) += Iciei_Vbiei;
|
||||||
*(here->HICUMcollCICollCIPtr) += -Iciei_Vbici;
|
*(here->HICUMemitEIEmitEIPtr) += Iciei_Vbiei;
|
||||||
*(here->HICUMemitEIBaseBIPtr) += -Iciei_Vbici;
|
*(here->HICUMcollCIEmitEIPtr) += -Iciei_Vbiei;
|
||||||
*(here->HICUMemitEICollCIPtr) += Iciei_Vbici;
|
*(here->HICUMemitEIBaseBIPtr) += -Iciei_Vbiei;
|
||||||
/*
|
*(here->HICUMcollCIBaseBIPtr) += Iciei_Vbici;
|
||||||
c Stamp element: Ibici (missing Ibici_Vbiei)
|
*(here->HICUMemitEICollCIPtr) += Iciei_Vbici;
|
||||||
*/
|
*(here->HICUMcollCICollCIPtr) += -Iciei_Vbici;
|
||||||
*(here->HICUMbaseBIBaseBIPtr) += Ibici_Vbici;
|
*(here->HICUMemitEIBaseBIPtr) += -Iciei_Vbici;
|
||||||
*(here->HICUMbaseBICollCIPtr) += -Ibici_Vbici;
|
|
||||||
*(here->HICUMcollCIBaseBIPtr) += -Ibici_Vbici;
|
// Stamp element: Ibici (missing Ibici_Vbiei)
|
||||||
*(here->HICUMcollCICollCIPtr) += Ibici_Vbici;
|
*(here->HICUMbaseBIBaseBIPtr) += Ibici_Vbici;
|
||||||
/*
|
*(here->HICUMcollCICollCIPtr) += Ibici_Vbici;
|
||||||
c Stamp element: Ibpci
|
*(here->HICUMcollCIBaseBIPtr) += -Ibici_Vbici;
|
||||||
*/
|
*(here->HICUMbaseBICollCIPtr) += -Ibici_Vbici;
|
||||||
*(here->HICUMbaseBPCollCIPtr) += Ibpci_Vbpci;
|
*(here->HICUMbaseBIBaseBIPtr) += Ibici_Vbiei;
|
||||||
*(here->HICUMbaseBPBaseBPPtr) += -Ibpci_Vbpci;
|
*(here->HICUMcollCIEmitEIPtr) += Ibici_Vbiei;
|
||||||
*(here->HICUMcollCIBaseBPPtr) += -Ibpci_Vbpci;
|
*(here->HICUMcollCIBaseBIPtr) += -Ibici_Vbiei;
|
||||||
*(here->HICUMcollCICollCIPtr) += Ibpci_Vbpci;
|
*(here->HICUMbaseBIEmitEIPtr) += -Ibici_Vbiei;
|
||||||
/*
|
|
||||||
c Stamp element: Rcx
|
// Stamp element: Ibpci
|
||||||
*/
|
*(here->HICUMbaseBPBaseBPPtr) += Ibpci_Vbpci;
|
||||||
*(here->HICUMcollCollPtr) += Icic_Vcic;
|
*(here->HICUMcollCICollCIPtr) += Ibpci_Vbpci;
|
||||||
*(here->HICUMcollCICollPtr) += -Icic_Vcic;
|
*(here->HICUMbaseBPCollCIPtr) += -Ibpci_Vbpci;
|
||||||
*(here->HICUMcollCollCIPtr) += -Icic_Vcic;
|
*(here->HICUMcollCIBaseBPPtr) += -Ibpci_Vbpci;
|
||||||
*(here->HICUMcollCICollCIPtr) += Icic_Vcic;
|
|
||||||
/*
|
// Stamp element: Rcx
|
||||||
c Stamp element: Rbx
|
*(here->HICUMcollCollPtr) += Icic_Vcic;
|
||||||
*/
|
*(here->HICUMcollCICollCIPtr) += Icic_Vcic;
|
||||||
*(here->HICUMbaseBasePtr) += Ibbp_Vbbp;
|
*(here->HICUMcollCICollPtr) += -Icic_Vcic;
|
||||||
*(here->HICUMbaseBPBasePtr) += -Ibbp_Vbbp;
|
*(here->HICUMcollCollCIPtr) += -Icic_Vcic;
|
||||||
*(here->HICUMbaseBaseBPPtr) += -Ibbp_Vbbp;
|
|
||||||
*(here->HICUMbaseBPBaseBPPtr) += Ibbp_Vbbp;
|
// Stamp element: Rbx
|
||||||
/*
|
*(here->HICUMbaseBasePtr) += Ibbp_Vbbp;
|
||||||
c Stamp element: Ibpbi
|
*(here->HICUMbaseBPBaseBPPtr) += Ibbp_Vbbp;
|
||||||
*/
|
*(here->HICUMbaseBPBasePtr) += -Ibbp_Vbbp;
|
||||||
*(here->HICUMbaseBPBaseBPPtr) += Ibpbi_Vbpbi;
|
*(here->HICUMbaseBaseBPPtr) += -Ibbp_Vbbp;
|
||||||
*(here->HICUMbaseBPBaseBIPtr) += -Ibpbi_Vbpbi;
|
|
||||||
*(here->HICUMbaseBPBaseBIPtr) += Ibpbi_Vbiei;
|
// Stamp element: Ibpbi
|
||||||
*(here->HICUMbaseBPEmitEIPtr) += -Ibpbi_Vbiei;
|
*(here->HICUMbaseBPBaseBPPtr) += Ibpbi_Vbpbi;
|
||||||
*(here->HICUMbaseBPCollCIPtr) += Ibpbi_Vciei;
|
*(here->HICUMbaseBIBaseBIPtr) += Ibpbi_Vbpbi;
|
||||||
*(here->HICUMbaseBPEmitEIPtr) += -Ibpbi_Vciei;
|
*(here->HICUMbaseBPBaseBIPtr) += -Ibpbi_Vbpbi;
|
||||||
*(here->HICUMbaseBIBaseBPPtr) += -Ibpbi_Vbpbi;
|
*(here->HICUMbaseBIBaseBPPtr) += -Ibpbi_Vbpbi;
|
||||||
*(here->HICUMbaseBIBaseBIPtr) += Ibpbi_Vbpbi;
|
*(here->HICUMbaseBPBaseBIPtr) += Ibpbi_Vbiei;
|
||||||
*(here->HICUMbaseBIBaseBIPtr) += -Ibpbi_Vbiei;
|
*(here->HICUMbaseBIEmitEIPtr) += Ibpbi_Vbiei;
|
||||||
*(here->HICUMbaseBIEmitEIPtr) += Ibpbi_Vbiei;
|
*(here->HICUMbaseBPEmitEIPtr) += -Ibpbi_Vbiei;
|
||||||
*(here->HICUMbaseBICollCIPtr) += -Ibpbi_Vciei;
|
*(here->HICUMbaseBIBaseBIPtr) += -Ibpbi_Vbiei;
|
||||||
*(here->HICUMbaseBIEmitEIPtr) += Ibpbi_Vciei;
|
*(here->HICUMbaseBPBaseBIPtr) += Ibpbi_Vbici;
|
||||||
/*
|
*(here->HICUMbaseBICollCIPtr) += Ibpbi_Vbici;
|
||||||
c Stamp element: Re
|
*(here->HICUMbaseBPCollCIPtr) += -Ibpbi_Vbici;
|
||||||
*/
|
*(here->HICUMbaseBIBaseBIPtr) += -Ibpbi_Vbici
|
||||||
*(here->HICUMemitEmitPtr) += Ieie_Veie;
|
|
||||||
*(here->HICUMemitEIEmitPtr) += -Ieie_Veie;
|
// Stamp element: Re
|
||||||
*(here->HICUMemitEmitEIPtr) += -Ieie_Veie;
|
*(here->HICUMemitEmitPtr) += Ieie_Veie;
|
||||||
*(here->HICUMemitEIEmitEIPtr) += Ieie_Veie;
|
*(here->HICUMemitEIEmitEIPtr) += Ieie_Veie;
|
||||||
/*
|
*(here->HICUMemitEIEmitPtr) += -Ieie_Veie;
|
||||||
c Stamp element: Isici
|
*(here->HICUMemitEmitEIPtr) += -Ieie_Veie;
|
||||||
*/
|
|
||||||
*(here->HICUMsubsSISubsSIPtr) += Isici_Vsici;
|
// Stamp element: Isici
|
||||||
*(here->HICUMsubsSICollCIPtr) += -Isici_Vsici;
|
*(here->HICUMsubsSISubsSIPtr) += Isici_Vsici;
|
||||||
*(here->HICUMcollCISubsSIPtr) += -Isici_Vsici;
|
*(here->HICUMcollCICollCIPtr) += Isici_Vsici;
|
||||||
*(here->HICUMcollCICollCIPtr) += Isici_Vsici;
|
*(here->HICUMsubsSICollCIPtr) += -Isici_Vsici;
|
||||||
/*
|
*(here->HICUMcollCISubsSIPtr) += -Isici_Vsici;;
|
||||||
c Stamp element: Ibpsi
|
|
||||||
*/
|
// Stamp element: Ibpsi
|
||||||
*(here->HICUMbaseBPBaseBPPtr) += Ibpsi_Vbpci;
|
*(here->HICUMbaseBPSubsSIPtr) += Ibpsi_Vsici;
|
||||||
*(here->HICUMbaseBPCollCIPtr) += -Ibpsi_Vbpci;
|
*(here->HICUMsubsSICollCIPtr) += Ibpsi_Vsici;
|
||||||
*(here->HICUMbaseBPSubsSIPtr) += Ibpsi_Vsici;
|
*(here->HICUMbaseBPCollCIPtr) += -Ibpsi_Vsici;
|
||||||
*(here->HICUMbaseBPCollCIPtr) += -Ibpsi_Vsici;
|
*(here->HICUMsubsSISubsSIPtr) += -Ibpsi_Vsici;
|
||||||
*(here->HICUMsubsSIBaseBPPtr) += -Ibpsi_Vbpci;
|
*(here->HICUMbaseBPBaseBPPtr) += Ibpsi_Vbpci;
|
||||||
*(here->HICUMsubsSICollCIPtr) += Ibpsi_Vbpci;
|
*(here->HICUMsubsSICollCIPtr) += Ibpsi_Vbpci;
|
||||||
*(here->HICUMsubsSISubsSIPtr) += -Ibpsi_Vsici;
|
*(here->HICUMbaseBPCollCIPtr) += -Ibpsi_Vbpci;
|
||||||
*(here->HICUMsubsSICollCIPtr) += Ibpsi_Vsici;
|
*(here->HICUMsubsSIBaseBPPtr) += -Ibpsi_Vbpci;;
|
||||||
/*
|
|
||||||
c Stamp element: Rs
|
// Stamp element: Rs
|
||||||
*/
|
*(here->HICUMsubsSubsPtr) += Isis_Vsis;
|
||||||
*(here->HICUMsubsSubsPtr) += Isis_Vsis;
|
*(here->HICUMsubsSISubsSIPtr) += Isis_Vsis;
|
||||||
*(here->HICUMsubsSISubsPtr) += -Isis_Vsis;
|
*(here->HICUMsubsSISubsPtr) += -Isis_Vsis;
|
||||||
*(here->HICUMsubsSubsSIPtr) += -Isis_Vsis;
|
*(here->HICUMsubsSubsSIPtr) += -Isis_Vsis;;
|
||||||
*(here->HICUMsubsSISubsSIPtr) += Isis_Vsis;
|
|
||||||
/*
|
////////////////////////////////////
|
||||||
c The complex part
|
////////// The complex part //////
|
||||||
*/
|
////////////////////////////////////
|
||||||
//todo: Complete with partial dervatives e.g. Qjs_Vsici, Qrbi_Vbici
|
//todo: Complete with partial dervatives e.g. Qjs_Vsici, Qrbi_Vbici
|
||||||
|
|
||||||
XQrbi_Vbpbi = *(ckt->CKTstate0 + here->HICUMcqrbi) * ckt->CKTomega;
|
XQrbi_Vbpbi = *(ckt->CKTstate0 + here->HICUMcqrbi) * ckt->CKTomega;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue