@@ -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