Skip to main content

Python GUI for gds2palace

Intro

Install

pip install setupEM

Full documentation, installation guide, and usage walkthrough: https://github.com/VolkerMuehlhaus/setupEM

Recent changes

What's New - October 17, 2026

Conductor model replaces Conductor meshing on the Mesh and Boundaries tab (Palace only), with a third choice: Surface impedance (default, as before), Solve inside (volume mesh) and the new Solve inside + skin layers, which adds thin layers along the conductor faces for accurate Q and loss at high frequency. Generated model scripts now use settings['conductor_model'] instead of settings['filled_metals']. Older projects and model scripts with filled_metals still load. setupEM now requires gds2palace 0.9.0 or later; pip install --upgrade setupEM updates it.

What's New - October 16, 2026

Boundary conditions per side: Advanced... next to Boundary conditions on the Mesh and Boundaries tab opens a table with the six sides of the simulation box. Each side can have its own boundary condition (Absorbing, PEC or PMC) and air layer thickness; a blank entry uses the value from the tab. For example, PEC at zmin with 0 µm air models a backside ground plane at the box boundary. This replaces the "same on all sides / different per side" choice for the air layer, which now lives in the same table.

Loading a model with different boundary conditions per side no longer changes it to one condition for all sides: before, a single PEC side turned all six sides into PEC.

Stackup Editor: while the stackup has errors, the cross-section preview can't be redrawn and keeps the last valid drawing. It is now marked as not up to date: dimmed, crossed by a thin red line, with a banner above it. Show errors in the banner opens the editor's XML Preview tab, which lists the errors. The status line now points there too, instead of to Save.

What's New - October 12, 2026

3D Field Viewer: value markers. Check Probe in the View box (or press P), then click the model to place a numbered marker with the field value at that exact point. Clicking works from any angle, on the full model, the clipped solid, its cut face or the 2D plane only section; dragging still rotates. Markers are drawn on top of the model, so a marker on a buried body stays visible. A Markers list opens beside the view with the marker number, value and x / y / z in µm, plus Remove, Clear and Copy (tab-separated, for spreadsheets). For Elmer thermal temperatures, a dropdown switches the list and labels between K, °C and ΔT (rise above the lowest temperature in the model, in K). Right-click the model for Jump to Maximum in Cut Plane (with the clip plane on), Jump to Maximum on Surface of Body N (the outer surface of the body you clicked, e.g. the chip; results without body IDs use the whole shown surface), Add Marker Here, Remove Marker N and Clear Markers. Markers are updated when you change the field, result file or cycle; markers outside the new model are removed. Ported from EMStudio's field viewer.

3D Field Viewer: keys. With the 3D view focused: R / F / Home reset camera, I isometric, X / Y / Z axis views (Shift: negative side), + / − zoom, arrow keys pan, O parallel projection, M find max., A arrows on/off, P probe, PgUp / PgDn move the clip plane. VTK's own letter keys (e.g. w wireframe, 3 stereo, q / e which stopped the interactor) no longer do anything. The right-click menu now opens only on a click: a right-drag zooms without the menu popping up afterwards.

3D Field Viewer: the Cycle picker of a Palace field dump showed Palace's extra AMR error-indicator cycle as a frequency, e.g. "999 GHz (cycle 2)". It is now listed as "error indicator (cycle 2)". This happened when that cycle stores its Indicator/Rank values as point data. Dumps that store them as cell data were already listed as "geometry".

3D Field Viewer: running field_viewer.py / fieldViewer standalone with a window failed in Python environments that also have PyQt5 installed. Fixed.

Port de-embedding in scripts/combine_extend_snp.py fixed (the _deembedded.sNp and _dc_deembedded.sNp files): the negative inductance of all ports was put in series at port 1, and the other ports were not de-embedded. For a 3-port, port 1 got the sum of all three values. Now each port gets the value for its own port number; a port without geometry data in port_information.json is not de-embedded. The raw .sNp and the _dc.sNp files were not affected. Please run combine_snp again to create the de-embedded files again. The same bug was fixed in gds2palace, where Gianluca Simone and David Lurz (FAU) found it.

Full history: CHANGES.md


Note: the setupEM PyPI package itself requires:

  • gds2palace>=0.9.0
  • gds_prepare_for_EM>=1.3.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.)

Metadata

Release files for setupEM 0.14.0

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.14.0
File Size Uploaded Provenance Actions
setupem-0.14.0.tar.gz 347.8 kB Without provenance Details for setupem-0.14.0.tar.gz

Built distribution (wheel)

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

Total release size: 699.8 kB

Release files / setupem-0.14.0.tar.gz

Download URL setupem-0.14.0.tar.gz
Size 347.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e4b8dad1f061f80f83a54bdf51a54774247707cbb3c865867fe6d3b032ace45b
BLAKE2b-256 checksum
How to use checksums
d90c579af5fa030fdb9efa6c7f0b2a803bdd216a4a113c87ac0a1a50fd866112
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.14.0-py3-none-any.whl

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

Security for setupEM 0.14.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.14.0 This release

2 release files No provenance

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