38 double r1hm2z, i1hm2z;
41 double r2h11z, i2h11z;
42 double r2h1m2x,i2h1m2x;
43 double r2h1m2y,i2h1m2y;
44 double r2h1m2z, i2h1m2z;
60 here=here->MESnextInstance) {
71 r1h1x = *(job->
r1H1ptr + (here->MESgateNode)) -
72 *(job->
r1H1ptr + (here->MESsourcePrimeNode));
73 i1h1x = *(job->
i1H1ptr + (here->MESgateNode)) -
74 *(job->
i1H1ptr + (here->MESsourcePrimeNode));
76 r1h1y = *(job->
r1H1ptr + (here->MESdrainPrimeNode)) -
77 *(job->
r1H1ptr + (here->MESsourcePrimeNode));
78 i1h1y = *(job->
i1H1ptr + (here->MESdrainPrimeNode)) -
79 *(job->
i1H1ptr + (here->MESsourcePrimeNode));
85 temp =
DFn2F1(here->cdr_x2,
98 itemp =
DFi2F1(here->cdr_x2,
111 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) -= temp;
112 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) -= itemp;
113 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
114 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
124 itemp =
D1i2F1(here->ggs2,
129 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
130 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
131 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
132 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
142 itemp =
D1i2F1(here->ggd2,
147 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
148 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
149 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) += temp;
150 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) += itemp;
184 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
185 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
186 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
187 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
221 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
222 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
223 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) += temp;
224 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) += itemp;
235 r1h1x = *(job->
r1H1ptr + (here->MESgateNode)) -
236 *(job->
r1H1ptr + (here->MESsourcePrimeNode));
237 i1h1x = *(job->
i1H1ptr + (here->MESgateNode)) -
238 *(job->
i1H1ptr + (here->MESsourcePrimeNode));
240 r1h1y = *(job->
r1H1ptr + (here->MESdrainPrimeNode)) -
241 *(job->
r1H1ptr + (here->MESsourcePrimeNode));
242 i1h1y = *(job->
i1H1ptr + (here->MESdrainPrimeNode)) -
243 *(job->
i1H1ptr + (here->MESsourcePrimeNode));
245 r2h11x = *(job->
r2H11ptr + (here->MESgateNode)) -
246 *(job->
r2H11ptr + (here->MESsourcePrimeNode));
247 i2h11x = *(job->
i2H11ptr + (here->MESgateNode)) -
248 *(job->
i2H11ptr + (here->MESsourcePrimeNode));
250 r2h11y = *(job->
r2H11ptr + (here->MESdrainPrimeNode)) -
251 *(job->
r2H11ptr + (here->MESsourcePrimeNode));
252 i2h11y = *(job->
i2H11ptr + (here->MESdrainPrimeNode)) -
253 *(job->
i2H11ptr + (here->MESsourcePrimeNode));
258 temp =
DFn3F1(here->cdr_x2,
287 itemp =
DFi3F1(here->cdr_x2,
316 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) -= temp;
317 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) -= itemp;
318 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
319 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
332 itemp =
D1i3F1(here->ggs2,
340 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
341 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
342 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
343 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
356 itemp =
D1i3F1(here->ggd2,
365 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
366 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
367 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) += temp;
368 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) += itemp;
434 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
435 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
436 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
437 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
503 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
504 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
505 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) += temp;
506 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) += itemp;
516 r1h1x = *(job->
r1H1ptr + (here->MESgateNode)) -
517 *(job->
r1H1ptr + (here->MESsourcePrimeNode));
518 i1h1x = *(job->
i1H1ptr + (here->MESgateNode)) -
519 *(job->
i1H1ptr + (here->MESsourcePrimeNode));
521 r1h1y = *(job->
r1H1ptr + (here->MESdrainPrimeNode)) -
522 *(job->
r1H1ptr + (here->MESsourcePrimeNode));
523 i1h1y = *(job->
i1H1ptr + (here->MESdrainPrimeNode)) -
524 *(job->
i1H1ptr + (here->MESsourcePrimeNode));
526 r1h2x = *(job->
r1H2ptr + (here->MESgateNode)) -
527 *(job->
r1H2ptr + (here->MESsourcePrimeNode));
528 i1h2x = *(job->
i1H2ptr + (here->MESgateNode)) -
529 *(job->
i1H2ptr + (here->MESsourcePrimeNode));
531 r1h2y = *(job->
r1H2ptr + (here->MESdrainPrimeNode)) -
532 *(job->
r1H2ptr + (here->MESsourcePrimeNode));
533 i1h2y = *(job->
i1H2ptr + (here->MESdrainPrimeNode)) -
534 *(job->
i1H2ptr + (here->MESsourcePrimeNode));
539 temp =
DFnF12(here->cdr_x2,
558 itemp =
DFiF12(here->cdr_x2,
577 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) -= temp;
578 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) -= itemp;
579 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
580 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
592 itemp =
D1iF12(here->ggs2,
599 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
600 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
601 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
602 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
614 itemp =
D1iF12(here->ggd2,
621 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
622 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
623 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) += temp;
624 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) += itemp;
670 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
671 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
672 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
673 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
719 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
720 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
721 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) += temp;
722 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) += itemp;
732 r1h1x = *(job->
r1H1ptr + (here->MESgateNode)) -
733 *(job->
r1H1ptr + (here->MESsourcePrimeNode));
734 i1h1x = *(job->
i1H1ptr + (here->MESgateNode)) -
735 *(job->
i1H1ptr + (here->MESsourcePrimeNode));
737 r1h1y = *(job->
r1H1ptr + (here->MESdrainPrimeNode)) -
738 *(job->
r1H1ptr + (here->MESsourcePrimeNode));
739 i1h1y = *(job->
i1H1ptr + (here->MESdrainPrimeNode)) -
740 *(job->
i1H1ptr + (here->MESsourcePrimeNode));
742 r1hm2x = *(job->
r1H2ptr + (here->MESgateNode)) -
743 *(job->
r1H2ptr + (here->MESsourcePrimeNode));
744 i1hm2x = -(*(job->
i1H2ptr + (here->MESgateNode)) -
745 *(job->
i1H2ptr + (here->MESsourcePrimeNode)));
747 r1hm2y = *(job->
r1H2ptr + (here->MESdrainPrimeNode)) -
748 *(job->
r1H2ptr + (here->MESsourcePrimeNode));
749 i1hm2y = -(*(job->
i1H2ptr + (here->MESdrainPrimeNode)) -
750 *(job->
i1H2ptr + (here->MESsourcePrimeNode)));
755 temp =
DFnF12(here->cdr_x2,
774 itemp =
DFiF12(here->cdr_x2,
793 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) -= temp;
794 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) -= itemp;
795 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
796 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
808 itemp =
D1iF12(here->ggs2,
815 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
816 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
817 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
818 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
830 itemp =
D1iF12(here->ggd2,
837 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
838 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
839 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) += temp;
840 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) += itemp;
886 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
887 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
888 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
889 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
935 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
936 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
937 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) += temp;
938 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) += itemp;
948 r1h1x = *(job->
r1H1ptr + (here->MESgateNode)) -
949 *(job->
r1H1ptr + (here->MESsourcePrimeNode));
950 i1h1x = *(job->
i1H1ptr + (here->MESgateNode)) -
951 *(job->
i1H1ptr + (here->MESsourcePrimeNode));
953 r1h1y = *(job->
r1H1ptr + (here->MESdrainPrimeNode)) -
954 *(job->
r1H1ptr + (here->MESsourcePrimeNode));
955 i1h1y = *(job->
i1H1ptr + (here->MESdrainPrimeNode)) -
956 *(job->
i1H1ptr + (here->MESsourcePrimeNode));
958 r2h11x = *(job->
r2H11ptr + (here->MESgateNode)) -
959 *(job->
r2H11ptr + (here->MESsourcePrimeNode));
960 i2h11x = *(job->
i2H11ptr + (here->MESgateNode)) -
961 *(job->
i2H11ptr + (here->MESsourcePrimeNode));
963 r2h11y = *(job->
r2H11ptr + (here->MESdrainPrimeNode)) -
964 *(job->
r2H11ptr + (here->MESsourcePrimeNode));
965 i2h11y = *(job->
i2H11ptr + (here->MESdrainPrimeNode)) -
966 *(job->
i2H11ptr + (here->MESsourcePrimeNode));
968 r1hm2x = *(job->
r1H2ptr + (here->MESgateNode)) -
969 *(job->
r1H2ptr + (here->MESsourcePrimeNode));
970 i1hm2x = -(*(job->
i1H2ptr + (here->MESgateNode)) -
971 *(job->
i1H2ptr + (here->MESsourcePrimeNode)));
973 r1hm2y = *(job->
r1H2ptr + (here->MESdrainPrimeNode)) -
974 *(job->
r1H2ptr + (here->MESsourcePrimeNode));
975 i1hm2y = -(*(job->
i1H2ptr + (here->MESdrainPrimeNode)) -
976 *(job->
i1H2ptr + (here->MESsourcePrimeNode)));
978 r2h1m2x = *(job->
r2H1m2ptr + (here->MESgateNode)) -
979 *(job->
r2H1m2ptr + (here->MESsourcePrimeNode));
980 i2h1m2x = *(job->
i2H1m2ptr + (here->MESgateNode)) -
981 *(job->
i2H1m2ptr + (here->MESsourcePrimeNode));
983 r2h1m2y = *(job->
r2H1m2ptr + (here->MESdrainPrimeNode)) -
984 *(job->
r2H1m2ptr + (here->MESsourcePrimeNode));
985 i2h1m2y = *(job->
i2H1m2ptr + (here->MESdrainPrimeNode))
986 - *(job->
i2H1m2ptr + (here->MESsourcePrimeNode));
991 pass.cxx = here->cdr_x2;
992 pass.cyy = here->cdr_z2;
994 pass.cxy = here->cdr_xz;
997 pass.cxxx = here->cdr_x3;
998 pass.cyyy = here->cdr_z3;
1000 pass.cxxy = here->cdr_x2z;
1002 pass.cxyy = here->cdr_xz2;
1013 pass.r1h2x = r1hm2x;
1014 pass.i1h2x = i1hm2x;
1015 pass.r1h2y = r1hm2y;
1016 pass.i1h2y = i1hm2y;
1019 pass.r2h11x = r2h11x;
1020 pass.i2h11x = i2h11x;
1021 pass.r2h11y = r2h11y;
1022 pass.i2h11y = i2h11y;
1025 pass.h2f1f2x = r2h1m2x;
1026 pass.ih2f1f2x = i2h1m2x;
1027 pass.h2f1f2y = r2h1m2y;
1028 pass.ih2f1f2y = i2h1m2y;
1030 pass.ih2f1f2z = 0.0;
1035 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) -= temp;
1036 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) -= itemp;
1037 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
1038 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
1067 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
1068 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
1069 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
1070 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
1100 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
1101 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
1102 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) += temp;
1103 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) += itemp;
1109 pass.cxx = here->qgs_x2;
1110 pass.cyy = here->qgs_y2;
1112 pass.cxy = here->qgs_xy;
1115 pass.cxxx = here->qgs_x3;
1116 pass.cyyy = here->qgs_y3;
1118 pass.cxxy = here->qgs_x2y;
1120 pass.cxyy = here->qgs_xy2;
1127 pass.r1h1y = r1h1x - r1h1y;
1128 pass.i1h1y = i1h1x - i1h1y;
1131 pass.r1h2x = r1hm2x;
1132 pass.i1h2x = i1hm2x;
1133 pass.r1h2y = r1hm2x - r1hm2y;
1134 pass.i1h2y = i1hm2x - i1hm2y;
1137 pass.r2h11x = r2h11x;
1138 pass.i2h11x = i2h11x;
1139 pass.r2h11y = r2h11x - r2h11y;
1140 pass.i2h11y = i2h11x - i2h11y;
1143 pass.h2f1f2x = r2h1m2x;
1144 pass.ih2f1f2x = i2h1m2x;
1145 pass.h2f1f2y = r2h1m2x - r2h1m2y;
1146 pass.ih2f1f2y = i2h1m2x - i2h1m2y;
1148 pass.ih2f1f2z = 0.0;
1153 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
1154 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
1155 *(ckt->
CKTrhs + (here->MESsourcePrimeNode)) += temp;
1156 *(ckt->
CKTirhs + (here->MESsourcePrimeNode)) += itemp;
1162 pass.cxx = here->qgd_x2;
1163 pass.cyy = here->qgd_y2;
1165 pass.cxy = here->qgd_xy;
1168 pass.cxxx = here->qgd_x3;
1169 pass.cyyy = here->qgd_y3;
1171 pass.cxxy = here->qgd_x2y;
1173 pass.cxyy = here->qgd_xy2;
1180 pass.r1h1y = r1h1x - r1h1y;
1181 pass.i1h1y = i1h1x - i1h1y;
1184 pass.r1h2x = r1hm2x;
1185 pass.i1h2x = i1hm2x;
1186 pass.r1h2y = r1hm2x - r1hm2y;
1187 pass.i1h2y = i1hm2x - i1hm2y;
1190 pass.r2h11x = r2h11x;
1191 pass.i2h11x = i2h11x;
1192 pass.r2h11y = r2h11x - r2h11y;
1193 pass.i2h11y = i2h11x - i2h11y;
1196 pass.h2f1f2x = r2h1m2x;
1197 pass.ih2f1f2x = i2h1m2x;
1198 pass.h2f1f2y = r2h1m2x - r2h1m2y;
1199 pass.ih2f1f2y = i2h1m2x - i2h1m2y;
1201 pass.ih2f1f2z = 0.0;
1206 *(ckt->
CKTrhs + (here->MESgateNode)) -= temp;
1207 *(ckt->
CKTirhs + (here->MESgateNode)) -= itemp;
1208 *(ckt->
CKTrhs + (here->MESdrainPrimeNode)) += temp;
1209 *(ckt->
CKTirhs + (here->MESdrainPrimeNode)) += itemp;
MESinstance * MESinstances
struct sMESmodel * MESnextModel
int MESdSetup(GENmodel *inModel, CKTcircuit *ckt)