Coverage for fiqus/data/DataFiQuSMultipole.py: 100%

36 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2024-05-20 03:24 +0200

1from pydantic import BaseModel 

2from typing import (List, Literal, Optional) 

3 

4 

5class Threshold(BaseModel): 

6 """ 

7 Level 2: Class for FiQuS Multipole 

8 """ 

9 SizeMin: Optional[float] = None 

10 SizeMax: Optional[float] = None 

11 DistMin: Optional[float] = None 

12 DistMax: Optional[float] = None 

13 

14 

15class GeometryMultipole(BaseModel): 

16 """ 

17 Level 2: Class for FiQuS Multipole 

18 """ 

19 with_iron_yoke: Optional[bool] = None 

20 

21 

22class MeshMultipole(BaseModel): 

23 """ 

24 Level 2: Class for FiQuS Multipole 

25 """ 

26 default_mesh: Optional[bool] = None 

27 mesh_iron: Threshold = Threshold() 

28 mesh_coil: Threshold = Threshold() 

29 MeshSizeMin: Optional[float] = None # sets gmsh Mesh.MeshSizeMin 

30 MeshSizeMax: Optional[float] = None # sets gmsh Mesh.MeshSizeMax 

31 MeshSizeFromCurvature: Optional[float] = None # sets gmsh Mesh.MeshSizeFromCurvature 

32 Algorithm: Optional[int] = None # sets gmsh Mesh.Algorithm 

33 AngleToleranceFacetOverlap: Optional[float] = None # sets gmsh Mesh.AngleToleranceFacetOverlap 

34 ElementOrder: Optional[int] = None # sets gmsh Mesh.ElementOrder 

35 Optimize: Optional[int] = None # sets gmsh Mesh.Optimize 

36 

37 

38class SolveMultipoleFiQuS(BaseModel): 

39 """ 

40 Level 2: Class for FiQuS Multipole 

41 """ 

42 I_initial: Optional[List[float]] = None 

43 pro_template: Optional[str] = None # file name of .pro template file 

44 

45 

46class PostProcMultipole(BaseModel): 

47 """ 

48 Level 2: Class for FiQuS Multipole 

49 """ 

50 compare_to_ROXIE: Optional[str] = None 

51 plot_all: Optional[str | bool] = None 

52 variables: Optional[List[str]] = None # Name of variables to post-process, like "b" for magnetic flux density 

53 volumes: Optional[List[str]] = None # Name of domains to post-process, like "powered" 

54 file_exts: Optional[List[str]] = None # Name of file extensions to output to, like "pos" 

55 additional_outputs: Optional[List[str]] = None # Name of software specific input files to prepare, like "LEDET3D" 

56 

57 

58class MPDM(BaseModel): 

59 """ 

60 Level 2: Class for FiQuS Multipole 

61 """ 

62 type: Literal['multipole'] = 'multipole' 

63 geometry: GeometryMultipole = GeometryMultipole() 

64 mesh: MeshMultipole = MeshMultipole() 

65 solve: SolveMultipoleFiQuS = SolveMultipoleFiQuS() 

66 postproc: PostProcMultipole = PostProcMultipole()