diff --git a/src/spicelib/devices/hicum2/hicum2acld.c b/src/spicelib/devices/hicum2/hicum2acld.c index 8ac8826f0..5921300b8 100644 --- a/src/spicelib/devices/hicum2/hicum2acld.c +++ b/src/spicelib/devices/hicum2/hicum2acld.c @@ -262,42 +262,42 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt) //Qrbi XQrbi_Vbpbi = *(ckt->CKTstate0 + here->HICUMcqrbi) * ckt->CKTomega; - XQrbi_Vbiei = *(ckt->CKTstate0 + here->HICUMqrbi_Vbiei) * ckt->CKTomega; - XQrbi_Vbici = *(ckt->CKTstate0 + here->HICUMqrbi_Vbici) * ckt->CKTomega; - XQrbi_Vrth = *(ckt->CKTstate0 + here->HICUMqrbi_Vrth) * ckt->CKTomega; + XQrbi_Vbiei = here->HICUMqrbi_Vbiei * ckt->CKTomega; + XQrbi_Vbici = here->HICUMqrbi_Vbici * ckt->CKTomega; + XQrbi_Vrth = here->HICUMqrbi_Vrth * ckt->CKTomega; //Qjei XQjei_Vbiei = *(ckt->CKTstate0 + here->HICUMcqjei) * ckt->CKTomega; - XQjei_Vrth = *(ckt->CKTstate0 + here->HICUMqjei_Vrth) * ckt->CKTomega; + XQjei_Vrth = here->HICUMqjei_Vrth * ckt->CKTomega; //Qf XQf_Vbiei = *(ckt->CKTstate0 + here->HICUMcqf) * ckt->CKTomega; - XQf_Vbici = *(ckt->CKTstate0 + here->HICUMqf_Vbici) * ckt->CKTomega; - XQf_Vrth = *(ckt->CKTstate0 + here->HICUMqf_Vrth) * ckt->CKTomega; + XQf_Vbici = here->HICUMqf_Vbici * ckt->CKTomega; + XQf_Vrth = here->HICUMqf_Vrth * ckt->CKTomega; //Qr XQr_Vbici = *(ckt->CKTstate0 + here->HICUMcqr) * ckt->CKTomega; - XQr_Vbiei = *(ckt->CKTstate0 + here->HICUMqr_Vbiei) * ckt->CKTomega; - XQr_Vrth = *(ckt->CKTstate0 + here->HICUMqr_Vrth) * ckt->CKTomega; + XQr_Vbiei = here->HICUMqr_Vbiei * ckt->CKTomega; + XQr_Vrth = here->HICUMqr_Vrth * ckt->CKTomega; //Qjci XQjci_Vbici = *(ckt->CKTstate0 + here->HICUMcqjci) * ckt->CKTomega; - XQjci_Vrth = *(ckt->CKTstate0 + here->HICUMqjci_Vrth) * ckt->CKTomega; + XQjci_Vrth = here->HICUMqjci_Vrth * ckt->CKTomega; //Qjep XQjep_Vbpei = *(ckt->CKTstate0 + here->HICUMcqjep) * ckt->CKTomega; - XQjep_Vrth = *(ckt->CKTstate0 + here->HICUMqjep_Vrth) * ckt->CKTomega; + XQjep_Vrth = here->HICUMqjep_Vrth * ckt->CKTomega; //Qjcx_i Xqjcx0_t_i_Vbci = *(ckt->CKTstate0 + here->HICUMcqcx0_t_i) * ckt->CKTomega; - Xqjcx0_t_i_Vrth = *(ckt->CKTstate0 + here->HICUMqjcx0_i_Vrth) * ckt->CKTomega; + Xqjcx0_t_i_Vrth = here->HICUMqjcx0_i_Vrth * ckt->CKTomega; //Qjcx_ii Xqjcx0_t_ii_Vbpci = *(ckt->CKTstate0 + here->HICUMcqcx0_t_ii) * ckt->CKTomega; - Xqjcx0_t_ii_Vrth = *(ckt->CKTstate0 + here->HICUMqjcx0_ii_Vrth) * ckt->CKTomega; + Xqjcx0_t_ii_Vrth = here->HICUMqjcx0_ii_Vrth * ckt->CKTomega; //Qdsu XQdsu_Vbpci = *(ckt->CKTstate0 + here->HICUMcqdsu) * ckt->CKTomega; - XQdsu_Vsici = *(ckt->CKTstate0 + here->HICUMqdsu_Vsici) * ckt->CKTomega; - XQdsu_Vrth = *(ckt->CKTstate0 + here->HICUMqdsu_Vrth) * ckt->CKTomega; + XQdsu_Vsici = here->HICUMqdsu_Vsici * ckt->CKTomega; + XQdsu_Vrth = here->HICUMqdsu_Vrth * ckt->CKTomega; //Qjs XQjs_Vsici = *(ckt->CKTstate0 + here->HICUMcqjs) * ckt->CKTomega; - XQjs_Vrth = *(ckt->CKTstate0 + here->HICUMqjs_Vrth) * ckt->CKTomega; + XQjs_Vrth = here->HICUMqjs_Vrth * ckt->CKTomega; //Qscp XQscp_Vsc = *(ckt->CKTstate0 + here->HICUMcqscp) * ckt->CKTomega; - XQscp_Vrth = *(ckt->CKTstate0 + here->HICUMqscp_Vrth) * ckt->CKTomega; + XQscp_Vrth = here->HICUMqscp_Vrth * ckt->CKTomega; //Qbepar1 XQbepar1_Vbe = *(ckt->CKTstate0 + here->HICUMcqbepar1) * ckt->CKTomega; //Qbepar2 diff --git a/src/spicelib/devices/hicum2/hicum2defs.h b/src/spicelib/devices/hicum2/hicum2defs.h index 3b119c6e4..cfe33397b 100644 --- a/src/spicelib/devices/hicum2/hicum2defs.h +++ b/src/spicelib/devices/hicum2/hicum2defs.h @@ -307,6 +307,29 @@ typedef struct sHICUMinstance { double HICUMcapsu; double HICUMcapcth; + //Caps due to coupling between branches + double HICUMqrbi_Vbiei; + double HICUMqrbi_Vbici; + double HICUMqrbi_Vrth; + double HICUMqjei_Vrth; + double HICUMqjep_Vrth; + double HICUMqf_Vbici; + double HICUMqf_Vxf; + double HICUMqf_Vrth; + double HICUMqr_Vbiei; + double HICUMqr_Vrth; + double HICUMqjci_Vrth; + double HICUMqjcx0_i_Vrth; + double HICUMqjcx0_ii_Vrth; + double HICUMqdsu_Vrth; + double HICUMqdsu_Vsici; + double HICUMqjs_Vrth; + double HICUMqscp_Vrth; + double HICUMicth_dT; + double HICUMqxf2_Vxf2; + double HICUMqxf_Vxf; + double HICUMqxf1_Vxf1; + double HICUMcapxf; double HICUMtVcrit; @@ -332,175 +355,153 @@ typedef struct sHICUMinstance { #define HICUMvcic HICUMstate+6 #define HICUMvbbp HICUMstate+7 #define HICUMveie HICUMstate+8 +#define HICUMvrth HICUMstate+9 +#define HICUMvxf HICUMstate+10 +#define HICUMvxf1 HICUMstate+11 +#define HICUMvxf2 HICUMstate+12 -#define HICUMibiei HICUMstate+9 -#define HICUMibiei_Vbiei HICUMstate+10 -#define HICUMibiei_Vbici HICUMstate+11 -#define HICUMibiei_Vrth HICUMstate+12 +#define HICUMibiei HICUMstate+13 +#define HICUMibiei_Vbiei HICUMstate+14 +#define HICUMibiei_Vbici HICUMstate+15 +#define HICUMibiei_Vrth HICUMstate+16 -#define HICUMibpei HICUMstate+13 -#define HICUMibpei_Vbpei HICUMstate+14 -#define HICUMibpei_Vrth HICUMstate+15 +#define HICUMibpei HICUMstate+17 +#define HICUMibpei_Vbpei HICUMstate+18 +#define HICUMibpei_Vrth HICUMstate+19 -#define HICUMiciei HICUMstate+16 -#define HICUMiciei_Vbiei HICUMstate+17 -#define HICUMiciei_Vbici HICUMstate+18 -#define HICUMiciei_Vxf2 HICUMstate+19 -#define HICUMiciei_Vrth HICUMstate+20 +#define HICUMiciei HICUMstate+20 +#define HICUMiciei_Vbiei HICUMstate+21 +#define HICUMiciei_Vbici HICUMstate+22 +#define HICUMiciei_Vxf2 HICUMstate+23 +#define HICUMiciei_Vrth HICUMstate+24 -#define HICUMibici HICUMstate+21 -#define HICUMibici_Vbici HICUMstate+22 -#define HICUMibici_Vbiei HICUMstate+23 -#define HICUMibici_Vrth HICUMstate+24 +#define HICUMibici HICUMstate+25 +#define HICUMibici_Vbici HICUMstate+26 +#define HICUMibici_Vbiei HICUMstate+27 +#define HICUMibici_Vrth HICUMstate+28 -#define HICUMibpbi HICUMstate+25 -#define HICUMibpbi_Vbpbi HICUMstate+26 -#define HICUMibpbi_Vbiei HICUMstate+27 -#define HICUMibpbi_Vbici HICUMstate+28 -#define HICUMibpbi_Vrth HICUMstate+29 +#define HICUMibpbi HICUMstate+29 +#define HICUMibpbi_Vbpbi HICUMstate+30 +#define HICUMibpbi_Vbiei HICUMstate+31 +#define HICUMibpbi_Vbici HICUMstate+32 +#define HICUMibpbi_Vrth HICUMstate+33 -#define HICUMibpci HICUMstate+30 -#define HICUMibpci_Vbpci HICUMstate+31 -#define HICUMibpci_Vrth HICUMstate+32 +#define HICUMibpci HICUMstate+34 +#define HICUMibpci_Vbpci HICUMstate+35 +#define HICUMibpci_Vrth HICUMstate+36 -#define HICUMisici HICUMstate+33 -#define HICUMisici_Vsici HICUMstate+34 -#define HICUMisici_Vrth HICUMstate+35 +#define HICUMisici HICUMstate+37 +#define HICUMisici_Vsici HICUMstate+38 +#define HICUMisici_Vrth HICUMstate+39 -#define HICUMibpsi HICUMstate+36 -#define HICUMibpsi_Vbpci HICUMstate+37 -#define HICUMibpsi_Vsici HICUMstate+38 -#define HICUMibpsi_Vrth HICUMstate+39 +#define HICUMibpsi HICUMstate+40 +#define HICUMibpsi_Vbpci HICUMstate+41 +#define HICUMibpsi_Vsici HICUMstate+42 +#define HICUMibpsi_Vrth HICUMstate+43 -#define HICUMisis_Vsis HICUMstate+40 +#define HICUMisis_Vsis HICUMstate+44 -#define HICUMieie HICUMstate+41 // needed for re-flicker noise -#define HICUMieie_Vrth HICUMstate+42 +#define HICUMieie HICUMstate+45 // needed for re-flicker noise +#define HICUMieie_Vrth HICUMstate+46 -#define HICUMqrbi HICUMstate+43 -#define HICUMcqrbi HICUMstate+44 -#define HICUMqrbi_Vbiei HICUMstate+45 -#define HICUMqrbi_Vbici HICUMstate+46 -#define HICUMqrbi_Vrth HICUMstate+47 +#define HICUMqrbi HICUMstate+47 +#define HICUMcqrbi HICUMstate+48 -#define HICUMqjei HICUMstate+48 -#define HICUMcqjei HICUMstate+49 -#define HICUMqjei_Vrth HICUMstate+50 +#define HICUMqjei HICUMstate+49 +#define HICUMcqjei HICUMstate+50 #define HICUMqf HICUMstate+51 #define HICUMcqf HICUMstate+52 -#define HICUMqf_Vbici HICUMstate+53 -#define HICUMqf_Vxf HICUMstate+54 -#define HICUMqf_Vrth HICUMstate+55 -#define HICUMqr HICUMstate+56 -#define HICUMcqr HICUMstate+57 -#define HICUMqr_Vbiei HICUMstate+58 -#define HICUMqr_Vrth HICUMstate+59 +#define HICUMqr HICUMstate+53 +#define HICUMcqr HICUMstate+54 -#define HICUMqjci HICUMstate+60 -#define HICUMcqjci HICUMstate+61 -#define HICUMqjci_Vrth HICUMstate+62 +#define HICUMqjci HICUMstate+55 +#define HICUMcqjci HICUMstate+56 -#define HICUMqjep HICUMstate+63 -#define HICUMcqjep HICUMstate+64 -#define HICUMqjep_Vrth HICUMstate+65 +#define HICUMqjep HICUMstate+57 +#define HICUMcqjep HICUMstate+58 -#define HICUMqjcx0_i HICUMstate+66 -#define HICUMcqcx0_t_i HICUMstate+67 -#define HICUMqjcx0_i_Vrth HICUMstate+68 +#define HICUMqjcx0_i HICUMstate+59 +#define HICUMcqcx0_t_i HICUMstate+60 -#define HICUMqjcx0_ii HICUMstate+69 -#define HICUMcqcx0_t_ii HICUMstate+70 -#define HICUMqjcx0_ii_Vrth HICUMstate+71 +#define HICUMqjcx0_ii HICUMstate+61 +#define HICUMcqcx0_t_ii HICUMstate+62 -#define HICUMqdsu HICUMstate+72 -#define HICUMcqdsu HICUMstate+73 -#define HICUMqdsu_Vrth HICUMstate+74 -#define HICUMqdsu_Vsici HICUMstate+75 +#define HICUMqdsu HICUMstate+63 +#define HICUMcqdsu HICUMstate+64 -#define HICUMqjs HICUMstate+76 -#define HICUMcqjs HICUMstate+77 -#define HICUMqjs_Vrth HICUMstate+78 +#define HICUMqjs HICUMstate+65 +#define HICUMcqjs HICUMstate+66 -#define HICUMqscp HICUMstate+79 -#define HICUMcqscp HICUMstate+80 -#define HICUMqscp_Vrth HICUMstate+81 +#define HICUMqscp HICUMstate+67 +#define HICUMcqscp HICUMstate+68 -#define HICUMqbepar1 HICUMstate+82 -#define HICUMcqbepar1 HICUMstate+83 -#define HICUMgqbepar1 HICUMstate+84 +#define HICUMqbepar1 HICUMstate+69 +#define HICUMcqbepar1 HICUMstate+70 +#define HICUMgqbepar1 HICUMstate+71 -#define HICUMqbepar2 HICUMstate+85 -#define HICUMcqbepar2 HICUMstate+86 -#define HICUMgqbepar2 HICUMstate+87 +#define HICUMqbepar2 HICUMstate+72 +#define HICUMcqbepar2 HICUMstate+73 +#define HICUMgqbepar2 HICUMstate+74 -#define HICUMqbcpar1 HICUMstate+88 -#define HICUMcqbcpar1 HICUMstate+89 -#define HICUMgqbcpar1 HICUMstate+90 +#define HICUMqbcpar1 HICUMstate+75 +#define HICUMcqbcpar1 HICUMstate+76 +#define HICUMgqbcpar1 HICUMstate+77 -#define HICUMqbcpar2 HICUMstate+91 -#define HICUMcqbcpar2 HICUMstate+92 -#define HICUMgqbcpar2 HICUMstate+93 +#define HICUMqbcpar2 HICUMstate+78 +#define HICUMcqbcpar2 HICUMstate+79 +#define HICUMgqbcpar2 HICUMstate+80 -#define HICUMqsu HICUMstate+94 -#define HICUMcqsu HICUMstate+95 -#define HICUMgqsu HICUMstate+96 +#define HICUMqsu HICUMstate+81 +#define HICUMcqsu HICUMstate+82 +#define HICUMgqsu HICUMstate+83 -#define HICUMqcth HICUMstate+97 -#define HICUMcqcth HICUMstate+98 +#define HICUMqcth HICUMstate+84 +#define HICUMcqcth HICUMstate+85 -#define HICUMvrth HICUMstate+99 -#define HICUMicth_dT HICUMstate+100 +#define HICUMqxf HICUMstate+86 +#define HICUMcqxf HICUMstate+87 +#define HICUMgqxf HICUMstate+88 +#define HICUMixf HICUMstate+89 +#define HICUMixf_Vbiei HICUMstate+90 +#define HICUMixf_Vbici HICUMstate+91 +#define HICUMixf_Vxf HICUMstate+92 +#define HICUMixf_Vrth HICUMstate+93 -#define HICUMvxf HICUMstate+101 -#define HICUMqxf HICUMstate+102 -#define HICUMqxf_Vxf HICUMstate+103 -#define HICUMcqxf HICUMstate+104 -#define HICUMgqxf HICUMstate+105 -#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 HICUMqxf1 HICUMstate+94 +#define HICUMcqxf1 HICUMstate+95 +#define HICUMgqxf1 HICUMstate+96 +#define HICUMixf1 HICUMstate+97 +#define HICUMixf1_Vbiei HICUMstate+98 +#define HICUMixf1_Vbici HICUMstate+99 +#define HICUMixf1_Vxf2 HICUMstate+100 +#define HICUMixf1_Vrth HICUMstate+101 -#define HICUMvxf1 HICUMstate+111 -#define HICUMqxf1 HICUMstate+112 -#define HICUMqxf1_Vxf1 HICUMstate+113 -#define HICUMcqxf1 HICUMstate+114 -#define HICUMgqxf1 HICUMstate+115 -#define HICUMixf1 HICUMstate+116 -#define HICUMixf1_Vbiei HICUMstate+117 -#define HICUMixf1_Vbici HICUMstate+118 -#define HICUMixf1_Vxf2 HICUMstate+119 -#define HICUMixf1_Vrth HICUMstate+120 +#define HICUMqxf2 HICUMstate+102 +#define HICUMcqxf2 HICUMstate+103 +#define HICUMgqxf2 HICUMstate+104 +#define HICUMixf2 HICUMstate+105 +#define HICUMixf2_Vbiei HICUMstate+106 +#define HICUMixf2_Vbici HICUMstate+107 +#define HICUMixf2_Vxf1 HICUMstate+108 +#define HICUMixf2_Vxf2 HICUMstate+109 +#define HICUMixf2_Vrth HICUMstate+110 -#define HICUMvxf2 HICUMstate+121 -#define HICUMqxf2 HICUMstate+122 -#define HICUMqxf2_Vxf2 HICUMstate+123 -#define HICUMcqxf2 HICUMstate+124 -#define HICUMgqxf2 HICUMstate+125 -#define HICUMixf2 HICUMstate+126 -#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+111 +#define HICUMith_Vrth HICUMstate+112 +#define HICUMith_Vbiei HICUMstate+113 +#define HICUMith_Vbici HICUMstate+114 +#define HICUMith_Vbpbi HICUMstate+115 +#define HICUMith_Vbpci HICUMstate+116 +#define HICUMith_Vbpei HICUMstate+117 +#define HICUMith_Vciei HICUMstate+118 +#define HICUMith_Vsici HICUMstate+119 +#define HICUMith_Vcic HICUMstate+120 +#define HICUMith_Vbbp HICUMstate+121 +#define HICUMith_Veie HICUMstate+122 -#define HICUMith HICUMstate+132 -#define HICUMith_Vrth HICUMstate+133 -#define HICUMith_Vbiei HICUMstate+134 -#define HICUMith_Vbici HICUMstate+135 -#define HICUMith_Vbpbi HICUMstate+136 -#define HICUMith_Vbpci HICUMstate+137 -#define HICUMith_Vbpei HICUMstate+138 -#define HICUMith_Vciei HICUMstate+139 -#define HICUMith_Vsici HICUMstate+140 -#define HICUMith_Vcic HICUMstate+141 -#define HICUMith_Vbbp HICUMstate+142 -#define HICUMith_Veie HICUMstate+143 - -#define HICUMnumStates 144 +#define HICUMnumStates 123 /* per model data */ typedef struct sHICUMmodel { /* model structure for a hicum */ diff --git a/src/spicelib/devices/hicum2/hicumL2.cpp b/src/spicelib/devices/hicum2/hicumL2.cpp index b81b752a8..cc75f6580 100644 --- a/src/spicelib/devices/hicum2/hicumL2.cpp +++ b/src/spicelib/devices/hicum2/hicumL2.cpp @@ -1479,43 +1479,26 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) *(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->HICUMqrbi_Vbiei)=*(ckt->CKTstate1+here->HICUMqrbi_Vbiei); - *(ckt->CKTstate0+here->HICUMqrbi_Vbici)=*(ckt->CKTstate1+here->HICUMqrbi_Vbici); - *(ckt->CKTstate0+here->HICUMqrbi_Vrth)=*(ckt->CKTstate1+here->HICUMqrbi_Vrth); *(ckt->CKTstate0+here->HICUMqjei)=*(ckt->CKTstate1+here->HICUMqjei); *(ckt->CKTstate0+here->HICUMcqjei)=*(ckt->CKTstate1+here->HICUMcqjei); - *(ckt->CKTstate0+here->HICUMqjei_Vrth)=*(ckt->CKTstate1+here->HICUMqjei_Vrth); *(ckt->CKTstate0+here->HICUMqf)=*(ckt->CKTstate1+here->HICUMqf); *(ckt->CKTstate0+here->HICUMcqf)=*(ckt->CKTstate1+here->HICUMcqf); - *(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->HICUMqr)=*(ckt->CKTstate1+here->HICUMqr); *(ckt->CKTstate0+here->HICUMcqr)=*(ckt->CKTstate1+here->HICUMcqr); - *(ckt->CKTstate0+here->HICUMqr_Vbiei)=*(ckt->CKTstate1+here->HICUMqr_Vbiei); - *(ckt->CKTstate0+here->HICUMqr_Vrth)=*(ckt->CKTstate1+here->HICUMqr_Vrth); *(ckt->CKTstate0+here->HICUMqjci)=*(ckt->CKTstate1+here->HICUMqjci); *(ckt->CKTstate0+here->HICUMcqjci)=*(ckt->CKTstate1+here->HICUMcqjci); - *(ckt->CKTstate0+here->HICUMqjci_Vrth)=*(ckt->CKTstate1+here->HICUMqjci_Vrth); *(ckt->CKTstate0+here->HICUMqjep)=*(ckt->CKTstate1+here->HICUMqjep); *(ckt->CKTstate0+here->HICUMcqjep)=*(ckt->CKTstate1+here->HICUMcqjep); - *(ckt->CKTstate0+here->HICUMqjep_Vrth)=*(ckt->CKTstate1+here->HICUMqjep_Vrth); *(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_i_Vrth)=*(ckt->CKTstate1+here->HICUMqjcx0_i_Vrth); *(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->HICUMqjcx0_ii_Vrth)=*(ckt->CKTstate1+here->HICUMqjcx0_ii_Vrth); *(ckt->CKTstate0+here->HICUMqdsu)=*(ckt->CKTstate1+here->HICUMqdsu); *(ckt->CKTstate0+here->HICUMcqdsu)=*(ckt->CKTstate1+here->HICUMcqdsu); - *(ckt->CKTstate0+here->HICUMqdsu_Vrth)=*(ckt->CKTstate1+here->HICUMqdsu_Vrth); - *(ckt->CKTstate0+here->HICUMqdsu_Vsici)=*(ckt->CKTstate1+here->HICUMqdsu_Vsici); *(ckt->CKTstate0+here->HICUMqjs)=*(ckt->CKTstate1+here->HICUMqjs); *(ckt->CKTstate0+here->HICUMcqjs)=*(ckt->CKTstate1+here->HICUMcqjs); - *(ckt->CKTstate0+here->HICUMqjs_Vrth)=*(ckt->CKTstate1+here->HICUMqjs_Vrth); *(ckt->CKTstate0+here->HICUMqscp)=*(ckt->CKTstate1+here->HICUMqscp); *(ckt->CKTstate0+here->HICUMcqscp)=*(ckt->CKTstate1+here->HICUMcqscp); - *(ckt->CKTstate0+here->HICUMqscp_Vrth)=*(ckt->CKTstate1+here->HICUMqscp_Vrth); *(ckt->CKTstate0+here->HICUMqbepar1)=*(ckt->CKTstate1+here->HICUMqbepar1); *(ckt->CKTstate0+here->HICUMcqbepar1)=*(ckt->CKTstate1+here->HICUMcqbepar1); *(ckt->CKTstate0+here->HICUMgqbepar1)=*(ckt->CKTstate1+here->HICUMgqbepar1); @@ -1534,10 +1517,8 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) *(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->HICUMqxf_Vxf)=*(ckt->CKTstate1+here->HICUMqxf_Vxf); *(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); @@ -1546,7 +1527,6 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) *(ckt->CKTstate0+here->HICUMixf_Vrth)=*(ckt->CKTstate1+here->HICUMixf_Vrth); *(ckt->CKTstate0+here->HICUMvxf1)=*(ckt->CKTstate1+here->HICUMvxf1); *(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->HICUMgqxf1)=*(ckt->CKTstate1+here->HICUMgqxf1); *(ckt->CKTstate0+here->HICUMixf1_Vbiei)=*(ckt->CKTstate1+here->HICUMixf1_Vbiei); @@ -1555,7 +1535,6 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) *(ckt->CKTstate0+here->HICUMixf1_Vrth)=*(ckt->CKTstate1+here->HICUMixf1_Vrth); *(ckt->CKTstate0+here->HICUMvxf2)=*(ckt->CKTstate1+here->HICUMvxf2); *(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->HICUMgqxf2)=*(ckt->CKTstate1+here->HICUMgqxf2); *(ckt->CKTstate0+here->HICUMixf2_Vbiei)=*(ckt->CKTstate1+here->HICUMixf2_Vbiei); @@ -2953,53 +2932,36 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) //Qrbi *(ckt->CKTstate0 + here->HICUMqrbi) = Qrbi; *(ckt->CKTstate0 + here->HICUMcqrbi) = Qrbi_Vbpbi; - *(ckt->CKTstate0 + here->HICUMqrbi_Vbiei) = Qrbi_Vbiei; - *(ckt->CKTstate0 + here->HICUMqrbi_Vbici) = Qrbi_Vbici; - *(ckt->CKTstate0 + here->HICUMqrbi_Vrth) = Qrbi_Vrth; //Qjei *(ckt->CKTstate0 + here->HICUMqjei) = Qjei; *(ckt->CKTstate0 + here->HICUMcqjei) = Qjei_Vbiei; - *(ckt->CKTstate0 + here->HICUMqjei_Vrth) = Qjei_dT; //Qf *(ckt->CKTstate0 + here->HICUMqf) = Qdeix; *(ckt->CKTstate0 + here->HICUMcqf) = Qdeix_Vbiei; - *(ckt->CKTstate0 + here->HICUMqf_Vbici) = Qdeix_Vbici; - *(ckt->CKTstate0 + here->HICUMqf_Vrth) = Qdeix_dT; - *(ckt->CKTstate0 + here->HICUMqf_Vxf) = Qdeix_Vxf; //Qr *(ckt->CKTstate0 + here->HICUMqr) = Qr; *(ckt->CKTstate0 + here->HICUMcqr) = Qr_Vbici; - *(ckt->CKTstate0 + here->HICUMqr_Vbiei) = Qr_Vbiei; - *(ckt->CKTstate0 + here->HICUMqr_Vrth) = Qr_dT; //Qjci *(ckt->CKTstate0 + here->HICUMqjci) = Qjci; *(ckt->CKTstate0 + here->HICUMcqjci) = Qjci_Vbici; - *(ckt->CKTstate0 + here->HICUMqjci_Vrth) = Qjci_dT; //Qjep *(ckt->CKTstate0 + here->HICUMqjep) = Qjep; *(ckt->CKTstate0 + here->HICUMcqjep) = Qjep_Vbpei; - *(ckt->CKTstate0 + here->HICUMqjep_Vrth) = Qjep_dT; //Qjcx_i *(ckt->CKTstate0 + here->HICUMqjcx0_i) = Qjcx_i; *(ckt->CKTstate0 + here->HICUMcqcx0_t_i) = Qjcx_i_Vbci; - *(ckt->CKTstate0 + here->HICUMqjcx0_i_Vrth) = Qjcx_i_dT; //Qjcx_ii *(ckt->CKTstate0 + here->HICUMqjcx0_ii) = Qjcx_ii; *(ckt->CKTstate0 + here->HICUMcqcx0_t_ii) = Qjcx_ii_Vbpci; - *(ckt->CKTstate0 + here->HICUMqjcx0_ii_Vrth) = Qjcx_ii_dT; //Qdsu *(ckt->CKTstate0 + here->HICUMqdsu) = Qdsu; *(ckt->CKTstate0 + here->HICUMcqdsu) = Qdsu_Vbpci; - *(ckt->CKTstate0 + here->HICUMqdsu_Vrth) = Qdsu_dT; - *(ckt->CKTstate0 + here->HICUMqdsu_Vsici) = Qdsu_Vsici;// //Qs *(ckt->CKTstate0 + here->HICUMqjs) = Qjs; *(ckt->CKTstate0 + here->HICUMcqjs) = Qjs_Vsici; - *(ckt->CKTstate0 + here->HICUMqjs_Vrth) = Qjs_dT; //Qscp *(ckt->CKTstate0 + here->HICUMqscp) = Qscp; *(ckt->CKTstate0 + here->HICUMcqscp) = Qscp_Vsc; - *(ckt->CKTstate0 + here->HICUMqscp_Vrth) = Qscp_dT; //Qbepar1 *(ckt->CKTstate0 + here->HICUMqbepar1) = Qbepar1; *(ckt->CKTstate0 + here->HICUMcqbepar1) = Qbepar1_Vbe; @@ -3045,15 +3007,35 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) here->HICUMcapcth = model->HICUMcth; here->HICUMcapscp = Cscp; + //derivatives of charges due to cross coupling + here->HICUMqrbi_Vbiei = Qrbi_Vbiei; + here->HICUMqrbi_Vbici = Qrbi_Vbici; + here->HICUMqrbi_Vrth = Qrbi_Vrth; + here->HICUMqjei_Vrth = Qjei_dT; + here->HICUMqjep_Vrth = Qjep_dT; + here->HICUMqf_Vbici = Qdeix_Vbici; + here->HICUMqf_Vxf = Qdeix_Vxf; + here->HICUMqf_Vrth = Qdeix_dT; + here->HICUMqr_Vbiei = Qr_Vbiei; + here->HICUMqr_Vrth = Qr_dT; + here->HICUMqjci_Vrth = Qjci_dT; + here->HICUMqjcx0_i_Vrth = Qjcx_i_dT; + here->HICUMqjcx0_ii_Vrth = Qjcx_ii_dT; + here->HICUMqdsu_Vrth = Qdsu_dT; + here->HICUMqdsu_Vsici = Qdsu_Vsici; + here->HICUMqjs_Vrth = Qjs_dT; + here->HICUMqscp_Vrth = Qscp_dT; + here->HICUMicth_dT = Icth_Vrth; + here->HICUMqxf2_Vxf2 = Qxf2_Vxf2; + here->HICUMqxf_Vxf = Qxf_Vxf; + here->HICUMqxf1_Vxf1 = Qxf1_Vxf1; + // store all derivatives of charges if ( (!(ckt->CKTmode & MODETRANOP))|| (!(ckt->CKTmode & MODEUIC)) ) { if(ckt->CKTmode & MODEINITSMSIG) { *(ckt->CKTstate0 + here->HICUMcqf) = Qdeix_Vbiei; - *(ckt->CKTstate0 + here->HICUMqf_Vbici) = Qdeix_Vbici; - *(ckt->CKTstate0 + here->HICUMqf_Vrth) = Qdeix_dT; - *(ckt->CKTstate0 + here->HICUMqf_Vxf) = Qdeix_Vxf; *(ckt->CKTstate0 + here->HICUMcqjei) = Cjei; *(ckt->CKTstate0 + here->HICUMcqjci) = Cjci; @@ -3350,7 +3332,6 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) *(ckt->CKTstate0 + here->HICUMcqcth) = Icth; *(ckt->CKTstate0 + here->HICUMvrth) = Vrth; - *(ckt->CKTstate0 + here->HICUMicth_dT) = Icth_Vrth; *(ckt->CKTstate0 + here->HICUMgqbepar1) = gqbepar1; *(ckt->CKTstate0 + here->HICUMgqbepar2) = gqbepar2;