Skip to content

MUTs 001 - PMUT array

In this example, ultrasound emitted by a 6x6 array of PMUTs (Piezoelectric micromachined ultrasonic transducers) is modeled and simulated.

6 x 6 PMUT array model

This example corresponds to the demo project 6x6 PMUT array

Simulation setup guide

Here you’ll find an example case level guide on modeling and setting up physics for a simple PMUT array in Quanscient Allsolve. See the last two steps for typical simulation options and visualizing results for harmonic ultrasound.

Variables

Allsolve supports inline variable creation, so variables can be created on the fly during modeling. Optionally, you can define all the variables first, and then move on to modeling.

Here is a list of all the variables used in this tutorial:

NameExpressionDescription
R100e-6Cavity radius
thmem10e-6Membrane thickness
thpiezo2e-6Piezo thickness
thcavity20e-6Cavity thickness
n6Array size (even numbers only)
Rair5*R*nAir bubble radius
freq1e6Frequency

Step 1 - Modeling

  1. Build one of the PMUTs by creating 3 cylinders in a stack:

single PMUT disc

NameElement typeCenter point (m)Size (m)Rotation (deg)
MembraneCylinderx: 0Radius: Rx: 90
y: 0Height: thmemy: 0
z: 0z: 0
NameElement typeCenter point (m)Size (m)Rotation (deg)
PiezoCylinderx: 0Radius: 0.67 * Rx: 90
y: 0Height: thpiezoy: 0
z: thmem/2+thpiezo/2z: 0
NameElement typeCenter point (m)Size (m)Rotation (deg)
CavityCylinderx: 0Radius: Rx: 90
y: 0Height: thcavityy: 0
z: -thcavity/2-thmem/2z: 0
  1. Use the Grid operation to make the 6x6 array of PMUTs:

6 x 6 grid of PMUTs

NameElement typeTarget volumesTranslationRepeat count
GridGrid operationall 3 cylinder volumes of the single PMUTx: 4*Rx: n
y: 4*Ry: n
z: 0z: 0
  1. Select all volumes in the grid and translate them so that your array is centered at the origin [0,0,0]:

Translated array

NameElement typeTarget volumesTranslation
TranslateTranslate operationAll volumes in the gridx: -4*R*(n-1)/2
y: -4*R*(n-1)/2
z: 0
  1. Build a sphere and 2 mostly overlapping boxes for the air bubble and baseplate:

Sphere & 2 boxes

NameElement typeCenter point (m)Size (m)
SphereSpherex: 0Radius: Rair
y: 0
z: 0
NameElement typeCenter point (m)Size (m)Rotation (deg)
BoxBoxx: 0x: 2*Rairx: 90
y: 0x: 2*Rairy: 0
z: Rair+thmem/2x: 2*Rairz: 0
NameElement typeCenter point (m)Size (m)Rotation (deg)
Box 2Boxx: 0x: 2*Rairx: 90
y: 0x: 2*Rairy: 0
z: Rair-thmem/2-thcavityx: 2*Rairz: 0
  1. Apply the Fragment all operation.

  2. Remove extra box and sphere sections (4 volumes in total, selected as in picture below). Remove 1

  3. Remove the cavity disc volume under each PMUT in the array. Remove 2

Step 2 - Materials

Proceed to the Properties section to define the model materials.

  1. Assign Air from the material library to the air bubble volume. Save the target as a shared region.
  2. Create a Geometry selector type shared region called pzt. Include the small top disc of each PMUT in the shared region. This is easiest to do by setting both Minimum size and Maximum size with one of the small discs. Use the Pick similar tool to select the disc for min and max size. pzt
  3. Assign PZT from the material library to the pzt shared region. PZT target
  4. Create a shared region called all, containing all volumes. It is easiest to do this by creating a computed region and picking the Complement of nothing. This way the all region is also updated if your geometry changes.
  5. Create a Computed region type shared region. Call it mono-si, and include all the remaining volumes, i.e. the membrane disc of each PMUT as well as the large circular baseplate. To pick these volumes easily, use the Difference operation. Select regions all, pzt and Air target for the operation. The difference of these regions yields the volumes highlighted below (air bubble hidden): Mono-Si target
  6. Assign Monocrystalline silicon from the material library to the mono-si shared region.

Step 3 - Physics

In total, 3 physics are used in this example: Elastic waves, Acoustic waves and Electrostatics. Add all of them to your project, after which you can move on to defining their interactions.

Physics 1 - Elastic waves

  • As elastic waves target, select all volumes except the air bubble.
  • Add a Clamp interaction.
    • As clamp target, select the baseplate volume.
  • Add the Elastic waves—Electrostatics coupling Piezoelectricity.
    • As piezoelectricity target, select the pzt shared region.

Physics 2 - Acoustic waves

  • As acoustic waves target, select the air bubble.
  • Add Perfectly matched layer.
    • As perfectly matched layer target, select the air bubble dome surface.
    • Set PML Type to AML.
      • AML is suitable for rounded surfaces such as an air bubble, whereas box PML is built for XYZ-aligned box surfaces.
  • Add the Acoustic waves—Elastic waves coupling Acoustic structure.

Physics 3 - Electrostatics

  • As electrostatics target, select the pzt shared region.
  • Add a Constraint interaction.
    • As constraint target, select the bottom surface of each PZT disc on the array, 36 in total. To avoid clicking a large number of surfaces manually, you can define a geometry selector shared region with a bounding box for the surfaces. To avoid picking the larger PMUT membrane surfaces that exist on the same plane, use Pick similar for max size. Constraint target
    • Set constraint value to 0.
  • Add a Lump V/Q interaction.
    • As lump V/Q target, select the top surface of each PZT disc on the PMUTs. Again, define a geometry selector shared region with a bounding box to save some clicks. Constraint target
    • Set Actuation mode to Voltage.
    • Set voltage to sin(2*pi*freq*t).

Step 4 - Meshing

  • Add a mesh with Mesh quality set to Expert settings.
  • Set Max size to 1e-4.
  • Save settings & mesh.

Mesh

Step 5 - Simulation options

Create a simulation with following options:

  • Set Analysis type to Harmonic.
  • Set Fundamental frequency to freq.
  • Set Number of FFT samples to 3.
  • Set Node count to 10.
  • As the Mesh, select the mesh you created.
  • For Inputs, create a sweep:
    • Create a Sweep override over variable freq.
    • Set Override expression to linspace(0.7e6, 0.9e6, 41).
    • Add the sweep to simulation inputs.
  • In Outputs, add:
    • u harmonic 2 field
      • Skin only
    • p harmonic 2 field
      • Skin only
    • See demo project for custom value output examples.

Step 6 - Results

In the Simulations section, add visualizations and plots as needed. The u field can be visualized in the air bubble using a slice filter for example:

Visualization example