Film Bulk Acoustic Resonator (FBAR)


Section 1 - What Will You Learn in This Tutorial?

In this tutorial we will learn how to simulate a 2D Film Bulk Acoustic Resonator (FBAR).  We will analyse the impedance and mode shapes of the device.

You will learn:

  • The basic simulation workflow in OnScale Designer
  • How to set up a 2D model
  • How to create a simple geometry
  • How to edit material properties
  • How to add circuits into a design
  • How to display and post-process results

What is an FBAR?: FBAR is an acoustically isolated device consisting of a piezoelectric material sandwich between two electrodes. FBAR devices using piezoelectric films with thicknesses ranging from several micrometres down to tenth of micrometers resonate in the frequency range of roughly 100 MHz to 10 GHz. Aluminium nitride and zinc oxide are two common piezoelectric materials used in FBARs. Common applications of FBARs is radio frequency (RF) filters used in phones and other wireless applications. Filters are made from a network of resonators and are designed to remove unwanted frequencies from being transmitted whilst allowing specific frequencies to be received. These networks are usually in half-ladder, full-ladder, lattice or stacked topologies. FBARs can also be used in sensor applications in this case when a device is subject to some form of mechanical pressure its resonance frequency will shift.

Section 2- Model Definition


Characteristics of the model:



Mesh Size:

20 elements per wavelength

Analysis Time:

2.7 us

Output Results:

- Y Displacement Mode Shape at 1.967 MHz


Material Data:


Code Name


Bulk Velocity 

Shear Velocity


Aluminium Nitride


3230 kg.m-3






10220 kg.m-3

6649.79 ms-1

3509.29 ms-1


Silicon, Generic


2330 kg.m-3

7526 ms-1

4346 ms-1



Note: Two of these materials were taken from the Project Materials Database. Molybdedum is created by the user as it is not in the Database.

Section 3 - Why This Simulation?

It is useful to use simulation when designing FBARs because the thickness of the electrodes and piezoelectric layer determine the frequency range in which the device can operate. It allows designers to optimise their design for frequency range, quality factor and many other key performance characteristics.

This 2D FBAR model provides a simple starting structure consisting of a piezoelectric active layer (Aluminum Nitride), Molybdenum electrodes and silicon substrate material at the sides of the air cavity. In this simulation, we apply a voltage across the AlN layer and analyse the resulting impedance and mode shapes.

Section 4 - The Simulation Process:

Let's go through the step by step tutorial and see how to simulate a 2D FBAR in OnScale!

Step 1 - Create a New Project

Open up OnScale in Designer Mode. The first step is to create a new project.

  1. Click New Project to open the New Project dialogue
  2. Enter Model Name
  3. Change working units to um 
  4. Set Model Type to 2D
  5. Click ... to choose a directory to save the project to
  6. Click OK to create the project.


Step 2 - Set the Frequency of Interest

First we will specify the frequency of interest.

  1. Select Project Settings in the Model Tree
  2. Expand the Frequency of Interest property
  3. Tick the box
  4. Enter a value of 1.9e9
  5. Expand the Frequency of Damping property
  6. Tick the box
  7. Enter a value of 1.9e9


Step 3 - Add the Materials from the Material DB

The second step is to add the required materials for the FBAR transducer to the Project Materials database.


Add electrode material

  1. Click + icon, next to Materials to open the Material Database
  2. Select Add New Material > Add Project Material
  3. Give the Material Description - Molybdenum
  4. Set Material Name to moly
  5. Select Material Category to be Metal
  6. Toggle the Damping property
  7. Set Density to 10220
  8. Set Bulk Velocity to 6649.79
  9. Set Shear Velocity to 3509.29
  10. Set Damping Units to dB/MHz/cm
  11. Set Bulk Attenuation to 0.1
  12. Set Shear Attenuation to 0.3
  13. Set Bulk Power Law to 1
  14. Set Shear Power Law to 1
  15. Select Save



Add piezoelectric material.

  1. Expand the 'Piezoelectric' materials dropdown
  2. Double click on 'Aluminium Nitride - aln' to add it to Project Materials



Now add the substrate material.

  1. Expand 'Misc' materials dropdown 
  2. Double click on 'Silicon, generic- si' to add it to Project Materials
  3. Set EpsX to 1
  4. Select Done


Step 4 - Create Basic Geometric Shapes

We will make use of the geometric primitive shapes available in OnScale to build the FBAR.


We will start by creating the substrate of the device. 

  1. Select Rectangle button
  2. Select primitive_1
  3. Set the Material property of primitive_1 to si
  4. Set the X End property to 230
  5. Set the Y End property to 2
  6. Right click in the workspace and select Reset View to snap the view to the geometry



Next we will add another rectangle to create the cavity.

  1. Right click primitive_1 and select Duplicate Selection
  2. Set the Material property of primitive_2 to void
  3. Set X Begin property of to 10
  4. Set X End property of to 220


Bottom Electrode

Next we will add another rectangle to represent the bottom electrode.

  1. Right click primitive_2 and select Duplicate Selection
  2. Set the Material property of primitive_3 to moly
  3. Set Y Begin property of primitive_3 to 2
  4. Set Y End property of primitive_3 to 2.4


Piezoelectric Layer

The piezoelectric layer is made from AlN in this example.

  1. Right click primitive_3 and select Duplicate Selection
  2. Set the Material property of primitive_4 to aln
  3. Set Y Begin property of primitive_3 to 2.4
  4. Set Y End property of primitive_3 to 3.2


Top Electrode

Lastly, we will add the top electrode.

  1. Right click primitive_4 and select Duplicate Selection
  2. Set the Material property of primitive_5 to moly
  3. Set X Begin property to 15
  4. Set Y Begin property to to 3.2
  5. Set X End property to to 215
  6. Set Y End property to to 3.6


  1. Right click primitive_5 and select Duplicate Selection
  2. Set Y Begin property of primitive_6 to 3.6
  3. Set X End property to to 17
  4. Set Y End property to to 3.8


  1. Right click primitive_6 and select Duplicate Selection
  2. Set X Begin property of primitive_7 to 213
  3. Set X End property to to 215


Step 5 - Define a Time Function

The next step is to add a drive function. We will use a Ricker Wavelet time function with a frequency of 1 GHz.

  1. Click '+' to open the Drive Function dialogue
  2. Change function type from Sinusoidal to Ricker Wavelet
  3. Set Drive Frequency to 1e9
  4. Click Insert to close the window. A record called timefunc_1 will be added to the Model Tree


Step 6 - Define a Circuit

It is now time to define a circuit.

  1. Click '+' to open the Circuit dialogue
  2. Select the line between points 2 and 3
  3. Set Element to Resistor
  4. Set Resistance to 0.001
  5. Select Insert to close window. A record called circuit_1 will be added to the Model Tree


Step 7 - Choose The Right Mesh Size

It is time to set up the meshing of the model. 

  1. Expand Mesh in the Model Tree
  2. Select Configuration
  3. Set Definitions to Advanced
  4. Set Elements per Wavelength to 20
  5. Set Mesh Velocity to Defined
  6. Set Value to 6000


Step 8 - Create Voltage Loads Between Electrodes and Piezo

We will now create loads on each side of the piezoelectric layer.


  1. Click '+' to open the Load dialogue
  2. Set Creation Mode to be Geometry Interface
  3. Set Geometry to primitive_4
  4. Set Interfacing Item to Background
  5. Select Create Load
  6. Repeat steps 3-5 for the following



Interfacing Item






Change the properties of the loads

Now that each load has been defined, we can set each load's properties.

  1. For load_1, set Load Type to Voltage
  2. Set Area Scaling to 0.0002
  3. Set Circuit to circuit_1
  4. Set Termination to timefunc_1
  5. Set Amplitude Scale Factor to 1
  6. Change Begin Y (μm) to 3.2 
  7. Change End Y (μm) to 3.2 
  8. Repeat Steps 1-5 for load_3
  9. Select load_2
  10. Set Load Type to Voltage
  11. Set Area Scaling to 0.0002
  12. Set Termination to Ground


Step 9 - Define the Boundary Conditions

We need to change the boundary conditions so that the tail of the transducer is fixed and the water load has absorbing boundaries.

  1. Click Domain Boundaries in the Model Tree
  2. Set X Minimum to Absorbing
  3. Set X Maximum to Absorbing
  4. Set Y Minimum to Fixed
  5. Set Y Maximum to Absorbing
  6. Set Z Minimum to Absorbing
  7. Set Z Maximum to Absorbing


Step 10 - Define the Type of Analysis 

We will now set the model simulation time to be 2.7 us seconds

  1. Click Analysis 
  2. Change Simulation Run Time to 2.7e-6


Step 9 - Define the Simulation Output Results

We will now define an output so we are able to see the displacement mode shape of the device at a 1.967 GHz.

  1. Click '+' to create a new output
  2. Set Output Type to Shape Data
  3. Set Array Type to Displacement
  4. Set Array Component to Y
  5. Set Frequency to 1.967e9


Step 12 - Run the Simulation on the Cloud

At this point the model is completely set up and it can now be run on the cloud.

  1. Click Run on Cloud 
  2. Select Estimate 
  3. Select Run


How to Get the Simulation Results?

Once the simulation has finished, the results are available in your storage to download.

  1. Click the Storage button to open the cloud storage
  2. Select your job from the dropdown menu
  3. Expand the simulation folder
  4. CTRL + select the -shape.flxdato & flxhst file, right click and select Download Selection


Choose an appropriate save location and close the cloud storage.

Step 13 - Check the Simulation Results

Switch to the Post Processor 

  1. Click this icon to access the Post Processor to analyse simulation results

Open Results 

  1. Click File Explorer
  2. Expand the job simulation folder
  3. Double click the data out file to open the mode shape results
  4. Double click the history file to open the time history results


Plot Impedance

  1. From Results Manager, select 'pize load3: Voltage'
  2. Select Impedance button
  3. Double click on 'Impd:load3.amp'
  4. Toggle Log yAxis
  5. Set xAxis Minimum to 1.8e9
  6. Set xAxis Maximum to 2.2e9


Plot Mode Shape at 1.967 GHz 

  1. Expand Mode Shapes
  2. Expand Mode-1
  3. Select ydsp
  4. Right click and select Plot Shape Movie
  5. Select Continue
  6. Set Scale Factor to 0.005
  7. Select Play button to play mode shape animation


Section 5 - Try for yourself 

Now that we have introduced you to the tutorial, try have a play around with some of the settings, add some other outputs, or use this model as a starting point of your own.

0 out of 0 found this helpful


  • Hey, I was trying to run this FBAR tutorial as my starting point on this tool. I went through to all the steps and when I click "Estimate", I get this error: "Your model failed to estimate due to a syntax error in the input deck. Please check you working directory for the '.prnt' file and rectify the issue."
    I tried repeating all the steps again, same problem seems to persist. I also tried "Preview Model" to see if what it gives, it throws an error "damping frequency is zero".
    What seems to be the problem?

    PS: There were few small documentation errors here and there (Step 2 shows 6 points but image has 7 points, Step 3 in Silicon shows expand "Metal" list but actually its "Misc", Step 4 bottom electrode material in the text shows to change to void but actually in the image shows moly)

  • Hi there, this sounds like a bug with the Material tool that we have seen recently which has been fixed in our current release. Try updating to OnScale (this can be downloaded from the OnScale portal). If the problem still persist with that version, let me know. Also thanks for pointing out the mistakes. These have been corrected.

  • Hey. So I updated to OnScale (which was bit of a hassle. I downloaded the latest .exe file and ran it, after which I opened OnScale and it still showed So I again tried it but to no luck. Then I had to uninstall it and install the latest version and it worked fine. Not sure if it is my systems issue or not). Having done that, I tried running the simulation again. This time "Preview Model" didn't show any error and neither did clicking "Estimate". But after I click "Estimate", the "RAM Required", "Model Solve time" & "Core Hours Required" doesn't show anything and "Run" button remains in inactive.

    Any way to solve this?

  • Hi,

    Try using estimate override which allows you to override the estimate.

    1. Go to the cog in the right hand corner to open options
    2. Go Cloud Account Configuration and tick the Enable Advanced Cloud Job Submission
    3. Select Apply and close window
    4. Open Cloud Scheduler and tick Estimate Override box
    5. Set Max Core Hour allowance to 2 and RAM Assignment to 10 GB
    6. Select Run

    Let me know if that is successful. I will look into why the estimate isn't showing anything, there should be at least a warning if more memory is required.

  • Hi,
    I tried overriding estimate. I was able to give the run but it Failed in like 15-20 seconds after clicking Run.

  • Could you send your model and all the supporting files to and I will look into this for you.

  • I sent the files to and they got back at me saying that in Step 9, I had put absorbing condition on xmin, xmax and ymax as the text suggested (but not the image in Step 9). I changed xmin, xmax and ymin to fixed and ymax to free. I was able to Run it now.

Please sign in to leave a comment.