2D Transducer Piezoelectric Load



This example demonstrates how to set up and run a model with a piezoelectric load and more complex outputs.

Note: Before following this example, please read 2D Transducer Pressure Load, which covers how to set up and run a 2D model of a transducer with a basic mechanical load.

This example covers:

  • Piezoelectric materials
  • Basic piezoelectric loads
  • More detailed model outputs

The files used in this tutorial are found at the bottom of this page!

Starting the Model

This example does not go into detail for the initial model setup. For a step by step guide follow Transducer 2D Pressure Load up to the load definition step. Alternatively, start working from the attached 'FLEX_transducer_2D_piezo_model_setup.jfpx' archived project file.

Before continuing with this example, the following steps should be complete:

  • Import geometry
  • Import and assign materials
  • Define model properties
  • Mesh and preview

Piezoelectric Load Definition

Define a new load on the top edge of the piezoelectric ceramic part: Model Tree > Model > Boundary Conditions > Loads > + > Click below the top edge of the part > Create Load

Define a second load on the bottom edge of the ceramic part: Model Tree > Model > Boundary Conditions > Loads > + > Click above bottom edge of the part > Create Load

Two loads should now be defined as shown below, with each load acting normal to the top and bottom edges of the part respectively:


Change the type of both loads to piezoelectric: Model Tree > Model > Boundary Conditions > Loads > CTRL + load_1 + load_2 > Properties > Load Type > Voltage

Just as a driving time function had to be assigned to the pressure load that was applied in the previous example, piezoelectric loads must be assigned terminations to create a drive circuit.

Create a time function of a 500 kHz Ricker Wavelet: Access the time function tool using either the ribbon menu (Tools > Tools > Time Function) or the model tree (Model Tree > Setup >  Forcing Functions > Time > +).

Assign timefunc_1 as the termination for load_1: Model Tree > Model > Boundary Conditions > Loads > load_1 > Properties > Termination > timefunc_1

Assign the termination for load_2 as ground, completing the drive circuit across the piezoelectric ceramic part: Model Tree > Model > Boundary Conditions > Loads > load_2 > Properties > Termination > ground

Area Scaling:

Area scaling must be applied to correctly define the surface area of an electrode. For a 2D model, the depth component which would exist along the z-axis in reality must be considered. In this case we will assume that the electrode has a total length of 0.02 m along the z-axis, providing us with a scaling factor to use.

Apply this scaling factor to both loads: Model Tree > Model > Boundary Conditions > Loads > load_1 + load_2 > Properties > Area Scaling > 0.02

For full 3D models and axisymmetric models, the area scaling factor can be left at the default value of 1. For other models, factors must consist of the following components depending on the model type:

  • Half model - scaled by a factor of 2
  • Quarter model - scaled by a factor of 4
  • 2D model - scaled by the missing dimension (in general the z-axis, as is the case in this example)

Note: A model with more than one of the above properties must include both scaling factors, for example a 2D half model must contain both the scaling factor for a half model and for the omitted dimension. Make sure to calculate an accurate area scaling factor for your specific model.

Poling Direction:

In addition to terminating each piezoelectric load, it is essential to set the poling direction of the piezoelectric material. This option is a material property which can be set from within the material tool.

Tip: It is important that the poling direction of the piezoelectric material is assigned correctly. For more advanced information on piezoelectric materials, see the Anisotropic and Piezoelectric Materials help article.

In this case we will set the poling direction along the positive global y-axis: Home > Materials > Project Materials > Expand pmt3 in Project Materials > Piezoelectric > Poling > Set to Y+

Boundary Conditions

Set all boundaries of the model to the absorbing type: Model Tree > Model > Boundaries Conditions > Domain Boundaries > Properties > Select each boundary in turn > Boundary Type > Absorbing

Model Outputs

Define three new outputs: Model Tree > Model > Outputs > +

Set the first output to minimum acoustic pressure: Output Type > Field DataField Type > MinimumArray Type > Acoustic Pressure

Repeat this step for the second output, this time assigning maximum acoustic pressure to the array type.

This was also done in the Transducer Pressure Load tutorial!

Displacement (Time History):

The third output will be a time history of displacement at a specific point. In this case we want to look at the surface of the piezoelectric part and the displacement along the y-axis.

First we must a find good location for the output. To do so, select the piezoelectric part and view the bounding information: Model Tree > Setup > Geometry > part_6 (piezoelectric part) > Properties > Bounding Information


From the bounding information, we can see that the center is at the origin of the x-axis. The top edge is located at a Y Maximum value of 0.023 along the y-axis.

These provide coordinates we can assign to the third output: Output Type > Time HistoryArray Type > DisplacementArray Component > YLocation > X > 0Location > Y > 0.023

The location of the time history output will be indicated with a marker placed at the defined coordinates on the geometry.

Piezoelectric Charge:

We also want to take a look at the charge on the top electrode, which is defined as load_1 in this example. There is, however, no need to define a new output for this. Voltage, charge and current outputs are already set up in the background when a piezoelectric load is defined.

Run the Model

Run Time and Analysis Properties:

To display the outputs that we just defined as the model runs, it is necessary to set up views in run time properties as shown below.

Set up three views: 

Model Tree > Run Time Graphics > Properties > Number of Views > 3

Define View 1: View 1 > Plot Type > ArrayArray Type > Acoustic Pressure

Define View 2: View 2 > Plot Type > Time HistoryTime History > Output 3

Define View 3: View 3 > Plot Type > ElectrodeElectrode > load_1Electric Output > Charge

We will keep the number of frames at 20, with no output format assigned.

The following analysis properties can be used, or alternatively default values are appropriate as long as the simulation run time is changed.

  • Limit CPU usage: Unchecked
  • Zoning: Off
  • Simulation run time: 2e-05
  • Precision type: Single Precision
  • Timestep factor: 0.95
  • Generate restart file: No


0 out of 0 found this helpful



Please sign in to leave a comment.