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 subprocess
import sys import sys
def sim_name(couplings: int, wrappings: int, um: int, drive: str) -> str: class SimParams:
wrappings = 2*wrappings + 1 def __init__(self, couplings: int, wrappings_spec: int, um: int, drive: str) -> str:
um_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", 400: "0.0004",
600: "0.00059999997", 600: "0.00059999997",
800: "0.0008", 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 = [ sims = [
# real name, human friendly, normalization # params, human friendly db name, normalization
(sim_name(12, 1, 400, "5e10"), "fwd_40_12_3_1_5e10", 17000), (SimParams(12, 1, 400, "5e10"), "fwd_40_12_3_1_5e10", 17000),
(sim_name(6, 1, 400, "5e10"), "fwd_40_6_3_1_5e10", 17000), (SimParams(6, 1, 400, "5e10"), "fwd_40_6_3_1_5e10", 17000),
(sim_name(6, 3, 400, "5e10"), "fwd_40_6_7_1_5e10", 15000), (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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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(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), (SimParams(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), # (SimParams(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), (SimParams(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), (SimParams(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(10, 2, 600, "5e10"), "fwd_40_600um_10_5_1_5e10", 20000),
# partially complete # partially complete
(sim_name(24, 1, 800, "1e11"), "fwd_40_800um_24_3_1_1e11", 12000), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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), (SimParams(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(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): def set_meas(real: str, expr: str):
pw = eval(expr) pw = eval(expr)
@@ -77,7 +95,7 @@ def try_measure(real: str):
def update_all(): def update_all():
for (real, _human, _norm) in sims: for (real, _human, _norm) in sims:
try_measure(real) try_measure(real.machine_name)
def dump(path: str): def dump(path: str):
orig = open(path).read() orig = open(path).read()
@@ -87,9 +105,9 @@ def dump(path: str):
f.write(prelude) f.write(prelude)
f.write(marker) f.write(marker)
for (real, _human, _norm) in sims: for (real, _human, _norm) in sims:
encoded = measurements[real][2] encoded = measurements[real.machine_name][2]
if encoded: 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") f.write("\n\nif __name__ == '__main__': main()\n")