Skip to content

Commit b8aeb0d

Browse files
Handling sliced elements in simulator but no tests yet
1 parent 0615c4a commit b8aeb0d

File tree

1 file changed

+6
-18
lines changed

1 file changed

+6
-18
lines changed

pyaml/lattice/abstract_impl.py

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -110,30 +110,18 @@ def __init__(self, elements: list[at.Element], poly: PolynomInfo, model: MagnetM
110110
self.__elements = elements
111111
self.__poly = [element.__getattribute__(poly.attName) for element in elements]
112112
self.__polyIdx = poly.index
113-
self.__lengths:list[float] = [element.Length for element in elements]
114-
115-
def __get_ks(self) -> list[float]:
116-
if not all([hasattr(element, "K") for element in self.__elements]):
117-
ks:list[float] = [element.K for element in self.__elements]
118-
else:
119-
ks: list[float] = [1.0] * len(self.__elements)
120-
return ks
113+
lengths:list[float] = [element.Length for element in elements]
114+
self.__full_length = sum(lengths)
115+
self.__ratios = [length/self.__full_length for length in lengths]
121116

122117
# Gets the value
123118
def get(self) -> float:
124-
ks = self.__get_ks()
125-
k_lengths = [length*k for length, k in zip(self.__lengths, ks)]
126-
full_k_length = sum(k_lengths)
127-
return sum([poly[self.__polyIdx] for poly in self.__poly]) * full_k_length
119+
return sum([poly[self.__polyIdx] for poly in self.__poly]) * self.__full_length
128120

129121
# Sets the value
130122
def set(self, value: float):
131-
ks = self.__get_ks()
132-
k_lengths = [length*k for length, k in zip(self.__lengths, ks)]
133-
full_k_length = sum(k_lengths)
134-
ratios = [k_length/full_k_length for k_length in k_lengths]
135-
for poly, ratio in zip(self.__poly, ratios):
136-
poly[self.__polyIdx] = (value / full_k_length) * ratio
123+
for poly, ratio in zip(self.__poly, self.__ratios):
124+
poly[self.__polyIdx] = (value / self.__full_length) * ratio
137125

138126
# Sets the value and wait that the read value reach the setpoint
139127
def set_and_wait(self, value: float):

0 commit comments

Comments
 (0)