py-pluto 1.1.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. pyPLUTO/__init__.py +22 -0
  2. pyPLUTO/amr.py +745 -0
  3. pyPLUTO/baseloadmixin.py +258 -0
  4. pyPLUTO/baseloadstate.py +45 -0
  5. pyPLUTO/codes/echo_load.py +161 -0
  6. pyPLUTO/configure.py +261 -0
  7. pyPLUTO/gui/config.py +174 -0
  8. pyPLUTO/gui/custom_var.py +435 -0
  9. pyPLUTO/gui/globals.py +108 -0
  10. pyPLUTO/gui/main.py +17 -0
  11. pyPLUTO/gui/main_window.py +177 -0
  12. pyPLUTO/gui/panels.py +66 -0
  13. pyPLUTO/gui/utils.py +273 -0
  14. pyPLUTO/h_pypluto.py +84 -0
  15. pyPLUTO/image.py +302 -0
  16. pyPLUTO/imagefuncs/colorbar.py +240 -0
  17. pyPLUTO/imagefuncs/contour.py +254 -0
  18. pyPLUTO/imagefuncs/create_axes.py +464 -0
  19. pyPLUTO/imagefuncs/display.py +306 -0
  20. pyPLUTO/imagefuncs/figure.py +395 -0
  21. pyPLUTO/imagefuncs/imagetools.py +487 -0
  22. pyPLUTO/imagefuncs/interactive.py +403 -0
  23. pyPLUTO/imagefuncs/legend.py +250 -0
  24. pyPLUTO/imagefuncs/plot.py +311 -0
  25. pyPLUTO/imagefuncs/range.py +242 -0
  26. pyPLUTO/imagefuncs/scatter.py +270 -0
  27. pyPLUTO/imagefuncs/set_axis.py +497 -0
  28. pyPLUTO/imagefuncs/streamplot.py +297 -0
  29. pyPLUTO/imagefuncs/zoom.py +428 -0
  30. pyPLUTO/imagemixin.py +259 -0
  31. pyPLUTO/imagestate.py +45 -0
  32. pyPLUTO/load.py +447 -0
  33. pyPLUTO/loadfuncs/baseloadtools.py +71 -0
  34. pyPLUTO/loadfuncs/codeselection.py +48 -0
  35. pyPLUTO/loadfuncs/defpluto.py +123 -0
  36. pyPLUTO/loadfuncs/descriptor.py +102 -0
  37. pyPLUTO/loadfuncs/findfiles.py +182 -0
  38. pyPLUTO/loadfuncs/findformat.py +245 -0
  39. pyPLUTO/loadfuncs/initload.py +203 -0
  40. pyPLUTO/loadfuncs/loadvars.py +227 -0
  41. pyPLUTO/loadfuncs/offsetdata.py +87 -0
  42. pyPLUTO/loadfuncs/offsetfluid.py +408 -0
  43. pyPLUTO/loadfuncs/read_files.py +213 -0
  44. pyPLUTO/loadfuncs/readdata.py +619 -0
  45. pyPLUTO/loadfuncs/readdata_old.py +567 -0
  46. pyPLUTO/loadfuncs/readdefplini.py +101 -0
  47. pyPLUTO/loadfuncs/readfluid.py +479 -0
  48. pyPLUTO/loadfuncs/readformat.py +277 -0
  49. pyPLUTO/loadfuncs/readgridalone.py +224 -0
  50. pyPLUTO/loadfuncs/readgridfile.py +255 -0
  51. pyPLUTO/loadfuncs/readgridout.py +451 -0
  52. pyPLUTO/loadfuncs/readpart.py +419 -0
  53. pyPLUTO/loadfuncs/readtab.py +105 -0
  54. pyPLUTO/loadfuncs/write_files.py +283 -0
  55. pyPLUTO/loadmixin.py +419 -0
  56. pyPLUTO/loadpart.py +233 -0
  57. pyPLUTO/loadstate.py +68 -0
  58. pyPLUTO/newload.py +81 -0
  59. pyPLUTO/pytools.py +145 -0
  60. pyPLUTO/toolfuncs/findlines.py +551 -0
  61. pyPLUTO/toolfuncs/fourier.py +149 -0
  62. pyPLUTO/toolfuncs/nabla.py +676 -0
  63. pyPLUTO/toolfuncs/parttools.py +152 -0
  64. pyPLUTO/toolfuncs/transform.py +638 -0
  65. pyPLUTO/utils/annotator.py +27 -0
  66. pyPLUTO/utils/inspector.py +145 -0
  67. pyPLUTO/utils/make_docstrings.py +3 -0
  68. py_pluto-1.1.4.dist-info/METADATA +218 -0
  69. py_pluto-1.1.4.dist-info/RECORD +73 -0
  70. py_pluto-1.1.4.dist-info/WHEEL +5 -0
  71. py_pluto-1.1.4.dist-info/entry_points.txt +2 -0
  72. py_pluto-1.1.4.dist-info/licenses/LICENSE +27 -0
  73. py_pluto-1.1.4.dist-info/top_level.txt +1 -0
@@ -0,0 +1,283 @@
1
+ import warnings
2
+ from typing import Any
3
+
4
+ import h5py
5
+ from numpy.typing import NDArray
6
+
7
+
8
+ def _write_h5(
9
+ self,
10
+ data: NDArray | dict,
11
+ filename: str,
12
+ dataname: str | None = None,
13
+ grid: bool = False,
14
+ **kwargs: Any,
15
+ ) -> None:
16
+ """Write the data to a HDF5 file.
17
+
18
+ Returns
19
+ -------
20
+ - None
21
+
22
+ Parameters
23
+ ----------
24
+ - data (not optional): NDArray | dict
25
+ the data to write to the HDF5 file
26
+ - dataname: str
27
+ the name of the data to write to the HDF5 file
28
+ - filename (not optional): str
29
+ the name of the HDF5 file
30
+ - grid: bool
31
+ if True, write the grid to the HDF5 file
32
+
33
+ ----
34
+
35
+ Examples
36
+ --------
37
+ - Example #1: Write the data to a HDF5 file
38
+
39
+ >>> write_h5("data.h5")
40
+
41
+ """
42
+ # Create the path to the HDF5 file
43
+ path_h5 = self.pathdir / filename
44
+ if not filename.endswith(".h5"):
45
+ path_h5 += ".h5"
46
+
47
+ # Open the HDF5 file
48
+ with h5py.File(path_h5, "w") as f:
49
+ # Write the data to the HDF5 file
50
+ if isinstance(data, dict):
51
+ for key in data.keys():
52
+ f.create_dataset(key, data=data[key])
53
+ else:
54
+ dataname = "data" if dataname is None else dataname
55
+ f.create_dataset(dataname, data=data)
56
+
57
+ # Write the grid to the HDF5 file
58
+ if grid is True:
59
+ f.create_dataset("nx1", data=kwargs.get("nx1", self.nx1))
60
+ f.create_dataset("nx2", data=kwargs.get("nx2", self.nx2))
61
+ f.create_dataset("nx3", data=kwargs.get("nx3", self.nx3))
62
+ f.create_dataset("x1", data=kwargs.get("x1", self.x1))
63
+ f.create_dataset("x2", data=kwargs.get("x2", self.x2))
64
+ f.create_dataset("x3", data=kwargs.get("x3", self.x3))
65
+ f.create_dataset("dx1", data=kwargs.get("dx1", self.dx1))
66
+ f.create_dataset("dx2", data=kwargs.get("dx2", self.dx2))
67
+ f.create_dataset("dx3", data=kwargs.get("dx3", self.dx3))
68
+
69
+ # End of the function
70
+
71
+
72
+ def write_vtk(self):
73
+ """Write the data to a VTK file.
74
+
75
+ Returns
76
+ -------
77
+ - None
78
+
79
+ Parameters
80
+ ----------
81
+ - None
82
+
83
+ ----
84
+
85
+ Examples
86
+ --------
87
+ - Example #1: Write the data to a VTK file
88
+
89
+ >>> write_vtk()
90
+
91
+ """
92
+ raise NotImplementedError("write_vtk() is not yet implemented.")
93
+ # Create the path to the VTK file
94
+ self._pathvtk = self.pathdir / (self.format + ".vtk")
95
+
96
+ # Open the VTK file
97
+ with open(self._pathvtk, "w") as f:
98
+ # Write the header to the VTK file
99
+ f.write("# vtk DataFile Version 3.0\n")
100
+ f.write("VTK file for " + self.format + "\n")
101
+ f.write("ASCII\n")
102
+ f.write("DATASET STRUCTURED_POINTS\n")
103
+ f.write(
104
+ "DIMENSIONS "
105
+ + str(self.grid["nx1"])
106
+ + " "
107
+ + str(self.grid["nx2"])
108
+ + " "
109
+ + str(self.grid["nx3"])
110
+ + "\n"
111
+ )
112
+ f.write(
113
+ "ORIGIN "
114
+ + str(self.grid["x1"][0])
115
+ + " "
116
+ + str(self.grid["x2"][0])
117
+ + " "
118
+ + str(self.grid["x3"][0])
119
+ + "\n"
120
+ )
121
+ f.write(
122
+ "SPACING "
123
+ + str(self.grid["dx1"])
124
+ + " "
125
+ + str(self.grid["dx2"])
126
+ + " "
127
+ + str(self.grid["dx3"])
128
+ + "\n"
129
+ )
130
+ f.write(
131
+ "POINT_DATA "
132
+ + str(self.grid["nx1"] * self.grid["nx2"] * self.grid["nx3"])
133
+ + "\n"
134
+ )
135
+
136
+ # Write the data to the VTK file
137
+ for key in self.data.keys():
138
+ f.write("SCALARS " + key + " float\n")
139
+ f.write("LOOKUP_TABLE default\n")
140
+ for i in range(self.grid["nx1"]):
141
+ for j in range(self.grid["nx2"]):
142
+ for k in range(self.grid["nx3"]):
143
+ f.write(str(self.data[key][i, j, k]) + "\n")
144
+
145
+ # End of the function
146
+
147
+
148
+ def write_tab(self):
149
+ """Write the data to a tab-separated file.
150
+
151
+ Returns
152
+ -------
153
+ - None
154
+
155
+ Parameters
156
+ ----------
157
+ - None
158
+
159
+ ----
160
+
161
+ Examples
162
+ --------
163
+ - Example #1: Write the data to a tab-separated file
164
+
165
+ >>> write_tab()
166
+
167
+ """
168
+ raise NotImplementedError("write_tab() is not yet implemented.")
169
+
170
+ # Create the path to the tab-separated file
171
+ self._pathtab = self.pathdir / (self.format + ".tab")
172
+
173
+ # Open the tab-separated file
174
+ with open(self._pathtab, "w") as f:
175
+ # Write the header to the tab-separated file
176
+ f.write("# " + self.format + "\n")
177
+
178
+ # Write the data to the tab-separated file
179
+ for key in self.data.keys():
180
+ f.write("# " + key + "\n")
181
+ for i in range(self.grid["nx1"]):
182
+ for j in range(self.grid["nx2"]):
183
+ for k in range(self.grid["nx3"]):
184
+ f.write(str(self.data[key][i, j, k]) + "\t")
185
+ f.write("\n")
186
+
187
+ # End of the function
188
+
189
+
190
+ def write_bin(self):
191
+ """Write the data to a binary file.
192
+
193
+ Returns
194
+ -------
195
+ - None
196
+
197
+ Parameters
198
+ ----------
199
+ - None
200
+
201
+ ----
202
+
203
+ Examples
204
+ --------
205
+ - Example #1: Write the data to a binary file
206
+
207
+ >>> write_bin()
208
+
209
+ """
210
+ raise NotImplementedError("write_bin() is not yet implemented.")
211
+
212
+ # Create the path to the binary file
213
+ self._pathbin = self.pathdir / (self.format + ".bin")
214
+
215
+ # Open the binary file
216
+ with open(self._pathbin, "wb") as f:
217
+ # Write the data to the binary file
218
+ for key in self.data.keys():
219
+ f.write(self.data[key].tobytes())
220
+
221
+ # End of the function
222
+
223
+
224
+ def write_file(
225
+ self,
226
+ data: NDArray | dict,
227
+ filename: str,
228
+ datatype: str | None = None,
229
+ dataname: str | None = None,
230
+ grid: bool = False,
231
+ **kwargs: Any,
232
+ ) -> None:
233
+ """Write the data to a file.
234
+
235
+ Returns
236
+ -------
237
+ - None
238
+
239
+ Parameters
240
+ ----------
241
+ - data (not optional): NDArray | dict
242
+ the data to write to the file
243
+ - datatype: str
244
+ the type of the file
245
+ - dataname: str
246
+ the name of the data to write to the file
247
+ - filename (not optional): str
248
+ the name of the file
249
+ - grid: bool
250
+ if True, write the grid to the file
251
+ - **kwargs: Any
252
+ additional keyword arguments
253
+
254
+ ----
255
+
256
+ Examples
257
+ --------
258
+ - Example #1: Write the data to a file
259
+
260
+ >>> write_file("data.h5")
261
+
262
+ """
263
+ # Check the datatype of the input data
264
+ if datatype is None:
265
+ datatype = filename.rsplit(".", maxsplit=1)[-1]
266
+ poss_types = {"dbl", "flt", "vtk", "h5", "tab"}
267
+ if datatype not in poss_types:
268
+ warn = f"Invalid datatype: {datatype}. Resetting to 'h5'"
269
+ warnings.warn(warn)
270
+ datatype = "h5"
271
+
272
+ # Check the format of the output files
273
+ if datatype == "h5":
274
+ _write_h5(self, data, filename, dataname, grid, **kwargs)
275
+ else:
276
+ warn = (
277
+ f"Invalid datatype: {datatype}, not implemented yet! "
278
+ "Resetting to 'h5'"
279
+ )
280
+ warnings.warn(warn)
281
+ pass
282
+
283
+ # End of the function
pyPLUTO/loadmixin.py ADDED
@@ -0,0 +1,419 @@
1
+ """Mixin class for load fluid handling."""
2
+
3
+ from typing import Any
4
+
5
+ from numpy.typing import NDArray
6
+
7
+ from pyPLUTO.baseloadmixin import BaseLoadMixin
8
+ from pyPLUTO.loadstate import LoadState
9
+
10
+
11
+ class LoadMixin(BaseLoadMixin[LoadState]):
12
+ """Mixin class for load fluid handling.
13
+
14
+ It provides properties and methods related to loading fluid data.
15
+ """
16
+
17
+ state: LoadState
18
+
19
+ # pylint: disable=too-many-public-methods
20
+
21
+ @property
22
+ def defh(self) -> dict:
23
+ """Get the defh attribute of the load state."""
24
+ return self.state.defh
25
+
26
+ @defh.setter
27
+ def defh(self, value: dict) -> None:
28
+ """Set the defh attribute of the load state."""
29
+ self.state.defh = value
30
+
31
+ @property
32
+ def level(self) -> int:
33
+ """Get the AMR refinement level."""
34
+ return self.state.level
35
+
36
+ @level.setter
37
+ def level(self, value: int) -> None:
38
+ """Set the AMR refinement level."""
39
+ self.state.level = value
40
+
41
+ @property
42
+ def dim(self) -> int:
43
+ """Get the dim attribute of the load state."""
44
+ return self.state.dim
45
+
46
+ @dim.setter
47
+ def dim(self, value: int) -> None:
48
+ """Set the dim attribute of the load state."""
49
+ self.state.dim = value
50
+
51
+ @property
52
+ def dx1(self) -> NDArray[Any]:
53
+ """Get the dx1 attribute of the load state."""
54
+ return self.state.dx1
55
+
56
+ @dx1.setter
57
+ def dx1(self, value: NDArray[Any]) -> None:
58
+ """Set the dx1 attribute of the load state."""
59
+ self.state.dx1 = value
60
+
61
+ @property
62
+ def dx2(self) -> NDArray[Any]:
63
+ """Get the dx2 attribute of the load state."""
64
+ return self.state.dx2
65
+
66
+ @dx2.setter
67
+ def dx2(self, value: NDArray[Any]) -> None:
68
+ """Set the dx2 attribute of the load state."""
69
+ self.state.dx2 = value
70
+
71
+ @property
72
+ def dx3(self) -> NDArray[Any]:
73
+ """Get the dx3 attribute of the load state."""
74
+ return self.state.dx3
75
+
76
+ @dx3.setter
77
+ def dx3(self, value: NDArray[Any]) -> None:
78
+ """Set the dx3 attribute of the load state."""
79
+ self.state.dx3 = value
80
+
81
+ @property
82
+ def full3D(self) -> bool:
83
+ """Get the full3D attribute of the load state."""
84
+ return self.state.full3D
85
+
86
+ @full3D.setter
87
+ def full3D(self, value: bool) -> None:
88
+ """Set the full3D attribute of the load state."""
89
+ self.state.full3D = value
90
+
91
+ @property
92
+ def geom(self) -> str:
93
+ """Get the geom attribute of the load state."""
94
+ return self.state.geom
95
+
96
+ @geom.setter
97
+ def geom(self, value: str) -> None:
98
+ """Set the geom attribute of the load state."""
99
+ self.state.geom = value
100
+
101
+ @property
102
+ def gridsize(self) -> int:
103
+ """Get the gridsize attribute of the load state."""
104
+ return self.state.gridsize
105
+
106
+ @gridsize.setter
107
+ def gridsize(self, value: int) -> None:
108
+ """Set the gridsize attribute of the load state."""
109
+ self.state.gridsize = value
110
+
111
+ @property
112
+ def gridsize_st1(self) -> int:
113
+ """Get the gridsize_st1 attribute of the load state."""
114
+ return self.state.gridsize_st1
115
+
116
+ @gridsize_st1.setter
117
+ def gridsize_st1(self, value: int) -> None:
118
+ """Set the gridsize_st1 attribute of the load state."""
119
+ self.state.gridsize_st1 = value
120
+
121
+ @property
122
+ def gridsize_st2(self) -> int:
123
+ """Get the gridsize_st2 attribute of the load state."""
124
+ return self.state.gridsize_st2
125
+
126
+ @gridsize_st2.setter
127
+ def gridsize_st2(self, value: int) -> None:
128
+ """Set the gridsize_st2 attribute of the load state."""
129
+ self.state.gridsize_st2 = value
130
+
131
+ @property
132
+ def gridsize_st3(self) -> int:
133
+ """Get the gridsize_st3 attribute of the load state."""
134
+ return self.state.gridsize_st3
135
+
136
+ @gridsize_st3.setter
137
+ def gridsize_st3(self, value: int) -> None:
138
+ """Set the gridsize_st3 attribute of the load state."""
139
+ self.state.gridsize_st3 = value
140
+
141
+ @property
142
+ def nshp(self) -> int | tuple[int, ...]:
143
+ """Get the nshp attribute of the load state."""
144
+ return self.state.nshp
145
+
146
+ @nshp.setter
147
+ def nshp(self, value: int | tuple[int, ...]) -> None:
148
+ """Set the nshp attribute of the load state."""
149
+ self.state.nshp = value
150
+
151
+ @property
152
+ def nshp_st1(self) -> int | tuple[int, ...] | None:
153
+ """Get the nshp_st1 attribute of the load state."""
154
+ return self.state.nshp_st1
155
+
156
+ @nshp_st1.setter
157
+ def nshp_st1(self, value: int | tuple[int, ...] | None) -> None:
158
+ """Set the nshp_st1 attribute of the load state."""
159
+ self.state.nshp_st1 = value
160
+
161
+ @property
162
+ def nshp_st2(self) -> tuple[int, ...] | None:
163
+ """Get the nshp_st2 attribute of the load state."""
164
+ return self.state.nshp_st2
165
+
166
+ @nshp_st2.setter
167
+ def nshp_st2(self, value: tuple[int, ...] | None) -> None:
168
+ """Set the nshp_st2 attribute of the load state."""
169
+ self.state.nshp_st2 = value
170
+
171
+ @property
172
+ def nshp_st3(self) -> tuple[int, ...] | None:
173
+ """Get the nshp_st3 attribute of the load state."""
174
+ return self.state.nshp_st3
175
+
176
+ @nshp_st3.setter
177
+ def nshp_st3(self, value: tuple[int, ...] | None) -> None:
178
+ """Set the nshp_st3 attribute of the load state."""
179
+ self.state.nshp_st3 = value
180
+
181
+ @property
182
+ def nx1(self) -> int:
183
+ """Get the nx1 attribute of the load state."""
184
+ return self.state.nx1
185
+
186
+ @nx1.setter
187
+ def nx1(self, value: int) -> None:
188
+ """Set the nx1 attribute of the load state."""
189
+ self.state.nx1 = value
190
+
191
+ @property
192
+ def nx2(self) -> int:
193
+ """Get the nx2 attribute of the load state."""
194
+ return self.state.nx2
195
+
196
+ @nx2.setter
197
+ def nx2(self, value: int) -> None:
198
+ """Set the nx2 attribute of the load state."""
199
+ self.state.nx2 = value
200
+
201
+ @property
202
+ def nx3(self) -> int:
203
+ """Get the nx3 attribute of the load state."""
204
+ return self.state.nx3
205
+
206
+ @nx3.setter
207
+ def nx3(self, value: int) -> None:
208
+ """Set the nx3 attribute of the load state."""
209
+ self.state.nx3 = value
210
+
211
+ @property
212
+ def plini(self) -> dict:
213
+ """Get the plini attribute of the load state."""
214
+ return self.state.plini
215
+
216
+ @plini.setter
217
+ def plini(self, value: dict) -> None:
218
+ """Set the plini attribute of the load state."""
219
+ self.state.plini = value
220
+
221
+ @property
222
+ def x1(self) -> NDArray[Any]:
223
+ """Get the x1 attribute of the load state."""
224
+ return self.state.x1
225
+
226
+ @x1.setter
227
+ def x1(self, value: NDArray[Any]) -> None:
228
+ """Set the x1 attribute of the load state."""
229
+ self.state.x1 = value
230
+
231
+ @property
232
+ def x1c(self) -> NDArray[Any]:
233
+ """Get the x1c attribute of the load state."""
234
+ return self.state.x1c
235
+
236
+ @x1c.setter
237
+ def x1c(self, value: NDArray[Any]) -> None:
238
+ """Set the x1c attribute of the load state."""
239
+ self.state.x1c = value
240
+
241
+ @property
242
+ def x1p(self) -> NDArray[Any]:
243
+ """Get the x1p attribute of the load state."""
244
+ return self.state.x1p
245
+
246
+ @x1p.setter
247
+ def x1p(self, value: NDArray[Any]) -> None:
248
+ """Set the x1p attribute of the load state."""
249
+ self.state.x1p = value
250
+
251
+ @property
252
+ def x1r(self) -> NDArray[Any]:
253
+ """Get the x1r attribute of the load state."""
254
+ return self.state.x1r
255
+
256
+ @x1r.setter
257
+ def x1r(self, value: NDArray[Any]) -> None:
258
+ """Set the x1r attribute of the load state."""
259
+ self.state.x1r = value
260
+
261
+ @property
262
+ def x1rc(self) -> NDArray[Any]:
263
+ """Get the x1rc attribute of the load state."""
264
+ return self.state.x1rc
265
+
266
+ @x1rc.setter
267
+ def x1rc(self, value: NDArray[Any]) -> None:
268
+ """Set the x1rc cattribute of the load state."""
269
+ self.state.x1rc = value
270
+
271
+ @property
272
+ def x1rp(self) -> NDArray[Any]:
273
+ """Get the x1rp attribute of the load state."""
274
+ return self.state.x1rp
275
+
276
+ @x1rp.setter
277
+ def x1rp(self, value: NDArray[Any]) -> None:
278
+ """Set the x1rp attribute of the load state."""
279
+ self.state.x1rp = value
280
+
281
+ @property
282
+ def x1rt(self) -> NDArray[Any]:
283
+ """Get the x1rt attribute of the load state."""
284
+ return self.state.x1rt
285
+
286
+ @x1rt.setter
287
+ def x1rt(self, value: NDArray[Any]) -> None:
288
+ """Set the x1rt attribute of the load state."""
289
+ self.state.x1rt = value
290
+
291
+ @property
292
+ def x1t(self) -> NDArray[Any]:
293
+ """Get the x1t attribute of the load state."""
294
+ return self.state.x1t
295
+
296
+ @x1t.setter
297
+ def x1t(self, value: NDArray[Any]) -> None:
298
+ """Set the x1t attribute of the load state."""
299
+ self.state.x1t = value
300
+
301
+ @property
302
+ def x2(self) -> NDArray[Any]:
303
+ """Get the x2 attribute of the load state."""
304
+ return self.state.x2
305
+
306
+ @x2.setter
307
+ def x2(self, value: NDArray[Any]) -> None:
308
+ """Set the x2 attribute of the load state."""
309
+ self.state.x2 = value
310
+
311
+ @property
312
+ def x2c(self) -> NDArray[Any]:
313
+ """Get the x2c attribute of the load state."""
314
+ return self.state.x2c
315
+
316
+ @x2c.setter
317
+ def x2c(self, value: NDArray[Any]) -> None:
318
+ """Set the x2c attribute of the load state."""
319
+ self.state.x2c = value
320
+
321
+ @property
322
+ def x2p(self) -> NDArray[Any]:
323
+ """Get the x2p attribute of the load state."""
324
+ return self.state.x2p
325
+
326
+ @x2p.setter
327
+ def x2p(self, value: NDArray[Any]) -> None:
328
+ """Set the x2p attribute of the load state."""
329
+ self.state.x2p = value
330
+
331
+ @property
332
+ def x2r(self) -> NDArray[Any]:
333
+ """Get the x2r attribute of the load state."""
334
+ return self.state.x2r
335
+
336
+ @x2r.setter
337
+ def x2r(self, value: NDArray[Any]) -> None:
338
+ """Set the x2r attribute of the load state."""
339
+ self.state.x2r = value
340
+
341
+ @property
342
+ def x2rc(self) -> NDArray[Any]:
343
+ """Get the x2rc attribute of the load state."""
344
+ return self.state.x2rc
345
+
346
+ @x2rc.setter
347
+ def x2rc(self, value: NDArray[Any]) -> None:
348
+ """Set the x2rc attribute of the load state."""
349
+ self.state.x2rc = value
350
+
351
+ @property
352
+ def x2rp(self) -> NDArray[Any]:
353
+ """Get the x2rp attribute of the load state."""
354
+ return self.state.x2rp
355
+
356
+ @x2rp.setter
357
+ def x2rp(self, value: NDArray[Any]) -> None:
358
+ """Set the x2rp attribute of the load state."""
359
+ self.state.x2rp = value
360
+
361
+ @property
362
+ def x3(self) -> NDArray[Any]:
363
+ """Get the x3 attribute of the load state."""
364
+ return self.state.x3
365
+
366
+ @x3.setter
367
+ def x3(self, value: NDArray[Any]) -> None:
368
+ """Set the x3 attribute of the load state."""
369
+ self.state.x3 = value
370
+
371
+ @property
372
+ def x3c(self) -> NDArray[Any]:
373
+ """Get the x3c attribute of the load state."""
374
+ return self.state.x3c
375
+
376
+ @x3c.setter
377
+ def x3c(self, value: NDArray[Any]) -> None:
378
+ """Set the x3c attribute of the load state."""
379
+ self.state.x3c = value
380
+
381
+ @property
382
+ def x3r(self) -> NDArray[Any]:
383
+ """Get the x3r attribute of the load state."""
384
+ return self.state.x3r
385
+
386
+ @x3r.setter
387
+ def x3r(self, value: NDArray[Any]) -> None:
388
+ """Set the x3r attribute of the load state."""
389
+ self.state.x3r = value
390
+
391
+ @property
392
+ def x3rc(self) -> NDArray[Any]:
393
+ """Get the x3rc attribute of the load state."""
394
+ return self.state.x3rc
395
+
396
+ @x3rc.setter
397
+ def x3rc(self, value: NDArray[Any]) -> None:
398
+ """Set the x3rc attribute of the load state."""
399
+ self.state.x3rc = value
400
+
401
+ @property
402
+ def x3rt(self) -> NDArray[Any]:
403
+ """Get the x3rt attribute of the load state."""
404
+ return self.state.x3rt
405
+
406
+ @x3rt.setter
407
+ def x3rt(self, value: NDArray[Any]) -> None:
408
+ """Set the x3rt attribute of the load state."""
409
+ self.state.x3rt = value
410
+
411
+ @property
412
+ def x3t(self) -> NDArray[Any]:
413
+ """Get the x3t attribute of the load state."""
414
+ return self.state.x3t
415
+
416
+ @x3t.setter
417
+ def x3t(self, value: NDArray[Any]) -> None:
418
+ """Set the x3t attribute of the load state."""
419
+ self.state.x3t = value