Current task: —

E-023-finite-height-assembly.py

Experiments: E-023 · script updated 08-19-2026

E-023-assembly.csv — 710.1 KB, updated 08-19-2026

← prev page 3 of 40 · 500/page · 20000 rows next →
# nmargin_tracedmargin_measured
1002 20020 -45573.159187 -36848.647072
1003 20040 -45507.690597 -36780.624446
1004 20060 -45442.200083 -36712.581222
1005 20080 -45376.687680 -36644.517430
1006 20100 -45311.153417 -36576.433099
1007 20120 -45245.597329 -36508.328261
1008 20140 -45180.019446 -36440.202945
1009 20160 -45114.419800 -36372.057180
1010 20180 -45048.798424 -36303.890997
1011 20200 -44983.155349 -36235.704425
1012 20220 -44917.490606 -36167.497493
1013 20240 -44851.804228 -36099.270231
1014 20260 -44786.096245 -36031.022669
1015 20280 -44720.366689 -35962.754835
1016 20300 -44654.615591 -35894.466759
1017 20320 -44588.842983 -35826.158470
1018 20340 -44523.048895 -35757.829998
1019 20360 -44457.233359 -35689.481371
1020 20380 -44391.396406 -35621.112618
1021 20400 -44325.538066 -35552.723768
1022 20420 -44259.658370 -35484.314850
1023 20440 -44193.757350 -35415.885893
1024 20460 -44127.835035 -35347.436925
1025 20480 -44061.891457 -35278.967975
1026 20500 -43995.926645 -35210.479071
1027 20520 -43929.940631 -35141.970243
1028 20540 -43863.933444 -35073.441517
1029 20560 -43797.905115 -35004.892923
1030 20580 -43731.855675 -34936.324488
1031 20600 -43665.785152 -34867.736242
1032 20620 -43599.693578 -34799.128211
1033 20640 -43533.580982 -34730.500424
1034 20660 -43467.447393 -34661.852909
1035 20680 -43401.292843 -34593.185694
1036 20700 -43335.117361 -34524.498807
1037 20720 -43268.920975 -34455.792274
1038 20740 -43202.703717 -34387.066125
1039 20760 -43136.465615 -34318.320386
1040 20780 -43070.206699 -34249.555085
1041 20800 -43003.926998 -34180.770250
1042 20820 -42937.626541 -34111.965908
1043 20840 -42871.305358 -34043.142085
1044 20860 -42804.963478 -33974.298810
1045 20880 -42738.600930 -33905.436110
1046 20900 -42672.217743 -33836.554012
1047 20920 -42605.813946 -33767.652542
1048 20940 -42539.389567 -33698.731727
1049 20960 -42472.944636 -33629.791596
1050 20980 -42406.479181 -33560.832174
1051 21000 -42339.993231 -33491.853488
1052 21020 -42273.486814 -33422.855565
1053 21040 -42206.959960 -33353.838431
1054 21060 -42140.412695 -33284.802114
1055 21080 -42073.845049 -33215.746639
1056 21100 -42007.257051 -33146.672034
1057 21120 -41940.648727 -33077.578323
1058 21140 -41874.020107 -33008.465535
1059 21160 -41807.371218 -32939.333695
1060 21180 -41740.702089 -32870.182828
1061 21200 -41674.012746 -32801.012962
1062 21220 -41607.303220 -32731.824123
1063 21240 -41540.573536 -32662.616336
1064 21260 -41473.823723 -32593.389627
1065 21280 -41407.053808 -32524.144022
1066 21300 -41340.263820 -32454.879547
1067 21320 -41273.453785 -32385.596228
1068 21340 -41206.623731 -32316.294090
1069 21360 -41139.773685 -32246.973159
1070 21380 -41072.903675 -32177.633460
1071 21400 -41006.013729 -32108.275020
1072 21420 -40939.103872 -32038.897863
1073 21440 -40872.174133 -31969.502014
1074 21460 -40805.224538 -31900.087500
1075 21480 -40738.255115 -31830.654345
1076 21500 -40671.265890 -31761.202574
1077 21520 -40604.256890 -31691.732213
1078 21540 -40537.228142 -31622.243287
1079 21560 -40470.179673 -31552.735820
1080 21580 -40403.111510 -31483.209838
1081 21600 -40336.023678 -31413.665366
1082 21620 -40268.916206 -31344.102427
1083 21640 -40201.789118 -31274.521048
1084 21660 -40134.642441 -31204.921252
1085 21680 -40067.476203 -31135.303065
1086 21700 -40000.290428 -31065.666510
1087 21720 -39933.085144 -30996.011613
1088 21740 -39865.860377 -30926.338398
1089 21760 -39798.616152 -30856.646889
1090 21780 -39731.352496 -30786.937111
1091 21800 -39664.069435 -30717.209088
1092 21820 -39596.766994 -30647.462844
1093 21840 -39529.445199 -30577.698403
1094 21860 -39462.104077 -30507.915790
1095 21880 -39394.743652 -30438.115028
1096 21900 -39327.363952 -30368.296142
1097 21920 -39259.965000 -30298.459155
1098 21940 -39192.546824 -30228.604091
1099 21960 -39125.109447 -30158.730975
1100 21980 -39057.652897 -30088.839829
1101 22000 -38990.177197 -30018.930678
1102 22020 -38922.682374 -29949.003545
1103 22040 -38855.168452 -29879.058455
1104 22060 -38787.635457 -29809.095429
1105 22080 -38720.083414 -29739.114493
1106 22100 -38652.512348 -29669.115669
1107 22120 -38584.922285 -29599.098980
1108 22140 -38517.313248 -29529.064451
1109 22160 -38449.685263 -29459.012104
1110 22180 -38382.038354 -29388.941962
1111 22200 -38314.372548 -29318.854050
1112 22220 -38246.687867 -29248.748389
1113 22240 -38178.984337 -29178.625003
1114 22260 -38111.261983 -29108.483915
1115 22280 -38043.520829 -29038.325147
1116 22300 -37975.760899 -28968.148724
1117 22320 -37907.982218 -28897.954666
1118 22340 -37840.184811 -28827.742999
1119 22360 -37772.368701 -28757.513743
1120 22380 -37704.533913 -28687.266922
1121 22400 -37636.680471 -28617.002559
1122 22420 -37568.808400 -28546.720675
1123 22440 -37500.917722 -28476.421294
1124 22460 -37433.008463 -28406.104438
1125 22480 -37365.080647 -28335.770129
1126 22500 -37297.134297 -28265.418390
1127 22520 -37229.169437 -28195.049243
1128 22540 -37161.186091 -28124.662711
1129 22560 -37093.184283 -28054.258815
1130 22580 -37025.164036 -27983.837577
1131 22600 -36957.125374 -27913.399021
1132 22620 -36889.068321 -27842.943167
1133 22640 -36820.992901 -27772.470039
1134 22660 -36752.899136 -27701.979657
1135 22680 -36684.787050 -27631.472044
1136 22700 -36616.656667 -27560.947221
1137 22720 -36548.508010 -27490.405211
1138 22740 -36480.341102 -27419.846036
1139 22760 -36412.155966 -27349.269716
1140 22780 -36343.952626 -27278.676273
1141 22800 -36275.731105 -27208.065730
1142 22820 -36207.491425 -27137.438108
1143 22840 -36139.233610 -27066.793428
1144 22860 -36070.957683 -26996.131712
1145 22880 -36002.663667 -26925.452980
1146 22900 -35934.351584 -26854.757256
1147 22920 -35866.021457 -26784.044559
1148 22940 -35797.673310 -26713.314911
1149 22960 -35729.307164 -26642.568334
1150 22980 -35660.923043 -26571.804848
1151 23000 -35592.520968 -26501.024475
1152 23020 -35524.100964 -26430.227235
1153 23040 -35455.663051 -26359.413151
1154 23060 -35387.207253 -26288.582242
1155 23080 -35318.733592 -26217.734530
1156 23100 -35250.242090 -26146.870035
1157 23120 -35181.732770 -26075.988779
1158 23140 -35113.205653 -26005.090782
1159 23160 -35044.660763 -25934.176065
1160 23180 -34976.098120 -25863.244648
1161 23200 -34907.517748 -25792.296554
1162 23220 -34838.919669 -25721.331801
1163 23240 -34770.303903 -25650.350410
1164 23260 -34701.670474 -25579.352403
1165 23280 -34633.019403 -25508.337799
1166 23300 -34564.350712 -25437.306619
1167 23320 -34495.664423 -25366.258883
1168 23340 -34426.960557 -25295.194612
1169 23360 -34358.239137 -25224.113827
1170 23380 -34289.500184 -25153.016546
1171 23400 -34220.743719 -25081.902791
1172 23420 -34151.969764 -25010.772581
1173 23440 -34083.178341 -24939.625937
1174 23460 -34014.369471 -24868.462879
1175 23480 -33945.543176 -24797.283427
1176 23500 -33876.699477 -24726.087601
1177 23520 -33807.838395 -24654.875420
1178 23540 -33738.959951 -24583.646905
1179 23560 -33670.064167 -24512.402076
1180 23580 -33601.151064 -24441.140952
1181 23600 -33532.220664 -24369.863552
1182 23620 -33463.272986 -24298.569898
1183 23640 -33394.308053 -24227.260008
1184 23660 -33325.325885 -24155.933903
1185 23680 -33256.326503 -24084.591601
1186 23700 -33187.309928 -24013.233122
1187 23720 -33118.276181 -23941.858486
1188 23740 -33049.225283 -23870.467713
1189 23760 -32980.157255 -23799.060821
1190 23780 -32911.072117 -23727.637830
1191 23800 -32841.969890 -23656.198759
1192 23820 -32772.850594 -23584.743628
1193 23840 -32703.714251 -23513.272456
1194 23860 -32634.560880 -23441.785263
1195 23880 -32565.390503 -23370.282066
1196 23900 -32496.203140 -23298.762886
1197 23920 -32426.998810 -23227.227742
1198 23940 -32357.777536 -23155.676652
1199 23960 -32288.539336 -23084.109636
1200 23980 -32219.284231 -23012.526712
1201 24000 -32150.012242 -22940.927900
1202 24020 -32080.723388 -22869.313218
1203 24040 -32011.417690 -22797.682686
1204 24060 -31942.095168 -22726.036321
1205 24080 -31872.755842 -22654.374144
1206 24100 -31803.399732 -22582.696172
1207 24120 -31734.026857 -22511.002424
1208 24140 -31664.637239 -22439.292919
1209 24160 -31595.230896 -22367.567675
1210 24180 -31525.807849 -22295.826712
1211 24200 -31456.368118 -22224.070047
1212 24220 -31386.911722 -22152.297699
1213 24240 -31317.438680 -22080.509686
1214 24260 -31247.949014 -22008.706027
1215 24280 -31178.442741 -21936.886741
1216 24300 -31108.919883 -21865.051845
1217 24320 -31039.380458 -21793.201359
1218 24340 -30969.824485 -21721.335299
1219 24360 -30900.251986 -21649.453684
1220 24380 -30830.662978 -21577.556533
1221 24400 -30761.057481 -21505.643864
1222 24420 -30691.435515 -21433.715695
1223 24440 -30621.797100 -21361.772043
1224 24460 -30552.142253 -21289.812927
1225 24480 -30482.470994 -21217.838365
1226 24500 -30412.783344 -21145.848375
1227 24520 -30343.079320 -21073.842974
1228 24540 -30273.358942 -21001.822181
1229 24560 -30203.622229 -20929.786014
1230 24580 -30133.869200 -20857.734489
1231 24600 -30064.099874 -20785.667626
1232 24620 -29994.314270 -20713.585441
1233 24640 -29924.512407 -20641.487952
1234 24660 -29854.694304 -20569.375177
1235 24680 -29784.859979 -20497.247134
1236 24700 -29715.009452 -20425.103840
1237 24720 -29645.142740 -20352.945313
1238 24740 -29575.259864 -20280.771570
1239 24760 -29505.360841 -20208.582629
1240 24780 -29435.445690 -20136.378507
1241 24800 -29365.514430 -20064.159221
1242 24820 -29295.567079 -19991.924789
1243 24840 -29225.603657 -19919.675228
1244 24860 -29155.624180 -19847.410556
1245 24880 -29085.628668 -19775.130790
1246 24900 -29015.617140 -19702.835946
1247 24920 -28945.589613 -19630.526042
1248 24940 -28875.546105 -19558.201096
1249 24960 -28805.486636 -19485.861124
1250 24980 -28735.411224 -19413.506143
1251 25000 -28665.319886 -19341.136171
1252 25020 -28595.212641 -19268.751224
1253 25040 -28525.089507 -19196.351320
1254 25060 -28454.950502 -19123.936475
1255 25080 -28384.795644 -19051.506706
1256 25100 -28314.624951 -18979.062030
1257 25120 -28244.438441 -18906.602464
1258 25140 -28174.236133 -18834.128025
1259 25160 -28104.018043 -18761.638729
1260 25180 -28033.784191 -18689.134594
1261 25200 -27963.534593 -18616.615635
1262 25220 -27893.269268 -18544.081870
1263 25240 -27822.988233 -18471.533315
1264 25260 -27752.691507 -18398.969987
1265 25280 -27682.379106 -18326.391902
1266 25300 -27612.051048 -18253.799077
1267 25320 -27541.707352 -18181.191529
1268 25340 -27471.348035 -18108.569273
1269 25360 -27400.973113 -18035.932326
1270 25380 -27330.582606 -17963.280705
1271 25400 -27260.176530 -17890.614426
1272 25420 -27189.754902 -17817.933505
1273 25440 -27119.317741 -17745.237958
1274 25460 -27048.865063 -17672.527802
1275 25480 -26978.396886 -17599.803054
1276 25500 -26907.913227 -17527.063728
1277 25520 -26837.414104 -17454.309842
1278 25540 -26766.899533 -17381.541412
1279 25560 -26696.369533 -17308.758453
1280 25580 -26625.824119 -17235.960981
1281 25600 -26555.263310 -17163.149014
1282 25620 -26484.687122 -17090.322565
1283 25640 -26414.095572 -17017.481653
1284 25660 -26343.488678 -16944.626292
1285 25680 -26272.866456 -16871.756499
1286 25700 -26202.228924 -16798.872289
1287 25720 -26131.576098 -16725.973678
1288 25740 -26060.907996 -16653.060682
1289 25760 -25990.224633 -16580.133317
1290 25780 -25919.526027 -16507.191598
1291 25800 -25848.812195 -16434.235542
1292 25820 -25778.083154 -16361.265163
1293 25840 -25707.338920 -16288.280478
1294 25860 -25636.579510 -16215.281502
1295 25880 -25565.804940 -16142.268251
1296 25900 -25495.015228 -16069.240740
1297 25920 -25424.210390 -15996.198985
1298 25940 -25353.390442 -15923.143001
1299 25960 -25282.555401 -15850.072804
1300 25980 -25211.705283 -15776.988409
1301 26000 -25140.840105 -15703.889832
1302 26020 -25069.959884 -15630.777087
1303 26040 -24999.064635 -15557.650191
1304 26060 -24928.154376 -15484.509159
1305 26080 -24857.229122 -15411.354005
1306 26100 -24786.288890 -15338.184746
1307 26120 -24715.333696 -15265.001396
1308 26140 -24644.363556 -15191.803971
1309 26160 -24573.378487 -15118.592486
1310 26180 -24502.378504 -15045.366955
1311 26200 -24431.363624 -14972.127394
1312 26220 -24360.333863 -14898.873818
1313 26240 -24289.289238 -14825.606243
1314 26260 -24218.229763 -14752.324682
1315 26280 -24147.155456 -14679.029152
1316 26300 -24076.066331 -14605.719667
1317 26320 -24004.962406 -14532.396241
1318 26340 -23933.843696 -14459.058891
1319 26360 -23862.710216 -14385.707630
1320 26380 -23791.561984 -14312.342474
1321 26400 -23720.399014 -14238.963437
1322 26420 -23649.221322 -14165.570535
1323 26440 -23578.028925 -14092.163781
1324 26460 -23506.821837 -14018.743191
1325 26480 -23435.600076 -13945.308779
1326 26500 -23364.363655 -13871.860561
1327 26520 -23293.112592 -13798.398550
1328 26540 -23221.846901 -13724.922761
1329 26560 -23150.566598 -13651.433209
1330 26580 -23079.271700 -13577.929909
1331 26600 -23007.962220 -13504.412875
1332 26620 -22936.638175 -13430.882121
1333 26640 -22865.299581 -13357.337662
1334 26660 -22793.946452 -13283.779512
1335 26680 -22722.578805 -13210.207686
1336 26700 -22651.196653 -13136.622198
1337 26720 -22579.800014 -13063.023063
1338 26740 -22508.388902 -12989.410294
1339 26760 -22436.963333 -12915.783907
1340 26780 -22365.523321 -12842.143915
1341 26800 -22294.068882 -12768.490333
1342 26820 -22222.600032 -12694.823175
1343 26840 -22151.116785 -12621.142455
1344 26860 -22079.619156 -12547.448187
1345 26880 -22008.107161 -12473.740386
1346 26900 -21936.580815 -12400.019065
1347 26920 -21865.040133 -12326.284239
1348 26940 -21793.485129 -12252.535922
1349 26960 -21721.915820 -12178.774127
1350 26980 -21650.332219 -12104.998869
1351 27000 -21578.734342 -12031.210162
1352 27020 -21507.122204 -11957.408020
1353 27040 -21435.495819 -11883.592456
1354 27060 -21363.855203 -11809.763485
1355 27080 -21292.200370 -11735.921120
1356 27100 -21220.531335 -11662.065375
1357 27120 -21148.848114 -11588.196265
1358 27140 -21077.150719 -11514.313802
1359 27160 -21005.439168 -11440.418001
1360 27180 -20933.713473 -11366.508876
1361 27200 -20861.973650 -11292.586439
1362 27220 -20790.219713 -11218.650706
1363 27240 -20718.451678 -11144.701688
1364 27260 -20646.669558 -11070.739402
1365 27280 -20574.873368 -10996.763858
1366 27300 -20503.063123 -10922.775072
1367 27320 -20431.238837 -10848.773058
1368 27340 -20359.400525 -10774.757827
1369 27360 -20287.548201 -10700.729395
1370 27380 -20215.681879 -10626.687774
1371 27400 -20143.801575 -10552.632978
1372 27420 -20071.907302 -10478.565020
1373 27440 -19999.999074 -10404.483914
1374 27460 -19928.076906 -10330.389674
1375 27480 -19856.140813 -10256.282312
1376 27500 -19784.190808 -10182.161842
1377 27520 -19712.226906 -10108.028277
1378 27540 -19640.249121 -10033.881630
1379 27560 -19568.257468 -9959.721916
1380 27580 -19496.251959 -9885.549146
1381 27600 -19424.232610 -9811.363335
1382 27620 -19352.199435 -9737.164495
1383 27640 -19280.152447 -9662.952640
1384 27660 -19208.091661 -9588.727783
1385 27680 -19136.017091 -9514.489936
1386 27700 -19063.928750 -9440.239114
1387 27720 -18991.826653 -9365.975328
1388 27740 -18919.710814 -9291.698593
1389 27760 -18847.581247 -9217.408921
1390 27780 -18775.437965 -9143.106325
1391 27800 -18703.280982 -9068.790818
1392 27820 -18631.110312 -8994.462413
1393 27840 -18558.925970 -8920.121124
1394 27860 -18486.727968 -8845.766962
1395 27880 -18414.516321 -8771.399941
1396 27900 -18342.291043 -8697.020074
1397 27920 -18270.052146 -8622.627373
1398 27940 -18197.799646 -8548.221851
1399 27960 -18125.533554 -8473.803522
1400 27980 -18053.253886 -8399.372397
1401 28000 -17980.960655 -8324.928491
1402 28020 -17908.653874 -8250.471814
1403 28040 -17836.333557 -8176.002381
1404 28060 -17763.999717 -8101.520203
1405 28080 -17691.652368 -8027.025293
1406 28100 -17619.291524 -7952.517665
1407 28120 -17546.917197 -7877.997330
1408 28140 -17474.529402 -7803.464301
1409 28160 -17402.128152 -7728.918592
1410 28180 -17329.713460 -7654.360213
1411 28200 -17257.285340 -7579.789178
1412 28220 -17184.843805 -7505.205500
1413 28240 -17112.388868 -7430.609190
1414 28260 -17039.920542 -7356.000261
1415 28280 -16967.438842 -7281.378726
1416 28300 -16894.943779 -7206.744598
1417 28320 -16822.435368 -7132.097887
1418 28340 -16749.913622 -7057.438607
1419 28360 -16677.378553 -6982.766771
1420 28380 -16604.830175 -6908.082390
1421 28400 -16532.268501 -6833.385476
1422 28420 -16459.693545 -6758.676043
1423 28440 -16387.105318 -6683.954101
1424 28460 -16314.503835 -6609.219665
1425 28480 -16241.889109 -6534.472745
1426 28500 -16169.261152 -6459.713353
1427 28520 -16096.619977 -6384.941503
1428 28540 -16023.965597 -6310.157206
1429 28560 -15951.298026 -6235.360474
1430 28580 -15878.617276 -6160.551319
1431 28600 -15805.923361 -6085.729754
1432 28620 -15733.216292 -6010.895791
1433 28640 -15660.496083 -5936.049441
1434 28660 -15587.762747 -5861.190716
1435 28680 -15515.016297 -5786.319629
1436 28700 -15442.256745 -5711.436191
1437 28720 -15369.484104 -5636.540415
1438 28740 -15296.698387 -5561.632312
1439 28760 -15223.899606 -5486.711895
1440 28780 -15151.087775 -5411.779174
1441 28800 -15078.262905 -5336.834163
1442 28820 -15005.425011 -5261.876872
1443 28840 -14932.574103 -5186.907314
1444 28860 -14859.710196 -5111.925501
1445 28880 -14786.833301 -5036.931444
1446 28900 -14713.943431 -4961.925154
1447 28920 -14641.040598 -4886.906645
1448 28940 -14568.124816 -4811.875927
1449 28960 -14495.196096 -4736.833012
1450 28980 -14422.254451 -4661.777912
1451 29000 -14349.299894 -4586.710638
1452 29020 -14276.332437 -4511.631202
1453 29040 -14203.352092 -4436.539617
1454 29060 -14130.358872 -4361.435892
1455 29080 -14057.352789 -4286.320040
1456 29100 -13984.333855 -4211.192073
1457 29120 -13911.302083 -4136.052002
1458 29140 -13838.257486 -4060.899838
1459 29160 -13765.200075 -3985.735594
1460 29180 -13692.129862 -3910.559279
1461 29200 -13619.046860 -3835.370907
1462 29220 -13545.951082 -3760.170488
1463 29240 -13472.842539 -3684.958034
1464 29260 -13399.721243 -3609.733556
1465 29280 -13326.587207 -3534.497065
1466 29300 -13253.440443 -3459.248573
1467 29320 -13180.280963 -3383.988092
1468 29340 -13107.108778 -3308.715632
1469 29360 -13033.923902 -3233.431205
1470 29380 -12960.726346 -3158.134822
1471 29400 -12887.516122 -3082.826494
1472 29420 -12814.293242 -3007.506233
1473 29440 -12741.057719 -2932.174050
1474 29460 -12667.809563 -2856.829956
1475 29480 -12594.548788 -2781.473962
1476 29500 -12521.275404 -2706.106079
1477 29520 -12447.989425 -2630.726319
1478 29540 -12374.690861 -2555.334692
1479 29560 -12301.379725 -2479.931210
1480 29580 -12228.056028 -2404.515884
1481 29600 -12154.719783 -2329.088725
1482 29620 -12081.371001 -2253.649744
1483 29640 -12008.009694 -2178.198951
1484 29660 -11934.635873 -2102.736359
1485 29680 -11861.249551 -2027.261977
1486 29700 -11787.850739 -1951.775818
1487 29720 -11714.439449 -1876.277891
1488 29740 -11641.015692 -1800.768208
1489 29760 -11567.579481 -1725.246780
1490 29780 -11494.130826 -1649.713617
1491 29800 -11420.669740 -1574.168731
1492 29820 -11347.196234 -1498.612132
1493 29840 -11273.710319 -1423.043832
1494 29860 -11200.212008 -1347.463840
1495 29880 -11126.701312 -1271.872168
1496 29900 -11053.178242 -1196.268827
1497 29920 -10979.642809 -1120.653827
1498 29940 -10906.095026 -1045.027179
1499 29960 -10832.534904 -969.388894
1500 29980 -10758.962454 -893.738983
1501 30000 -10685.377687 -818.077455

E-023-assembly.json — 1.2 KB, updated 08-19-2026

JSON sidecar (click to expand)
{
  "experiment": "E-023",
  "task": "3.8 support: D-037 assembly (short-segment max, S_inf lower bound validation, margin/N0/N1)",
  "script": "research/numerics/scripts/E-023-finite-height-assembly.py",
  "checks": {
    "V1_sinf_lower_holds": true,
    "V2_margin_positive_convex": true,
    "V3_lambda_positive_3000": true
  },
  "key_values": {
    "M0_grid_max": 1.3323650421270834,
    "M0_lipschitz": 1.4075796709577815,
    "M0_use": 1.335180201468999,
    "C1": -1.1303307007539063,
    "C1_lower_form": -1.4189385332046727,
    "sinf_lower_min_slack": 9.520071987843544,
    "N0_measured_constants": 30217,
    "N0_traced_constants": 32871,
    "margin_N0_traced": 0.0795673057436943,
    "margin_at": {
      "32871": 0.0795673057436943,
      "100000": 287298.63095573196,
      "1000000": 5256686.503113639,
      "1000000000": 8938721534.500193,
      "1000000000000": 12396419838890.791,
      "1000000000000000000": 1.9304327085473796e+19,
      "8999999999994000000000001": 2.457962538414764e+26
    },
    "N1": 8999999999994000000000001,
    "N1_conservative_lagarias_window": 2.725978018024122e+21,
    "T0_platt_trudgian": 3000000000000.0
  },
  "elapsed_seconds": 56.2
}

Source code

Python script (click to expand)
"""E-023 — task 3.8 support: D-037 assembly computation.

Three components:
  S1. Short-segment max M0 = max |zeta'/zeta(-5/2+it)| for |t| <= 10.
      CLOSES THE D-036 GAP: the |R(s)| <= A log(t+2)+B0 bound was
      E-021-verified only for |t| >= 10; segment (III) passes within
      0.5 of the trivial pole at w = -2 (digamma pole), so the uniform
      bound fails near t = 0. Method: mpmath dps 30 grid (step 0.002)
      via the E-021 xi-route + sampled-Lipschitz correction x2 safety.
      (Only feeds an additive O(1) constant; slack is enormous.)
  S2. Validate the explicit S_inf lower bound used in D-037:
        S_inf(n) >= (1/2) n log n + (C1 - gamma/2) n - 4   (n >= 20)
      against E-021's EXACT S_inf (n <= 5000, validated 4.8e-25).
  S3. Assemble the full |S_f(n)| bound B(n) (D-036 constants, A = 0.9,
      B0 = 1.0, M0 from S1) and the margin
        margin(n) = Sinf_lower(n) - B(n) + 1;
      find N0 (margin > 0 and increasing); print margin at reference
      points and at N1 = (T0-1)^2, T0 = 3e12 (Platt-Trudgian 2021);
      conservative fallback N1* = T0^2/(4 log^2 T0) (Lagarias (1.16)).

Checks:
  V1. S_inf lower bound holds for all 20 <= n <= 5000 (exact values).
  V2. margin(n) > 0 for all n in [N0, 1e7] (grid, step 1) and margin
      convex (2nd differences > 0) on a log grid to N1 — with
      convexity + margin(N0) > 0 + margin'(N0) > 0 this gives
      margin(n) > 0 for ALL n in [N0, N1] (analytic in D-037).
  V3. lambda_n > 0 reconfirmed for n <= 3000 from E-021 exact CSV.

Outputs: research/numerics/data/E-023-assembly.csv (+ .json)
"""
import json
import sys
import time
from pathlib import Path

import mpmath as mp
import numpy as np

REPO = Path(__file__).resolve().parents[3]
DATA = REPO / "research" / "numerics" / "data"
E021 = DATA / "E-021-sinf-sf-curve.csv"
CSV = DATA / "E-023-assembly.csv"
JSON = DATA / "E-023-assembly.json"

GAMMA = 0.577215664901532860606512090082402431
C1 = (GAMMA - 1 - np.log(2 * np.pi)) / 2          # -1.1303...
C1L = C1 - GAMMA / 2                              # -1.4189... (lower-bound form)
A_USE, B0_USE = 0.9, 1.0
T0_PLATT = 3.0e12


# ---------------------------------------------------------------- S1
def zeta_logder(s):
    """zeta'/zeta via xi'/xi minus explicit terms (E-021 route, dps 30)."""
    sm = mp.mpc(s.real, s.imag)

    def xi_mp(u):
        return 0.5 * u * (u - 1) * mp.pi ** (-u / 2) * mp.gamma(u / 2) \
            * mp.zeta(u)

    xi_log = mp.diff(xi_mp, sm) / xi_mp(sm)
    return complex(xi_log - 1 / sm - 1 / (sm - 1)
                   + mp.mpf(0.5) * mp.log(mp.pi)
                   - mp.mpf(0.5) * mp.digamma(sm / 2))


def short_segment_max():
    mp.mp.dps = 30
    ts = np.arange(-10.0, 10.0 + 1e-12, 0.002)
    vals = np.array([abs(zeta_logder(complex(-2.5, t))) for t in ts])
    gmax = float(vals.max())
    # sampled Lipschitz constant (max adjacent slope), x2 safety
    lips = float(np.max(np.abs(np.diff(vals))) / 0.002)
    m0 = gmax + 0.002 * lips          # (h/2)*L would be 0.001*L; x2
    return gmax, lips, m0


# ------------------------------------------------------- D-036 pieces
def F_count(T):
    return (T / (2 * np.pi)) * np.log(T / (2 * np.pi)) - T / (2 * np.pi) \
        + 7 / 8


def S_bound(T):
    return 0.137 * np.log(T) + 0.443 * np.log(np.log(T)) + 1.588


def C0(t):
    return (F_count(t + 1) - F_count(t)) + S_bound(t + 1) + S_bound(t)


def H_bound(T, a, b0):
    return 3 * C0(T) ** 2 + a * np.log(T + 2) + b0


def B_bound(n, m0, a=A_USE, b0=B0_USE):
    """Full |S_f(n)| upper bound (D-036, variant-B contour, T = sqrt(n)+1)."""
    n = float(n)
    T = np.sqrt(n) + 1.0
    twoN = 2 * (F_count(T) + S_bound(T))
    I3_long = 4 * T * ((2 / 3) * C0(T) + a * np.log(T + 2) + b0)
    I3_short = 40.0 * m0                      # |k|<=2, length 20, max m0
    I24 = 2 * (np.e ** 4 + 1) * (7 * H_bound(T, a, b0) + 3.3)
    # I1 in log space: log I1 = log(2 sqrt(n) (e^{sqrt(n)/2}+1) 0.5699)
    #   - (2 sqrt(n) - 2) log 2  ->  hugely negative for sqrt(n) > 60
    r = np.sqrt(n)
    logI1 = np.log(2 * r * 0.5699) + r / 2 - (2 * r - 2) * np.log(2)
    I1 = np.exp(logI1) if logI1 > -700 else 0.0
    triv = 1.0
    return twoN + I3_long + I3_short + I24 + I1 + triv


def sinf_lower(n):
    n = np.asarray(n, dtype=np.float64)
    return 0.5 * n * np.log(n) + C1L * n - 4.0


def margin(n, m0, a=A_USE, b0=B0_USE):
    return sinf_lower(n) - B_bound(n, m0, a, b0) + 1.0


def find_N0(m0, a, b0):
    ngrid = np.arange(20, 400001)
    marg = np.array([margin(n, m0, a, b0) for n in ngrid])
    pos = ngrid[(marg > 0) & (np.gradient(marg, ngrid) > 0)]
    N0 = int(pos[0]) if len(pos) else -1
    cont = bool(np.all(marg[ngrid >= N0] > 0)) if N0 > 0 else False
    return N0, cont, float(marg[ngrid == N0][0]) if N0 > 0 else float("nan")


def main() -> int:
    if JSON.exists() and "--force" not in sys.argv:
        print(f"cached: {JSON} (use --force to recompute)")
        return 0
    t0 = time.time()

    print("S1: short-segment max ...", flush=True)
    gmax, lips, m0 = short_segment_max()
    print(f"  grid max = {gmax:.4f}, Lipschitz {lips:.1f}, "
          f"M0 = {m0:.4f}", flush=True)

    print("S2: S_inf lower-bound validation vs E-021 exact ...", flush=True)
    import csv as csvmod
    with open(E021) as f:
        rows = list(csvmod.DictReader(f))
    ns = np.array([int(r["n"]) for r in rows])
    sinf = np.array([float(r["S_inf"]) for r in rows])
    lam = np.array([float(r["lambda_n"]) for r in rows])
    mask = ns >= 20
    slack = sinf[mask] - sinf_lower(ns[mask])
    v1 = bool(np.all(slack > 0))
    print(f"  V1: min slack = {slack.min():.4f} at n = "
          f"{ns[mask][slack.argmin()]} (bound holds: {v1})", flush=True)
    v3 = bool(np.all(lam[ns <= 3000] > 0))
    print(f"  V3: lambda_n > 0 for n <= 3000 reconfirmed: {v3}", flush=True)

    print("S3: margin assembly ...", flush=True)
    # Two constant sets: measured (0.9, 1.0) and traced (2.0, 2.0, the
    # D-036 first-estimate analytic assembly).
    N0_meas, cont_meas, margN0_meas = find_N0(m0, 0.9, 1.0)
    N0_tr, cont_tr, margN0_tr = find_N0(m0, 2.0, 2.0)
    N0, cont = N0_tr, cont_tr
    print(f"  N0 (measured 0.9/1.0) = {N0_meas} (contiguous {cont_meas})")
    print(f"  N0 (traced   2.0/2.0) = {N0_tr} (contiguous {cont_tr})")

    logn = np.unique(np.logspace(np.log10(max(N0, 20)), np.log10(9e24),
                                 4000).astype(np.float64))
    bmarg = np.array([margin(n, m0, 2.0, 2.0) for n in logn])
    conv = bool(np.all(np.diff(bmarg, 2) > -1e-6 * bmarg[:-2].max()))

    N1 = int(3_000_000_000_000 - 1) ** 2
    N1_cons = T0_PLATT ** 2 / (4 * np.log(T0_PLATT) ** 2)
    refs = {int(n): float(margin(n, m0, 2.0, 2.0)) for n in
            [N0, 100000, 10 ** 6, 10 ** 9, 10 ** 12, 10 ** 18, N1]}
    print(f"  N0 = {N0} (traced; contiguous to 4e5: {cont}, "
          f"convex: {conv})")
    print(f"  margin(N0) = {refs[N0]:.1f}")
    print(f"  N1 = (T0-1)^2 = {N1:.6e};  N1* (Lagarias window) = "
          f"{N1_cons:.6e}")
    print(f"  margin(N1) = {refs[N1]:.3e}")

    v2 = bool(N0 > 0 and cont and conv and cont_meas)

    with open(CSV, "w", newline="") as f:
        w = csvmod.writer(f)
        w.writerow(["n", "margin_traced", "margin_measured"])
        for n in range(20, 400001, 20):
            w.writerow([n, f"{margin(n, m0, 2.0, 2.0):.6f}",
                        f"{margin(n, m0, 0.9, 1.0):.6f}"])

    meta = {
        "experiment": "E-023",
        "task": "3.8 support: D-037 assembly (short-segment max, S_inf "
                "lower bound validation, margin/N0/N1)",
        "script": "research/numerics/scripts/E-023-finite-height-assembly.py",
        "checks": {"V1_sinf_lower_holds": v1,
                   "V2_margin_positive_convex": v2,
                   "V3_lambda_positive_3000": v3},
        "key_values": {
            "M0_grid_max": gmax, "M0_lipschitz": lips, "M0_use": m0,
            "C1": C1, "C1_lower_form": C1L,
            "sinf_lower_min_slack": float(slack.min()),
            "N0_measured_constants": N0_meas,
            "N0_traced_constants": N0_tr,
            "margin_N0_traced": margN0_tr,
            "margin_at": {str(k): float(v) for k, v in refs.items()},
            "N1": N1, "N1_conservative_lagarias_window": N1_cons,
            "T0_platt_trudgian": T0_PLATT,
        },
        "elapsed_seconds": round(time.time() - t0, 1),
    }
    JSON.write_text(json.dumps(meta, indent=2))
    print(f"  wrote {CSV.name}, {JSON.name}; "
          f"elapsed {meta['elapsed_seconds']}s")
    return 0 if (v1 and v2 and v3) else 1


if __name__ == "__main__":
    sys.exit(main())