41 double r1hm2z, i1hm2z;
44 double r2h11z, i2h11z;
45 double r2h1m2x,i2h1m2x;
46 double r2h1m2y,i2h1m2y;
47 double r2h1m2z, i2h1m2z;
67 here=here->BJTnextInstance) {
74 r1h1x = *(job->
r1H1ptr + (here->BJTbasePrimeNode)) -
75 *(job->
r1H1ptr + (here->BJTemitPrimeNode));
76 i1h1x = *(job->
i1H1ptr + (here->BJTbasePrimeNode)) -
77 *(job->
i1H1ptr + (here->BJTemitPrimeNode));
79 r1h1y = *(job->
r1H1ptr + (here->BJTbasePrimeNode)) -
80 *(job->
r1H1ptr + (here->BJTcolPrimeNode));
81 i1h1y = *(job->
i1H1ptr + (here->BJTbasePrimeNode)) -
82 *(job->
i1H1ptr + (here->BJTcolPrimeNode));
89 r1h1z = r1h1x*
cos(temp) + i1h1x*
sin(temp);
90 i1h1z = i1h1x*
cos(temp) - r1h1x*
sin(temp);
100 r1hm2x = *(job->
r1H2ptr + (here->BJTbasePrimeNode)) -
101 *(job->
r1H2ptr + (here->BJTemitPrimeNode));
102 i1hm2x = -(*(job->
i1H2ptr + (here->BJTbasePrimeNode)) -
103 *(job->
i1H2ptr + (here->BJTemitPrimeNode)));
105 r1hm2y = *(job->
r1H2ptr + (here->BJTbasePrimeNode)) -
106 *(job->
r1H2ptr + (here->BJTcolPrimeNode));
107 i1hm2y = -(*(job->
i1H2ptr + (here->BJTbasePrimeNode)) -
108 *(job->
i1H2ptr + (here->BJTcolPrimeNode)));
113 r1hm2z = r1hm2x*
cos(temp) + i1hm2x*
sin(temp);
114 i1hm2z = i1hm2x*
cos(temp) - r1hm2x*
sin(temp);
124 r2h11x = *(job->
r2H11ptr + (here->BJTbasePrimeNode)) -
125 *(job->
r2H11ptr + (here->BJTemitPrimeNode));
126 i2h11x = *(job->
i2H11ptr + (here->BJTbasePrimeNode)) -
127 *(job->
i2H11ptr + (here->BJTemitPrimeNode));
129 r2h11y = *(job->
r2H11ptr + (here->BJTbasePrimeNode)) -
130 *(job->
r2H11ptr + (here->BJTcolPrimeNode));
131 i2h11y = *(job->
i2H11ptr + (here->BJTbasePrimeNode)) -
132 *(job->
i2H11ptr + (here->BJTcolPrimeNode));
136 r2h11z = r2h11x*
cos(temp) + i2h11x*
sin(temp);
137 i2h11z = i2h11x*
cos(temp) - r2h11x*
sin(temp);
147 r2h1m2x = *(job->
r2H1m2ptr + (here->BJTbasePrimeNode)) -
148 *(job->
r2H1m2ptr + (here->BJTemitPrimeNode));
149 i2h1m2x = *(job->
i2H1m2ptr + (here->BJTbasePrimeNode))
150 - *(job->
i2H1m2ptr + (here->BJTemitPrimeNode));
152 r2h1m2y = *(job->
r2H1m2ptr + (here->BJTbasePrimeNode)) -
153 *(job->
r2H1m2ptr + (here->BJTcolPrimeNode));
154 i2h1m2y = *(job->
i2H1m2ptr + (here->BJTbasePrimeNode))
155 - *(job->
i2H1m2ptr + (here->BJTcolPrimeNode));
160 r2h1m2z = r2h1m2x*
cos(temp)
162 i2h1m2z = i2h1m2x*
cos(temp)
172 r1h2x = *(job->
r1H2ptr + (here->BJTbasePrimeNode)) -
173 *(job->
r1H2ptr + (here->BJTemitPrimeNode));
174 i1h2x = *(job->
i1H2ptr + (here->BJTbasePrimeNode)) -
175 *(job->
i1H2ptr + (here->BJTemitPrimeNode));
177 r1h2y = *(job->
r1H2ptr + (here->BJTbasePrimeNode)) -
178 *(job->
r1H2ptr + (here->BJTcolPrimeNode));
179 i1h2y = *(job->
i1H2ptr + (here->BJTbasePrimeNode)) -
180 *(job->
i1H2ptr + (here->BJTcolPrimeNode));
185 r1h2z = r1h2x*
cos(temp) + i1h2x*
sin(temp);
186 i1h2z = i1h2x*
cos(temp) - r1h2x*
sin(temp);
201 #ifdef D_DBG_SMALLTIMES 204 temp =
DFn2F1( here->ic_x2,
217 itemp =
DFi2F1( here->ic_x2,
229 #ifdef D_DBG_SMALLTIMES 231 printf(
"Time for DFn2F1: %g seconds \n", time);
234 *(ckt->CKTrhs + here->BJTcolPrimeNode) -= temp;
235 *(ckt->CKTirhs + here->BJTcolPrimeNode) -= itemp;
236 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
237 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
242 temp =
DFn2F1( here->ib_x2,
255 itemp =
DFi2F1( here->ib_x2,
268 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
269 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
270 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
271 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
279 r1h1z = *(job->
r1H1ptr + (here->BJTbaseNode)) -
280 *(job->
r1H1ptr + (here->BJTbasePrimeNode));
281 i1h1z = *(job->
i1H1ptr + (here->BJTbaseNode)) -
282 *(job->
i1H1ptr + (here->BJTbasePrimeNode));
284 temp =
DFn2F1( here->ibb_x2,
297 itemp =
DFi2F1( here->ibb_x2,
310 *(ckt->CKTrhs + here->BJTbaseNode) -= temp;
311 *(ckt->CKTirhs + here->BJTbaseNode) -= itemp;
312 *(ckt->CKTrhs + here->BJTbasePrimeNode) += temp;
313 *(ckt->CKTirhs + here->BJTbasePrimeNode) += itemp;
323 temp = - ckt->CKTomega*
337 itemp = ckt->CKTomega*
351 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
352 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
353 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
354 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
360 r1h1z = r1h1z + r1h1y;
361 i1h1z = i1h1z + i1h1y;
362 #ifdef D_DBG_SMALLTIMES 365 temp = - ckt->CKTomega *
369 itemp = ckt->CKTomega *
373 #ifdef D_DBG_SMALLTIMES 375 printf(
"Time for D1n2F1: %g seconds \n", time);
379 *(ckt->CKTrhs + here->BJTbaseNode) -= temp;
380 *(ckt->CKTirhs + here->BJTbaseNode) -= itemp;
381 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
382 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
388 temp = - ckt->CKTomega *
392 itemp = ckt->CKTomega *
398 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
399 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
400 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
401 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
411 r1h1z = *(job->
r1H1ptr + (here->BJTsubstNode)) -
412 *(job->
r1H1ptr + (here->BJTcolPrimeNode));
413 i1h1z = *(job->
i1H1ptr + (here->BJTsubstNode)) -
414 *(job->
i1H1ptr + (here->BJTcolPrimeNode));
416 temp = - ckt->CKTomega *
420 itemp = ckt->CKTomega *
426 *(ckt->CKTrhs + here->BJTsubstNode) -= temp;
427 *(ckt->CKTirhs + here->BJTsubstNode) -= itemp;
428 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
429 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
439 #ifdef D_DBG_SMALLTIMES 442 temp =
DFn3F1( here->ic_x2,
471 itemp =
DFi3F1( here->ic_x2,
499 #ifdef D_DBG_SMALLTIMES 501 printf(
"Time for DFn3F1: %g seconds \n", time);
504 *(ckt->CKTrhs + here->BJTcolPrimeNode) -= temp;
505 *(ckt->CKTirhs + here->BJTcolPrimeNode) -= itemp;
506 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
507 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
512 temp =
DFn3F1( here->ib_x2,
541 itemp =
DFi3F1( here->ib_x2,
570 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
571 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
572 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
573 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
581 r1h1z = *(job->
r1H1ptr + (here->BJTbaseNode)) -
582 *(job->
r1H1ptr + (here->BJTbasePrimeNode));
583 i1h1z = *(job->
i1H1ptr + (here->BJTbaseNode)) -
584 *(job->
i1H1ptr + (here->BJTbasePrimeNode));
586 r2h11z = *(job->
r2H11ptr + (here->BJTbaseNode)) -
587 *(job->
r2H11ptr + (here->BJTbasePrimeNode));
588 i2h11z = *(job->
i2H11ptr + (here->BJTbaseNode)) -
589 *(job->
i2H11ptr + (here->BJTbasePrimeNode));
591 temp =
DFn3F1( here->ibb_x2,
620 itemp =
DFi3F1( here->ibb_x2,
649 *(ckt->CKTrhs + here->BJTbaseNode) -= temp;
650 *(ckt->CKTirhs + here->BJTbaseNode) -= itemp;
651 *(ckt->CKTrhs + here->BJTbasePrimeNode) += temp;
652 *(ckt->CKTirhs + here->BJTbasePrimeNode) += itemp;
662 temp = - ckt->CKTomega*
692 itemp = ckt->CKTomega*
722 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
723 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
724 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
725 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
731 r1h1z = r1h1z + r1h1y;
732 i1h1z = i1h1z + i1h1y;
733 r2h11z = r2h11z + r2h11y;
734 i2h11z = i2h11z + i2h11y;
735 #ifdef D_DBG_SMALLTIMES 738 temp = - ckt->CKTomega *
745 itemp = ckt->CKTomega *
752 #ifdef D_DBG_SMALLTIMES 754 printf(
"Time for D1n3F1: %g seconds \n", time);
758 *(ckt->CKTrhs + here->BJTbaseNode) -= temp;
759 *(ckt->CKTirhs + here->BJTbaseNode) -= itemp;
760 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
761 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
767 temp = - ckt->CKTomega *
774 itemp = ckt->CKTomega *
784 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
785 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
786 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
787 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
797 r1h1z = *(job->
r1H1ptr + (here->BJTsubstNode)) -
798 *(job->
r1H1ptr + (here->BJTcolPrimeNode));
799 i1h1z = *(job->
i1H1ptr + (here->BJTsubstNode)) -
800 *(job->
i1H1ptr + (here->BJTcolPrimeNode));
802 r2h11z = *(job->
r2H11ptr + (here->BJTsubstNode)) -
803 *(job->
r2H11ptr + (here->BJTcolPrimeNode));
804 i2h11z = *(job->
i2H11ptr + (here->BJTsubstNode)) -
805 *(job->
i2H11ptr + (here->BJTcolPrimeNode));
807 temp = - ckt->CKTomega *
815 itemp = ckt->CKTomega *
824 *(ckt->CKTrhs + here->BJTsubstNode) -= temp;
825 *(ckt->CKTirhs + here->BJTsubstNode) -= itemp;
826 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
827 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
836 temp =
DFnF12( here->ic_x2,
855 itemp =
DFiF12( here->ic_x2,
874 *(ckt->CKTrhs + here->BJTcolPrimeNode) -= temp;
875 *(ckt->CKTirhs + here->BJTcolPrimeNode) -= itemp;
876 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
877 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
882 #ifdef D_DBG_SMALLTIMES 885 temp =
DFnF12( here->ib_x2,
904 itemp =
DFiF12( here->ib_x2,
922 #ifdef D_DBG_SMALLTIMES 924 printf(
"Time for DFnF12: %g seconds \n", time);
927 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
928 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
929 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
930 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
938 r1h1z = *(job->
r1H1ptr + (here->BJTbaseNode)) -
939 *(job->
r1H1ptr + (here->BJTbasePrimeNode));
940 i1h1z = *(job->
i1H1ptr + (here->BJTbaseNode)) -
941 *(job->
i1H1ptr + (here->BJTbasePrimeNode));
943 r1h2z = *(job->
r1H2ptr + (here->BJTbaseNode)) -
944 *(job->
r1H2ptr + (here->BJTbasePrimeNode));
945 i1h2z = *(job->
i1H2ptr + (here->BJTbaseNode)) -
946 *(job->
i1H2ptr + (here->BJTbasePrimeNode));
948 temp =
DFnF12( here->ibb_x2,
967 itemp =
DFiF12( here->ibb_x2,
986 *(ckt->CKTrhs + here->BJTbaseNode) -= temp;
987 *(ckt->CKTirhs + here->BJTbaseNode) -= itemp;
988 *(ckt->CKTrhs + here->BJTbasePrimeNode) += temp;
989 *(ckt->CKTirhs + here->BJTbasePrimeNode) += itemp;
999 temp = - ckt->CKTomega*
1019 itemp = ckt->CKTomega*
1039 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
1040 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
1041 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
1042 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
1048 r1h1z = r1h1z + r1h1y;
1049 i1h1z = i1h1z + i1h1y;
1050 r1h2z = r1h2z + r1h2y;
1051 i1h2z = i1h2z + i1h2y;
1052 #ifdef D_DBG_SMALLTIMES 1055 temp = - ckt->CKTomega *
1061 itemp = ckt->CKTomega *
1067 #ifdef D_DBG_SMALLTIMES 1069 printf(
"Time for D1nF12: %g seconds \n", time);
1073 *(ckt->CKTrhs + here->BJTbaseNode) -= temp;
1074 *(ckt->CKTirhs + here->BJTbaseNode) -= itemp;
1075 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
1076 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
1082 temp = - ckt->CKTomega *
1088 itemp = ckt->CKTomega *
1096 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
1097 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
1098 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
1099 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
1109 r1h1z = *(job->
r1H1ptr + (here->BJTsubstNode)) -
1110 *(job->
r1H1ptr + (here->BJTcolPrimeNode));
1111 i1h1z = *(job->
i1H1ptr + (here->BJTsubstNode)) -
1112 *(job->
i1H1ptr + (here->BJTcolPrimeNode));
1113 r1h2z = *(job->
r1H2ptr + (here->BJTsubstNode)) -
1114 *(job->
r1H2ptr + (here->BJTcolPrimeNode));
1115 i1h2z = *(job->
i1H2ptr + (here->BJTsubstNode)) -
1116 *(job->
i1H2ptr + (here->BJTcolPrimeNode));
1118 temp = - ckt->CKTomega *
1124 itemp = ckt->CKTomega *
1132 *(ckt->CKTrhs + here->BJTsubstNode) -= temp;
1133 *(ckt->CKTirhs + here->BJTsubstNode) -= itemp;
1134 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
1135 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
1144 temp =
DFnF12( here->ic_x2,
1163 itemp =
DFiF12( here->ic_x2,
1182 *(ckt->CKTrhs + here->BJTcolPrimeNode) -= temp;
1183 *(ckt->CKTirhs + here->BJTcolPrimeNode) -= itemp;
1184 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
1185 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
1190 temp =
DFnF12( here->ib_x2,
1209 itemp =
DFiF12( here->ib_x2,
1228 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
1229 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
1230 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
1231 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
1239 r1h1z = *(job->
r1H1ptr + (here->BJTbaseNode)) -
1240 *(job->
r1H1ptr + (here->BJTbasePrimeNode));
1241 i1h1z = *(job->
i1H1ptr + (here->BJTbaseNode)) -
1242 *(job->
i1H1ptr + (here->BJTbasePrimeNode));
1244 r1hm2z = *(job->
r1H2ptr + (here->BJTbaseNode)) -
1245 *(job->
r1H2ptr + (here->BJTbasePrimeNode));
1246 i1hm2z = *(job->
i1H2ptr + (here->BJTbaseNode)) -
1247 *(job->
i1H2ptr + (here->BJTbasePrimeNode));
1249 temp =
DFnF12( here->ibb_x2,
1268 itemp =
DFiF12( here->ibb_x2,
1287 *(ckt->CKTrhs + here->BJTbaseNode) -= temp;
1288 *(ckt->CKTirhs + here->BJTbaseNode) -= itemp;
1289 *(ckt->CKTrhs + here->BJTbasePrimeNode) += temp;
1290 *(ckt->CKTirhs + here->BJTbasePrimeNode) += itemp;
1300 temp = - ckt->CKTomega*
1320 itemp = ckt->CKTomega*
1340 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
1341 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
1342 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
1343 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
1349 r1h1z = r1h1z + r1h1y;
1350 i1h1z = i1h1z + i1h1y;
1351 r1hm2z = r1hm2z + r1hm2y;
1352 i1hm2z = i1hm2z + i1hm2y;
1353 temp = - ckt->CKTomega *
1359 itemp = ckt->CKTomega *
1367 *(ckt->CKTrhs + here->BJTbaseNode) -= temp;
1368 *(ckt->CKTirhs + here->BJTbaseNode) -= itemp;
1369 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
1370 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
1376 temp = - ckt->CKTomega *
1382 itemp = ckt->CKTomega *
1390 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
1391 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
1392 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
1393 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
1403 r1h1z = *(job->
r1H1ptr + (here->BJTsubstNode)) -
1404 *(job->
r1H1ptr + (here->BJTcolPrimeNode));
1405 i1h1z = *(job->
i1H1ptr + (here->BJTsubstNode)) -
1406 *(job->
i1H1ptr + (here->BJTcolPrimeNode));
1407 r1hm2z = *(job->
r1H2ptr + (here->BJTsubstNode)) -
1408 *(job->
r1H2ptr + (here->BJTcolPrimeNode));
1409 i1hm2z = *(job->
i1H2ptr + (here->BJTsubstNode)) -
1410 *(job->
i1H2ptr + (here->BJTcolPrimeNode));
1412 temp = - ckt->CKTomega *
1418 itemp = ckt->CKTomega *
1426 *(ckt->CKTrhs + here->BJTsubstNode) -= temp;
1427 *(ckt->CKTirhs + here->BJTsubstNode) -= itemp;
1428 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
1429 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
1439 pass.cxx = here->ic_x2;
1440 pass.cyy = here->ic_y2;
1441 pass.czz = here->ic_w2;
1442 pass.cxy = here->ic_xy;
1443 pass.cyz = here->ic_yw;
1444 pass.cxz = here->ic_xw;
1445 pass.cxxx = here->ic_x3;
1446 pass.cyyy = here->ic_y3;
1447 pass.czzz = here->ic_w3;
1448 pass.cxxy = here->ic_x2y;
1449 pass.cxxz = here->ic_x2w;
1450 pass.cxyy = here->ic_xy2;
1451 pass.cyyz = here->ic_y2w;
1452 pass.cxzz = here->ic_xw2;
1453 pass.cyzz = here->ic_yw2;
1454 pass.cxyz = here->ic_xyw;
1461 pass.r1h2x = r1hm2x;
1462 pass.i1h2x = i1hm2x;
1463 pass.r1h2y = r1hm2y;
1464 pass.i1h2y = i1hm2y;
1465 pass.r1h2z = r1hm2z;
1466 pass.i1h2z = i1hm2z;
1467 pass.r2h11x = r2h11x;
1468 pass.i2h11x = i2h11x;
1469 pass.r2h11y = r2h11y;
1470 pass.i2h11y = i2h11y;
1471 pass.r2h11z = r2h11z;
1472 pass.i2h11z = i2h11z;
1473 pass.h2f1f2x = r2h1m2x;
1474 pass.ih2f1f2x = i2h1m2x;
1475 pass.h2f1f2y = r2h1m2y;
1476 pass.ih2f1f2y = i2h1m2y;
1477 pass.h2f1f2z = r2h1m2z;
1478 pass.ih2f1f2z = i2h1m2z;
1479 #ifdef D_DBG_SMALLTIMES 1486 #ifdef D_DBG_SMALLTIMES 1488 printf(
"Time for DFn2F12: %g seconds \n", time);
1492 *(ckt->CKTrhs + here->BJTcolPrimeNode) -= temp;
1493 *(ckt->CKTirhs + here->BJTcolPrimeNode) -= itemp;
1494 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
1495 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
1501 pass.cxx = here->ib_x2;
1502 pass.cyy = here->ib_y2;
1504 pass.cxy = here->ib_xy;
1507 pass.cxxx = here->ib_x3;
1508 pass.cyyy = here->ib_y3;
1510 pass.cxxy = here->ib_x2y;
1512 pass.cxyy = here->ib_xy2;
1523 pass.r1h2x = r1hm2x;
1524 pass.i1h2x = i1hm2x;
1525 pass.r1h2y = r1hm2y;
1526 pass.i1h2y = i1hm2y;
1529 pass.r2h11x = r2h11x;
1530 pass.i2h11x = i2h11x;
1531 pass.r2h11y = r2h11y;
1532 pass.i2h11y = i2h11y;
1535 pass.h2f1f2x = r2h1m2x;
1536 pass.ih2f1f2x = i2h1m2x;
1537 pass.h2f1f2y = r2h1m2y;
1538 pass.ih2f1f2y = i2h1m2y;
1540 pass.ih2f1f2z = 0.0;
1546 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
1547 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
1548 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
1549 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
1557 r1h1z = *(job->
r1H1ptr + (here->BJTbaseNode)) -
1558 *(job->
r1H1ptr + (here->BJTbasePrimeNode));
1559 i1h1z = *(job->
i1H1ptr + (here->BJTbaseNode)) -
1560 *(job->
i1H1ptr + (here->BJTbasePrimeNode));
1562 r1hm2z = *(job->
r1H2ptr + (here->BJTbaseNode)) -
1563 *(job->
r1H2ptr + (here->BJTbasePrimeNode));
1564 i1hm2z = -(*(job->
i1H2ptr + (here->BJTbaseNode)) -
1565 *(job->
i1H2ptr + (here->BJTbasePrimeNode)));
1567 r2h11z = *(job->
r2H11ptr + (here->BJTbaseNode)) -
1568 *(job->
r2H11ptr + (here->BJTbasePrimeNode));
1569 i2h11z = *(job->
i2H11ptr + (here->BJTbaseNode)) -
1570 *(job->
i2H11ptr + (here->BJTbasePrimeNode));
1572 r2h1m2z = *(job->
r2H1m2ptr + (here->BJTbaseNode)) -
1573 *(job->
r2H1m2ptr + (here->BJTbasePrimeNode));
1574 i2h1m2z = *(job->
i2H1m2ptr + (here->BJTbaseNode)) -
1575 *(job->
i2H1m2ptr + (here->BJTbasePrimeNode));
1578 pass.cxx = here->ibb_x2;
1579 pass.cyy = here->ibb_y2;
1580 pass.czz = here->ibb_z2;
1581 pass.cxy = here->ibb_xy;
1582 pass.cyz = here->ibb_yz;
1583 pass.cxz = here->ibb_xz;
1584 pass.cxxx = here->ibb_x3;
1585 pass.cyyy = here->ibb_y3;
1586 pass.czzz = here->ibb_z3;
1587 pass.cxxy = here->ibb_x2y;
1588 pass.cxxz = here->ibb_x2z;
1589 pass.cxyy = here->ibb_xy2;
1590 pass.cyyz = here->ibb_y2z;
1591 pass.cxzz = here->ibb_xz2;
1592 pass.cyzz = here->ibb_yz2;
1593 pass.cxyz = here->ibb_xyz;
1600 pass.r1h2x = r1hm2x;
1601 pass.i1h2x = i1hm2x;
1602 pass.r1h2y = r1hm2y;
1603 pass.i1h2y = i1hm2y;
1604 pass.r1h2z = r1hm2z;
1605 pass.i1h2z = i1hm2z;
1606 pass.r2h11x = r2h11x;
1607 pass.i2h11x = i2h11x;
1608 pass.r2h11y = r2h11y;
1609 pass.i2h11y = i2h11y;
1610 pass.r2h11z = r2h11z;
1611 pass.i2h11z = i2h11z;
1612 pass.h2f1f2x = r2h1m2x;
1613 pass.ih2f1f2x = i2h1m2x;
1614 pass.h2f1f2y = r2h1m2y;
1615 pass.ih2f1f2y = i2h1m2y;
1616 pass.h2f1f2z = r2h1m2z;
1617 pass.ih2f1f2z = i2h1m2z;
1623 *(ckt->CKTrhs + here->BJTbaseNode) -= temp;
1624 *(ckt->CKTirhs + here->BJTbaseNode) -= itemp;
1625 *(ckt->CKTrhs + here->BJTbasePrimeNode) += temp;
1626 *(ckt->CKTirhs + here->BJTbasePrimeNode) += itemp;
1637 pass.cxx = here->qbe_x2;
1638 pass.cyy = here->qbe_y2;
1640 pass.cxy = here->qbe_xy;
1643 pass.cxxx = here->qbe_x3;
1644 pass.cyyy = here->qbe_y3;
1646 pass.cxxy = here->qbe_x2y;
1648 pass.cxyy = here->qbe_xy2;
1659 pass.r1h2x = r1hm2x;
1660 pass.i1h2x = i1hm2x;
1661 pass.r1h2y = r1hm2y;
1662 pass.i1h2y = i1hm2y;
1665 pass.r2h11x = r2h11x;
1666 pass.i2h11x = i2h11x;
1667 pass.r2h11y = r2h11y;
1668 pass.i2h11y = i2h11y;
1671 pass.h2f1f2x = r2h1m2x;
1672 pass.ih2f1f2x = i2h1m2x;
1673 pass.h2f1f2y = r2h1m2y;
1674 pass.ih2f1f2y = i2h1m2y;
1676 pass.ih2f1f2z = 0.0;
1677 temp = - ckt->CKTomega*
1680 itemp = ckt->CKTomega*
1684 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
1685 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
1686 *(ckt->CKTrhs + here->BJTemitPrimeNode) += temp;
1687 *(ckt->CKTirhs + here->BJTemitPrimeNode) += itemp;
1693 r1h1z = r1h1z + r1h1y;
1694 i1h1z = i1h1z + i1h1y;
1695 r1hm2z = r1hm2z + r1hm2y;
1696 i1hm2z = i1hm2z + i1hm2y;
1697 r2h11z = r2h11z + r2h11y;
1698 i2h11z = i2h11z + i2h11y;
1699 r2h1m2z = r2h1m2z + r2h1m2y;
1700 i2h1m2z = i2h1m2z + i2h1m2y;
1701 #ifdef D_DBG_SMALLTIMES 1704 temp = - ckt->CKTomega *
1715 itemp = ckt->CKTomega *
1726 #ifdef D_DBG_SMALLTIMES 1728 printf(
"Time for D1n2F12: %g seconds \n", time);
1732 *(ckt->CKTrhs + here->BJTbaseNode) -= temp;
1733 *(ckt->CKTirhs + here->BJTbaseNode) -= itemp;
1734 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
1735 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
1741 temp = - ckt->CKTomega *
1752 itemp = ckt->CKTomega *
1767 *(ckt->CKTrhs + here->BJTbasePrimeNode) -= temp;
1768 *(ckt->CKTirhs + here->BJTbasePrimeNode) -= itemp;
1769 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
1770 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
1780 r1h1z = *(job->
r1H1ptr + (here->BJTsubstNode)) -
1781 *(job->
r1H1ptr + (here->BJTcolPrimeNode));
1782 i1h1z = *(job->
i1H1ptr + (here->BJTsubstNode)) -
1783 *(job->
i1H1ptr + (here->BJTcolPrimeNode));
1785 r1hm2z = *(job->
r1H2ptr + (here->BJTsubstNode)) -
1786 *(job->
r1H2ptr + (here->BJTcolPrimeNode));
1787 i1hm2z = -(*(job->
i1H2ptr + (here->BJTsubstNode)) -
1788 *(job->
i1H2ptr + (here->BJTcolPrimeNode)));
1790 r2h11z = *(job->
r2H11ptr + (here->BJTsubstNode)) -
1791 *(job->
r2H11ptr + (here->BJTcolPrimeNode));
1792 i2h11z = *(job->
i2H11ptr + (here->BJTsubstNode)) -
1793 *(job->
i2H11ptr + (here->BJTcolPrimeNode));
1795 r2h1m2z = *(job->
r2H1m2ptr + (here->BJTsubstNode)) -
1796 *(job->
r2H1m2ptr + (here->BJTcolPrimeNode));
1797 i2h1m2z = *(job->
i2H1m2ptr + (here->BJTsubstNode)) -
1798 *(job->
i2H1m2ptr + (here->BJTcolPrimeNode));
1800 temp = - ckt->CKTomega *
1812 itemp = ckt->CKTomega *
1825 *(ckt->CKTrhs + here->BJTsubstNode) -= temp;
1826 *(ckt->CKTirhs + here->BJTsubstNode) -= itemp;
1827 *(ckt->CKTrhs + here->BJTcolPrimeNode) += temp;
1828 *(ckt->CKTirhs + here->BJTcolPrimeNode) += itemp;
int BJTdSetup(GENmodel *inModel, CKTcircuit *ckt)
BJTinstance * BJTinstances
int BJTdisto(int mode, GENmodel *genmodel, CKTcircuit *ckt)
struct sBJTmodel * BJTnextModel
double BJTexcessPhaseFactor