diff --git a/crates/applications/stacked_cores/scripts/plot_inverters.py b/crates/applications/stacked_cores/scripts/plot_inverters.py index 37e26c4..2a8bb42 100755 --- a/crates/applications/stacked_cores/scripts/plot_inverters.py +++ b/crates/applications/stacked_cores/scripts/plot_inverters.py @@ -3,6 +3,8 @@ from fake_cores_db import * from stacked_cores_40xx_db import * +_3e10 = "30000001024e0" + class SimParamsCascaded(SimParams): def __init__(self, p1: SimParams, p2: SimParams): super().__init__(p1.couplings, p1.wrappings_spec, p1.um, p1.drive_str) @@ -231,9 +233,16 @@ _49xx_study = from_params( # SimParams50(1e4, 2e4, 2000, 100, 5, 1, 400, "2e10"), # y(0)=0.30, y(1)=0.40, slope0>0.09 # SimParams50(2e4, 2e4, 2000, 100, 5, 1, 400, "1e10"), + ] +) + +_51xx_study = from_params( + [ SimParams51(1e3, 2e4, 2000, 100, 5, 1, 400, "2e10"), + SimParams51(2e3, 2e4, 2000, 100, 5, 1, 400, "1e10"), SimParams51(2e3, 2e4, 2000, 100, 5, 1, 400, "2e10"), + SimParams51(2e3, 2e4, 2000, 100, 5, 1, 400, _3e10), SimParams51(5e3, 2e4, 2000, 100, 5, 1, 400, _3e10), ] ) @@ -257,7 +266,8 @@ _49xx_study = from_params( # of_interest += inverters_with_steepest_slope0 # of_interest += _47xx_all # of_interest += _48xx_study -of_interest += _49xx_study +# of_interest += _49xx_study +of_interest += _51xx_study # plot cascaded inverter -> buffer # for (inv_p, inv_curve) in filter_meas(is_inverter=True): @@ -279,10 +289,10 @@ of_interest += _49xx_study for (params, curve) in of_interest: curve = curve.flat_extrapolation() - curve.plot(title = f"{params.human_name} mapping") - curve.plot_slope(title = f"{params.human_name} slope") + fwd = curve.logically_inverted() if params.is_inverter else curve + fwd.plot(title = f"{params.human_name} mapping") + fwd.plot_slope(title = f"{params.human_name} slope") - if not params.is_inverter: - curve = curve.logically_inverted() + inv = fwd.logically_inverted() # if params.is_inverter or True: - # curve.plot_equilibrium(title = f"{params.human_name} equilibrium") + # inv.plot_equilibrium(title = f"{params.human_name} equilibrium") 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 8164cb8..82e147c 100755 --- a/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py +++ b/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py @@ -245,12 +245,16 @@ class SimParams51(SimParamsV3): return True @property - def t_last(self) -> float: + def t_init(self) -> float: + return 1e-12 * self.clock_length_ps + + @property + def t_mid(self) -> float: return 2e-12 * self.clock_length_ps @property - def t_init(self) -> float: - return 1e-12 * self.clock_length_ps + def t_last(self) -> float: + return 2e-12 * self.clock_length_ps sims = [ # params, human friendly db name, normalization @@ -461,7 +465,9 @@ sims = [ (SimParams50(5e3, 4e4, 4000, 200, 5, 1, 400, "2e10"), None, 20000), (SimParams51(1e3, 2e4, 2000, 100, 5, 1, 400, "2e10"), None, 20000), + (SimParams51(2e3, 2e4, 2000, 100, 5, 1, 400, "1e10"), None, 20000), (SimParams51(2e3, 2e4, 2000, 100, 5, 1, 400, "2e10"), None, 20000), + (SimParams51(2e3, 2e4, 2000, 100, 5, 1, 400, _3e10), None, 20000), (SimParams51(5e3, 2e4, 2000, 100, 5, 1, 400, _3e10), None, 20000), ] @@ -5160,7 +5166,96 @@ Piecewise( set_meas("51-0.0004rad-1000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupling-3_1_winding-2e10-drive", """ Piecewise( [ - [ 16910, -16375 ], # 1.000 + [ -17462, 955 ], # -1.000, M1=-6544 + [ -11848, -3516 ], # -0.350, M1=-2673 + [ -8384, -6316 ], # -0.300, M1= -516 + [ -4922, -8983 ], # -0.250, M1= 1553 + [ -1482, -11476 ], # -0.200, M1= 3520 + [ 1903, -13698 ], # -0.150, M1= 5384 + [ 5191, -15268 ], # -0.100, M1= 7122 + [ 8322, -15915 ], # -0.050, M1= 8725 + [ 11174, -16156 ], # 0.000, M1=10122 + [ 13214, -16263 ], # 0.050, M1=11025 + [ 14526, -16312 ], # 0.100, M1=11538 + [ 16070, -16357 ], # 0.200, M1=12096 + [ 16910, -16375 ], # 1.000, M1=12480 + ] +) +""") + +set_meas("51-0.0004rad-2000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupling-3_1_winding-1e10-drive", """ +Piecewise( + [ + [ -17412, 7351 ], # -1.000, M1=-9661 + [ -5507, 1206 ], # -0.350, M1=-3475 + [ -2926, -132 ], # -0.300, M1=-2233 + [ -374, -1375 ], # -0.250, M1=-1051 + [ 2145, -2528 ], # -0.200, M1= 93 + [ 4593, -3593 ], # -0.150, M1= 1189 + [ 6922, -4577 ], # -0.100, M1= 2205 + [ 9061, -5432 ], # -0.050, M1= 3096 + [ 10849, -6119 ], # 0.000, M1= 3826 + [ 12083, -6573 ], # 0.050, M1= 4335 + [ 13169, -6962 ], # 0.100, M1= 4781 + [ 14949, -7537 ], # 0.200, M1= 5498 + [ 16881, -8016 ], # 1.000, M1= 6376 + ] +) +""") + +set_meas("51-0.0004rad-2000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupling-3_1_winding-2e10-drive", """ +Piecewise( + [ + [ -17596, 4048 ], # -1.000, M1=-7725 + [ -17162, 3838 ], # -0.350, M1=-7354 + [ -16533, 3548 ], # -0.300, M1=-6886 + [ -13668, 1824 ], # -0.250, M1=-5211 + [ -8574, -1224 ], # -0.200, M1=-2500 + [ -3482, -4166 ], # -0.150, M1= 127 + [ 1525, -6940 ], # -0.100, M1= 2643 + [ 6355, -9461 ], # -0.050, M1= 4983 + [ 10815, -11658 ], # 0.000, M1= 7056 + [ 13837, -13075 ], # 0.050, M1= 8459 + [ 15352, -13707 ], # 0.100, M1= 9179 + [ 16596, -14137 ], # 0.200, M1= 9832 + [ 16938, -14287 ], # 1.000, M1=10139 + ] +) +""") + +set_meas("51-0.0004rad-2000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupling-3_1_winding-30000001024e0-drive", """ +Piecewise( + [ + [ -17699, 1454 ], # -1.000, M1=-6236 + [ -17551, 1379 ], # -0.350, M1=-6069 + [ -17522, 1350 ], # -0.300, M1=-6025 + [ -17425, 1317 ], # -0.250, M1=-5948 + [ -16719, 1033 ], # -0.200, M1=-5451 + [ -11661, -2116 ], # -0.150, M1=-2565 + [ -4081, -6784 ], # -0.100, M1= 1528 + [ 3400, -10964 ], # -0.050, M1= 5393 + [ 10508, -14107 ], # 0.000, M1= 8877 + [ 16959, -15828 ], # 1.000, M1=12067 + ] +) +""") + +set_meas("51-0.0004rad-5000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupling-3_1_winding-30000001024e0-drive", """ +Piecewise( + [ + [ -18072, 5436 ], # -1.000, M1=-7703 + [ -17883, 5390 ], # -0.350, M1=-7524 + [ -17859, 5365 ], # -0.300, M1=-7486 + [ -17831, 5381 ], # -0.250, M1=-7471 + [ -17796, 5380 ], # -0.200, M1=-7440 + [ -17738, 5369 ], # -0.150, M1=-7391 + [ -16762, 5145 ], # -0.100, M1=-6795 + [ -4256, 769 ], # -0.050, M1=-1544 + [ 9643, -3986 ], # 0.000, M1= 4057 + [ 15927, -5962 ], # 0.050, M1= 6589 + [ 16601, -6128 ], # 0.100, M1= 6942 + [ 16747, -6163 ], # 0.200, M1= 7068 + [ 17073, -6302 ], # 1.000, M1= 7390 ] ) """) diff --git a/crates/applications/stacked_cores/src/main.rs b/crates/applications/stacked_cores/src/main.rs index 6224206..fce0510 100644 --- a/crates/applications/stacked_cores/src/main.rs +++ b/crates/applications/stacked_cores/src/main.rs @@ -5573,16 +5573,27 @@ fn main() { &[ -0.20, -0.10, - 0.10, -0.05, ][..], &[ - 0.05, -0.15, -0.25, + -0.30, -0.35, 0.20, - -0.30, + 0.10, + 0.05, + ][..], + &[ + -0.50, + ][..], + &[ + -0.17, + -0.12, + -0.07, + -0.22, + -0.27, + -0.02, ][..], ] { for (ctl_cond, coupling_cond, clock_duration, clock_decay, coupling_loops, s0_loops, s_major, cur_flt) in [ @@ -5590,7 +5601,8 @@ fn main() { (1e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 2e10), (2e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 2e10), (5e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 3e10), - // (2e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 1e10), + (2e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 1e10), + (2e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 3e10), ] { for &init_flt in init_set {