Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QHardwareSimulator

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.


Physics

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:

$$f_n = (2n-1),\frac{c}{4L\sqrt{\varepsilon_\text{eff}}}, \quad n = 1, 2, 3, \ldots$$

The effective permittivity $\varepsilon_\text{eff} \approx (\varepsilon_r + 1)/2 \approx 6.34$ for silicon ($\varepsilon_r = 11.68$), since the CPW fields are split between the substrate below and air above. The exact value from conformal mapping is given in Goppl et al. (2008).

CPW cross-section (looking along the resonator length):

 ─────────┬──────┬──────────────────┬──────┬─────────
  GND     │ gap  │  CENTER STRIP    │ gap  │  GND
  (PEC)   │      │    (PEC)         │      │  (PEC)
 ─────────┴──────┴──────────────────┴──────┴─────────
              SILICON SUBSTRATE  (εᵣ = 11.68)

Geometry

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

Simulation Results

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:

$$f_0 = \frac{28.568}{3} = 9.523 \text{ GHz} \quad \left(\frac{47.732}{5} = 9.546 \text{ GHz}\right)$$

Analytic prediction: $f_0 = c/(4L\sqrt{\varepsilon_\text{eff}}) = 9.92$ GHz

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 $\varepsilon_\text{eff} = 6.88$, slightly higher than the open-structure estimate of 6.34 — consistent with the PEC walls increasing field confinement in the silicon.

Sanity check: $E_\text{elec}/E_\text{mag} = 1.000000000$ for all modes, confirming exact equipartition of energy — the hallmark of a genuine resonant eigenmode.

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.


Workflow

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

Quick Start (Google Colab, T4 GPU)

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.py

What Palace Is Doing

Palace solves the curl-curl eigenvalue problem for Maxwell's equations using the finite element method:

$$\nabla \times \mu_r^{-1} \nabla \times \mathbf{E} = \left(\frac{\omega}{c}\right)^2 \varepsilon_r, \mathbf{E}$$

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 = b at 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.

Repository Structure

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

References

  1. Goppl et al., Coplanar waveguide resonators for circuit quantum electrodynamics, J. Appl. Phys. 104, 113904 (2008). arXiv:0807.4094
  2. Blais et al., Cavity quantum electrodynamics for superconducting electrical circuits, Phys. Rev. A 69, 062320 (2004). arXiv:cond-mat/0402216
  3. Krantz et al., A quantum engineer's guide to superconducting qubits, Appl. Phys. Rev. 6, 021318 (2019). arXiv:1904.06560
  4. Palace documentation: awslabs.github.io/palace

GitHub Topics

palace electromagnetic-simulation superconducting-qubits quantum-hardware fem coplanar-waveguide resonator mfem circuit-qed nvidia-quantum

About

FEM simulation of superconducting quantum hardware (CPW resonator + transmon qubit) using Palace

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.