16 #include "component.h"
35 #define NP(node) real (getV (node))
36 #define BP(pnode,nnode) (NP(pnode) - NP(nnode))
37 #define _load_static_residual2(pnode,nnode,current)\
38 _rhs[pnode] -= current;\
39 _rhs[nnode] += current;
40 #define _load_static_augmented_residual2(pnode,nnode,current)\
41 _rhs[pnode] -= current;\
42 _rhs[nnode] += current;
43 #define _load_static_residual1(node,current)\
44 _rhs[node] -= current;
45 #define _load_static_augmented_residual1(node,current)\
46 _rhs[node] -= current;
47 #define _load_static_jacobian4(pnode,nnode,vpnode,vnnode,conductance)\
48 _jstat[pnode][vpnode] += conductance;\
49 _jstat[nnode][vnnode] += conductance;\
50 _jstat[pnode][vnnode] -= conductance;\
51 _jstat[nnode][vpnode] -= conductance;\
53 _ghs[pnode] += conductance * BP(vpnode,vnnode);\
54 _ghs[nnode] -= conductance * BP(vpnode,vnnode);\
56 _rhs[pnode] += conductance * BP(vpnode,vnnode);\
57 _rhs[nnode] -= conductance * BP(vpnode,vnnode);\
59 #define _load_static_jacobian2p(node,vpnode,vnnode,conductance)\
60 _jstat[node][vpnode] += conductance;\
61 _jstat[node][vnnode] -= conductance;\
63 _ghs[node] += conductance * BP(vpnode,vnnode);\
65 _rhs[node] += conductance * BP(vpnode,vnnode);\
67 #define _load_static_jacobian2s(pnode,nnode,node,conductance)\
68 _jstat[pnode][node] += conductance;\
69 _jstat[nnode][node] -= conductance;\
71 _ghs[pnode] += conductance * NP(node);\
72 _ghs[nnode] -= conductance * NP(node);\
74 _rhs[pnode] += conductance * NP(node);\
75 _rhs[nnode] -= conductance * NP(node);\
77 #define _load_static_jacobian1(node,vnode,conductance)\
78 _jstat[node][vnode] += conductance;\
80 _ghs[node] += conductance * NP(vnode);\
82 _rhs[node] += conductance * NP(vnode);\
84 #define _load_dynamic_residual2(pnode,nnode,charge)\
85 if (doTR) _charges[pnode][nnode] += charge;\
87 _qhs[pnode] -= charge;\
88 _qhs[nnode] += charge;\
90 #define _load_dynamic_residual1(node,charge)\
91 if (doTR) _charges[node][node] += charge;\
93 _qhs[node] -= charge;\
95 #define _load_dynamic_jacobian4(pnode,nnode,vpnode,vnnode,capacitance)\
97 _jdyna[pnode][vpnode] += capacitance;\
98 _jdyna[nnode][vnnode] += capacitance;\
99 _jdyna[pnode][vnnode] -= capacitance;\
100 _jdyna[nnode][vpnode] -= capacitance;\
103 _caps[pnode][nnode][vpnode][vnnode] += capacitance;\
106 _chs[pnode] += capacitance * BP(vpnode,vnnode);\
107 _chs[nnode] -= capacitance * BP(vpnode,vnnode);\
109 #define _load_dynamic_jacobian2s(pnode,nnode,vnode,capacitance)\
111 _jdyna[pnode][vnode] += capacitance;\
112 _jdyna[nnode][vnode] -= capacitance;\
115 _caps[pnode][nnode][vnode][vnode] += capacitance;\
118 _chs[pnode] += capacitance * NP(vnode);\
119 _chs[nnode] -= capacitance * NP(vnode);\
121 #define _load_dynamic_jacobian2p(node,vpnode,vnnode,capacitance)\
123 _jdyna[node][vpnode] += capacitance;\
124 _jdyna[node][vnnode] -= capacitance;\
127 _caps[node][node][vpnode][vnnode] += capacitance;\
130 _chs[node] += capacitance * BP(vpnode,vnnode);\
132 #define _load_dynamic_jacobian1(node,vnode,capacitance)\
134 _jdyna[node][vnode] += capacitance;\
137 _caps[node][node][vnode][vnode] += capacitance;\
140 _chs[node] += capacitance * NP(vnode);\
143 #define _save_whitenoise1(n1,pwr,type)\
144 _white_pwr[n1][n1] += pwr;
145 #define _save_whitenoise2(n1,n2,pwr,type)\
146 _white_pwr[n1][n2] += pwr;
147 #define _save_flickernoise1(n1,pwr,exp,type)\
148 _flicker_pwr[n1][n1] += pwr;\
149 _flicker_exp[n1][n1] += exp;
150 #define _save_flickernoise2(n1,n2,pwr,exp,type)\
151 _flicker_pwr[n1][n2] += pwr;\
152 _flicker_exp[n1][n2] += exp;
153 #define _load_whitenoise2(n1,n2,pwr)\
154 cy (n1,n2) -= pwr/kB/T0; cy (n2,n1) -= pwr/kB/T0;\
155 cy (n1,n1) += pwr/kB/T0; cy (n2,n2) += pwr/kB/T0;
156 #define _load_whitenoise1(n1,pwr)\
157 cy (n1,n1) += pwr/kB/T0;
158 #define _load_flickernoise2(n1,n2,pwr,exp)\
159 cy (n1,n2) -= pwr*pow(_freq,-exp)/kB/T0;\
160 cy (n2,n1) -= pwr*pow(_freq,-exp)/kB/T0;\
161 cy (n1,n1) += pwr*pow(_freq,-exp)/kB/T0;\
162 cy (n2,n2) += pwr*pow(_freq,-exp)/kB/T0;
163 #define _load_flickernoise1(n1,pwr,exp)\
164 cy (n1,n1) += pwr*pow(_freq,-exp)/kB/T0;
167 #define m00_hypot(v00,x,y) v00 = xhypot(x,y);
168 #define m10_hypot(v10,v00,x,y) v10 = (x)/(v00);
169 #define m11_hypot(v11,v00,x,y) v11 = (y)/(v00);
170 #define m00_max(v00,x,y) v00 = ((x)>(y))?(x):(y);
171 #define m10_max(v10,v00,x,y) v10 = ((x)>(y))?1.0:0.0;
172 #define m11_max(v11,v00,x,y) v11 = ((x)>(y))?0.0:1.0;
173 #define m00_min(v00,x,y) v00 = ((x)<(y))?(x):(y);
174 #define m10_min(v10,v00,x,y) v10 = ((x)<(y))?1.0:0.0;
175 #define m11_min(v11,v00,x,y) v11 = ((x)<(y))?0.0:1.0;
176 #define m00_pow(v00,x,y) v00 = pow(x,y);
177 #define m10_pow(v10,v00,x,y) v10 = (x==0.0)?0.0:(v00)*(y)/(x);
178 #define m11_pow(v11,v00,x,y) v11 = (x==0.0)?0.0:(log(x)*(v00));
180 #define m00_div(v00,v10,x,y) double v10=1/(y); double v00=(x)*v10;
181 #define m10_div(v10,v00,vv,x,y)
182 #define m11_div(v11,v00,vv,x,y) double v11 = -v00*vv;
184 #define m00_mult(v00,v10,v11,x,y) double v10=(x); double v11=(y); double v00=v10*v11;
185 #define m00_add(v00,x,y) double v00=(x)+(y);
187 #define m00_cos(v00,x) v00 = cos(x);
188 #define m10_cos(v10,v00,x) v10 = (-sin(x));
189 #define m00_sin(v00,x) v00 = sin(x);
190 #define m10_sin(v10,v00,x) v10 = (cos(x));
191 #define m00_tan(v00,x) v00 = tan(x);
192 #define m10_tan(v10,v00,x) v10 = (1.0/cos(x)/cos(x));
193 #define m00_cosh(v00,x) v00 = cosh(x);
194 #define m10_cosh(v10,v00,x) v10 = (sinh(x));
195 #define m00_sinh(v00,x) v00 = sinh(x);
196 #define m10_sinh(v10,v00,x) v10 = (cosh(x));
197 #define m00_tanh(v00,x) v00 = tanh(x);
198 #define m10_tanh(v10,v00,x) v10 = (1.0/cosh(x)/cosh(x));
199 #define m00_acos(v00,x) v00 = acos(x);
200 #define m10_acos(v10,v00,x) v10 = (-1.0/sqrt(1-x*x));
201 #define m00_asin(v00,x) v00 = asin(x);
202 #define m10_asin(v10,v00,x) v10 = (+1.0/sqrt(1-x*x));
203 #define m00_atan(v00,x) v00 = atan(x);
204 #define m10_atan(v10,v00,x) v10 = (+1.0/(1+x*x));
205 #define m00_atanh(v00,x) v00 = atanh(x);
206 #define m10_atanh(v10,v00,x) v10 = (+1.0/(1-x*x));
207 #define m00_logE(v00,x) v00 = log(x);
208 #define m10_logE(v10,v00,x) v10 = (1.0/x);
209 #define m00_log10(v00,x) v00 = log10(x);
210 #define m10_log10(v10,v00,x) v10 = (1.0/x/M_LN10);
211 #define m00_sqrt(v00,x) v00 = sqrt(x);
212 #define m10_sqrt(v10,v00,x) v10 = (0.5/v00);
213 #define m00_fabs(v00,x) v00 = fabs(x);
214 #define m10_fabs(v10,v00,x) v10 = (((x)>=0)?(+1.0):(-1.0));
216 #define m00_exp(v00,x) v00 = exp(x);
217 #define m10_exp(v10,v00,x) v10 = v00;
219 #define m00_abs(v00) ((v00)<(0)?(-(v00)):(v00))
220 #define m00_floor(v00,x) v00 = floor(x);
221 #define m00_limexp(v00,x) v00 = ((x)<80.0?exp(x):exp(80.0)*(x-79.0));
222 #define m10_limexp(v10,v00,x) v10 = ((x)<80.0?(v00):exp(80.0));
224 #define m20_logE(v00) (-1.0/v00/v00)
225 #define m20_exp(v00) exp(v00)
226 #define m20_limexp(v00) ((v00)<80.0?exp(v00):0.0)
227 #define m20_sqrt(v00) (-0.25/(v00)/sqrt(v00))
228 #define m20_fabs(v00) 0.0
229 #define m20_pow(x,y) ((y)*((y)-1.0)*pow(x,y)/(x)/(x))
230 #define m00_vt(x) (kBoverQ*(x))
231 #define m10_vt(x) (kBoverQ)
234 #define _modelname "MESFET"
235 #define _instancename getName()
236 #define _circuit_temp (getPropertyDouble("Temp")+273.15)
237 #define _param_given(p) (isPropertyGiven(p)?1:0)
241 #define _vt_nom (kBoverQ*_circuit_temp)
243 using namespace device;
252 void MESFET::initModel (
void)
267 initializeInstance ();
288 void MESFET::initVerilog (
void)
293 _white_pwr[
Gate][
n2] = 0.0;
294 _white_pwr[
n3][
n4] = 0.0;
295 _flicker_pwr[
n3][
n4] = 0.0;
296 _flicker_exp[
n3][
n4] = 0.0;
301 for (i1 = 0; i1 < 7; i1++) {
302 for (i2 = 0; i2 < 7; i2++) {
303 _charges[i1][i2] = 0.0;
307 for (i1 = 0; i1 < 7; i1++) {
308 for (i2 = 0; i2 < 7; i2++) {
309 for (i3 = 0; i3 < 7; i3++) {
310 for (i4 = 0; i4 < 7; i4++) {
311 _caps[i1][i2][i3][i4] = 0.0;
315 for (i1 = 0; i1 < 7; i1++) {
320 for (i2 = 0; i2 < 7; i2++) {
321 _jstat[i1][i2] = 0.0;
322 _jdyna[i1][i2] = 0.0;
328 void MESFET::loadVariables (
void)
389 #define _DERIVATEFORDDX
392 void MESFET::initializeModel (
void)
397 void MESFET::initializeInstance (
void)
402 void MESFET::initialStep (
void)
407 void MESFET::finalStep (
void)
412 void MESFET::calcVerilog (
void)
417 #if defined(_DERIVATE)
422 #if defined(_DERIVATE)
427 #if defined(_DERIVATE)
428 double flicker_pwr_Vn2_n4;
429 double flicker_pwr_Vn3_n4;
432 #if defined(_DERIVATE)
433 double thermal_pwr_Vn2_n4;
434 double thermal_pwr_Vn3_n4;
437 #if defined(_DERIVATE)
442 #if defined(_DERIVATE)
447 #if defined(_DYNAMIC)
449 #if defined(_DERIVATE)
454 #if defined(_DYNAMIC)
456 #if defined(_DERIVATE)
461 #if defined(_DYNAMIC)
463 #if defined(_DERIVATE)
467 #if defined(_DYNAMIC)
469 #if defined(_DERIVATE)
473 #if defined(_DYNAMIC)
475 #if defined(_DERIVATE)
480 #if defined(_DYNAMIC)
482 #if defined(_DERIVATE)
487 #if defined(_DYNAMIC)
489 #if defined(_DERIVATE)
494 #if defined(_DYNAMIC)
496 #if defined(_DERIVATE)
500 #if defined(_DYNAMIC)
502 #if defined(_DERIVATE)
506 #if defined(_DYNAMIC)
508 #if defined(_DERIVATE)
514 #if defined(_DERIVATE)
519 #if defined(_DERIVATE)
523 #if defined(_DERIVATE)
527 #if defined(_DERIVATE)
531 #if defined(_DERIVATE)
536 #if defined(_DERIVATE)
540 #if defined(_DERIVATE)
544 #if defined(_DERIVATE)
548 #if defined(_DERIVATE)
552 #if defined(_DERIVATE)
556 #if defined(_DERIVATE)
561 #if defined(_DERIVATE)
565 #if defined(_DERIVATE)
569 #if defined(_DERIVATE)
574 #if defined(_DERIVATE)
579 #if defined(_DERIVATE)
586 #if defined(_DYNAMIC)
589 #if defined(_DYNAMIC)
593 #if defined(_DYNAMIC)
596 #if defined(_DYNAMIC)
599 #if defined(_DYNAMIC)
602 #if defined(_DYNAMIC)
605 #if defined(_DYNAMIC)
614 #if defined(_DYNAMIC)
620 #if defined(_DYNAMIC)
622 #if defined(_DYNAMIC)
624 double m00_min(d00_min0,(Fc*Vbi),Vmax)
631 #if defined(_DYNAMIC)
633 double m00_pow(d00_pow0,Tr,1.5)
637 Rg_T2=(Rg*(1+(Rgtc*(T2-T1))));
638 Rd_T2=(Rd*(1+(Rdtc*(T2-T1))));
639 Rs_T2=(Rs*(1+(Rstc*(T2-T1))));
641 double m00_pow(d00_pow0,1.01,(Betatc*(T2-T1)))
642 Beta_T2=((
Area*Beta)*d00_pow0);
645 Eg_T1=(Eg-(((7.02
e-4*T1)*T1)/(1108.0+T1)));
646 #if defined(_DYNAMIC)
647 Eg_T2=(Eg-(((7.02e-4*T2)*T2)/(1108.0+T2)));
649 #if defined(_DYNAMIC)
651 double m00_pow(d00_pow0,(1-Fc),(1-M))
652 F1=((Vbi/(1-M))*(1-d00_pow0));
655 #if defined(_DYNAMIC)
657 double m00_pow(d00_pow0,(1-Fc),(1+M))
661 #if defined(_DYNAMIC)
664 #if defined(_DYNAMIC)
667 Vbi_T2=(((Tr*Vbi)-((2*Vt_T2)*d00_logE0))-((Tr*Eg_T1)-Eg_T2));
671 double m00_pow(d00_pow0,Tr,(Xti/N))
672 double
m00_limexp(d00_limexp1,(((-(1.602176462
e-19*Eg_T1))*(1-Tr))/(1.3806503
e-23*T2)))
673 Is_T2=(((
Area*Is)*d00_pow0)*d00_limexp1);
675 #if defined(_DYNAMIC)
676 Cgs_T2=((
Area*Cgs)*(1+(M*((400
e-6*(T2-T1))-((Vbi_T2-Vbi)/Vbi)))));
678 #if defined(_DYNAMIC)
679 Cgd_T2=((
Area*Cgd)*(1+(M*((400
e-6*(T2-T1))-((Vbi_T2-Vbi)/Vbi)))));
681 Vto_T2=(Vto+(Vtotc*(T2-T1)));
682 Gamma_T2=(Gamma*(1+(Gammatc*(T2-T1))));
684 double m00_pow(d00_pow0,1.01,(Alphatc*(T2-T1)))
685 Alpha_T2=(Alpha*d00_pow0);
696 #if defined(_DERIVATE)
700 #if defined(_DERIVATE)
701 Ids_Vn2_n4=(Beta_T2*(d10_pow0*1.0))*(1+(Lambda*
BP(n3,
n4)))*d00_tanh1;
702 Ids_Vn3_n4=((((Beta_T2*d00_pow0)*(Lambda))*d00_tanh1)+(((Beta_T2*d00_pow0)*(1+(Lambda*
BP(n3,
n4))))*(Alpha)*d10_tanh1));
704 Ids=(((Beta_T2*d00_pow0)*(1+(Lambda*
BP(n3,
n4))))*d00_tanh1);
709 #if defined(_DERIVATE)
720 Ah=(1/((2*Vt_T2)*Nsc));
723 double
m00_logE(d00_logE1,(1+d00_exp0))
724 #if defined(_DERIVATE)
725 #define d10_exp0 d00_exp0
726 double m10_logE(d10_logE1,d00_logE1,(1+d00_exp0))
728 #if defined(_DERIVATE)
729 Vf_Vn2_n4=((Ah)*d10_exp0*d10_logE1/Ah);
736 #if defined(_DERIVATE)
737 double m10_pow(d10_pow0,d00_pow0,Vf,2)
740 #if defined(_DERIVATE)
741 Ids_Vn2_n4=(Beta_T2*(d10_pow0*Vf_Vn2_n4))*(1+(Lambda*
BP(n3,
n4)))*d00_tanh1;
742 Ids_Vn3_n4=((((Beta_T2*d00_pow0)*(Lambda))*d00_tanh1)+(((Beta_T2*d00_pow0)*(1+(Lambda*
BP(n3,
n4))))*(Alpha)*d10_tanh1));
744 Ids=(((Beta_T2*d00_pow0)*(1+(Lambda*
BP(n3,
n4))))*d00_tanh1);
755 (((0<
BP(n3,
n4))&&(
BP(n3,
n4)<(3/Alpha))))
759 double
m00_pow(d00_pow1,(1-((Alpha*
BP(n3,
n4))/3)),3)
760 #if defined(_DERIVATE)
761 double m10_pow(d10_pow0,d00_pow0,(
BP(
n2,n4)-Vto_T2),2)
762 double
m10_pow(d10_pow1,d00_pow1,(1-((Alpha*
BP(n3,n4))/3)),3)
764 #if defined(_DERIVATE)
765 Ids_Vn2_n4=((((Beta_T2*(1+(Lambda*
BP(n3,n4))))*(d10_pow0*1.0))*(1-d00_pow1)*(1+(B*(
BP(
n2,n4)-Vto_T2)))-(((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)*(1-d00_pow1))*(B))/(1+(B*(
BP(
n2,n4)-Vto_T2)))/(1+(B*(
BP(
n2,n4)-Vto_T2))));
766 Ids_Vn3_n4=((((Beta_T2*(Lambda))*d00_pow0*(1-d00_pow1))+(((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)*(-(d10_pow1*(-((Alpha)/3))))))/(1+(B*(
BP(
n2,n4)-Vto_T2))));
768 Ids=((((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)*(1-d00_pow1))/(1+(B*(
BP(
n2,n4)-Vto_T2))));
772 ((
BP(n3,n4)>=(3/Alpha)))
776 #if defined(_DERIVATE)
777 double m10_pow(d10_pow0,d00_pow0,(
BP(
n2,n4)-Vto_T2),2)
779 #if defined(_DERIVATE)
780 Ids_Vn2_n4=((((Beta_T2*(1+(Lambda*
BP(n3,n4))))*(d10_pow0*1.0))*(1+(B*(
BP(
n2,n4)-Vto_T2)))-((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)*(B))/(1+(B*(
BP(
n2,n4)-Vto_T2)))/(1+(B*(
BP(
n2,n4)-Vto_T2))));
781 Ids_Vn3_n4=((Beta_T2*(Lambda))*d00_pow0/(1+(B*(
BP(
n2,n4)-Vto_T2))));
783 Ids=(((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)/(1+(B*(
BP(
n2,n4)-Vto_T2))));
789 #if defined(_DERIVATE)
798 #if defined(_DERIVATE)
810 (((
BP(
n2,n4)-Vto_T2)>0))
813 (((0<
BP(n3,n4))&&(
BP(n3,n4)<(3/Alpha))))
817 double
m00_pow(d00_pow1,(1-((Alpha*
BP(n3,n4))/3)),3)
818 #if defined(_DERIVATE)
819 double m10_pow(d10_pow0,d00_pow0,(
BP(
n2,n4)-Vto_T2),Qp)
820 double
m10_pow(d10_pow1,d00_pow1,(1-((Alpha*
BP(n3,n4))/3)),3)
822 #if defined(_DERIVATE)
823 Ids1_Vn2_n4=(Beta_T2*(d10_pow0*1.0))*(1-d00_pow1);
824 Ids1_Vn3_n4=((Beta_T2*d00_pow0)*(-(d10_pow1*(-((Alpha)/3)))));
826 Ids1=((Beta_T2*d00_pow0)*(1-d00_pow1));
828 #if defined(_DERIVATE)
829 Ids_Vn2_n4=((Ids1_Vn2_n4*(1+(Lambda*
BP(n3,n4)))*(1+((Delta*
BP(n3,n4))*Ids1))-(Ids1*(1+(Lambda*
BP(n3,n4))))*((Delta*
BP(n3,n4))*Ids1_Vn2_n4))/(1+((Delta*
BP(n3,n4))*Ids1))/(1+((Delta*
BP(n3,n4))*Ids1)));
830 Ids_Vn3_n4=((((Ids1_Vn3_n4*(1+(Lambda*
BP(n3,n4))))+(Ids1*(Lambda)))*(1+((Delta*
BP(n3,n4))*Ids1))-(Ids1*(1+(Lambda*
BP(n3,n4))))*(((Delta)*Ids1)+((Delta*
BP(n3,n4))*Ids1_Vn3_n4)))/(1+((Delta*
BP(n3,n4))*Ids1))/(1+((Delta*
BP(n3,n4))*Ids1)));
832 Ids=((Ids1*(1+(Lambda*
BP(n3,n4))))/(1+((Delta*
BP(n3,n4))*Ids1)));
835 ((
BP(n3,n4)>=(3/Alpha)))
839 #if defined(_DERIVATE)
840 double m10_pow(d10_pow0,d00_pow0,(
BP(
n2,n4)-Vto_T2),Qp)
842 #if defined(_DERIVATE)
843 Ids1_Vn2_n4=(Beta_T2*(d10_pow0*1.0));
846 Ids1=(Beta_T2*d00_pow0);
848 #if defined(_DERIVATE)
849 Ids_Vn2_n4=((Ids1_Vn2_n4*(1+(Lambda*
BP(n3,n4)))*(1+((Delta*
BP(n3,n4))*Ids1))-(Ids1*(1+(Lambda*
BP(n3,n4))))*((Delta*
BP(n3,n4))*Ids1_Vn2_n4))/(1+((Delta*
BP(n3,n4))*Ids1))/(1+((Delta*
BP(n3,n4))*Ids1)));
850 Ids_Vn3_n4=((((Ids1_Vn3_n4*(1+(Lambda*
BP(n3,n4))))+(Ids1*(Lambda)))*(1+((Delta*
BP(n3,n4))*Ids1))-(Ids1*(1+(Lambda*
BP(n3,n4))))*(((Delta)*Ids1)+((Delta*
BP(n3,n4))*Ids1_Vn3_n4)))/(1+((Delta*
BP(n3,n4))*Ids1))/(1+((Delta*
BP(n3,n4))*Ids1)));
852 Ids=((Ids1*(1+(Lambda*
BP(n3,n4))))/(1+((Delta*
BP(n3,n4))*Ids1)));
857 #if defined(_DERIVATE)
866 #if defined(_DERIVATE)
878 (((
BP(
n2,n4)-Vto_T2)>0))
880 #if defined(_DERIVATE)
883 Nst=(Ng+(Nd*
BP(n3,n4)));
887 #if defined(_DERIVATE)
892 #if defined(_DERIVATE)
893 Vst_Vn3_n4=Nst_Vn3_n4*Vt_T2;
897 double m00_exp(d00_exp0,(((
BP(
n2,n4)-Vto_T2)+(Gamma_T2*
BP(n3,n4)))/(Qp*Vst)))
898 double m00_logE(d00_logE1,(d00_exp0+1))
899 #if defined(_DERIVATE)
900 #define d10_exp0 d00_exp0
901 double m10_logE(d10_logE1,d00_logE1,(d00_exp0+1))
903 #if defined(_DERIVATE)
904 Vg_Vn3_n4=(((Qp*Vst_Vn3_n4)*d00_logE1)+((Qp*Vst)*(((Gamma_T2)*(Qp*Vst)-((
BP(
n2,n4)-Vto_T2)+(Gamma_T2*
BP(n3,n4)))*(Qp*Vst_Vn3_n4))/(Qp*Vst)/(Qp*Vst))*d10_exp0*d10_logE1));
905 Vg_Vn2_n4=((Qp*Vst)*(1/(Qp*Vst))*d10_exp0*d10_logE1);
907 Vg=((Qp*Vst)*d00_logE1);
909 #if defined(_DERIVATE)
910 Al_Vn3_n4=(Alpha_T2);
912 Al=(Alpha_T2*
BP(n3,n4));
914 double m00_sqrt(d00_sqrt0,(1.0+(Al*Al)))
915 #if defined(_DERIVATE)
916 double m10_sqrt(d10_sqrt0,d00_sqrt0,(1.0+(Al*Al)))
918 #if defined(_DERIVATE)
919 Fd_Vn3_n4=((Al_Vn3_n4*d00_sqrt0-Al*((Al_Vn3_n4*Al)+(Al*Al_Vn3_n4))*d10_sqrt0)/d00_sqrt0/d00_sqrt0);
925 #if defined(_DERIVATE)
926 double m10_pow(d10_pow0,d00_pow0,Vg,Qp)
928 #if defined(_DERIVATE)
929 Ids1_Vn2_n4=(Beta_T2*(d10_pow0*Vg_Vn2_n4))*Fd;
930 Ids1_Vn3_n4=(((Beta_T2*(d10_pow0*Vg_Vn3_n4))*Fd)+((Beta_T2*d00_pow0)*Fd_Vn3_n4));
932 Ids1=((Beta_T2*d00_pow0)*Fd);
934 #if defined(_DERIVATE)
935 Ids_Vn2_n4=((Ids1_Vn2_n4*(1+(Lambda*
BP(n3,n4)))*(1+((Delta*
BP(n3,n4))*Ids1))-(Ids1*(1+(Lambda*
BP(n3,n4))))*((Delta*
BP(n3,n4))*Ids1_Vn2_n4))/(1+((Delta*
BP(n3,n4))*Ids1))/(1+((Delta*
BP(n3,n4))*Ids1)));
936 Ids_Vn3_n4=((((Ids1_Vn3_n4*(1+(Lambda*
BP(n3,n4))))+(Ids1*(Lambda)))*(1+((Delta*
BP(n3,n4))*Ids1))-(Ids1*(1+(Lambda*
BP(n3,n4))))*(((Delta)*Ids1)+((Delta*
BP(n3,n4))*Ids1_Vn3_n4)))/(1+((Delta*
BP(n3,n4))*Ids1))/(1+((Delta*
BP(n3,n4))*Ids1)));
938 Ids=((Ids1*(1+(Lambda*
BP(n3,n4))))/(1+((Delta*
BP(n3,n4))*Ids1)));
942 #if defined(_DERIVATE)
954 #if defined(_DERIVATE)
966 #if defined(_DERIVATE)
969 Igs=((
BP(
n2,n4)-Vbi)/Rf);
973 #if defined(_DERIVATE)
986 #if defined(_DERIVATE)
989 Igs1=((
BP(
n2,n4)-Vbi)/Rf);
993 #if defined(_DERIVATE)
1001 #if defined(_DERIVATE)
1004 Igs2=((
BP(
n2,n4)+Bv)/R1);
1006 #if defined(_DERIVATE)
1007 Igs_Vn2_n4=(Igs1_Vn2_n4+Igs2_Vn2_n4);
1016 ((
BP(
n2,n4)>(((-5.0)*N)*Vt_T2)))
1020 #if defined(_DERIVATE)
1023 #if defined(_DERIVATE)
1024 Igs_Vn2_n4=((Is_T2*(1/(N*Vt_T2))*d10_limexp0)+(1
e-12));
1026 Igs=((Is_T2*(d00_limexp0-1.0))+(
BP(
n2,n4)*1
e-12));
1031 #if defined(_DERIVATE)
1034 Igs=((-Is_T2)+(
BP(
n2,n4)*1
e-12));
1042 ((
BP(
n2,n4)>(((-5.0)*N)*Vt_T2)))
1046 #if defined(_DERIVATE)
1049 #if defined(_DERIVATE)
1050 Igs1_Vn2_n4=(((
Area*Is_T2)*(1/(N*Vt_T2))*d10_limexp0)+(1
e-12));
1052 Igs1=(((
Area*Is_T2)*(d00_limexp0-1.0))+(
BP(
n2,n4)*1
e-12));
1057 #if defined(_DERIVATE)
1063 ((((-Bv)<
BP(
n2,n4))&&(
BP(
n2,n4)<(((-5.0)*N)*Vt_T2))))
1065 #if defined(_DERIVATE)
1066 Igs2_Vn2_n4=(1
e-12);
1068 Igs2=(((-
Area)*Is_T2)+(
BP(
n2,n4)*1
e-12));
1072 #if defined(_DERIVATE)
1078 ((
BP(
n2,n4)==(-Bv)))
1091 #if defined(_DERIVATE)
1092 double m10_limexp(d10_limexp0,d00_limexp0,((-(Bv+
BP(
n2,n4)))/Vt_T2))
1094 #if defined(_DERIVATE)
1095 Igs4_Vn2_n4=(((-
Area)*Is_T2)*((-1.0)/Vt_T2)*d10_limexp0);
1097 Igs4=(((-
Area)*Is_T2)*((d00_limexp0-1.0)+(Bv/Vt_T2)));
1102 #if defined(_DERIVATE)
1107 #if defined(_DERIVATE)
1108 Igs_Vn2_n4=((Igs1_Vn2_n4+Igs2_Vn2_n4)+Igs4_Vn2_n4);
1110 Igs=(((Igs1+Igs2)+Igs3)+Igs4);
1117 #if defined(_DERIVATE)
1129 #if defined(_DERIVATE)
1132 Igd=((
BP(
n2,n3)-Vbi)/Rf);
1136 #if defined(_DERIVATE)
1149 #if defined(_DERIVATE)
1152 Igd1=((
BP(
n2,n3)-Vbi)/Rf);
1156 #if defined(_DERIVATE)
1157 Igd1_Vn2_n3=(1
e-12);
1164 #if defined(_DERIVATE)
1167 Igd2=((
BP(
n2,n3)+Bv)/R1);
1169 #if defined(_DERIVATE)
1170 Igd_Vn2_n3=(Igd1_Vn2_n3+Igd2_Vn2_n3);
1179 ((
BP(
n2,n3)>(((-5.0)*N)*Vt_T2)))
1183 #if defined(_DERIVATE)
1186 #if defined(_DERIVATE)
1187 Igd_Vn2_n3=(((
Area*Is_T2)*(1/(N*Vt_T2))*d10_limexp0)+(1
e-12));
1189 Igd=(((
Area*Is_T2)*(d00_limexp0-1.0))+(
BP(
n2,n3)*1
e-12));
1194 #if defined(_DERIVATE)
1197 Igd=((-Is_T2)+(
BP(
n2,n3)*1
e-12));
1205 ((
BP(
n2,n3)>(((-5.0)*N)*Vt_T2)))
1209 #if defined(_DERIVATE)
1212 #if defined(_DERIVATE)
1213 Igd1_Vn2_n3=(((
Area*Is_T2)*(1/(N*Vt_T2))*d10_limexp0)+(1
e-12));
1215 Igd1=(((
Area*Is_T2)*(d00_limexp0-1.0))+(
BP(
n2,n3)*1
e-12));
1220 #if defined(_DERIVATE)
1226 ((((-Bv)<
BP(
n2,n3))&&(
BP(
n2,n3)<(((-5.0)*N)*Vt_T2))))
1228 #if defined(_DERIVATE)
1229 Igd2_Vn2_n3=(1
e-12);
1231 Igd2=(((-
Area)*Is_T2)+(
BP(
n2,n3)*1
e-12));
1235 #if defined(_DERIVATE)
1241 ((
BP(
n2,n3)==(-Bv)))
1254 #if defined(_DERIVATE)
1255 double m10_limexp(d10_limexp0,d00_limexp0,((-(Bv+
BP(
n2,n3)))/Vt_T2))
1257 #if defined(_DERIVATE)
1258 Igd4_Vn2_n3=(((-
Area)*Is_T2)*((-1.0)/Vt_T2)*d10_limexp0);
1260 Igd4=(((-
Area)*Is_T2)*((d00_limexp0-1.0)+(Bv/Vt_T2)));
1265 #if defined(_DERIVATE)
1270 #if defined(_DERIVATE)
1271 Igd_Vn2_n3=((Igd1_Vn2_n3+Igd2_Vn2_n3)+Igd4_Vn2_n3);
1273 Igd=(((Igd1+Igd2)+Igd3)+Igd4);
1281 #if defined(_DYNAMIC)
1282 #if defined(_DERIVATE)
1294 #if defined(_DYNAMIC)
1295 #if defined(_DERIVATE)
1297 Qgs_Vn2_n1=((
Area*Cgs));
1311 #if defined(_DYNAMIC)
1314 #if defined(_DERIVATE)
1315 double m10_pow(d10_pow0,d00_pow0,(1-(
BP(
n2,
n1)/Vbi_T2)),(1-M))
1317 #if defined(_DERIVATE)
1318 Qgs1_Vn2_n1=(((Cgs_T2*Vbi_T2)/(1-M))*(-(d10_pow0*(-(1/Vbi_T2)))));
1320 Qgs1=(((Cgs_T2*Vbi_T2)/(1-M))*(1-d00_pow0));
1326 #if defined(_DYNAMIC)
1327 #if defined(_DERIVATE)
1338 #if defined(_DYNAMIC)
1339 #if defined(_DERIVATE)
1340 Qgs2_Vn2_n1=(Cgs_T2*((1/F2)*((F3)+((M/(2*Vbi_T2))*(
BP(
n2,
n1)+
BP(
n2,
n1))))));
1342 Qgs2=(Cgs_T2*(F1+((1/F2)*((F3*(
BP(
n2,
n1)-(Fc*Vbi_T2)))+((M/(2*Vbi_T2))*((
BP(
n2,
n1)*
BP(
n2,
n1))-(((Fc*Vbi_T2)*Fc)*Vbi_T2)))))));
1347 #if defined(_DYNAMIC)
1348 #if defined(_DERIVATE)
1355 #if defined(_DYNAMIC)
1356 #if defined(_DERIVATE)
1358 Qgs_Vn2_n1=(Qgs1_Vn2_n1+Qgs2_Vn2_n1);
1368 #if defined(_DYNAMIC)
1371 double
m00_sqrt(d00_sqrt1,(d00_pow0+(Vdelta1*Vdelta1)))
1372 #if defined(_DERIVATE)
1374 double
m10_sqrt(d10_sqrt1,d00_sqrt1,(d00_pow0+(Vdelta1*Vdelta1)))
1376 #if defined(_DERIVATE)
1377 Veff1_Vn2_n1=(0.5*(1.0+(d10_pow0*1.0)*d10_sqrt1));
1378 Veff1_Vn2_n3=(0.5*(1.0+(d10_pow0*(-1.0))*d10_sqrt1));
1380 Veff1=(0.5*((
BP(
n2,
n1)+
BP(
n2,n3))+d00_sqrt1));
1383 #if defined(_DYNAMIC)
1385 double m00_pow(d00_pow0,(Veff1-Vto),2)
1386 double
m00_sqrt(d00_sqrt1,(d00_pow0+(Vdelta2*Vdelta2)))
1387 #if defined(_DERIVATE)
1388 double m10_pow(d10_pow0,d00_pow0,(Veff1-Vto),2)
1389 double
m10_sqrt(d10_sqrt1,d00_sqrt1,(d00_pow0+(Vdelta2*Vdelta2)))
1391 #if defined(_DERIVATE)
1392 Vnew_Vn2_n1=(0.5*(Veff1_Vn2_n1+(d10_pow0*Veff1_Vn2_n1)*d10_sqrt1));
1393 Vnew_Vn2_n3=(0.5*(Veff1_Vn2_n3+(d10_pow0*Veff1_Vn2_n3)*d10_sqrt1));
1395 Vnew=(0.5*((Veff1+Vto_T2)+d00_sqrt1));
1402 #if defined(_DYNAMIC)
1404 double m00_sqrt(d00_sqrt0,(1-(Vmax/Vbi_T2)))
1405 double
m00_sqrt(d00_sqrt1,(1-(Vmax/Vbi)))
1406 #if defined(_DERIVATE)
1407 Qgs_Vn2_n3=(Cgs_T2*(Vnew_Vn2_n3/d00_sqrt1));
1408 Qgs_Vn2_n1=(Cgs_T2*(Vnew_Vn2_n1/d00_sqrt1));
1410 Qgs=(Cgs_T2*(((2*Vbi_T2)*(1-d00_sqrt0))+((Vnew-Vmax)/d00_sqrt1)));
1416 #if defined(_DYNAMIC)
1418 double m00_sqrt(d00_sqrt0,(1-(Vnew/Vbi)))
1419 #if defined(_DERIVATE)
1420 double m10_sqrt(d10_sqrt0,d00_sqrt0,(1-(Vnew/Vbi)))
1422 #if defined(_DERIVATE)
1423 Qgs_Vn2_n3=(((Cgs_T2*2)*Vbi)*(-(-(Vnew_Vn2_n3/Vbi))*d10_sqrt0));
1424 Qgs_Vn2_n1=(((Cgs_T2*2)*Vbi)*(-(-(Vnew_Vn2_n1/Vbi))*d10_sqrt0));
1426 Qgs=(((Cgs_T2*2)*Vbi)*(1-d00_sqrt0));
1437 #if defined(_DYNAMIC)
1438 #if defined(_DERIVATE)
1450 #if defined(_DYNAMIC)
1451 #if defined(_DERIVATE)
1453 Qgd_Vn2_n3=((
Area*Cgd));
1465 ((
BP(
n2,n3)<(Fc*Vbi)))
1467 #if defined(_DYNAMIC)
1469 double m00_pow(d00_pow0,(1-(
BP(
n2,n3)/Vbi_T2)),(1-M))
1470 #if defined(_DERIVATE)
1471 double m10_pow(d10_pow0,d00_pow0,(1-(
BP(
n2,n3)/Vbi_T2)),(1-M))
1473 #if defined(_DERIVATE)
1474 Qgd1_Vn2_n3=(((Cgd_T2*Vbi_T2)/(1-M))*(-(d10_pow0*(-(1/Vbi_T2)))));
1476 Qgd1=(((Cgd_T2*Vbi_T2)/(1-M))*(1-d00_pow0));
1482 #if defined(_DYNAMIC)
1483 #if defined(_DERIVATE)
1492 ((
BP(
n2,n3)>=(Fc*Vbi)))
1494 #if defined(_DYNAMIC)
1495 #if defined(_DERIVATE)
1496 Qgd2_Vn2_n3=(Cgd_T2*((1/F2)*((F3)+((M/(2*Vbi_T2))*(
BP(
n2,n3)+
BP(
n2,n3))))));
1498 Qgd2=(Cgd_T2*(F1+((1/F2)*((F3*(
BP(
n2,n3)-(Fc*Vbi_T2)))+((M/(2*Vbi_T2))*((
BP(
n2,n3)*
BP(
n2,n3))-(((Fc*Vbi_T2)*Fc)*Vbi_T2)))))));
1503 #if defined(_DYNAMIC)
1504 #if defined(_DERIVATE)
1511 #if defined(_DYNAMIC)
1512 #if defined(_DERIVATE)
1514 Qgd_Vn2_n3=(Qgd1_Vn2_n3+Qgd2_Vn2_n3);
1524 #if defined(_DYNAMIC)
1527 double
m00_sqrt(d00_sqrt1,(d00_pow0+(Vdelta1*Vdelta1)))
1528 #if defined(_DERIVATE)
1530 double
m10_sqrt(d10_sqrt1,d00_sqrt1,(d00_pow0+(Vdelta1*Vdelta1)))
1532 #if defined(_DERIVATE)
1533 Veff2_Vn2_n1=(0.5*(1.0-(d10_pow0*1.0)*d10_sqrt1));
1534 Veff2_Vn2_n3=(0.5*(1.0-(d10_pow0*(-1.0))*d10_sqrt1));
1536 Veff2=(0.5*((
BP(
n2,
n1)+
BP(
n2,n3))-d00_sqrt1));
1539 #if defined(_DYNAMIC)
1540 #if defined(_DERIVATE)
1541 Qgd_Vn2_n1=(Cgd_T2*Veff2_Vn2_n1);
1542 Qgd_Vn2_n3=(Cgd_T2*Veff2_Vn2_n3);
1551 #if defined(_DYNAMIC)
1552 #if defined(_DERIVATE)
1563 #if defined(_DYNAMIC)
1564 #if defined(_DERIVATE)
1566 Qds_Vn3_n4=((
Area*Cds));
1568 Qds=((
Area*Cds)*
BP(n3,n4));
1575 #if defined(_DYNAMIC)
1576 #if defined(_DERIVATE)
1577 Qds_Vn2_n4=(Tau*Ids_Vn2_n4);
1578 Qds_Vn3_n4=(((
Area*Cds))+(Tau*Ids_Vn3_n4));
1580 Qds=(((
Area*Cds)*
BP(n3,n4))+(Tau*Ids));
1586 #if defined(_DERIVATE)
1590 #if defined(_DERIVATE)
1594 #if defined(_DERIVATE)
1598 #if defined(_DYNAMIC)
1600 #if defined(_DERIVATE)
1605 #if defined(_DYNAMIC)
1607 #if defined(_DERIVATE)
1613 #if defined(_DERIVATE)
1616 #if defined(_DYNAMIC)
1618 #if defined(_DERIVATE)
1624 #if defined(_DERIVATE)
1628 #if defined(_DERIVATE)
1632 #if defined(_DERIVATE)
1635 fourkt=((4.0*1.3806503e-23)*T2);
1637 (((LEVEL==1)||(LEVEL==2)))
1640 double m00_tanh(d00_tanh0,(Alpha_T2*
BP(n3,n4)))
1641 #if defined(_DERIVATE)
1642 double m10_tanh(d10_tanh0,d00_tanh0,(Alpha_T2*
BP(n3,n4)))
1644 #if defined(_DERIVATE)
1645 gm_Vn2_n4=((2*Beta_T2))*(1+(Lambda*
BP(n3,n4)))*d00_tanh0;
1646 gm_Vn3_n4=(((((2*Beta_T2)*(
BP(
n2,n4)-Vto_T2))*(Lambda))*d00_tanh0)+((((2*Beta_T2)*(
BP(
n2,n4)-Vto_T2))*(1+(Lambda*
BP(n3,n4))))*(Alpha_T2)*d10_tanh0));
1648 gm=((((2*Beta_T2)*(
BP(
n2,n4)-Vto_T2))*(1+(Lambda*
BP(n3,n4))))*d00_tanh0);
1651 ((
BP(n3,n4)<(3/Alpha)))
1653 #if defined(_DERIVATE)
1654 An_Vn3_n4=(-(1/(
BP(
n2,n4)-Vto_T2)));
1655 An_Vn2_n4=(-(-
BP(n3,n4)/(
BP(
n2,n4)-Vto_T2)/(
BP(
n2,n4)-Vto_T2)));
1657 An=(1-(
BP(n3,n4)/(
BP(
n2,n4)-Vto_T2)));
1658 #if defined(_DERIVATE)
1659 thermal_pwr_Vn2_n4=((((((8*1.3806503e-23)*T2)*gm_Vn2_n4)/3)*(((1+An)+(An*An))/(1+An)))+(((((8*1.3806503e-23)*T2)*gm)/3)*(((An_Vn2_n4+((An_Vn2_n4*An)+(An*An_Vn2_n4)))*(1+An)-((1+An)+(An*An))*An_Vn2_n4)/(1+An)/(1+An))))*Gdsnoi;
1660 thermal_pwr_Vn3_n4=((((((8*1.3806503e-23)*T2)*gm_Vn3_n4)/3)*(((1+An)+(An*An))/(1+An)))+(((((8*1.3806503e-23)*T2)*gm)/3)*(((An_Vn3_n4+((An_Vn3_n4*An)+(An*An_Vn3_n4)))*(1+An)-((1+An)+(An*An))*An_Vn3_n4)/(1+An)/(1+An))))*Gdsnoi;
1662 thermal_pwr=((((((8*1.3806503e-23)*T2)*gm)/3)*(((1+An)+(An*An))/(1+An)))*Gdsnoi);
1666 #if defined(_DERIVATE)
1667 thermal_pwr_Vn2_n4=((((8*1.3806503e-23)*T2)*gm_Vn2_n4)/3)*Gdsnoi;
1668 thermal_pwr_Vn3_n4=((((8*1.3806503e-23)*T2)*gm_Vn3_n4)/3)*Gdsnoi;
1670 thermal_pwr=(((((8*1.3806503e-23)*T2)*gm)/3)*Gdsnoi);
1674 double m00_pow(d00_pow0,Ids,Af)
1675 #if defined(_DERIVATE)
1676 double m10_pow(d10_pow0,d00_pow0,Ids,Af)
1678 #if defined(_DERIVATE)
1679 flicker_pwr_Vn2_n4=(Kf*(d10_pow0*Ids_Vn2_n4));
1680 flicker_pwr_Vn3_n4=(Kf*(d10_pow0*Ids_Vn3_n4));
1682 flicker_pwr=(Kf*d00_pow0);
1690 ((
BP(n3,n4)<(3/Alpha)))
1692 #if defined(_DERIVATE)
1693 H1_Vn3_n4=((-(-((Alpha)/3)))/(1+(B*(
BP(
n2,n4)-Vto_T2))));
1694 H1_Vn2_n4=(-(1-(1-((Alpha*
BP(n3,n4))/3)))*(B)/(1+(B*(
BP(
n2,n4)-Vto_T2)))/(1+(B*(
BP(
n2,n4)-Vto_T2))));
1696 H1=((1-(1-((Alpha*
BP(n3,n4))/3)))/(1+(B*(
BP(
n2,n4)-Vto_T2))));
1699 #if defined(_DERIVATE)
1700 double m10_pow(d10_pow0,d00_pow0,(
BP(
n2,n4)-Vto_T2),2)
1702 #if defined(_DERIVATE)
1703 gm_Vn2_n4=(((((2*Beta_T2))*(1+(Lambda*
BP(n3,n4)))*H1)+((((2*Beta_T2)*(
BP(
n2,n4)-Vto_T2))*(1+(Lambda*
BP(n3,n4))))*H1_Vn2_n4))+((((((Beta_T2*(1+(Lambda*
BP(n3,n4))))*(d10_pow0*1.0))*B*H1)+((((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)*B)*H1_Vn2_n4))*(1+(B*(
BP(
n2,n4)-Vto_T2)))-((((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)*B)*H1)*(B))/(1+(B*(
BP(
n2,n4)-Vto_T2)))/(1+(B*(
BP(
n2,n4)-Vto_T2)))));
1704 gm_Vn3_n4=((((((2*Beta_T2)*(
BP(
n2,n4)-Vto_T2))*(Lambda))*H1)+((((2*Beta_T2)*(
BP(
n2,n4)-Vto_T2))*(1+(Lambda*
BP(n3,n4))))*H1_Vn3_n4))+((((Beta_T2*(Lambda))*d00_pow0*B*H1)+((((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)*B)*H1_Vn3_n4))/(1+(B*(
BP(
n2,n4)-Vto_T2)))));
1706 gm=(((((2*Beta_T2)*(
BP(
n2,n4)-Vto_T2))*(1+(Lambda*
BP(n3,n4))))*H1)+(((((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)*B)*H1)/(1+(B*(
BP(
n2,n4)-Vto_T2)))));
1708 #if defined(_DERIVATE)
1709 An_Vn3_n4=(-(1/(
BP(
n2,n4)-Vto_T2)));
1710 An_Vn2_n4=(-(-
BP(n3,n4)/(
BP(
n2,n4)-Vto_T2)/(
BP(
n2,n4)-Vto_T2)));
1712 An=(1-(
BP(n3,n4)/(
BP(
n2,n4)-Vto_T2)));
1713 #if defined(_DERIVATE)
1714 thermal_pwr_Vn2_n4=((((((8*1.3806503e-23)*T2)*gm_Vn2_n4)/3)*(((1+An)+(An*An))/(1+An)))+(((((8*1.3806503e-23)*T2)*gm)/3)*(((An_Vn2_n4+((An_Vn2_n4*An)+(An*An_Vn2_n4)))*(1+An)-((1+An)+(An*An))*An_Vn2_n4)/(1+An)/(1+An))))*Gdsnoi;
1715 thermal_pwr_Vn3_n4=((((((8*1.3806503e-23)*T2)*gm_Vn3_n4)/3)*(((1+An)+(An*An))/(1+An)))+(((((8*1.3806503e-23)*T2)*gm)/3)*(((An_Vn3_n4+((An_Vn3_n4*An)+(An*An_Vn3_n4)))*(1+An)-((1+An)+(An*An))*An_Vn3_n4)/(1+An)/(1+An))))*Gdsnoi;
1717 thermal_pwr=((((((8*1.3806503e-23)*T2)*gm)/3)*(((1+An)+(An*An))/(1+An)))*Gdsnoi);
1723 double
m00_pow(d00_pow1,(1+(B*(
BP(
n2,n4)-Vto_T2))),2)
1724 #if defined(_DERIVATE)
1725 double m10_pow(d10_pow0,d00_pow0,(
BP(n2,n4)-Vto_T2),2)
1726 double
m10_pow(d10_pow1,d00_pow1,(1+(B*(
BP(n2,n4)-Vto_T2))),2)
1728 #if defined(_DERIVATE)
1729 gm_Vn2_n4=(((((2*Beta_T2))*(1+(Lambda*
BP(n3,n4)))*(1+(B*(
BP(n2,n4)-Vto_T2)))-(((2*Beta_T2)*(
BP(n2,n4)-Vto_T2))*(1+(Lambda*
BP(n3,n4))))*(B))/(1+(B*(
BP(n2,n4)-Vto_T2)))/(1+(B*(
BP(n2,n4)-Vto_T2))))+((((Beta_T2*(1+(Lambda*
BP(n3,n4))))*(d10_pow0*1.0))*B*d00_pow1-(((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)*B)*(d10_pow1*(B)))/d00_pow1/d00_pow1));
1730 gm_Vn3_n4=(((((2*Beta_T2)*(
BP(n2,n4)-Vto_T2))*(Lambda))/(1+(B*(
BP(n2,n4)-Vto_T2))))+((Beta_T2*(Lambda))*d00_pow0*B/d00_pow1));
1732 gm=(((((2*Beta_T2)*(
BP(n2,n4)-Vto_T2))*(1+(Lambda*
BP(n3,n4))))/(1+(B*(
BP(n2,n4)-Vto_T2))))+((((Beta_T2*(1+(Lambda*
BP(n3,n4))))*d00_pow0)*B)/d00_pow1));
1734 #if defined(_DERIVATE)
1735 thermal_pwr_Vn2_n4=((((8*1.3806503e-23)*T2)*gm_Vn2_n4)/3)*Gdsnoi;
1736 thermal_pwr_Vn3_n4=((((8*1.3806503e-23)*T2)*gm_Vn3_n4)/3)*Gdsnoi;
1738 thermal_pwr=(((((8*1.3806503e-23)*T2)*gm)/3)*Gdsnoi);
1742 double m00_pow(d00_pow0,Ids,Af)
1743 #if defined(_DERIVATE)
1744 double m10_pow(d10_pow0,d00_pow0,Ids,Af)
1746 #if defined(_DERIVATE)
1747 flicker_pwr_Vn2_n4=(Kf*(d10_pow0*Ids_Vn2_n4));
1748 flicker_pwr_Vn3_n4=(Kf*(d10_pow0*Ids_Vn3_n4));
1750 flicker_pwr=(Kf*d00_pow0);
1758 ((
BP(n3,n4)<(3/Alpha)))
1761 double m00_pow(d00_pow0,(
BP(n2,n4)-Vto_T2),Qp)
1762 double
m00_pow(d00_pow1,(1-((Alpha*
BP(n3,n4))/3)),3)
1763 #if defined(_DERIVATE)
1764 double m10_pow(d10_pow0,d00_pow0,(
BP(n2,n4)-Vto_T2),Qp)
1765 double
m10_pow(d10_pow1,d00_pow1,(1-((Alpha*
BP(n3,n4))/3)),3)
1767 #if defined(_DERIVATE)
1768 Ids1_Vn2_n4=(Beta_T2*(d10_pow0*1.0))*(1-d00_pow1);
1769 Ids1_Vn3_n4=((Beta_T2*d00_pow0)*(-(d10_pow1*(-((Alpha)/3)))));
1771 Ids1=((Beta_T2*d00_pow0)*(1-d00_pow1));
1774 double m00_pow(d00_pow0,(
BP(n2,n4)-Vto_T2),(Qp-1))
1775 double
m00_pow(d00_pow1,((Alpha*
BP(n3,n4))/3),3)
1776 #if defined(_DERIVATE)
1777 double m10_pow(d10_pow0,d00_pow0,(
BP(n2,n4)-Vto_T2),(Qp-1))
1778 double
m10_pow(d10_pow1,d00_pow1,((Alpha*
BP(n3,n4))/3),3)
1780 #if defined(_DERIVATE)
1781 gm1_Vn2_n4=((Qp*Beta_T2)*(d10_pow0*1.0))*(1-(1-d00_pow1));
1782 gm1_Vn3_n4=(((Qp*Beta_T2)*d00_pow0)*(-(-(d10_pow1*((Alpha)/3)))));
1784 gm1=(((Qp*Beta_T2)*d00_pow0)*(1-(1-d00_pow1)));
1786 #if defined(_DERIVATE)
1787 gm_Vn2_n4=((((gm1_Vn2_n4*(1+(Lambda*
BP(n3,n4)))*(1+((Delta*
BP(n2,n4))*Ids1))-(gm1*(1+(Lambda*
BP(n3,n4))))*(((Delta)*Ids1)+((Delta*
BP(n2,n4))*Ids1_Vn2_n4)))/(1+((Delta*
BP(n2,n4))*Ids1))/(1+((Delta*
BP(n2,n4))*Ids1)))*(1+(((Delta*
BP(n3,n4))*Ids1)/(1+((Delta*
BP(n3,n4))*Ids1)))))+(((gm1*(1+(Lambda*
BP(n3,n4))))/(1+((Delta*
BP(n2,n4))*Ids1)))*((((Delta*
BP(n3,n4))*Ids1_Vn2_n4)*(1+((Delta*
BP(n3,n4))*Ids1))-((Delta*
BP(n3,n4))*Ids1)*((Delta*
BP(n3,n4))*Ids1_Vn2_n4))/(1+((Delta*
BP(n3,n4))*Ids1))/(1+((Delta*
BP(n3,n4))*Ids1)))));
1788 gm_Vn3_n4=((((((gm1_Vn3_n4*(1+(Lambda*
BP(n3,n4))))+(gm1*(Lambda)))*(1+((Delta*
BP(n2,n4))*Ids1))-(gm1*(1+(Lambda*
BP(n3,n4))))*((Delta*
BP(n2,n4))*Ids1_Vn3_n4))/(1+((Delta*
BP(n2,n4))*Ids1))/(1+((Delta*
BP(n2,n4))*Ids1)))*(1+(((Delta*
BP(n3,n4))*Ids1)/(1+((Delta*
BP(n3,n4))*Ids1)))))+(((gm1*(1+(Lambda*
BP(n3,n4))))/(1+((Delta*
BP(n2,n4))*Ids1)))*(((((Delta)*Ids1)+((Delta*
BP(n3,n4))*Ids1_Vn3_n4))*(1+((Delta*
BP(n3,n4))*Ids1))-((Delta*
BP(n3,n4))*Ids1)*(((Delta)*Ids1)+((Delta*
BP(n3,n4))*Ids1_Vn3_n4)))/(1+((Delta*
BP(n3,n4))*Ids1))/(1+((Delta*
BP(n3,n4))*Ids1)))));
1790 gm=(((gm1*(1+(Lambda*
BP(n3,n4))))/(1+((Delta*
BP(n2,n4))*Ids1)))*(1+(((Delta*
BP(n3,n4))*Ids1)/(1+((Delta*
BP(n3,n4))*Ids1)))));
1791 #if defined(_DERIVATE)
1792 An_Vn3_n4=(-(1/(
BP(n2,n4)-Vto_T2)));
1793 An_Vn2_n4=(-(-
BP(n3,n4)/(
BP(n2,n4)-Vto_T2)/(
BP(n2,n4)-Vto_T2)));
1795 An=(1-(
BP(n3,n4)/(
BP(n2,n4)-Vto_T2)));
1796 #if defined(_DERIVATE)
1797 thermal_pwr_Vn2_n4=((((((8*1.3806503e-23)*T2)*gm_Vn2_n4)/3)*(((1+An)+(An*An))/(1+An)))+(((((8*1.3806503e-23)*T2)*gm)/3)*(((An_Vn2_n4+((An_Vn2_n4*An)+(An*An_Vn2_n4)))*(1+An)-((1+An)+(An*An))*An_Vn2_n4)/(1+An)/(1+An))))*Gdsnoi;
1798 thermal_pwr_Vn3_n4=((((((8*1.3806503e-23)*T2)*gm_Vn3_n4)/3)*(((1+An)+(An*An))/(1+An)))+(((((8*1.3806503e-23)*T2)*gm)/3)*(((An_Vn3_n4+((An_Vn3_n4*An)+(An*An_Vn3_n4)))*(1+An)-((1+An)+(An*An))*An_Vn3_n4)/(1+An)/(1+An))))*Gdsnoi;
1800 thermal_pwr=((((((8*1.3806503e-23)*T2)*gm)/3)*(((1+An)+(An*An))/(1+An)))*Gdsnoi);
1805 double m00_pow(d00_pow0,(
BP(n2,n4)-Vto_T2),Qp)
1806 #if defined(_DERIVATE)
1807 double m10_pow(d10_pow0,d00_pow0,(
BP(n2,n4)-Vto_T2),Qp)
1809 #if defined(_DERIVATE)
1810 Ids1_Vn2_n4=(Beta_T2*(d10_pow0*1.0));
1813 Ids1=(Beta_T2*d00_pow0);
1816 double m00_pow(d00_pow0,(
BP(n2,n4)-Vto_T2),(Qp-1))
1817 #if defined(_DERIVATE)
1818 double m10_pow(d10_pow0,d00_pow0,(
BP(n2,n4)-Vto_T2),(Qp-1))
1820 #if defined(_DERIVATE)
1821 gm1_Vn2_n4=((Qp*Beta_T2)*(d10_pow0*1.0));
1824 gm1=((Qp*Beta_T2)*d00_pow0);
1826 #if defined(_DERIVATE)
1827 gm_Vn2_n4=((((gm1_Vn2_n4*(1+(Lambda*
BP(n3,n4)))*(1+((Delta*
BP(n2,n4))*Ids1))-(gm1*(1+(Lambda*
BP(n3,n4))))*(((Delta)*Ids1)+((Delta*
BP(n2,n4))*Ids1_Vn2_n4)))/(1+((Delta*
BP(n2,n4))*Ids1))/(1+((Delta*
BP(n2,n4))*Ids1)))*(1+(((Delta*
BP(n3,n4))*Ids1)/(1+((Delta*
BP(n3,n4))*Ids1)))))+(((gm1*(1+(Lambda*
BP(n3,n4))))/(1+((Delta*
BP(n2,n4))*Ids1)))*((((Delta*
BP(n3,n4))*Ids1_Vn2_n4)*(1+((Delta*
BP(n3,n4))*Ids1))-((Delta*
BP(n3,n4))*Ids1)*((Delta*
BP(n3,n4))*Ids1_Vn2_n4))/(1+((Delta*
BP(n3,n4))*Ids1))/(1+((Delta*
BP(n3,n4))*Ids1)))));
1828 gm_Vn3_n4=((((((gm1_Vn3_n4*(1+(Lambda*
BP(n3,n4))))+(gm1*(Lambda)))*(1+((Delta*
BP(n2,n4))*Ids1))-(gm1*(1+(Lambda*
BP(n3,n4))))*((Delta*
BP(n2,n4))*Ids1_Vn3_n4))/(1+((Delta*
BP(n2,n4))*Ids1))/(1+((Delta*
BP(n2,n4))*Ids1)))*(1+(((Delta*
BP(n3,n4))*Ids1)/(1+((Delta*
BP(n3,n4))*Ids1)))))+(((gm1*(1+(Lambda*
BP(n3,n4))))/(1+((Delta*
BP(n2,n4))*Ids1)))*(((((Delta)*Ids1)+((Delta*
BP(n3,n4))*Ids1_Vn3_n4))*(1+((Delta*
BP(n3,n4))*Ids1))-((Delta*
BP(n3,n4))*Ids1)*(((Delta)*Ids1)+((Delta*
BP(n3,n4))*Ids1_Vn3_n4)))/(1+((Delta*
BP(n3,n4))*Ids1))/(1+((Delta*
BP(n3,n4))*Ids1)))));
1830 gm=(((gm1*(1+(Lambda*
BP(n3,n4))))/(1+((Delta*
BP(n2,n4))*Ids1)))*(1+(((Delta*
BP(n3,n4))*Ids1)/(1+((Delta*
BP(n3,n4))*Ids1)))));
1831 #if defined(_DERIVATE)
1832 thermal_pwr_Vn2_n4=((((8*1.3806503e-23)*T2)*gm_Vn2_n4)/3)*Gdsnoi;
1833 thermal_pwr_Vn3_n4=((((8*1.3806503e-23)*T2)*gm_Vn3_n4)/3)*Gdsnoi;
1835 thermal_pwr=(((((8*1.3806503e-23)*T2)*gm)/3)*Gdsnoi);
1839 double m00_pow(d00_pow0,Ids,Af)
1840 #if defined(_DERIVATE)
1841 double m10_pow(d10_pow0,d00_pow0,Ids,Af)
1843 #if defined(_DERIVATE)
1844 flicker_pwr_Vn2_n4=(Kf*(d10_pow0*Ids_Vn2_n4));
1845 flicker_pwr_Vn3_n4=(Kf*(d10_pow0*Ids_Vn3_n4));
1847 flicker_pwr=(Kf*d00_pow0);
1855 ((
BP(n3,n4)<(3/Alpha)))
1857 #if defined(_DERIVATE)
1860 Nst=(Ng+(Nd*
BP(n3,n4)));
1864 #if defined(_DERIVATE)
1869 #if defined(_DERIVATE)
1870 Vst_Vn3_n4=Nst_Vn3_n4*Vt_T2;
1874 double m00_exp(d00_exp0,(((
BP(n2,n4)-Vto_T2)+(Gamma_T2*
BP(n3,n4)))/(Qp*Vst)))
1875 double m00_logE(d00_logE1,(d00_exp0+1))
1876 #if defined(_DERIVATE)
1877 #define d10_exp0 d00_exp0
1878 double m10_logE(d10_logE1,d00_logE1,(d00_exp0+1))
1880 #if defined(_DERIVATE)
1881 Vg_Vn3_n4=(((Qp*Vst_Vn3_n4)*d00_logE1)+((Qp*Vst)*(((Gamma_T2)*(Qp*Vst)-((
BP(n2,n4)-Vto_T2)+(Gamma_T2*
BP(n3,n4)))*(Qp*Vst_Vn3_n4))/(Qp*Vst)/(Qp*Vst))*d10_exp0*d10_logE1));
1882 Vg_Vn2_n4=((Qp*Vst)*(1/(Qp*Vst))*d10_exp0*d10_logE1);
1884 Vg=((Qp*Vst)*d00_logE1);
1886 #if defined(_DERIVATE)
1887 Al_Vn3_n4=(Alpha_T2);
1889 Al=(Alpha_T2*
BP(n3,n4));
1891 double m00_sqrt(d00_sqrt0,(1.0+(Al*Al)))
1892 #if defined(_DERIVATE)
1893 double m10_sqrt(d10_sqrt0,d00_sqrt0,(1.0+(Al*Al)))
1895 #if defined(_DERIVATE)
1896 Fd_Vn3_n4=((Al_Vn3_n4*d00_sqrt0-Al*((Al_Vn3_n4*Al)+(Al*Al_Vn3_n4))*d10_sqrt0)/d00_sqrt0/d00_sqrt0);
1901 double m00_pow(d00_pow0,Vg,Qp)
1902 #if defined(_DERIVATE)
1903 double m10_pow(d10_pow0,d00_pow0,Vg,Qp)
1905 #if defined(_DERIVATE)
1906 Ids1_Vn2_n4=(Beta_T2*(d10_pow0*Vg_Vn2_n4))*Fd;
1907 Ids1_Vn3_n4=(((Beta_T2*(d10_pow0*Vg_Vn3_n4))*Fd)+((Beta_T2*d00_pow0)*Fd_Vn3_n4));
1909 Ids1=((Beta_T2*d00_pow0)*Fd);
1912 double m00_exp(d00_exp0,(-(((
BP(n2,n4)-Vto_T2)+(Delta*
BP(n3,n4)))/(Qp*Vst))))
1913 #if defined(_DERIVATE)
1914 #define d10_exp0 d00_exp0
1916 #if defined(_DERIVATE)
1917 gm1_Vn2_n4=((((Ids1_Vn2_n4*Vg-Ids1*Vg_Vn2_n4)/Vg/Vg)*Qp*(d00_exp0+1)-((Ids1/Vg)*Qp)*(-(1/(Qp*Vst)))*
d10_exp0)/(d00_exp0+1)/(d00_exp0+1));
1918 gm1_Vn3_n4=((((Ids1_Vn3_n4*Vg-Ids1*Vg_Vn3_n4)/Vg/Vg)*Qp*(d00_exp0+1)-((Ids1/Vg)*Qp)*(-(((Delta)*(Qp*Vst)-((
BP(n2,n4)-Vto_T2)+(Delta*
BP(n3,n4)))*(Qp*Vst_Vn3_n4))/(Qp*Vst)/(Qp*Vst)))*
d10_exp0)/(d00_exp0+1)/(d00_exp0+1));
1920 gm1=(((Ids1/Vg)*Qp)/(d00_exp0+1));
1923 double m00_pow(d00_pow0,(1+((Delta*
BP(n3,n4))*Ids1)),2)
1924 #if defined(_DERIVATE)
1925 double m10_pow(d10_pow0,d00_pow0,(1+((Delta*
BP(n3,n4))*Ids1)),2)
1927 #if defined(_DERIVATE)
1928 gm_Vn2_n4=((gm1_Vn2_n4*d00_pow0-gm1*(d10_pow0*((Delta*
BP(n3,n4))*Ids1_Vn2_n4)))/d00_pow0/d00_pow0);
1929 gm_Vn3_n4=((gm1_Vn3_n4*d00_pow0-gm1*(d10_pow0*(((Delta)*Ids1)+((Delta*
BP(n3,n4))*Ids1_Vn3_n4))))/d00_pow0/d00_pow0);
1933 #if defined(_DERIVATE)
1934 An_Vn3_n4=(-(1/(
BP(n2,n4)-Vto_T2)));
1935 An_Vn2_n4=(-(-
BP(n3,n4)/(
BP(n2,n4)-Vto_T2)/(
BP(n2,n4)-Vto_T2)));
1937 An=(1-(
BP(n3,n4)/(
BP(n2,n4)-Vto_T2)));
1938 #if defined(_DERIVATE)
1939 thermal_pwr_Vn2_n4=((((((8*1.3806503e-23)*T2)*gm_Vn2_n4)/3)*(((1+An)+(An*An))/(1+An)))+(((((8*1.3806503e-23)*T2)*gm)/3)*(((An_Vn2_n4+((An_Vn2_n4*An)+(An*An_Vn2_n4)))*(1+An)-((1+An)+(An*An))*An_Vn2_n4)/(1+An)/(1+An))))*Gdsnoi;
1940 thermal_pwr_Vn3_n4=((((((8*1.3806503e-23)*T2)*gm_Vn3_n4)/3)*(((1+An)+(An*An))/(1+An)))+(((((8*1.3806503e-23)*T2)*gm)/3)*(((An_Vn3_n4+((An_Vn3_n4*An)+(An*An_Vn3_n4)))*(1+An)-((1+An)+(An*An))*An_Vn3_n4)/(1+An)/(1+An))))*Gdsnoi;
1942 thermal_pwr=((((((8*1.3806503e-23)*T2)*gm)/3)*(((1+An)+(An*An))/(1+An)))*Gdsnoi);
1946 #if defined(_DERIVATE)
1949 Nst=(Ng+(Nd*
BP(n3,n4)));
1953 #if defined(_DERIVATE)
1958 #if defined(_DERIVATE)
1959 Vst_Vn3_n4=Nst_Vn3_n4*Vt_T2;
1963 double m00_exp(d00_exp0,(((
BP(n2,n4)-Vto_T2)+(Gamma_T2*
BP(n3,n4)))/(Qp*Vst)))
1964 double m00_logE(d00_logE1,(d00_exp0+1))
1965 #if defined(_DERIVATE)
1966 #define d10_exp0 d00_exp0
1967 double m10_logE(d10_logE1,d00_logE1,(d00_exp0+1))
1969 #if defined(_DERIVATE)
1970 Vg_Vn3_n4=(((Qp*Vst_Vn3_n4)*d00_logE1)+((Qp*Vst)*(((Gamma_T2)*(Qp*Vst)-((
BP(n2,n4)-Vto_T2)+(Gamma_T2*
BP(n3,n4)))*(Qp*Vst_Vn3_n4))/(Qp*Vst)/(Qp*Vst))*d10_exp0*d10_logE1));
1971 Vg_Vn2_n4=((Qp*Vst)*(1/(Qp*Vst))*d10_exp0*d10_logE1);
1973 Vg=((Qp*Vst)*d00_logE1);
1975 #if defined(_DERIVATE)
1976 Al_Vn3_n4=(Alpha_T2);
1978 Al=(Alpha_T2*
BP(n3,n4));
1980 double m00_sqrt(d00_sqrt0,(1.0+(Al*Al)))
1981 #if defined(_DERIVATE)
1982 double m10_sqrt(d10_sqrt0,d00_sqrt0,(1.0+(Al*Al)))
1984 #if defined(_DERIVATE)
1985 Fd_Vn3_n4=((Al_Vn3_n4*d00_sqrt0-Al*((Al_Vn3_n4*Al)+(Al*Al_Vn3_n4))*d10_sqrt0)/d00_sqrt0/d00_sqrt0);
1990 double m00_pow(d00_pow0,Vg,Qp)
1991 #if defined(_DERIVATE)
1992 double m10_pow(d10_pow0,d00_pow0,Vg,Qp)
1994 #if defined(_DERIVATE)
1995 Ids1_Vn2_n4=(Beta_T2*(d10_pow0*Vg_Vn2_n4))*Fd;
1996 Ids1_Vn3_n4=(((Beta_T2*(d10_pow0*Vg_Vn3_n4))*Fd)+((Beta_T2*d00_pow0)*Fd_Vn3_n4));
1998 Ids1=((Beta_T2*d00_pow0)*Fd);
2001 double m00_exp(d00_exp0,(-(((
BP(n2,n4)-Vto_T2)+(Delta*
BP(n3,n4)))/(Qp*Vst))))
2002 #if defined(_DERIVATE)
2003 #define d10_exp0 d00_exp0
2005 #if defined(_DERIVATE)
2006 gm1_Vn2_n4=((((Ids1_Vn2_n4*Vg-Ids1*Vg_Vn2_n4)/Vg/Vg)*Qp*(d00_exp0+1)-((Ids1/Vg)*Qp)*(-(1/(Qp*Vst)))*
d10_exp0)/(d00_exp0+1)/(d00_exp0+1));
2007 gm1_Vn3_n4=((((Ids1_Vn3_n4*Vg-Ids1*Vg_Vn3_n4)/Vg/Vg)*Qp*(d00_exp0+1)-((Ids1/Vg)*Qp)*(-(((Delta)*(Qp*Vst)-((
BP(n2,n4)-Vto_T2)+(Delta*
BP(n3,n4)))*(Qp*Vst_Vn3_n4))/(Qp*Vst)/(Qp*Vst)))*
d10_exp0)/(d00_exp0+1)/(d00_exp0+1));
2009 gm1=(((Ids1/Vg)*Qp)/(d00_exp0+1));
2012 double m00_pow(d00_pow0,(1+((Delta*
BP(n3,n4))*Ids1)),2)
2013 #if defined(_DERIVATE)
2014 double m10_pow(d10_pow0,d00_pow0,(1+((Delta*
BP(n3,n4))*Ids1)),2)
2016 #if defined(_DERIVATE)
2017 gm_Vn2_n4=((gm1_Vn2_n4*d00_pow0-gm1*(d10_pow0*((Delta*
BP(n3,n4))*Ids1_Vn2_n4)))/d00_pow0/d00_pow0);
2018 gm_Vn3_n4=((gm1_Vn3_n4*d00_pow0-gm1*(d10_pow0*(((Delta)*Ids1)+((Delta*
BP(n3,n4))*Ids1_Vn3_n4))))/d00_pow0/d00_pow0);
2022 #if defined(_DERIVATE)
2023 thermal_pwr_Vn2_n4=((((8*1.3806503e-23)*T2)*gm_Vn2_n4)/3)*Gdsnoi;
2024 thermal_pwr_Vn3_n4=((((8*1.3806503e-23)*T2)*gm_Vn3_n4)/3)*Gdsnoi;
2026 thermal_pwr=(((((8*1.3806503e-23)*T2)*gm)/3)*Gdsnoi);
2030 double m00_pow(d00_pow0,Ids,Af)
2031 #if defined(_DERIVATE)
2032 double m10_pow(d10_pow0,d00_pow0,Ids,Af)
2034 #if defined(_DERIVATE)
2035 flicker_pwr_Vn2_n4=(Kf*(d10_pow0*Ids_Vn2_n4));
2036 flicker_pwr_Vn3_n4=(Kf*(d10_pow0*Ids_Vn3_n4));
2038 flicker_pwr=(Kf*d00_pow0);
2061 for (
int i1 = 0; i1 < 7; i1++) {
2062 setI (i1, _rhs[i1]);
2063 for (
int i2 = 0; i2 < 7; i2++) {
2064 setY (i1, i2, _jstat[i1][i2]);
2098 matrix MESFET::calcMatrixY (nr_double_t frequency)
2104 for (
int i1 = 0; i1 < 7; i1++) {
2105 for (
int i2 = 0; i2 < 7; i2++) {
2106 y (i1,i2) =
rect (_jstat[i1][i2], _jdyna[i1][i2] * 2 *
M_PI * _freq);
2140 int i1, i2, i3, i4, state;
2143 for (i1 = 0; i1 < 7; i1++) {
2144 for (i2 = 0; i2 < 7; i2++) {
2145 state = 2 * (i2 + 7 * i1);
2147 if (_charges[i1][i2] != 0.0)
2152 for (i1 = 0; i1 < 7; i1++) {
2153 state = 2 * (i1 + 7 * i1);
2154 if (_charges[i1][i1] != 0.0)
2159 for (i1 = 0; i1 < 7; i1++) {
2160 for (i2 = 0; i2 < 7; i2++) {
2162 for (i3 = 0; i3 < 7; i3++) {
2163 for (i4 = 0; i4 < 7; i4++) {
2165 if (_caps[i1][i2][i3][i4] != 0.0)
2170 for (i1 = 0; i1 < 7; i1++) {
2171 for (i2 = 0; i2 < 7; i2++) {
2173 for (i3 = 0; i3 < 7; i3++) {
2174 if (_caps[i1][i2][i3][i3] != 0.0)
2179 for (i1 = 0; i1 < 7; i1++) {
2180 for (i3 = 0; i3 < 7; i3++) {
2181 for (i4 = 0; i4 < 7; i4++) {
2183 if (_caps[i1][i1][i3][i4] != 0.0)
2188 for (i1 = 0; i1 < 7; i1++) {
2189 for (i3 = 0; i3 < 7; i3++) {
2190 if (_caps[i1][i1][i3][i3] != 0.0)
2196 matrix MESFET::calcMatrixCy (nr_double_t frequency)
2241 for (
int i1 = 0; i1 < 7; i1++) {
2242 setQ (i1, _qhs[i1]);
2243 setCV (i1, _chs[i1]);
2244 setGV (i1, _ghs[i1]);
2245 for (
int i2 = 0; i2 < 7; i2++) {
2246 setQV (i1, i2, _jdyna[i1][i2]);