From 9c17d3b45da471cc1523cbccf2bd6698edff752c Mon Sep 17 00:00:00 2001 From: colin Date: Thu, 27 Oct 2022 18:17:11 -0700 Subject: [PATCH] app: stacked_cores: conclude 50-xx runs --- .../stacked_cores/scripts/plot_inverters.py | 4 + .../scripts/stacked_cores_40xx_db.py | 83 ++++++++++++++++++- crates/applications/stacked_cores/src/main.rs | 54 ++++++++---- 3 files changed, 123 insertions(+), 18 deletions(-) diff --git a/crates/applications/stacked_cores/scripts/plot_inverters.py b/crates/applications/stacked_cores/scripts/plot_inverters.py index 7ffb673..d4ec30e 100755 --- a/crates/applications/stacked_cores/scripts/plot_inverters.py +++ b/crates/applications/stacked_cores/scripts/plot_inverters.py @@ -191,8 +191,12 @@ _48xx_study = from_params( _49xx_study = from_params( [ + # slope ranges are measured from x=0 to x=0.2 # TODO SimParams50(5e2, 4e4, 4000, 200, 5, 1, 400, "2e10"), + SimParams50(5e3, 4e4, 4000, 200, 5, 1, 400, "2e10"), + # y(0)=0.65, y(1)=0.95, slope0=0.44 to 0.31 + SimParams50(5e3, 4e4, 4000, 200, 5, 1, 400, "1e10"), # y(0)=0.09, y(1)=0.17, slope0=0.07. "best" comparable 47-xx sim # SimParams47(5, 1, 400, "1e10"), diff --git a/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py b/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py index 0c89457..64f80f7 100755 --- a/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py +++ b/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py @@ -439,7 +439,9 @@ sims = [ (SimParams50(1e4, 2e4, 2000, 100, 5, 1, 400, "1e10"), None, 20000), (SimParams50(1e4, 2e4, 2000, 100, 5, 1, 400, "2e10"), None, 20000), (SimParams50(2e4, 2e4, 2000, 100, 5, 1, 400, "1e10"), None, 20000), - (SimParams50(2e4, 2e4, 4000, 200, 5, 1, 400, "2e10"), None, 20000), + (SimParams50(5e2, 4e4, 4000, 200, 5, 1, 400, "2e10"), None, 20000), + (SimParams50(5e3, 4e4, 4000, 200, 5, 1, 400, "1e10"), None, 20000), + (SimParams50(5e3, 4e4, 4000, 200, 5, 1, 400, "2e10"), None, 20000), ] measurements = { real.machine_name: [human, norm, None, None] for (real, human, norm) in sims } @@ -4898,7 +4900,11 @@ set_meas("50-0.0004rad-1000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupli Piecewise( [ [ -17427, 4252 ], # -1.000, M1=-12305 + [ -15269, 5104 ], # -0.200, M1=-11411 + [ -110, 9208 ], # -0.100, M1=-6920 + [ 3269, 10079 ], # -0.070, M1=-5895 [ 6604, 10894 ], # 0.000, M1=-4913 + [ 10959, 11919 ], # 0.100, M1=-3666 [ 16740, 13291 ], # 1.000, M1=-1934 ] ) @@ -4952,11 +4958,13 @@ Piecewise( [ -14966, 4108 ], # -0.130, M1=-11033 [ -12700, 4794 ], # -0.120, M1=-10348 [ -10348, 5479 ], # -0.110, M1=-9664 + [ -7974, 6152 ], # -0.100, M1=-8984 [ -5593, 6821 ], # -0.090, M1=-8300 [ -3210, 7517 ], # -0.080, M1=-7588 [ -846, 8215 ], # -0.070, M1=-6872 [ 1466, 8878 ], # -0.060, M1=-6186 [ 7967, 10735 ], # 0.000, M1=-4212 + [ 12706, 11973 ], # 0.100, M1=-2840 [ 16755, 13090 ], # 1.000, M1=-1516 ] ) @@ -4966,6 +4974,8 @@ set_meas("50-0.0004rad-2000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupli Piecewise( [ [ -17730, 7307 ], # -1.000, M1=-11351 + [ -17492, 7545 ], # -0.200, M1=-11122 + [ -17311, 7667 ], # -0.100, M1=-11002 [ -17214, 7709 ], # -0.090, M1=-10960 [ -16931, 7834 ], # -0.080, M1=-10838 [ -16177, 8165 ], # -0.070, M1=-10510 @@ -5008,8 +5018,18 @@ set_meas("50-0.0004rad-5000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupli Piecewise( [ [ -18082, 3583 ], # -1.000, M1=-11466 + [ -17810, 3787 ], # -0.200, M1=-11214 + [ -17731, 3848 ], # -0.120, M1=-11140 + [ -17701, 3874 ], # -0.100, M1=-11108 + [ -17683, 3884 ], # -0.090, M1=-11097 [ -17630, 3909 ], # -0.070, M1=-11064 + [ -17522, 3957 ], # -0.050, M1=-11005 + [ -13081, 5195 ], # -0.030, M1=-9465 + [ -3399, 7497 ], # -0.020, M1=-6549 + [ 6241, 9671 ], # -0.010, M1=-3725 [ 10894, 10687 ], # 0.000, M1=-2354 + [ 16083, 11810 ], # 0.050, M1= -775 + [ 16377, 11907 ], # 0.100, M1= -635 [ 16869, 12160 ], # 1.000, M1= -258 ] ) @@ -5055,4 +5075,65 @@ Piecewise( ) """) +set_meas("50-0.0004rad-500ctl_cond-40000coupling_cond-4000ps-200ps-5ctl-5coupling-3_1_winding-2e10-drive", """ +Piecewise( + [ + [ -17439, 13243 ], # -1.000, M1=-11394 + [ -17115, 13551 ], # -0.200, M1=-11152 + [ -7315, 16318 ], # -0.100, M1=-7850 + [ 8831, 16749 ], # 0.000, M1=-2973 + [ 13401, 16778 ], # 0.100, M1=-1604 + [ 16756, 16787 ], # 1.000, M1= -484 + ] +) +""") + +set_meas("50-0.0004rad-5000ctl_cond-40000coupling_cond-4000ps-200ps-5ctl-5coupling-3_1_winding-1e10-drive", """ +Piecewise( + [ + [ -17679, 4637 ], # -1.000, M1=-11683 + [ -17453, 4861 ], # -0.200, M1=-11461 + [ -17354, 4940 ], # -0.120, M1=-11382 + [ -17328, 4957 ], # -0.110, M1=-11365 + [ -17284, 4980 ], # -0.100, M1=-11342 + [ -17200, 5019 ], # -0.090, M1=-11303 + [ -16274, 5424 ], # -0.070, M1=-10900 + [ -13045, 6569 ], # -0.060, M1=-9769 + [ -8261, 8048 ], # -0.050, M1=-8297 + [ -3416, 9500 ], # -0.040, M1=-6828 + [ 1429, 10929 ], # -0.030, M1=-5370 + [ 6039, 12284 ], # -0.020, M1=-3955 + [ 8583, 13014 ], # -0.010, M1=-3163 + [ 9463, 13253 ], # 0.000, M1=-2891 + [ 12891, 14121 ], # 0.050, M1=-1877 + [ 16088, 14947 ], # 0.100, M1= -877 + [ 16761, 15235 ], # 1.000, M1= -496 + ] +) +""") + +set_meas("50-0.0004rad-5000ctl_cond-40000coupling_cond-4000ps-200ps-5ctl-5coupling-3_1_winding-2e10-drive", """ +Piecewise( + [ + [ -17870, 9437 ], # -1.000, M1=-10755 + [ -17705, 9613 ], # -0.350, M1=-10579 + [ -17656, 9663 ], # -0.250, M1=-10529 + [ -17627, 9694 ], # -0.200, M1=-10498 + [ -17585, 9733 ], # -0.150, M1=-10459 + [ -17554, 9763 ], # -0.120, M1=-10430 + [ -17527, 9788 ], # -0.100, M1=-10405 + [ -17511, 9801 ], # -0.090, M1=-10391 + [ -17464, 9834 ], # -0.070, M1=-10357 + [ -17366, 9896 ], # -0.050, M1=-10295 + [ -13069, 11459 ], # -0.030, M1=-8663 + [ -3376, 14111 ], # -0.020, M1=-5523 + [ 6319, 15855 ], # -0.010, M1=-2530 + [ 11902, 16301 ], # 0.000, M1= -813 + [ 15944, 16406 ], # 0.050, M1= 459 + [ 16258, 16415 ], # 0.100, M1= 598 + [ 16799, 16436 ], # 1.000, M1= 973 + ] +) +""") + if __name__ == '__main__': main() diff --git a/crates/applications/stacked_cores/src/main.rs b/crates/applications/stacked_cores/src/main.rs index fea73fe..199fbca 100644 --- a/crates/applications/stacked_cores/src/main.rs +++ b/crates/applications/stacked_cores/src/main.rs @@ -1189,6 +1189,19 @@ fn drive_map_3stack_multi_clock_buffer(amp0: f32) -> [[ClockState; 3]; 5] { ] } +#[allow(unused)] +fn drive_map_3stack_multi_clock_buffer_quick_one_cycle(amp0: f32, amp1: f32) -> [[ClockState; 3]; 5] { + use ClockState as C; + // amplitudes are inverted from what you would expect. + // hold(-1) puts the core into a positive M + [ + // init S0 pos; charge S1 neg, S2 pos + [C::release(-amp0), C::release_high(), C::release_low()], + // clear S0 (P->N) -> S1 (N->P) -> S2 (P->N) + [C::hold_high(), C::float(), C::float()], + ] +} + #[allow(unused)] fn drive_map_4stack_with_init4(amp0: f32, amp1: f32, amp2: f32, amp3: f32) -> [[ClockState; 4]; 3] { use ClockState as C; @@ -5439,6 +5452,21 @@ fn main() { // -0.065, // -0.055, // -0.045, + -0.04, + -0.06, + -0.07, + -0.08 + -0.03, + -0.02, + -0.09, + -0.01, + -0.035, + -0.045, + -0.055, + 0.05, + 0.02, + 0.01, + 0.03, ][..], &[ // establish the domain/range @@ -5451,10 +5479,10 @@ fn main() { &[ -0.20, -0.10, + -0.05, 0.10, ][..], &[ - -0.05, 0.05, -0.15, -0.25, @@ -5464,9 +5492,12 @@ fn main() { ][..], ] { for (ctl_cond, coupling_cond, clock_duration, clock_decay, coupling_loops, s0_loops, s_major, cur_flt) in [ - (5e2, 4e4, ps(4000), ps(200), 5, 1, um(400), 2e10), + // prototypes + (5e3, 4e4, ps(4000), ps(200), 5, 1, um(400), 1e10), // worth pursuing in more detail: + // y(0)=0.76, y(1)=0.99 + (5e3, 4e4, ps(4000), ps(200), 5, 1, um(400), 2e10), // y(0)=0.61, y(1)=0.86, slope0>0.25 (5e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 2e10), // y(0)=0.63, y(1)=0.89, slope0>0.27 @@ -5479,6 +5510,9 @@ fn main() { // y(0)=0.60, y(1)=0.89, slope0=0.40 to 0.29 (2e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 1e10), + // too high TX + // (5e2, 4e4, ps(4000), ps(200), 5, 1, um(400), 2e10), + // (1e4, 2e4, ps(2000), ps(100), 5, 1, um(400), 1e10), // (5e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 1e10), // (2e4, 2e4, ps(2000), ps(100), 5, 1, um(400), 1e10), @@ -5488,22 +5522,8 @@ fn main() { // (1e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 5e9), // (5e2, 2e4, ps(2000), ps(100), 5, 1, um(400), 1e10), - // // y(0)=0.62, slope(0)=0.23, y(1)=0.80 + // y(0)=0.62, slope(0)=0.23, y(1)=0.80 // (5e2, 1e4, ps(1000), ps(50), 5, 1, um(400), 1e10), - - // old 47-xx runs - // (5e2, 5e3, ps(1000), ps(50), 5, 1, um(400), 1e10), - // (5e2, 5e3, ps(1000), ps(50), 7, 1, um(600), 8e9), - // (5e2, 5e3, ps(1000), ps(50), 7, 1, um(600), 1e10), - // (5e2, 5e3, ps(1000), ps(50), 7, 1, um(600), 2e10), - // (5e2, 5e3, ps(1000), ps(50), 7, 1, um(600), 5e9), - // (5e2, 5e3, ps(1000), ps(50), 7, 1, um(600), 3e10), - // (5e2, 5e3, ps(1000), ps(50), 5, 1, um(400), 5e9), - // (5e2, 5e3, ps(1000), ps(50), 4, 2, um(600), 2e10), - // (5e2, 5e3, ps(1000), ps(50), 4, 2, um(600), 5e10), - // (5e2, 5e3, ps(1000), ps(50), 5, 1, um(400), 8e9), - // (5e2, 5e3, ps(1000), ps(50), 5, 1, um(400), 2e10), - // (5e2, 5e3, ps(1000), ps(50), 5, 1, um(400), 4e10), ] { for &init_flt in init_set { // coupling loops (M0 -> M1) + (M1 -> M2) + control slots