from typing import Dict, Tuple
[docs]
class PlotLabels:
"""Data about Roxie defined Plots"""
plot3D_desc: Dict[str, str] = {
"1": "Pressure on broad face of cable, positive away from pole (N/mm**2)",
"2": "Pressure on Narrow face of cable, positive in outward direction (N/mm**2)",
"3": "Lorentz force in x direction / surface area (N/mm**2)",
"4": "Lorentz force in y direction / surface area (N/mm**2)",
"5": "Lorentz force in z direction / surface area (N/mm**2)",
"6": "Lorentz force in radial direction / surface area (N/mm**2)",
"7": "Lorentz force in azimuthal direction / surface area (N/mm**2)",
"8": "|B| max (T)",
"9": "|B| min (T)",
"10": "|B| average (T)",
"11": "Coil",
"12": "Iz (A)",
"13": "Min. curvature k (1/mm)",
"14": "Max. curvature k (1/mm)",
"41": "Spacers",
"51": "Yoke",
"52": "|B| (T)",
}
plot3D_label: Dict[str, str] = {
"1": "PB",
"2": "PN",
"3": "FX",
"4": "FY",
"5": "FZ",
"6": "FR",
"7": "FF",
"8": "BMAX",
"9": "BMIN",
"10": "BMID",
"12": "JZ",
"13": "CURVMIN",
"14": "CURVMAX",
}
plot2D_desc: Dict[str, str] = {
"1": "Bx (T)",
"2": "By (T)",
"3": "|B| (T)",
"4": "Magnetic flux density (T)",
"5": "B normal to broad side (T) r x Bperp positive in z",
"6": "B tangent. to broad side (T) pos. in outward direction",
"7": "Fx / L (N/M)",
"8": "Fy / L (N/M)",
"9": "|F| / L (N/M)",
"10": "Emag. force / L (N/m)",
"11": "F normal to broad side / L (N/M)",
"12": "F tangential broad side / L (N/M)pos. in outward direction",
"13": "Vector potential (Tm)",
"14": "I (A)",
"15": "J (A/mm^2!)",
"16": "J-Cu (A/mm^2!)",
"17": "J-Sc (A/mm^2!)",
"18": "Margin to quench (%)",
"19": "Bred x-comp (T)",
"20": "Bred y-comp (T)",
"21": "|Bred| (T)",
"22": "Ared (Tm)",
"24": "|I| (A)",
"25": "|J| (A/mm^2!)",
"26": "|J-Cu| (A/mm^2!)",
"27": "|J-Sc| (A/mm^2!)",
"28": "Temperature margin (K)",
"29": "T (K)",
"36": "Enthalpy Margin Strand (mJ/cm^3!)",
"37": "Enthalpy Margin Cable 1 (mJ/cm^3!)",
"38": "Enthalpy Margin Cable 2 (mJ/cm^3!)",
"39": "P integrated (Ws/m)",
"40": "Alpha M (deg)",
"41": "Mx (A/m)",
"42": "My (A/m)",
"43": "M (A/m)",
"44": "SC filament magn. (A/m)",
"45": "F || / F -|",
"46": "|M| (A/m)",
"47": "Alpha B (deg)",
"48": "P (W/m)",
"49": "B1 Contrib. of I strand (T)",
"50": "B2 Contrib. of I strand (T)",
"51": "B3 Contrib. of I strand (T)",
"52": "B4 Contrib. of I strand (T)",
"53": "B5 Contrib. of I strand (T)",
"54": "B6 Contrib. of I strand (T)",
"55": "B7 Contrib. of I strand (T)",
"56": "B8 Contrib. of I strand (T)",
"57": "B9 Contrib. of I strand (T)",
"58": "B10 Contrib. of I strand (T)",
"59": "B11 Contrib. of I strand (T)",
"60": "B1 Contrib. of M strand (T)",
"61": "B2 Contrib. of M strand (T)",
"62": "B3 Contrib. of M strand (T)",
"63": "B4 Contrib. of M strand (T)",
"64": "B5 Contrib. of M strand (T)",
"65": "B6 Contrib. of M strand (T)",
"66": "B7 Contrib. of M strand (T)",
"67": "B8 Contrib. of M strand (T)",
"68": "B9 Contrib. of M strand (T)",
"69": "B10 Contrib. of M strand (T)",
"70": "B11 Contrib. of M strand (T)",
"79": "B1 Contrib. of ICC (T)",
"80": "B2 Contrib. of ICC (T)",
"81": "B3 Contrib. of ICC (T)",
"82": "B4 Contrib. of ICC (T)",
"83": "B5 Contrib. of ICC (T)",
"84": "B6 Contrib. of ICC (T)",
"85": "B7 Contrib. of ICC (T)",
"86": "B8 Contrib. of ICC (T)",
"87": "B9 Contrib. of ICC (T)",
"88": "B10 Contrib. of ICC (T)",
"89": "B11 Contrib. of ICC (T)",
"91": "I-CC (A)",
"92": "A1 Contrib. of ICC (T)",
"93": "A2 Contrib. of ICC (T)",
"94": "A3 Contrib. of ICC (T)",
"95": "A4 Contrib. of ICC (T)",
"96": "A5 Contrib. of ICC (T)",
"97": "A6 Contrib. of ICC (T)",
"146": "B12 Contrib. of I strand (T)",
"147": "B13 Contrib. of I strand (T)",
"148": "B14 Contrib. of I strand (T)",
"155": "Voltage to Clamp (V)",
"161": "A1 Contrib. of I strand (T)",
"162": "A2 Contrib. of I strand (T)",
"163": "A3 Contrib. of I strand (T)",
"164": "A4 Contrib. of I strand (T)",
"165": "A5 Contrib. of I strand (T)",
"166": "A6 Contrib. of I strand (T)",
"167": "A7 Contrib. of I strand (T)",
"168": "A8 Contrib. of I strand (T)",
"169": "A9 Contrib. of I strand (T)",
"170": "A10 Contrib. of I strand (T)",
"171": "A11 Contrib. of I strand (T)",
"172": "A12 Contrib. of I strand (T)",
"173": "A13 Contrib. of I strand (T)",
"174": "A14 Contrib. of I strand (T)",
"360": "Current density margin(at Jop,Bop,Top)(A/mm2)",
}
plot2D_label: Dict[str, str] = {
"1": "BX",
"2": "BY",
"3": "|B|",
"4": "B",
"5": "BPERP",
"6": "BPARA",
"7": "FX",
"8": "FY",
"9": "|F|",
"10": "F",
"11": "FPERP",
"12": "FPARA",
"13": "A",
"14": "I",
"15": "JELE",
"16": "JCU",
"17": "JSC",
"18": "MARG",
"19": "BREDX",
"20": "BREDY",
"21": "BR",
"22": "ARED",
"24": "|I|",
"25": "|JEL|",
"26": "|JCU|",
"27": "|JSC|",
"28": "MARGT",
"29": "T",
"36": "MQES",
"37": "MQEC1",
"38": "MQEC2",
"39": "PINT",
"40": "MPHAS",
"41": "MX",
"42": "MY",
"43": "|M|",
"44": "M",
"45": "FPN",
"46": "MMOD",
"47": "BPHAS",
"48": "P",
"49": "B1",
"50": "B2",
"51": "B3",
"52": "B4",
"53": "B5",
"54": "B6",
"55": "B7",
"56": "B8",
"57": "B9",
"58": "B10",
"59": "B11",
"60": "M1",
"61": "M2",
"62": "M3",
"63": "M4",
"64": "M5",
"65": "M6",
"66": "M7",
"67": "M8",
"68": "M9",
"69": "M10",
"70": "M11",
"79": "B1ICC",
"80": "B2ICC",
"81": "B3ICC",
"82": "B4ICC",
"83": "B5ICC",
"84": "B6ICC",
"85": "B7ICC",
"86": "B8ICC",
"87": "B9ICC",
"88": "B10ICC",
"89": "B11ICC",
"91": "ICC",
"92": "A1ICC",
"93": "A2ICC",
"94": "A3ICC",
"95": "A4ICC",
"96": "A5ICC",
"97": "A6ICC",
"146": "B12",
"147": "B13",
"148": "B14",
"155": "V",
"161": "A1",
"162": "A2",
"163": "A3",
"164": "A4",
"165": "A5",
"166": "A6",
"167": "A7",
"168": "A8",
"169": "A9",
"170": "A10",
"171": "A11",
"172": "A12",
"173": "A13",
"174": "A14",
"360": "MARGJ",
}
plotMesh2D_desc: Dict[str, str] = {
"31": "Muer",
"32": "|B| (T)",
"34": "Az (Tm)",
"35": "(Muer-1)/(Muer+1)",
"75": "Bx (T)",
"76": "By (T)",
"121": "Eddy Jx current dens. (A/m**2)",
"122": "Eddy Jy current dens. (A/m**2)",
"123": "Eddy JZ current dens. (A/m**2)",
"124": "|J| (A/m**2)",
"125": "J**2*S (A**2)",
# Time transient (TLEDDY) related values
"az": "Az",
"norm_deriv_az": "dAz/dn",
"Bz": "Bz (T)",
"jx": "Eddy Jx current dens. (A/m**2)",
"jy": "Eddy Jy current dens. (A/m**2)",
"jz": "Eddy Jz current dens. (A/m**2)",
"j^2/sigma": "Eddy power losses j^2/sigma",
"Hx": "Magnetic Induction Hx",
"Hy": "Magnetic Induction Hy",
"Hz": "Magnetic Induction Hz",
}
plotMesh2D_label: Dict[str, str] = {
"31": "MUER",
"32": "|BTOT|",
"34": "AR",
"35": "MUEFAC",
"75": "Bx",
"76": "By",
"121": "JX",
"122": "JY",
"123": "JZ",
"124": "|J|",
"125": "J2S",
# Time transient (LTEDDY) related values
"az": "AZ",
"norm_deriv_az": "dAz/dn",
"Bx": "Bx",
"By": "By",
"Bz": "Bz",
"jx": "JX",
"jy": "JY",
"jz": "JZ",
"j^2/sigma": "J2S",
"Hx": "HX",
"Hy": "HY",
"Hz": "HZ",
}
plotMesh3D_desc: Dict[str, str] = {
"52": "|B| (T)",
"53": "B (T)",
"54": "|A| (Tm)",
"55": "A (Tm)",
"56": "Phi (V)",
"57": "Bx (T)",
"58": "By (T)",
"59": "Bz (T)",
"60": "Ax (Tm)",
"61": "Ay (Tm)",
"62": "Az (Tm)",
}
plotMesh3D_label: Dict[str, str] = {
"52": "|IB|",
"53": "IB",
"54": "|IA|",
"55": "IA",
"56": "IPHI",
"57": "IBx",
"58": "IBx",
"59": "IBx",
"60": "IAx",
"61": "IAy",
"62": "IAz",
}
[docs]
@staticmethod
def get_possible_names(entry: str, labels: dict[str, str]) -> set[str]:
"""Return all possible names for a given entry.
Search through the labels dictionary and return all keys that have the same value as the entry.
:param entry: The entry to search for. Either a key or value (e.g "1" or "Bx")
:param labels: The dictionary to search in
:return: A list of possible names for the entry (e.g ["121", "bx"])
"""
possible_names = set()
if entry in labels:
meaning = labels.get(entry)
possible_names.add(entry)
else:
meaning = entry
for k, v in labels.items():
if v == meaning and k not in possible_names:
possible_names.add(k)
return possible_names
[docs]
@staticmethod
def lbl_desc_plot3D(id: str) -> Tuple[str, str]:
return PlotLabels.plot3D_label.get(id, ""), PlotLabels.plot3D_desc.get(
id, f"Unknown label {id}"
)
[docs]
@staticmethod
def lbl_desc_plot2D(id: str) -> Tuple[str, str]:
return PlotLabels.plot2D_label.get(id, ""), PlotLabels.plot2D_desc.get(
id, f"Unknown label {id}"
)
[docs]
@staticmethod
def lbl_desc_mesh2D(id: str) -> Tuple[str, str]:
return PlotLabels.plotMesh2D_label.get(id, ""), PlotLabels.plotMesh2D_desc.get(
id, f"Unknown label {id}"
)
[docs]
@staticmethod
def lbl_desc_mesh3D(id: str) -> Tuple[str, str]:
return PlotLabels.plotMesh3D_label.get(id, ""), PlotLabels.plotMesh3D_desc.get(
id, f"Unknown label {id}"
)