adding derivatives of branches with respect to Vrth to the state vector
This commit is contained in:
parent
a6b39a749c
commit
e4b4978368
|
|
@ -23,20 +23,41 @@ 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 Ibbp_Vbbp;
|
||||
double Iciei_Vrth;
|
||||
|
||||
|
||||
double Ibpbi_Vbpbi;
|
||||
double Ibpbi_Vciei;
|
||||
double Ibpbi_Vbiei;
|
||||
double Ibpbi_Vrth;
|
||||
|
||||
double Isis_Vsis;
|
||||
double Ieie_Veie;
|
||||
double Ibpbi_Vbpbi, Ibpbi_Vciei, Ibpbi_Vbiei;
|
||||
double Ibpsi_Vbpci, Ibpsi_Vsici;
|
||||
|
||||
double Icic_Vcic;
|
||||
double Ieie_Veie;
|
||||
double Ibbp_Vbbp;
|
||||
|
||||
double Ibpsi_Vbpci;
|
||||
double Ibpsi_Vsici;
|
||||
double Ibpsi_Vrth;
|
||||
|
||||
double XQrbi_Vbpbi;
|
||||
// double XQrbi_Vbiei;
|
||||
|
|
@ -65,6 +86,7 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
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;
|
||||
|
|
@ -72,18 +94,33 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
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
|
||||
|
|
|
|||
|
|
@ -80,24 +80,32 @@ HICUMconvTest(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
ibieihat = *(ckt->CKTstate0 + here->HICUMibiei) +
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vbiei)*delvbiei +
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vrth)*delvrth +
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vbici)*delvbici;
|
||||
ibicihat = *(ckt->CKTstate0 + here->HICUMibici) +
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vbici)*delvbici+
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vrth)*delvrth+
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vbiei)*delvbiei;
|
||||
icieihat = *(ckt->CKTstate0 + here->HICUMiciei) +
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vbiei)*delvbiei +
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vrth)*delvrth +
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vbici)*delvbici;
|
||||
ibpeihat = *(ckt->CKTstate0 + here->HICUMibpei) +
|
||||
*(ckt->CKTstate0 + here->HICUMibpei_Vrth)*delvrth+
|
||||
*(ckt->CKTstate0 + here->HICUMibpei_Vbpei)*delvbpei;
|
||||
ibpbihat = *(ckt->CKTstate0 + here->HICUMibpbi) +
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbiei)*delvbiei +
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vrth)*delvrth +
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbici)*delvbici;
|
||||
ibpcihat = *(ckt->CKTstate0 + here->HICUMibpci) +
|
||||
*(ckt->CKTstate0 + here->HICUMibpci_Vrth)*delvrth+
|
||||
*(ckt->CKTstate0 + here->HICUMibpci_Vbpci)*delvbici;
|
||||
ibpsihat = *(ckt->CKTstate0 + here->HICUMibpsi) +
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vbpci)*delvbpci +
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vrth)*delvrth +
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vsici)*delvsici;
|
||||
isicihat = *(ckt->CKTstate0 + here->HICUMisici) +
|
||||
*(ckt->CKTstate0 + here->HICUMisici_Vrth)*delvrth+
|
||||
*(ckt->CKTstate0 + here->HICUMisici_Vsici)*delvsici;
|
||||
ithhat = *(ckt->CKTstate0 + here->HICUMith) +
|
||||
*(ckt->CKTstate0 + here->HICUMith_Vrth)*delvrth;
|
||||
|
|
|
|||
|
|
@ -314,123 +314,132 @@ typedef struct sHICUMinstance {
|
|||
#define HICUMibiei HICUMstate+6
|
||||
#define HICUMibiei_Vbiei HICUMstate+7
|
||||
#define HICUMibiei_Vbici HICUMstate+8
|
||||
#define HICUMibiei_Vrth HICUMstate+9
|
||||
|
||||
#define HICUMibpei HICUMstate+9
|
||||
#define HICUMibpei_Vbpei HICUMstate+10
|
||||
#define HICUMibpei HICUMstate+10
|
||||
#define HICUMibpei_Vbpei HICUMstate+11
|
||||
#define HICUMibpei_Vrth HICUMstate+12
|
||||
|
||||
#define HICUMiciei HICUMstate+11
|
||||
#define HICUMiciei_Vbiei HICUMstate+12
|
||||
#define HICUMiciei_Vbici HICUMstate+13
|
||||
#define HICUMiciei HICUMstate+13
|
||||
#define HICUMiciei_Vbiei HICUMstate+14
|
||||
#define HICUMiciei_Vbici HICUMstate+15
|
||||
#define HICUMiciei_Vrth HICUMstate+16
|
||||
|
||||
#define HICUMibici HICUMstate+14
|
||||
#define HICUMibici_Vbici HICUMstate+15
|
||||
#define HICUMibici_Vbiei HICUMstate+16
|
||||
#define HICUMibici HICUMstate+17
|
||||
#define HICUMibici_Vbici HICUMstate+18
|
||||
#define HICUMibici_Vbiei HICUMstate+19
|
||||
#define HICUMibici_Vrth HICUMstate+20
|
||||
|
||||
#define HICUMibpbi HICUMstate+17
|
||||
#define HICUMibpbi_Vbpbi HICUMstate+18
|
||||
#define HICUMibpbi_Vbiei HICUMstate+19
|
||||
#define HICUMibpbi_Vbici HICUMstate+20
|
||||
#define HICUMibpbi HICUMstate+21
|
||||
#define HICUMibpbi_Vbpbi HICUMstate+22
|
||||
#define HICUMibpbi_Vbiei HICUMstate+23
|
||||
#define HICUMibpbi_Vbici HICUMstate+24
|
||||
#define HICUMibpbi_Vrth HICUMstate+25
|
||||
|
||||
#define HICUMibpci HICUMstate+21
|
||||
#define HICUMibpci_Vbpci HICUMstate+22
|
||||
#define HICUMibpci HICUMstate+26
|
||||
#define HICUMibpci_Vbpci HICUMstate+27
|
||||
#define HICUMibpci_Vrth HICUMstate+28
|
||||
|
||||
#define HICUMisici HICUMstate+23
|
||||
#define HICUMisici_Vsici HICUMstate+24
|
||||
#define HICUMisici HICUMstate+29
|
||||
#define HICUMisici_Vsici HICUMstate+30
|
||||
#define HICUMisici_Vrth HICUMstate+31
|
||||
|
||||
#define HICUMibpsi HICUMstate+25
|
||||
#define HICUMibpsi_Vbpci HICUMstate+26
|
||||
#define HICUMibpsi_Vsici HICUMstate+27
|
||||
#define HICUMibpsi HICUMstate+32
|
||||
#define HICUMibpsi_Vbpci HICUMstate+33
|
||||
#define HICUMibpsi_Vsici HICUMstate+34
|
||||
#define HICUMibpsi_Vrth HICUMstate+35
|
||||
|
||||
#define HICUMisis_Vsis HICUMstate+28
|
||||
#define HICUMisis_Vsis HICUMstate+36
|
||||
|
||||
#define HICUMieie HICUMstate+29 // needed for re-flicker noise
|
||||
#define HICUMieie HICUMstate+39 // needed for re-flicker noise
|
||||
#define HICUMieie_Vrth HICUMstate+40
|
||||
|
||||
#define HICUMqrbi HICUMstate+30
|
||||
#define HICUMcqrbi HICUMstate+31
|
||||
#define HICUMqrbi HICUMstate+41
|
||||
#define HICUMcqrbi HICUMstate+42
|
||||
|
||||
#define HICUMqjei HICUMstate+32
|
||||
#define HICUMcqjei HICUMstate+33
|
||||
#define HICUMqjei HICUMstate+43
|
||||
#define HICUMcqjei HICUMstate+44
|
||||
|
||||
#define HICUMqdeix HICUMstate+34
|
||||
#define HICUMcqdeix HICUMstate+35
|
||||
#define HICUMqdeix HICUMstate+45
|
||||
#define HICUMcqdeix HICUMstate+46
|
||||
|
||||
#define HICUMqjci HICUMstate+36
|
||||
#define HICUMcqjci HICUMstate+37
|
||||
#define HICUMqjci HICUMstate+47
|
||||
#define HICUMcqjci HICUMstate+48
|
||||
|
||||
#define HICUMqdci HICUMstate+38
|
||||
#define HICUMcqdci HICUMstate+39
|
||||
#define HICUMqdci HICUMstate+49
|
||||
#define HICUMcqdci HICUMstate+50
|
||||
|
||||
#define HICUMqjep HICUMstate+40
|
||||
#define HICUMcqjep HICUMstate+41
|
||||
#define HICUMqjep HICUMstate+51
|
||||
#define HICUMcqjep HICUMstate+52
|
||||
|
||||
#define HICUMqjcx0_i HICUMstate+42
|
||||
#define HICUMcqcx0_t_i HICUMstate+43
|
||||
#define HICUMqjcx0_i HICUMstate+53
|
||||
#define HICUMcqcx0_t_i HICUMstate+54
|
||||
|
||||
#define HICUMqjcx0_ii HICUMstate+44
|
||||
#define HICUMcqcx0_t_ii HICUMstate+45
|
||||
#define HICUMqjcx0_ii HICUMstate+55
|
||||
#define HICUMcqcx0_t_ii HICUMstate+56
|
||||
|
||||
#define HICUMqdsu HICUMstate+46
|
||||
#define HICUMcqdsu HICUMstate+47
|
||||
#define HICUMqdsu HICUMstate+57
|
||||
#define HICUMcqdsu HICUMstate+58
|
||||
|
||||
#define HICUMqjs HICUMstate+48
|
||||
#define HICUMcqjs HICUMstate+49
|
||||
#define HICUMqjs HICUMstate+59
|
||||
#define HICUMcqjs HICUMstate+60
|
||||
|
||||
#define HICUMqscp HICUMstate+50
|
||||
#define HICUMcqscp HICUMstate+51
|
||||
#define HICUMqscp HICUMstate+61
|
||||
#define HICUMcqscp HICUMstate+62
|
||||
|
||||
#define HICUMqbepar1 HICUMstate+52
|
||||
#define HICUMcqbepar1 HICUMstate+53
|
||||
#define HICUMgqbepar1 HICUMstate+54
|
||||
#define HICUMqbepar1 HICUMstate+63
|
||||
#define HICUMcqbepar1 HICUMstate+64
|
||||
#define HICUMgqbepar1 HICUMstate+65
|
||||
|
||||
#define HICUMqbepar2 HICUMstate+55
|
||||
#define HICUMcqbepar2 HICUMstate+56
|
||||
#define HICUMgqbepar2 HICUMstate+57
|
||||
#define HICUMqbepar2 HICUMstate+66
|
||||
#define HICUMcqbepar2 HICUMstate+66
|
||||
#define HICUMgqbepar2 HICUMstate+67
|
||||
|
||||
#define HICUMqbcpar1 HICUMstate+58
|
||||
#define HICUMcqbcpar1 HICUMstate+59
|
||||
#define HICUMgqbcpar1 HICUMstate+60
|
||||
#define HICUMqbcpar1 HICUMstate+68
|
||||
#define HICUMcqbcpar1 HICUMstate+69
|
||||
#define HICUMgqbcpar1 HICUMstate+70
|
||||
|
||||
#define HICUMqbcpar2 HICUMstate+61
|
||||
#define HICUMcqbcpar2 HICUMstate+62
|
||||
#define HICUMgqbcpar2 HICUMstate+63
|
||||
#define HICUMqbcpar2 HICUMstate+71
|
||||
#define HICUMcqbcpar2 HICUMstate+72
|
||||
#define HICUMgqbcpar2 HICUMstate+73
|
||||
|
||||
#define HICUMqsu HICUMstate+64
|
||||
#define HICUMcqsu HICUMstate+65
|
||||
#define HICUMgqsu HICUMstate+66
|
||||
#define HICUMqsu HICUMstate+74
|
||||
#define HICUMcqsu HICUMstate+75
|
||||
#define HICUMgqsu HICUMstate+76
|
||||
|
||||
#define HICUMqcth HICUMstate+67 /* thermal capacitor charge */
|
||||
#define HICUMcqcth HICUMstate+68 /* thermal capacitor current */
|
||||
#define HICUMqcth HICUMstate+77 /* thermal capacitor charge */
|
||||
#define HICUMcqcth HICUMstate+78 /* thermal capacitor current */
|
||||
|
||||
#define HICUMvrth HICUMstate+69
|
||||
#define HICUMicth_dT HICUMstate+70
|
||||
#define HICUMvrth HICUMstate+79
|
||||
#define HICUMicth_dT HICUMstate+80
|
||||
|
||||
#define HICUMvxf HICUMstate+71
|
||||
#define HICUMqxf HICUMstate+72
|
||||
#define HICUMcqxf HICUMstate+73
|
||||
#define HICUMgqxf HICUMstate+74
|
||||
#define HICUMixf_Vbiei HICUMstate+75
|
||||
#define HICUMixf_Vbici HICUMstate+76
|
||||
#define HICUMvxf HICUMstate+81
|
||||
#define HICUMqxf HICUMstate+82
|
||||
#define HICUMcqxf HICUMstate+83
|
||||
#define HICUMgqxf HICUMstate+84
|
||||
#define HICUMixf_Vbiei HICUMstate+85
|
||||
#define HICUMixf_Vbici HICUMstate+86
|
||||
|
||||
#define HICUMvxf1 HICUMstate+77
|
||||
#define HICUMqxf1 HICUMstate+78
|
||||
#define HICUMcqxf1 HICUMstate+79
|
||||
#define HICUMgqxf1 HICUMstate+80
|
||||
#define HICUMixf1_Vbiei HICUMstate+81
|
||||
#define HICUMixf1_Vbici HICUMstate+82
|
||||
#define HICUMixf1_Vfx2 HICUMstate+83
|
||||
#define HICUMvxf1 HICUMstate+87
|
||||
#define HICUMqxf1 HICUMstate+88
|
||||
#define HICUMcqxf1 HICUMstate+89
|
||||
#define HICUMgqxf1 HICUMstate+90
|
||||
#define HICUMixf1_Vbiei HICUMstate+91
|
||||
#define HICUMixf1_Vbici HICUMstate+92
|
||||
#define HICUMixf1_Vfx2 HICUMstate+93
|
||||
|
||||
#define HICUMvxf2 HICUMstate+84
|
||||
#define HICUMqxf2 HICUMstate+85
|
||||
#define HICUMcqxf2 HICUMstate+86
|
||||
#define HICUMgqxf2 HICUMstate+87
|
||||
#define HICUMixf2_Vbiei HICUMstate+88
|
||||
#define HICUMixf2_Vbici HICUMstate+89
|
||||
#define HICUMixf2_Vfx1 HICUMstate+90
|
||||
#define HICUMvxf2 HICUMstate+94
|
||||
#define HICUMqxf2 HICUMstate+95
|
||||
#define HICUMcqxf2 HICUMstate+96
|
||||
#define HICUMgqxf2 HICUMstate+97
|
||||
#define HICUMixf2_Vbiei HICUMstate+98
|
||||
#define HICUMixf2_Vbici HICUMstate+99
|
||||
#define HICUMixf2_Vfx1 HICUMstate+100
|
||||
|
||||
#define HICUMith HICUMstate+91
|
||||
#define HICUMith_Vrth HICUMstate+92
|
||||
#define HICUMith HICUMstate+101
|
||||
#define HICUMith_Vrth HICUMstate+102
|
||||
|
||||
#define HICUMnumStates 93
|
||||
#define HICUMnumStates 103
|
||||
|
||||
/* per model data */
|
||||
typedef struct sHICUMmodel { /* model structure for a hicum */
|
||||
|
|
|
|||
|
|
@ -797,6 +797,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
xfact * *(ckt->CKTstate2 + here->HICUMvxf1);
|
||||
Vbxf2 = (1+xfact) * *(ckt->CKTstate1 + here->HICUMvxf2)-
|
||||
xfact * *(ckt->CKTstate2 + here->HICUMvxf2);
|
||||
|
||||
////////////////////////
|
||||
// begin copy state vector
|
||||
////////////////////////
|
||||
*(ckt->CKTstate0 + here->HICUMvbiei) =
|
||||
*(ckt->CKTstate1 + here->HICUMvbiei);
|
||||
*(ckt->CKTstate0 + here->HICUMvbpei) =
|
||||
|
|
@ -885,6 +889,9 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
*(ckt->CKTstate0 + here->HICUMith_Vrth) =
|
||||
*(ckt->CKTstate1 + here->HICUMith_Vrth);
|
||||
}
|
||||
////////////////////////
|
||||
// end copy state vector
|
||||
////////////////////////
|
||||
} else {
|
||||
#endif /* PREDICTOR */
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1391,94 +1391,205 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
xfact * *(ckt->CKTstate2 + here->HICUMvxf1);
|
||||
Vbxf2 = (1+xfact) * *(ckt->CKTstate1 + here->HICUMvxf2)-
|
||||
xfact * *(ckt->CKTstate2 + here->HICUMvxf2);
|
||||
*(ckt->CKTstate0 + here->HICUMvbiei) =
|
||||
*(ckt->CKTstate1 + here->HICUMvbiei);
|
||||
*(ckt->CKTstate0 + here->HICUMvbpei) =
|
||||
*(ckt->CKTstate1 + here->HICUMvbpei);
|
||||
*(ckt->CKTstate0 + here->HICUMvbici) =
|
||||
*(ckt->CKTstate1 + here->HICUMvbici);
|
||||
*(ckt->CKTstate0 + here->HICUMvbpei) =
|
||||
*(ckt->CKTstate1 + here->HICUMvbpei);
|
||||
*(ckt->CKTstate0 + here->HICUMvbpbi) =
|
||||
*(ckt->CKTstate1 + here->HICUMvbpbi);
|
||||
*(ckt->CKTstate0 + here->HICUMvsici) =
|
||||
*(ckt->CKTstate1 + here->HICUMvsici);
|
||||
*(ckt->CKTstate0 + here->HICUMvxf) =
|
||||
*(ckt->CKTstate1 + here->HICUMvxf);
|
||||
*(ckt->CKTstate0 + here->HICUMvxf1) =
|
||||
*(ckt->CKTstate1 + here->HICUMvxf1);
|
||||
*(ckt->CKTstate0 + here->HICUMvxf2) =
|
||||
*(ckt->CKTstate1 + here->HICUMvxf2);
|
||||
*(ckt->CKTstate0 + here->HICUMibiei) =
|
||||
*(ckt->CKTstate1 + here->HICUMibiei);
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vbiei) =
|
||||
*(ckt->CKTstate1 + here->HICUMibiei_Vbiei);
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vbici) =
|
||||
*(ckt->CKTstate1 + here->HICUMibiei_Vbici);
|
||||
*(ckt->CKTstate0 + here->HICUMibpei) =
|
||||
*(ckt->CKTstate1 + here->HICUMibpei);
|
||||
*(ckt->CKTstate0 + here->HICUMibpei_Vbpei) =
|
||||
*(ckt->CKTstate1 + here->HICUMibpei_Vbpei);
|
||||
*(ckt->CKTstate0 + here->HICUMiciei) =
|
||||
*(ckt->CKTstate1 + here->HICUMiciei);
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vbiei) =
|
||||
*(ckt->CKTstate1 + here->HICUMiciei_Vbiei);
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vbici) =
|
||||
*(ckt->CKTstate1 + here->HICUMiciei_Vbici);
|
||||
*(ckt->CKTstate0 + here->HICUMibici) =
|
||||
*(ckt->CKTstate1 + here->HICUMibici);
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vbici) =
|
||||
*(ckt->CKTstate1 + here->HICUMibici_Vbici);
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vbiei) =
|
||||
*(ckt->CKTstate1 + here->HICUMibici_Vbiei);
|
||||
*(ckt->CKTstate0 + here->HICUMibpei) =
|
||||
*(ckt->CKTstate1 + here->HICUMibpei);
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi) =
|
||||
*(ckt->CKTstate1 + here->HICUMibpbi);
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi) =
|
||||
*(ckt->CKTstate1 + here->HICUMibpbi_Vbpbi);
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbiei) =
|
||||
*(ckt->CKTstate1 + here->HICUMibpbi_Vbiei);
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbici) =
|
||||
*(ckt->CKTstate1 + here->HICUMibpbi_Vbici);
|
||||
*(ckt->CKTstate0 + here->HICUMisici) =
|
||||
*(ckt->CKTstate1 + here->HICUMisici);
|
||||
*(ckt->CKTstate0 + here->HICUMisici_Vsici) =
|
||||
*(ckt->CKTstate1 + here->HICUMisici_Vsici);
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi) =
|
||||
*(ckt->CKTstate1 + here->HICUMibpsi);
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vbpci) =
|
||||
*(ckt->CKTstate1 + here->HICUMibpsi_Vbpci);
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vsici) =
|
||||
*(ckt->CKTstate1 + here->HICUMibpsi_Vsici);
|
||||
*(ckt->CKTstate0 + here->HICUMgqbepar1) =
|
||||
*(ckt->CKTstate1 + here->HICUMgqbepar1);
|
||||
*(ckt->CKTstate0 + here->HICUMgqbepar2) =
|
||||
*(ckt->CKTstate1 + here->HICUMgqbepar2);
|
||||
*(ckt->CKTstate0 + here->HICUMieie) =
|
||||
*(ckt->CKTstate1 + here->HICUMieie);
|
||||
*(ckt->CKTstate0 + here->HICUMisis_Vsis) =
|
||||
*(ckt->CKTstate1 + here->HICUMisis_Vsis);
|
||||
//NQS
|
||||
*(ckt->CKTstate0 + here->HICUMgqxf) =
|
||||
*(ckt->CKTstate1 + here->HICUMgqxf);
|
||||
*(ckt->CKTstate0 + here->HICUMixf_Vbiei) =
|
||||
*(ckt->CKTstate1 + here->HICUMixf_Vbiei);
|
||||
*(ckt->CKTstate0 + here->HICUMixf_Vbici) =
|
||||
*(ckt->CKTstate1 + here->HICUMixf_Vbici);
|
||||
/////////////////////////
|
||||
// begin copy state vector
|
||||
/////////////////////////
|
||||
//below is obsolete, I leave it here to remember old code since I am no ngspice expert
|
||||
// *(ckt->CKTstate0 + here->HICUMvbiei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMvbiei);
|
||||
// *(ckt->CKTstate0 + here->HICUMvbpei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMvbpei);
|
||||
// *(ckt->CKTstate0 + here->HICUMvbici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMvbici);
|
||||
// *(ckt->CKTstate0 + here->HICUMvbpei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMvbpei);
|
||||
// *(ckt->CKTstate0 + here->HICUMvbpbi) =
|
||||
// *(ckt->CKTstate1 + here->HICUMvbpbi);
|
||||
// *(ckt->CKTstate0 + here->HICUMvsici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMvsici);
|
||||
// *(ckt->CKTstate0 + here->HICUMvxf) =
|
||||
// *(ckt->CKTstate1 + here->HICUMvxf);
|
||||
// *(ckt->CKTstate0 + here->HICUMvxf1) =
|
||||
// *(ckt->CKTstate1 + here->HICUMvxf1);
|
||||
// *(ckt->CKTstate0 + here->HICUMvxf2) =
|
||||
// *(ckt->CKTstate1 + here->HICUMvxf2);
|
||||
// *(ckt->CKTstate0 + here->HICUMibiei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibiei);
|
||||
// *(ckt->CKTstate0 + here->HICUMibiei_Vbiei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibiei_Vbiei);
|
||||
// *(ckt->CKTstate0 + here->HICUMibiei_Vbici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibiei_Vbici);
|
||||
// *(ckt->CKTstate0 + here->HICUMibpei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibpei);
|
||||
// *(ckt->CKTstate0 + here->HICUMibpei_Vbpei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibpei_Vbpei);
|
||||
// *(ckt->CKTstate0 + here->HICUMiciei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMiciei);
|
||||
// *(ckt->CKTstate0 + here->HICUMiciei_Vbiei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMiciei_Vbiei);
|
||||
// *(ckt->CKTstate0 + here->HICUMiciei_Vbici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMiciei_Vbici);
|
||||
// *(ckt->CKTstate0 + here->HICUMibici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibici);
|
||||
// *(ckt->CKTstate0 + here->HICUMibici_Vbici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibici_Vbici);
|
||||
// *(ckt->CKTstate0 + here->HICUMibici_Vbiei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibici_Vbiei);
|
||||
// *(ckt->CKTstate0 + here->HICUMibpei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibpei);
|
||||
// *(ckt->CKTstate0 + here->HICUMibpbi) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibpbi);
|
||||
// *(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibpbi_Vbpbi);
|
||||
// *(ckt->CKTstate0 + here->HICUMibpbi_Vbiei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibpbi_Vbiei);
|
||||
// *(ckt->CKTstate0 + here->HICUMibpbi_Vbici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibpbi_Vbici);
|
||||
// *(ckt->CKTstate0 + here->HICUMisici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMisici);
|
||||
// *(ckt->CKTstate0 + here->HICUMisici_Vsici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMisici_Vsici);
|
||||
// *(ckt->CKTstate0 + here->HICUMibpsi) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibpsi);
|
||||
// *(ckt->CKTstate0 + here->HICUMibpsi_Vbpci) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibpsi_Vbpci);
|
||||
// *(ckt->CKTstate0 + here->HICUMibpsi_Vsici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMibpsi_Vsici);
|
||||
// *(ckt->CKTstate0 + here->HICUMgqbepar1) =
|
||||
// *(ckt->CKTstate1 + here->HICUMgqbepar1);
|
||||
// *(ckt->CKTstate0 + here->HICUMgqbepar2) =
|
||||
// *(ckt->CKTstate1 + here->HICUMgqbepar2);
|
||||
// *(ckt->CKTstate0 + here->HICUMieie) =
|
||||
// *(ckt->CKTstate1 + here->HICUMieie);
|
||||
// *(ckt->CKTstate0 + here->HICUMisis_Vsis) =
|
||||
// *(ckt->CKTstate1 + here->HICUMisis_Vsis);
|
||||
// //NQS
|
||||
// *(ckt->CKTstate0 + here->HICUMgqxf) =
|
||||
// *(ckt->CKTstate1 + here->HICUMgqxf);
|
||||
// *(ckt->CKTstate0 + here->HICUMixf_Vbiei) =
|
||||
// *(ckt->CKTstate1 + here->HICUMixf_Vbiei);
|
||||
// *(ckt->CKTstate0 + here->HICUMixf_Vbici) =
|
||||
// *(ckt->CKTstate1 + here->HICUMixf_Vbici);
|
||||
|
||||
if (model->HICUMflsh) {
|
||||
Vrth = (1.0 + xfact)* (*(ckt->CKTstate1 + here->HICUMvrth))
|
||||
- ( xfact * (*(ckt->CKTstate2 + here->HICUMvrth)));
|
||||
*(ckt->CKTstate0 + here->HICUMvrth) =
|
||||
*(ckt->CKTstate1 + here->HICUMvrth);
|
||||
*(ckt->CKTstate0 + here->HICUMith) =
|
||||
*(ckt->CKTstate1 + here->HICUMith);
|
||||
*(ckt->CKTstate0 + here->HICUMith_Vrth) =
|
||||
*(ckt->CKTstate1 + here->HICUMith_Vrth);
|
||||
*(ckt->CKTstate0 + here->HICUMqcth) =
|
||||
*(ckt->CKTstate1 + here->HICUMqcth);
|
||||
}
|
||||
// if (model->HICUMflsh) {
|
||||
// Vrth = (1.0 + xfact)* (*(ckt->CKTstate1 + here->HICUMvrth))
|
||||
// - ( xfact * (*(ckt->CKTstate2 + here->HICUMvrth)));
|
||||
// *(ckt->CKTstate0 + here->HICUMvrth) =
|
||||
// *(ckt->CKTstate1 + here->HICUMvrth);
|
||||
// *(ckt->CKTstate0 + here->HICUMith) =
|
||||
// *(ckt->CKTstate1 + here->HICUMith);
|
||||
// *(ckt->CKTstate0 + here->HICUMith_Vrth) =
|
||||
// *(ckt->CKTstate1 + here->HICUMith_Vrth);
|
||||
// *(ckt->CKTstate0 + here->HICUMqcth) =
|
||||
// *(ckt->CKTstate1 + here->HICUMqcth);
|
||||
// }
|
||||
|
||||
*(ckt->CKTstate0+here->HICUMvbiei)=*(ckt->CKTstate1+here->HICUMvbiei);
|
||||
*(ckt->CKTstate0+here->HICUMvbici)=*(ckt->CKTstate1+here->HICUMvbici);
|
||||
*(ckt->CKTstate0+here->HICUMvbpei)=*(ckt->CKTstate1+here->HICUMvbpei);
|
||||
*(ckt->CKTstate0+here->HICUMvbpbi)=*(ckt->CKTstate1+here->HICUMvbpbi);
|
||||
*(ckt->CKTstate0+here->HICUMvbpci)=*(ckt->CKTstate1+here->HICUMvbpci);
|
||||
*(ckt->CKTstate0+here->HICUMvsici)=*(ckt->CKTstate1+here->HICUMvsici);
|
||||
*(ckt->CKTstate0+here->HICUMibiei)=*(ckt->CKTstate1+here->HICUMibiei);
|
||||
*(ckt->CKTstate0+here->HICUMibiei_Vbiei)=*(ckt->CKTstate1+here->HICUMibiei_Vbiei);
|
||||
*(ckt->CKTstate0+here->HICUMibiei_Vbici)=*(ckt->CKTstate1+here->HICUMibiei_Vbici);
|
||||
*(ckt->CKTstate0+here->HICUMibiei_Vrth)=*(ckt->CKTstate1+here->HICUMibiei_Vrth);
|
||||
*(ckt->CKTstate0+here->HICUMibpei)=*(ckt->CKTstate1+here->HICUMibpei);
|
||||
*(ckt->CKTstate0+here->HICUMibpei_Vbpei)=*(ckt->CKTstate1+here->HICUMibpei_Vbpei);
|
||||
*(ckt->CKTstate0+here->HICUMibpei_Vrth)=*(ckt->CKTstate1+here->HICUMibpei_Vrth);
|
||||
*(ckt->CKTstate0+here->HICUMiciei)=*(ckt->CKTstate1+here->HICUMiciei);
|
||||
*(ckt->CKTstate0+here->HICUMiciei_Vbiei)=*(ckt->CKTstate1+here->HICUMiciei_Vbiei);
|
||||
*(ckt->CKTstate0+here->HICUMiciei_Vbici)=*(ckt->CKTstate1+here->HICUMiciei_Vbici);
|
||||
*(ckt->CKTstate0+here->HICUMiciei_Vrth)=*(ckt->CKTstate1+here->HICUMiciei_Vrth);
|
||||
*(ckt->CKTstate0+here->HICUMibici)=*(ckt->CKTstate1+here->HICUMibici);
|
||||
*(ckt->CKTstate0+here->HICUMibici_Vbici)=*(ckt->CKTstate1+here->HICUMibici_Vbici);
|
||||
*(ckt->CKTstate0+here->HICUMibici_Vbiei)=*(ckt->CKTstate1+here->HICUMibici_Vbiei);
|
||||
*(ckt->CKTstate0+here->HICUMibici_Vrth)=*(ckt->CKTstate1+here->HICUMibici_Vrth);
|
||||
*(ckt->CKTstate0+here->HICUMibpbi)=*(ckt->CKTstate1+here->HICUMibpbi);
|
||||
*(ckt->CKTstate0+here->HICUMibpbi_Vbpbi)=*(ckt->CKTstate1+here->HICUMibpbi_Vbpbi);
|
||||
*(ckt->CKTstate0+here->HICUMibpbi_Vbiei)=*(ckt->CKTstate1+here->HICUMibpbi_Vbiei);
|
||||
*(ckt->CKTstate0+here->HICUMibpbi_Vbici)=*(ckt->CKTstate1+here->HICUMibpbi_Vbici);
|
||||
*(ckt->CKTstate0+here->HICUMibpbi_Vrth)=*(ckt->CKTstate1+here->HICUMibpbi_Vrth);
|
||||
*(ckt->CKTstate0+here->HICUMibpci)=*(ckt->CKTstate1+here->HICUMibpci);
|
||||
*(ckt->CKTstate0+here->HICUMibpci_Vbpci)=*(ckt->CKTstate1+here->HICUMibpci_Vbpci);
|
||||
*(ckt->CKTstate0+here->HICUMibpci_Vrth)=*(ckt->CKTstate1+here->HICUMibpci_Vrth);
|
||||
*(ckt->CKTstate0+here->HICUMisici)=*(ckt->CKTstate1+here->HICUMisici);
|
||||
*(ckt->CKTstate0+here->HICUMisici_Vsici)=*(ckt->CKTstate1+here->HICUMisici_Vsici);
|
||||
*(ckt->CKTstate0+here->HICUMisici_Vrth)=*(ckt->CKTstate1+here->HICUMisici_Vrth);
|
||||
*(ckt->CKTstate0+here->HICUMibpsi)=*(ckt->CKTstate1+here->HICUMibpsi);
|
||||
*(ckt->CKTstate0+here->HICUMibpsi_Vbpci)=*(ckt->CKTstate1+here->HICUMibpsi_Vbpci);
|
||||
*(ckt->CKTstate0+here->HICUMibpsi_Vsici)=*(ckt->CKTstate1+here->HICUMibpsi_Vsici);
|
||||
*(ckt->CKTstate0+here->HICUMibpsi_Vrth)=*(ckt->CKTstate1+here->HICUMibpsi_Vrth);
|
||||
*(ckt->CKTstate0+here->HICUMisis_Vsis)=*(ckt->CKTstate1+here->HICUMisis_Vsis);
|
||||
*(ckt->CKTstate0+here->HICUMieie)=*(ckt->CKTstate1+here->HICUMieie);
|
||||
*(ckt->CKTstate0+here->HICUMieie_Vrth)=*(ckt->CKTstate1+here->HICUMieie_Vrth);
|
||||
*(ckt->CKTstate0+here->HICUMqrbi)=*(ckt->CKTstate1+here->HICUMqrbi);
|
||||
*(ckt->CKTstate0+here->HICUMcqrbi)=*(ckt->CKTstate1+here->HICUMcqrbi);
|
||||
*(ckt->CKTstate0+here->HICUMqjei)=*(ckt->CKTstate1+here->HICUMqjei);
|
||||
*(ckt->CKTstate0+here->HICUMcqjei)=*(ckt->CKTstate1+here->HICUMcqjei);
|
||||
*(ckt->CKTstate0+here->HICUMqdeix)=*(ckt->CKTstate1+here->HICUMqdeix);
|
||||
*(ckt->CKTstate0+here->HICUMcqdeix)=*(ckt->CKTstate1+here->HICUMcqdeix);
|
||||
*(ckt->CKTstate0+here->HICUMqjci)=*(ckt->CKTstate1+here->HICUMqjci);
|
||||
*(ckt->CKTstate0+here->HICUMcqjci)=*(ckt->CKTstate1+here->HICUMcqjci);
|
||||
*(ckt->CKTstate0+here->HICUMqdci)=*(ckt->CKTstate1+here->HICUMqdci);
|
||||
*(ckt->CKTstate0+here->HICUMcqdci)=*(ckt->CKTstate1+here->HICUMcqdci);
|
||||
*(ckt->CKTstate0+here->HICUMqjep)=*(ckt->CKTstate1+here->HICUMqjep);
|
||||
*(ckt->CKTstate0+here->HICUMcqjep)=*(ckt->CKTstate1+here->HICUMcqjep);
|
||||
*(ckt->CKTstate0+here->HICUMqjcx0_i)=*(ckt->CKTstate1+here->HICUMqjcx0_i);
|
||||
*(ckt->CKTstate0+here->HICUMcqcx0_t_i)=*(ckt->CKTstate1+here->HICUMcqcx0_t_i);
|
||||
*(ckt->CKTstate0+here->HICUMqjcx0_ii)=*(ckt->CKTstate1+here->HICUMqjcx0_ii);
|
||||
*(ckt->CKTstate0+here->HICUMcqcx0_t_ii)=*(ckt->CKTstate1+here->HICUMcqcx0_t_ii);
|
||||
*(ckt->CKTstate0+here->HICUMqdsu)=*(ckt->CKTstate1+here->HICUMqdsu);
|
||||
*(ckt->CKTstate0+here->HICUMcqdsu)=*(ckt->CKTstate1+here->HICUMcqdsu);
|
||||
*(ckt->CKTstate0+here->HICUMqjs)=*(ckt->CKTstate1+here->HICUMqjs);
|
||||
*(ckt->CKTstate0+here->HICUMcqjs)=*(ckt->CKTstate1+here->HICUMcqjs);
|
||||
*(ckt->CKTstate0+here->HICUMqscp)=*(ckt->CKTstate1+here->HICUMqscp);
|
||||
*(ckt->CKTstate0+here->HICUMcqscp)=*(ckt->CKTstate1+here->HICUMcqscp);
|
||||
*(ckt->CKTstate0+here->HICUMqbepar1)=*(ckt->CKTstate1+here->HICUMqbepar1);
|
||||
*(ckt->CKTstate0+here->HICUMcqbepar1)=*(ckt->CKTstate1+here->HICUMcqbepar1);
|
||||
*(ckt->CKTstate0+here->HICUMgqbepar1)=*(ckt->CKTstate1+here->HICUMgqbepar1);
|
||||
*(ckt->CKTstate0+here->HICUMqbepar2)=*(ckt->CKTstate1+here->HICUMqbepar2);
|
||||
*(ckt->CKTstate0+here->HICUMcqbepar2)=*(ckt->CKTstate1+here->HICUMcqbepar2);
|
||||
*(ckt->CKTstate0+here->HICUMgqbepar2)=*(ckt->CKTstate1+here->HICUMgqbepar2);
|
||||
*(ckt->CKTstate0+here->HICUMqbcpar1)=*(ckt->CKTstate1+here->HICUMqbcpar1);
|
||||
*(ckt->CKTstate0+here->HICUMcqbcpar1)=*(ckt->CKTstate1+here->HICUMcqbcpar1);
|
||||
*(ckt->CKTstate0+here->HICUMgqbcpar1)=*(ckt->CKTstate1+here->HICUMgqbcpar1);
|
||||
*(ckt->CKTstate0+here->HICUMqbcpar2)=*(ckt->CKTstate1+here->HICUMqbcpar2);
|
||||
*(ckt->CKTstate0+here->HICUMcqbcpar2)=*(ckt->CKTstate1+here->HICUMcqbcpar2);
|
||||
*(ckt->CKTstate0+here->HICUMgqbcpar2)=*(ckt->CKTstate1+here->HICUMgqbcpar2);
|
||||
*(ckt->CKTstate0+here->HICUMqsu)=*(ckt->CKTstate1+here->HICUMqsu);
|
||||
*(ckt->CKTstate0+here->HICUMcqsu)=*(ckt->CKTstate1+here->HICUMcqsu);
|
||||
*(ckt->CKTstate0+here->HICUMgqsu)=*(ckt->CKTstate1+here->HICUMgqsu);
|
||||
*(ckt->CKTstate0+here->HICUMqcth)=*(ckt->CKTstate1+here->HICUMqcth);
|
||||
*(ckt->CKTstate0+here->HICUMcqcth)=*(ckt->CKTstate1+here->HICUMcqcth);
|
||||
*(ckt->CKTstate0+here->HICUMvrth)=*(ckt->CKTstate1+here->HICUMvrth);
|
||||
*(ckt->CKTstate0+here->HICUMicth_dT)=*(ckt->CKTstate1+here->HICUMicth_dT);
|
||||
*(ckt->CKTstate0+here->HICUMvxf)=*(ckt->CKTstate1+here->HICUMvxf);
|
||||
*(ckt->CKTstate0+here->HICUMqxf)=*(ckt->CKTstate1+here->HICUMqxf);
|
||||
*(ckt->CKTstate0+here->HICUMcqxf)=*(ckt->CKTstate1+here->HICUMcqxf);
|
||||
*(ckt->CKTstate0+here->HICUMgqxf)=*(ckt->CKTstate1+here->HICUMgqxf);
|
||||
*(ckt->CKTstate0+here->HICUMixf_Vbiei)=*(ckt->CKTstate1+here->HICUMixf_Vbiei);
|
||||
*(ckt->CKTstate0+here->HICUMixf_Vbici)=*(ckt->CKTstate1+here->HICUMixf_Vbici);
|
||||
*(ckt->CKTstate0+here->HICUMvxf1)=*(ckt->CKTstate1+here->HICUMvxf1);
|
||||
*(ckt->CKTstate0+here->HICUMqxf1)=*(ckt->CKTstate1+here->HICUMqxf1);
|
||||
*(ckt->CKTstate0+here->HICUMcqxf1)=*(ckt->CKTstate1+here->HICUMcqxf1);
|
||||
*(ckt->CKTstate0+here->HICUMgqxf1)=*(ckt->CKTstate1+here->HICUMgqxf1);
|
||||
*(ckt->CKTstate0+here->HICUMixf1_Vbiei)=*(ckt->CKTstate1+here->HICUMixf1_Vbiei);
|
||||
*(ckt->CKTstate0+here->HICUMixf1_Vbici)=*(ckt->CKTstate1+here->HICUMixf1_Vbici);
|
||||
*(ckt->CKTstate0+here->HICUMixf1_Vfx2)=*(ckt->CKTstate1+here->HICUMixf1_Vfx2);
|
||||
*(ckt->CKTstate0+here->HICUMvxf2)=*(ckt->CKTstate1+here->HICUMvxf2);
|
||||
*(ckt->CKTstate0+here->HICUMqxf2)=*(ckt->CKTstate1+here->HICUMqxf2);
|
||||
*(ckt->CKTstate0+here->HICUMcqxf2)=*(ckt->CKTstate1+here->HICUMcqxf2);
|
||||
*(ckt->CKTstate0+here->HICUMgqxf2)=*(ckt->CKTstate1+here->HICUMgqxf2);
|
||||
*(ckt->CKTstate0+here->HICUMixf2_Vbiei)=*(ckt->CKTstate1+here->HICUMixf2_Vbiei);
|
||||
*(ckt->CKTstate0+here->HICUMixf2_Vbici)=*(ckt->CKTstate1+here->HICUMixf2_Vbici);
|
||||
*(ckt->CKTstate0+here->HICUMixf2_Vfx1)=*(ckt->CKTstate1+here->HICUMixf2_Vfx1);
|
||||
*(ckt->CKTstate0+here->HICUMith)=*(ckt->CKTstate1+here->HICUMith);
|
||||
*(ckt->CKTstate0+here->HICUMith_Vrth)=*(ckt->CKTstate1+here->HICUMith_Vrth);
|
||||
|
||||
/////////////////////////
|
||||
// end copy state vector
|
||||
/////////////////////////
|
||||
} else {
|
||||
#endif /* PREDICTOR */
|
||||
/*
|
||||
|
|
@ -1520,8 +1631,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
delvbpbi = Vbpbi - *(ckt->CKTstate0 + here->HICUMvbpbi);
|
||||
delvbpci = Vbpci - *(ckt->CKTstate0 + here->HICUMvbpci);
|
||||
delvsici = Vsici - *(ckt->CKTstate0 + here->HICUMvsici);
|
||||
if (model->HICUMflsh)
|
||||
delvrth = Vrth - *(ckt->CKTstate0 + here->HICUMvrth);
|
||||
delvrth = Vrth - *(ckt->CKTstate0 + here->HICUMvrth);
|
||||
Vbe = model->HICUMtype*(
|
||||
*(ckt->CKTrhsOld+here->HICUMbaseNode)-
|
||||
*(ckt->CKTrhsOld+here->HICUMemitNode));
|
||||
|
|
@ -1553,28 +1663,36 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
Vrth = *(ckt->CKTrhsOld + here->HICUMtempNode);
|
||||
ibieihat = *(ckt->CKTstate0 + here->HICUMibiei) +
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vbiei)*delvbiei+
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vrth)*delvrth+
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vbici)*delvbici,
|
||||
ibicihat = *(ckt->CKTstate0 + here->HICUMibici) +
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vbici)*delvbici+
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vrth)*delvrth+
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vbiei)*delvbiei;
|
||||
ibpeihat = *(ckt->CKTstate0 + here->HICUMibpei) +
|
||||
*(ckt->CKTstate0 + here->HICUMibpei_Vbpei)*delvbpei;
|
||||
*(ckt->CKTstate0 + here->HICUMibpei_Vbpei)*delvbpei+
|
||||
*(ckt->CKTstate0 + here->HICUMibpei_Vrth)*delvrth;
|
||||
ibpcihat = *(ckt->CKTstate0 + here->HICUMibpci) +
|
||||
*(ckt->CKTstate0 + here->HICUMibpci_Vbpci)*delvbpci;
|
||||
*(ckt->CKTstate0 + here->HICUMibpci_Vbpci)*delvbpci+
|
||||
*(ckt->CKTstate0 + here->HICUMibpci_Vrth)*delvrth;
|
||||
icieihat = *(ckt->CKTstate0 + here->HICUMiciei) +
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vbiei)*delvbiei +
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vrth)*delvrth +
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vbici)*delvbici;
|
||||
ibpbihat = *(ckt->CKTstate0 + here->HICUMibpbi) +
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi)*delvbpbi +
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vrth)*delvrth +
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbiei)*delvbiei +
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbici)*delvbici;
|
||||
isicihat = *(ckt->CKTstate0 + here->HICUMisici) +
|
||||
*(ckt->CKTstate0 + here->HICUMisici_Vsici)*delvsici;
|
||||
*(ckt->CKTstate0 + here->HICUMisici_Vsici)*delvsici+
|
||||
*(ckt->CKTstate0 + here->HICUMisici_Vrth)*delvrth;
|
||||
ibpsihat = *(ckt->CKTstate0 + here->HICUMibpsi) +
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vbpci)*delvbpci +
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vrth)*delvrth +
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vsici)*delvsici;
|
||||
ithhat = *(ckt->CKTstate0 + here->HICUMith) +
|
||||
*(ckt->CKTstate0 + here->HICUMith_Vrth)*delvrth;
|
||||
*(ckt->CKTstate0 + here->HICUMith_Vrth)*delvrth; //other dels are missing here... great :/
|
||||
/*
|
||||
* bypass if solution has not changed
|
||||
*/
|
||||
|
|
@ -1648,34 +1766,43 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
Ibiei = *(ckt->CKTstate0 + here->HICUMibiei);
|
||||
Ibiei_Vbiei = *(ckt->CKTstate0 + here->HICUMibiei_Vbiei);
|
||||
Ibiei_Vbici = *(ckt->CKTstate0 + here->HICUMibiei_Vbici);
|
||||
Ibiei_dT = *(ckt->CKTstate0 + here->HICUMibiei_Vrth);
|
||||
|
||||
Ibpei = *(ckt->CKTstate0 + here->HICUMibpei);
|
||||
Ibpei_Vbpei = *(ckt->CKTstate0 + here->HICUMibpei_Vbpei);
|
||||
Ibpei_dT = *(ckt->CKTstate0 + here->HICUMibpei_Vrth);
|
||||
|
||||
Iciei = *(ckt->CKTstate0 + here->HICUMiciei);
|
||||
Iciei_Vbiei = *(ckt->CKTstate0 + here->HICUMiciei_Vbiei);
|
||||
Iciei_Vbici = *(ckt->CKTstate0 + here->HICUMiciei_Vbici);
|
||||
Iciei_dT = *(ckt->CKTstate0 + here->HICUMiciei_Vrth);
|
||||
|
||||
Ibici = *(ckt->CKTstate0 + here->HICUMibici);
|
||||
Ibici_Vbici = *(ckt->CKTstate0 + here->HICUMibici_Vbici);
|
||||
Ibici_Vbiei = *(ckt->CKTstate0 + here->HICUMibici_Vbiei);
|
||||
Ibici_dT = *(ckt->CKTstate0 + here->HICUMibici_Vrth);
|
||||
|
||||
Ibpbi = *(ckt->CKTstate0 + here->HICUMibpbi);
|
||||
Ibpbi_Vbpbi = *(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi);
|
||||
Ibpbi_Vbiei = *(ckt->CKTstate0 + here->HICUMibpbi_Vbiei);
|
||||
Ibpbi_Vbici = *(ckt->CKTstate0 + here->HICUMibpbi_Vbici);
|
||||
Ibpbi_dT = *(ckt->CKTstate0 + here->HICUMibpbi_Vrth);
|
||||
|
||||
Isici = *(ckt->CKTstate0 + here->HICUMisici);
|
||||
Isici_Vsici = *(ckt->CKTstate0 + here->HICUMisici_Vsici);
|
||||
Isici_dT = *(ckt->CKTstate0 + here->HICUMisici_Vrth);
|
||||
|
||||
Ibpsi = *(ckt->CKTstate0 + here->HICUMibpsi);
|
||||
Ibpsi_Vbpci = *(ckt->CKTstate0 + here->HICUMibpsi_Vbpci);
|
||||
Ibpsi_Vsici = *(ckt->CKTstate0 + here->HICUMibpsi_Vsici);
|
||||
Ibpsi_dT = *(ckt->CKTstate0 + here->HICUMibpsi_Vrth);
|
||||
|
||||
Ibpci = *(ckt->CKTstate0 + here->HICUMibpci);
|
||||
Ibpci_Vbpci = *(ckt->CKTstate0 + here->HICUMibpci_Vbpci);
|
||||
Ibpci_dT = *(ckt->CKTstate0 + here->HICUMibpci_Vrth);
|
||||
|
||||
Ieie = *(ckt->CKTstate0 + here->HICUMieie);
|
||||
Ieie_dT = *(ckt->CKTstate0 + here->HICUMieie_Vrth);
|
||||
|
||||
Isis_Vsis = *(ckt->CKTstate0 + here->HICUMisis_Vsis);
|
||||
|
||||
|
|
@ -1712,7 +1839,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
//todo: check for double multiplication on pnp's
|
||||
Vbiei = model->HICUMtype*Vbiei;
|
||||
Vbici = model->HICUMtype*Vbici;
|
||||
Vciei = Vbiei-Vbici;
|
||||
Vciei = model->HICUMtype*(Vbiei-Vbici);
|
||||
Vbpei = model->HICUMtype*Vbpei;
|
||||
Vbpci = model->HICUMtype*Vbpci;
|
||||
Vbci = model->HICUMtype*Vbci;
|
||||
|
|
@ -1727,6 +1854,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
here->HICUMdtemp_sh = Temp - ckt->CKTtemp;
|
||||
} else {
|
||||
Temp = here->HICUMtemp;
|
||||
here->HICUMdtemp_sh = 0;
|
||||
}
|
||||
|
||||
|
|
@ -2809,36 +2937,45 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
*(ckt->CKTstate0 + here->HICUMibiei) = Ibiei;
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vbiei) = Ibiei_Vbiei;
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vbici) = Ibiei_Vbici;
|
||||
*(ckt->CKTstate0 + here->HICUMibiei_Vrth) = Ibiei_dT;
|
||||
|
||||
*(ckt->CKTstate0 + here->HICUMibpei) = Ibpei;
|
||||
*(ckt->CKTstate0 + here->HICUMibpei_Vbpei) = Ibpei_Vbpei;
|
||||
*(ckt->CKTstate0 + here->HICUMibpei_Vrth) = Ibpei_dT;
|
||||
|
||||
*(ckt->CKTstate0 + here->HICUMiciei) = Iciei;
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vbiei) = Iciei_Vbiei;
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vbici) = Iciei_Vbici;
|
||||
*(ckt->CKTstate0 + here->HICUMiciei_Vrth) = Iciei_dT;
|
||||
|
||||
*(ckt->CKTstate0 + here->HICUMibici) = Ibici;
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vbici) = Ibici_Vbici;
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vbiei) = Ibici_Vbiei;
|
||||
*(ckt->CKTstate0 + here->HICUMibici_Vrth) = Ibici_dT;
|
||||
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi) = Ibpbi;
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi) = Ibpbi_Vbpbi;
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbiei) = Ibpbi_Vbiei;
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vbici) = Ibpbi_Vbici;
|
||||
*(ckt->CKTstate0 + here->HICUMibpbi_Vrth) = Ibpbi_dT;
|
||||
|
||||
*(ckt->CKTstate0 + here->HICUMibpci) = Ibpci;
|
||||
*(ckt->CKTstate0 + here->HICUMibpci_Vbpci) = Ibpci_Vbpci;
|
||||
*(ckt->CKTstate0 + here->HICUMibpci_Vrth) = Ibpci_dT;
|
||||
|
||||
*(ckt->CKTstate0 + here->HICUMisici) = Isici;
|
||||
*(ckt->CKTstate0 + here->HICUMisici_Vsici) = Isici_Vsici;
|
||||
*(ckt->CKTstate0 + here->HICUMisici_Vrth) = Isici_dT;
|
||||
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi) = Ibpsi;
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vbpci) = Ibpsi_Vbpci;
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vsici) = Ibpsi_Vsici;
|
||||
*(ckt->CKTstate0 + here->HICUMibpsi_Vrth) = Ibpsi_dT;
|
||||
|
||||
*(ckt->CKTstate0 + here->HICUMisis_Vsis) = Isis_Vsis;
|
||||
|
||||
*(ckt->CKTstate0 + here->HICUMieie) = Ieie;
|
||||
*(ckt->CKTstate0 + here->HICUMieie_Vrth) = Ieie_dT;
|
||||
|
||||
*(ckt->CKTstate0 + here->HICUMcqcth) = Icth;
|
||||
*(ckt->CKTstate0 + here->HICUMicth_dT) = Icth_dT;
|
||||
|
|
|
|||
Loading…
Reference in New Issue