setupEM 0.7.0__tar.gz → 0.7.2__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.
Files changed (30) hide show
  1. {setupem-0.7.0/src/setupEM.egg-info → setupem-0.7.2}/PKG-INFO +12 -10
  2. {setupem-0.7.0 → setupem-0.7.2}/README.md +24 -2
  3. {setupem-0.7.0 → setupem-0.7.2}/README_pypi.md +9 -9
  4. {setupem-0.7.0 → setupem-0.7.2}/pyproject.toml +4 -1
  5. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/__init__.py +1 -1
  6. setupem-0.7.2/src/setupEM/field_viewer.py +1159 -0
  7. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/layout_preview.py +104 -5
  8. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/result_viewer.py +143 -51
  9. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/setupEM.py +217 -53
  10. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/setupThermal.py +138 -9
  11. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/setup_common.py +236 -23
  12. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/simplify_gds.py +20 -0
  13. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/stackupEditor.py +7 -1
  14. {setupem-0.7.0 → setupem-0.7.2/src/setupEM.egg-info}/PKG-INFO +12 -10
  15. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM.egg-info/SOURCES.txt +1 -0
  16. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM.egg-info/entry_points.txt +1 -0
  17. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM.egg-info/requires.txt +2 -0
  18. {setupem-0.7.0 → setupem-0.7.2}/LICENSE +0 -0
  19. {setupem-0.7.0 → setupem-0.7.2}/setup.cfg +0 -0
  20. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/__main__.py +0 -0
  21. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/data/SG13G2_100um.xml +0 -0
  22. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/data/SG13G2_200um.xml +0 -0
  23. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/data/SG13G2_200um_with_parameters.xml +0 -0
  24. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/data/SG13G2_nosub.xml +0 -0
  25. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/momentum_import.py +0 -0
  26. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/palace_results.py +0 -0
  27. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/stackup_writer.py +0 -0
  28. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM/thermal_results.py +0 -0
  29. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM.egg-info/dependency_links.txt +0 -0
  30. {setupem-0.7.0 → setupem-0.7.2}/src/setupEM.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: setupEM
3
- Version: 0.7.0
3
+ Version: 0.7.2
4
4
  Summary: Python tool for configuration of gds2palace workflow with GUI.
5
5
  Author-email: Volker Muehlhaus <volker@muehlhaus.com>
6
6
  License-Expression: GPL-3.0-or-later
@@ -21,6 +21,8 @@ Requires-Dist: matplotlib
21
21
  Requires-Dist: numpy
22
22
  Requires-Dist: gdspy
23
23
  Requires-Dist: meshio
24
+ Requires-Dist: pyvista
25
+ Requires-Dist: pyvistaqt
24
26
  Dynamic: license-file
25
27
 
26
28
  # Python GUI for gds2palace
@@ -35,7 +37,7 @@ An overview of the SetupEM user interface is given below in chapter "Using setup
35
37
 
36
38
  Two more external tools are used by parts of the workflow, and are not installed automatically:
37
39
 
38
- - [ParaView](https://www.paraview.org/) — to view field-dump output (Palace/Elmer EM) and Elmer thermal result files via the "View fields/results in Paraview" buttons.
40
+ - [ParaView](https://www.paraview.org/) — optional, for viewing field-dump output (Palace/Elmer EM) and Elmer thermal result files with ParaView itself instead of the built-in 3D field viewer. Not required: the built-in viewer needs nothing extra installed and is the default.
39
41
  - An MPI implementation — only needed for multi-process Elmer runs (the Elmer solver settings' multithreading option). Use OpenMPI or MPICH on Linux/macOS; on Windows, install [Microsoft MPI](https://learn.microsoft.com/en-us/message-passing-interface/microsoft-mpi) (setupEM checks for this and shows a download link if it's missing).
40
42
 
41
43
  ## Install
@@ -47,6 +49,12 @@ https://github.com/VolkerMuehlhaus/setupEM
47
49
 
48
50
  ## Recent changes
49
51
 
52
+ # What's New - September 14, 2026
53
+
54
+ Added a built-in **3D field viewer**, an in-app alternative to launching external ParaView, for setupEM (Palace and Elmer-as-EM-solver) and setupThermal (Elmer thermal) field-dump results: an axis-aligned clip plane with a **Find max.** button, standard CAD/ParaView-style axis-view buttons, tailored per-solver color defaults with a manual range override, opacity and mesh-edge overlay controls, and an arrow overlay with a size slider for vector fields. **View fields in Paraview...** and the previous separate 3D-viewer button are now one **View fields (...)...** button, whose label shows which viewer it opens - choose Built-in (new default) or ParaView on the new **Preferences > Viewer** tab, with automatic fallback to Built-in (and a log message) if ParaView isn't found.
55
+
56
+ Layout Preview now shows a via port's effective centerline when its drawn marker has finite size in both x and y, since gds2palace's `add_ports()` collapses the shorter axis down to its minimum edge (not the true center) when building the actual simulated port sheet.
57
+
50
58
  # What's New - September 8-12, 2026
51
59
 
52
60
  Added two reserved stackup materials that need no `<Materials>` entry: `PEC` (ideal conductor, on conductor/via/sheet Layers) and `AIR` (built-in default dielectric, overridable).
@@ -79,14 +87,6 @@ ParaView launching (Palace and Elmer EM field dumps, Elmer thermal results) now
79
87
 
80
88
  The Frequencies tab's field-dump control is now solver-aware: Elmer mode shows a plain **"Enable field dump"** checkbox instead of a frequency list, since Elmer has no per-frequency `SaveStep` like Palace - any `fdump` value there dumps fields at *every* solved frequency (sweep and `fpoint` together), so listing specific frequencies was misleading. Palace mode is unchanged, keeping its per-frequency `fdump` list. This also sidesteps a gds2palace bug (see its own CHANGES.md) where a frequency listed in both the sweep and `fdump` was silently solved twice.
81
89
 
82
- # What's New - September 5, 2026
83
-
84
- Added a **View fields in Paraview...** button (Create Model tab), shown once `fdump` is set, to open Palace or Elmer EM field-dump results directly. "View Results..." is renamed to **View S-Parameters...** for clarity.
85
-
86
- Fixed Elmer EM simulations failing to start on Windows: the run script never actually launched (silently, with no log output), and MPI-enabled runs now check that Microsoft MPI is installed first, with a clear message and download link if it's missing instead of a cryptic failure.
87
-
88
- Fixed importing an existing model file and choosing to reuse its filename: it could silently rename the output to a different file than the one imported. Fixed `fdump`/`fpoint` showing raw Hz values instead of GHz after importing a model file. `fdump` is now usable in Elmer mode too (previously hidden).
89
-
90
90
  Full history: [CHANGES.md](https://github.com/VolkerMuehlhaus/setupEM/blob/main/doc/CHANGES.md)
91
91
 
92
92
  ---
@@ -104,5 +104,7 @@ Full history: [CHANGES.md](https://github.com/VolkerMuehlhaus/setupEM/blob/main/
104
104
  - numpy
105
105
  - gdspy
106
106
  - meshio
107
+ - pyvista
108
+ - pyvistaqt
107
109
 
108
110
  (Other Python modules mentioned above are only needed to run standalone helper scripts in this repository, not to use the installed package.)
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## What's New
4
4
 
5
- Reserved PEC/AIR stackup materials, Layout Preview, Results viewer, Model Fit, GDSII Layout Simplification, XML Stackup Editor, setupThermal for Elmer thermal simulation.
5
+ Reserved PEC/AIR stackup materials, Layout Preview, Results viewer, Model Fit, built-in 3D field viewer, GDSII Layout Simplification, XML Stackup Editor, setupThermal for Elmer thermal simulation.
6
6
 
7
7
  See [CHANGES.md](doc/CHANGES.md) for details.
8
8
 
@@ -18,7 +18,7 @@ An overview of the SetupEM user interface is given below in chapter "Using setup
18
18
 
19
19
  Two more external tools are used by parts of the workflow, and are not installed automatically:
20
20
 
21
- - [ParaView](https://www.paraview.org/) — to view field-dump output (Palace/Elmer EM) and Elmer thermal result files via the "View fields/results in Paraview" buttons.
21
+ - [ParaView](https://www.paraview.org/) — optional, for viewing field-dump output (Palace/Elmer EM) and Elmer thermal result files with ParaView itself instead of the built-in 3D field viewer (see [3D Field Viewer](#3d-field-viewer) below). Not required: the built-in viewer needs nothing extra installed and is the default.
22
22
  - An MPI implementation — only needed for multi-process Elmer runs (the Elmer solver settings' multithreading option). Use OpenMPI or MPICH on Linux/macOS; on Windows, install [Microsoft MPI](https://learn.microsoft.com/en-us/message-passing-interface/microsoft-mpi) (setupEM checks for this and shows a download link if it's missing).
23
23
 
24
24
 
@@ -86,6 +86,8 @@ The setupEM module also installs these dependencies:
86
86
  - numpy
87
87
  - gdspy
88
88
  - meshio
89
+ - pyvista
90
+ - pyvistaqt
89
91
 
90
92
  ---
91
93
 
@@ -235,6 +237,26 @@ Once snp2le is available, Model Fit locates the raw (not `_dc`, not `_deembedded
235
237
 
236
238
  If no raw result file exists yet (no simulation has been run), Model Fit shows a warning instead of starting snp2le - run a simulation first.
237
239
 
240
+ ## 3D Field Viewer
241
+
242
+ Once field-dump results are available (Palace: set `fdump`; Elmer: enable field dump), click **View fields (...)...** on the Create Model tab to open them - the "..." in the label shows which viewer it opens, **Built-in** or **ParaView**, per the setting described below.
243
+
244
+ <img src="./doc/png/fieldviewer1.png" alt="3D field viewer" width="750">
245
+
246
+ The built-in viewer has a single, axis-aligned clip plane (X/Y/Z + a position slider, shown in µm) to see a cross-section through the model, rather than a free-orientation drag-widget - **Find max.** jumps the plane straight to the largest value of the currently selected field along that axis. Standard CAD/ParaView-style **+X/-X/+Y/-Y/+Z/-Z** buttons snap the camera to look straight down each axis; the clip plane's kept side follows whichever of these you last used for its axis, so the exposed cut face always faces the camera instead of occasionally showing the model's untouched exterior surface.
247
+
248
+ The **Field** panel picks which array to color by, defaulting to E-field magnitude (log color scale) for Palace and Elmer-as-EM-solver mode, or temperature (linear) for Elmer thermal - the Min/Max fields let you override the color range manually, with a button to reset back to the data's own range. **Display** controls opacity (to see a hotspot through the surrounding material without losing the outer shape as context) and a mesh-edge overlay. If more than one equally-valid result file exists (e.g. Palace's main "driven" field dump and its separate "driven_boundary" one), a **Result File** picker lets you choose between them instead of guessing.
249
+
250
+ For a vector array (E/B-field, Poynting vector `S`, ...), **Show arrows** overlays direction arrows on top of the color, auto-scaled from the field's own magnitude on a log scale so both weak and strong regions stay visible instead of only the single hottest point - the **Arrow size** slider (0.5% steps) scales them to taste, and also controls how densely they're packed in, since smaller arrows can sit closer together than large ones without turning into a solid block.
251
+
252
+ <img src="./doc/png/fieldviewer2.png" alt="3D field viewer, vector arrows on the Poynting vector S" width="750">
253
+
254
+ Choose which viewer **View fields (...)...** opens - **Built-in** (default, needs nothing else installed) or **ParaView** - on **Preferences > Viewer**. If ParaView is selected but not found on your system, setupEM/setupThermal fall back to the built-in viewer automatically, with a message in the Log panel.
255
+
256
+ <img src="./doc/png/preferences_viewer1.png" alt="3D field viewer preference" width="500">
257
+
258
+ Also runnable standalone, without the full setupEM/setupThermal GUI, either directly (`python field_viewer.py <file_path> [--source palace|elmer_em|elmer_thermal]`) or via the `fieldViewer` console script installed with the package.
259
+
238
260
  ## Code
239
261
  Behind the scenes, the setupEM user interface created Python model code for gds2palace, and you can check the resulting code on the "Code" tab.
240
262
 
@@ -10,7 +10,7 @@ An overview of the SetupEM user interface is given below in chapter "Using setup
10
10
 
11
11
  Two more external tools are used by parts of the workflow, and are not installed automatically:
12
12
 
13
- - [ParaView](https://www.paraview.org/) — to view field-dump output (Palace/Elmer EM) and Elmer thermal result files via the "View fields/results in Paraview" buttons.
13
+ - [ParaView](https://www.paraview.org/) — optional, for viewing field-dump output (Palace/Elmer EM) and Elmer thermal result files with ParaView itself instead of the built-in 3D field viewer. Not required: the built-in viewer needs nothing extra installed and is the default.
14
14
  - An MPI implementation — only needed for multi-process Elmer runs (the Elmer solver settings' multithreading option). Use OpenMPI or MPICH on Linux/macOS; on Windows, install [Microsoft MPI](https://learn.microsoft.com/en-us/message-passing-interface/microsoft-mpi) (setupEM checks for this and shows a download link if it's missing).
15
15
 
16
16
  ## Install
@@ -22,6 +22,12 @@ https://github.com/VolkerMuehlhaus/setupEM
22
22
 
23
23
  ## Recent changes
24
24
 
25
+ # What's New - September 14, 2026
26
+
27
+ Added a built-in **3D field viewer**, an in-app alternative to launching external ParaView, for setupEM (Palace and Elmer-as-EM-solver) and setupThermal (Elmer thermal) field-dump results: an axis-aligned clip plane with a **Find max.** button, standard CAD/ParaView-style axis-view buttons, tailored per-solver color defaults with a manual range override, opacity and mesh-edge overlay controls, and an arrow overlay with a size slider for vector fields. **View fields in Paraview...** and the previous separate 3D-viewer button are now one **View fields (...)...** button, whose label shows which viewer it opens - choose Built-in (new default) or ParaView on the new **Preferences > Viewer** tab, with automatic fallback to Built-in (and a log message) if ParaView isn't found.
28
+
29
+ Layout Preview now shows a via port's effective centerline when its drawn marker has finite size in both x and y, since gds2palace's `add_ports()` collapses the shorter axis down to its minimum edge (not the true center) when building the actual simulated port sheet.
30
+
25
31
  # What's New - September 8-12, 2026
26
32
 
27
33
  Added two reserved stackup materials that need no `<Materials>` entry: `PEC` (ideal conductor, on conductor/via/sheet Layers) and `AIR` (built-in default dielectric, overridable).
@@ -54,14 +60,6 @@ ParaView launching (Palace and Elmer EM field dumps, Elmer thermal results) now
54
60
 
55
61
  The Frequencies tab's field-dump control is now solver-aware: Elmer mode shows a plain **"Enable field dump"** checkbox instead of a frequency list, since Elmer has no per-frequency `SaveStep` like Palace - any `fdump` value there dumps fields at *every* solved frequency (sweep and `fpoint` together), so listing specific frequencies was misleading. Palace mode is unchanged, keeping its per-frequency `fdump` list. This also sidesteps a gds2palace bug (see its own CHANGES.md) where a frequency listed in both the sweep and `fdump` was silently solved twice.
56
62
 
57
- # What's New - September 5, 2026
58
-
59
- Added a **View fields in Paraview...** button (Create Model tab), shown once `fdump` is set, to open Palace or Elmer EM field-dump results directly. "View Results..." is renamed to **View S-Parameters...** for clarity.
60
-
61
- Fixed Elmer EM simulations failing to start on Windows: the run script never actually launched (silently, with no log output), and MPI-enabled runs now check that Microsoft MPI is installed first, with a clear message and download link if it's missing instead of a cryptic failure.
62
-
63
- Fixed importing an existing model file and choosing to reuse its filename: it could silently rename the output to a different file than the one imported. Fixed `fdump`/`fpoint` showing raw Hz values instead of GHz after importing a model file. `fdump` is now usable in Elmer mode too (previously hidden).
64
-
65
63
  Full history: [CHANGES.md](https://github.com/VolkerMuehlhaus/setupEM/blob/main/doc/CHANGES.md)
66
64
 
67
65
  ---
@@ -79,5 +77,7 @@ Full history: [CHANGES.md](https://github.com/VolkerMuehlhaus/setupEM/blob/main/
79
77
  - numpy
80
78
  - gdspy
81
79
  - meshio
80
+ - pyvista
81
+ - pyvistaqt
82
82
 
83
83
  (Other Python modules mentioned above are only needed to run standalone helper scripts in this repository, not to use the installed package.)
@@ -22,7 +22,9 @@ dependencies = [
22
22
  "matplotlib",
23
23
  "numpy",
24
24
  "gdspy",
25
- "meshio"
25
+ "meshio",
26
+ "pyvista",
27
+ "pyvistaqt"
26
28
  ]
27
29
  requires-python = ">=3.9"
28
30
 
@@ -36,6 +38,7 @@ setupEM = "setupEM.setupEM:main"
36
38
  setupThermal = "setupEM.setupThermal:main"
37
39
  stackupEditor = "setupEM.stackupEditor:main"
38
40
  resultViewer = "setupEM.result_viewer:main"
41
+ fieldViewer = "setupEM.field_viewer:main"
39
42
 
40
43
  [tool.setuptools.dynamic]
41
44
  version = {attr = "setupEM.__version__"}
@@ -24,4 +24,4 @@ A Python tool for EM setup using gds2palace.
24
24
  from .setupEM import main
25
25
 
26
26
  __all__ = ["main"]
27
- __version__ = "0.7.0"
27
+ __version__ = "0.7.2"