Python GUI for gds2palace
gds2palace enables an RFIC FEM simulation workflow where GDSII layout files are simulated using the Palace FEM solver by AWS. setupEM provides a Python-based graphical user interface to configure and run gds2palace, instead of creating the simulation model code manually, and also start simulation in Palace.
When you install setupEM, the gds2palace workflow is automatically installed in the background. This enables creating a simulation model for AWS Palace. To actually run the simulation, you need to have AWS Palace installed, as described below. Palace installation is not done automatically!
The setupEM package now includes setupThermal also, which is the equivalent of setupEM for thermal models using Elmer. To run a thermal model in Elmer, you need to have Elmer installed. Elmer installation is not done automatically!
An overview of the SetupEM user interface is given below in chapter "Using setupEM"
Two more external tools are used by parts of the workflow, and are not installed automatically:
- ParaView — to view field-dump output (Palace/Elmer EM) and Elmer thermal result files via the "View fields/results in Paraview" buttons.
- 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 (setupEM checks for this and shows a download link if it's missing).
Install
pip install setupEM
Full documentation, installation guide, and usage walkthrough: https://github.com/VolkerMuehlhaus/setupEM
Recent changes
What's New - September 8-12, 2026
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).
Added a live solver-status line below the log during a Palace run, showing MPI process count, estimated total memory, current port/frequency progress, and AMR iteration - updates as Palace's own console output streams in, without waiting for the run to finish. It clears when loading a different model/config file or creating a new mesh, instead of showing a previous run's stale data.
Added a memory limit for Palace runs (Preferences > Palace, "Stop Palace if memory exceeds", default 100 GB): if the solver's own reported memory usage crosses this, setupEM terminates it automatically and still runs S-parameter postprocessing on whatever results were already computed, instead of losing the whole run to an out-of-memory crash.
The Result Viewer can now show S-parameter results from a still-running (or crashed/stopped) multi-iteration AMR run, reading Palace's raw per-iteration output directly instead of waiting for the whole run to finish.
Added a Layout Preview which can be accessed from Input Files tab or Tools menu, including display of port location and direction. Layout layers selected in Stackup Preview will be highlighted in Layout preview.
Added Tools > Simplify GDS... (setupEM and setupThermal), which removes floating (unconnected) metal fill and/or fills in small cutouts on the currently loaded GDS file, writing the result to a new GDS file. The metal layers it operates on come entirely from the currently loaded XML stackup. Defaults are configurable on a new Preferences > Simplify GDS tab. A Compare in Layout Preview button opens the original and simplified layouts side by side.
Layer numbers for port shapes are now auto-detected when creating port configuration. Layer range is set in the Preferences dialog.
Added a File > Preferences... dialog (setupEM and setupThermal) for changing the built-in defaults of fields that were previously hardcoded.
The Cellname dropdown now shows an explicit "(default)" entry instead of a blank one.
What's New - September 1-6, 2026
The stackup cross-section preview (Show stackup, and the Stackup Editor's live preview) is now interactive: click a dielectric, metal, or via to see its name, material, and z-position/thickness in a flyout. In the Stackup Editor, clicking a shape also selects the matching row in the Dielectric Stack/Layers tables, and selecting a row highlights the matching shape in the preview.
The Stackup Editor now closes itself automatically when a different substrate XML is chosen in the main window, if it has no unsaved changes, instead of staying open showing a file that no longer matches what's selected.
setupThermal now has an Elmer solver settings group (Mesh tab), matching setupEM's, to choose between the iterative and direct linear solver for the Elmer thermal solve - defaults to direct. Previously this could only be set by hand-editing the generated model script, and the setting was silently dropped even then.
ParaView launching (Palace and Elmer EM field dumps, Elmer thermal results) now prefers a .pvtu file over loose .vtu pieces when one exists, so a multi-partition (MPI) run opens as one combined dataset instead of disconnected fragments.
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.
What's New - September 5, 2026
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.
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.
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).
Full history: CHANGES.md
Note: the setupEM PyPI package itself requires:
- gds2palace>=0.4.3
- gds_prepare_for_EM>=1.2.0
- PySide6
- shiboken6
- scipy
- requests
- scikit-rf
- matplotlib
- numpy
- gdspy
- meshio
(Other Python modules mentioned above are only needed to run standalone helper scripts in this repository, not to use the installed package.)
Release files for setupEM 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| setupem-0.7.0.tar.gz | 228.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| setupem-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 459.3 kB
Release files / setupem-0.7.0.tar.gz
| Download URL | setupem-0.7.0.tar.gz |
|---|---|
| Size | 228.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
888e49c4bba069cbb9e1cab8886322134216326c2a97cd12624a01bc7c905ac4
|
|
BLAKE2b-256 checksum How to use checksums |
9b201b6c8b2d78d86ee95573754ac49817759f66e311806e3023d598b454f7be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / setupem-0.7.0-py3-none-any.whl
| Download URL | setupem-0.7.0-py3-none-any.whl |
|---|---|
| Size | 230.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c8ccf017ca10ca1ab05751a283abe52ef7950a49da1793481422fe7f1244bc39
|
|
BLAKE2b-256 checksum How to use checksums |
4dc938760159d47704141943b56c5d2495c61b7bf25ab7ef107e620aa9cf51be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|