Welcome back to our monthly review of your support questions! Let’s take a look at the common support questions from March.
What do I do if I get the error no electrodes defined?
This error means that you are using the piez command to define electrodes yet there are no nodes assigned to your electrodes. This may occur for several reasons. Here are some things to try:
- Preview your model and ensure that your model is correct, especially around the electrode area. It is possible that your mesh may not be fine enough to model the electrodes, or perhaps you changed the geometry or mesh size after you defined the electrode.
- If you are working in Designer and using primitive shapes, check that their precedence is correct and that one is not overwriting another.
- Ensure that you are using piez node/nod2 correctly.
The following image shows what can happen when you change the mesh size after defining an electrode:
You can visualize the electrodes using the following code, after the piez command:
Make sure the electrodes are where you want them to be! You can also use plot matr piez to plot the model geometry and the electrodes together.
What is the difference between impedance boundaries and absorbing boundaries?
Our absorbing (absr) boundaries are advanced conditions designed to absorb energy at the boundaries for elastic and acoustic materials, linear and non-linear waves, and for multiple materials on the same boundary condition. It also works for broadband signals and various angles of incidence.
Impedance (impd) boundary conditions apply the mass and stiffness values of an infinite load of a given material on the boundaries stated. It works like an absorber for plane waves across a reasonable frequency range (300% fractional bandwidth), and is lower performance than absorbing BCs under some conditions, but is more stable in general.
Both can be used for fluids and solids. Some of the wave types in elastic media will not be properly absorbed with the impedance condition due to its limitation of primarily working with normal incidence waves.
What do I do when I get insufficient memory allocation?
If you run a model on the cloud but it fails due to insufficient memory allocation, the estimator has not assigned enough RAM for the job.
You are required to estimate your model before running it on the cloud both to check that there are no syntax errors that will cause your model to fail and also to find out how much RAM is required for the model. The estimator estimates how much RAM is required by running 1 timestep of the simulation locally on your computer. Unfortunately sometimes this is inaccurate, which is why we have the estimate override option.
We recommend you assign ~8 KB per element (so if you have 1 million elements, assign 8 GB of RAM). If that fails, slowly increase the number from there.
How do I define my own drive function?
In Analyst the data hist command is used to input digitized time history data into a user-specified Data Manager array. The format of the time history data must be one pair (time, data value) per record for the number of records. The data must also be free-format text form (i.e. text file or data file). An example of this format is as follows:
To put the data into an array, use the following code:
This code takes the first six lines of data from myfunction.txt and saves it into a Data Manager array with the name time_func1. You can then call this array in the func command to apply it to loads:
You can use this function in your load definition.
In Designer, the Time section in the Model Tree is where you can define your own drive function. Select the User Defined option in the drive function window and then load in the data file containing your drive function. Ensure this is in the same data format as described above. Also, ensure that your data is monotonic (all increasing or decreasing).
If you have any questions that have come out of reading this blog post, feel free to ask them on our forum!