Repository navigation
Expand file tree
/
Copy pathtest_single_module.py
More file actions
82 lines (69 loc) · 2.47 KB
/
Copy pathtest_single_module.py
File metadata and controls
82 lines (69 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import read_input as ri
from DataStructure.InputDataStructure import InputData
input_data=InputData()
input_data.i_plasma_geometry = 0
input_data.rmajor = 3.1
input_data.aspect = 1.7
input_data.kappa = 2.5
input_data.delta = 0.6
## 初始化
model = ri.PlasmaModel()
model.input_data = input_data
from init_process import InitProcess
init_process = InitProcess()
model_process = init_process.init_process("try_ccx/compare_with_local_IN.DAT")
## 修改 process 中的物理量
ri.write_input_to_data(model.geom_data, input_data)
import process.data_structure.physics_variables as physics_variables
physics_variables.rmajor = model.geom_data.rmajor
physics_variables.aspect = model.geom_data.aspect
physics_variables.kappa = model.geom_data.kappa
physics_variables.triang = model.geom_data.delta
physics_variables.i_plasma_geometry = model.input_data.i_plasma_geometry
# 运行
model_process.plasma_geom.plasma_geometry()
from plasma_geometry import plasma_geom
plasma_geom(model.geom_data,model.input_data.i_plasma_geometry)
def transfer_data(str1):
"""Map local GeometryData field names to process physics_variables names."""
match str1:
case "delta":
return "triang"
case "delta95":
return "triang95"
case "kappa_ipb_scale":
return "kappa_ipb"
case "area_cross_section_plasma":
return "a_plasma_poloidal"
case "length_plasma":
return "len_plasma_poloidal"
case "surface_area_plasma":
return "a_plasma_surface"
case "surface_area_plasma_outer":
return "a_plasma_surface_outboard"
case "xi" | "xo" | "thetai" | "thetao" | "shift":
# arc parameters / profile arrays: not stored in physics_variables
return None
case "surface_area_plasma_inner":
# PROCESS only stores total (a_plasma_surface) and outboard (a_plasma_surface_outboard)
return None
case (
"i_plasma_geometry"
| "itart"
| "rmajor"
| "rminor"
| "kappa"
| "kappa95"
| "aspect"
| "eps"
| "vol_plasma"
):
return str1
return str1
# 输出对比
for k in model.geom_data.__dir__():
if not k.startswith("_"):
v = getattr(model.geom_data, k)
print(f"{k}: {v}")
if transfer_data(k) is not None:
print(f"{transfer_data(k)}: {getattr(physics_variables, transfer_data(k))} \n")