📄 b3soiddacld.c
字号:
xcegb = (cegb - GEoverlapCap) * omega; xcedb = cedb * omega; xcesb = cesb * omega; xceeb = (ceeb + GEoverlapCap) * omega; xceT = ceT * omega; xcggb = (cggb + GDoverlapCap + GSoverlapCap + GEoverlapCap) * omega; xcgdb = (cgdb - GDoverlapCap ) * omega; xcgsb = (cgsb - GSoverlapCap) * omega; xcgeb = (cgeb - GEoverlapCap) * omega; xcgT = cgT * omega; xcdgb = (cdgb - GDoverlapCap) * omega; xcddb = (cddb + GDoverlapCap) * omega; xcdsb = cdsb * omega; xcdeb = cdeb * omega; xcdT = cdT * omega; xcsgb = -(cggb + cbgb + cdgb + cegb + GSoverlapCap) * omega; xcsdb = -(cgdb + cbdb + cddb + cedb) * omega; xcssb = (GSoverlapCap - (cgsb + cbsb + cdsb + cesb)) * omega; xcseb = -(cgeb + cbeb + cdeb + ceeb) * omega; xcsT = -(cgT + cbT + cdT + ceT) * omega; xcbgb = cbgb * omega; xcbdb = cbdb * omega; xcbsb = cbsb * omega; xcbeb = cbeb * omega; xcbT = cbT * omega; xcTt = cTt * omega; m = here->B3SOIDDm; *(here->B3SOIDDEgPtr +1) += m * xcegb; *(here->B3SOIDDEdpPtr +1) += m * xcedb; *(here->B3SOIDDEspPtr +1) += m * xcesb; *(here->B3SOIDDGePtr +1) += m * xcgeb; *(here->B3SOIDDDPePtr +1) += m * xcdeb; *(here->B3SOIDDSPePtr +1) += m * xcseb; *(here->B3SOIDDEePtr +1) += m * xceeb; *(here->B3SOIDDGgPtr +1) += m * xcggb; *(here->B3SOIDDGdpPtr +1) += m * xcgdb; *(here->B3SOIDDGspPtr +1) += m * xcgsb; *(here->B3SOIDDDPgPtr +1) += m * xcdgb; *(here->B3SOIDDDPdpPtr +1) += m * xcddb; *(here->B3SOIDDDPspPtr +1) += m * xcdsb; *(here->B3SOIDDSPgPtr +1) += m * xcsgb; *(here->B3SOIDDSPdpPtr +1) += m * xcsdb; *(here->B3SOIDDSPspPtr +1) += m * xcssb; *(here->B3SOIDDBePtr +1) += m * xcbeb; *(here->B3SOIDDBgPtr +1) += m * xcbgb; *(here->B3SOIDDBdpPtr +1) += m * xcbdb; *(here->B3SOIDDBspPtr +1) += m * xcbsb; *(here->B3SOIDDEbPtr +1) -= m * (xcegb + xcedb + xcesb + xceeb); *(here->B3SOIDDGbPtr +1) -= m * (xcggb + xcgdb + xcgsb + xcgeb); *(here->B3SOIDDDPbPtr +1) -= m * (xcdgb + xcddb + xcdsb + xcdeb); *(here->B3SOIDDSPbPtr +1) -= m * (xcsgb + xcsdb + xcssb + xcseb); *(here->B3SOIDDBbPtr +1) -= m * (xcbgb + xcbdb + xcbsb + xcbeb); if (selfheat) { *(here->B3SOIDDTemptempPtr + 1) += m * xcTt; *(here->B3SOIDDDPtempPtr + 1) += m * xcdT; *(here->B3SOIDDSPtempPtr + 1) += m * xcsT; *(here->B3SOIDDBtempPtr + 1) += m * xcbT; *(here->B3SOIDDEtempPtr + 1) += m * xceT; *(here->B3SOIDDGtempPtr + 1) += m * xcgT; } if (here->B3SOIDDdebugMod > 3){fprintf(fpdebug, "Cbg+Cbs+Cbe = %.5e; Cbd = %.5e;\n",(xcbgb+xcbsb+xcbeb)/omega, xcbdb/omega);fprintf(fpdebug, "gbs = %.5e; gbd = %.5e\n", gbbsp, gbbdp); fprintf(fpdebug, "AC condunctance...\n"); fprintf(fpdebug, "Eg=%.5e; Edp=%.5e; Esp=%.5e;\nEb=%.5e; Ee=%.5e\n",xcegb, xcedb, xcesb, -(xcegb+xcedb+xcesb+xceeb), xceeb); fprintf(fpdebug, "Gg=%.5e; Gdp=%.5e; Gsp=%.5e;\nGb=%.5e; Ge=%.5e\n",xcggb, xcgdb, xcgsb, -(xcggb+xcgdb+xcgsb+xcgeb), xcgeb); fprintf(fpdebug, "Bg=%.5e; Bdp=%.5e; Bsp=%.5e;\nBb=%.5e; Be=%.5e\n",xcbgb, xcbdb, xcbsb, -(xcbgb+xcbdb+xcbsb+xcbeb), xcbeb); fprintf(fpdebug, "DPg=%.5e; DPdp=%.5e; DPsp=%.5e;\nDPb=%.5e; DPe=%.5e\n",xcdgb, xcddb, xcdsb, -(xcdgb+xcddb+xcdsb+xcdeb), xcdeb); fprintf(fpdebug, "SPg=%.5e; SPdp=%.5e; SPsp=%.5e;\nSPb=%.5e; SPe=%.5e\n",xcsgb, xcsdb, xcssb, -(xcsgb+xcsdb+xcssb+xcseb), xcseb);} *(here->B3SOIDDEgPtr) += 0.0; *(here->B3SOIDDEdpPtr) += 0.0; *(here->B3SOIDDEspPtr) += 0.0; *(here->B3SOIDDGePtr) -= 0.0; *(here->B3SOIDDDPePtr) += m * (Gme + gddpe); *(here->B3SOIDDSPePtr) += m * (gsspe - Gme); *(here->B3SOIDDEePtr) += 0.0; *(here->B3SOIDDDPgPtr) += m * (Gm + gddpg); *(here->B3SOIDDDPdpPtr) += m * (gdpr + gds + gddpdp + RevSum); *(here->B3SOIDDDPspPtr) -= m * (gds + FwdSum - gddpsp); *(here->B3SOIDDDPdPtr) -= m * gdpr; *(here->B3SOIDDSPgPtr) -= m * (Gm - gsspg); *(here->B3SOIDDSPdpPtr) -= m * (gds + RevSum - gsspdp); *(here->B3SOIDDSPspPtr) += m * (gspr + gds + FwdSum + gsspsp); *(here->B3SOIDDSPsPtr) -= m * gspr; *(here->B3SOIDDBePtr) += m * gbbe; *(here->B3SOIDDBgPtr) += m * gbbg; *(here->B3SOIDDBdpPtr) += m * gbbdp; *(here->B3SOIDDBspPtr) += m * gbbsp; *(here->B3SOIDDBbPtr) += m * gbbb; *(here->B3SOIDDEbPtr) += 0.0; *(here->B3SOIDDSPbPtr) -= m * (Gmbs - gsspb); *(here->B3SOIDDDPbPtr) -= m * (-gddpb - Gmbs); if (selfheat) { *(here->B3SOIDDDPtempPtr) += m * (GmT + gddpT); *(here->B3SOIDDSPtempPtr) += m * (-GmT + gsspT); *(here->B3SOIDDBtempPtr) += m * gbbT; if (here->B3SOIDDbodyMod == 1) { (*(here->B3SOIDDPtempPtr) += m * gppT); } *(here->B3SOIDDTemptempPtr) += m * (gTtt + 1/here->pParam->B3SOIDDrth); *(here->B3SOIDDTempgPtr) += m * gTtg; *(here->B3SOIDDTempbPtr) += m * gTtb; *(here->B3SOIDDTempePtr) += m * gTte; *(here->B3SOIDDTempdpPtr) += m * gTtdp; *(here->B3SOIDDTempspPtr) += m * gTtsp; }if (here->B3SOIDDdebugMod > 3){ fprintf(fpdebug, "Static condunctance...\n"); fprintf(fpdebug, "Gg=%.5e; Gdp=%.5e; Gsp=%.5e;\nGb=%.5e; Ge=%.5e\n", *(here->B3SOIDDGgPtr), *(here->B3SOIDDGdpPtr), *(here->B3SOIDDGspPtr), *(here->B3SOIDDGbPtr), *(here->B3SOIDDGePtr)); fprintf(fpdebug, "DPg=%.5e; DPdp=%.5e; DPsp=%.5e;\nDPb=%.5e; DPe=%.5e\n", *(here->B3SOIDDDPgPtr), *(here->B3SOIDDDPdpPtr), *(here->B3SOIDDDPspPtr), *(here->B3SOIDDDPbPtr), *(here->B3SOIDDDPePtr)); fprintf(fpdebug, "SPg=%.5e; SPdp=%.5e; SPsp=%.5e;\nSPb=%.5e; SPe=%.5e\n", *(here->B3SOIDDSPgPtr), *(here->B3SOIDDSPdpPtr), *(here->B3SOIDDSPspPtr), *(here->B3SOIDDSPbPtr), *(here->B3SOIDDSPePtr)); fprintf(fpdebug, "Bg=%.5e; Bdp=%.5e; Bsp=%.5e;\nBb=%.5e; Be=%.5e\n",gbbg, gbbdp, gbbsp, gbbb, gbbe);} *(here->B3SOIDDDdPtr) += m * gdpr; *(here->B3SOIDDDdpPtr) -= m * gdpr; *(here->B3SOIDDSsPtr) += m * gspr; *(here->B3SOIDDSspPtr) -= m * gspr; if (here->B3SOIDDbodyMod == 1) { (*(here->B3SOIDDBpPtr) -= m * gppp); (*(here->B3SOIDDPbPtr) += m * gppb); (*(here->B3SOIDDPpPtr) += m * gppp); (*(here->B3SOIDDPgPtr) += m * gppg); (*(here->B3SOIDDPdpPtr) += m * gppdp); (*(here->B3SOIDDPspPtr) += m * gppsp); (*(here->B3SOIDDPePtr) += m * gppe); } if (here->B3SOIDDdebugMod > 1) { *(here->B3SOIDDVbsPtr) += m * 1; *(here->B3SOIDDIdsPtr) += m * 1; *(here->B3SOIDDIcPtr) += m * 1; *(here->B3SOIDDIbsPtr) += m * 1; *(here->B3SOIDDIbdPtr) += m * 1; *(here->B3SOIDDIiiPtr) += m * 1; *(here->B3SOIDDIgidlPtr) += m * 1; *(here->B3SOIDDItunPtr) += m * 1; *(here->B3SOIDDIbpPtr) += m * 1; *(here->B3SOIDDAbeffPtr) += m * 1; *(here->B3SOIDDVbs0effPtr) += m * 1; *(here->B3SOIDDVbseffPtr) += 1; *(here->B3SOIDDXcPtr) += m * 1; *(here->B3SOIDDCbgPtr) += m * 1; *(here->B3SOIDDCbbPtr) += m * 1; *(here->B3SOIDDCbdPtr) += m * 1; *(here->B3SOIDDqbPtr) += m * 1; *(here->B3SOIDDQbfPtr) += m * 1; *(here->B3SOIDDQjsPtr) += m * 1; *(here->B3SOIDDQjdPtr) += m * 1; /* clean up last */ *(here->B3SOIDDGmPtr) += m * 1; *(here->B3SOIDDGmbsPtr) += m * 1; *(here->B3SOIDDGdsPtr) += m * 1; *(here->B3SOIDDGmePtr) += m * 1; *(here->B3SOIDDVbs0teffPtr) += m * 1; *(here->B3SOIDDVgsteffPtr) += m * 1; *(here->B3SOIDDCbePtr) += m * 1; *(here->B3SOIDDVthPtr) += m * 1; *(here->B3SOIDDXcsatPtr) += m * 1; *(here->B3SOIDDVdscvPtr) += m * 1; *(here->B3SOIDDVcscvPtr) += m * 1; *(here->B3SOIDDQaccPtr) += m * 1; *(here->B3SOIDDQsub0Ptr) += m * 1; *(here->B3SOIDDQsubs1Ptr) += m * 1; *(here->B3SOIDDQsubs2Ptr) += m * 1; *(here->B3SOIDDqgPtr) += m * 1; *(here->B3SOIDDqdPtr) += m * 1; *(here->B3SOIDDqePtr) += m * 1; *(here->B3SOIDDDum1Ptr) += m * 1; *(here->B3SOIDDDum2Ptr) += m * 1; *(here->B3SOIDDDum3Ptr) += m * 1; *(here->B3SOIDDDum4Ptr) += m * 1; *(here->B3SOIDDDum5Ptr) += m * 1; } if (here->B3SOIDDdebugMod > 2) fclose(fpdebug); } } return(OK);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -