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 7e19b19..467d8bb 100755 --- a/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py +++ b/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py @@ -52,6 +52,10 @@ class SimParams: def is_discharge_high(self) -> bool: return False # see 41-xx + @property + def t_init(self) -> float: + return 2e-9 + @property def t_last(self) -> float: return 3e-9 @@ -199,6 +203,14 @@ class SimParams48(SimParams): self.clock_length_ps = int(clock_length_ps) self.clock_decay_ps = int(clock_decay_ps) + @property + def t_init(self) -> float: + return 2e-12 * self.clock_length_ps + + @property + def t_last(self) -> float: + return 3e-12 * self.clock_length_ps + @property def machine_name(self) -> str: return f"{self.run}-{self.um_str}rad-{self.control_cond}ctl_cond-{self.coupling_cond}coupling_cond-{self.clock_length_ps}ps-{self.clock_decay_ps}ps-{self.couplings}ctl-{self.couplings}coupling-{self.wrappings}_1_winding-{self.drive_str}-drive" @@ -380,9 +392,15 @@ sims = [ (SimParams47(4, 2, 600, "5e10"), None, 20000), # control conductivity, coupling cond, clock decay (ps), clock duration, coupling loops, asymmetric s0 loops, radius, drive current - (SimParams48(5e2, 1e4, 1000, 50, 9, 1, 400, "1e10"), None, 20000), - (SimParams48(5e2, 1e4, 1000, 50, 9, 1, 400, "5e9"), None, 20000), - (SimParams48(5e2, 5e3, 1000, 50, 9, 1, 400, "1e10"), None, 20000), + (SimParams48(5e2, 5e3, 1000, 50, 9, 1, 400, "1e10"), None, 20000), + (SimParams48(5e2, 1e4, 1000, 50, 9, 1, 400, "3e9"), None, 20000), + (SimParams48(5e2, 1e4, 1000, 50, 9, 1, 400, "5e9"), None, 20000), + (SimParams48(5e2, 1e4, 1000, 50, 9, 1, 400, "1e10"), None, 20000), + (SimParams48(1e3, 1e4, 2000, 100, 9, 1, 400, "3e9"), None, 20000), + (SimParams48(1e3, 1e4, 2000, 100, 9, 1, 400, "5e9"), None, 20000), + (SimParams48(1e3, 1e4, 2000, 100, 9, 1, 400, "1e10"), None, 20000), + (SimParams48(2e3, 2e4, 4000, 200, 9, 1, 400, "3e9"), None, 20000), + (SimParams48(5e3, 5e4,10000, 500, 9, 1, 400, "3e9"), None, 20000), ] measurements = { real.machine_name: [human, norm, None, None] for (real, human, norm) in sims } @@ -430,13 +448,13 @@ def set_meas(real: str, expr: str): if human: globals()[human] = pw -def try_measure(real: str, t_last: float, t_mid: float = None): +def try_measure(real: str, t_init: float, t_last: float, t_mid: float = None): try: new_value = subprocess.check_output( [ "./stacked_cores_39xx.py", f"../../../../out/applications/stacked_cores/{real}", - "2e-9", + str(t_init), str(t_last), ] + ([str(t_mid)] if t_mid is not None else []) ).decode() @@ -448,7 +466,7 @@ def try_measure(real: str, t_last: float, t_mid: float = None): def update_all(): for (params, _human, _norm) in sims: - try_measure(params.machine_name, t_last=params.t_last, t_mid=params.t_mid) + try_measure(params.machine_name, t_init=params.t_init, t_last=params.t_last, t_mid=params.t_mid) def dump(path: str): orig = open(path).read() @@ -4047,13 +4065,75 @@ Piecewise( ) """) +set_meas("48-0.0004rad-500ctl_cond-5000coupling_cond-1000ps-50ps-9ctl-9coupling-3_1_winding-1e10-drive", """ +Piecewise( + [ + [ -17210, 1376 ], # -1.00 + [ 16931, 16791 ], # 1.00 + ] +) +""") + +set_meas("48-0.0004rad-500ctl_cond-10000coupling_cond-1000ps-50ps-9ctl-9coupling-3_1_winding-3e9-drive", """ +Piecewise( + [ + [ -18331, -6085 ], # -1.00 + [ 17160, 6840 ], # 1.00 + ] +) +""") + +set_meas("48-0.0004rad-500ctl_cond-10000coupling_cond-1000ps-50ps-9ctl-9coupling-3_1_winding-5e9-drive", """ +Piecewise( + [ + [ -18553, -1270 ], # -1.00 + [ 17271, 16313 ], # 1.00 + ] +) +""") + set_meas("48-0.0004rad-500ctl_cond-10000coupling_cond-1000ps-50ps-9ctl-9coupling-3_1_winding-1e10-drive", """ Piecewise( [ [ -18828, 1410 ], # -1.00 + [ -18549, 1845 ], # -0.35 + [ -17921, 2757 ], # -0.20 + [ -4275, 16419 ], # -0.10 + [ 11309, 16820 ], # 0.00 + [ 13053, 16822 ], # 0.10 + [ 16668, 16825 ], # 0.20 + [ 17106, 16825 ], # 0.35 [ 17405, 16824 ], # 1.00 ] ) """) +set_meas("48-0.0004rad-1000ctl_cond-10000coupling_cond-2000ps-100ps-9ctl-9coupling-3_1_winding-3e9-drive", """ +Piecewise( + [ + [ -16999, -3777 ], # -1.00 + [ 16812, 10556 ], # 1.00 + ] +) +""") + +set_meas("48-0.0004rad-1000ctl_cond-10000coupling_cond-2000ps-100ps-9ctl-9coupling-3_1_winding-5e9-drive", """ +Piecewise( + [ + [ -17090, -1037 ], # -1.00 + [ 16874, 16650 ], # 1.00 + ] +) +""") + +set_meas("48-0.0004rad-1000ctl_cond-10000coupling_cond-2000ps-100ps-9ctl-9coupling-3_1_winding-1e10-drive", """ +Piecewise( + [ + [ -17206, 2148 ], # -1.00 + [ 11896, 16811 ], # 0.00 + [ 16938, 16814 ], # 1.00 + ] +) +""") + if __name__ == '__main__': main() diff --git a/crates/applications/stacked_cores/src/main.rs b/crates/applications/stacked_cores/src/main.rs index f2f7a96..0b617d5 100644 --- a/crates/applications/stacked_cores/src/main.rs +++ b/crates/applications/stacked_cores/src/main.rs @@ -5113,11 +5113,60 @@ fn main() { 0.35, -0.35, ][..], + &[ + -0.05, + -0.15, + -0.25, + 0.05, + -0.07, + -0.12, + -0.17, + -0.02, + 0.07, + 0.12, + ][..], + &[ + // exhaustive + -0.01, + -0.02, + -0.03, + -0.04, + -0.06, + -0.07, + -0.08, + -0.09, + -0.11, + -0.12, + -0.13, + -0.14, + -0.16, + -0.17, + -0.18, + -0.19, + -0.21, + -0.22, + -0.23, + -0.24, + 0.01, + 0.02, + 0.03, + 0.04, + ][..], ] { for (ctl_cond, coupling_cond, clock_duration, clock_decay, coupling_loops, s0_loops, s_major, cur_flt) in [ - (5e2, 1e4, ps(1000), ps(50), 9, 1, um(400), 1e10), - (5e2, 1e4, ps(1000), ps(50), 9, 1, um(400), 5e9), - (5e2, 5e3, ps(1000), ps(50), 9, 1, um(400), 1e10), + (1e3, 1e4, ps(2000), ps(100), 9, 1, um(400), 3e9), + (1e3, 1e4, ps(2000), ps(100), 9, 1, um(400), 5e9), + (5e2, 1e4, ps(1000), ps(50), 9, 1, um(400), 5e9), + (2e3, 2e4, ps(4000), ps(200), 9, 1, um(400), 3e9), + (5e3, 5e4, ps(10000),ps(500), 9, 1, um(400), 3e9), + + // boring current variants of the above + (1e3, 1e4, ps(2000), ps(100), 9, 1, um(400), 1e10), + // (5e2, 1e4, ps(1000), ps(50), 9, 1, um(400), 3e9), + // (5e2, 1e4, ps(1000), ps(50), 9, 1, um(400), 1e10), + + // original + (5e2, 5e3, ps(1000), ps(50), 9, 1, um(400), 1e10), ] { for &init_flt in init_set { // coupling loops (M0 -> M1) + control slots