Skip to content

Latest commit

 

History

History
112 lines (75 loc) · 3.39 KB

File metadata and controls

112 lines (75 loc) · 3.39 KB

FP_3D_4ceng Demo

Self-contained 2.5D finite-device SAW resonator simulation — LT + Al + SiO₂ + Poly-Si + Si

简体中文 · English

MATLAB Method License


Overview

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.


Run

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
Solve3DSAW

Outputs

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.


Geometry & physical parameters

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

Mesh generation

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


Files

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


Requirements

  • MATLAB R2023a or later
  • No additional toolboxes (single-process sequential sweep)
  • Gmsh + Python (one-off, only to regenerate the .m mesh; see above)

License

Released under the MIT License · Copyright © 2026 Shaoqing Duan