OnScale Blog

Our blog covers tips for using OnScale, new features and developments, and upcoming events and webinars.  Subscribe and get the latest posts in your inbox.

All Posts

How to Build Arrays in OnScale

One of the inherent problems with old legacy FEA software is the inability to run large problems – for example legacy simulation packages lack the capability to simulate large arrays in full 3D . This has stunted the development of devices such as PMUTs as the full systems couldn’t be properly simulated.

With OnScale, 3D array simulations can be carried out. While single cell results are useful, the ideal workflow would go much further. OnScale's ability to solve large problems allows designers to move beyond the initial single cell models and begin to consider the affect of the array configurations. Using PMUTs as an example designers are now using OnScale to simulate PMUT arrays with the full display stack up, allowing them to assess the impact of manufacturing tolerances on imaging arrays

So, the question is - how do I build an array in OnScale? This post will be focused on how to build array models in the Analyst mode as it provides a lot more flexibility to you the user. We will go through the steps necessary in order to build out an array.

Building Arrays

Using Analyst mode allows designers to quickly go from modelling a simple unit cell model to simulating a full 20x20 array.

Before we go into how easy this is to implement in OnScale we will go over a few things that you should be familiar with if you are already using OnScale if not there will be links to where you can get more information.

Declaring variables: OnScale uses its own scripting language SYMB (symbol) it’s an interpretive language that was developed specifically to handle I/O communication with the Flex family of codes. It is a high-level language that is based on FORTRAN. You need to know how to declare variables in SYMB this is very easy:

SYMB Language

Simple. It really is as easy that. If you would like more information on the benefits of scripting and the SYMB language check out our help center!

Keypoints – What and Why: Keypoints are specific points in your model that identify important geometry considerations. They are used both to define XYZ coordinates and IJK nodal locations at each point of the model. OnScale has a few built in SYMB commands that fall under SYMB #KEY that provide an expedient way to quickly define keypoint symbols for standard portioned models.

For more information on all things keypoint related check out our help centre articles on keypoints – you should be using keypoints in all the models you simulate.

Now that we have touched on these two things, we will look at how you can take a simple unit cell model and quickly use variables, and a few built in SYMB commands to pattern out the unit cell into a full array structure. Figure 1 shows the model that we will be looking to pattern out and the model file be provided on this post.

PMUTFigure 1. Single element PMUT (left) Cross-sectional structures of PMUT element

The model will be patterned out along the X and Y axis so we will define two variables these variables will control how many elements we have in each row and column:

elementsFigure 2. ncopyi control how many elements will be patterned out along the x-axis, ncopyj controls the number of elements along the y-axis

Having done this, we will use conditional branching constructs in the form of an IF statement to increase our grid extents to accommodate the size of the array we would like to build. Now by using the IF statements if we want to revert to a single element PMUT all we need to do is change both the variables we have defined back to 1.

keypointFigure 3. We have defined 7 keypoints with #KEYCORD and we are copying from the first to last keypoint ncpoy times using #KEYCOPY

Having set up our new grid to accommodate the array all we have to do is pattern out the materials we have already assigned to the grid there are two commands that enable this for this we are going to use SITE REGNDUPL and again just like our keypoints we are going to wrap this command in an IF statement for the same reason as before.

elementFigure 4. Copies out the single element along the x and y axis respectively
After that all you need to do is set up a GRPH command for plotting and you will see that you now have a 10x10 PMUT array.
PMUT Array Figure 5. 10x10 PMUT Array

Having done this all that is left to do is assign boundary conditions and simulate the array on the cloud. We won’t be doing that here though the output of PMUT array simulations can be fed directly into imaging algorithms to help improve performance.

For designers looking to simulate array structures this methodology can be applied to any model correctly if you keypoint your geometry appropriately.

We recently hosted a joint webinar with Silterra on reducing time to market for fingerprint sensors with cloud simulation, check it out here!


Get Started With OnScale Today



Oliver Mashari, Application Engineer at OnScale
Oliver Mashari, Application Engineer at OnScale
Oliver Mashari is an Application Engineer at OnScale. As part of our engineering team he assists with developing applications, improving our existing software and providing technical support to our customers.

Related Posts

Phased Arrays for NDT: Adding Delay Laws to 2D Array Simulations

Ultrasonic phased array testing is a powerful non-destructive testing (NDT) technology which is growing rapidly.

Time of Flight Diffraction

Time of Flight Diffraction is a reliable method of non-destructive ultrasonic testing used to look for flaws in welds. In Time of Flight Diffraction (TOFD) systems, a pair of ultrasonic probes reside on opposite sides of a weld-joint or area of interest. A transmitter probe emits an ultrasonic pulse, which is captured by the receiver probe on the opposite side. In an undamaged part, the signals picked up by the receiver probe are from two waves: one that travels along the surface (lateral wave) and one that reflects off the far wall (back-wall reflection). When a discontinuity such as a crack is present, there is a diffraction of the ultrasonic sound wave from the top and bottom tips of the crack. Using the measured time of flight of the pulse, the depth of the crack tips can be calculated automatically by trigonometry. This method is more reliable than traditional radiographic, pulse echo manual UT (Ultrasonic Testing) and automated UT weld testing methods.

Fundamental Modes of Operation of Piezoelectric Devices

In the previous two blog posts the physical basis of piezoelectricity and the main groups of materials were presented, focusing on the selection of a material for a specific purpose. In this blog post we discuss in what configuration piezoelectric materials can be used and illustrate some example device structures.