fix HICUM setup

This commit is contained in:
Markus Mueller 2020-06-20 18:41:35 +02:00
parent f6e4bba9e3
commit 8dfd2e5a4d
3 changed files with 246 additions and 152 deletions

View File

@ -345,149 +345,162 @@ typedef struct sHICUMinstance {
#define HICUMiciei HICUMstate+16 #define HICUMiciei HICUMstate+16
#define HICUMiciei_Vbiei HICUMstate+17 #define HICUMiciei_Vbiei HICUMstate+17
#define HICUMiciei_Vbici HICUMstate+18 #define HICUMiciei_Vbici HICUMstate+18
#define HICUMiciei_Vrth HICUMstate+19 #define HICUMiciei_Vxf2 HICUMstate+19
#define HICUMiciei_Vrth HICUMstate+20
#define HICUMibici HICUMstate+20 #define HICUMibici HICUMstate+21
#define HICUMibici_Vbici HICUMstate+21 #define HICUMibici_Vbici HICUMstate+22
#define HICUMibici_Vbiei HICUMstate+22 #define HICUMibici_Vbiei HICUMstate+23
#define HICUMibici_Vrth HICUMstate+23 #define HICUMibici_Vrth HICUMstate+24
#define HICUMibpbi HICUMstate+24 #define HICUMibpbi HICUMstate+25
#define HICUMibpbi_Vbpbi HICUMstate+25 #define HICUMibpbi_Vbpbi HICUMstate+26
#define HICUMibpbi_Vbiei HICUMstate+26 #define HICUMibpbi_Vbiei HICUMstate+27
#define HICUMibpbi_Vbici HICUMstate+27 #define HICUMibpbi_Vbici HICUMstate+28
#define HICUMibpbi_Vrth HICUMstate+28 #define HICUMibpbi_Vrth HICUMstate+29
#define HICUMibpci HICUMstate+29 #define HICUMibpci HICUMstate+30
#define HICUMibpci_Vbpci HICUMstate+30 #define HICUMibpci_Vbpci HICUMstate+31
#define HICUMibpci_Vrth HICUMstate+31 #define HICUMibpci_Vrth HICUMstate+32
#define HICUMisici HICUMstate+32 #define HICUMisici HICUMstate+33
#define HICUMisici_Vsici HICUMstate+33 #define HICUMisici_Vsici HICUMstate+34
#define HICUMisici_Vrth HICUMstate+34 #define HICUMisici_Vrth HICUMstate+35
#define HICUMibpsi HICUMstate+35 #define HICUMibpsi HICUMstate+36
#define HICUMibpsi_Vbpci HICUMstate+36 #define HICUMibpsi_Vbpci HICUMstate+37
#define HICUMibpsi_Vsici HICUMstate+37 #define HICUMibpsi_Vsici HICUMstate+38
#define HICUMibpsi_Vrth HICUMstate+38 #define HICUMibpsi_Vrth HICUMstate+39
#define HICUMisis_Vsis HICUMstate+39 #define HICUMisis_Vsis HICUMstate+40
#define HICUMieie HICUMstate+40 // needed for re-flicker noise #define HICUMieie HICUMstate+41 // needed for re-flicker noise
#define HICUMieie_Vrth HICUMstate+41 #define HICUMieie_Vrth HICUMstate+42
#define HICUMqrbi HICUMstate+42 #define HICUMqrbi HICUMstate+43
#define HICUMcqrbi HICUMstate+43 #define HICUMcqrbi HICUMstate+44
#define HICUMqrbi_Vbiei HICUMstate+44 #define HICUMqrbi_Vbiei HICUMstate+45
#define HICUMqrbi_Vbici HICUMstate+45 #define HICUMqrbi_Vbici HICUMstate+46
#define HICUMqrbi_Vrth HICUMstate+46 #define HICUMqrbi_Vrth HICUMstate+47
#define HICUMqjei HICUMstate+47 #define HICUMqjei HICUMstate+48
#define HICUMcqjei HICUMstate+48 #define HICUMcqjei HICUMstate+49
#define HICUMqjei_Vrth HICUMstate+49 #define HICUMqjei_Vrth HICUMstate+50
#define HICUMqf HICUMstate+50 #define HICUMqf HICUMstate+51
#define HICUMcqf HICUMstate+51 #define HICUMcqf HICUMstate+52
#define HICUMqf_Vbici HICUMstate+52 #define HICUMqf_Vbici HICUMstate+53
#define HICUMqf_Vrth HICUMstate+53 #define HICUMqf_Vxf HICUMstate+54
#define HICUMqf_Vrth HICUMstate+55
#define HICUMqr HICUMstate+54 #define HICUMqr HICUMstate+56
#define HICUMcqr HICUMstate+55 #define HICUMcqr HICUMstate+57
#define HICUMqr_Vbiei HICUMstate+56 #define HICUMqr_Vbiei HICUMstate+58
#define HICUMqr_Vrth HICUMstate+57 #define HICUMqr_Vrth HICUMstate+59
#define HICUMqjci HICUMstate+58 #define HICUMqjci HICUMstate+60
#define HICUMcqjci HICUMstate+59 #define HICUMcqjci HICUMstate+61
#define HICUMqjci_Vrth HICUMstate+59 #define HICUMqjci_Vrth HICUMstate+62
#define HICUMqjep HICUMstate+60 #define HICUMqjep HICUMstate+63
#define HICUMcqjep HICUMstate+61 #define HICUMcqjep HICUMstate+64
#define HICUMqjep_Vrth HICUMstate+62 #define HICUMqjep_Vrth HICUMstate+65
#define HICUMqjcx0_i HICUMstate+63 #define HICUMqjcx0_i HICUMstate+66
#define HICUMcqcx0_t_i HICUMstate+64 #define HICUMcqcx0_t_i HICUMstate+67
#define HICUMqjcx0_i_Vrth HICUMstate+65 #define HICUMqjcx0_i_Vrth HICUMstate+68
#define HICUMqjcx0_ii HICUMstate+66 #define HICUMqjcx0_ii HICUMstate+69
#define HICUMcqcx0_t_ii HICUMstate+67 #define HICUMcqcx0_t_ii HICUMstate+70
#define HICUMqjcx0_ii_Vrth HICUMstate+68 #define HICUMqjcx0_ii_Vrth HICUMstate+71
#define HICUMqdsu HICUMstate+70 #define HICUMqdsu HICUMstate+72
#define HICUMcqdsu HICUMstate+71 #define HICUMcqdsu HICUMstate+73
#define HICUMqdsu_Vrth HICUMstate+72 #define HICUMqdsu_Vrth HICUMstate+74
#define HICUMqdsu_Vsici HICUMstate+73 #define HICUMqdsu_Vsici HICUMstate+75
#define HICUMqjs HICUMstate+74 #define HICUMqjs HICUMstate+76
#define HICUMcqjs HICUMstate+75 #define HICUMcqjs HICUMstate+77
#define HICUMqjs_Vrth HICUMstate+76 #define HICUMqjs_Vrth HICUMstate+78
#define HICUMqscp HICUMstate+77 #define HICUMqscp HICUMstate+79
#define HICUMcqscp HICUMstate+78 #define HICUMcqscp HICUMstate+80
#define HICUMqscp_Vrth HICUMstate+79 #define HICUMqscp_Vrth HICUMstate+81
#define HICUMqbepar1 HICUMstate+80 #define HICUMqbepar1 HICUMstate+82
#define HICUMcqbepar1 HICUMstate+81 #define HICUMcqbepar1 HICUMstate+83
#define HICUMgqbepar1 HICUMstate+82 #define HICUMgqbepar1 HICUMstate+84
#define HICUMqbepar2 HICUMstate+83 #define HICUMqbepar2 HICUMstate+85
#define HICUMcqbepar2 HICUMstate+84 #define HICUMcqbepar2 HICUMstate+86
#define HICUMgqbepar2 HICUMstate+85 #define HICUMgqbepar2 HICUMstate+87
#define HICUMqbcpar1 HICUMstate+86 #define HICUMqbcpar1 HICUMstate+88
#define HICUMcqbcpar1 HICUMstate+87 #define HICUMcqbcpar1 HICUMstate+89
#define HICUMgqbcpar1 HICUMstate+88 #define HICUMgqbcpar1 HICUMstate+90
#define HICUMqbcpar2 HICUMstate+89 #define HICUMqbcpar2 HICUMstate+91
#define HICUMcqbcpar2 HICUMstate+90 #define HICUMcqbcpar2 HICUMstate+92
#define HICUMgqbcpar2 HICUMstate+91 #define HICUMgqbcpar2 HICUMstate+93
#define HICUMqsu HICUMstate+92 #define HICUMqsu HICUMstate+94
#define HICUMcqsu HICUMstate+93 #define HICUMcqsu HICUMstate+95
#define HICUMgqsu HICUMstate+94 #define HICUMgqsu HICUMstate+96
#define HICUMqcth HICUMstate+95 #define HICUMqcth HICUMstate+97
#define HICUMcqcth HICUMstate+96 #define HICUMcqcth HICUMstate+98
#define HICUMvrth HICUMstate+97 #define HICUMvrth HICUMstate+99
#define HICUMicth_dT HICUMstate+98 #define HICUMicth_dT HICUMstate+100
#define HICUMvxf HICUMstate+99 #define HICUMvxf HICUMstate+101
#define HICUMqxf HICUMstate+100 #define HICUMqxf HICUMstate+102
#define HICUMcqxf HICUMstate+101 #define HICUMqxf_Vxf HICUMstate+103
#define HICUMgqxf HICUMstate+102 #define HICUMcqxf HICUMstate+104
#define HICUMixf_Vbiei HICUMstate+103 #define HICUMgqxf HICUMstate+105
#define HICUMixf_Vbici HICUMstate+104 #define HICUMixf HICUMstate+106
#define HICUMixf_Vbiei HICUMstate+107
#define HICUMixf_Vbici HICUMstate+108
#define HICUMixf_Vxf HICUMstate+109
#define HICUMixf_Vrth HICUMstate+110
#define HICUMvxf1 HICUMstate+105 #define HICUMvxf1 HICUMstate+111
#define HICUMqxf1 HICUMstate+106 #define HICUMqxf1 HICUMstate+112
#define HICUMcqxf1 HICUMstate+107 #define HICUMqxf1_Vxf1 HICUMstate+113
#define HICUMgqxf1 HICUMstate+108 #define HICUMcqxf1 HICUMstate+114
#define HICUMixf1_Vbiei HICUMstate+109 #define HICUMgqxf1 HICUMstate+115
#define HICUMixf1_Vbici HICUMstate+110 #define HICUMixf1 HICUMstate+116
#define HICUMixf1_Vfx2 HICUMstate+111 #define HICUMixf1_Vbiei HICUMstate+117
#define HICUMixf1_Vbici HICUMstate+118
#define HICUMixf1_Vxf2 HICUMstate+119
#define HICUMixf1_Vrth HICUMstate+120
#define HICUMvxf2 HICUMstate+112 #define HICUMvxf2 HICUMstate+121
#define HICUMqxf2 HICUMstate+113 #define HICUMqxf2 HICUMstate+122
#define HICUMcqxf2 HICUMstate+114 #define HICUMqxf2_Vxf2 HICUMstate+123
#define HICUMgqxf2 HICUMstate+115 #define HICUMcqxf2 HICUMstate+124
#define HICUMixf2_Vbiei HICUMstate+116 #define HICUMgqxf2 HICUMstate+125
#define HICUMixf2_Vbici HICUMstate+117 #define HICUMixf2 HICUMstate+126
#define HICUMixf2_Vfx1 HICUMstate+118 #define HICUMixf2_Vbiei HICUMstate+127
#define HICUMixf2_Vbici HICUMstate+128
#define HICUMixf2_Vxf1 HICUMstate+129
#define HICUMixf2_Vxf2 HICUMstate+130
#define HICUMixf2_Vrth HICUMstate+131
#define HICUMith HICUMstate+119 #define HICUMith HICUMstate+132
#define HICUMith_Vrth HICUMstate+120 #define HICUMith_Vrth HICUMstate+133
#define HICUMith_Vbiei HICUMstate+121 #define HICUMith_Vbiei HICUMstate+134
#define HICUMith_Vbici HICUMstate+122 #define HICUMith_Vbici HICUMstate+135
#define HICUMith_Vbpbi HICUMstate+123 #define HICUMith_Vbpbi HICUMstate+136
#define HICUMith_Vbpci HICUMstate+124 #define HICUMith_Vbpci HICUMstate+137
#define HICUMith_Vbpei HICUMstate+125 #define HICUMith_Vbpei HICUMstate+138
#define HICUMith_Vciei HICUMstate+126 #define HICUMith_Vciei HICUMstate+139
#define HICUMith_Vsici HICUMstate+127 #define HICUMith_Vsici HICUMstate+140
#define HICUMith_Vcic HICUMstate+128 #define HICUMith_Vcic HICUMstate+141
#define HICUMith_Vbbp HICUMstate+129 #define HICUMith_Vbbp HICUMstate+142
#define HICUMith_Veie HICUMstate+130 #define HICUMith_Veie HICUMstate+143
#define HICUMnumStates 132 #define HICUMnumStates 144
/* per model data */ /* per model data */
typedef struct sHICUMmodel { /* model structure for a hicum */ typedef struct sHICUMmodel { /* model structure for a hicum */

View File

@ -747,9 +747,10 @@ HICUMunsetup(
here->HICUMcollCINode = 0; here->HICUMcollCINode = 0;
if (selfheat) { if (selfheat) {
// if (here->HICUMtempNode > 5) // it is an internal node if (here->HICUMtempNode > 5) { // it is an internal node
// CKTdltNNum(ckt, here->HICUMtempNode); CKTdltNNum(ckt, here->HICUMtempNode);
// here->HICUMtempNode = 0; here->HICUMtempNode = 0;
}
} }
if(here->HICUMxfNode > 0) if(here->HICUMxfNode > 0)

View File

@ -471,7 +471,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
#ifndef PREDICTOR #ifndef PREDICTOR
double xfact; double xfact;
#endif #endif
double delvbiei=0.0, delvbici=0.0, delvbpei=0.0, delvbpbi=0.0, delvbpci=0.0, delvsici=0.0, delvbbp=0.0, delveie=0.0, delvciei=0.0, delvcic=0.0; double delvbiei=0.0, delvbici=0.0, delvbpei=0.0, delvbpbi=0.0, delvbpci=0.0, delvsici=0.0, delvbbp=0.0, delveie=0.0, delvciei=0.0, delvcic=0.0, delvxf2=0.0;
double ibieihat; double ibieihat;
double ibpeihat; double ibpeihat;
double icieihat; double icieihat;
@ -543,7 +543,6 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
//NQS //NQS
double Qxf_Vxf, Qxf1_Vxf1, Qxf2_Vxf2; double Qxf_Vxf, Qxf1_Vxf1, Qxf2_Vxf2;
double Iqxf=0, Iqxf_Vxf=0, Iqxf1=0, Iqxf1_Vxf1=0, Iqxf2=0, Iqxf2_Vxf2=0; //not needed withouth NQS, initialized with 0 here
double volatile Ith=0, Vrth=0, Icth, Icth_Vrth, delvrth; double volatile Ith=0, Vrth=0, Icth, Icth_Vrth, delvrth;
@ -1454,6 +1453,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
*(ckt->CKTstate0+here->HICUMiciei)=*(ckt->CKTstate1+here->HICUMiciei); *(ckt->CKTstate0+here->HICUMiciei)=*(ckt->CKTstate1+here->HICUMiciei);
*(ckt->CKTstate0+here->HICUMiciei_Vbiei)=*(ckt->CKTstate1+here->HICUMiciei_Vbiei); *(ckt->CKTstate0+here->HICUMiciei_Vbiei)=*(ckt->CKTstate1+here->HICUMiciei_Vbiei);
*(ckt->CKTstate0+here->HICUMiciei_Vbici)=*(ckt->CKTstate1+here->HICUMiciei_Vbici); *(ckt->CKTstate0+here->HICUMiciei_Vbici)=*(ckt->CKTstate1+here->HICUMiciei_Vbici);
*(ckt->CKTstate0+here->HICUMiciei_Vxf2)=*(ckt->CKTstate1+here->HICUMiciei_Vxf2);
*(ckt->CKTstate0+here->HICUMiciei_Vrth)=*(ckt->CKTstate1+here->HICUMiciei_Vrth); *(ckt->CKTstate0+here->HICUMiciei_Vrth)=*(ckt->CKTstate1+here->HICUMiciei_Vrth);
*(ckt->CKTstate0+here->HICUMibici)=*(ckt->CKTstate1+here->HICUMibici); *(ckt->CKTstate0+here->HICUMibici)=*(ckt->CKTstate1+here->HICUMibici);
*(ckt->CKTstate0+here->HICUMibici_Vbici)=*(ckt->CKTstate1+here->HICUMibici_Vbici); *(ckt->CKTstate0+here->HICUMibici_Vbici)=*(ckt->CKTstate1+here->HICUMibici_Vbici);
@ -1488,6 +1488,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
*(ckt->CKTstate0+here->HICUMqf)=*(ckt->CKTstate1+here->HICUMqf); *(ckt->CKTstate0+here->HICUMqf)=*(ckt->CKTstate1+here->HICUMqf);
*(ckt->CKTstate0+here->HICUMcqf)=*(ckt->CKTstate1+here->HICUMcqf); *(ckt->CKTstate0+here->HICUMcqf)=*(ckt->CKTstate1+here->HICUMcqf);
*(ckt->CKTstate0+here->HICUMqf_Vbici)=*(ckt->CKTstate1+here->HICUMqf_Vbici); *(ckt->CKTstate0+here->HICUMqf_Vbici)=*(ckt->CKTstate1+here->HICUMqf_Vbici);
*(ckt->CKTstate0+here->HICUMqf_Vxf)=*(ckt->CKTstate1+here->HICUMqf_Vxf);
*(ckt->CKTstate0+here->HICUMqf_Vrth)=*(ckt->CKTstate1+here->HICUMqf_Vrth); *(ckt->CKTstate0+here->HICUMqf_Vrth)=*(ckt->CKTstate1+here->HICUMqf_Vrth);
*(ckt->CKTstate0+here->HICUMqr)=*(ckt->CKTstate1+here->HICUMqr); *(ckt->CKTstate0+here->HICUMqr)=*(ckt->CKTstate1+here->HICUMqr);
*(ckt->CKTstate0+here->HICUMcqr)=*(ckt->CKTstate1+here->HICUMcqr); *(ckt->CKTstate0+here->HICUMcqr)=*(ckt->CKTstate1+here->HICUMcqr);
@ -1536,24 +1537,32 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
*(ckt->CKTstate0+here->HICUMicth_dT)=*(ckt->CKTstate1+here->HICUMicth_dT); *(ckt->CKTstate0+here->HICUMicth_dT)=*(ckt->CKTstate1+here->HICUMicth_dT);
*(ckt->CKTstate0+here->HICUMvxf)=*(ckt->CKTstate1+here->HICUMvxf); *(ckt->CKTstate0+here->HICUMvxf)=*(ckt->CKTstate1+here->HICUMvxf);
*(ckt->CKTstate0+here->HICUMqxf)=*(ckt->CKTstate1+here->HICUMqxf); *(ckt->CKTstate0+here->HICUMqxf)=*(ckt->CKTstate1+here->HICUMqxf);
*(ckt->CKTstate0+here->HICUMqxf_Vxf)=*(ckt->CKTstate1+here->HICUMqxf_Vxf);
*(ckt->CKTstate0+here->HICUMcqxf)=*(ckt->CKTstate1+here->HICUMcqxf); *(ckt->CKTstate0+here->HICUMcqxf)=*(ckt->CKTstate1+here->HICUMcqxf);
*(ckt->CKTstate0+here->HICUMgqxf)=*(ckt->CKTstate1+here->HICUMgqxf); *(ckt->CKTstate0+here->HICUMgqxf)=*(ckt->CKTstate1+here->HICUMgqxf);
*(ckt->CKTstate0+here->HICUMixf_Vbiei)=*(ckt->CKTstate1+here->HICUMixf_Vbiei); *(ckt->CKTstate0+here->HICUMixf_Vbiei)=*(ckt->CKTstate1+here->HICUMixf_Vbiei);
*(ckt->CKTstate0+here->HICUMixf_Vbici)=*(ckt->CKTstate1+here->HICUMixf_Vbici); *(ckt->CKTstate0+here->HICUMixf_Vbici)=*(ckt->CKTstate1+here->HICUMixf_Vbici);
*(ckt->CKTstate0+here->HICUMixf_Vxf)=*(ckt->CKTstate1+here->HICUMixf_Vxf);
*(ckt->CKTstate0+here->HICUMixf_Vrth)=*(ckt->CKTstate1+here->HICUMixf_Vrth);
*(ckt->CKTstate0+here->HICUMvxf1)=*(ckt->CKTstate1+here->HICUMvxf1); *(ckt->CKTstate0+here->HICUMvxf1)=*(ckt->CKTstate1+here->HICUMvxf1);
*(ckt->CKTstate0+here->HICUMqxf1)=*(ckt->CKTstate1+here->HICUMqxf1); *(ckt->CKTstate0+here->HICUMqxf1)=*(ckt->CKTstate1+here->HICUMqxf1);
*(ckt->CKTstate0+here->HICUMqxf1_Vxf1)=*(ckt->CKTstate1+here->HICUMqxf1_Vxf1);
*(ckt->CKTstate0+here->HICUMcqxf1)=*(ckt->CKTstate1+here->HICUMcqxf1); *(ckt->CKTstate0+here->HICUMcqxf1)=*(ckt->CKTstate1+here->HICUMcqxf1);
*(ckt->CKTstate0+here->HICUMgqxf1)=*(ckt->CKTstate1+here->HICUMgqxf1); *(ckt->CKTstate0+here->HICUMgqxf1)=*(ckt->CKTstate1+here->HICUMgqxf1);
*(ckt->CKTstate0+here->HICUMixf1_Vbiei)=*(ckt->CKTstate1+here->HICUMixf1_Vbiei); *(ckt->CKTstate0+here->HICUMixf1_Vbiei)=*(ckt->CKTstate1+here->HICUMixf1_Vbiei);
*(ckt->CKTstate0+here->HICUMixf1_Vbici)=*(ckt->CKTstate1+here->HICUMixf1_Vbici); *(ckt->CKTstate0+here->HICUMixf1_Vbici)=*(ckt->CKTstate1+here->HICUMixf1_Vbici);
*(ckt->CKTstate0+here->HICUMixf1_Vfx2)=*(ckt->CKTstate1+here->HICUMixf1_Vfx2); *(ckt->CKTstate0+here->HICUMixf1_Vxf2)=*(ckt->CKTstate1+here->HICUMixf1_Vxf2);
*(ckt->CKTstate0+here->HICUMixf1_Vrth)=*(ckt->CKTstate1+here->HICUMixf1_Vrth);
*(ckt->CKTstate0+here->HICUMvxf2)=*(ckt->CKTstate1+here->HICUMvxf2); *(ckt->CKTstate0+here->HICUMvxf2)=*(ckt->CKTstate1+here->HICUMvxf2);
*(ckt->CKTstate0+here->HICUMqxf2)=*(ckt->CKTstate1+here->HICUMqxf2); *(ckt->CKTstate0+here->HICUMqxf2)=*(ckt->CKTstate1+here->HICUMqxf2);
*(ckt->CKTstate0+here->HICUMqxf2_Vxf2)=*(ckt->CKTstate1+here->HICUMqxf2_Vxf2);
*(ckt->CKTstate0+here->HICUMcqxf2)=*(ckt->CKTstate1+here->HICUMcqxf2); *(ckt->CKTstate0+here->HICUMcqxf2)=*(ckt->CKTstate1+here->HICUMcqxf2);
*(ckt->CKTstate0+here->HICUMgqxf2)=*(ckt->CKTstate1+here->HICUMgqxf2); *(ckt->CKTstate0+here->HICUMgqxf2)=*(ckt->CKTstate1+here->HICUMgqxf2);
*(ckt->CKTstate0+here->HICUMixf2_Vbiei)=*(ckt->CKTstate1+here->HICUMixf2_Vbiei); *(ckt->CKTstate0+here->HICUMixf2_Vbiei)=*(ckt->CKTstate1+here->HICUMixf2_Vbiei);
*(ckt->CKTstate0+here->HICUMixf2_Vbici)=*(ckt->CKTstate1+here->HICUMixf2_Vbici); *(ckt->CKTstate0+here->HICUMixf2_Vbici)=*(ckt->CKTstate1+here->HICUMixf2_Vbici);
*(ckt->CKTstate0+here->HICUMixf2_Vfx1)=*(ckt->CKTstate1+here->HICUMixf2_Vfx1); *(ckt->CKTstate0+here->HICUMixf2_Vxf1)=*(ckt->CKTstate1+here->HICUMixf2_Vxf1);
*(ckt->CKTstate0+here->HICUMixf2_Vxf2)=*(ckt->CKTstate1+here->HICUMixf2_Vxf2);
*(ckt->CKTstate0+here->HICUMixf2_Vrth)=*(ckt->CKTstate1+here->HICUMixf2_Vrth);
*(ckt->CKTstate0+here->HICUMith)=*(ckt->CKTstate1+here->HICUMith); *(ckt->CKTstate0+here->HICUMith)=*(ckt->CKTstate1+here->HICUMith);
*(ckt->CKTstate0+here->HICUMith_Vrth)=*(ckt->CKTstate1+here->HICUMith_Vrth); *(ckt->CKTstate0+here->HICUMith_Vrth)=*(ckt->CKTstate1+here->HICUMith_Vrth);
*(ckt->CKTstate0+here->HICUMith_Vbiei)=*(ckt->CKTstate1+here->HICUMith_Vbiei); *(ckt->CKTstate0+here->HICUMith_Vbiei)=*(ckt->CKTstate1+here->HICUMith_Vbiei);
@ -1566,7 +1575,6 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
*(ckt->CKTstate0+here->HICUMith_Vcic)=*(ckt->CKTstate1+here->HICUMith_Vcic); *(ckt->CKTstate0+here->HICUMith_Vcic)=*(ckt->CKTstate1+here->HICUMith_Vcic);
*(ckt->CKTstate0+here->HICUMith_Vbbp)=*(ckt->CKTstate1+here->HICUMith_Vbbp); *(ckt->CKTstate0+here->HICUMith_Vbbp)=*(ckt->CKTstate1+here->HICUMith_Vbbp);
*(ckt->CKTstate0+here->HICUMith_Veie)=*(ckt->CKTstate1+here->HICUMith_Veie); *(ckt->CKTstate0+here->HICUMith_Veie)=*(ckt->CKTstate1+here->HICUMith_Veie);
///////////////////////// /////////////////////////
// end copy state vector // end copy state vector
///////////////////////// /////////////////////////
@ -1629,6 +1637,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
delvcic = Vcic - *(ckt->CKTstate0 + here->HICUMvcic); delvcic = Vcic - *(ckt->CKTstate0 + here->HICUMvcic);
delvbbp = Vbbp - *(ckt->CKTstate0 + here->HICUMvbbp); delvbbp = Vbbp - *(ckt->CKTstate0 + here->HICUMvbbp);
delveie = Veie - *(ckt->CKTstate0 + here->HICUMveie); delveie = Veie - *(ckt->CKTstate0 + here->HICUMveie);
delvxf2 = Vxf2 - *(ckt->CKTstate0 + here->HICUMvxf2);
delvciei = delvbiei-delvbici; delvciei = delvbiei-delvbici;
if (selfheat) { if (selfheat) {
delvrth = Vrth - *(ckt->CKTstate0 + here->HICUMvrth); delvrth = Vrth - *(ckt->CKTstate0 + here->HICUMvrth);
@ -1689,6 +1698,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
icieihat = *(ckt->CKTstate0 + here->HICUMiciei) + icieihat = *(ckt->CKTstate0 + here->HICUMiciei) +
*(ckt->CKTstate0 + here->HICUMiciei_Vbiei)*delvbiei + *(ckt->CKTstate0 + here->HICUMiciei_Vbiei)*delvbiei +
*(ckt->CKTstate0 + here->HICUMiciei_Vrth)*delvrth + *(ckt->CKTstate0 + here->HICUMiciei_Vrth)*delvrth +
*(ckt->CKTstate0 + here->HICUMiciei_Vxf2)*delvxf2 +
*(ckt->CKTstate0 + here->HICUMiciei_Vbici)*delvbici; *(ckt->CKTstate0 + here->HICUMiciei_Vbici)*delvbici;
ibpbihat = *(ckt->CKTstate0 + here->HICUMibpbi) + ibpbihat = *(ckt->CKTstate0 + here->HICUMibpbi) +
*(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi)*delvbpbi + *(ckt->CKTstate0 + here->HICUMibpbi_Vbpbi)*delvbpbi +
@ -1813,6 +1823,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
Iciei_Vbiei = *(ckt->CKTstate0 + here->HICUMiciei_Vbiei); Iciei_Vbiei = *(ckt->CKTstate0 + here->HICUMiciei_Vbiei);
Iciei_Vbici = *(ckt->CKTstate0 + here->HICUMiciei_Vbici); Iciei_Vbici = *(ckt->CKTstate0 + here->HICUMiciei_Vbici);
Iciei_Vrth = *(ckt->CKTstate0 + here->HICUMiciei_Vrth); Iciei_Vrth = *(ckt->CKTstate0 + here->HICUMiciei_Vrth);
Iciei_Vxf2 = *(ckt->CKTstate0 + here->HICUMiciei_Vxf2);
Ibici = *(ckt->CKTstate0 + here->HICUMibici); Ibici = *(ckt->CKTstate0 + here->HICUMibici);
Ibici_Vbici = *(ckt->CKTstate0 + here->HICUMibici_Vbici); Ibici_Vbici = *(ckt->CKTstate0 + here->HICUMibici_Vbici);
@ -1847,6 +1858,24 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
gqbepar2 = *(ckt->CKTstate0 + here->HICUMgqbepar2); gqbepar2 = *(ckt->CKTstate0 + here->HICUMgqbepar2);
gqbcpar1 = *(ckt->CKTstate0 + here->HICUMgqbcpar1); gqbcpar1 = *(ckt->CKTstate0 + here->HICUMgqbcpar1);
gqbcpar2 = *(ckt->CKTstate0 + here->HICUMgqbcpar2); gqbcpar2 = *(ckt->CKTstate0 + here->HICUMgqbcpar2);
Ixf = *(ckt->CKTstate0 + here->HICUMixf) ;
Ixf_Vbiei = *(ckt->CKTstate0 + here->HICUMixf_Vbiei) ;
Ixf_Vbici = *(ckt->CKTstate0 + here->HICUMixf_Vbici) ;
Ixf_Vxf = *(ckt->CKTstate0 + here->HICUMixf_Vxf) ;
Ixf_dT = *(ckt->CKTstate0 + here->HICUMixf_Vrth) ;
Ixf1 = *(ckt->CKTstate0 + here->HICUMixf1) ;
Ixf1_Vbiei = *(ckt->CKTstate0 + here->HICUMixf1_Vbiei) ;
Ixf1_Vbici = *(ckt->CKTstate0 + here->HICUMixf1_Vbici) ;
Ixf1_Vxf2 = *(ckt->CKTstate0 + here->HICUMixf1_Vxf2) ;
Ixf1_dT = *(ckt->CKTstate0 + here->HICUMixf1_Vrth) ;
Ixf2 = *(ckt->CKTstate0 + here->HICUMixf2) ;
Ixf2_Vbiei = *(ckt->CKTstate0 + here->HICUMixf2_Vbiei) ;
Ixf2_Vbici = *(ckt->CKTstate0 + here->HICUMixf2_Vbici) ;
Ixf2_Vxf1 = *(ckt->CKTstate0 + here->HICUMixf2_Vxf1) ;
Ixf2_Vxf2 = *(ckt->CKTstate0 + here->HICUMixf2_Vxf2) ;
Ixf2_dT = *(ckt->CKTstate0 + here->HICUMixf2_Vrth) ;
goto load; goto load;
} }
/* /*
@ -2783,7 +2812,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
} }
// ******************************************** // ********************************************
// all nodes (B BP BI C CI E EI S SI) connected to gmin // all nodes (B BP BI C CI E EI S SI,XF1,XF2,XF3) connected to gmin
// T node not neede since if rth to small, non existent // T node not neede since if rth to small, non existent
Ibiei += ckt->CKTgmin*Vbiei; //BI EI -> BI EI Ibiei += ckt->CKTgmin*Vbiei; //BI EI -> BI EI
Ibici += ckt->CKTgmin*Vbici; //BI CI -> CI Ibici += ckt->CKTgmin*Vbici; //BI CI -> CI
@ -2792,6 +2821,9 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
// Ibpbi += ckt->CKTgmin*Vbpbi; //BP BI -> not needed // Ibpbi += ckt->CKTgmin*Vbpbi; //BP BI -> not needed
// Ibpci += ckt->CKTgmin*Vbpci; //BP CI -> not needed // Ibpci += ckt->CKTgmin*Vbpci; //BP CI -> not needed
Isici += ckt->CKTgmin*Vsici; //SI CI -> SI Isici += ckt->CKTgmin*Vsici; //SI CI -> SI
Ixf1 += ckt->CKTgmin*Vxf1; //SI CI -> SI
Ixf2 += ckt->CKTgmin*Vxf2; //SI CI -> SI
Ixf += ckt->CKTgmin*Vxf; //SI CI -> SI
//C from Icic //C from Icic
//E from Ieie //E from Ieie
//S from Isis //S from Isis
@ -2832,6 +2864,20 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
Ibpsi_Vbpci += ckt->CKTgmin; Ibpsi_Vbpci += ckt->CKTgmin;
Ibpsi_Vsici += ckt->CKTgmin; Ibpsi_Vsici += ckt->CKTgmin;
//Ixf
Ixf_Vbiei += ckt->CKTgmin;
Ixf_Vbici += ckt->CKTgmin;
Ixf_Vxf += ckt->CKTgmin;
//Ixf1
Ixf1_Vbiei += ckt->CKTgmin;
Ixf1_Vbici += ckt->CKTgmin;
Ixf1_Vxf2 += ckt->CKTgmin;
//Ixf2
Ixf2_Vbiei += ckt->CKTgmin;
Ixf2_Vbici += ckt->CKTgmin;
Ixf2_Vxf2 += ckt->CKTgmin;
Ixf2_Vxf1 += ckt->CKTgmin;
//SHE derivatives //SHE derivatives
if (selfheat) { if (selfheat) {
// T node // T node
@ -2868,13 +2914,12 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
Ith_Vbbp += ckt->CKTgmin; Ith_Vbbp += ckt->CKTgmin;
Ith_Veie += ckt->CKTgmin; Ith_Veie += ckt->CKTgmin;
Ith_Vrth += ckt->CKTgmin; Ith_Vrth += ckt->CKTgmin;
}
// NQS effect //NQS
// Ibxf1 = Ixf1; Ixf_dT += ckt->CKTgmin;
// Icxf1 += ddt(Qxf1); Ixf1_dT += ckt->CKTgmin;
// Ibxf2 = Ixf2; Ixf2_dT += ckt->CKTgmin;
// Icxf2 += ddt(Qxf2); }
// end of Load_sources // end of Load_sources
@ -2917,6 +2962,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
*(ckt->CKTstate0 + here->HICUMcqf) = Qdeix_Vbiei; *(ckt->CKTstate0 + here->HICUMcqf) = Qdeix_Vbiei;
*(ckt->CKTstate0 + here->HICUMqf_Vbici) = Qdeix_Vbici; *(ckt->CKTstate0 + here->HICUMqf_Vbici) = Qdeix_Vbici;
*(ckt->CKTstate0 + here->HICUMqf_Vrth) = Qdeix_dT; *(ckt->CKTstate0 + here->HICUMqf_Vrth) = Qdeix_dT;
*(ckt->CKTstate0 + here->HICUMqf_Vxf) = Qdeix_Vxf;
//Qr //Qr
*(ckt->CKTstate0 + here->HICUMqr) = Qr; *(ckt->CKTstate0 + here->HICUMqr) = Qr;
*(ckt->CKTstate0 + here->HICUMcqr) = Qr_Vbici; *(ckt->CKTstate0 + here->HICUMcqr) = Qr_Vbici;
@ -2969,8 +3015,11 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
//NQS //NQS
*(ckt->CKTstate0 + here->HICUMqxf1) = Qxf1; *(ckt->CKTstate0 + here->HICUMqxf1) = Qxf1;
*(ckt->CKTstate0 + here->HICUMcqxf1) = Qxf1_Vxf1;
*(ckt->CKTstate0 + here->HICUMqxf2) = Qxf2; *(ckt->CKTstate0 + here->HICUMqxf2) = Qxf2;
*(ckt->CKTstate0 + here->HICUMcqxf2) = Qxf2_Vxf2;
*(ckt->CKTstate0 + here->HICUMqxf) = Qxf; *(ckt->CKTstate0 + here->HICUMqxf) = Qxf;
*(ckt->CKTstate0 + here->HICUMcqxf) = Qxf_Vxf;
if (selfheat) { if (selfheat) {
//Qth //Qth
*(ckt->CKTstate0 + here->HICUMqcth) = Qcth; *(ckt->CKTstate0 + here->HICUMqcth) = Qcth;
@ -2998,10 +3047,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
(!(ckt->CKTmode & MODEUIC)) ) { (!(ckt->CKTmode & MODEUIC)) ) {
if(ckt->CKTmode & MODEINITSMSIG) { if(ckt->CKTmode & MODEINITSMSIG) {
//TODO (transient not yet implented)
*(ckt->CKTstate0 + here->HICUMcqf) = Qdeix_Vbiei; *(ckt->CKTstate0 + here->HICUMcqf) = Qdeix_Vbiei;
*(ckt->CKTstate0 + here->HICUMqf_Vbici) = Qdeix_Vbici; *(ckt->CKTstate0 + here->HICUMqf_Vbici) = Qdeix_Vbici;
*(ckt->CKTstate0 + here->HICUMqf_Vrth) = Qdeix_dT; *(ckt->CKTstate0 + here->HICUMqf_Vrth) = Qdeix_dT;
*(ckt->CKTstate0 + here->HICUMqf_Vxf) = Qdeix_Vxf;
*(ckt->CKTstate0 + here->HICUMcqjei) = Cjei; *(ckt->CKTstate0 + here->HICUMcqjei) = Cjei;
*(ckt->CKTstate0 + here->HICUMcqjci) = Cjci; *(ckt->CKTstate0 + here->HICUMcqjci) = Cjci;
@ -3067,6 +3116,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
*(ckt->CKTstate0 + here->HICUMqxf2) ; *(ckt->CKTstate0 + here->HICUMqxf2) ;
*(ckt->CKTstate1 + here->HICUMqxf) = *(ckt->CKTstate1 + here->HICUMqxf) =
*(ckt->CKTstate0 + here->HICUMqxf) ; *(ckt->CKTstate0 + here->HICUMqxf) ;
if (selfheat) if (selfheat)
*(ckt->CKTstate1 + here->HICUMqcth) = *(ckt->CKTstate1 + here->HICUMqcth) =
*(ckt->CKTstate0 + here->HICUMqcth) ; *(ckt->CKTstate0 + here->HICUMqcth) ;
@ -3130,21 +3180,21 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
if(error) return(error); if(error) return(error);
Isc_Vsc = geq; Isc_Vsc = geq;
Isc = *(ckt->CKTstate0 + here->HICUMcqscp); Isc = *(ckt->CKTstate0 + here->HICUMcqscp);
//NQS //Qxf
error = NIintegrate(ckt,&geq,&ceq,Qxf1_Vxf1,here->HICUMqxf); error = NIintegrate(ckt,&geq,&ceq,Qxf1_Vxf1,here->HICUMqxf);
if(error) return(error); if(error) return(error);
Iqxf1_Vxf1 = geq; Ixf1_Vxf1 += geq;
Iqxf1 = *(ckt->CKTstate0 + here->HICUMcqxf1); Ixf1 += *(ckt->CKTstate0 + here->HICUMcqxf);
//Qxf2 //Qxf2
error = NIintegrate(ckt,&geq,&ceq,Qxf2_Vxf2,here->HICUMqxf); error = NIintegrate(ckt,&geq,&ceq,Qxf2_Vxf2,here->HICUMqxf2);
if(error) return(error); if(error) return(error);
Iqxf2_Vxf2 = geq; Ixf2_Vxf2 += geq;
Iqxf2 = *(ckt->CKTstate0 + here->HICUMcqxf2); Ixf2 += *(ckt->CKTstate0 + here->HICUMcqxf2);
//Qxf //Qxf
error = NIintegrate(ckt,&geq,&ceq,Qxf_Vxf,here->HICUMqxf); error = NIintegrate(ckt,&geq,&ceq,Qxf_Vxf,here->HICUMqxf1);
if(error) return(error); if(error) return(error);
Iqxf_Vxf = geq; Ixf_Vxf += geq;
Iqxf = *(ckt->CKTstate0 + here->HICUMcqxf); Ixf += *(ckt->CKTstate0 + here->HICUMcqxf1);
if (selfheat) if (selfheat)
{ {
@ -3237,7 +3287,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
} }
} }
// Write to state vector // Write branch currents and voltages to state vector
*(ckt->CKTstate0 + here->HICUMvbiei) = Vbiei; *(ckt->CKTstate0 + here->HICUMvbiei) = Vbiei;
*(ckt->CKTstate0 + here->HICUMvbici) = Vbici; *(ckt->CKTstate0 + here->HICUMvbici) = Vbici;
*(ckt->CKTstate0 + here->HICUMvbpei) = Vbpei; *(ckt->CKTstate0 + here->HICUMvbpei) = Vbpei;
@ -3247,6 +3297,9 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
*(ckt->CKTstate0 + here->HICUMvcic) = Vcic; *(ckt->CKTstate0 + here->HICUMvcic) = Vcic;
*(ckt->CKTstate0 + here->HICUMvbbp) = Vbbp; *(ckt->CKTstate0 + here->HICUMvbbp) = Vbbp;
*(ckt->CKTstate0 + here->HICUMveie) = Veie; *(ckt->CKTstate0 + here->HICUMveie) = Veie;
*(ckt->CKTstate0 + here->HICUMvxf1) = Vxf1;
*(ckt->CKTstate0 + here->HICUMvxf2) = Vxf2;
*(ckt->CKTstate0 + here->HICUMvxf) = Vxf;
*(ckt->CKTstate0 + here->HICUMibiei) = Ibiei; *(ckt->CKTstate0 + here->HICUMibiei) = Ibiei;
*(ckt->CKTstate0 + here->HICUMibiei_Vbiei) = Ibiei_Vbiei; *(ckt->CKTstate0 + here->HICUMibiei_Vbiei) = Ibiei_Vbiei;
@ -3261,7 +3314,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
*(ckt->CKTstate0 + here->HICUMiciei_Vbiei) = Iciei_Vbiei; *(ckt->CKTstate0 + here->HICUMiciei_Vbiei) = Iciei_Vbiei;
*(ckt->CKTstate0 + here->HICUMiciei_Vbici) = Iciei_Vbici; *(ckt->CKTstate0 + here->HICUMiciei_Vbici) = Iciei_Vbici;
*(ckt->CKTstate0 + here->HICUMiciei_Vrth) = Iciei_Vrth; *(ckt->CKTstate0 + here->HICUMiciei_Vrth) = Iciei_Vrth;
//*(ckt->CKTstate0 + here->HICUMiciei_Vxf2) = Iciei_Vxf2; *(ckt->CKTstate0 + here->HICUMiciei_Vxf2) = Iciei_Vxf2;
*(ckt->CKTstate0 + here->HICUMibici) = Ibici; *(ckt->CKTstate0 + here->HICUMibici) = Ibici;
*(ckt->CKTstate0 + here->HICUMibici_Vbici) = Ibici_Vbici; *(ckt->CKTstate0 + here->HICUMibici_Vbici) = Ibici_Vbici;
@ -3317,7 +3370,24 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
*(ckt->CKTstate0 + here->HICUMith_Vbbp) = Ith_Vbbp; *(ckt->CKTstate0 + here->HICUMith_Vbbp) = Ith_Vbbp;
*(ckt->CKTstate0 + here->HICUMith_Veie) = Ith_Veie; *(ckt->CKTstate0 + here->HICUMith_Veie) = Ith_Veie;
*(ckt->CKTstate0 + here->HICUMixf) = Ixf;
*(ckt->CKTstate0 + here->HICUMixf_Vbiei) = Ixf_Vbiei;
*(ckt->CKTstate0 + here->HICUMixf_Vbici) = Ixf_Vbici;
*(ckt->CKTstate0 + here->HICUMixf_Vxf) = Ixf_Vxf;
*(ckt->CKTstate0 + here->HICUMixf_Vrth) = Ixf_dT;
*(ckt->CKTstate0 + here->HICUMixf1) = Ixf1;
*(ckt->CKTstate0 + here->HICUMixf1_Vbiei) = Ixf1_Vbiei;
*(ckt->CKTstate0 + here->HICUMixf1_Vbici) = Ixf1_Vbici;
*(ckt->CKTstate0 + here->HICUMixf1_Vxf2) = Ixf1_Vxf2;
*(ckt->CKTstate0 + here->HICUMixf1_Vrth) = Ixf1_dT;
*(ckt->CKTstate0 + here->HICUMixf2) = Ixf2;
*(ckt->CKTstate0 + here->HICUMixf2_Vbiei) = Ixf2_Vbiei;
*(ckt->CKTstate0 + here->HICUMixf2_Vbici) = Ixf2_Vbici;
*(ckt->CKTstate0 + here->HICUMixf2_Vxf1) = Ixf2_Vxf1;
*(ckt->CKTstate0 + here->HICUMixf2_Vxf2) = Ixf2_Vxf2;
*(ckt->CKTstate0 + here->HICUMixf2_Vrth) = Ixf2_dT;
load: load:
// ############################################################# // #############################################################
@ -3597,18 +3667,7 @@ load:
*(here->HICUMxfBaseBIPtr) += +Ixf_Vbici; *(here->HICUMxfBaseBIPtr) += +Ixf_Vbici;
*(here->HICUMxfCollCIPtr) += -Ixf_Vbici; *(here->HICUMxfCollCIPtr) += -Ixf_Vbici;
*(here->HICUMxfXfPtr) += +Ixf_Vxf; *(here->HICUMxfXfPtr) += +Ixf_Vxf;
// Branch: xf1-ground, Stamp element: Qxf1 // TODO Test in AC simulation!
rhs_current = Iqxf1 - Iqxf1_Vxf1*Vxf1;
*(ckt->CKTrhs + here->HICUMxf1Node) += -rhs_current;
*(here->HICUMxf1Xf1Ptr) += +Iqxf1_Vxf1;
// Branch: xf2-ground, Stamp element: Qxf2 // TODO Test in AC simulation!
rhs_current = Iqxf2 - Iqxf2_Vxf2*Vxf2;
*(ckt->CKTrhs + here->HICUMxf2Node) += -rhs_current;
*(here->HICUMxf2Xf2Ptr) += +Iqxf2_Vxf2;
// Branch: xf-ground, Stamp element: Qxf // TODO Test in AC simulation!
rhs_current = model->HICUMtype * (Iqxf - Iqxf_Vxf*Vxf);
*(ckt->CKTrhs + here->HICUMxfNode) += -rhs_current; // into ground
*(here->HICUMxfXfPtr) += +Iqxf_Vxf;
/* /*
c Branch: xf1-ground, Stamp element: Rxf1 TODO: This is wrong, but needed at the moment for convergence c Branch: xf1-ground, Stamp element: Rxf1 TODO: This is wrong, but needed at the moment for convergence
*/ */
@ -3739,6 +3798,27 @@ c Branch: xf-ground, Stamp element: Rxf
*(here->HICUMsubsSItempPtr) += -Ibpsi_Vrth; *(here->HICUMsubsSItempPtr) += -Ibpsi_Vrth;
// finish // finish
// Stamp element: Ixf f_xf = +
rhs_current = -Ixf_dT*Vrth;
*(ckt->CKTrhs + here->HICUMxfNode) += -rhs_current;
// with respect to Potential Vxf
*(here->HICUMxfTempPtr) += Ixf_dT;
// finish
// Stamp element: Ixf1 f_xf1 = +
rhs_current = -Ixf1_dT*Vrth;
*(ckt->CKTrhs + here->HICUMxf1Node) += -rhs_current;
// with respect to Potential Vxf1
*(here->HICUMxf1TempPtr) += Ixf1_dT;
// finish
// Stamp element: Ixf2 f_xf2 = +
rhs_current = -Ixf2_dT*Vrth;
*(ckt->CKTrhs + here->HICUMxf2Node) += -rhs_current;
// with respect to Potential Vxf2
*(here->HICUMxf2TempPtr) += Ixf2_dT;
// finish
// Stamp element: Ith f_T = - Ith // Stamp element: Ith f_T = - Ith
rhs_current = Ith + Icth - Icth_Vrth*Vrth rhs_current = Ith + Icth - Icth_Vrth*Vrth
- Ith_Vbiei*Vbiei - Ith_Vbici*Vbici - Ith_Vciei*Vciei - Ith_Vbiei*Vbiei - Ith_Vbici*Vbici - Ith_Vciei*Vciei