Coverage for fiqus/data/DataRoxieParser.py: 100%
206 statements
« prev ^ index » next coverage.py v6.4.4, created at 2024-05-20 03:24 +0200
« prev ^ index » next coverage.py v6.4.4, created at 2024-05-20 03:24 +0200
1from pydantic import BaseModel
2from typing import (Dict, List, Optional)
5class Coord(BaseModel):
6 """
7 Class for coordinates
8 """
9 x: Optional[float] = None
10 y: Optional[float] = None
11 z: Optional[float] = None
14class Roll(BaseModel):
15 """
16 Class for roll2 transformation
17 """
18 coor: Coord = Coord()
19 alph: Optional[float] = None
22class HyperHole(BaseModel):
23 """
24 Class for hyper holes
25 """
26 areas: List[str] = []
29class HyperArea(BaseModel):
30 """
31 Class for hyper areas
32 """
33 material: Optional[str] = None
34 lines: List[str] = []
37class HyperLine(BaseModel):
38 """
39 Class for hyper lines: lines, arcs, elliptic arcs, circles
40 """
41 type: Optional[str] = None
42 kp1: Optional[str] = None
43 kp2: Optional[str] = None
44 kp3: Optional[str] = None
45 arg1: Optional[float] = None
46 arg2: Optional[float] = None
47 elements: Optional[int] = None
50class CondPar(BaseModel):
51 """
52 Class for conductor parameters
53 """
54 wInsulNarrow: Optional[float] = None
55 wInsulWide: Optional[float] = None
56 dFilament: Optional[float] = None
57 dstrand: Optional[float] = None
58 fracCu: Optional[float] = None
59 fracSc: Optional[float] = None
60 RRR: Optional[float] = None
61 TupRRR: Optional[float] = None
62 Top: Optional[float] = None
63 Rc: Optional[float] = None
64 Ra: Optional[float] = None
65 fRhoEff: Optional[float] = None
66 lTp: Optional[float] = None
67 wBare: Optional[float] = None
68 hInBare: Optional[float] = None
69 hOutBare: Optional[float] = None
70 noOfStrands: Optional[int] = None
71 noOfStrandsPerLayer: Optional[int] = None
72 noOfLayers: Optional[int] = None
73 lTpStrand: Optional[float] = None
74 wCore: Optional[float] = None
75 hCore: Optional[float] = None
76 thetaTpStrand: Optional[float] = None
77 degradation: Optional[float] = None
78 C1: Optional[float] = None
79 C2: Optional[float] = None
80 fracHe: Optional[float] = None
81 fracFillInnerVoids: Optional[float] = None
82 fracFillOuterVoids: Optional[float] = None
85class Conductor(BaseModel):
86 """
87 Class for conductor type
88 """
89 conductorType: Optional[int] = None
90 cableGeom: Optional[str] = None
91 strand: Optional[str] = None
92 filament: Optional[str] = None
93 insul: Optional[str] = None
94 trans: Optional[str] = None
95 quenchMat: Optional[str] = None
96 T_0: Optional[float] = None
97 comment: Optional[str] = None
98 parameters: CondPar = CondPar()
101class Cable(BaseModel):
102 """
103 Class for cable parameters
104 """
105 height: Optional[float] = None
106 width_i: Optional[float] = None
107 width_o: Optional[float] = None
108 ns: Optional[float] = None
109 transp: Optional[float] = None
110 degrd: Optional[float] = None
111 comment: Optional[str] = None
114class Quench(BaseModel):
115 """
116 Class for quench parameters
117 """
118 SCHeatCapa: Optional[float] = None
119 CuHeatCapa: Optional[float] = None
120 CuThermCond: Optional[float] = None
121 CuElecRes: Optional[float] = None
122 InsHeatCapa: Optional[float] = None
123 InsThermCond: Optional[float] = None
124 FillHeatCapa: Optional[float] = None
125 He: Optional[float] = None
126 comment: Optional[str] = None
129class Transient(BaseModel):
130 """
131 Class for transient parameters
132 """
133 Rc: Optional[float] = None
134 Ra: Optional[float] = None
135 filTwistp: Optional[float] = None
136 filR0: Optional[float] = None
137 fil_dRdB: Optional[float] = None
138 strandfillFac: Optional[float] = None
139 comment: Optional[str] = None
142class Strand(BaseModel):
143 """
144 Class for strand parameters
145 """
146 diam: Optional[float] = None
147 cu_sc: Optional[float] = None
148 RRR: Optional[float] = None
149 Tref: Optional[float] = None
150 Bref: Optional[float] = None
151 Jc_BrTr: Optional[float] = None
152 dJc_dB: Optional[float] = None
153 comment: Optional[str] = None
156class Filament(BaseModel):
157 """
158 Class for filament parameters
159 """
160 fildiao: Optional[float] = None
161 fildiai: Optional[float] = None
162 Jc_fit: Optional[str] = None
163 fit: Optional[str] = None
164 comment: Optional[str] = None
167class Insulation(BaseModel):
168 """
169 Class for insulation parameters
170 """
171 radial: Optional[float] = None
172 azimut: Optional[float] = None
173 comment: Optional[str] = None
176class Block(BaseModel):
177 """
178 Class for block list
179 """
180 type: Optional[int] = None
181 nco: Optional[int] = None
182 radius: Optional[float] = None
183 phi: Optional[float] = None
184 alpha: Optional[float] = None
185 current: Optional[float] = None
186 condname: Optional[str] = None
187 n1: Optional[int] = None
188 n2: Optional[int] = None
189 imag: Optional[int] = None
190 turn: Optional[float] = None
191 coil: Optional[int] = None
192 pole: Optional[int] = None
193 layer: Optional[int] = None
194 winding: Optional[int] = None
195 shift2: Coord = Coord()
196 roll2: Roll = Roll()
199class Group(BaseModel):
200 """
201 Class for group list
202 """
203 symm: Optional[int] = None
204 typexy: Optional[int] = None
205 blocks: List[int] = [] # map
208class Trans(BaseModel):
209 """
210 Class for transformation list
211 """
212 x: Optional[float] = None
213 y: Optional[float] = None
214 alph: Optional[float] = None
215 bet: Optional[float] = None
216 string: Optional[str] = None
217 act: Optional[int] = None
218 bcs: List[int] = [] # map
221class Iron(BaseModel):
222 """
223 Class for the iron yoke data
224 """
225 key_points: Dict[str, Coord] = {}
226 hyper_lines: Dict[str, HyperLine] = {}
227 hyper_areas: Dict[str, HyperArea] = {}
228 hyper_holes: Dict[int, HyperHole] = {}
231class Cadata(BaseModel):
232 """
233 Class for the conductor data
234 """
235 insul: Dict[str, Insulation] = {}
236 filament: Dict[str, Filament] = {}
237 strand: Dict[str, Strand] = {}
238 transient: Dict[str, Transient] = {}
239 quench: Dict[str, Quench] = {}
240 cable: Dict[str, Cable] = {}
241 conductor: Dict[str, Conductor] = {}
244class Coil(BaseModel):
245 """
246 Class for the coil data
247 """
248 blocks: Dict[str, Block] = {}
249 groups: Dict[str, Group] = {}
250 transs: Dict[str, Trans] = {}
253class StrandGroup(BaseModel):
254 """
255 Class for strand group
256 """
257 strand_positions: Dict[int, Coord] = {}
260class Corner(BaseModel):
261 """
262 Class for corner positions
263 """
264 iL: Coord = Coord() # inner left
265 iR: Coord = Coord() # inner right
266 oL: Coord = Coord() # outer left
267 oR: Coord = Coord() # outer right
270class HalfTurnCorner(BaseModel):
271 """
272 Class for corner type
273 """
274 insulated: Corner = Corner()
275 bare: Corner = Corner()
278class HalfTurn(BaseModel):
279 """
280 Class for half-turn data
281 """
282 corners: HalfTurnCorner = HalfTurnCorner()
283 strand_groups: Dict[int, StrandGroup] = {}
286class CenterShift(BaseModel):
287 """
288 Class for bore center shift
289 """
290 inner: Coord = Coord()
291 outer: Coord = Coord()
294class Wedge(BaseModel):
295 """
296 Class for wedge positions
297 """
298 corners: Corner = Corner()
299 corrected_center: CenterShift = CenterShift()
300 coil: Optional[int] = None
303class BlockData(BaseModel):
304 """
305 Class for block data
306 """
307 block_corners: Corner = Corner()
308 current_sign: Optional[int] = None
309 half_turns: Dict[int, HalfTurn] = {}
312class WindingData(BaseModel):
313 """
314 Class for winding data
315 """
316 blocks: Dict[int, BlockData] = {}
317 conductor_name: Optional[str] = None
318 conductors_number: Optional[int] = None
321class Winding(BaseModel):
322 """
323 Class for windings
324 """
325 windings: Dict[int, WindingData] = {}
328class Layer(BaseModel):
329 """
330 Class for winding layers
331 """
332 layers: Dict[int, Winding] = {}
335class Pole(BaseModel):
336 """
337 Class for poles
338 """
339 poles: Dict[int, Layer] = {}
340 bore_center: Coord = Coord()
343class Order(BaseModel):
344 """
345 Class for electrical order (block location)
346 """
347 coil: Optional[int] = None
348 pole: Optional[int] = None
349 layer: Optional[int] = None
350 winding: Optional[int] = None
351 block: Optional[int] = None
354class CoilData(BaseModel):
355 """
356 Class for coils
357 """
358 coils: Dict[int, Pole] = {}
359 electrical_order: List[Order] = []
362class RoxieRawData(BaseModel):
363 """
364 Class for the raw data
365 """
366 cadata: Cadata = Cadata()
367 coil: Coil = Coil()
370class RoxieData(BaseModel):
371 """
372 Class for the roxie parser
373 """
374 iron: Iron = Iron()
375 coil: CoilData = CoilData()
376 wedges: Dict[int, Wedge] = {}