This example demonstrates how to set up and run a model to look at wave propagation for a simple transducer submerged in water, driven by a mechanical pressure load.
This example covers:
- Importing 2D geometry
- Material import and assignment
- Setup of model properties
- Basic pressure loads and driving functions
- Boundary conditions
- Model outputs
- Setup of run time and analysis properties
The files for this tutorial can be found at the bottom of this page!
Import Transducer Geometry
Import the STEP file 'CAD_transducer_fluid_body_2D.STEP' using the Import Geometry dialog, accessed through Home > Model > Import Geometry. This file contains geometry of 2D surfaces bodies that represent a cross-section view of the transducer.
The feature resolution factor is set to 0.1, all of the other settings are left unchanged.
Click Import and the geometry should be displayed in the workspace as shown below.
Material Import and Assignment
Add the materials listed below to the project materials database. To do so, access the material tool through the ribbon menu: Home > Materials > Project Materials
- Housing: Metal > Stainless Steel (stst)
- Matching: Epoxy > Vantico HY1300/CY1301 (hard)
- Ceramic: Piezoelectric > CTS 3203HD (pmt3)
- Backing: Epoxy > Backing, tungsten loaded epoxy 25%vf 10MRayl (back25)
- Encapsulant: Rubber > Urethane (uret)
- Water: Fluid > Water at 25C (watr)
With the required materials imported, each can then be assigned to the appropriate part using the model tree: Model Tree > Setup > Geometry > Part > Properties > Material
To identify a part number, a part can be clicked in the rendered view to highlight the part name in the model tree.
Model Property Definition
Frequency of Interest:
A frequency of interest must be defined for the model; in this case the transducer will be operating at 500 kHz. To set this value go to Model Tree > Project Settings > Properties > Properties > Frequency of Interest (Optional). Click the check box and click the arrow to manually define the frequency in units of Hz.
This is now a good stage to have a first look at the mesh definition for the model. Although the geometry was meshed (unstructured grid) at the time of import, a new mesh (structured grid) must be generated for the model to run.
These properties can be found through Model Tree > Model > Mesh > Properties. The properties of interest here are Mesh Velocity and Elements Per Wavelength; the background material will be left as void for this model.
By default, the mesh velocity is set to the slowest bulk velocity of materials in the project database. This value should be set based on the materials used in the model, and is used to calculate the minimum wavelength upon which the structured mesh is defined.
In this case urethane has the lowest wavespeed with a 500 m/s shear velocity. However, as we are interested in modelling the wave propagation through the water, we will set the minimum wavespeed equal to the bulk velocity in the water which is 1496 m/s. This will reduce the number of elements in the model by around a factor of 3, compared to using the wavespeed value for urethane.
From the minimum wavespeed and the previously defined frequency of interest, we can calculate a minimum wavelength for the model (v=f*lambda) to be approximately 3 mm.
Set the minimum wavespeed: Model Tree > Model > Mesh > Properties > Change to Defined > Enter 1496 as the value
Elements per wavelength sets the number of structured elements that will be generated based on the minimum wavelength. It is recommended this this be set to at least 15 to arrive at a good solution.
Thus, for our geometry of 70 x 140 mm, an estimate for the total number of elements can be given as 350 along the x-axis and 700 along the y-axis, 245000 elements in total.
Set the elements per wavelength: Model Tree > Model > Mesh > Properties > Elements Per Wavelength > Enter 15 as the value
The model has now been built to a stage where a preview can be generated. A preview is a useful way to check that the model is defined correctly in terms of the geometry, materials and grid.
Generate a preview: Home > Preview > Preview Model
The next step is to apply a load to the model. This example demonstrates the application of a mechanical pressure load to the interface between the ceramic and matching layers.
To define a new load follow Model Tree > Model > Boundary Conditions > Loads > +, this will bring up the Load Definition dialog
Use edge for the selection mode.
With the dialog window open, click on the matching layer close to the interface between this part and the ceramic part. Arrows will appear to indicate where the load is applied.
Click Create Load to confirm then Close the dialog.
Now the load will be visible in the model tree. The load type must then be set to a pressure load: Model Tree > Model > Boundary Conditions > Loads > load_1 > Properties > Load Type > Pressure
A time function must be assigned to drive a load, but first this has to be defined. Access the time function tool using either the ribbon menu (Tools > Tools > Time Function) or the model tree (Model Tree > Forcing Functions > Time > +).
In the tool window, select a Ricker Wavelet from the dropdown menu as shown and change the drive frequency to 500 kHz.
Click Insert to add the time function to the model.
The driving function can then be assigned to the load through the model tree in the same way that the load type was defined previously: Model Tree > Model > Boundary Conditions > Loads > load_1 > Properties > Time Function > timefunc_1
With the load fully defined, some boundary conditions must be set up. Access these properties through Model Tree > Model > Boundary Conditions > Domain Boundaries > Properties, then click through each boundary name to change the type that is assigned (e.g. X Minimum > Boundary Type > Absorbing).
This model is 2D with no symmetry, and as such all relevant boundary types can be set to absorbing which will eliminate any reflection at these boundaries; z-axis boundaries are not applicable as the model is 2D.
The model is now fully defined, but before running the model we will want to define some outputs that provide useful data. In this case we will take a look at the acoustic pressure field to see the wave propagation in the water fluid body.
Create a new output: Model Tree > Model > Outputs > +
Edit the properties of this output: Model Tree > Model > Outputs > output_1 > Properties
To calculate an output for the acoustic pressure minimum field data, set: Output Type > Field Data; Field Type > Minimum; Array Type > Acoustic Pressure
To calculate the field data for maximum acoustic pressure, define a new output and repeat the process above for the different field type.
Two outputs should now be defined in the model tree.
Run Time and Analysis Properties
The last step before running the model is to define the run time and analysis properties.
To view the model as it runs, we will want to define a new view: Model Tree > Run Time Graphics > Properties > Number of Views > 1
The number of frames is how many snapshots will be generated in the view window across the total run time of the model. For example, if the model has a run time of 1 ms then a new frame will be shown every 1/n ms, where n is the number of frames.
Set up the view to plot the acoustic pressure field: Model Tree > Run Time Graphics > Properties > View 1 > Plot Type > Array; Array Type > Acoustic Pressure
Finally, to access the analysis properties follow: Model Tree > Model > Analysis > Properties
The simulation run time can be adjusted depending on how long you wish to simulate the transient model for. In this example, we will run the model for 0.02 ms. The rest of the options are left at the default values.
Change the simulation run time: Model Tree > Model > Analysis > Properties > Simulation Run Time > Enter 2e-05 as the value
Run the Model
The model can now be run: Home > Run > Run Local
An output for the acoustic pressure field will be shown in the runtime graphics window as below.