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 27 of 40 · 500/page · 20000 rows next →
# nmargin_tracedmargin_measured
13002 260020 1079121.712748 1101314.776967
13003 260040 1079225.491068 1101419.290852
13004 260060 1079329.270278 1101523.805599
13005 260080 1079433.050375 1101628.321208
13006 260100 1079536.831361 1101732.837680
13007 260120 1079640.613236 1101837.355013
13008 260140 1079744.395999 1101941.873209
13009 260160 1079848.179650 1102046.392267
13010 260180 1079951.964189 1102150.912186
13011 260200 1080055.749616 1102255.432968
13012 260220 1080159.535931 1102359.954611
13013 260240 1080263.323134 1102464.477116
13014 260260 1080367.111224 1102569.000482
13015 260280 1080470.900203 1102673.524710
13016 260300 1080574.690069 1102778.049800
13017 260320 1080678.480823 1102882.575751
13018 260340 1080782.272464 1102987.102563
13019 260360 1080886.064993 1103091.630237
13020 260380 1080989.858409 1103196.158772
13021 260400 1081093.652712 1103300.688167
13022 260420 1081197.447903 1103405.218424
13023 260440 1081301.243981 1103509.749542
13024 260460 1081405.040946 1103614.281521
13025 260480 1081508.838797 1103718.814361
13026 260500 1081612.637536 1103823.348061
13027 260520 1081716.437162 1103927.882622
13028 260540 1081820.237674 1104032.418044
13029 260560 1081924.039073 1104136.954326
13030 260580 1082027.841359 1104241.491469
13031 260600 1082131.644531 1104346.029472
13032 260620 1082235.448590 1104450.568336
13033 260640 1082339.253535 1104555.108059
13034 260660 1082443.059367 1104659.648643
13035 260680 1082546.866084 1104764.190087
13036 260700 1082650.673688 1104868.732392
13037 260720 1082754.482178 1104973.275556
13038 260740 1082858.291554 1105077.819580
13039 260760 1082962.101816 1105182.364464
13040 260780 1083065.912964 1105286.910207
13041 260800 1083169.724998 1105391.456810
13042 260820 1083273.537917 1105496.004273
13043 260840 1083377.351722 1105600.552596
13044 260860 1083481.166413 1105705.101778
13045 260880 1083584.981989 1105809.651819
13046 260900 1083688.798451 1105914.202720
13047 260920 1083792.615798 1106018.754480
13048 260940 1083896.434030 1106123.307099
13049 260960 1084000.253147 1106227.860577
13050 260980 1084104.073150 1106332.414914
13051 261000 1084207.894037 1106436.970110
13052 261020 1084311.715810 1106541.526166
13053 261040 1084415.538468 1106646.083080
13054 261060 1084519.362010 1106750.640852
13055 261080 1084623.186437 1106855.199484
13056 261100 1084727.011749 1106959.758974
13057 261120 1084830.837945 1107064.319322
13058 261140 1084934.665026 1107168.880530
13059 261160 1085038.492992 1107273.442595
13060 261180 1085142.321842 1107378.005519
13061 261200 1085246.151576 1107482.569301
13062 261220 1085349.982194 1107587.133941
13063 261240 1085453.813697 1107691.699440
13064 261260 1085557.646084 1107796.265796
13065 261280 1085661.479354 1107900.833011
13066 261300 1085765.313509 1108005.401083
13067 261320 1085869.148548 1108109.970013
13068 261340 1085972.984470 1108214.539801
13069 261360 1086076.821276 1108319.110447
13070 261380 1086180.658966 1108423.681950
13071 261400 1086284.497539 1108528.254311
13072 261420 1086388.336996 1108632.827529
13073 261440 1086492.177336 1108737.401605
13074 261460 1086596.018560 1108841.976538
13075 261480 1086699.860667 1108946.552328
13076 261500 1086803.703657 1109051.128976
13077 261520 1086907.547530 1109155.706480
13078 261540 1087011.392286 1109260.284842
13079 261560 1087115.237925 1109364.864061
13080 261580 1087219.084448 1109469.444136
13081 261600 1087322.931853 1109574.025069
13082 261620 1087426.780140 1109678.606858
13083 261640 1087530.629311 1109783.189504
13084 261660 1087634.479364 1109887.773006
13085 261680 1087738.330300 1109992.357365
13086 261700 1087842.182118 1110096.942581
13087 261720 1087946.034818 1110201.528653
13088 261740 1088049.888401 1110306.115581
13089 261760 1088153.742866 1110410.703366
13090 261780 1088257.598213 1110515.292007
13091 261800 1088361.454443 1110619.881504
13092 261820 1088465.311554 1110724.471857
13093 261840 1088569.169547 1110829.063066
13094 261860 1088673.028422 1110933.655131
13095 261880 1088776.888179 1111038.248051
13096 261900 1088880.748818 1111142.841828
13097 261920 1088984.610339 1111247.436460
13098 261940 1089088.472741 1111352.031948
13099 261960 1089192.336024 1111456.628292
13100 261980 1089296.200189 1111561.225491
13101 262000 1089400.065235 1111665.823545
13102 262020 1089503.931163 1111770.422455
13103 262040 1089607.797972 1111875.022220
13104 262060 1089711.665662 1111979.622840
13105 262080 1089815.534233 1112084.224315
13106 262100 1089919.403685 1112188.826646
13107 262120 1090023.274017 1112293.429831
13108 262140 1090127.145231 1112398.033872
13109 262160 1090231.017326 1112502.638767
13110 262180 1090334.890301 1112607.244517
13111 262200 1090438.764157 1112711.851122
13112 262220 1090542.638893 1112816.458581
13113 262240 1090646.514510 1112921.066895
13114 262260 1090750.391007 1113025.676063
13115 262280 1090854.268385 1113130.286086
13116 262300 1090958.146643 1113234.896963
13117 262320 1091062.025781 1113339.508695
13118 262340 1091165.905799 1113444.121281
13119 262360 1091269.786697 1113548.734721
13120 262380 1091373.668476 1113653.349015
13121 262400 1091477.551134 1113757.964163
13122 262420 1091581.434672 1113862.580165
13123 262440 1091685.319089 1113967.197021
13124 262460 1091789.204387 1114071.814730
13125 262480 1091893.090563 1114176.433294
13126 262500 1091996.977620 1114281.052711
13127 262520 1092100.865556 1114385.672981
13128 262540 1092204.754371 1114490.294105
13129 262560 1092308.644066 1114594.916083
13130 262580 1092412.534639 1114699.538914
13131 262600 1092516.426092 1114804.162598
13132 262620 1092620.318424 1114908.787136
13133 262640 1092724.211635 1115013.412526
13134 262660 1092828.105725 1115118.038770
13135 262680 1092932.000694 1115222.665867
13136 262700 1093035.896542 1115327.293817
13137 262720 1093139.793268 1115431.922619
13138 262740 1093243.690873 1115536.552275
13139 262760 1093347.589357 1115641.182783
13140 262780 1093451.488719 1115745.814144
13141 262800 1093555.388959 1115850.446357
13142 262820 1093659.290078 1115955.079423
13143 262840 1093763.192075 1116059.713342
13144 262860 1093867.094951 1116164.348113
13145 262880 1093970.998704 1116268.983736
13146 262900 1094074.903336 1116373.620211
13147 262920 1094178.808845 1116478.257539
13148 262940 1094282.715233 1116582.895719
13149 262960 1094386.622498 1116687.534750
13150 262980 1094490.530641 1116792.174634
13151 263000 1094594.439662 1116896.815370
13152 263020 1094698.349560 1117001.456957
13153 263040 1094802.260336 1117106.099396
13154 263060 1094906.171989 1117210.742687
13155 263080 1095010.084520 1117315.386830
13156 263100 1095113.997928 1117420.031824
13157 263120 1095217.912213 1117524.677670
13158 263140 1095321.827376 1117629.324367
13159 263160 1095425.743416 1117733.971915
13160 263180 1095529.660332 1117838.620314
13161 263200 1095633.578126 1117943.269565
13162 263220 1095737.496796 1118047.919667
13163 263240 1095841.416344 1118152.570620
13164 263260 1095945.336768 1118257.222424
13165 263280 1096049.258069 1118361.875079
13166 263300 1096153.180246 1118466.528585
13167 263320 1096257.103300 1118571.182941
13168 263340 1096361.027230 1118675.838149
13169 263360 1096464.952037 1118780.494206
13170 263380 1096568.877720 1118885.151115
13171 263400 1096672.804279 1118989.808874
13172 263420 1096776.731715 1119094.467483
13173 263440 1096880.660026 1119199.126943
13174 263460 1096984.589214 1119303.787253
13175 263480 1097088.519277 1119408.448413
13176 263500 1097192.450216 1119513.110424
13177 263520 1097296.382032 1119617.773284
13178 263540 1097400.314722 1119722.436995
13179 263560 1097504.248289 1119827.101555
13180 263580 1097608.182731 1119931.766965
13181 263600 1097712.118049 1120036.433225
13182 263620 1097816.054242 1120141.100335
13183 263640 1097919.991310 1120245.768295
13184 263660 1098023.929254 1120350.437104
13185 263680 1098127.868073 1120455.106762
13186 263700 1098231.807767 1120559.777271
13187 263720 1098335.748336 1120664.448628
13188 263740 1098439.689780 1120769.120835
13189 263760 1098543.632099 1120873.793891
13190 263780 1098647.575293 1120978.467796
13191 263800 1098751.519361 1121083.142550
13192 263820 1098855.464305 1121187.818154
13193 263840 1098959.410123 1121292.494606
13194 263860 1099063.356815 1121397.171907
13195 263880 1099167.304382 1121501.850057
13196 263900 1099271.252824 1121606.529056
13197 263920 1099375.202140 1121711.208903
13198 263940 1099479.152330 1121815.889599
13199 263960 1099583.103394 1121920.571144
13200 263980 1099687.055332 1122025.253537
13201 264000 1099791.008145 1122129.936778
13202 264020 1099894.961831 1122234.620868
13203 264040 1099998.916392 1122339.305806
13204 264060 1100102.871826 1122443.991593
13205 264080 1100206.828134 1122548.678227
13206 264100 1100310.785315 1122653.365709
13207 264120 1100414.743371 1122758.054040
13208 264140 1100518.702299 1122862.743218
13209 264160 1100622.662102 1122967.433245
13210 264180 1100726.622777 1123072.124119
13211 264200 1100830.584326 1123176.815840
13212 264220 1100934.546749 1123281.508410
13213 264240 1101038.510044 1123386.201827
13214 264260 1101142.474213 1123490.896091
13215 264280 1101246.439254 1123595.591203
13216 264300 1101350.405169 1123700.287162
13217 264320 1101454.371956 1123804.983969
13218 264340 1101558.339617 1123909.681622
13219 264360 1101662.308150 1124014.380123
13220 264380 1101766.277555 1124119.079471
13221 264400 1101870.247834 1124223.779666
13222 264420 1101974.218985 1124328.480708
13223 264440 1102078.191008 1124433.182597
13224 264460 1102182.163904 1124537.885333
13225 264480 1102286.137672 1124642.588915
13226 264500 1102390.112312 1124747.293344
13227 264520 1102494.087824 1124851.998620
13228 264540 1102598.064209 1124956.704742
13229 264560 1102702.041466 1125061.411711
13230 264580 1102806.019594 1125166.119526
13231 264600 1102909.998594 1125270.828187
13232 264620 1103013.978467 1125375.537695
13233 264640 1103117.959211 1125480.248049
13234 264660 1103221.940826 1125584.959249
13235 264680 1103325.923314 1125689.671295
13236 264700 1103429.906672 1125794.384187
13237 264720 1103533.890903 1125899.097924
13238 264740 1103637.876004 1126003.812508
13239 264760 1103741.861977 1126108.527938
13240 264780 1103845.848821 1126213.244213
13241 264800 1103949.836537 1126317.961334
13242 264820 1104053.825123 1126422.679300
13243 264840 1104157.814580 1126527.398112
13244 264860 1104261.804909 1126632.117769
13245 264880 1104365.796108 1126736.838272
13246 264900 1104469.788178 1126841.559620
13247 264920 1104573.781119 1126946.281813
13248 264940 1104677.774930 1127051.004851
13249 264960 1104781.769612 1127155.728735
13250 264980 1104885.765165 1127260.453463
13251 265000 1104989.761588 1127365.179036
13252 265020 1105093.758881 1127469.905454
13253 265040 1105197.757045 1127574.632717
13254 265060 1105301.756079 1127679.360825
13255 265080 1105405.755983 1127784.089778
13256 265100 1105509.756757 1127888.819575
13257 265120 1105613.758401 1127993.550216
13258 265140 1105717.760915 1128098.281702
13259 265160 1105821.764299 1128203.014032
13260 265180 1105925.768553 1128307.747207
13261 265200 1106029.773676 1128412.481226
13262 265220 1106133.779669 1128517.216089
13263 265240 1106237.786532 1128621.951796
13264 265260 1106341.794264 1128726.688348
13265 265280 1106445.802866 1128831.425743
13266 265300 1106549.812337 1128936.163982
13267 265320 1106653.822677 1129040.903065
13268 265340 1106757.833887 1129145.642992
13269 265360 1106861.845966 1129250.383762
13270 265380 1106965.858913 1129355.125376
13271 265400 1107069.872730 1129459.867834
13272 265420 1107173.887416 1129564.611135
13273 265440 1107277.902971 1129669.355280
13274 265460 1107381.919394 1129774.100268
13275 265480 1107485.936686 1129878.846099
13276 265500 1107589.954847 1129983.592773
13277 265520 1107693.973876 1130088.340291
13278 265540 1107797.993774 1130193.088652
13279 265560 1107902.014540 1130297.837855
13280 265580 1108006.036175 1130402.587902
13281 265600 1108110.058678 1130507.338791
13282 265620 1108214.082049 1130612.090524
13283 265640 1108318.106288 1130716.843099
13284 265660 1108422.131396 1130821.596517
13285 265680 1108526.157371 1130926.350777
13286 265700 1108630.184214 1131031.105880
13287 265720 1108734.211926 1131135.861825
13288 265740 1108838.240505 1131240.618613
13289 265760 1108942.269951 1131345.376243
13290 265780 1109046.300266 1131450.134715
13291 265800 1109150.331448 1131554.894029
13292 265820 1109254.363497 1131659.654186
13293 265840 1109358.396414 1131764.415185
13294 265860 1109462.430198 1131869.177025
13295 265880 1109566.464850 1131973.939708
13296 265900 1109670.500368 1132078.703232
13297 265920 1109774.536754 1132183.467598
13298 265940 1109878.574007 1132288.232806
13299 265960 1109982.612127 1132392.998856
13300 265980 1110086.651114 1132497.765747
13301 266000 1110190.690968 1132602.533479
13302 266020 1110294.731688 1132707.302053
13303 266040 1110398.773276 1132812.071469
13304 266060 1110502.815730 1132916.841725
13305 266080 1110606.859050 1133021.612823
13306 266100 1110710.903237 1133126.384762
13307 266120 1110814.948291 1133231.157542
13308 266140 1110918.994211 1133335.931164
13309 266160 1111023.040997 1133440.705626
13310 266180 1111127.088649 1133545.480929
13311 266200 1111231.137167 1133650.257073
13312 266220 1111335.186552 1133755.034057
13313 266240 1111439.236803 1133859.811882
13314 266260 1111543.287919 1133964.590548
13315 266280 1111647.339902 1134069.370055
13316 266300 1111751.392750 1134174.150402
13317 266320 1111855.446464 1134278.931589
13318 266340 1111959.501043 1134383.713617
13319 266360 1112063.556488 1134488.496484
13320 266380 1112167.612799 1134593.280193
13321 266400 1112271.669975 1134698.064741
13322 266420 1112375.728017 1134802.850129
13323 266440 1112479.786923 1134907.636357
13324 266460 1112583.846695 1135012.423426
13325 266480 1112687.907332 1135117.211334
13326 266500 1112791.968835 1135222.000082
13327 266520 1112896.031202 1135326.789669
13328 266540 1113000.094434 1135431.580097
13329 266560 1113104.158531 1135536.371364
13330 266580 1113208.223493 1135641.163470
13331 266600 1113312.289320 1135745.956416
13332 266620 1113416.356011 1135850.750201
13333 266640 1113520.423567 1135955.544826
13334 266660 1113624.491987 1136060.340289
13335 266680 1113728.561272 1136165.136592
13336 266700 1113832.631421 1136269.933734
13337 266720 1113936.702434 1136374.731716
13338 266740 1114040.774312 1136479.530536
13339 266760 1114144.847054 1136584.330195
13340 266780 1114248.920660 1136689.130693
13341 266800 1114352.995130 1136793.932029
13342 266820 1114457.070464 1136898.734205
13343 266840 1114561.146662 1137003.537219
13344 266860 1114665.223723 1137108.341071
13345 266880 1114769.301649 1137213.145762
13346 266900 1114873.380438 1137317.951292
13347 266920 1114977.460090 1137422.757659
13348 266940 1115081.540606 1137527.564866
13349 266960 1115185.621986 1137632.372910
13350 266980 1115289.704229 1137737.181792
13351 267000 1115393.787335 1137841.991513
13352 267020 1115497.871305 1137946.802072
13353 267040 1115601.956138 1138051.613468
13354 267060 1115706.041833 1138156.425703
13355 267080 1115810.128392 1138261.238775
13356 267100 1115914.215814 1138366.052685
13357 267120 1116018.304099 1138470.867433
13358 267140 1116122.393246 1138575.683018
13359 267160 1116226.483256 1138680.499441
13360 267180 1116330.574129 1138785.316701
13361 267200 1116434.665865 1138890.134799
13362 267220 1116538.758463 1138994.953734
13363 267240 1116642.851923 1139099.773507
13364 267260 1116746.946246 1139204.594116
13365 267280 1116851.041432 1139309.415563
13366 267300 1116955.137479 1139414.237847
13367 267320 1117059.234389 1139519.060968
13368 267340 1117163.332160 1139623.884926
13369 267360 1117267.430794 1139728.709720
13370 267380 1117371.530290 1139833.535352
13371 267400 1117475.630648 1139938.361820
13372 267420 1117579.731867 1140043.189125
13373 267440 1117683.833949 1140148.017266
13374 267460 1117787.936892 1140252.846244
13375 267480 1117892.040696 1140357.676059
13376 267500 1117996.145362 1140462.506709
13377 267520 1118100.250890 1140567.338197
13378 267540 1118204.357279 1140672.170520
13379 267560 1118308.464529 1140777.003680
13380 267580 1118412.572641 1140881.837675
13381 267600 1118516.681614 1140986.672507
13382 267620 1118620.791448 1141091.508175
13383 267640 1118724.902143 1141196.344679
13384 267660 1118829.013699 1141301.182018
13385 267680 1118933.126115 1141406.020194
13386 267700 1119037.239393 1141510.859205
13387 267720 1119141.353532 1141615.699052
13388 267740 1119245.468531 1141720.539734
13389 267760 1119349.584391 1141825.381252
13390 267780 1119453.701111 1141930.223605
13391 267800 1119557.818692 1142035.066794
13392 267820 1119661.937133 1142139.910818
13393 267840 1119766.056435 1142244.755677
13394 267860 1119870.176597 1142349.601371
13395 267880 1119974.297619 1142454.447901
13396 267900 1120078.419501 1142559.295266
13397 267920 1120182.542244 1142664.143465
13398 267940 1120286.665846 1142768.992500
13399 267960 1120390.790308 1142873.842369
13400 267980 1120494.915631 1142978.693073
13401 268000 1120599.041813 1143083.544612
13402 268020 1120703.168854 1143188.396985
13403 268040 1120807.296756 1143293.250193
13404 268060 1120911.425516 1143398.104236
13405 268080 1121015.555137 1143502.959113
13406 268100 1121119.685617 1143607.814824
13407 268120 1121223.816956 1143712.671370
13408 268140 1121327.949154 1143817.528750
13409 268160 1121432.082212 1143922.386964
13410 268180 1121536.216129 1144027.246012
13411 268200 1121640.350905 1144132.105894
13412 268220 1121744.486540 1144236.966610
13413 268240 1121848.623034 1144341.828160
13414 268260 1121952.760387 1144446.690544
13415 268280 1122056.898598 1144551.553762
13416 268300 1122161.037669 1144656.417813
13417 268320 1122265.177598 1144761.282698
13418 268340 1122369.318385 1144866.148417
13419 268360 1122473.460032 1144971.014969
13420 268380 1122577.602536 1145075.882354
13421 268400 1122681.745899 1145180.750573
13422 268420 1122785.890121 1145285.619625
13423 268440 1122890.035200 1145390.489510
13424 268460 1122994.181138 1145495.360229
13425 268480 1123098.327934 1145600.231781
13426 268500 1123202.475588 1145705.104165
13427 268520 1123306.624100 1145809.977383
13428 268540 1123410.773469 1145914.851433
13429 268560 1123514.923697 1146019.726317
13430 268580 1123619.074782 1146124.602033
13431 268600 1123723.226725 1146229.478581
13432 268620 1123827.379526 1146334.355963
13433 268640 1123931.533184 1146439.234177
13434 268660 1124035.687700 1146544.113223
13435 268680 1124139.843073 1146648.993102
13436 268700 1124243.999303 1146753.873813
13437 268720 1124348.156391 1146858.755357
13438 268740 1124452.314336 1146963.637732
13439 268760 1124556.473138 1147068.520940
13440 268780 1124660.632797 1147173.404980
13441 268800 1124764.793313 1147278.289852
13442 268820 1124868.954686 1147383.175556
13443 268840 1124973.116916 1147488.062092
13444 268860 1125077.280003 1147592.949460
13445 268880 1125181.443946 1147697.837659
13446 268900 1125285.608746 1147802.726690
13447 268920 1125389.774403 1147907.616553
13448 268940 1125493.940916 1148012.507247
13449 268960 1125598.108285 1148117.398773
13450 268980 1125702.276511 1148222.291130
13451 269000 1125806.445594 1148327.184319
13452 269020 1125910.615532 1148432.078338
13453 269040 1126014.786327 1148536.973189
13454 269060 1126118.957977 1148641.868872
13455 269080 1126223.130484 1148746.765385
13456 269100 1126327.303846 1148851.662729
13457 269120 1126431.478065 1148956.560904
13458 269140 1126535.653139 1149061.459910
13459 269160 1126639.829069 1149166.359747
13460 269180 1126744.005855 1149271.260415
13461 269200 1126848.183496 1149376.161913
13462 269220 1126952.361993 1149481.064242
13463 269240 1127056.541345 1149585.967402
13464 269260 1127160.721553 1149690.871392
13465 269280 1127264.902616 1149795.776212
13466 269300 1127369.084534 1149900.681863
13467 269320 1127473.267308 1150005.588344
13468 269340 1127577.450936 1150110.495655
13469 269360 1127681.635420 1150215.403797
13470 269380 1127785.820758 1150320.312768
13471 269400 1127890.006952 1150425.222570
13472 269420 1127994.194000 1150530.133201
13473 269440 1128098.381903 1150635.044663
13474 269460 1128202.570661 1150739.956954
13475 269480 1128306.760273 1150844.870075
13476 269500 1128410.950740 1150949.784025
13477 269520 1128515.142062 1151054.698806
13478 269540 1128619.334238 1151159.614415
13479 269560 1128723.527268 1151264.530855
13480 269580 1128827.721152 1151369.448123
13481 269600 1128931.915891 1151474.366221
13482 269620 1129036.111484 1151579.285149
13483 269640 1129140.307931 1151684.204905
13484 269660 1129244.505232 1151789.125491
13485 269680 1129348.703387 1151894.046906
13486 269700 1129452.902395 1151998.969149
13487 269720 1129557.102258 1152103.892222
13488 269740 1129661.302974 1152208.816124
13489 269760 1129765.504544 1152313.740854
13490 269780 1129869.706967 1152418.666413
13491 269800 1129973.910244 1152523.592801
13492 269820 1130078.114375 1152628.520018
13493 269840 1130182.319359 1152733.448063
13494 269860 1130286.525196 1152838.376936
13495 269880 1130390.731886 1152943.306638
13496 269900 1130494.939430 1153048.237169
13497 269920 1130599.147826 1153153.168527
13498 269940 1130703.357076 1153258.100714
13499 269960 1130807.567179 1153363.033729
13500 269980 1130911.778134 1153467.967572
13501 270000 1131015.989943 1153572.902243

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())