uedgetools 1.3.2__tar.gz → 1.3.3__tar.gz
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.
- {uedgetools-1.3.2/src/uedgetools.egg-info → uedgetools-1.3.3}/PKG-INFO +3 -2
- {uedgetools-1.3.2 → uedgetools-1.3.3}/pyproject.toml +2 -1
- {uedgetools-1.3.2 → uedgetools-1.3.3/src/uedgetools.egg-info}/PKG-INFO +3 -2
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uedgetools.egg-info/requires.txt +2 -1
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCase/Input.py +38 -32
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDashboard/Dashboard.py +78 -24
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDiagnostics/Diagnostics.py +14 -4
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UePlot/CasePlot.py +6 -4
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeUtils/AboutSetup.py +1 -1
- uedgetools-1.3.3/src/uetools/VERSION +1 -0
- uedgetools-1.3.2/src/uetools/VERSION +0 -1
- {uedgetools-1.3.2 → uedgetools-1.3.3}/LICENSE +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/NOTICE.md +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/README.md +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/setup.cfg +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uedgetools.egg-info/SOURCES.txt +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uedgetools.egg-info/dependency_links.txt +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uedgetools.egg-info/entry_points.txt +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uedgetools.egg-info/top_level.txt +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeBayesian/BayesDemo.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeBayesian/BayesUtility.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeBayesian/Bayesian.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeBayesian/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCampaign/Campaign.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCampaign/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCase/Case.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCase/Config.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCase/Parallel.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCase/Save.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCase/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCherab/Cherab.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCherab/README.md +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCherab/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCherab/bolometer_sensitivity.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCherab/d3d/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCherab/d3d/bolometer.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCherab/d3d/wall.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeCherab/triangulate.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDEGAS/Coupling.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDEGAS/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDashboard/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDashboard/range_slider.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDatabase/DB_1Dplots.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDatabase/DB_2Dplots.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDatabase/Database.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDatabase/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDiagnostics/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDiagnostics/d3d_bolometer_projection.hdf5 +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeGrid/Grid.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeGrid/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UePlot/Plot.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UePlot/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UePostproc/Postproc.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeSolver/Solver.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeSolver/SolverStrategy.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeSolver/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeUtils/ADASclass.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeUtils/Convert.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeUtils/Interpolate.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeUtils/Lookup.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeUtils/RadTransp.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeUtils/Tools.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeUtils/Tracker.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeUtils/Utilities.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeUtils/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/geometryTest.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/ignore/Track.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/ignore/UeGui/Commands.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/ignore/UeGui/ScrollableNotebook.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/ignore/UeGui/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/ignore/UeGui/example/README.md +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/ignore/UeGui/example/d3dHsm.h5 +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/ignore/UeGui/example/ehr2.dat +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/ignore/UeGui/example/rd_d3dHsm_in.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/ignore/UeGui/example/run.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/ignore/watch.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/yamls/__init__.py +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/yamls/plots.yaml +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/yamls/requiredvariables.yaml +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/yamls/setup_example.yaml +0 -0
- {uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/yamls/standardvariables.yaml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uedgetools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.3
|
|
4
4
|
Summary: A utility tool for the UEDGE multi-fluid plasma-edge code
|
|
5
5
|
Author-email: Andreas Holm <holm10@llnl.gov>
|
|
6
6
|
License: GNU LESSER GENERAL PUBLIC LICENSE
|
|
@@ -524,9 +524,10 @@ Requires-Dist: h5py
|
|
|
524
524
|
Requires-Dist: pyaml
|
|
525
525
|
Requires-Dist: Forthon
|
|
526
526
|
Requires-Dist: matplotlib
|
|
527
|
+
Requires-Dist: shapely
|
|
527
528
|
Requires-Dist: h5pickle
|
|
528
529
|
Requires-Dist: PyQt5
|
|
529
|
-
Requires-Dist: bayesian-optimization
|
|
530
|
+
Requires-Dist: bayesian-optimization>=3
|
|
530
531
|
Provides-Extra: parallel
|
|
531
532
|
Requires-Dist: inspect; extra == "parallel"
|
|
532
533
|
Requires-Dist: uuid; extra == "parallel"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uedgetools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.3
|
|
4
4
|
Summary: A utility tool for the UEDGE multi-fluid plasma-edge code
|
|
5
5
|
Author-email: Andreas Holm <holm10@llnl.gov>
|
|
6
6
|
License: GNU LESSER GENERAL PUBLIC LICENSE
|
|
@@ -524,9 +524,10 @@ Requires-Dist: h5py
|
|
|
524
524
|
Requires-Dist: pyaml
|
|
525
525
|
Requires-Dist: Forthon
|
|
526
526
|
Requires-Dist: matplotlib
|
|
527
|
+
Requires-Dist: shapely
|
|
527
528
|
Requires-Dist: h5pickle
|
|
528
529
|
Requires-Dist: PyQt5
|
|
529
|
-
Requires-Dist: bayesian-optimization
|
|
530
|
+
Requires-Dist: bayesian-optimization>=3
|
|
530
531
|
Provides-Extra: parallel
|
|
531
532
|
Requires-Dist: inspect; extra == "parallel"
|
|
532
533
|
Requires-Dist: uuid; extra == "parallel"
|
|
@@ -60,11 +60,9 @@ class Input:
|
|
|
60
60
|
|
|
61
61
|
def recursive_readhdf5(ret, setup, group=[], root=None):
|
|
62
62
|
if len(group) > 0:
|
|
63
|
-
lastgroup=group[0]
|
|
63
|
+
lastgroup = group[0]
|
|
64
64
|
# Conditional to avoid unnecessary nesting
|
|
65
|
-
if (
|
|
66
|
-
(group[-1] == group[-2]) \
|
|
67
|
-
):
|
|
65
|
+
if (len(group) > 1) and (group[-1] == group[-2]):
|
|
68
66
|
group.pop(-1)
|
|
69
67
|
else:
|
|
70
68
|
for subgroup in group:
|
|
@@ -256,7 +254,9 @@ class Input:
|
|
|
256
254
|
try:
|
|
257
255
|
self.setue(group[-1], dictobj)
|
|
258
256
|
except KeyError as e:
|
|
259
|
-
print(
|
|
257
|
+
print(
|
|
258
|
+
f"WARNING Could not set '{group[-1]}' to '{dictobj}'. Reason: {e}"
|
|
259
|
+
)
|
|
260
260
|
|
|
261
261
|
else: # Set calls to restore diffusivities
|
|
262
262
|
if (group[-1] == "savefile") and (
|
|
@@ -264,28 +264,32 @@ class Input:
|
|
|
264
264
|
):
|
|
265
265
|
pass
|
|
266
266
|
elif group[-1] in ["casename", "commands", "chgstate_format"]:
|
|
267
|
-
if group[-1]=="casename":
|
|
267
|
+
if group[-1] == "casename":
|
|
268
268
|
self.casename_set = True
|
|
269
269
|
self.info[group[-1]] = dictobj
|
|
270
270
|
elif group[-1] in [
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
271
|
+
"userdifffname",
|
|
272
|
+
"radialdifffname",
|
|
273
|
+
"diff_file",
|
|
274
|
+
"savefile",
|
|
275
275
|
]:
|
|
276
276
|
if isinstance(dictobj, (bytes, bytearray)):
|
|
277
277
|
dictobj = dictobj.decode("UTF-8")
|
|
278
|
-
if dictobj
|
|
279
|
-
self.info[group[-1]] =
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
elif
|
|
278
|
+
if dictobj != False:
|
|
279
|
+
self.info[group[-1]] = os.path.join(
|
|
280
|
+
self.info["location"], dictobj
|
|
281
|
+
)
|
|
282
|
+
elif (
|
|
283
|
+
group[-1] in self.variables["omit"]
|
|
284
|
+
): # ["lynix", "lyphix", "lytex", "lytix"]:
|
|
283
285
|
pass
|
|
284
286
|
else:
|
|
285
287
|
if isinstance(dictobj, (bytes, bytearray)):
|
|
286
288
|
dictobj = dictobj.decode("UTF-8")
|
|
287
289
|
try:
|
|
288
|
-
self.info[group[-1]] = os.path.join(
|
|
290
|
+
self.info[group[-1]] = os.path.join(
|
|
291
|
+
self.info["location"], dictobj
|
|
292
|
+
)
|
|
289
293
|
except TypeError:
|
|
290
294
|
# dictobj may be e.g. bool that can't be joined with path
|
|
291
295
|
self.info[group[-1]] = self.info["location"]
|
|
@@ -347,19 +351,22 @@ class Input:
|
|
|
347
351
|
if isinstance(self.info["savefile"], bytes):
|
|
348
352
|
self.info["savefile"] = self.info["savefile"].decode("UTF-8")
|
|
349
353
|
if self.info["restored_from_hdf5"] is True:
|
|
350
|
-
|
|
351
354
|
prfile = setupfile
|
|
352
|
-
if len(prfile.split(
|
|
353
|
-
prfile = ".../{}".format(
|
|
355
|
+
if len(prfile.split("/")) > 3:
|
|
356
|
+
prfile = ".../{}".format("/".join(prfile.split("/")[-3:]))
|
|
354
357
|
print("=================================================")
|
|
355
358
|
print("Restoring case from HDF5 file:")
|
|
356
359
|
print(" Rate dirs read from .uedgerc")
|
|
357
360
|
print(" Grid read from {}".format(prfile))
|
|
358
|
-
self.info["diffusivity_file"] = os.path.join(
|
|
361
|
+
self.info["diffusivity_file"] = os.path.join(
|
|
362
|
+
self.info["location"], setupfile
|
|
363
|
+
)
|
|
359
364
|
|
|
360
365
|
# Override with diff_file maually defined diff_file upon
|
|
361
366
|
if diff_file is not None:
|
|
362
|
-
self.info["diffusivity_file"] = os.path.join(
|
|
367
|
+
self.info["diffusivity_file"] = os.path.join(
|
|
368
|
+
self.info["location"], diff_file
|
|
369
|
+
)
|
|
363
370
|
# Otherwise, try setting accoridng to input
|
|
364
371
|
else:
|
|
365
372
|
# diff_file takes precedence
|
|
@@ -371,15 +378,13 @@ class Input:
|
|
|
371
378
|
if (self.info["radialdifffname"] is not None) and (
|
|
372
379
|
self.info["radialdifffname"] is not False
|
|
373
380
|
):
|
|
374
|
-
self.info["diffusivity_file"] =
|
|
375
|
-
self.info['radialdifffname']
|
|
381
|
+
self.info["diffusivity_file"] = self.info["radialdifffname"]
|
|
376
382
|
del self.info["radialdifffname"]
|
|
377
383
|
if "userdifffname" in self.info:
|
|
378
384
|
if (self.info["userdifffname"] is not None) and (
|
|
379
385
|
self.info["userdifffname"] is not False
|
|
380
386
|
):
|
|
381
|
-
self.info["diffusivity_file"] =
|
|
382
|
-
self.info["userdifffname"]
|
|
387
|
+
self.info["diffusivity_file"] = self.info["userdifffname"]
|
|
383
388
|
del self.info["userdifffname"]
|
|
384
389
|
if (self.info["diffusivity_file"] is None) and (
|
|
385
390
|
self.getue("isbohmcalc") in [0, 2]
|
|
@@ -387,8 +392,8 @@ class Input:
|
|
|
387
392
|
self.info["diffusivity_file"] = self.info["savefile"]
|
|
388
393
|
|
|
389
394
|
prfile = self.info["diffusivity_file"]
|
|
390
|
-
if len(prfile.split(
|
|
391
|
-
prfile = ".../{}".format(
|
|
395
|
+
if len(prfile.split("/")) > 3:
|
|
396
|
+
prfile = ".../{}".format("/".join(prfile.split("/")[-3:]))
|
|
392
397
|
print(
|
|
393
398
|
"No diffusivity-file supplied: reading from "
|
|
394
399
|
+ 'save-file "{}"'.format(prfile)
|
|
@@ -396,8 +401,8 @@ class Input:
|
|
|
396
401
|
# Set diffusivities based on file if model requires profiles
|
|
397
402
|
if self.getue("isbohmcalc") == 0:
|
|
398
403
|
prfile = self.info["diffusivity_file"]
|
|
399
|
-
if len(prfile.split(
|
|
400
|
-
prfile = ".../{}".format(
|
|
404
|
+
if len(prfile.split("/")) > 3:
|
|
405
|
+
prfile = ".../{}".format("/".join(prfile.split("/")[-3:]))
|
|
401
406
|
print(
|
|
402
407
|
" User-specified diffusivities read from HDF5 "
|
|
403
408
|
+ 'file "{}"'.format(prfile)
|
|
@@ -433,7 +438,7 @@ class Input:
|
|
|
433
438
|
if restoresave is True:
|
|
434
439
|
if (self.info["savefile"] is None) and (self.get("restart") == 1):
|
|
435
440
|
if self.info["casename"] is not None:
|
|
436
|
-
for suffix in ["h5","hdf5"]:
|
|
441
|
+
for suffix in ["h5", "hdf5"]:
|
|
437
442
|
savefile = ".".join([self.info["casename"], suffix])
|
|
438
443
|
if exists(savefile):
|
|
439
444
|
self.info["savefile"] = savefile
|
|
@@ -442,8 +447,9 @@ class Input:
|
|
|
442
447
|
if exists(self.info["savefile"]):
|
|
443
448
|
self.savefuncs.load_state(self.info["savefile"], **kwargs)
|
|
444
449
|
else:
|
|
445
|
-
raise ValueError(
|
|
446
|
-
self.info["savefile"])
|
|
450
|
+
raise ValueError(
|
|
451
|
+
"Could not open save-file '{}'".format(self.info["savefile"])
|
|
452
|
+
)
|
|
447
453
|
if uedge_is_installed and not self.info["inplace"]:
|
|
448
454
|
self.tracker.get_uevars()
|
|
449
455
|
# NOTE: Get the hashes before running any commands. This way,
|
|
@@ -500,6 +500,7 @@ class CaseDashboard(QWidget):
|
|
|
500
500
|
==========================="""
|
|
501
501
|
def _createVarButtons(self):
|
|
502
502
|
from numpy import sum, ndarray
|
|
503
|
+
self.buttonsetup = True
|
|
503
504
|
self.buttons = {
|
|
504
505
|
'layout': QGridLayout(),
|
|
505
506
|
'title': QLabel(self.title("Plots")),
|
|
@@ -537,8 +538,8 @@ class CaseDashboard(QWidget):
|
|
|
537
538
|
cols[int(i/maxbuttons)].addWidget(
|
|
538
539
|
self.buttons['items'][key],
|
|
539
540
|
)
|
|
540
|
-
|
|
541
|
-
buttonvar = self.
|
|
541
|
+
test = True
|
|
542
|
+
buttonvar = self.__getattribute__(f'plot_{key}')()
|
|
542
543
|
if buttonvar is not None:
|
|
543
544
|
vis = True
|
|
544
545
|
if len(buttonvar.shape) == 3:
|
|
@@ -548,11 +549,12 @@ class CaseDashboard(QWidget):
|
|
|
548
549
|
if varsum == 0:
|
|
549
550
|
self.buttons['items'][key].setEnabled(False)
|
|
550
551
|
else:
|
|
551
|
-
if sum(
|
|
552
|
+
if sum(buttonvar) == 0:
|
|
552
553
|
self.buttons['items'][key].setEnabled(False)
|
|
553
554
|
i += 1
|
|
554
555
|
self.checkedButton = self.buttongroup.button(0)
|
|
555
556
|
self.checkedButton.setChecked(True)
|
|
557
|
+
test = False
|
|
556
558
|
|
|
557
559
|
# Add drop-down
|
|
558
560
|
self.buttons['items']['dropdown'] = QComboBox()
|
|
@@ -592,6 +594,7 @@ class CaseDashboard(QWidget):
|
|
|
592
594
|
for i in range(len(cols)):
|
|
593
595
|
self.buttons['layout'].addLayout(cols[i], 1, i, 1, 1)
|
|
594
596
|
self.buttons['layout'].addLayout(custom, 2,0,1,len(cols))
|
|
597
|
+
self.buttonsetup = False
|
|
595
598
|
|
|
596
599
|
|
|
597
600
|
|
|
@@ -1010,114 +1013,162 @@ class CaseDashboard(QWidget):
|
|
|
1010
1013
|
self.enable_ionradio(False)
|
|
1011
1014
|
self.uncheck_buttons()
|
|
1012
1015
|
|
|
1013
|
-
def plot_te(self):
|
|
1016
|
+
def plot_te(self):
|
|
1017
|
+
var = self.get('te')/1.602e-19
|
|
1018
|
+
if self.buttonsetup:
|
|
1019
|
+
return var
|
|
1014
1020
|
self.plot_driver(
|
|
1015
|
-
|
|
1021
|
+
var,
|
|
1016
1022
|
'Electron temperature [eV]',
|
|
1017
1023
|
)
|
|
1018
1024
|
self.lastfunc = self.plot_te
|
|
1019
1025
|
|
|
1020
1026
|
def plot_ti(self):
|
|
1027
|
+
var = self.get('ti')/1.602e-19
|
|
1028
|
+
if self.buttonsetup:
|
|
1029
|
+
return var
|
|
1021
1030
|
self.plot_driver(
|
|
1022
|
-
|
|
1031
|
+
var,
|
|
1023
1032
|
'Ion temperature [eV]',
|
|
1024
1033
|
)
|
|
1025
1034
|
self.lastfunc = self.plot_ti
|
|
1026
1035
|
|
|
1027
1036
|
def plot_tg(self):
|
|
1037
|
+
var = self.get('tg')/1.602e-19
|
|
1038
|
+
if self.buttonsetup:
|
|
1039
|
+
return var
|
|
1028
1040
|
self.plot_driver(
|
|
1029
|
-
|
|
1041
|
+
var,
|
|
1030
1042
|
'Gas temperature [eV]',
|
|
1031
1043
|
'gas'
|
|
1032
1044
|
)
|
|
1033
1045
|
self.lastfunc = self.plot_tg
|
|
1034
1046
|
|
|
1035
1047
|
def plot_ne(self):
|
|
1048
|
+
var = self.get('ne')
|
|
1049
|
+
if self.buttonsetup:
|
|
1050
|
+
return var
|
|
1036
1051
|
self.plot_driver(
|
|
1037
|
-
|
|
1052
|
+
var,
|
|
1038
1053
|
r'Electron density [m$\mathrm{{}^{-3}}$]',
|
|
1039
1054
|
)
|
|
1040
1055
|
self.lastfunc = self.plot_ne
|
|
1041
1056
|
|
|
1042
1057
|
def plot_ni(self):
|
|
1058
|
+
var = self.get('ni')
|
|
1059
|
+
if self.buttonsetup:
|
|
1060
|
+
return var
|
|
1043
1061
|
self.plot_driver(
|
|
1044
|
-
|
|
1062
|
+
var,
|
|
1045
1063
|
r'Ion density [m$\mathrm{{}^{-3}}$]',
|
|
1046
1064
|
'ion'
|
|
1047
1065
|
)
|
|
1048
1066
|
self.lastfunc = self.plot_ni
|
|
1049
1067
|
|
|
1050
1068
|
def plot_ng(self):
|
|
1069
|
+
var = self.get('ng')
|
|
1070
|
+
if self.buttonsetup:
|
|
1071
|
+
return var
|
|
1051
1072
|
self.plot_driver(
|
|
1052
|
-
|
|
1073
|
+
var,
|
|
1053
1074
|
r'Gas density [m$\mathrm{{}^{-3}}$]',
|
|
1054
1075
|
'gas'
|
|
1055
1076
|
)
|
|
1056
1077
|
self.lastfunc = self.plot_ng
|
|
1057
1078
|
|
|
1058
1079
|
def plot_phi(self):
|
|
1080
|
+
var = self.get('phi')
|
|
1081
|
+
if self.buttonsetup:
|
|
1082
|
+
return var
|
|
1059
1083
|
self.plot_driver(
|
|
1060
|
-
|
|
1084
|
+
var,
|
|
1061
1085
|
'Electrical potential [V]',
|
|
1062
1086
|
)
|
|
1063
1087
|
self.lastfunc = self.plot_phi
|
|
1064
1088
|
|
|
1065
1089
|
def plot_prad(self):
|
|
1090
|
+
if self.get('prad').shape == self.get('pradhyd').shape:
|
|
1091
|
+
var = self.get('prad')+self.get('pradhyd')
|
|
1092
|
+
else:
|
|
1093
|
+
var = self.get('pradhyd')
|
|
1094
|
+
if self.buttonsetup:
|
|
1095
|
+
return var
|
|
1066
1096
|
self.plot_driver(
|
|
1067
|
-
|
|
1097
|
+
var,
|
|
1068
1098
|
r'Total radiated power [W/m$\mathrm{{}^{-3}}$]',
|
|
1069
1099
|
)
|
|
1070
1100
|
self.lastfunc = self.plot_prad
|
|
1071
1101
|
|
|
1072
1102
|
def plot_pradhyd(self):
|
|
1103
|
+
var = self.get('pradhyd')
|
|
1104
|
+
if self.buttonsetup:
|
|
1105
|
+
return var
|
|
1073
1106
|
self.plot_driver(
|
|
1074
|
-
|
|
1107
|
+
var,
|
|
1075
1108
|
r'Hydrogenic radiated power [W/m$\mathrm{{}^{-3}}$]',
|
|
1076
1109
|
)
|
|
1077
1110
|
self.lastfunc = self.plot_pradhyd
|
|
1078
1111
|
|
|
1079
1112
|
def plot_pradimp(self):
|
|
1113
|
+
var = self.get('prad')
|
|
1114
|
+
if self.buttonsetup:
|
|
1115
|
+
return var
|
|
1080
1116
|
self.plot_driver(
|
|
1081
|
-
|
|
1117
|
+
var,
|
|
1082
1118
|
r'Impurity radiated power [W/m$\mathrm{{}^{-3}}$]',
|
|
1083
1119
|
)
|
|
1084
1120
|
self.lastfunc = self.plot_pradimp
|
|
1085
1121
|
|
|
1086
1122
|
def plot_psorc(self):
|
|
1123
|
+
var = self.get('psorc')
|
|
1124
|
+
if self.buttonsetup:
|
|
1125
|
+
return var
|
|
1087
1126
|
self.plot_driver(
|
|
1088
|
-
|
|
1127
|
+
var,
|
|
1089
1128
|
'Ion ionization source [parts/s]',
|
|
1090
1129
|
'ion'
|
|
1091
1130
|
)
|
|
1092
1131
|
self.lastfunc = self.plot_psorc
|
|
1093
1132
|
|
|
1094
1133
|
def plot_psorgc(self):
|
|
1134
|
+
var = self.get('psorgc')
|
|
1135
|
+
if self.buttonsetup:
|
|
1136
|
+
return var
|
|
1095
1137
|
self.plot_driver(
|
|
1096
|
-
|
|
1138
|
+
var,
|
|
1097
1139
|
'Gas ionization sink [parts/s]',
|
|
1098
1140
|
'gas'
|
|
1099
1141
|
)
|
|
1100
1142
|
self.lastfunc = self.plot_psorgc
|
|
1101
1143
|
|
|
1102
1144
|
def plot_psorxrc(self):
|
|
1145
|
+
var = self.get('psorxrc')
|
|
1146
|
+
if self.buttonsetup:
|
|
1147
|
+
return var
|
|
1103
1148
|
self.plot_driver(
|
|
1104
|
-
|
|
1149
|
+
var,
|
|
1105
1150
|
'Ion recombination + CX sink [parts/s]',
|
|
1106
1151
|
'ion'
|
|
1107
1152
|
)
|
|
1108
1153
|
self.lastfunc = self.plot_psorxrc
|
|
1109
1154
|
|
|
1110
1155
|
def plot_psorrgc(self):
|
|
1156
|
+
var = self.get('psorrgc')
|
|
1157
|
+
if self.buttonsetup:
|
|
1158
|
+
return var
|
|
1111
1159
|
self.plot_driver(
|
|
1112
|
-
|
|
1160
|
+
var,
|
|
1113
1161
|
'Gas recombination source [parts/s]',
|
|
1114
1162
|
'gas'
|
|
1115
1163
|
)
|
|
1116
1164
|
self.lastfunc = self.plot_psorrgc
|
|
1117
1165
|
|
|
1118
1166
|
def plot_psorcxg(self):
|
|
1167
|
+
var = self.get('psorcxg')
|
|
1168
|
+
if self.buttonsetup:
|
|
1169
|
+
return var
|
|
1119
1170
|
self.plot_driver(
|
|
1120
|
-
|
|
1171
|
+
var,
|
|
1121
1172
|
'Gas CX source [parts/s]',
|
|
1122
1173
|
'gas'
|
|
1123
1174
|
)
|
|
@@ -1656,10 +1707,11 @@ class MainMenu(QMainWindow):
|
|
|
1656
1707
|
def openHDF5(self):#, caseobj=None):
|
|
1657
1708
|
from uetools import Case
|
|
1658
1709
|
# Logic for opening an existing file goes here...
|
|
1659
|
-
if 1==
|
|
1710
|
+
if 1==1:
|
|
1660
1711
|
file = QFileDialog.getOpenFileName(self, 'Open UETOOLS save',
|
|
1661
|
-
self.lastpath, "All files (*.*)")[0]
|
|
1662
|
-
self.lastpath = "/".join(file.split("/")[:-1]
|
|
1712
|
+
self.lastpath, "All files (*.*)", options=QFileDialog.DontUseNativeDialog)[0]
|
|
1713
|
+
self.lastpath = "/".join(file.split("/")[:-1],
|
|
1714
|
+
)
|
|
1663
1715
|
else:
|
|
1664
1716
|
file = "/Users/holm10/Documents/fusion/uedge/src/"+\
|
|
1665
1717
|
"UETOOLS/dashboard_test/testcase_hires/nc20.hdf5"
|
|
@@ -1691,7 +1743,9 @@ class MainMenu(QMainWindow):
|
|
|
1691
1743
|
)
|
|
1692
1744
|
print("USING TEST DATABASE")
|
|
1693
1745
|
else:
|
|
1694
|
-
path = str(QFileDialog.getExistingDirectory(self, "Select Directory"
|
|
1746
|
+
path = str(QFileDialog.getExistingDirectory(self, "Select Directory",
|
|
1747
|
+
options=QFileDialog.DontUseNativeDialog
|
|
1748
|
+
))
|
|
1695
1749
|
if len(path) == 0:
|
|
1696
1750
|
return
|
|
1697
1751
|
name = path.split('/')[-1]
|
|
@@ -1856,7 +1910,7 @@ if __name__ == "__main__":
|
|
|
1856
1910
|
matplotlib.use('Qt5Agg')
|
|
1857
1911
|
app = QApplication(sys.argv)
|
|
1858
1912
|
win = MainMenu()
|
|
1859
|
-
win.openHDF5()
|
|
1913
|
+
# win.openHDF5()
|
|
1860
1914
|
win.show()
|
|
1861
1915
|
sys.exit(app.exec_())
|
|
1862
1916
|
#else:
|
|
@@ -760,6 +760,13 @@ class Spectrometer:
|
|
|
760
760
|
# Associate list to dict key
|
|
761
761
|
self.emission[l] = emission_chord
|
|
762
762
|
|
|
763
|
+
def chord_integral_field(self, field):
|
|
764
|
+
integrals = []
|
|
765
|
+
for chord in self.chords:
|
|
766
|
+
integrals.append(chord.integrate_field(field))
|
|
767
|
+
return integrals
|
|
768
|
+
|
|
769
|
+
|
|
763
770
|
def plot_chord_integral(
|
|
764
771
|
self, field, ax=None, linestyle="-", marker="o", color="k", x=None
|
|
765
772
|
):
|
|
@@ -798,10 +805,8 @@ class Spectrometer:
|
|
|
798
805
|
if x is None:
|
|
799
806
|
x = range(1, len(self.chords) + 1)
|
|
800
807
|
# TODO: Figure out what to use as X-axis
|
|
801
|
-
integrals = []
|
|
802
|
-
for chord in self.chords:
|
|
803
|
-
integrals.append(chord.integrate_field(field))
|
|
804
808
|
|
|
809
|
+
integrals = self.chord_integral_field(field)
|
|
805
810
|
ax.plot(x, integrals, linestyle=linestyle, marker=marker, color=color)
|
|
806
811
|
|
|
807
812
|
return ax.get_figure()
|
|
@@ -1209,7 +1214,12 @@ class Grid:
|
|
|
1209
1214
|
self.area = coverage_union_all(geometries)
|
|
1210
1215
|
# Create and store Polygon for core
|
|
1211
1216
|
corepts = []
|
|
1212
|
-
|
|
1217
|
+
nnxpt = case.get('nxpt', verbose=False)
|
|
1218
|
+
if nnxpt is None:
|
|
1219
|
+
nnxpt = 1
|
|
1220
|
+
if case.plot.dnull:
|
|
1221
|
+
nnxpt = 2
|
|
1222
|
+
for nxpt in range(nnxpt):
|
|
1213
1223
|
for ix in range(case.get("ixpt1")[nxpt] + 1, case.get("ixpt2")[nxpt] + 1):
|
|
1214
1224
|
corepts.append(
|
|
1215
1225
|
[
|
|
@@ -603,19 +603,21 @@ class Caseplot(Plot):
|
|
|
603
603
|
ax.plot((ixpt1[ixpt]+0.5,ixpt1[ixpt]+0.5), (-0.5,iysptrx1[ixpt]+.5), 'k-', linewidth=1.5)
|
|
604
604
|
ax.plot((ixpt2[ixpt]+0.5,ixpt2[ixpt]+0.5), (-0.5,iysptrx2[ixpt]+.5), 'k-', linewidth=1.5)
|
|
605
605
|
|
|
606
|
+
for xpatch in self.get('rangechunk'):
|
|
607
|
+
ax.add_patch(Polygon( [(xpatch[0]-.5,xpatch[2]-.5),(xpatch[0]-.5,xpatch[3]+.5),(xpatch[1]+.5, xpatch[3]+.5),(xpatch[1]+.5, xpatch[2]-0.5)],
|
|
608
|
+
closed=True, edgecolor='k', alpha=0.3, linestyle='--', linewidth=2, color=next(colors)))
|
|
609
|
+
|
|
606
610
|
for ixpt in range(nxpt):
|
|
607
611
|
for icut in range(self.get('Nxptchunks')[ixpt]):
|
|
608
612
|
for ii in range(2):
|
|
609
613
|
xpatch = rangexptchunk[ixpt, ii, icut]
|
|
610
614
|
ax.add_patch(Polygon( [(xpatch[0]-.5,xpatch[2]-.5),(xpatch[0]-.5,xpatch[3]+.5),(xpatch[1]+.5, xpatch[3]+.5),(xpatch[1]+.5, xpatch[2]-0.5)],
|
|
611
|
-
closed=True, edgecolor='k', facecolor='red'))
|
|
615
|
+
closed=True, edgecolor='k', facecolor='red', linestyle='-', linewidth=1))
|
|
612
616
|
|
|
613
|
-
for xpatch in self.get('rangechunk'):
|
|
614
|
-
ax.add_patch(Polygon( [(xpatch[0]-.5,xpatch[2]-.5),(xpatch[0]-.5,xpatch[3]+.5),(xpatch[1]+.5, xpatch[3]+.5),(xpatch[1]+.5, xpatch[2]-0.5)],
|
|
615
|
-
closed=True, edgecolor='k', alpha=0.3, linestyle='--', linewidth=2, color=next(colors)))
|
|
616
617
|
|
|
617
618
|
|
|
618
619
|
f.show()
|
|
620
|
+
return f
|
|
619
621
|
|
|
620
622
|
|
|
621
623
|
def variablemesh(self, z=None, **kwargs):
|
|
@@ -111,7 +111,7 @@ class AboutSetup:
|
|
|
111
111
|
ionarray = []
|
|
112
112
|
for i in range(nisp):
|
|
113
113
|
charge = "{}".format(
|
|
114
|
-
("+" + str(int(zi[i]))) * (zi[i] > 0) + "0" * (zi[i] == 0)
|
|
114
|
+
("+" + str(int(zi[i]))) * bool(zi[i] > 0) + "0" * bool(zi[i] == 0)
|
|
115
115
|
)
|
|
116
116
|
sign = "".join(
|
|
117
117
|
(x for x in elements[znuclin[i]][minu[i]] if not x.isdigit())
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.3.3
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.3.2
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uedgetools-1.3.2 → uedgetools-1.3.3}/src/uetools/UeDiagnostics/d3d_bolometer_projection.hdf5
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|