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
« 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)
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
15class GeometryMultipole(BaseModel):
16 """
17 Level 2: Class for FiQuS Multipole
18 """
19 with_iron_yoke: Optional[bool] = None
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
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
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"
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()