app: stacked-cores: 40xx db: preserve parameterization in more context

i want to add some filtering functions to the db lookups, and this will
faciliate that
This commit is contained in:
2022-09-29 16:30:04 -07:00
parent 765022639e
commit 5286339413

View File

@@ -5,55 +5,73 @@ from inverter_characteristics import Piecewise
import subprocess
import sys
def sim_name(couplings: int, wrappings: int, um: int, drive: str) -> str:
wrappings = 2*wrappings + 1
um_str = {
class SimParams:
def __init__(self, couplings: int, wrappings_spec: int, um: int, drive: str) -> str:
self.couplings = couplings
self.wrappings_spec = wrappings_spec
self.um = um
self.drive_str = drive
@property
def drive(self) -> int:
return int(float(self.drive_str))
@property
def wrappings(self) -> int:
return self.wrappings_spec * 2 + 1
@property
def um_str(self) -> str:
return {
400: "0.0004",
600: "0.00059999997",
800: "0.0008",
}[um]
}[self.um]
@property
def machine_name(self) -> str:
return f"40-{self.um_str}rad-{self.couplings}coupling-{self.wrappings}_1_winding-{self.drive_str}-drive"
return f"40-{um_str}rad-{couplings}coupling-{wrappings}_1_winding-{drive}-drive"
sims = [
# real name, human friendly, normalization
(sim_name(12, 1, 400, "5e10"), "fwd_40_12_3_1_5e10", 17000),
(sim_name(6, 1, 400, "5e10"), "fwd_40_6_3_1_5e10", 17000),
(sim_name(6, 3, 400, "5e10"), "fwd_40_6_7_1_5e10", 15000),
# params, human friendly db name, normalization
(SimParams(12, 1, 400, "5e10"), "fwd_40_12_3_1_5e10", 17000),
(SimParams(6, 1, 400, "5e10"), "fwd_40_6_3_1_5e10", 17000),
(SimParams(6, 3, 400, "5e10"), "fwd_40_6_7_1_5e10", 15000),
(sim_name(20, 1, 600, "3e10"), "fwd_40_600um_20_3_1_3e10", 10000),
(sim_name(20, 1, 600, "5e10"), "fwd_40_600um_20_3_1_5e10", 19000),
(sim_name(20, 1, 600, "1e11"), "fwd_40_600um_20_3_1_1e11", 15000),
(sim_name(20, 1, 600, "2e11"), "fwd_40_600um_20_3_1_2e11", 15000),
(sim_name(12, 2, 600, "5e10"), "fwd_40_600um_12_5_1_5e10", 12000),
(sim_name(12, 2, 600, "1e11"), "fwd_40_600um_12_5_1_1e11", 14000),
(sim_name(12, 2, 600, "2e11"), "fwd_40_600um_12_5_1_2e11", 14000),
(sim_name(8, 3, 600, "5e10"), "fwd_40_600um_8_7_1_5e10", 12000),
(sim_name(8, 3, 600, "1e11"), "fwd_40_600um_8_7_1_1e11", 12000),
(sim_name(6, 4, 600, "5e10"), "fwd_40_600um_6_9_1_5e10", 12000),
(sim_name(6, 4, 600, "1e11"), "fwd_40_600um_6_9_1_1e11", 12000),
(sim_name(6, 5, 600, "5e10"), "fwd_40_600um_6_11_1_5e10", 10000),
(SimParams(20, 1, 600, "3e10"), "fwd_40_600um_20_3_1_3e10", 10000),
(SimParams(20, 1, 600, "5e10"), "fwd_40_600um_20_3_1_5e10", 19000),
(SimParams(20, 1, 600, "1e11"), "fwd_40_600um_20_3_1_1e11", 15000),
(SimParams(20, 1, 600, "2e11"), "fwd_40_600um_20_3_1_2e11", 15000),
(SimParams(12, 2, 600, "5e10"), "fwd_40_600um_12_5_1_5e10", 12000),
(SimParams(12, 2, 600, "1e11"), "fwd_40_600um_12_5_1_1e11", 14000),
(SimParams(12, 2, 600, "2e11"), "fwd_40_600um_12_5_1_2e11", 14000),
(SimParams(8, 3, 600, "5e10"), "fwd_40_600um_8_7_1_5e10", 12000),
(SimParams(8, 3, 600, "1e11"), "fwd_40_600um_8_7_1_1e11", 12000),
(SimParams(6, 4, 600, "5e10"), "fwd_40_600um_6_9_1_5e10", 12000),
(SimParams(6, 4, 600, "1e11"), "fwd_40_600um_6_9_1_1e11", 12000),
(SimParams(6, 5, 600, "5e10"), "fwd_40_600um_6_11_1_5e10", 10000),
(sim_name(6, 3, 600, "5e10"), "fwd_40_600um_6_7_1_5e10", 20000),
# (sim_name(10, 3, 600, "5e10"), "fwd_40_600um_10_7_1_5e10", 20000),
(sim_name(6, 2, 600, "5e10"), "fwd_40_600um_6_5_1_5e10", 20000),
(sim_name(8, 2, 600, "5e10"), "fwd_40_600um_8_5_1_5e10", 20000),
(sim_name(10, 2, 600, "5e10"), "fwd_40_600um_10_5_1_5e10", 20000),
(SimParams(6, 3, 600, "5e10"), "fwd_40_600um_6_7_1_5e10", 20000),
# (SimParams(10, 3, 600, "5e10"), "fwd_40_600um_10_7_1_5e10", 20000),
(SimParams(6, 2, 600, "5e10"), "fwd_40_600um_6_5_1_5e10", 20000),
(SimParams(8, 2, 600, "5e10"), "fwd_40_600um_8_5_1_5e10", 20000),
(SimParams(10, 2, 600, "5e10"), "fwd_40_600um_10_5_1_5e10", 20000),
# partially complete
(sim_name(24, 1, 800, "1e11"), "fwd_40_800um_24_3_1_1e11", 12000),
(sim_name(18, 2, 800, "1e11"), "fwd_40_800um_18_5_1_1e11", 10000),
(sim_name(18, 2, 800, "5e10"), "fwd_40_800um_18_5_1_5e10", 10000),
(sim_name(12, 3, 800, "5e10"), "fwd_40_800um_12_7_1_5e10", 8000),
(sim_name(12, 3, 800, "1e11"), "fwd_40_800um_12_7_1_1e11", 8000),
(sim_name(10, 4, 800, "2e11"), "fwd_40_800um_10_9_1_2e11", 8000),
(sim_name(10, 4, 800, "5e10"), "fwd_40_800um_10_9_1_5e10", 8000),
(sim_name(10, 4, 800, "1e11"), "fwd_40_800um_10_9_1_1e11", 8000),
(sim_name(12, 2, 800, "5e10"), "fwd_40_800um_12_5_1_5e10", 8000),
(sim_name(12, 2, 800, "1e11"), "fwd_40_800um_12_5_1_1e11", 8000),
(SimParams(24, 1, 800, "1e11"), "fwd_40_800um_24_3_1_1e11", 12000),
(SimParams(18, 2, 800, "1e11"), "fwd_40_800um_18_5_1_1e11", 10000),
(SimParams(18, 2, 800, "5e10"), "fwd_40_800um_18_5_1_5e10", 10000),
(SimParams(12, 3, 800, "5e10"), "fwd_40_800um_12_7_1_5e10", 8000),
(SimParams(12, 3, 800, "1e11"), "fwd_40_800um_12_7_1_1e11", 8000),
(SimParams(10, 4, 800, "2e11"), "fwd_40_800um_10_9_1_2e11", 8000),
(SimParams(10, 4, 800, "5e10"), "fwd_40_800um_10_9_1_5e10", 8000),
(SimParams(10, 4, 800, "1e11"), "fwd_40_800um_10_9_1_1e11", 8000),
(SimParams(12, 2, 800, "5e10"), "fwd_40_800um_12_5_1_5e10", 8000),
(SimParams(12, 2, 800, "1e11"), "fwd_40_800um_12_5_1_1e11", 8000),
]
measurements = { real: [human, norm, None, None] for (real, human, norm) in sims }
measurements = { real.machine_name: [human, norm, None, None] for (real, human, norm) in sims }
def set_meas(real: str, expr: str):
pw = eval(expr)
@@ -77,7 +95,7 @@ def try_measure(real: str):
def update_all():
for (real, _human, _norm) in sims:
try_measure(real)
try_measure(real.machine_name)
def dump(path: str):
orig = open(path).read()
@@ -87,9 +105,9 @@ def dump(path: str):
f.write(prelude)
f.write(marker)
for (real, _human, _norm) in sims:
encoded = measurements[real][2]
encoded = measurements[real.machine_name][2]
if encoded:
f.write(f"\n\nset_meas(\"{real}\", \"\"\"{encoded}\"\"\")")
f.write(f"\n\nset_meas(\"{real.machine_name}\", \"\"\"{encoded}\"\"\")")
f.write("\n\nif __name__ == '__main__': main()\n")