Skip to content

vacuum_vessel

Calculate radial and vertical coordinates for the geometry of the vacuum vessel

vacuum_vessel_geometry_single_null(cumulative_upper, upper, triang, radx_outer, rminx_outer, radx_inner, rminx_inner, cumulative_lower, lower)

Calculates radial and vertical distances for the geometry of the vacuum vessel in a single null configuration

Parameters:

Name Type Description Default
cumulative_upper dict

cumulative vertical thicknesses of components above the midplane

required
upper dict

vertical thicknesses of components above the midplane

required
triang float

plasma triangularity

required
radx_outer float

outboard radius of outer surface of vacuum vessel

required
rminx_outer float

inboard radius of outer surface of vacuum vessel

required
radx_inner float

outboard radius of inner surface of vacuum vessel

required
rminx_inner float

inboard radius of inner surface of vacuum vessel

required
cumulative_lower dict

cumulative vertical thicknesses of components below the midplane

required
lower dict

vertical thicknesses of components below the midplane

required

Returns:

Type Description
ArbitraryGeometry

dataclass returning radial and vertical coordinates

Source code in process/models/geometry/vacuum_vessel.py
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
def vacuum_vessel_geometry_single_null(
    cumulative_upper: dict,
    upper: dict,
    triang: float,
    radx_outer: float,
    rminx_outer: float,
    radx_inner: float,
    rminx_inner: float,
    cumulative_lower: dict,
    lower: dict,
) -> ArbitraryGeometry:
    """Calculates radial and vertical distances for the geometry of the vacuum vessel in a single null configuration

    Parameters
    ----------
    cumulative_upper:
        cumulative vertical thicknesses of components above the midplane
    upper:
        vertical thicknesses of components above the midplane
    triang:
        plasma triangularity
    radx_outer:
        outboard radius of outer surface of vacuum vessel
    rminx_outer:
        inboard radius of outer surface of vacuum vessel
    radx_inner:
        outboard radius of inner surface of vacuum vessel
    rminx_inner:
        inboard radius of inner surface of vacuum vessel
    cumulative_lower:
        cumulative vertical thicknesses of components below the midplane
    lower:
        vertical thicknesses of components below the midplane

    Returns
    -------
    ArbitraryGeometry
        dataclass returning radial and vertical coordinates
    """
    # Upper vacuum vessel
    kapx = cumulative_upper["dz_vv_upper"] / rminx_outer
    rs_upper_outboard, zs_upper_outboard = dh_vertices(
        radx_outer, rminx_outer, triang, kapx
    )

    kapx = (
        float(cumulative_upper["dz_vv_upper"]) - float(upper["dz_vv_upper"])
    ) / rminx_inner
    rs_upper_inboard, zs_upper_inboard = dh_vertices(
        radx_inner, rminx_inner, triang, kapx
    )

    # Lower vacuum vessel
    (
        rs_lower_outboard,
        zs_lower_outboard,
        rs_lower_inboard,
        zs_lower_inboard,
    ) = vacuum_vessel_geometry_lower(
        cumulative_lower=cumulative_lower,
        lower=lower,
        radx_inner=radx_inner,
        radx_outer=radx_outer,
        rminx_inner=rminx_inner,
        rminx_outer=rminx_outer,
        triang=triang,
    )

    rs = np.concatenate([
        rs_lower_inboard,
        rs_lower_outboard[::-1],
        rs_upper_outboard,
        rs_upper_inboard[::-1],
    ])
    zs = np.concatenate([
        zs_lower_inboard,
        zs_lower_outboard[::-1],
        zs_upper_outboard,
        zs_upper_inboard[::-1],
    ])
    return ArbitraryGeometry(
        rs=rs,
        zs=zs,
    )

vacuum_vessel_geometry_lower(cumulative_lower, lower, triang, radx_outer, rminx_outer, radx_inner, rminx_inner)

Calculates radial and vertical distances for the geometry of section of vacuum vessel below the midplane

Parameters:

Name Type Description Default
cumulative_lower dict

cumulative vertical thicknesses of components below the midplane

required
lower dict

vertical thicknesses of components below the midplane

required
triang float

plasma triangularity

required
radx_outer float

outboard radius of outer surface of vacuum vessel

required
rminx_outer float

inboard radius of outer surface of vacuum vessel

required
radx_inner float

outboard radius of inner surface of vacuum vessel

required
rminx_inner float

inboard radius of inner surface of vacuum vessel

required

Returns:

Type Description
tuple[ndarray, ndarray, ndarray, ndarray]

tuple containing the R coordinates for the outboard, Z coordinates for the outboard, R coordinates for the inboard, Z coordinates for the inboard of the vacuum vessel geometry below the midplane

Source code in process/models/geometry/vacuum_vessel.py
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
def vacuum_vessel_geometry_lower(
    cumulative_lower: dict,
    lower: dict,
    triang: float,
    radx_outer: float,
    rminx_outer: float,
    radx_inner: float,
    rminx_inner: float,
) -> tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]:
    """Calculates radial and vertical distances for the geometry of section of vacuum vessel below the midplane

    Parameters
    ----------
    cumulative_lower:
        cumulative vertical thicknesses of components below the midplane
    lower:
        vertical thicknesses of components below the midplane
    triang:
        plasma triangularity
    radx_outer:
        outboard radius of outer surface of vacuum vessel
    rminx_outer:
        inboard radius of outer surface of vacuum vessel
    radx_inner:
        outboard radius of inner surface of vacuum vessel
    rminx_inner:
        inboard radius of inner surface of vacuum vessel

    Returns
    -------
    :
        tuple containing the R coordinates for the outboard, Z coordinates for the outboard, R coordinates for the inboard, Z coordinates for the inboard of the vacuum vessel geometry below the midplane
    """
    kapx = cumulative_lower["dz_vv_lower"] / rminx_outer
    rs_lower_outboard, zs_lower_outboard = dh_vertices(
        radx_outer, rminx_outer, triang, kapx
    )

    kapx = (
        float(cumulative_lower["dz_vv_lower"]) + float(lower["dz_vv_lower"])
    ) / rminx_inner
    rs_lower_inboard, zs_lower_inboard = dh_vertices(
        radx_inner, rminx_inner, triang, kapx
    )

    return rs_lower_outboard, zs_lower_outboard, rs_lower_inboard, zs_lower_inboard

vacuum_vessel_geometry_double_null(cumulative_lower, lower, triang, radx_outer, rminx_outer, radx_inner, rminx_inner)

Calculates radial and vertical distances for the geometry of vacuum vessel in a double null configuration In a double null configuration, the geometry of the lower vacuum vessel is reflected across the midplane to create the section of vacuum vessel above the midplane

Parameters:

Name Type Description Default
cumulative_lower dict

cumulative vertical thicknesses of components below the midplane

required
lower dict

vertical thicknesses of components below the midplane

required
triang float

plasma triangularity

required
radx_outer float

outboard radius of outer surface of vacuum vessel

required
rminx_outer float

inboard radius of outer surface of vacuum vessel

required
radx_inner float

outboard radius of inner surface of vacuum vessel

required
rminx_inner float

inboard radius of inner surface of vacuum vessel

required

Returns:

Type Description
ArbitraryGeometry

dataclass returning radial and vertical coordinates

Source code in process/models/geometry/vacuum_vessel.py
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
def vacuum_vessel_geometry_double_null(
    cumulative_lower: dict,
    lower: dict,
    triang: float,
    radx_outer: float,
    rminx_outer: float,
    radx_inner: float,
    rminx_inner: float,
) -> ArbitraryGeometry:
    """Calculates radial and vertical distances for the geometry of vacuum vessel in a double null configuration
    In a double null configuration, the geometry of the lower vacuum vessel is reflected across the midplane to create the section of vacuum vessel above the midplane

    Parameters
    ----------
    cumulative_lower:
        cumulative vertical thicknesses of components below the midplane
    lower:
        vertical thicknesses of components below the midplane
    triang:
        plasma triangularity
    radx_outer:
        outboard radius of outer surface of vacuum vessel
    rminx_outer:
        inboard radius of outer surface of vacuum vessel
    radx_inner:
        outboard radius of inner surface of vacuum vessel
    rminx_inner:
        inboard radius of inner surface of vacuum vessel

    Returns
    -------
    ArbitraryGeometry
        dataclass returning radial and vertical coordinates
    """
    # Lower vacuum vessel
    (
        rs_lower_outboard,
        zs_lower_outboard,
        rs_lower_inboard,
        zs_lower_inboard,
    ) = vacuum_vessel_geometry_lower(
        cumulative_lower=cumulative_lower,
        lower=lower,
        radx_inner=radx_inner,
        radx_outer=radx_outer,
        rminx_inner=rminx_inner,
        rminx_outer=rminx_outer,
        triang=triang,
    )
    rs_lower = np.concatenate([rs_lower_outboard, rs_lower_inboard[::-1]])
    zs_lower = np.concatenate([zs_lower_outboard, zs_lower_inboard[::-1]])

    # Upper vacuum vessel
    rs_upper = rs_lower
    zs_upper = -1 * zs_lower

    rs = np.concatenate([rs_lower[::-1], rs_upper])
    zs = np.concatenate([zs_lower[::-1], zs_upper])

    return ArbitraryGeometry(rs=rs, zs=zs)