Skip to main content

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 — 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.
  • 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 14, 2026

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.

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.

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.

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
  • pyvista
  • pyvistaqt

(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.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for setupEM 0.8.1
File Size Uploaded
setupem-0.8.1.tar.gz 286.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for setupEM 0.8.1
File Interpreter ABI Platform
setupem-0.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 573.6 kB

Release files / setupem-0.8.1.tar.gz

Download URL setupem-0.8.1.tar.gz
Size 286.6 kB
Tags Source
SHA-256 checksum
How to use checksums
37915b79e13a6b035bb1eb1bcfc941a6445394e53a872ca75cdce1b3296c485c
BLAKE2b-256 checksum
How to use checksums
1b66625b30da578f338ae058537b333d87ee96130629a39cfc8fe2be32935573
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.8.1-py3-none-any.whl

Download URL setupem-0.8.1-py3-none-any.whl
Size 287.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f5d631de85a764daeaeca70f7bde564beda55f7caaa663f60fe3df3049b8ff1c
BLAKE2b-256 checksum
How to use checksums
dbc343e31a2fdd05bdb1ae561ece1f4888ba5ff49d52234b1d6bcfb36d31e9f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.8.2

2 release files

This release

0.8.1 This release

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.0

2 release files

0.6.4

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.16

2 release files

0.3.15

2 release files

0.3.14

2 release files

0.3.13

2 release files

0.3.12

2 release files

0.3.11

2 release files

0.3.10

2 release files

0.3.9

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page