-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbsimcmg.py
2506 lines (2339 loc) · 127 KB
/
bsimcmg.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import re
from math import *
class BSIMCMG:
"""
A BSIM-CMG version 110.0.0 model in Python. Model package can be downloaded at
http://bsim.berkeley.edu/BSIMCMG/BSIMCMG110.0.0_20160101.tar.gz
"""
def __repr__(self):
return f'BSIMCMG()'
def __init__(self, **kwargs):
self.given = kwargs # parameters from modelcard
# Instance parameters in Python (P001-P006, 6)
self.vd = self.given.get('vd', 1.0) # P001
self.vg = self.given.get('vg', 1.0) # P002
self.vs = self.given.get('vs', 0.0) # P003
self.vb = self.given.get('vb', 0.0) # P004
self.temp = self.given.get('temp', 27.0) # P005
self.vdd = self.given.get('vdd', 1.0) # P006
# Instance parameters (I001-I024, 24)
self.L = self.given.get('L', 3.0e-8) # I001
self.D = self.given.get('D', 4.0e-8) # I002
self.TFIN = self.given.get('TFIN', 1.5e-8) # I003
self.FPITCH = self.given.get('FPITCH', 8.0e-8) # I004
self.NF = self.given.get('NF', 1) # I005
self.NFIN = self.given.get('NFIN', 1.0) # I006
self.NGCON = self.given.get('NGCON', 1) # I007
self.ASEO = self.given.get('ASEO', 0.0) # I008
self.ADEO = self.given.get('ADEO', 0.0) # I009
self.PSEO = self.given.get('PSEO', 0.0) # I010
self.PDEO = self.given.get('PDEO', 0.0) # I011
self.ASEJ = self.given.get('ASEJ', 0.0) # I012
self.ADEJ = self.given.get('ADEJ', 0.0) # I013
self.PSEJ = self.given.get('PSEJ', 0.0) # I014
self.PDEJ = self.given.get('PDEJ', 0.0) # I015
self.NRS = self.given.get('NRS', 0.0) # I021
self.NRD = self.given.get('NRD', 0.0) # I022
self.LRSD = self.given.get('LRSD', self.L) # I023
self.NFINNOM = self.given.get('NFINNOM', 1.0) # I024
# Model parameters (1027)
self.XL = self.given.get('XL', 0.0) # M001
self.DTEMP = self.given.get('DTEMP', 0.0) # M002
self.DELVTRAND = self.given.get('DELVTRAND', 0.0) # M003
self.U0MULT = self.given.get('U0MULT', 1.0) # M004
self.IDS0MULT = self.given.get('IDS0MULT', 1.0) # M005
self.TYPE = self.given.get('TYPE', 1) # M007
self.BULKMOD = self.given.get('BULKMOD', 0) # M008
self.GEOMOD = self.given.get('GEOMOD', 0) # M009
self.RDSMOD = self.given.get('RDSMOD', 0) # M011
self.ASYMMOD = self.given.get('ASYMMOD', 0) # M012
self.IGCMOD = self.given.get('IGCMOD', 0) # M013
self.IGBMOD = self.given.get('IGBMOD', 0) # M014
self.GIDLMOD = self.given.get('GIDLMOD', 0) # M015
self.IIMOD = self.given.get('IIMOD', 0) # M016
self.TEMPMOD = self.given.get('TEMPMOD', 0) # M020
self.RGATEMOD = self.given.get('RGATEMOD', 0) # M021
self.RGEOMOD = self.given.get('RGEOMOD', 0) # M022
self.IGCLAMP = self.given.get('IGCLAMP', 1) # M025
self.LINT = self.given.get('LINT', 0.0) # M026
self.LL = self.given.get('LL', 0.0) # M027
self.LLN = self.given.get('LLN', 1.0) # M028
self.DLC = self.given.get('DLC', 0.0) # M029
self.DLBIN = self.given.get('DLBIN', 0.0) # M031
self.LLC = self.given.get('LLC', 0.0) # M032
self.EOT = self.given.get('EOT', 1.0e-9) # M033
self.TOXP = self.given.get('TOXP', 1.2e-9) # M034
self.EOTBOX = self.given.get('EOTBOX', 1.4e-7) # M035
self.HFIN = self.given.get('HFIN', 3.0e-8) # M036
self.FECH = self.given.get('FECH', 1.0) # M037
self.DELTAW = self.given.get('DELTAW', 0.0) # M038
self.NBODY = self.given.get('NBODY', 1e22) # M041
self.NBODYN1 = self.given.get('NBODYN1', 0.0) # M042
self.NBODYN2 = self.given.get('NBODYN2', 1.0e5) # M043
self.NSD = self.given.get('NSD', 2.0e26) # M044
self.PHIG = self.given.get('PHIG', 4.61) # M045
self.PHIGL = self.given.get('PHIGL', 0.0) # M046
self.PHIGLT = self.given.get('PHIGLT', 0.0) # M047
self.PHIGN1 = self.given.get('PHIGN1', 0.0) # M048
self.PHIGN2 = self.given.get('PHIGN2', 1.0e5) # M049
self.EPSROX = self.given.get('EPSROX', 3.9) # M050
self.EPSRSUB = self.given.get('EPSRSUB', 11.9) # M051
self.EASUB = self.given.get('EASUB', 4.05) # M052
self.NI0SUB = self.given.get('NI0SUB', 1.1e16) # M053
self.BG0SUB = self.given.get('BG0SUB', 1.12) # M054
self.NC0SUB = self.given.get('NC0SUB', 2.86e25) # M055
self.NGATE = self.given.get('NGATE', 0) # M056
self.IMIN = self.given.get('IMIN', 1.0e-15) # M057
# Short channel effects (M058-M095, 38)
self.CIT = self.given.get('CIT', 0.0) # M058
self.CITR = self.given.get('CITR', self.CIT) # M059
self.CDSC = self.given.get('CDSC', 7.0e-3) # M060
self.CDSCN1 = self.given.get('CDSCN1', 0.0) # M061
self.CDSCN2 = self.given.get('CDSCN2', 1.0e5) # M062
self.CDSCD = self.given.get('CDSCD', 7.0e-3) # M063
self.CDSCDN1 = self.given.get('CDSCDN1', 0.0) # M064
self.CDSCDN2 = self.given.get('CDSCDN2', 1.0e5) # M065
self.CDSCDR = self.given.get('CDSCDR', self.CDSCD) # M066
self.CDSCDRN1 = self.given.get('CDSCDRN1', self.CDSCDN1) # M067
self.CDSCDRN2 = self.given.get('CDSCDRN2', self.CDSCDN2) # M068
self.DVT0 = self.given.get('DVT0', 0) # M069
self.DVT1 = self.given.get('DVT1', 0.6) # M070
self.DVT1SS = self.given.get('DVT1SS', self.DVT1) # M071
self.PHIN = self.given.get('PHIN', 0.05) # M072
self.ETA0 = self.given.get('ETA0', 0.6) # M073
self.ETA0N1 = self.given.get('ETA0N1', 0.0) # M074
self.ETA0N2 = self.given.get('ETA0N2', 1.0e5) # M075
self.ETA0LT = self.given.get('ETA0LT', 0.0) # M076
self.TETA0 = self.given.get('TETA0', 0.0) # M077
self.ETA0R = self.given.get('ETA0R', self.ETA0) # M078
self.TETA0R = self.given.get('TETA0R', self.TETA0) # M079
self.DSUB = self.given.get('DSUB', 1.06) # M080
self.DVTP0 = self.given.get('DVTP0', 0.0) # M081
self.DVTP1 = self.given.get('DVTP1', 0.0) # M082
self.ADVTP0 = self.given.get('ADVTP0', 0.0) # M083
self.BDVTP0 = self.given.get('BDVTP0', 1.0e-7) # M084
self.ADVTP1 = self.given.get('ADVTP1', 0) # M085
self.BDVTP1 = self.given.get('BDVTP1', 1.0e-7) # M086
self.DVTP2 = self.given.get('DVTP2', 0.0) # M087
self.K1RSCE = self.given.get('K1RSCE', 0.0) # M088
self.LPE0 = self.given.get('LPE0', 5.0e-9) # M089
self.DVTSHIFT = self.given.get('DVTSHIFT', 0.0) # M090
self.DVTSHIFTR = self.given.get('DVTSHIFTR', self.DVTSHIFT) # M091
self.THETASCE = self.given.get('THETASCE', 0.0) # M092
self.THETADIBL = self.given.get('THETADIBL', 0.0) # M093
self.THETASW = self.given.get('THETASW', 0.0) # M094
self.NVTM = self.given.get('NVTM', 0.0) # M095
# Lateral non-uniform doping effect (IV-CV Vth shift) (M096-M105, 10)
self.K0 = self.given.get('K0', 0.0) # M096
self.K01 = self.given.get('K01', 0.0) # M097
self.K0SI = self.given.get('K0SI', 1.0) # M098
self.K0SI1 = self.given.get('K0SI1', 0.0) # M099
self.K2SI = self.given.get('K2SI', self.K0SI) # M100
self.K2SI1 = self.given.get('K2SI1', self.K0SI1) # M101
self.K0SISAT = self.given.get('K0SISAT', 0.0) # M102
self.K0SISAT1 = self.given.get('K0SISAT1', 0.0) # M103
self.K2SISAT = self.given.get('K2SISAT', self.K0SISAT) # M104
self.K2SISAT1 = self.given.get('K2SISAT1', self.K0SISAT1) # M105
# Body effect for MG devices on bulk substrate (ex: FinFETs on BULK) (M106-M112, 7)
self.PHIBE = self.given.get('PHIBE', 0.7) # M106
self.K1 = self.given.get('K1', 1.0e-6) # M107
self.K11 = self.given.get('K11', 0.0) # M108
self.K2SAT = self.given.get('K2SAT', 0.0) # M109
self.K2SAT1 = self.given.get('K2SAT1', 0.0) # M110
self.K2 = self.given.get('K2', 0.0) # M111
self.K21 = self.given.get('K21', 0.0) # M112
# Quantum mechanical effects (M113-M122, 10)
self.QMFACTOR = self.given.get('QMFACTOR', 0.0) # M113
self.QMTCENCV = self.given.get('QMTCENCV', 0.0) # M114
self.QMTCENCVA = self.given.get('QMTCENCVA', 0.0) # M115
self.AQMTCEN = self.given.get('AQMTCEN', 0.0) # M116
self.BQMTCEN = self.given.get('BQMTCEN', 1.2e-8) # M117
self.ETAQM = self.given.get('ETAQM', 0.54) # M118
self.QM0 = self.given.get('QM0', 1.0e-3) # M119
self.PQM = self.given.get('PQM', 0.66) # M120
self.QM0ACC = self.given.get('QM0ACC', 1.0e-3) # M121
self.PQMACC = self.given.get('PQMACC', 0.66) # M122
# Velocity saturation model (M123-M167, 45)
self.VSAT = self.given.get('VSAT', 8.5e4) # M123
self.VSATR = self.given.get('VSATR', self.VSAT) # M124
self.VSATN1 = self.given.get('VSATN1', 0.0) # M125
self.VSATN2 = self.given.get('VSATN2', 1.0e5) # M126
self.VSATRN1 = self.given.get('VSATRN1', self.VSATN1) # M127
self.VSATRN2 = self.given.get('VSATRN2', self.VSATN2) # M128
self.AVSAT = self.given.get('AVSAT', 0.0) # M129
self.BVSAT = self.given.get('BVSAT', 1.0e-7) # M130
self.VSAT1 = self.given.get('VSAT1', self.VSAT) # M131
self.VSAT1N1 = self.given.get('VSAT1N1', self.VSATN1) # M132
self.VSAT1N2 = self.given.get('VSAT1N2', self.VSATN2) # M133
self.VSAT1R = self.given.get('VSAT1R', self.VSAT1) # M134
self.VSAT1RN1 = self.given.get('VSAT1RN1', self.VSAT1N1) # M135
self.VSAT1RN2 = self.given.get('VSAT1RN2', self.VSAT1N2) # M136
self.AVSAT1 = self.given.get('AVSAT1', self.AVSAT) # M137
self.BVSAT1 = self.given.get('BVSAT1', self.BVSAT) # M138
self.DELTAVSAT = self.given.get('DELTAVSAT', 1.0) # M139
self.PSAT = self.given.get('PSAT', 2.0) # M140
self.APSAT = self.given.get('APSAT', 0.0) # M141
self.BPSAT = self.given.get('BPSAT', 1.0) # M142
self.KSATIV = self.given.get('KSATIV', 1.0) # M143
self.KSATIVR = self.given.get('KSATIVR', self.KSATIV) # M144
self.MEXP = self.given.get('MEXP', 4.0) # M152
self.AMEXP = self.given.get('AMEXP', 0.0) # M153
self.BMEXP = self.given.get('BMEXP', 1.0) # M154
self.MEXPR = self.given.get('MEXPR', self.MEXP) # M155
self.AMEXPR = self.given.get('AMEXPR', self.AMEXP) # M156
self.BMEXPR = self.given.get('BMEXPR', self.BMEXP) # M157
self.PTWG = self.given.get('PTWG', 0.0) # M158
self.PTWGR = self.given.get('PTWGR', self.PTWG) # M159
self.APTWG = self.given.get('APTWG', 0.0) # M160
self.BPTWG = self.given.get('BPTWG', 1.0e-7) # M161
self.AT = self.given.get('AT', -1.56e-3) # M162
self.ATR = self.given.get('ATR', self.AT) # M163
self.ATCV = self.given.get('ATCV', self.AT) # M164
self.TMEXP = self.given.get('TMEXP', 0.0) # M165
self.TMEXPR = self.given.get('TMEXPR', self.TMEXP) # M166
self.PTWGT = self.given.get('PTWGT', 4.0e-3) # M167
# Mobility model (M168-M213, 46)
self.U0 = self.given.get('U0', 3.0e-2) # M168
self.U0R = self.given.get('U0R', self.U0) # M169
self.U0N1 = self.given.get('U0N1', 0.0) # M170
self.U0N1R = self.given.get('U0N1R', self.U0N1) # M171
self.U0N2 = self.given.get('U0N2', 1.0e5) # M172
self.U0N2R = self.given.get('U0N2R', self.U0N2) # M173
self.U0LT = self.given.get('U0LT', 0.0) # M174
self.ETAMOB = self.given.get('ETAMOB', 2.0) # M175
self.UP = self.given.get('UP', 0.0) # M176
self.LPA = self.given.get('LPA', 1.0) # M177
self.UPR = self.given.get('UPR', self.UP) # M178
self.LPAR = self.given.get('LPAR', self.LPA) # M179
self.UA = self.given.get('UA', 0.3) # M180
self.UAR = self.given.get('UAR', self.UA) # M181
self.AUA = self.given.get('AUA', 0.0) # M182
self.AUAR = self.given.get('AUAR', self.AUA) # M183
self.BUA = self.given.get('BUA', 1.0e-7) # M184
self.BUAR = self.given.get('BUAR', self.BUA) # M185
self.UC = self.given.get('UC', 0.0) # M186
self.UCR = self.given.get('UCR', self.UC) # M187
self.EU = self.given.get('EU', 2.5) # M188
self.EUR = self.given.get('EUR', self.EU) # M189
self.AEU = self.given.get('AEU', 0.0) # M190
self.AEUR = self.given.get('AEUR', self.AEU) # M191
self.BEU = self.given.get('BEU', 1.0e-7) # M192
self.BEUR = self.given.get('BEUR', self.BEU) # M193
self.UD = self.given.get('UD', 0.0) # M194
self.UDR = self.given.get('UDR', self.UD) # M195
self.AUD = self.given.get('AUD', 0.0) # M196
self.AUDR = self.given.get('AUDR', self.AUD) # M197
self.BUD = self.given.get('BUD', 5.0e-8) # M198
self.BUDR = self.given.get('BUDR', self.BUD) # M199
self.UCS = self.given.get('UCS', 1.0) # M200
self.UTE = self.given.get('UTE', 0.0) # M201
self.UTER = self.given.get('UTER', self.UTE) # M202
self.UTL = self.given.get('UTL', -1.5e-3) # M203
self.UTLR = self.given.get('UTLR', self.UTL) # M204
self.EMOBT = self.given.get('EMOBT', 0.0) # M205
self.UA1 = self.given.get('UA1', 1.032e-3) # M206
self.UA1R = self.given.get('UA1R', self.UA1) # M207
self.UC1 = self.given.get('UC1', 5.6e-11) # M208
self.UC1R = self.given.get('UC1R', self.UC1) # M209
self.UD1 = self.given.get('UD1', 0.0) # M210
self.UD1R = self.given.get('UD1R', self.UD1) # M211
self.UCSTE = self.given.get('UCSTE', -4.775e-3) # M212
self.CHARGEWF = self.given.get('CHARGEWF', 0.0) # M213
# Access resistance model (M214-M237, 24)
self.RDSWMIN = self.given.get('RDSWMIN', 0.0) # M214
self.RDSW = self.given.get('RDSW', 1.0e2) # M215
self.ARDSW = self.given.get('ARDSW', 0.0) # M216
self.BRDSW = self.given.get('BRDSW', 1.0e-7) # M217
self.RSWMIN = self.given.get('RSWMIN', 0.0) # M218
self.RSW = self.given.get('RSW', 5.0e1) # M219
self.ARSW = self.given.get('ARSW', 0.0) # M220
self.BRSW = self.given.get('BRSW', 1.0e-7) # M221
self.RDWMIN = self.given.get('RDWMIN', 0.0) # M222
self.RDW = self.given.get('RDW', 5.0e1) # M223
self.ARDW = self.given.get('ARDW', 0.0) # M224
self.BRDW = self.given.get('BRDW', 1.0e-7) # M225
self.RSDR = self.given.get('RSDR', 0.0) # M226
self.RSDRR = self.given.get('RSDRR', self.RSDR) # M227
self.RDDR = self.given.get('RDDR', self.RSDR) # M228
self.RDDRR = self.given.get('RDDRR', self.RDDR) # M229
self.PRSDR = self.given.get('PRSDR', 1.0) # M230
self.PRDDR = self.given.get('PRDDR', self.PRSDR) # M231
self.PRWGS = self.given.get('PRWGS', 0.0) # M232
self.PRWGD = self.given.get('PRWGD', self.PRWGS) # M233
self.WR = self.given.get('WR', 1.0) # M234
self.PRT = self.given.get('PRT', 1.0e-3) # M235
self.TRSDR = self.given.get('TRSDR', 0.0) # M236
self.TRDDR = self.given.get('TRDDR', self.TRSDR) # M237
# DIBL model (M238-M243, 6)
self.PDIBL1 = self.given.get('PDIBL1', 1.3) # M238
self.PDIBL1R = self.given.get('PDIBL1R', self.PDIBL1) # M239
self.PDIBL2 = self.given.get('PDIBL2', 2.0e-4) # M240
self.PDIBL2R = self.given.get('PDIBL2R', self.PDIBL2) # M241
self.DROUT = self.given.get('DROUT', 1.06) # M242
self.PVAG = self.given.get('PVAG', 1.0) # M243
# Channel length modulation effect (M244-M251, 8)
self.PCLM = self.given.get('PCLM', 1.3e-2) # M244
self.PCLMR = self.given.get('PCLMR', self.PCLM) # M245
self.APCLM = self.given.get('APCLM', 0.0) # M246
self.APCLMR = self.given.get('APCLMR', self.APCLM) # M247
self.BPCLM = self.given.get('BPCLM', 1.0e-7) # M248
self.BPCLMR = self.given.get('BPCLMR', self.BPCLM) # M249
self.PCLMG = self.given.get('PCLMG', 0.0) # M250
# Non-saturation effect (M252-M255, 4)
self.A1 = self.given.get('A1', 0.0) # M252
self.A11 = self.given.get('A11', 0.0) # M253
self.A2 = self.given.get('A2', 0.0) # M254
self.A21 = self.given.get('A21', 0.0) # M255
# Gate electrode resistance (M256-M257, 2)
self.RGEXT = self.given.get('RGEXT', 0.0) # M256
self.RGFIN = self.given.get('RGFIN', 1.0e-3) # M257
# Geometry dependent source/drain resistance of RGEOMOD = 0 (M258-M259, 2)
self.RSHS = self.given.get('RSHS', 0.0) # M258
self.RSHD = self.given.get('RSHD', self.RSHS) # M259
# Geometry dependent source/drain resistance of RGEOMOD = 1 for variability modeling
# These parameters are shared with CGEOMOD = 2 (M260-M284, 25)
self.HEPI = self.given.get('HEPI', 1.0e-8) # M260
self.TSILI = self.given.get('TSILI', 1.0e-8) # M261
self.RHOC = self.given.get('RHOC', 1.0e-12) # M262
self.RHORSD = self.given.get('RHORSD', 1.0) # M263
self.CRATIO = self.given.get('CRATIO', 0.5) # M264
self.DELTAPRSD = self.given.get('DELTAPRSD', 0.0) # M265
self.SDTERM = self.given.get('SDTERM', 0) # M266
self.LSP = self.given.get('LSP', 0.2 * (self.L + self.XL)) # M267
self.EPSRSP = self.given.get('EPSRSP', 3.9) # M268
self.TGATE = self.given.get('TGATE', 3.0e-8) # M269
self.TMASK = self.given.get('TMASK', 3.0e-8) # M270
self.ASILIEND = self.given.get('ASILIEND', 0.0) # M271
self.ARSDEND = self.given.get('ARSDEND', 0.0) # M272
self.PRSDEND = self.given.get('PRSDEND', 0.0) # M273
self.NSDE = self.given.get('NSDE', 2.0e25) # M274
self.RGEOA = self.given.get('RGEOA', 1.0) # M275
self.RGEOB = self.given.get('RGEOB', 0.0) # M276
self.RGEOC = self.given.get('RGEOC', 0.0) # M277
self.RGEOD = self.given.get('RGEOD', 0.0) # M278
self.RGEOE = self.given.get('RGEOE', 0.0) # M279
self.CGEOA = self.given.get('CGEOA', 1.0) # M280
self.CGEOB = self.given.get('CGEOB', 0.0) # M281
self.CGEOC = self.given.get('CGEOC', 0.0) # M282
self.CGEOD = self.given.get('CGEOD', 0.0) # M283
self.CGEOE = self.given.get('CGEOE', 1.0) # M284
# Gate current (M285-M316, 32)
self.AIGBINV = self.given.get('AIGBINV', 1.11e-2) # M285
self.AIGBINV1 = self.given.get('AIGBINV1', 0.0) # M286
self.BIGBINV = self.given.get('BIGBINV', 9.49e-4) # M287
self.CIGBINV = self.given.get('CIGBINV', 6.0e-3) # M288
self.EIGBINV = self.given.get('EIGBINV', 1.1) # M289
self.NIGBINV = self.given.get('NIGBINV', 3.0) # M290
self.AIGBACC = self.given.get('AIGBACC', 1.36e-2) # M291
self.AIGBACC1 = self.given.get('AIGBACC1', 0.0) # M292
self.BIGBACC = self.given.get('BIGBACC', 1.71e-3) # M293
self.CIGBACC = self.given.get('CIGBACC', 7.5e-2) # M294
self.NIGBACC = self.given.get('NIGBACC', 1.0) # M295
self.AIGC = self.given.get('AIGC', 1.36e-2) # M296
self.AIGC1 = self.given.get('AIGC1', 0.0) # M297
self.BIGC = self.given.get('BIGC', 1.71e-3) # M298
self.CIGC = self.given.get('CIGC', 7.5e-2) # M299
self.PIGCD = self.given.get('PIGCD', 1.0) # M300
self.DLCIGS = self.given.get('DLCIGS', 0.0) # M301
self.AIGS = self.given.get('AIGS', 1.36e-2) # M302
self.AIGS1 = self.given.get('AIGS1', 0.0) # M303
self.BIGS = self.given.get('BIGS', 1.71e-3) # M304
self.CIGS = self.given.get('CIGS', 7.5e-2) # M305
self.DLCIGD = self.given.get('DLCIGD', self.DLCIGS) # M306
self.AIGD = self.given.get('AIGS', self.AIGS) # M307
self.AIGD1 = self.given.get('AIGS1', self.AIGS1) # M308
self.BIGD = self.given.get('BIGS', self.BIGS) # M309
self.CIGD = self.given.get('CIGS', self.CIGS) # M310
self.VFBSD = self.given.get('VFBSD', 0.0) # M311
self.VFBSDCV = self.given.get('VFBSDCV', self.VFBSD) # M312
self.TOXREF = self.given.get('TOXREF', 1.2e-9) # M313
self.TOXG = self.given.get('TOXG', self.TOXP) # M314
self.NTOX = self.given.get('NTOX', 1.0) # M315
self.POXEDGE = self.given.get('POXEDGE', 1.0) # M316
# GIDL/GISL current (M317-M326, 10)
self.AGISL = self.given.get('AGISL', 6.055e-12) # M317
self.BGISL = self.given.get('BGISL', 3.0e8) # M318
self.CGISL = self.given.get('CGISL', 0.5) # M319
self.EGISL = self.given.get('EGISL', 0.2) # M320
self.PGISL = self.given.get('PGISL', 1.0) # M321
self.AGIDL = self.given.get('AGIDL', self.AGISL) # M322
self.BGIDL = self.given.get('BGIDL', self.BGISL) # M323
self.CGIDL = self.given.get('CGIDL', self.CGISL) # M324
self.EGIDL = self.given.get('EGIDL', self.EGISL) # M325
self.PGIDL = self.given.get('PGIDL', self.PGISL) # M326
# Impact ionization current (21)
# IIMOD = 1 (M327-M331, 5)
self.ALPHA0 = self.given.get('ALPHA0', 0.0) # M327
self.ALPHA01 = self.given.get('ALPHA01', 0.0) # M328
self.ALPHA1 = self.given.get('ALPHA1', 0.0) # M329
self.ALPHA11 = self.given.get('ALPHA11', 0.0) # M330
self.BETA0 = self.given.get('BETA0', 0.0) # M331
# IIMOD = 2 (M332-M347, 16)
self.ALPHAII0 = self.given.get('ALPHAII0', 0.0) # M332
self.ALPHAII01 = self.given.get('ALPHAII01', 0.0) # M333
self.ALPHAII1 = self.given.get('ALPHAII1', 0.0) # M334
self.ALPHAII11 = self.given.get('ALPHAII11', 0.0) # M335
self.BETAII0 = self.given.get('BETAII0', 0.0) # M336
self.BETAII1 = self.given.get('BETAII1', 0.0) # M337
self.BETAII2 = self.given.get('BETAII2', 0.1) # M338
self.ESATII = self.given.get('ESATII', 1.0e7) # M339
self.LII = self.given.get('LII', 0.5e-9) # M340
self.SII0 = self.given.get('SII0', 0.5) # M341
self.SII1 = self.given.get('SII1', 0.1) # M342
self.SII2 = self.given.get('SII2', 0.0) # M343
self.SIID = self.given.get('SIID', 0.0) # M344
self.IIMOD2CLAMP1 = self.given.get('IIMOD2CLAMP1', 0.1) # M345
self.IIMOD2CLAMP2 = self.given.get('IIMOD2CLAMP2', 0.1) # M346
self.IIMOD2CLAMP3 = self.given.get('IIMOD2CLAMP3', 0.1) # M347
# Accumulation capacitance (M348-M349, 2)
self.EOTACC = self.given.get('EOTACC', self.EOT) # M348
self.DELVFBACC = self.given.get('DELVFBACC', 0.0) # M349
# Junction current (M393-M408, 16)
self.JSS = self.given.get('JSS', 1.0e-4) # M393
self.JSD = self.given.get('JSD', self.JSS) # M394
self.JSWS = self.given.get('JSWS', 0.0) # M395
self.JSWD = self.given.get('JSWD', self.JSWS) # M396
self.JSWGS = self.given.get('JSWGS', 0.0) # M397
self.JSWGD = self.given.get('JSWGD', self.JSWGS) # M398
self.NJS = self.given.get('NJS', 1.0) # M399
self.NJD = self.given.get('NJD', self.NJS) # M400
self.IJTHSFWD = self.given.get('IJTHSFWD', 0.1) # M401
self.IJTHDFWD = self.given.get('IJTHDFWD', self.IJTHSFWD) # M402
self.IJTHSREV = self.given.get('IJTHSREV', 0.1) # M403
self.IJTHDREV = self.given.get('IJTHDREV', self.IJTHSREV) # M404
self.BVS = self.given.get('BVS', 1.0e1) # M405
self.BVD = self.given.get('BVD', self.BVS) # M406
self.XJBVS = self.given.get('XJBVS', 1.0) # M407
self.XJBVD = self.given.get('XJBVD', self.XJBVS) # M408
# Tunneling component of junction current (M409-M427, 19)
self.JTSS = self.given.get('JTSS', 0.0) # M409
self.JTSD = self.given.get('JTSD', self.JTSS) # M410
self.JTSSWS = self.given.get('JTSSWS', 0.0) # M411
self.JTSSWD = self.given.get('JTSSWD', self.JTSSWS) # M412
self.JTSSWGS = self.given.get('JTSSWGS', 0.0) # M413
self.JTSSWGD = self.given.get('JTSSWGD', self.JTSSWGS) # M414
self.JTWEFF = self.given.get('JTWEFF', 0.0) # M415
self.NJTS = self.given.get('NJTS', 2.0e1) # M416
self.NJTSD = self.given.get('NJTSD', self.NJTS) # M417
self.NJTSSW = self.given.get('NJTSSW', 2.0e1) # M418
self.NJTSSWD = self.given.get('NJTSSWD', self.NJTSSW) # M419
self.NJTSSWG = self.given.get('NJTSSWG', 2.0e1) # M420
self.NJTSSWGD = self.given.get('NJTSSWGD', self.NJTSSWG) # M421
self.VTSS = self.given.get('VTSS', 1.0e1) # M422
self.VTSD = self.given.get('VTSD', self.VTSS) # M423
self.VTSSWS = self.given.get('VTSSWS', 1.0e1) # M424
self.VTSSWD = self.given.get('VTSSWD', self.VTSSWS) # M425
self.VTSSWGS = self.given.get('VTSSWGS', 1.0e1) # M426
self.VTSSWGD = self.given.get('VTSSWGD', self.VTSSWGS) # M427
# Recombination-generation current (M428-M431, 4)
self.LINTIGEN = self.given.get('LINTIGEN', 0.0) # M428
self.NTGEN = self.given.get('NTGEN', 1.0) # M429
self.AIGEN = self.given.get('AIGEN', 0.0) # M430
self.BIGEN = self.given.get('BIGEN', 0.0) # M431
# Temperature effects (M449-M478, 30)
self.TNOM = self.given.get('TNOM', 27.0) # M449
self.TBGASUB = self.given.get('TBGASUB', 7.02e-4) # M450
self.TBGBSUB = self.given.get('TBGBSUB', 1.108e3) # M451
self.KT1 = self.given.get('KT1', 0.0) # M452
self.KT1L = self.given.get('KT1L', 0.0) # M453
self.TSS = self.given.get('TSS', 0.0) # M454
self.IIT = self.given.get('IIT', -0.5) # M455
self.TII = self.given.get('TII', 0.0) # M456
self.TGIDL = self.given.get('TGIDL', -0.003) # M457
self.IGT = self.given.get('IGT', 2.5) # M458
self.TCJ = self.given.get('TCJ', 0.0) # M459
self.TCJSW = self.given.get('TCJSW', 0.0) # M460
self.TCJSWG = self.given.get('TCJSWG', 0.0) # M461
self.TPB = self.given.get('TPB', 0.0) # M462
self.TPBSW = self.given.get('TPBSW', 0.0) # M463
self.TPBSWG = self.given.get('TPBSWG', 0.0) # M464
self.XTIS = self.given.get('XTIS', 3.0) # M465
self.XTID = self.given.get('XTID', self.XTIS) # M466
self.XTSS = self.given.get('XTSS', 0.02) # M467
self.XTSD = self.given.get('XTSD', self.XTSS) # M468
self.XTSSWS = self.given.get('XTSSWS', 0.02) # M469
self.XTSSWD = self.given.get('XTSSWD', self.XTSSWS) # M470
self.XTSSWGS = self.given.get('XTSSWGS', 0.02) # M471
self.XTSSWGD = self.given.get('XTSSWGD', self.XTSSWGS) # M472
self.TNJTS = self.given.get('TNJTS', 0.0) # M473
self.TNJTSD = self.given.get('TNJTSD', self.TNJTS) # M474
self.TNJTSSW = self.given.get('TNJTSSW', 0.0) # M475
self.TNJTSSWD = self.given.get('TNJTSSWD', self.TNJTSSW) # M476
self.TNJTSSWG = self.given.get('TNJTSSWG', 0.0) # M477
self.TNJTSSWGD = self.given.get('TNJTSSWGD', self.TNJTSSWG) # M478
# Unified model (M484-M490, 7)
self.ACH_UFCM = self.given.get('ACH_UFCM', 1.0) # M484
self.CINS_UFCM = self.given.get('CINS_UFCM', 1.0) # M485
self.W_UFCM = self.given.get('W_UFCM', 1.0) # M486
self.TFIN_TOP = self.given.get('TFIN_TOP', 1.5e-8) # M487
self.TFIN_BASE = self.given.get('TFIN_BASE', 1.5e-8) # M488
self.QMFACTORCV = self.given.get('QMFACTORCV', 0.0) # M489
self.ALPHA_UFCM = self.given.get('ALPHA_UFCM', 0.5556) # M490
# Binning parameters (M491-M1027, 537)
self.LNBODY = self.given.get('LNBODY', 0.0) # M491
self.NNBODY = self.given.get('NNBODY', 0.0) # M492
self.PNBODY = self.given.get('PNBODY', 0.0) # M493
self.LPHIG = self.given.get('LPHIG', 0.0) # M494
self.NPHIG = self.given.get('NPHIG', 0.0) # M495
self.PPHIG = self.given.get('PPHIG', 0.0) # M496
self.LNGATE = self.given.get('LNGATE', 0.0) # M497
self.NNGATE = self.given.get('NNGATE', 0.0) # M498
self.PNGATE = self.given.get('PNGATE', 0.0) # M499
self.LCIT = self.given.get('LCIT', 0.0) # M500
self.NCIT = self.given.get('NCIT', 0.0) # M501
self.PCIT = self.given.get('PCIT', 0.0) # M502
self.LCDSC = self.given.get('LCDSC', 0.0) # M503
self.NCDSC = self.given.get('NCDSC', 0.0) # M504
self.PCDSC = self.given.get('PCDSC', 0.0) # M505
self.LCDSCD = self.given.get('LCDSCD', 0.0) # M506
self.NCDSCD = self.given.get('NCDSCD', 0.0) # M507
self.PCDSCD = self.given.get('PCDSCD', 0.0) # M508
self.LDVT0 = self.given.get('LDVT0', 0.0) # M509
self.NDVT0 = self.given.get('NDVT0', 0.0) # M510
self.PDVT0 = self.given.get('PDVT0', 0.0) # M511
self.LDVT1 = self.given.get('LDVT1', 0.0) # M512
self.NDVT1 = self.given.get('NDVT1', 0.0) # M513
self.PDVT1 = self.given.get('PDVT1', 0.0) # M514
self.LPHIN = self.given.get('LPHIN', 0.0) # M515
self.NPHIN = self.given.get('NPHIN', 0.0) # M516
self.PPHIN = self.given.get('PPHIN', 0.0) # M517
self.LETA0 = self.given.get('LETA0', 0.0) # M518
self.NETA0 = self.given.get('NETA0', 0.0) # M519
self.PETA0 = self.given.get('PETA0', 0.0) # M520
self.LDSUB = self.given.get('LDSUB', 0.0) # M521
self.NDSUB = self.given.get('NDSUB', 0.0) # M522
self.PDSUB = self.given.get('PDSUB', 0.0) # M523
self.LK1RSCE = self.given.get('LK1RSCE', 0.0) # M524
self.NK1RSCE = self.given.get('NK1RSCE', 0.0) # M525
self.PK1RSCE = self.given.get('PK1RSCE', 0.0) # M526
self.LLPE0 = self.given.get('LLPE0', 0.0) # M527
self.NLPE0 = self.given.get('NLPE0', 0.0) # M528
self.PLPE0 = self.given.get('PLPE0', 0.0) # M529
self.LDVTSHIFT = self.given.get('LDVTSHIFT', 0.0) # M530
self.NDVTSHIFT = self.given.get('NDVTSHIFT', 0.0) # M531
self.PDVTSHIFT = self.given.get('PDVTSHIFT', 0.0) # M532
self.LPHIBE = self.given.get('LPHIBE', 0.0) # M533
self.NPHIBE = self.given.get('NPHIBE', 0.0) # M534
self.PPHIBE = self.given.get('PPHIBE', 0.0) # M535
self.LK0 = self.given.get('LK0', 0.0) # M536
self.NK0 = self.given.get('NK0', 0.0) # M537
self.PK0 = self.given.get('PK0', 0.0) # M538
self.LK01 = self.given.get('LK01', 0.0) # M539
self.NK01 = self.given.get('NK01', 0.0) # M540
self.PK01 = self.given.get('PK01', 0.0) # M541
self.LK0SI = self.given.get('LK0SI', 0.0) # M542
self.NK0SI = self.given.get('NK0SI', 0.0) # M543
self.PK0SI = self.given.get('PK0SI', 0.0) # M544
self.LK0SI1 = self.given.get('LK0SI1', 0.0) # M545
self.NK0SI1 = self.given.get('NK0SI1', 0.0) # M546
self.PK0SI1 = self.given.get('PK0SI1', 0.0) # M547
self.LK1 = self.given.get('LK1', 0.0) # M548
self.NK1 = self.given.get('NK1', 0.0) # M549
self.PK1 = self.given.get('PK1', 0.0) # M550
self.LK11 = self.given.get('LK11', 0.0) # M551
self.NK11 = self.given.get('NK11', 0.0) # M552
self.PK11 = self.given.get('PK11', 0.0) # M553
self.LK0SISAT = self.given.get('LK0SISAT', 0.0) # M554
self.NK0SISAT = self.given.get('NK0SISAT', 0.0) # M555
self.PK0SISAT = self.given.get('PK0SISAT', 0.0) # M556
self.LK0SISAT1 = self.given.get('LK0SISAT1', 0.0) # M557
self.NK0SISAT1 = self.given.get('NK0SISAT1', 0.0) # M558
self.PK0SISAT1 = self.given.get('PK0SISAT1', 0.0) # M559
self.LK2SAT = self.given.get('LK2SAT', 0.0) # M560
self.NK2SAT = self.given.get('NK2SAT', 0.0) # M561
self.PK2SAT = self.given.get('PK2SAT', 0.0) # M562
self.LK2SAT1 = self.given.get('LK2SAT1', 0.0) # M563
self.NK2SAT1 = self.given.get('NK2SAT1', 0.0) # M564
self.PK2SAT1 = self.given.get('PK2SAT1', 0.0) # M565
self.LK2 = self.given.get('LK2', 0.0) # M566
self.NK2 = self.given.get('NK2', 0.0) # M567
self.PK2 = self.given.get('PK2', 0.0) # M568
self.LK21 = self.given.get('LK21', 0.0) # M569
self.NK21 = self.given.get('NK21', 0.0) # M570
self.PK21 = self.given.get('PK21', 0.0) # M571
self.LDVTB = self.given.get('LDVTB', 0.0) # M572
self.NDVTB = self.given.get('NDVTB', 0.0) # M573
self.PDVTB = self.given.get('PDVTB', 0.0) # M574
self.LLPEB = self.given.get('LLPEB', 0.0) # M575
self.NLPEB = self.given.get('NLPEB', 0.0) # M576
self.PLPEB = self.given.get('PLPEB', 0.0) # M577
self.LQMFACTOR = self.given.get('LQMFACTOR', 0.0) # M578
self.NQMFACTOR = self.given.get('NQMFACTOR', 0.0) # M579
self.PQMFACTOR = self.given.get('PQMFACTOR', 0.0) # M580
self.LQMTCENCV = self.given.get('LQMTCENCV', 0.0) # M581
self.NQMTCENCV = self.given.get('NQMTCENCV', 0.0) # M582
self.PQMTCENCV = self.given.get('PQMTCENCV', 0.0) # M583
self.LQMTCENCVA = self.given.get('LQMTCENCVA', 0.0) # M584
self.NQMTCENCVA = self.given.get('NQMTCENCVA', 0.0) # M585
self.PQMTCENCVA = self.given.get('PQMTCENCVA', 0.0) # M586
self.LVSAT = self.given.get('LVSAT', 0.0) # M587
self.NVSAT = self.given.get('NVSAT', 0.0) # M588
self.PVSAT = self.given.get('PVSAT', 0.0) # M589
self.LPSAT = self.given.get('LPSAT', 0.0) # M590
self.NPSAT = self.given.get('NPSAT', 0.0) # M591
self.PPSAT = self.given.get('PPSAT', 0.0) # M592
self.LDELTAVSAT = self.given.get('LDELTAVSAT', 0.0) # M593
self.NDELTAVSAT = self.given.get('NDELTAVSAT', 0.0) # M594
self.PDELTAVSAT = self.given.get('PDELTAVSAT', 0.0) # M595
self.LKSATIV = self.given.get('LKSATIV', 0.0) # M596
self.NKSATIV = self.given.get('NKSATIV', 0.0) # M597
self.PKSATIV = self.given.get('PKSATIV', 0.0) # M598
self.LMEXP = self.given.get('LMEXP', 0.0) # M608
self.NMEXP = self.given.get('NMEXP', 0.0) # M609
self.PMEXP = self.given.get('PMEXP', 0.0) # M610
self.LPTWG = self.given.get('LPTWG', 0.0) # M611
self.NPTWG = self.given.get('NPTWG', 0.0) # M612
self.PPTWG = self.given.get('PPTWG', 0.0) # M613
self.LU0 = self.given.get('LU0', 0.0) # M614
self.NU0 = self.given.get('NU0', 0.0) # M615
self.PU0 = self.given.get('PU0', 0.0) # M616
self.LETAMOB = self.given.get('LETAMOB', 0.0) # M617
self.NETAMOB = self.given.get('NETAMOB', 0.0) # M618
self.PETAMOB = self.given.get('PETAMOB', 0.0) # M619
self.LUP = self.given.get('LUP', 0.0) # M620
self.NUP = self.given.get('NUP', 0.0) # M621
self.PUP = self.given.get('PUP', 0.0) # M622
self.LUA = self.given.get('LUA', 0.0) # M623
self.NUA = self.given.get('NUA', 0.0) # M624
self.PUA = self.given.get('PUA', 0.0) # M625
self.LUC = self.given.get('LUC', 0.0) # M626
self.NUC = self.given.get('NUC', 0.0) # M627
self.PUC = self.given.get('PUC', 0.0) # M628
self.LEU = self.given.get('LEU', 0.0) # M629
self.NEU = self.given.get('NEU', 0.0) # M630
self.PEU = self.given.get('PEU', 0.0) # M631
self.LUD = self.given.get('LUD', 0.0) # M632
self.NUD = self.given.get('NUD', 0.0) # M633
self.PUD = self.given.get('PUD', 0.0) # M634
self.LUCS = self.given.get('LUCS', 0.0) # M635
self.NUCS = self.given.get('NUCS', 0.0) # M636
self.PUCS = self.given.get('PUCS', 0.0) # M637
self.LPCLM = self.given.get('LPCLM', 0.0) # M638
self.NPCLM = self.given.get('NPCLM', 0.0) # M639
self.PPCLM = self.given.get('PPCLM', 0.0) # M640
self.LPCLMG = self.given.get('LPCLMG', 0.0) # M641
self.NPCLMG = self.given.get('NPCLMG', 0.0) # M642
self.PPCLMG = self.given.get('PPCLMG', 0.0) # M643
self.LA1 = self.given.get('LA1', 0.0) # M644
self.NA1 = self.given.get('NA1', 0.0) # M645
self.PA1 = self.given.get('PA1', 0.0) # M646
self.LA11 = self.given.get('LA11', 0.0) # M647
self.NA11 = self.given.get('NA11', 0.0) # M648
self.PA11 = self.given.get('PA11', 0.0) # M649
self.LA2 = self.given.get('LA2', 0.0) # M650
self.NA2 = self.given.get('NA2', 0.0) # M651
self.PA2 = self.given.get('PA2', 0.0) # M652
self.LA21 = self.given.get('LA21', 0.0) # M653
self.NA21 = self.given.get('NA21', 0.0) # M654
self.PA21 = self.given.get('PA21', 0.0) # M655
self.LRDSW = self.given.get('LRDSW', 0.0) # M656
self.NRDSW = self.given.get('NRDSW', 0.0) # M657
self.PRDSW = self.given.get('PRDSW', 0.0) # M658
self.LRSW = self.given.get('LRSW', 0.0) # M659
self.NRSW = self.given.get('NRSW', 0.0) # M660
self.PRSW = self.given.get('PRSW', 0.0) # M661
self.LRDW = self.given.get('LRDW', 0.0) # M662
self.NRDW = self.given.get('NRDW', 0.0) # M663
self.PRDW = self.given.get('PRDW', 0.0) # M664
self.LPRWGS = self.given.get('LPRWGS', 0.0) # M665
self.NPRWGS = self.given.get('NPRWGS', 0.0) # M666
self.PPRWGS = self.given.get('PPRWGS', 0.0) # M667
self.LPRWGD = self.given.get('LPRWGD', 0.0) # M668
self.NPRWGD = self.given.get('NPRWGD', 0.0) # M669
self.PPRWGD = self.given.get('PPRWGD', 0.0) # M670
self.LWR = self.given.get('LWR', 0.0) # M671
self.NWR = self.given.get('NWR', 0.0) # M672
self.PWR = self.given.get('PWR', 0.0) # M673
self.LPDIBL1 = self.given.get('LPDIBL1', 0.0) # M674
self.NPDIBL1 = self.given.get('NPDIBL1', 0.0) # M675
self.PPDIBL1 = self.given.get('PPDIBL1', 0.0) # M676
self.LPDIBL2 = self.given.get('LPDIBL2', 0.0) # M677
self.NPDIBL2 = self.given.get('NPDIBL2', 0.0) # M678
self.PPDIBL2 = self.given.get('PPDIBL2', 0.0) # M679
self.LDROUT = self.given.get('LDROUT', 0.0) # M680
self.NDROUT = self.given.get('NDROUT', 0.0) # M681
self.PDROUT = self.given.get('PDROUT', 0.0) # M682
self.LPVAG = self.given.get('LPVAG', 0.0) # M683
self.NPVAG = self.given.get('NPVAG', 0.0) # M684
self.PPVAG = self.given.get('PPVAG', 0.0) # M685
self.LAIGBINV = self.given.get('LAIGBINV', 0.0) # M686
self.NAIGBINV = self.given.get('NAIGBINV', 0.0) # M687
self.PAIGBINV = self.given.get('PAIGBINV', 0.0) # M688
self.LAIGBINV1 = self.given.get('LAIGBINV1', 0.0) # M689
self.NAIGBINV1 = self.given.get('NAIGBINV1', 0.0) # M690
self.PAIGBINV1 = self.given.get('PAIGBINV1', 0.0) # M691
self.LBIGBINV = self.given.get('LBIGBINV', 0.0) # M692
self.NBIGBINV = self.given.get('NBIGBINV', 0.0) # M693
self.PBIGBINV = self.given.get('PBIGBINV', 0.0) # M694
self.LCIGBINV = self.given.get('LCIGBINV', 0.0) # M695
self.NCIGBINV = self.given.get('NCIGBINV', 0.0) # M696
self.PCIGBINV = self.given.get('PCIGBINV', 0.0) # M697
self.LEIGBINV = self.given.get('LEIGBINV', 0.0) # M698
self.NEIGBINV = self.given.get('NEIGBINV', 0.0) # M699
self.PEIGBINV = self.given.get('PEIGBINV', 0.0) # M700
self.LNIGBINV = self.given.get('LNIGBINV', 0.0) # M701
self.NNIGBINV = self.given.get('NNIGBINV', 0.0) # M702
self.PNIGBINV = self.given.get('PNIGBINV', 0.0) # M703
self.LAIGBACC = self.given.get('LAIGBACC', 0.0) # M704
self.NAIGBACC = self.given.get('NAIGBACC', 0.0) # M705
self.PAIGBACC = self.given.get('PAIGBACC', 0.0) # M706
self.LAIGBACC1 = self.given.get('LAIGBACC1', 0.0) # M707
self.NAIGBACC1 = self.given.get('NAIGBACC1', 0.0) # M708
self.PAIGBACC1 = self.given.get('PAIGBACC1', 0.0) # M709
self.LBIGBACC = self.given.get('LBIGBACC', 0.0) # M710
self.NBIGBACC = self.given.get('NBIGBACC', 0.0) # M711
self.PBIGBACC = self.given.get('PBIGBACC', 0.0) # M712
self.LCIGBACC = self.given.get('LCIGBACC', 0.0) # M713
self.NCIGBACC = self.given.get('NCIGBACC', 0.0) # M714
self.PCIGBACC = self.given.get('PCIGBACC', 0.0) # M715
self.LNIGBACC = self.given.get('LNIGBACC', 0.0) # M716
self.NNIGBACC = self.given.get('NNIGBACC', 0.0) # M717
self.PNIGBACC = self.given.get('PNIGBACC', 0.0) # M718
self.LAIGC = self.given.get('LAIGC', 0.0) # M719
self.NAIGC = self.given.get('NAIGC', 0.0) # M720
self.PAIGC = self.given.get('PAIGC', 0.0) # M721
self.LAIGC1 = self.given.get('LAIGC1', 0.0) # M722
self.NAIGC1 = self.given.get('NAIGC1', 0.0) # M723
self.PAIGC1 = self.given.get('PAIGC1', 0.0) # M724
self.LBIGC = self.given.get('LBIGC', 0.0) # M725
self.NBIGC = self.given.get('NBIGC', 0.0) # M726
self.PBIGC = self.given.get('PBIGC', 0.0) # M727
self.LCIGC = self.given.get('LCIGC', 0.0) # M728
self.NCIGC = self.given.get('NCIGC', 0.0) # M729
self.PCIGC = self.given.get('PCIGC', 0.0) # M730
self.LPIGCD = self.given.get('LPIGCD', 0.0) # M731
self.NPIGCD = self.given.get('NPIGCD', 0.0) # M732
self.PPIGCD = self.given.get('PPIGCD', 0.0) # M733
self.LAIGS = self.given.get('LAIGS', 0.0) # M734
self.NAIGS = self.given.get('NAIGS', 0.0) # M735
self.PAIGS = self.given.get('PAIGS', 0.0) # M736
self.LAIGS1 = self.given.get('LAIGS1', 0.0) # M737
self.NAIGS1 = self.given.get('NAIGS1', 0.0) # M738
self.PAIGS1 = self.given.get('PAIGS1', 0.0) # M739
self.LBIGS = self.given.get('LBIGS', 0.0) # M740
self.NBIGS = self.given.get('NBIGS', 0.0) # M741
self.PBIGS = self.given.get('PBIGS', 0.0) # M742
self.LCIGS = self.given.get('LCIGS', 0.0) # M743
self.NCIGS = self.given.get('NCIGS', 0.0) # M744
self.PCIGS = self.given.get('PCIGS', 0.0) # M745
self.LNTOX = self.given.get('LNTOX', 0.0) # M746
self.NNTOX = self.given.get('NNTOX', 0.0) # M747
self.PNTOX = self.given.get('PNTOX', 0.0) # M748
self.LPOXEDGE = self.given.get('LPOXEDGE', 0.0) # M749
self.NPOXEDGE = self.given.get('NPOXEDGE', 0.0) # M750
self.PPOXEDGE = self.given.get('PPOXEDGE', 0.0) # M751
self.LAGISL = self.given.get('LAGISL', 0.0) # M752
self.NAGISL = self.given.get('NAGISL', 0.0) # M753
self.PAGISL = self.given.get('PAGISL', 0.0) # M754
self.LBGISL = self.given.get('LBGISL', 0.0) # M755
self.NBGISL = self.given.get('NBGISL', 0.0) # M756
self.PBGISL = self.given.get('PBGISL', 0.0) # M757
self.LCGISL = self.given.get('LCGISL', 0.0) # M758
self.NCGISL = self.given.get('NCGISL', 0.0) # M759
self.PCGISL = self.given.get('PCGISL', 0.0) # M760
self.LEGISL = self.given.get('LEGISL', 0.0) # M761
self.NEGISL = self.given.get('NEGISL', 0.0) # M762
self.PEGISL = self.given.get('PEGISL', 0.0) # M763
self.LPGISL = self.given.get('LPGISL', 0.0) # M764
self.NPGISL = self.given.get('NPGISL', 0.0) # M765
self.PPGISL = self.given.get('PPGISL', 0.0) # M766
self.LALPHA0 = self.given.get('LALPHA0', 0.0) # M767
self.NALPHA0 = self.given.get('NALPHA0', 0.0) # M768
self.PALPHA0 = self.given.get('PALPHA0', 0.0) # M769
self.LALPHA1 = self.given.get('LALPHA1', 0.0) # M770
self.NALPHA1 = self.given.get('NALPHA1', 0.0) # M771
self.PALPHA1 = self.given.get('PALPHA1', 0.0) # M772
self.LALPHAII0 = self.given.get('LALPHAII0', 0.0) # M773
self.NALPHAII0 = self.given.get('NALPHAII0', 0.0) # M774
self.PALPHAII0 = self.given.get('PALPHAII0', 0.0) # M775
self.LALPHAII1 = self.given.get('LALPHAII1', 0.0) # M776
self.NALPHAII1 = self.given.get('NALPHAII1', 0.0) # M777
self.PALPHAII1 = self.given.get('PALPHAII1', 0.0) # M778
self.LBETA0 = self.given.get('LBETA0', 0.0) # M779
self.NBETA0 = self.given.get('NBETA0', 0.0) # M780
self.PBETA0 = self.given.get('PBETA0', 0.0) # M781
self.LBETAII0 = self.given.get('LBETAII0', 0.0) # M782
self.NBETAII0 = self.given.get('NBETAII0', 0.0) # M783
self.PBETAII0 = self.given.get('PBETAII0', 0.0) # M784
self.LBETAII1 = self.given.get('LBETAII1', 0.0) # M785
self.NBETAII1 = self.given.get('NBETAII1', 0.0) # M786
self.PBETAII1 = self.given.get('PBETAII1', 0.0) # M787
self.LBETAII2 = self.given.get('LBETAII2', 0.0) # M788
self.NBETAII2 = self.given.get('NBETAII2', 0.0) # M789
self.PBETAII2 = self.given.get('PBETAII2', 0.0) # M790
self.LESATII = self.given.get('LESATII', 0.0) # M791
self.NESATII = self.given.get('NESATII', 0.0) # M792
self.PESATII = self.given.get('PESATII', 0.0) # M793
self.LLII = self.given.get('LLII', 0.0) # M794
self.NLII = self.given.get('NLII', 0.0) # M795
self.PLII = self.given.get('PLII', 0.0) # M796
self.LSII0 = self.given.get('LSII0', 0.0) # M797
self.NSII0 = self.given.get('NSII0', 0.0) # M798
self.PSII0 = self.given.get('PSII0', 0.0) # M799
self.LSII1 = self.given.get('LSII1', 0.0) # M800
self.NSII1 = self.given.get('NSII1', 0.0) # M801
self.PSII1 = self.given.get('PSII1', 0.0) # M802
self.LSII2 = self.given.get('LSII2', 0.0) # M803
self.NSII2 = self.given.get('NSII2', 0.0) # M804
self.PSII2 = self.given.get('PSII2', 0.0) # M805
self.LSIID = self.given.get('LSIID', 0.0) # M806
self.NSIID = self.given.get('NSIID', 0.0) # M807
self.PSIID = self.given.get('PSIID', 0.0) # M808
self.LNTGEN = self.given.get('LNTGEN', 0.0) # M827
self.NNTGEN = self.given.get('NNTGEN', 0.0) # M828
self.PNTGEN = self.given.get('PNTGEN', 0.0) # M829
self.LAIGEN = self.given.get('LAIGEN', 0.0) # M830
self.NAIGEN = self.given.get('NAIGEN', 0.0) # M831
self.PAIGEN = self.given.get('PAIGEN', 0.0) # M832
self.LBIGEN = self.given.get('LBIGEN', 0.0) # M833
self.NBIGEN = self.given.get('NBIGEN', 0.0) # M834
self.PBIGEN = self.given.get('PBIGEN', 0.0) # M835
self.LXRCRG1 = self.given.get('LXRCRG1', 0.0) # M836
self.NXRCRG1 = self.given.get('NXRCRG1', 0.0) # M837
self.PXRCRG1 = self.given.get('PXRCRG1', 0.0) # M838
self.LXRCRG2 = self.given.get('LXRCRG2', 0.0) # M839
self.NXRCRG2 = self.given.get('NXRCRG2', 0.0) # M840
self.PXRCRG2 = self.given.get('PXRCRG2', 0.0) # M841
self.LUTE = self.given.get('LUTE', 0.0) # M842
self.NUTE = self.given.get('NUTE', 0.0) # M843
self.PUTE = self.given.get('PUTE', 0.0) # M844
self.LUTL = self.given.get('LUTL', 0.0) # M845
self.NUTL = self.given.get('NUTL', 0.0) # M846
self.PUTL = self.given.get('PUTL', 0.0) # M847
self.LEMOBT = self.given.get('LEMOBT', 0.0) # M848
self.NEMOBT = self.given.get('NEMOBT', 0.0) # M849
self.PEMOBT = self.given.get('PEMOBT', 0.0) # M850
self.LUA1 = self.given.get('LUA1', 0.0) # M851
self.NUA1 = self.given.get('NUA1', 0.0) # M852
self.PUA1 = self.given.get('PUA1', 0.0) # M853
self.LUC1 = self.given.get('LUC1', 0.0) # M854
self.NUC1 = self.given.get('NUC1', 0.0) # M855
self.PUC1 = self.given.get('PUC1', 0.0) # M856
self.LUD1 = self.given.get('LUD1', 0.0) # M857
self.NUD1 = self.given.get('NUD1', 0.0) # M858
self.PUD1 = self.given.get('PUD1', 0.0) # M859
self.LUCSTE = self.given.get('LUCSTE', 0.0) # M860
self.NUCSTE = self.given.get('NUCSTE', 0.0) # M861
self.PUCSTE = self.given.get('PUCSTE', 0.0) # M862
self.LPTWGT = self.given.get('LPTWGT', 0.0) # M863
self.NPTWGT = self.given.get('NPTWGT', 0.0) # M864
self.PPTWGT = self.given.get('PPTWGT', 0.0) # M865
self.LAT = self.given.get('LAT', 0.0) # M866
self.NAT = self.given.get('NAT', 0.0) # M867
self.PAT = self.given.get('PAT', 0.0) # M868
self.LATCV = self.given.get('LATCV', 0.0) # M869
self.NATCV = self.given.get('NATCV', 0.0) # M870
self.PATCV = self.given.get('PATCV', 0.0) # M871
self.LSTTHETASAT = self.given.get('LSTTHETASAT', 0.0) # M872
self.NSTTHETASAT = self.given.get('NSTTHETASAT', 0.0) # M873
self.PSTTHETASAT = self.given.get('PSTTHETASAT', 0.0) # M874
self.LPRT = self.given.get('LPRT', 0.0) # M875
self.NPRT = self.given.get('NPRT', 0.0) # M876
self.PPRT = self.given.get('PPRT', 0.0) # M877
self.LKT1 = self.given.get('LKT1', 0.0) # M878
self.NKT1 = self.given.get('NKT1', 0.0) # M879
self.PKT1 = self.given.get('PKT1', 0.0) # M880
self.LTSS = self.given.get('LTSS', 0.0) # M881
self.NTSS = self.given.get('NTSS', 0.0) # M882
self.PTSS = self.given.get('PTSS', 0.0) # M883
self.LIIT = self.given.get('LIIT', 0.0) # M884
self.NIIT = self.given.get('NIIT', 0.0) # M885
self.PIIT = self.given.get('PIIT', 0.0) # M886
self.LTII = self.given.get('LTII', 0.0) # M887
self.NTII = self.given.get('NTII', 0.0) # M888
self.PTII = self.given.get('PTII', 0.0) # M889
self.LTGIDL = self.given.get('LTGIDL', 0.0) # M890
self.NTGIDL = self.given.get('NTGIDL', 0.0) # M891
self.PTGIDL = self.given.get('PTGIDL', 0.0) # M892
self.LIGT = self.given.get('LIGT', 0.0) # M893
self.NIGT = self.given.get('NIGT', 0.0) # M894
self.PIGT = self.given.get('PIGT', 0.0) # M895
self.LCITR = self.given.get('LCITR', self.LCIT) # M896
self.NCITR = self.given.get('NCITR', self.NCIT) # M897
self.PCITR = self.given.get('PCITR', self.PCIT) # M898
self.LCDSCDR = self.given.get('LCDSCDR', self.LCDSCD) # M899
self.NCDSCDR = self.given.get('NCDSCDR', self.NCDSCD) # M900
self.PCDSCDR = self.given.get('PCDSCDR', self.PCDSCD) # M901
self.LDVT1SS = self.given.get('LDVT1SS', self.LDVT1) # M902
self.NDVT1SS = self.given.get('NDVT1SS', self.NDVT1) # M903
self.PDVT1SS = self.given.get('PDVT1SS', self.PDVT1) # M904
self.LETA0R = self.given.get('LETA0R', self.LETA0) # M905
self.NETA0R = self.given.get('NETA0R', self.NETA0) # M906
self.PETA0R = self.given.get('PETA0R', self.PETA0) # M907
self.LDVTSHIFTR = self.given.get('LDVTSHIFTR', self.LDVTSHIFT) # M908
self.NDVTSHIFTR = self.given.get('NDVTSHIFTR', self.NDVTSHIFT) # M909
self.PDVTSHIFTR = self.given.get('PDVTSHIFTR', self.PDVTSHIFT) # M910
self.LK2SI = self.given.get('LK2SI', self.LK0SI) # M911
self.NK2SI = self.given.get('NK2SI', self.NK0SI) # M912
self.PK2SI = self.given.get('PK2SI', self.PK0SI) # M913
self.LK2SI1 = self.given.get('LK2SI1', self.LK0SI1) # M914
self.NK2SI1 = self.given.get('NK2SI1', self.NK0SI1) # M915
self.PK2SI1 = self.given.get('PK2SI1', self.PK0SI1) # M916
self.LK2SISAT = self.given.get('LK2SISAT', self.LK0SISAT) # M917
self.NK2SISAT = self.given.get('NK2SISAT', self.NK0SISAT) # M918
self.PK2SISAT = self.given.get('PK2SISAT', self.PK0SISAT) # M919
self.LK2SISAT1 = self.given.get('LK2SISAT1', self.LK0SISAT1) # M920
self.NK2SISAT1 = self.given.get('NK2SISAT1', self.NK0SISAT1) # M921
self.PK2SISAT1 = self.given.get('PK2SISAT1', self.PK0SISAT1) # M922
self.LVSATR = self.given.get('LVSATR', self.LVSAT) # M923
self.NVSATR = self.given.get('NVSATR', self.NVSAT) # M924
self.PVSATR = self.given.get('PVSATR', self.PVSAT) # M925
self.LVSAT1 = self.given.get('LVSAT1', self.LVSAT) # M926
self.NVSAT1 = self.given.get('NVSAT1', self.NVSAT) # M927
self.PVSAT1 = self.given.get('PVSAT1', self.PVSAT) # M928
self.LKSATIVR = self.given.get('LKSATIVR', self.LKSATIV) # M929
self.NKSATIVR = self.given.get('NKSATIVR', self.NKSATIV) # M930
self.PKSATIVR = self.given.get('PKSATIVR', self.PKSATIV) # M931
self.LMEXPR = self.given.get('LMEXPR', self.LMEXP) # M932
self.NMEXPR = self.given.get('NMEXPR', self.NMEXP) # M933
self.PMEXPR = self.given.get('PMEXPR', self.PMEXP) # M934
self.LPTWGR = self.given.get('LPTWGR', self.LPTWG) # M935
self.NPTWGR = self.given.get('NPTWGR', self.NPTWG) # M936
self.PPTWGR = self.given.get('PPTWGR', self.PPTWG) # M937
self.LU0R = self.given.get('LU0R', self.LU0) # M938
self.NU0R = self.given.get('NU0R', self.NU0) # M939
self.PU0R = self.given.get('PU0R', self.PU0) # M940
self.LUPR = self.given.get('LUPR', self.LUP) # M941
self.NUPR = self.given.get('NUPR', self.NUP) # M942
self.PUPR = self.given.get('PUPR', self.PUP) # M943
self.LUAR = self.given.get('LUAR', self.LUA) # M944
self.NUAR = self.given.get('NUAR', self.NUA) # M945
self.PUAR = self.given.get('PUAR', self.PUA) # M946
self.LUCR = self.given.get('LUCR', self.LUC) # M947
self.NUCR = self.given.get('NUCR', self.NUC) # M948
self.PUCR = self.given.get('PUCR', self.PUC) # M949
self.LEUR = self.given.get('LEUR', self.LEU) # M950
self.NEUR = self.given.get('NEUR', self.NEU) # M951
self.PEUR = self.given.get('PEUR', self.PEU) # M952
self.LUDR = self.given.get('LUDR', self.LUD) # M953
self.NUDR = self.given.get('NUDR', self.NUD) # M954
self.PUDR = self.given.get('PUDR', self.PUD) # M955
self.LPCLMR = self.given.get('LPCLMR', self.LPCLM) # M956
self.NPCLMR = self.given.get('NPCLMR', self.NPCLM) # M957
self.PPCLMR = self.given.get('PPCLMR', self.PPCLM) # M958
self.LPDIBL1R = self.given.get('LPDIBL1R', self.LPDIBL1) # M962
self.NPDIBL1R = self.given.get('NPDIBL1R', self.NPDIBL1) # M963
self.PPDIBL1R = self.given.get('PPDIBL1R', self.PPDIBL1) # M964
self.LPDIBL2R = self.given.get('LPDIBL2R', self.LPDIBL2) # M965
self.NPDIBL2R = self.given.get('NPDIBL2R', self.NPDIBL2) # M966
self.PPDIBL2R = self.given.get('PPDIBL2R', self.PPDIBL2) # M967
self.LAIGD = self.given.get('LAIGD', self.LAIGS) # M968
self.NAIGD = self.given.get('NAIGD', self.NAIGS) # M969
self.PAIGD = self.given.get('PAIGD', self.PAIGS) # M970
self.LAIGD1 = self.given.get('LAIGD1', self.LAIGS1) # M971
self.NAIGD1 = self.given.get('NAIGD1', self.NAIGS1) # M972
self.PAIGD1 = self.given.get('PAIGD1', self.PAIGS1) # M973
self.LBIGD = self.given.get('LBIGD', self.LBIGS) # M974
self.NBIGD = self.given.get('NBIGD', self.NBIGS) # M975
self.PBIGD = self.given.get('PBIGD', self.PBIGS) # M976
self.LCIGD = self.given.get('LCIGD', self.LCIGS) # M977
self.NCIGD = self.given.get('NCIGD', self.NCIGS) # M978
self.PCIGD = self.given.get('PCIGD', self.PCIGS) # M979
self.LAGIDL = self.given.get('LAGIDL', self.LAGISL) # M980
self.NAGIDL = self.given.get('NAGIDL', self.NAGISL) # M981
self.PAGIDL = self.given.get('PAGIDL', self.PAGISL) # M982
self.LBGIDL = self.given.get('LBGIDL', self.LBGISL) # M983
self.NBGIDL = self.given.get('NBGIDL', self.NBGISL) # M984
self.PBGIDL = self.given.get('PBGIDL', self.PBGISL) # M985
self.LCGIDL = self.given.get('LCGIDL', self.LCGISL) # M986
self.NCGIDL = self.given.get('NCGIDL', self.NCGISL) # M987
self.PCGIDL = self.given.get('PCGIDL', self.PCGISL) # M988
self.LEGIDL = self.given.get('LEGIDL', self.LEGISL) # M989
self.NEGIDL = self.given.get('NEGIDL', self.NEGISL) # M990
self.PEGIDL = self.given.get('PEGIDL', self.PEGISL) # M991
self.LPGIDL = self.given.get('LPGIDL', self.LPGISL) # M992
self.NPGIDL = self.given.get('NPGIDL', self.NPGISL) # M993
self.PPGIDL = self.given.get('PPGIDL', self.PPGISL) # M994
self.LUTER = self.given.get('LUTER', self.LUTE) # M1007
self.NUTER = self.given.get('NUTER', self.NUTE) # M1008
self.PUTER = self.given.get('PUTER', self.PUTE) # M1009
self.LUTLR = self.given.get('LUTLR', self.LUTL) # M1010
self.NUTLR = self.given.get('NUTLR', self.NUTL) # M1011
self.PUTLR = self.given.get('PUTLR', self.PUTL) # M1012
self.LUA1R = self.given.get('LUA1R', self.LUA1) # M1013
self.NUA1R = self.given.get('NUA1R', self.NUA1) # M1014
self.PUA1R = self.given.get('PUA1R', self.PUA1) # M1015
self.LUC1R = self.given.get('LUC1R', self.LUC1) # M1016
self.NUC1R = self.given.get('NUC1R', self.NUC1) # M1017
self.PUC1R = self.given.get('PUC1R', self.PUC1) # M1018
self.LUD1R = self.given.get('LUD1R', self.LUD1) # M1019
self.NUD1R = self.given.get('NUD1R', self.NUD1) # M1020
self.PUD1R = self.given.get('PUD1R', self.PUD1) # M1021
self.LATR = self.given.get('LATR', self.LAT) # M1022
self.NATR = self.given.get('NATR', self.NAT) # M1023
self.PATR = self.given.get('PATR', self.PAT) # M1024
self.LVSAT1R = self.given.get('LVSAT1R', self.LVSAT1) # M1025
self.NVSAT1R = self.given.get('NVSAT1R', self.NVSAT1) # M1026
self.PVSAT1R = self.given.get('PVSAT1R', self.PVSAT1) # M1027
# Clamped exponential function
def lexp(self, x):
if x > 80.0: