Electromagnetic finite-element simulation of superconducting quantum hardware using Palace — the open-source EM solver developed AWS for quantum device design.
This project simulates a coplanar waveguide (CPW) quarter-wave resonator on a silicon substrate and extracts its resonant frequency, comparing Palace eigenmode results to the analytic transmission-line formula. A transmon qubit capacitor pad simulation is in progress (Phase 2).
Companion project: CavityVQE — VQE solution of the Jaynes-Cummings model that describes the same cavity-qubit system this resonator physically realises.
A CPW quarter-wave resonator shorted to ground at one end (PEC) and open at the other (PMC) supports standing-wave resonances at odd multiples of the fundamental:
The effective permittivity
CPW cross-section (looking along the resonator length):
─────────┬──────┬──────────────────┬──────┬─────────
GND │ gap │ CENTER STRIP │ gap │ GND
(PEC) │ │ (PEC) │ │ (PEC)
─────────┴──────┴──────────────────┴──────┴─────────
SILICON SUBSTRATE (εᵣ = 11.68)
| Parameter | Value | Notes |
|---|---|---|
| Resonator length L | 3.0 mm | Quarter-wave at ~9.8 GHz |
| Center strip width w | 10 μm | 50 Ω impedance on silicon |
| Gap s | 6 μm | w/(w+2s) = 0.455 → Z₀ ≈ 50 Ω |
| Ground plane width | 50 μm | Each side |
| Substrate thickness | 500 μm | Standard silicon wafer |
| Air domain above | 300 μm | ≈ 30× strip width; fields decay before PEC wall |
Palace eigenmode simulation (order-2 Nédélec elements, 55,034 unknowns, SLEPc/GMRES):
| Mode | f (GHz) | Harmonic | E_elec / E_mag |
|---|---|---|---|
| 1 | 28.568 | 3×f₀ | 1.000000000 |
| 2 | 47.732 | 5×f₀ | 1.000000000 |
Inferred fundamental:
Analytic prediction:
Agreement: 96.0% (4.0% error)
The 4% discrepancy reflects the difference between the open CPW analytic formula (fields extending to infinity) and the shielded geometry simulated here (PEC domain walls). The Palace result gives an inferred
Sanity check:
The coarse mesh (9,521 elements, minimum element size ~20 μm) resolved the 3rd and 5th harmonics; the fundamental requires finer resolution in the 6 μm gap. Mesh refinement using Palace's adaptive mesh refinement (AMR) is in progress.
geometry/cpw_resonator.py ← GMSH: 3-D CPW mesh with PEC/PMC surface groups
↓
geometry/cpw_resonator.msh ← MSH2 format, 9,521 tetrahedra
↓
simulation/eigenmode.json ← Palace config: materials, BCs, SLEPc target
↓
Palace (mpirun) ← Assembles curl-curl system, solves eigenvalue problem
↓
simulation/output/eig.csv ← Eigenfrequencies, Q-factors, error estimates
↓
analysis/postprocess.py ← Infers f₀, compares to analytic, prints results
See notebooks/CqeSimulation.ipynb for the complete end-to-end walkthrough including Palace installation, mesh generation, simulation, and post-processing.
Requirements: GMSH 4.15+, Palace v0.16+ (built from source), MPI, Python 3.10+
# Build Palace (~20 min, one time)
git clone https://github.com/awslabs/palace.git
cd palace && cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j$(nproc)
# Generate mesh
pip install gmsh
python geometry/cpw_resonator.py
# Run simulation
export OMPI_ALLOW_RUN_AS_ROOT=1 && export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
mpirun -n 1 palace/build/bin/palace-x86_64.bin simulation/eigenmode.json
# Post-process
python analysis/postprocess.pyPalace solves the curl-curl eigenvalue problem for Maxwell's equations using the finite element method:
Key implementation choices:
- Nédélec edge elements (order 2): Vector-valued basis functions with degrees of freedom on mesh edges rather than nodes. Enforce tangential continuity of E across dielectric interfaces without enforcing normal continuity — the physically correct boundary condition. Eliminate spurious DC modes that afflict nodal elements.
- SLEPc Krylov-Schur: Finds eigenvalues near a target frequency σ using shift-and-invert. Solves
(K − σM)x = bat each iteration via GMRES with algebraic multigrid preconditioning (HYPRE). - Divergence-free projection: Removes the null space of the curl operator (gradient modes) from the Krylov space before eigenvalue extraction.
palace-cqed/
├── geometry/
│ ├── cpw_resonator.py # GMSH geometry: 5 substrate slabs + air, BooleanFragments
│ └── cpw_resonator.msh # Generated mesh (MSH2, 9521 tetrahedra)
├── simulation/
│ ├── eigenmode.json # Palace eigenmode config
│ └── output/
│ ├── eig.csv # Eigenfrequencies and Q-factors
│ └── domain-E.csv # Energy partition per domain per mode
├── analysis/
│ └── postprocess.py # Parse eig.csv, infer f₀, compare to analytic
├── transmon/ # Phase 2: transmon capacitor pad (in progress)
├── notebooks/
│ └── CqeSimulation.ipynb # End-to-end Colab walkthrough
├── config.py # All physical parameters in one place
└── README.md
- Goppl et al., Coplanar waveguide resonators for circuit quantum electrodynamics, J. Appl. Phys. 104, 113904 (2008). arXiv:0807.4094
- Blais et al., Cavity quantum electrodynamics for superconducting electrical circuits, Phys. Rev. A 69, 062320 (2004). arXiv:cond-mat/0402216
- Krantz et al., A quantum engineer's guide to superconducting qubits, Appl. Phys. Rev. 6, 021318 (2019). arXiv:1904.06560
- Palace documentation: awslabs.github.io/palace
palace electromagnetic-simulation superconducting-qubits quantum-hardware fem coplanar-waveguide resonator mfem circuit-qed nvidia-quantum