Quite often in OnScale the use of multiple materials with the same properties, but with different names, can greatly simplify the construction and implementation of a simulation. The most common example of this practice is used for defining pressure loading conditions that are non-orthogonal to the grid.
In the image below, the entire grid will have the same material properties (in this case that of water that supports nonlinear propagation), however the green material will have the name 'watrnl' and the blue material 'watrnl2' which allows the user to use the interface of these materials as a simple loading mechanism through plod sdf2.
Materials can be copied as many times as necessary through the matr copy command. Quite often writing this in a simple loop is an easy way to create individual elements for phased array operations. However, in this case, it can also be useful to create 'dummy' materials to copy and load.
Dummy materials are materials that have been defined without any mass of stiffness properties (they are effectively 'void'), or have the same properties as an adjoining material, but as they have a name we can use then in the model as part of commands.
The advantage of 'dummy' materials with plod sdf2 and no stiffness is that the pressure wave will propagate in one direction only. Very useful for loading models near boundary conditions.
/* create dummy materials for pressure loading purposes
prop dum1 0. 0. 0.
/* loop through 31 times and create 32 dummy materials in total
/* to represent 32 elements of an array
do loop i 2 32 1
copy dum1 dum$i
Using material interfaces in this manner is very powerful, and can be accessed for various circumstances such as:
- piezoelectric loading - piez nod2
- rigd boundary conditions - rigd node
- average pressure - calc avrg
matr copy is also useful for creating multiple instances of a piezoelectric material that has to be poled in various directions. Assuming you have already defined a variety of axes (angle$I) and the various matrices for your original piezoelectric material (pzt):
do loop i 1 $num_angles 1
copy pzt pzt$i
axis pzt$i angle$i
Here are some examples which show these methods in action. You can download the examples from the bottom of the following pages:
Copying example - https://support.onscale.com/hc/en-us/articles/360006667651