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 26 of 40 · 500/page · 20000 rows next →
# nmargin_tracedmargin_measured
12502 250020 1027345.448368 1049167.381438
12503 250040 1027448.772759 1049271.454893
12504 250060 1027552.098076 1049375.529247
12505 250080 1027655.424322 1049479.604501
12506 250100 1027758.751494 1049583.680655
12507 250120 1027862.079594 1049687.757709
12508 250140 1027965.408622 1049791.835662
12509 250160 1028068.738576 1049895.914514
12510 250180 1028172.069458 1049999.994266
12511 250200 1028275.401267 1050104.074917
12512 250220 1028378.734003 1050208.156467
12513 250240 1028482.067665 1050312.238916
12514 250260 1028585.402255 1050416.322265
12515 250280 1028688.737771 1050520.406512
12516 250300 1028792.074214 1050624.491659
12517 250320 1028895.411584 1050728.577704
12518 250340 1028998.749879 1050832.664648
12519 250360 1029102.089102 1050936.752490
12520 250380 1029205.429251 1051040.841231
12521 250400 1029308.770325 1051144.930871
12522 250420 1029412.112327 1051249.021409
12523 250440 1029515.455254 1051353.112845
12524 250460 1029618.799107 1051457.205180
12525 250480 1029722.143886 1051561.298412
12526 250500 1029825.489591 1051665.392543
12527 250520 1029928.836222 1051769.487572
12528 250540 1030032.183778 1051873.583499
12529 250560 1030135.532260 1051977.680324
12530 250580 1030238.881667 1052081.778047
12531 250600 1030342.232000 1052185.876667
12532 250620 1030445.583258 1052289.976185
12533 250640 1030548.935442 1052394.076600
12534 250660 1030652.288551 1052498.177913
12535 250680 1030755.642585 1052602.280124
12536 250700 1030858.997543 1052706.383232
12537 250720 1030962.353427 1052810.487237
12538 250740 1031065.710236 1052914.592139
12539 250760 1031169.067969 1053018.697938
12540 250780 1031272.426627 1053122.804634
12541 250800 1031375.786210 1053226.912228
12542 250820 1031479.146717 1053331.020718
12543 250840 1031582.508149 1053435.130105
12544 250860 1031685.870505 1053539.240388
12545 250880 1031789.233786 1053643.351569
12546 250900 1031892.597990 1053747.463646
12547 250920 1031995.963119 1053851.576619
12548 250940 1032099.329172 1053955.690489
12549 250960 1032202.696149 1054059.805255
12550 250980 1032306.064050 1054163.920917
12551 251000 1032409.432874 1054268.037475
12552 251020 1032512.802622 1054372.154930
12553 251040 1032616.173294 1054476.273280
12554 251060 1032719.544890 1054580.392527
12555 251080 1032822.917409 1054684.512669
12556 251100 1032926.290851 1054788.633707
12557 251120 1033029.665217 1054892.755641
12558 251140 1033133.040506 1054996.878471
12559 251160 1033236.416718 1055101.002196
12560 251180 1033339.793853 1055205.126816
12561 251200 1033443.171911 1055309.252332
12562 251220 1033546.550892 1055413.378743
12563 251240 1033649.930796 1055517.506050
12564 251260 1033753.311623 1055621.634251
12565 251280 1033856.693373 1055725.763348
12566 251300 1033960.076045 1055829.893340
12567 251320 1034063.459639 1055934.024226
12568 251340 1034166.844156 1056038.156008
12569 251360 1034270.229596 1056142.288684
12570 251380 1034373.615957 1056246.422255
12571 251400 1034477.003241 1056350.556720
12572 251420 1034580.391447 1056454.692080
12573 251440 1034683.780575 1056558.828335
12574 251460 1034787.170625 1056662.965484
12575 251480 1034890.561597 1056767.103527
12576 251500 1034993.953490 1056871.242465
12577 251520 1035097.346306 1056975.382296
12578 251540 1035200.740043 1057079.523022
12579 251560 1035304.134701 1057183.664642
12580 251580 1035407.530281 1057287.807156
12581 251600 1035510.926783 1057391.950563
12582 251620 1035614.324205 1057496.094864
12583 251640 1035717.722549 1057600.240059
12584 251660 1035821.121814 1057704.386148
12585 251680 1035924.522000 1057808.533130
12586 251700 1036027.923108 1057912.681006
12587 251720 1036131.325136 1058016.829775
12588 251740 1036234.728084 1058120.979437
12589 251760 1036338.131954 1058225.129992
12590 251780 1036441.536744 1058329.281441
12591 251800 1036544.942455 1058433.433783
12592 251820 1036648.349087 1058537.587017
12593 251840 1036751.756639 1058641.741145
12594 251860 1036855.165111 1058745.896166
12595 251880 1036958.574503 1058850.052079
12596 251900 1037061.984816 1058954.208885
12597 251920 1037165.396049 1059058.366583
12598 251940 1037268.808201 1059162.525175
12599 251960 1037372.221274 1059266.684658
12600 251980 1037475.635267 1059370.845034
12601 252000 1037579.050179 1059475.006302
12602 252020 1037682.466011 1059579.168463
12603 252040 1037785.882763 1059683.331516
12604 252060 1037889.300434 1059787.495460
12605 252080 1037992.719025 1059891.660297
12606 252100 1038096.138535 1059995.826026
12607 252120 1038199.558965 1060099.992646
12608 252140 1038302.980313 1060204.160158
12609 252160 1038406.402581 1060308.328562
12610 252180 1038509.825768 1060412.497858
12611 252200 1038613.249874 1060516.668045
12612 252220 1038716.674899 1060620.839124
12613 252240 1038820.100842 1060725.011094
12614 252260 1038923.527705 1060829.183955
12615 252280 1039026.955486 1060933.357707
12616 252300 1039130.384185 1061037.532351
12617 252320 1039233.813803 1061141.707886
12618 252340 1039337.244340 1061245.884312
12619 252360 1039440.675795 1061350.061628
12620 252380 1039544.108168 1061454.239836
12621 252400 1039647.541459 1061558.418934
12622 252420 1039750.975669 1061662.598923
12623 252440 1039854.410796 1061766.779803
12624 252460 1039957.846842 1061870.961573
12625 252480 1040061.283805 1061975.144233
12626 252500 1040164.721686 1062079.327784
12627 252520 1040268.160485 1062183.512226
12628 252540 1040371.600201 1062287.697557
12629 252560 1040475.040835 1062391.883779
12630 252580 1040578.482387 1062496.070891
12631 252600 1040681.924855 1062600.258892
12632 252620 1040785.368242 1062704.447784
12633 252640 1040888.812545 1062808.637566
12634 252660 1040992.257765 1062912.828237
12635 252680 1041095.703903 1063017.019798
12636 252700 1041199.150958 1063121.212249
12637 252720 1041302.598929 1063225.405589
12638 252740 1041406.047817 1063329.599819
12639 252760 1041509.497623 1063433.794938
12640 252780 1041612.948344 1063537.990946
12641 252800 1041716.399983 1063642.187844
12642 252820 1041819.852537 1063746.385631
12643 252840 1041923.306009 1063850.584306
12644 252860 1042026.760396 1063954.783871
12645 252880 1042130.215700 1064058.984325
12646 252900 1042233.671920 1064163.185668
12647 252920 1042337.129057 1064267.387899
12648 252940 1042440.587109 1064371.591020
12649 252960 1042544.046077 1064475.795028
12650 252980 1042647.505961 1064579.999926
12651 253000 1042750.966761 1064684.205712
12652 253020 1042854.428477 1064788.412386
12653 253040 1042957.891108 1064892.619948
12654 253060 1043061.354655 1064996.828399
12655 253080 1043164.819117 1065101.037738
12656 253100 1043268.284495 1065205.247965
12657 253120 1043371.750788 1065309.459080
12658 253140 1043475.217996 1065413.671083
12659 253160 1043578.686120 1065517.883974
12660 253180 1043682.155158 1065622.097753
12661 253200 1043785.625112 1065726.312419
12662 253220 1043889.095980 1065830.527974
12663 253240 1043992.567763 1065934.744415
12664 253260 1044096.040461 1066038.961744
12665 253280 1044199.514074 1066143.179961
12666 253300 1044302.988601 1066247.399065
12667 253320 1044406.464043 1066351.619056
12668 253340 1044509.940400 1066455.839934
12669 253360 1044613.417670 1066560.061700
12670 253380 1044716.895855 1066664.284352
12671 253400 1044820.374954 1066768.507891
12672 253420 1044923.854968 1066872.732318
12673 253440 1045027.335895 1066976.957631
12674 253460 1045130.817736 1067081.183831
12675 253480 1045234.300492 1067185.410917
12676 253500 1045337.784161 1067289.638890
12677 253520 1045441.268744 1067393.867750
12678 253540 1045544.754240 1067498.097496
12679 253560 1045648.240650 1067602.328128
12680 253580 1045751.727974 1067706.559647
12681 253600 1045855.216210 1067810.792051
12682 253620 1045958.705361 1067915.025342
12683 253640 1046062.195424 1068019.259519
12684 253660 1046165.686401 1068123.494582
12685 253680 1046269.178291 1068227.730531
12686 253700 1046372.671094 1068331.967365
12687 253720 1046476.164810 1068436.205086
12688 253740 1046579.659438 1068540.443692
12689 253760 1046683.154980 1068644.683183
12690 253780 1046786.651434 1068748.923561
12691 253800 1046890.148801 1068853.164823
12692 253820 1046993.647080 1068957.406971
12693 253840 1047097.146272 1069061.650004
12694 253860 1047200.646376 1069165.893923
12695 253880 1047304.147393 1069270.138726
12696 253900 1047407.649321 1069374.384415
12697 253920 1047511.152162 1069478.630989
12698 253940 1047614.655915 1069582.878447
12699 253960 1047718.160580 1069687.126790
12700 253980 1047821.666157 1069791.376019
12701 254000 1047925.172646 1069895.626131
12702 254020 1048028.680046 1069999.877129
12703 254040 1048132.188359 1070104.129011
12704 254060 1048235.697582 1070208.381777
12705 254080 1048339.207718 1070312.635428
12706 254100 1048442.718765 1070416.889963
12707 254120 1048546.230723 1070521.145382
12708 254140 1048649.743592 1070625.401685
12709 254160 1048753.257373 1070729.658873
12710 254180 1048856.772065 1070833.916945
12711 254200 1048960.287667 1070938.175900
12712 254220 1049063.804181 1071042.435739
12713 254240 1049167.321606 1071146.696462
12714 254260 1049270.839941 1071250.958069
12715 254280 1049374.359188 1071355.220559
12716 254300 1049477.879345 1071459.483933
12717 254320 1049581.400412 1071563.748191
12718 254340 1049684.922390 1071668.013332
12719 254360 1049788.445279 1071772.279356
12720 254380 1049891.969077 1071876.546263
12721 254400 1049995.493787 1071980.814054
12722 254420 1050099.019406 1072085.082727
12723 254440 1050202.545935 1072189.352284
12724 254460 1050306.073375 1072293.622724
12725 254480 1050409.601724 1072397.894046
12726 254500 1050513.130983 1072502.166251
12727 254520 1050616.661152 1072606.439339
12728 254540 1050720.192231 1072710.713310
12729 254560 1050823.724219 1072814.988163
12730 254580 1050927.257117 1072919.263899
12731 254600 1051030.790925 1073023.540517
12732 254620 1051134.325641 1073127.818017
12733 254640 1051237.861268 1073232.096400
12734 254660 1051341.397803 1073336.375665
12735 254680 1051444.935248 1073440.655812
12736 254700 1051548.473601 1073544.936841
12737 254720 1051652.012864 1073649.218752
12738 254740 1051755.553036 1073753.501545
12739 254760 1051859.094116 1073857.785220
12740 254780 1051962.636105 1073962.069776
12741 254800 1052066.179003 1074066.355215
12742 254820 1052169.722810 1074170.641534
12743 254840 1052273.267525 1074274.928736
12744 254860 1052376.813149 1074379.216818
12745 254880 1052480.359680 1074483.505782
12746 254900 1052583.907121 1074587.795628
12747 254920 1052687.455469 1074692.086354
12748 254940 1052791.004726 1074796.377962
12749 254960 1052894.554891 1074900.670451
12750 254980 1052998.105963 1075004.963821
12751 255000 1053101.657944 1075109.258071
12752 255020 1053205.210833 1075213.553203
12753 255040 1053308.764629 1075317.849215
12754 255060 1053412.319333 1075422.146108
12755 255080 1053515.874944 1075526.443882
12756 255100 1053619.431463 1075630.742536
12757 255120 1053722.988890 1075735.042071
12758 255140 1053826.547224 1075839.342486
12759 255160 1053930.106465 1075943.643781
12760 255180 1054033.666613 1076047.945956
12761 255200 1054137.227669 1076152.249012
12762 255220 1054240.789632 1076256.552948
12763 255240 1054344.352501 1076360.857764
12764 255260 1054447.916278 1076465.163460
12765 255280 1054551.480961 1076569.470035
12766 255300 1054655.046551 1076673.777491
12767 255320 1054758.613048 1076778.085826
12768 255340 1054862.180451 1076882.395041
12769 255360 1054965.748761 1076986.705135
12770 255380 1055069.317977 1077091.016109
12771 255400 1055172.888100 1077195.327962
12772 255420 1055276.459129 1077299.640695
12773 255440 1055380.031064 1077403.954307
12774 255460 1055483.603905 1077508.268798
12775 255480 1055587.177652 1077612.584168
12776 255500 1055690.752306 1077716.900417
12777 255520 1055794.327865 1077821.217546
12778 255540 1055897.904330 1077925.535553
12779 255560 1056001.481701 1078029.854439
12780 255580 1056105.059977 1078134.174204
12781 255600 1056208.639159 1078238.494847
12782 255620 1056312.219246 1078342.816369
12783 255640 1056415.800239 1078447.138769
12784 255660 1056519.382137 1078551.462048
12785 255680 1056622.964941 1078655.786206
12786 255700 1056726.548650 1078760.111241
12787 255720 1056830.133263 1078864.437155
12788 255740 1056933.718782 1078968.763947
12789 255760 1057037.305206 1079073.091617
12790 255780 1057140.892535 1079177.420165
12791 255800 1057244.480768 1079281.749591
12792 255820 1057348.069906 1079386.079895
12793 255840 1057451.659949 1079490.411077
12794 255860 1057555.250897 1079594.743136
12795 255880 1057658.842749 1079699.076073
12796 255900 1057762.435505 1079803.409888
12797 255920 1057866.029166 1079907.744580
12798 255940 1057969.623731 1080012.080149
12799 255960 1058073.219200 1080116.416596
12800 255980 1058176.815573 1080220.753920
12801 256000 1058280.412850 1080325.092121
12802 256020 1058384.011031 1080429.431199
12803 256040 1058487.610116 1080533.771155
12804 256060 1058591.210105 1080638.111987
12805 256080 1058694.810998 1080742.453696
12806 256100 1058798.412794 1080846.796282
12807 256120 1058902.015494 1080951.139745
12808 256140 1059005.619097 1081055.484084
12809 256160 1059109.223604 1081159.829300
12810 256180 1059212.829014 1081264.175393
12811 256200 1059316.435327 1081368.522361
12812 256220 1059420.042544 1081472.870207
12813 256240 1059523.650663 1081577.218928
12814 256260 1059627.259686 1081681.568526
12815 256280 1059730.869611 1081785.919000
12816 256300 1059834.480440 1081890.270350
12817 256320 1059938.092171 1081994.622576
12818 256340 1060041.704805 1082098.975678
12819 256360 1060145.318341 1082203.329656
12820 256380 1060248.932781 1082307.684509
12821 256400 1060352.548122 1082412.040239
12822 256420 1060456.164366 1082516.396843
12823 256440 1060559.781512 1082620.754324
12824 256460 1060663.399561 1082725.112680
12825 256480 1060767.018512 1082829.471911
12826 256500 1060870.638365 1082933.832018
12827 256520 1060974.259119 1083038.193000
12828 256540 1061077.880776 1083142.554857
12829 256560 1061181.503335 1083246.917589
12830 256580 1061285.126795 1083351.281196
12831 256600 1061388.751157 1083455.645678
12832 256620 1061492.376421 1083560.011035
12833 256640 1061596.002587 1083664.377267
12834 256660 1061699.629653 1083768.744374
12835 256680 1061803.257622 1083873.112355
12836 256700 1061906.886491 1083977.481211
12837 256720 1062010.516262 1084081.850941
12838 256740 1062114.146934 1084186.221546
12839 256760 1062217.778507 1084290.593025
12840 256780 1062321.410981 1084394.965378
12841 256800 1062425.044356 1084499.338606
12842 256820 1062528.678632 1084603.712708
12843 256840 1062632.313809 1084708.087684
12844 256860 1062735.949886 1084812.463534
12845 256880 1062839.586864 1084916.840257
12846 256900 1062943.224743 1085021.217855
12847 256920 1063046.863522 1085125.596327
12848 256940 1063150.503201 1085229.975672
12849 256960 1063254.143781 1085334.355890
12850 256980 1063357.785261 1085438.736983
12851 257000 1063461.427641 1085543.118949
12852 257020 1063565.070922 1085647.501788
12853 257040 1063668.715102 1085751.885500
12854 257060 1063772.360182 1085856.270086
12855 257080 1063876.006162 1085960.655545
12856 257100 1063979.653042 1086065.041877
12857 257120 1064083.300822 1086169.429082
12858 257140 1064186.949501 1086273.817160
12859 257160 1064290.599080 1086378.206111
12860 257180 1064394.249558 1086482.595935
12861 257200 1064497.900936 1086586.986632
12862 257220 1064601.553213 1086691.378201
12863 257240 1064705.206389 1086795.770643
12864 257260 1064808.860465 1086900.163957
12865 257280 1064912.515439 1087004.558144
12866 257300 1065016.171313 1087108.953203
12867 257320 1065119.828085 1087213.349135
12868 257340 1065223.485757 1087317.745938
12869 257360 1065327.144327 1087422.143614
12870 257380 1065430.803796 1087526.542162
12871 257400 1065534.464163 1087630.941582
12872 257420 1065638.125429 1087735.341874
12873 257440 1065741.787594 1087839.743038
12874 257460 1065845.450657 1087944.145073
12875 257480 1065949.114618 1088048.547980
12876 257500 1066052.779478 1088152.951759
12877 257520 1066156.445235 1088257.356410
12878 257540 1066260.111891 1088361.761932
12879 257560 1066363.779445 1088466.168325
12880 257580 1066467.447897 1088570.575590
12881 257600 1066571.117247 1088674.983726
12882 257620 1066674.787494 1088779.392733
12883 257640 1066778.458639 1088883.802611
12884 257660 1066882.130682 1088988.213361
12885 257680 1066985.803623 1089092.624981
12886 257700 1067089.477461 1089197.037472
12887 257720 1067193.152196 1089301.450834
12888 257740 1067296.827829 1089405.865067
12889 257760 1067400.504358 1089510.280171
12890 257780 1067504.181786 1089614.696145
12891 257800 1067607.860110 1089719.112990
12892 257820 1067711.539331 1089823.530705
12893 257840 1067815.219449 1089927.949290
12894 257860 1067918.900464 1090032.368746
12895 257880 1068022.582376 1090136.789072
12896 257900 1068126.265185 1090241.210269
12897 257920 1068229.948890 1090345.632335
12898 257940 1068333.633492 1090450.055272
12899 257960 1068437.318990 1090554.479078
12900 257980 1068541.005385 1090658.903754
12901 258000 1068644.692676 1090763.329300
12902 258020 1068748.380864 1090867.755716
12903 258040 1068852.069947 1090972.183002
12904 258060 1068955.759927 1091076.611157
12905 258080 1069059.450803 1091181.040181
12906 258100 1069163.142574 1091285.470075
12907 258120 1069266.835242 1091389.900839
12908 258140 1069370.528805 1091494.332471
12909 258160 1069474.223265 1091598.764973
12910 258180 1069577.918619 1091703.198344
12911 258200 1069681.614870 1091807.632585
12912 258220 1069785.312016 1091912.067694
12913 258240 1069889.010057 1092016.503672
12914 258260 1069992.708994 1092120.940519
12915 258280 1070096.408826 1092225.378235
12916 258300 1070200.109553 1092329.816819
12917 258320 1070303.811175 1092434.256272
12918 258340 1070407.513693 1092538.696594
12919 258360 1070511.217105 1092643.137784
12920 258380 1070614.921412 1092747.579843
12921 258400 1070718.626614 1092852.022770
12922 258420 1070822.332711 1092956.466565
12923 258440 1070926.039703 1093060.911228
12924 258460 1071029.747589 1093165.356760
12925 258480 1071133.456369 1093269.803159
12926 258500 1071237.166044 1093374.250427
12927 258520 1071340.876614 1093478.698562
12928 258540 1071444.588078 1093583.147566
12929 258560 1071548.300436 1093687.597437
12930 258580 1071652.013688 1093792.048176
12931 258600 1071755.727834 1093896.499782
12932 258620 1071859.442874 1094000.952256
12933 258640 1071963.158808 1094105.405598
12934 258660 1072066.875636 1094209.859806
12935 258680 1072170.593358 1094314.314883
12936 258700 1072274.311973 1094418.770826
12937 258720 1072378.031482 1094523.227637
12938 258740 1072481.751885 1094627.685314
12939 258760 1072585.473181 1094732.143859
12940 258780 1072689.195370 1094836.603271
12941 258800 1072792.918453 1094941.063550
12942 258820 1072896.642428 1095045.524695
12943 258840 1073000.367298 1095149.986707
12944 258860 1073104.093060 1095254.449586
12945 258880 1073207.819715 1095358.913332
12946 258900 1073311.547263 1095463.377944
12947 258920 1073415.275704 1095567.843422
12948 258940 1073519.005038 1095672.309767
12949 258960 1073622.735264 1095776.776978
12950 258980 1073726.466383 1095881.245056
12951 259000 1073830.198395 1095985.713999
12952 259020 1073933.931299 1096090.183809
12953 259040 1074037.665095 1096194.654485
12954 259060 1074141.399784 1096299.126026
12955 259080 1074245.135365 1096403.598434
12956 259100 1074348.871838 1096508.071707
12957 259120 1074452.609204 1096612.545846
12958 259140 1074556.347461 1096717.020851
12959 259160 1074660.086611 1096821.496721
12960 259180 1074763.826652 1096925.973457
12961 259200 1074867.567585 1097030.451059
12962 259220 1074971.309409 1097134.929525
12963 259240 1075075.052126 1097239.408857
12964 259260 1075178.795734 1097343.889054
12965 259280 1075282.540233 1097448.370117
12966 259300 1075386.285624 1097552.852044
12967 259320 1075490.031906 1097657.334837
12968 259340 1075593.779080 1097761.818494
12969 259360 1075697.527144 1097866.303016
12970 259380 1075801.276100 1097970.788403
12971 259400 1075905.025947 1098075.274655
12972 259420 1076008.776685 1098179.761771
12973 259440 1076112.528314 1098284.249752
12974 259460 1076216.280833 1098388.738598
12975 259480 1076320.034243 1098493.228308
12976 259500 1076423.788544 1098597.718882
12977 259520 1076527.543736 1098702.210321
12978 259540 1076631.299818 1098806.702623
12979 259560 1076735.056791 1098911.195790
12980 259580 1076838.814653 1099015.689821
12981 259600 1076942.573407 1099120.184716
12982 259620 1077046.333050 1099224.680475
12983 259640 1077150.093583 1099329.177098
12984 259660 1077253.855007 1099433.674584
12985 259680 1077357.617321 1099538.172935
12986 259700 1077461.380524 1099642.672149
12987 259720 1077565.144618 1099747.172226
12988 259740 1077668.909601 1099851.673167
12989 259760 1077772.675473 1099956.174971
12990 259780 1077876.442236 1100060.677639
12991 259800 1077980.209888 1100165.181170
12992 259820 1078083.978429 1100269.685564
12993 259840 1078187.747860 1100374.190822
12994 259860 1078291.518180 1100478.696942
12995 259880 1078395.289390 1100583.203926
12996 259900 1078499.061488 1100687.711772
12997 259920 1078602.834476 1100792.220481
12998 259940 1078706.608352 1100896.730053
12999 259960 1078810.383118 1101001.240488
13000 259980 1078914.158773 1101105.751785
13001 260000 1079017.935316 1101210.263945

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