app: stacked_cores: re-analyze 17-xx and 18-xx fork-and-join experiments

neither of these produce good amplification.
- we expect bad amplification for 18-xx because it doesn't do any loops
  with > 2 cores
- 17-xx might just need reduced drive current
This commit is contained in:
2022-09-22 17:25:14 -07:00
parent 26a4a6ea86
commit 6e32f9791e
2 changed files with 41 additions and 7 deletions

View File

@@ -90,6 +90,39 @@ class Piecewise:
def plot_equilibrium(self, from_: float = 0.0, to: float = 1.0, title: str = "Piecewise"): def plot_equilibrium(self, from_: float = 0.0, to: float = 1.0, title: str = "Piecewise"):
self.plot_for(from_, to, title, self.get_repeated) self.plot_for(from_, to, title, self.get_repeated)
fwd_17_4_0_8e10 = Piecewise(
[
[ -16381, 6688 ],
[ -15885, 6778 ],
[ -14831, 6878 ],
[ -13622, 7004 ],
[ -883, 8528 ],
[ 6252, 9496 ],
[ 7846, 9703 ],
[ 8148, 9766 ],
[ 8425, 9831 ],
[ 8705, 9892 ],
[ 8988, 9916 ],
[ 9866, 10114 ],
[ 11179, 10234 ],
[ 12033, 10382 ],
[ 12491, 10422 ],
[ 13135, 10494 ],
[ 14363, 10649 ],
]
).normalized(17000)
fwd_18 = Piecewise(
[
[ -16206, -1131 ],
[ -15192, -746 ],
[ -12827, 33 ],
[ -642, 4990 ],
[ 13082, 9652 ],
[ 16696, 10600 ],
]
).normalized(17000)
fwd_24 = Piecewise( fwd_24 = Piecewise(
[ [
@@ -375,6 +408,7 @@ inv_39_2_0_15e10 = Piecewise(
).normalized(17000) ).normalized(17000)
for (name, curve) in [ for (name, curve) in [
("18", fwd_18.logically_inverted()),
# ("24", fwd_24.logically_inverted()), # ("24", fwd_24.logically_inverted()),
# ("26", fwd_26.logically_inverted()), # ("26", fwd_26.logically_inverted()),
# ("38 1:0 (2e10 I)", fwd_38_1_0.logically_inverted()), # ("38 1:0 (2e10 I)", fwd_38_1_0.logically_inverted()),
@@ -393,4 +427,4 @@ for (name, curve) in [
]: ]:
curve.plot(title = f"{name} mapping") curve.plot(title = f"{name} mapping")
curve.logically_inverted().plot_slope(title = f"{name} slope") curve.logically_inverted().plot_slope(title = f"{name} slope")
# curve.plot_equilibrium(title = f"{name} equilibrium") curve.plot_equilibrium(title = f"{name} equilibrium")

View File

@@ -8,23 +8,23 @@ import sys
from stacked_cores import load_csv, labeled_rows, last_row_before_t, extract_m from stacked_cores import load_csv, labeled_rows, last_row_before_t, extract_m
def extract_one(path: str): def extract_one(path: str, t_first: float, t_last: float):
header, raw_rows = load_csv(path) header, raw_rows = load_csv(path)
rows = labeled_rows(header, raw_rows) rows = labeled_rows(header, raw_rows)
tx_init = last_row_before_t(rows, 2e-9) tx_init = last_row_before_t(rows, t_first)
tx_fini = last_row_before_t(rows, 3e-9) tx_fini = last_row_before_t(rows, t_last)
m_init = extract_m(tx_init) m_init = extract_m(tx_init)
m_fini = extract_m(tx_fini) m_fini = extract_m(tx_fini)
return m_init[0], m_fini[-1] return m_init[0], m_fini[-1]
def extract_39xx(base_path: str): def extract_39xx(base_path: str, t_first: str = "2e-9", t_last: str = "3e-9"):
base_dir, prefix = os.path.split(base_path) base_dir, prefix = os.path.split(base_path)
mappings = [] mappings = []
for entry in os.listdir(base_dir): for entry in os.listdir(base_dir):
if entry.startswith(prefix): if entry.startswith(prefix):
(input_, output) = extract_one(os.path.join(base_dir, entry, "meas.csv")) (input_, output) = extract_one(os.path.join(base_dir, entry, "meas.csv"), float(t_first), float(t_last))
mappings.append((input_, output)) mappings.append((input_, output))
print("Piecewise(") print("Piecewise(")
@@ -36,4 +36,4 @@ def extract_39xx(base_path: str):
if __name__ == '__main__': if __name__ == '__main__':
extract_39xx(sys.argv[1]) extract_39xx(*sys.argv[1:])