Self-contained 2.5D finite-device SAW resonator simulation — LT + Al + SiO₂ + Poly-Si + Si
简体中文 · English
A self-contained MATLAB demo simulating a 2.5D finite-device (FP) SAW resonator: a 21-period IDT with reflectors, discretized with 27-node hexahedral (Hex27) high-order elements. Floating-potential boundaries on the left/right device ends; Bloch periodic boundaries front/back to model the infinite-aperture limit. Stack: LiTaO₃ + Al + SiO₂ + Poly-Si + Si. Left, right and bottom complex-coordinate-stretched PMLs absorb outgoing waves.
A frequency sweep produces the Y₁₁ admittance curve.
This demo shares the solver core with sibling demos (FP_3D_1ceng/ … FP_3D_4ceng/); only the stack, pitch, and sweep range differ.
The repo uses shared top-level codes/ and mesh/; the driver auto-adds them to the MATLAB path.
cd FP_3D_4ceng
matlab -batch "Solve3DSAW"Or interactively in MATLAB:
cd FP_3D_4ceng
Solve3DSAWOutputs
| File / Figure | Content |
|---|---|
Y11.mat |
fre (301 frequency points), Q, Y |
| Fig. 1 | Mesh (colored by material region) |
| Fig. 2 | Displacement field |
| Fig. 3 | Electric potential |
| Fig. 4 | Y₁₁ admittance curve |
A 301-point sweep takes around 1 hour on a typical workstation (single process, no Parallel Computing Toolbox required); Hex27 node count ≈ 67 K.
| Item | Value |
|---|---|
| Stack (substrate → top) | LiTaO₃ + Al + SiO₂ + Poly-Si + Si |
| Electrode | Al (21-period multi-finger IDT) |
| Pitch | 1.0 µm |
| Element | Hex27 (27-node high-order hexahedron) |
| Boundary | Floating potential (L/R ends) + Bloch periodic (F/B) |
| Outer absorption | PML (complex-coordinate-stretched, L/R/bottom) |
| Sweep range | 1.80 – 2.10 GHz |
| Number of frequency points | 301 |
| Mesh node count | ≈ 67 K |
The MATLAB mesh .m file is large and easy to regenerate, so it is not shipped with the repo. Generate it once via the Gmsh .py source:
# Requires Gmsh (https://gmsh.info) and Python with the gmsh module
python mesh/FP_3D_4ceng.py
# This script produces mesh/FP_3D_4ceng.m, which the driver loads via
# FP_3D_4ceng;If the run machine lacks Gmsh / Python, generate FP_3D_4ceng.m elsewhere and copy it into mesh/.
FP_3D_4ceng/
├── Solve3DSAW.m Main driver (auto-adds ../codes, ../mesh to path)
├── initial_material_parameters.m Material parameters
├── initialPML.m PML initialization (complex-stretched)
└── readmesh.m Mesh reader
(Shared top-level codes/ and mesh/ — see the repo root README.)
- MATLAB R2023a or later
- No additional toolboxes (single-process sequential sweep)
- Gmsh + Python (one-off, only to regenerate the
.mmesh; see above)
Released under the MIT License · Copyright © 2026 Shaoqing Duan