⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vbicload.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
📖 第 1 页 / 共 5 页
字号:
            *(ckt->CKTstate0 + here->VBICgqbco)     = gqbco;            *(ckt->CKTstate0 + here->VBICibcp)      = Ibcp;            *(ckt->CKTstate0 + here->VBICibcp_Vbcp) = Ibcp_Vbcp;            *(ckt->CKTstate0 + here->VBICiccp)      = Iccp;            *(ckt->CKTstate0 + here->VBICiccp_Vbep) = Iccp_Vbep;            *(ckt->CKTstate0 + here->VBICiccp_Vbci) = Iccp_Vbci;            *(ckt->CKTstate0 + here->VBICiccp_Vbcp) = Iccp_Vbcp;            /* Do not load the Jacobian and the rhs if               perturbation is being carried out */            if(SenCond) continue;load:            /*             *  load current excitation vector and matrix             */            rhs_current = model->VBICtype * (*(ckt->CKTstate0 + here->VBICcqbeo) -                     Vbe * gqbeo);            *(ckt->CKTrhs + here->VBICbaseNode) += -rhs_current;            *(ckt->CKTrhs + here->VBICemitNode) +=  rhs_current;            *(here->VBICbaseBasePtr) +=  gqbeo;            *(here->VBICemitEmitPtr) +=  gqbeo;            *(here->VBICbaseEmitPtr) += -gqbeo;            *(here->VBICemitBasePtr) += -gqbeo;            rhs_current = model->VBICtype * (*(ckt->CKTstate0 + here->VBICcqbco) -                     Vbc * gqbco);            *(ckt->CKTrhs + here->VBICbaseNode) += -rhs_current;            *(ckt->CKTrhs + here->VBICcollNode) +=  rhs_current;            *(here->VBICbaseBasePtr) +=  gqbco;            *(here->VBICcollCollPtr) +=  gqbco;            *(here->VBICbaseCollPtr) += -gqbco;            *(here->VBICcollBasePtr) += -gqbco;            *(ckt->CKTrhs + here->VBICbaseBINode) += -cbcx;            *(ckt->CKTrhs + here->VBICcollCXNode) +=  cbcx;            *(here->VBICbaseBIBaseBIPtr) +=  gbcx;            *(here->VBICcollCXCollCXPtr) +=  gbcx;            *(here->VBICbaseBICollCXPtr) += -gbcx;            *(here->VBICcollCXBaseBIPtr) += -gbcx;/*c           KCL at internal nodescc           Stamp element: Ibe*/            rhs_current = model->VBICtype * (Ibe - Ibe_Vbei*Vbei);            *(ckt->CKTrhs + here->VBICbaseBINode) += -rhs_current;            *(here->VBICbaseBIBaseBIPtr) +=  Ibe_Vbei;            *(here->VBICbaseBIEmitEIPtr) += -Ibe_Vbei;            *(ckt->CKTrhs + here->VBICemitEINode) +=  rhs_current;            *(here->VBICemitEIBaseBIPtr) += -Ibe_Vbei;            *(here->VBICemitEIEmitEIPtr) +=  Ibe_Vbei;/*c           Stamp element: Ibex*/            rhs_current = model->VBICtype * (Ibex - Ibex_Vbex*Vbex);            *(ckt->CKTrhs + here->VBICbaseBXNode) += -rhs_current;            *(here->VBICbaseBXBaseBXPtr) +=  Ibex_Vbex;            *(here->VBICbaseBXEmitEIPtr) += -Ibex_Vbex;            *(ckt->CKTrhs + here->VBICemitEINode) +=  rhs_current;            *(here->VBICemitEIBaseBXPtr) += -Ibex_Vbex;            *(here->VBICemitEIEmitEIPtr) +=  Ibex_Vbex;/*c           Stamp element: Itzf*/            rhs_current = model->VBICtype * (Itzf - Itzf_Vbei*Vbei - Itzf_Vbci*Vbci);            *(ckt->CKTrhs + here->VBICcollCINode) += -rhs_current;            *(here->VBICcollCIBaseBIPtr) +=  Itzf_Vbei;            *(here->VBICcollCIEmitEIPtr) += -Itzf_Vbei;            *(here->VBICcollCIBaseBIPtr) +=  Itzf_Vbci;            *(here->VBICcollCICollCIPtr) += -Itzf_Vbci;            *(ckt->CKTrhs + here->VBICemitEINode) +=  rhs_current;            *(here->VBICemitEIBaseBIPtr) += -Itzf_Vbei;            *(here->VBICemitEIEmitEIPtr) +=  Itzf_Vbei;            *(here->VBICemitEIBaseBIPtr) += -Itzf_Vbci;            *(here->VBICemitEICollCIPtr) +=  Itzf_Vbci;/*c           Stamp element: Itzr*/            rhs_current = model->VBICtype * (Itzr - Itzr_Vbci*Vbci - Itzr_Vbei*Vbei);            *(ckt->CKTrhs + here->VBICemitEINode) += -rhs_current;            *(here->VBICemitEIBaseBIPtr) +=  Itzr_Vbci;            *(here->VBICemitEICollCIPtr) += -Itzr_Vbci;            *(here->VBICemitEIBaseBIPtr) +=  Itzr_Vbei;            *(here->VBICemitEIEmitEIPtr) += -Itzr_Vbei;            *(ckt->CKTrhs + here->VBICcollCINode) +=  rhs_current;            *(here->VBICcollCIBaseBIPtr) += -Itzr_Vbci;            *(here->VBICcollCICollCIPtr) +=  Itzr_Vbci;            *(here->VBICcollCIBaseBIPtr) += -Itzr_Vbei;            *(here->VBICcollCIEmitEIPtr) +=  Itzr_Vbei;/*c           Stamp element: Ibc*/            rhs_current = model->VBICtype * (Ibc - Ibc_Vbci*Vbci - Ibc_Vbei*Vbei);            *(ckt->CKTrhs + here->VBICbaseBINode) += -rhs_current;            *(here->VBICbaseBIBaseBIPtr) +=  Ibc_Vbci;            *(here->VBICbaseBICollCIPtr) += -Ibc_Vbci;            *(here->VBICbaseBIBaseBIPtr) +=  Ibc_Vbei;            *(here->VBICbaseBIEmitEIPtr) += -Ibc_Vbei;            *(ckt->CKTrhs + here->VBICcollCINode) +=  rhs_current;            *(here->VBICcollCIBaseBIPtr) += -Ibc_Vbci;            *(here->VBICcollCICollCIPtr) +=  Ibc_Vbci;            *(here->VBICcollCIBaseBIPtr) += -Ibc_Vbei;            *(here->VBICcollCIEmitEIPtr) +=  Ibc_Vbei;/*c           Stamp element: Ibep*/            rhs_current = model->VBICtype * (Ibep - Ibep_Vbep*Vbep);            *(ckt->CKTrhs + here->VBICbaseBXNode) += -rhs_current;            *(here->VBICbaseBXBaseBXPtr) +=  Ibep_Vbep;            *(here->VBICbaseBXBaseBPPtr) += -Ibep_Vbep;            *(ckt->CKTrhs + here->VBICbaseBPNode) +=  rhs_current;            *(here->VBICbaseBPBaseBXPtr) += -Ibep_Vbep;            *(here->VBICbaseBPBaseBPPtr) +=  Ibep_Vbep;/*c           Stamp element: Ircx*/            *(here->VBICcollCollPtr) +=  Ircx_Vrcx;            *(here->VBICcollCXCollCXPtr) +=  Ircx_Vrcx;            *(here->VBICcollCXCollPtr) +=  -Ircx_Vrcx;            *(here->VBICcollCollCXPtr) +=  -Ircx_Vrcx;/*c           Stamp element: Irci*/            rhs_current = model->VBICtype * (Irci - Irci_Vrci*Vrci - Irci_Vbci*Vbci - Irci_Vbcx*Vbcx);            *(ckt->CKTrhs + here->VBICcollCXNode) += -rhs_current;            *(here->VBICcollCXCollCXPtr) +=  Irci_Vrci;            *(here->VBICcollCXCollCIPtr) += -Irci_Vrci;            *(here->VBICcollCXBaseBIPtr) +=  Irci_Vbci;            *(here->VBICcollCXCollCIPtr) += -Irci_Vbci;            *(here->VBICcollCXBaseBIPtr) +=  Irci_Vbcx;            *(here->VBICcollCXCollCXPtr) += -Irci_Vbcx;            *(ckt->CKTrhs + here->VBICcollCINode) +=  rhs_current;            *(here->VBICcollCICollCXPtr) += -Irci_Vrci;            *(here->VBICcollCICollCIPtr) +=  Irci_Vrci;            *(here->VBICcollCIBaseBIPtr) += -Irci_Vbci;            *(here->VBICcollCICollCIPtr) +=  Irci_Vbci;            *(here->VBICcollCIBaseBIPtr) += -Irci_Vbcx;            *(here->VBICcollCICollCXPtr) +=  Irci_Vbcx;/*c           Stamp element: Irbx*/            *(here->VBICbaseBasePtr) +=  Irbx_Vrbx;            *(here->VBICbaseBXBaseBXPtr) +=  Irbx_Vrbx;            *(here->VBICbaseBXBasePtr) += -Irbx_Vrbx;            *(here->VBICbaseBaseBXPtr) += -Irbx_Vrbx;/*c           Stamp element: Irbi*/            rhs_current = model->VBICtype * (Irbi - Irbi_Vrbi*Vrbi - Irbi_Vbei*Vbei - Irbi_Vbci*Vbci);            *(ckt->CKTrhs + here->VBICbaseBXNode) += -rhs_current;            *(here->VBICbaseBXBaseBXPtr) +=  Irbi_Vrbi;            *(here->VBICbaseBXBaseBIPtr) += -Irbi_Vrbi;            *(here->VBICbaseBXBaseBIPtr) +=  Irbi_Vbei;            *(here->VBICbaseBXEmitEIPtr) += -Irbi_Vbei;            *(here->VBICbaseBXBaseBIPtr) +=  Irbi_Vbci;            *(here->VBICbaseBXCollCIPtr) += -Irbi_Vbci;            *(ckt->CKTrhs + here->VBICbaseBINode) +=  rhs_current;            *(here->VBICbaseBIBaseBXPtr) += -Irbi_Vrbi;            *(here->VBICbaseBIBaseBIPtr) +=  Irbi_Vrbi;            *(here->VBICbaseBIBaseBIPtr) += -Irbi_Vbei;            *(here->VBICbaseBIEmitEIPtr) +=  Irbi_Vbei;            *(here->VBICbaseBIBaseBIPtr) += -Irbi_Vbci;            *(here->VBICbaseBICollCIPtr) +=  Irbi_Vbci;/*c           Stamp element: Ire*/            *(here->VBICemitEmitPtr) +=  Ire_Vre;            *(here->VBICemitEIEmitEIPtr) +=  Ire_Vre;            *(here->VBICemitEIEmitPtr) += -Ire_Vre;            *(here->VBICemitEmitEIPtr) += -Ire_Vre;/*c           Stamp element: Irbp*/            rhs_current = model->VBICtype * (Irbp - Irbp_Vrbp*Vrbp - Irbp_Vbep*Vbep - Irbp_Vbci*Vbci);            *(ckt->CKTrhs + here->VBICbaseBPNode) += -rhs_current;            *(here->VBICbaseBPBaseBPPtr) +=  Irbp_Vrbp;            *(here->VBICbaseBPCollCXPtr) += -Irbp_Vrbp;            *(here->VBICbaseBPBaseBXPtr) +=  Irbp_Vbep;            *(here->VBICbaseBPBaseBPPtr) += -Irbp_Vbep;            *(here->VBICbaseBPBaseBIPtr) +=  Irbp_Vbci;            *(here->VBICbaseBPCollCIPtr) += -Irbp_Vbci;            *(ckt->CKTrhs + here->VBICcollCXNode) +=  rhs_current;            *(here->VBICcollCXBaseBPPtr) += -Irbp_Vrbp;            *(here->VBICcollCXCollCXPtr) +=  Irbp_Vrbp;            *(here->VBICcollCXBaseBXPtr) += -Irbp_Vbep;            *(here->VBICcollCXBaseBPPtr) +=  Irbp_Vbep;            *(here->VBICcollCXBaseBIPtr) += -Irbp_Vbci;            *(here->VBICcollCXCollCIPtr) +=  Irbp_Vbci;/*c           Stamp element: Ibcp*/            rhs_current = model->VBICtype * (Ibcp - Ibcp_Vbcp*Vbcp);            *(ckt->CKTrhs + here->VBICsubsSINode) += -rhs_current;            *(here->VBICsubsSISubsSIPtr) +=  Ibcp_Vbcp;            *(here->VBICsubsSIBaseBPPtr) += -Ibcp_Vbcp;            *(ckt->CKTrhs + here->VBICbaseBPNode) +=  rhs_current;            *(here->VBICbaseBPSubsSIPtr) += -Ibcp_Vbcp;            *(here->VBICbaseBPBaseBPPtr) +=  Ibcp_Vbcp;/*c           Stamp element: Iccp*/            rhs_current = model->VBICtype * (Iccp - Iccp_Vbep*Vbep - Iccp_Vbci*Vbci - Iccp_Vbcp*Vbcp);            *(ckt->CKTrhs + here->VBICbaseBXNode) += -rhs_current;            *(here->VBICbaseBXBaseBXPtr) +=  Iccp_Vbep;            *(here->VBICbaseBXBaseBPPtr) += -Iccp_Vbep;            *(here->VBICbaseBXBaseBIPtr) +=  Iccp_Vbci;            *(here->VBICbaseBXCollCIPtr) += -Iccp_Vbci;            *(here->VBICbaseBXSubsSIPtr) +=  Iccp_Vbcp;            *(here->VBICbaseBXBaseBPPtr) += -Iccp_Vbcp;            *(ckt->CKTrhs + here->VBICsubsSINode) +=  rhs_current;            *(here->VBICsubsSIBaseBXPtr) += -Iccp_Vbep;            *(here->VBICsubsSIBaseBPPtr) +=  Iccp_Vbep;            *(here->VBICsubsSIBaseBIPtr) += -Iccp_Vbci;            *(here->VBICsubsSICollCIPtr) +=  Iccp_Vbci;            *(here->VBICsubsSISubsSIPtr) += -Iccp_Vbcp;            *(here->VBICsubsSIBaseBPPtr) +=  Iccp_Vbcp;/*c           Stamp element: Irs*/            *(here->VBICsubsSubsPtr) +=  Irs_Vrs;            *(here->VBICsubsSISubsSIPtr) +=  Irs_Vrs;            *(here->VBICsubsSISubsPtr) += -Irs_Vrs;            *(here->VBICsubsSubsSIPtr) += -Irs_Vrs;        }    }    return(OK);}int vbic_4T_it_cf_fj(p	,Vbei,Vbex,Vbci,Vbep,Vbcp,Vrcx	,Vbcx,Vrci,Vrbx,Vrbi,Vre,Vrbp,Vrs	,Vbe,Vbc,Ibe,Ibe_Vbei,Ibex,Ibex_Vbex,Itzf	,Itzf_Vbei,Itzf_Vbci,Itzr,Itzr_Vbci,Itzr_Vbei,Ibc,Ibc_Vbci	,Ibc_Vbei,Ibep,Ibep_Vbep,Ircx,Ircx_Vrcx,Irci,Irci_Vrci	,Irci_Vbci,Irci_Vbcx,Irbx,Irbx_Vrbx,Irbi,Irbi_Vrbi,Irbi_Vbei	,Irbi_Vbci,Ire,Ire_Vre,Irbp,Irbp_Vrbp,Irbp_Vbep,Irbp_Vbci	,Qbe,Qbe_Vbei,Qbe_Vbci,Qbex,Qbex_Vbex,Qbc,Qbc_Vbci	,Qbcx,Qbcx_Vbcx,Qbep,Qbep_Vbep,Qbep_Vbci,Qbeo,Qbeo_Vbe	,Qbco,Qbco_Vbc,Ibcp,Ibcp_Vbcp,Iccp,Iccp_Vbep,Iccp_Vbci	,Iccp_Vbcp,Irs,Irs_Vrs,Qbcp,Qbcp_Vbcp,SCALE)double *p	,*Vbei,*Vbex,*Vbci,*Vbep,*Vbcp,*Vrcx	,*Vbcx,*Vrci,*Vrbx,*Vrbi,*Vre,*Vrbp,*Vrs	,*Vbe,*Vbc,*Ibe,*Ibe_Vbei,*Ibex,*Ibex_Vbex,*Itzf	,*Itzf_Vbei,*Itzf_Vbci,*Itzr,*Itzr_Vbci,*Itzr_Vbei,*Ibc,*Ibc_Vbci	,*Ibc_Vbei,*Ibep,*Ibep_Vbep,*Ircx,*Ircx_Vrcx,*Irci,*Irci_Vrci	,*Irci_Vbci,*Irc

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -