Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

saw-device-sim

Analytic models for surface-acoustic-wave (SAW) devices: an interdigital transducer (IDT) frequency response and a 1D acoustic transfer-matrix solver for layered stacks and superlattices. Pure NumPy, no solver licence, milliseconds per spectrum.

The point of these models is that they are fast and transparent enough to sweep a design space or drop inside an optimiser, and they are checked against a real measured device rather than only against themselves.

What is in here

  • idt — synchronous frequency f0 = v / (2 * pitch), the sinc^2 band shape of an n-pair IDT, and an electrode mass-loading correction.
  • tmm — the [v, p] transfer matrix of a layered stack, matched-port reflection and transmission, and a superlattice builder. The transmission formula is the corrected one (an earlier t = 2 Zs / denom form underflowed to ~1e-12 everywhere); this version conserves energy for a lossless stack.
  • materials — 128-YX lithium niobate and amorphous / crystalline Ge2Sb2Te5, the phase-change pair whose stiffness change retunes a device.

Install

pip install -e .

Python 3.9+, NumPy. Matplotlib only for the examples.

Validation against a measured device

Najmi et al. (2025) report a reference-arm peak near 196 MHz for a 5 um finger / 5 um gap IDT on 128-YX LiNbO3. The model:

free-surface peak : 199.6 MHz   (1.8% high, ignores electrode loading)
with 2.1% loading : 195.4 MHz   (0.30% from the measured 196 MHz)

The free-surface value is deliberately shown alongside the loaded one: it is a couple of percent high because it ignores the metal electrodes, and applying the standard 2.1% mass-loading slowdown, stated as an explicit parameter rather than a hidden fit, brings it onto the measurement. Run it:

python examples/najmi_validation.py

The transfer matrix, briefly

Each layer of impedance Z, speed v, thickness d maps the acoustic state [v, p] through

M = [[cos(kd),     j sin(kd)/Z],
     [j Z sin(kd), cos(kd)    ]],   k = 2 pi f / v.

Stack the layers by matrix product; a Bragg stopband opens where each layer is a quarter wavelength. Because amorphous and crystalline GST have different sound speeds, the phase change moves the stopband, which is the tunable-filter idea.

Tests check physics, not just execution

python -m pytest tests -q
  • IDT peaks exactly at v / (2 pitch); first nulls scale as 1/n
  • the Najmi reference device lands within 1% with the documented loading
  • every layer matrix is unimodular; a half-wave layer is transparent for any Z
  • a lossless stack conserves energy, |r|^2 + |t|^2 = 1, across the band
  • a quarter-wave superlattice opens a real stopband and passes outside it
  • the crystalline stopband sits above the amorphous one, tuning range > 10%

Limits, stated plainly

  • 1D longitudinal model. It tracks propagation along the stack. It does not resolve the true Rayleigh-wave depth profile, piezoelectric coupling, or the full anisotropy of LiNbO3; the SAW velocity is supplied as a scalar.
  • Delta-function IDT. Centre frequency, bandwidth and sidelobes are captured; second-order effects (reflections between fingers, resistive and triple-transit loss) are not.
  • Electrode loading is a single scalar, not a computed metallisation ratio.
  • No electrical matching network, no temperature dependence.

For the full picture you still want an FEM or coupling-of-modes model; this is the fast first pass that gets the geometry roughly right before you spend the solver time.

Licence

MIT.

About

Analytic IDT + transfer-matrix models for SAW devices, validated to 0.3% against a measured LiNbO3 device

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages