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_Vciei;
|
||||
double Ibpbi_Vbici;
|
||||
double Ibpbi_Vbiei;
|
||||
double Ibpbi_Vrth;
|
||||
|
||||
double Isis_Vsis;
|
||||
|
||||
double Icic_Vcic;
|
||||
double Ieie_Veie;
|
||||
double Ibbp_Vbbp;
|
||||
double Isis_Vsis, Isis_Vrth;
|
||||
double Icic_Vcic, Icic_Vrth;
|
||||
double Ieie_Veie, Ieie_Vrth;
|
||||
double Ibbp_Vbbp, Ibbp_Vrth;
|
||||
|
||||
double Ibpsi_Vbpci;
|
||||
double Ibpsi_Vsici;
|
||||
|
|
@ -86,12 +85,17 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for( here = HICUMinstances(model); here!= NULL;
|
||||
here = HICUMnextInstance(here)) {
|
||||
|
||||
//todo: temperature derivatives
|
||||
// get all derivatives of branch DC currents
|
||||
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;
|
||||
|
||||
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_Vbici = *(ckt->CKTstate0 + here->HICUMibiei_Vbici);
|
||||
Ibiei_Vrth = *(ckt->CKTstate0 + here->HICUMibiei_Vrth);
|
||||
|
|
@ -109,9 +113,12 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
Ibpbi_Vbpbi = *(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi);
|
||||
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);
|
||||
|
||||
Ibpci_Vbpci = *(ckt->CKTstate0 + here->HICUMibpci_Vbpci);
|
||||
Ibpci_Vrth = *(ckt->CKTstate0 + here->HICUMibpci_Vrth);
|
||||
|
||||
Isici_Vsici = *(ckt->CKTstate0 + here->HICUMisici_Vsici);
|
||||
Isici_Vrth = *(ckt->CKTstate0 + here->HICUMisici_Vrth);
|
||||
|
||||
|
|
@ -119,116 +126,109 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
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);
|
||||
////////////////////////////////////
|
||||
////////// The real part /////////
|
||||
////////////////////////////////////
|
||||
|
||||
/*
|
||||
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;
|
||||
// Stamp element: Ibiei
|
||||
*(here->HICUMbaseBIBaseBIPtr) += Ibiei_Vbiei;
|
||||
*(here->HICUMemitEIEmitEIPtr) += Ibiei_Vbiei;
|
||||
*(here->HICUMbaseBIEmitEIPtr) += -Ibiei_Vbiei;
|
||||
*(here->HICUMemitEIBaseBIPtr) += -Ibiei_Vbiei;
|
||||
*(here->HICUMbaseBIBaseBIPtr) += Ibiei_Vbici;
|
||||
*(here->HICUMemitEICollCIPtr) += Ibiei_Vbici;
|
||||
*(here->HICUMbaseBICollCIPtr) += -Ibiei_Vbici;
|
||||
*(here->HICUMemitEIBaseBIPtr) += -Ibiei_Vbici;
|
||||
|
||||
/*
|
||||
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
|
||||
*/
|
||||
// Stamp element: Ibpei
|
||||
*(here->HICUMbaseBPBaseBPPtr) += Ibpei_Vbpei;
|
||||
*(here->HICUMemitEIEmitEIPtr) += Ibpei_Vbpei;
|
||||
*(here->HICUMbaseBPEmitEIPtr) += -Ibpei_Vbpei;
|
||||
*(here->HICUMemitEIBaseBPPtr) += -Ibpei_Vbpei;;
|
||||
|
||||
// Stamp element: Iciei
|
||||
*(here->HICUMcollCIBaseBIPtr) += Iciei_Vbiei;
|
||||
*(here->HICUMemitEIEmitEIPtr) += Iciei_Vbiei;
|
||||
*(here->HICUMcollCIEmitEIPtr) += -Iciei_Vbiei;
|
||||
*(here->HICUMemitEIBaseBIPtr) += -Iciei_Vbiei;
|
||||
*(here->HICUMcollCIBaseBIPtr) += Iciei_Vbici;
|
||||
*(here->HICUMemitEICollCIPtr) += Iciei_Vbici;
|
||||
*(here->HICUMcollCICollCIPtr) += -Iciei_Vbici;
|
||||
*(here->HICUMemitEIBaseBIPtr) += -Iciei_Vbici;
|
||||
|
||||
// Stamp element: Ibici (missing Ibici_Vbiei)
|
||||
*(here->HICUMbaseBIBaseBIPtr) += Ibici_Vbici;
|
||||
*(here->HICUMcollCICollCIPtr) += Ibici_Vbici;
|
||||
*(here->HICUMcollCIBaseBIPtr) += -Ibici_Vbici;
|
||||
*(here->HICUMbaseBICollCIPtr) += -Ibici_Vbici;
|
||||
*(here->HICUMbaseBIBaseBIPtr) += Ibici_Vbiei;
|
||||
*(here->HICUMcollCIEmitEIPtr) += Ibici_Vbiei;
|
||||
*(here->HICUMcollCIBaseBIPtr) += -Ibici_Vbiei;
|
||||
*(here->HICUMbaseBIEmitEIPtr) += -Ibici_Vbiei;
|
||||
|
||||
// Stamp element: Ibpci
|
||||
*(here->HICUMbaseBPBaseBPPtr) += Ibpci_Vbpci;
|
||||
*(here->HICUMcollCICollCIPtr) += Ibpci_Vbpci;
|
||||
*(here->HICUMbaseBPCollCIPtr) += -Ibpci_Vbpci;
|
||||
*(here->HICUMcollCIBaseBPPtr) += -Ibpci_Vbpci;
|
||||
|
||||
// Stamp element: Rcx
|
||||
*(here->HICUMcollCollPtr) += Icic_Vcic;
|
||||
*(here->HICUMcollCICollCIPtr) += Icic_Vcic;
|
||||
*(here->HICUMcollCICollPtr) += -Icic_Vcic;
|
||||
*(here->HICUMcollCollCIPtr) += -Icic_Vcic;
|
||||
|
||||
// Stamp element: Rbx
|
||||
*(here->HICUMbaseBasePtr) += Ibbp_Vbbp;
|
||||
*(here->HICUMbaseBPBaseBPPtr) += Ibbp_Vbbp;
|
||||
*(here->HICUMbaseBPBasePtr) += -Ibbp_Vbbp;
|
||||
*(here->HICUMbaseBaseBPPtr) += -Ibbp_Vbbp;
|
||||
|
||||
// Stamp element: Ibpbi
|
||||
*(here->HICUMbaseBPBaseBPPtr) += Ibpbi_Vbpbi;
|
||||
*(here->HICUMbaseBIBaseBIPtr) += Ibpbi_Vbpbi;
|
||||
*(here->HICUMbaseBPBaseBIPtr) += -Ibpbi_Vbpbi;
|
||||
*(here->HICUMbaseBIBaseBPPtr) += -Ibpbi_Vbpbi;
|
||||
*(here->HICUMbaseBPBaseBIPtr) += Ibpbi_Vbiei;
|
||||
*(here->HICUMbaseBIEmitEIPtr) += Ibpbi_Vbiei;
|
||||
*(here->HICUMbaseBPEmitEIPtr) += -Ibpbi_Vbiei;
|
||||
*(here->HICUMbaseBIBaseBIPtr) += -Ibpbi_Vbiei;
|
||||
*(here->HICUMbaseBPBaseBIPtr) += Ibpbi_Vbici;
|
||||
*(here->HICUMbaseBICollCIPtr) += Ibpbi_Vbici;
|
||||
*(here->HICUMbaseBPCollCIPtr) += -Ibpbi_Vbici;
|
||||
*(here->HICUMbaseBIBaseBIPtr) += -Ibpbi_Vbici
|
||||
|
||||
// Stamp element: Re
|
||||
*(here->HICUMemitEmitPtr) += Ieie_Veie;
|
||||
*(here->HICUMemitEIEmitEIPtr) += Ieie_Veie;
|
||||
*(here->HICUMemitEIEmitPtr) += -Ieie_Veie;
|
||||
*(here->HICUMemitEmitEIPtr) += -Ieie_Veie;
|
||||
|
||||
// Stamp element: Isici
|
||||
*(here->HICUMsubsSISubsSIPtr) += Isici_Vsici;
|
||||
*(here->HICUMcollCICollCIPtr) += Isici_Vsici;
|
||||
*(here->HICUMsubsSICollCIPtr) += -Isici_Vsici;
|
||||
*(here->HICUMcollCISubsSIPtr) += -Isici_Vsici;;
|
||||
|
||||
// Stamp element: Ibpsi
|
||||
*(here->HICUMbaseBPSubsSIPtr) += Ibpsi_Vsici;
|
||||
*(here->HICUMsubsSICollCIPtr) += Ibpsi_Vsici;
|
||||
*(here->HICUMbaseBPCollCIPtr) += -Ibpsi_Vsici;
|
||||
*(here->HICUMsubsSISubsSIPtr) += -Ibpsi_Vsici;
|
||||
*(here->HICUMbaseBPBaseBPPtr) += Ibpsi_Vbpci;
|
||||
*(here->HICUMsubsSICollCIPtr) += Ibpsi_Vbpci;
|
||||
*(here->HICUMbaseBPCollCIPtr) += -Ibpsi_Vbpci;
|
||||
*(here->HICUMsubsSIBaseBPPtr) += -Ibpsi_Vbpci;;
|
||||
|
||||
// Stamp element: Rs
|
||||
*(here->HICUMsubsSubsPtr) += Isis_Vsis;
|
||||
*(here->HICUMsubsSISubsSIPtr) += Isis_Vsis;
|
||||
*(here->HICUMsubsSISubsPtr) += -Isis_Vsis;
|
||||
*(here->HICUMsubsSubsSIPtr) += -Isis_Vsis;;
|
||||
|
||||
////////////////////////////////////
|
||||
////////// The complex part //////
|
||||
////////////////////////////////////
|
||||
//todo: Complete with partial dervatives e.g. Qjs_Vsici, Qrbi_Vbici
|
||||
|
||||
XQrbi_Vbpbi = *(ckt->CKTstate0 + here->HICUMcqrbi) * ckt->CKTomega;
|
||||
|
|
|
|||
Loading…
Reference in New Issue