app: stacked_cores: fix 49-xx (now 50-xx) and run a few paramaterizations

This commit is contained in:
2022-10-25 03:58:19 -07:00
parent 3f54b25cf1
commit f4f672aab6
3 changed files with 102 additions and 19 deletions

View File

@@ -192,7 +192,12 @@ _48xx_study = from_params(
_49xx_study = from_params( _49xx_study = from_params(
[ [
SimParams47(5, 1, 400, "1e10"), SimParams47(5, 1, 400, "1e10"),
SimParams49(5e2, 1e4, 1000, 50, 5, 1, 400, "1e10"), SimParams50(5e2, 1e4, 1000, 50, 5, 1, 400, "1e10"),
SimParams50(5e2, 2e4, 2000, 100, 5, 1, 400, "1e10"),
# too few measurements
# SimParams50(1e3, 2e4, 2000, 100, 5, 1, 400, "5e9"),
# SimParams50(1e3, 2e4, 2000, 100, 5, 1, 400, "1e10"),
# SimParams50(1e3, 2e4, 2000, 100, 5, 1, 400, "2e10"),
] ]
) )

View File

@@ -218,10 +218,10 @@ class SimParams48(SimParamsV3):
def is_inverter(self) -> bool: def is_inverter(self) -> bool:
return False return False
class SimParams49(SimParamsV3): class SimParams50(SimParamsV3):
@property @property
def run(self) -> str: def run(self) -> str:
return "49" return "50"
@property @property
def is_inverter(self) -> bool: def is_inverter(self) -> bool:
@@ -426,7 +426,11 @@ sims = [
(SimParams48(5e3, 5e4,10000, 500, 9, 1, 400, "5e8"), None, 20000), (SimParams48(5e3, 5e4,10000, 500, 9, 1, 400, "5e8"), None, 20000),
(SimParams48(5e3, 5e4,10000, 500, 9, 1, 400, "1e9"), None, 20000), (SimParams48(5e3, 5e4,10000, 500, 9, 1, 400, "1e9"), None, 20000),
(SimParams49(5e2, 1e4, 1000, 50, 5, 1, 400, "1e10"), None, 20000), (SimParams50(5e2, 1e4, 1000, 50, 5, 1, 400, "1e10"), None, 20000),
(SimParams50(5e2, 2e4, 2000, 100, 5, 1, 400, "1e10"), None, 20000),
(SimParams50(1e3, 2e4, 2000, 100, 5, 1, 400, "5e9"), None, 20000),
(SimParams50(1e3, 2e4, 2000, 100, 5, 1, 400, "1e10"), None, 20000),
(SimParams50(1e3, 2e4, 2000, 100, 5, 1, 400, "2e10"), None, 20000),
] ]
measurements = { real.machine_name: [human, norm, None, None] for (real, human, norm) in sims } measurements = { real.machine_name: [human, norm, None, None] for (real, human, norm) in sims }
@@ -4842,20 +4846,59 @@ Piecewise(
) )
""") """)
set_meas("49-0.0004rad-500ctl_cond-10000coupling_cond-1000ps-50ps-5ctl-5coupling-3_1_winding-1e10-drive", """ set_meas("50-0.0004rad-500ctl_cond-10000coupling_cond-1000ps-50ps-5ctl-5coupling-3_1_winding-1e10-drive", """
Piecewise( Piecewise(
[ [
[ -17425, -14614 ], # -1.000, M1=-12327 [ -17425, 3923 ], # -1.000, M1=-12660
[ -16995, -14581 ], # -0.350, M1=-12187 [ -17001, 4090 ], # -0.350, M1=-12447
[ -16407, -14537 ], # -0.300, M1=-12007 [ -16429, 4261 ], # -0.300, M1=-12228
[ -13065, -14308 ], # -0.250, M1=-11112 [ -13120, 5011 ], # -0.250, M1=-11235
[ -11921, -14219 ], # -0.240, M1=-10782 [ -9690, 5770 ], # -0.220, M1=-10232
[ -9616, -14046 ], # -0.220, M1=-10146 [ -7385, 6255 ], # -0.200, M1=-9575
[ -7293, -13863 ], # -0.200, M1=-9494 [ -1872, 7376 ], # -0.150, M1=-7948
[ -4961, -13662 ], # -0.180, M1=-8800 [ 802, 7871 ], # -0.100, M1=-7164
[ -1448, -13371 ], # -0.150, M1=-7820 [ 5084, 8592 ], # 0.000, M1=-5944
[ 10233, -12281 ], # 0.000, M1=-4587 [ 9278, 9209 ], # 0.100, M1=-4806
[ 16749, -11617 ], # 1.000, M1=-2827 [ 13045, 9699 ], # 0.200, M1=-3809
[ 16741, 10142 ], # 1.000, M1=-2780
]
)
""")
set_meas("50-0.0004rad-500ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupling-3_1_winding-1e10-drive", """
Piecewise(
[
[ -17349, 4910 ], # -1.000, M1=-12580
[ 4848, 8967 ], # 0.000, M1=-5823
[ 16730, 10287 ], # 1.000, M1=-2565
]
)
""")
set_meas("50-0.0004rad-1000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupling-3_1_winding-5e9-drive", """
Piecewise(
[
[ -17260, -3784 ], # -1.000, M1=-13550
[ 16709, -676 ], # 1.000, M1=-4803
]
)
""")
set_meas("50-0.0004rad-1000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupling-3_1_winding-1e10-drive", """
Piecewise(
[
[ -17427, 4252 ], # -1.000, M1=-12305
[ 16740, 13291 ], # 1.000, M1=-1934
]
)
""")
set_meas("50-0.0004rad-1000ctl_cond-20000coupling_cond-2000ps-100ps-5ctl-5coupling-3_1_winding-2e10-drive", """
Piecewise(
[
[ -17587, 10360 ], # -1.000, M1=-11417
[ 10229, 16369 ], # 0.000, M1=-2240
[ 16771, 16545 ], # 1.000, M1= -120
] ]
) )
""") """)

View File

@@ -1170,6 +1170,25 @@ fn drive_map_3stack_with_init_buff_cascade(amp0: f32) -> [[ClockState; 3]; 5] {
] ]
} }
#[allow(unused)]
fn drive_map_3stack_multi_clock_buffer(amp0: 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; charge S1 negative, S2 negative
[C::hold(-amp0), C::hold_high(), C::hold_high()],
// let the cores settle; open S1 for receive
[C::release(-amp0), C::release_high(), C::hold_high()],
// write S0 -> S1 (pushes S1 from neg -> pos)
[C::hold_high(), C::float(), C::hold_high()],
// open S2 for receive
[C::hold_high(), C::float(), C::release_high()],
// write S1 -> S2 by (pushes S2 neg -> low)
[C::hold_high(), C::hold_high(), C::float()],
]
}
#[allow(unused)] #[allow(unused)]
fn drive_map_4stack_with_init4(amp0: f32, amp1: f32, amp2: f32, amp3: f32) -> [[ClockState; 4]; 3] { fn drive_map_4stack_with_init4(amp0: f32, amp1: f32, amp2: f32, amp3: f32) -> [[ClockState; 4]; 3] {
use ClockState as C; use ClockState as C;
@@ -5409,6 +5428,12 @@ fn main() {
} }
if true { if true {
for init_set in [ for init_set in [
&[
// targeted
// -0.22,
// -0.18,
// -0.27,
][..],
&[ &[
// establish the domain/range // establish the domain/range
1.00, 1.00,
@@ -5416,6 +5441,8 @@ fn main() {
][..], ][..],
&[ &[
0.00, 0.00,
][..],
&[
-0.20, -0.20,
-0.35, -0.35,
-0.25, -0.25,
@@ -5425,11 +5452,19 @@ fn main() {
-0.10, -0.10,
0.20, 0.20,
0.10, 0.10,
-0.05,
0.35, 0.35,
][..], ][..],
] { ] {
for (ctl_cond, coupling_cond, clock_duration, clock_decay, coupling_loops, s0_loops, s_major, cur_flt) in [ for (ctl_cond, coupling_cond, clock_duration, clock_decay, coupling_loops, s0_loops, s_major, cur_flt) in [
(5e2, 1e4, ps(1000), ps(50), 5, 1, um(400), 1e10), (1e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 5e9),
(1e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 1e10),
(1e3, 2e4, ps(2000), ps(100), 5, 1, um(400), 2e10),
(5e2, 2e4, ps(2000), ps(100), 5, 1, um(400), 1e10),
// 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 // old 47-xx runs
// (5e2, 5e3, ps(1000), ps(50), 5, 1, um(400), 1e10), // (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), 8e9),
@@ -5465,11 +5500,11 @@ fn main() {
params = couple_asymmetric_buffer(&params, 1 /* sender core */, s0_loops, 1 + slots_per_asym /* slot offset */, net_slots); params = couple_asymmetric_buffer(&params, 1 /* sender core */, s0_loops, 1 + slots_per_asym /* slot offset */, net_slots);
let name = asymmetric_inverter_name_v3( let name = asymmetric_inverter_name_v3(
&params, "49", coupling_loops /* ctl loops */, coupling_loops, 2*s0_loops + 1, init_flt &params, "50", coupling_loops /* ctl loops */, coupling_loops, 2*s0_loops + 1, init_flt
); );
run_sim( run_sim(
&name, &name,
drive_map_3stack_with_init_buff_cascade(init_flt), drive_map_3stack_multi_clock_buffer(init_flt),
params, params,
); );
} }