|Published on:||September 24th, 2019|
|With:||Eric Miller, Joe Woodward, Doug Oatis, & Ted Harris|
In this episode, your host and Co-Founder of PADT, Eric Miller is joined by PADT’s simulation support manager Ted Harris, specialist mechanical engineer Joe Woodward, and simulation support & application engineer Doug Oatis for a discussion on what is new in ANSYS 2019 R3 with regards to the mechanical solver, element, and contact enhancements.
If you would like to learn more about what’s new in this latest mechanical release, check out our webinar on the topic here: https://www.brighttalk.com/webcast/15747/371263
If you have any questions, comments, or would like to suggest a topic for the next episode, shoot us an email at firstname.lastname@example.org we would love to hear from you!
By watching this webinar you will learn:
One way to really unleash the power of APDL is to become familiar, and ultimately fluent, with array parameters. The APDL student will quickly learn that array manipulation involves heavy use of the *V commands, which are used to operate on vectors (single columns of an array). These commands can be used to add two vectors together, find the standard deviation of a column of data, and so on. *V commands consist of what I like to refer to as “action” commands and “setting” commands. The action commands, such as *VOPER, *VFILL, and *VFUN * have their own default behaviors, but these defaults may be overridden by a preceding setting command, such as *VABS, *VLEN, or *VMASK.
*VMASK is one of the most useful, but one of the most difficult to understand, *V command. At its essence it is a setting command that directs the following action command to a “masking” array of true/false values. Only cells corresponding to “true” values in the masking array are considered for the array being operated on in the subsequent action command.
For example, a frequently used application of *VMASK is in the compression of an array—for instance to only include data for selected entities. The array to be compressed would consist of data for all entities, such as element numbers, x-locations for all nodes, etc. The masking array would consist of values indicating the select status for the entities of interest: 1 for selected, –1 for unselected, and 0 for not even in the model to begin with. Only array cells corresponding to a masking array value of 1 would be included in the compression operation, with those corresponding to a value or 0 or –1 being thrown out. Here is a slide from our APDL training class that I hope illustrates things a little better.
What we’ve learned so far is that the masking array contains a list of true/false (or not true) values to refer to when performing its vector operation. But actually, it’s much more general than 1, 0, and –1. What *VMASK does is include cells corresponding to all positive numbers in the masking array (not just +1) and exclude cells corresponding to all values less than or equal to zero in the masking array (not just 0 and -1), which broadens the possibilities for how *VMASK can be handy.
Everything I’ve used *VMASK for up to this point in my career has involved array compression, and I figured I’d be put out on a sweep meshed ice floe into a sea of CFD velocity streamlines (that’s what happens to old CAE engineers; you didn’t know that?) before I came up with anything else. However, I recently ran into a situation where I needed to add up just the positive numbers in an array. I was about to construct an algorithm that would test each individual number in the array to see if it was positive and, if so, add it to the total. It would’ve been cumbersome. Then I came up with a much less cumbersome approach: use the array as it’s own masking array and then perform the addition operation. Let’s look at an example.
Take the following array:
The sum of all values in the array is 1.5 whereas the sum of just the positive values is 11.5. What’s the most efficient way to have APDL calculate each?
In the case of summing all values in the array, it’s easy, just simply execute
which gives you
But what about summing just the positive values? That’s easy, just use SUM_EXMPL as its own masking array so that only the positive values are included in the operation.
Now why was I doing this? I had to create a macro to calculate total nodal loads for an unconstrained component in just the positive direction (to ignore the loads counteracting in the negative direction), and this was my approach. Feel free to download the macro: facelds.mac and try it out yourself.
In this article you will learn:
Recently I was working in the ANSYS Workbench interface within the Mechanical application running a Transient Structural analysis. I began my run thinking that my workstation had the necessary resources to complete the analysis in a reasonable amount of time. As the analysis slowly progressed, I began to realize that I needed to make a change and switch to a computer that had more resources. But some of my analysis was already complete and I did not want to lose that progress. In addition, I wanted to be sure that I could monitor the analysis intermediately to ensure that it was advancing as I would like. This meant that however I decided to proceed I needed to make sure that I could still read my results back into Mechanical along with having the capability to restart again from a later point. Here were my options.
1: I could use the Remote Solve Manager (RSM) to continue running my analysis on a compute server machine. Check out this article for more on that.
I did use RSM in part but perhaps you do not have RSM configured or your computer resources are not connected through a network. Then I will show the other option you can use.
2: A Multi-Frame Restart using MADPL in ANSYS Batch mode
Here’s the process:
1. Make note of the current load step and last converged substep that your analysis completed when you hit the Interrupt Solution button
3. Write an MAPDL input file with the commands to launch a restart and save it in the Working Directory on the computing machine (save with extension *.inp)
Below is an example of an input that will work well for restarting an analysis, but feel free to adjust it with the understanding that the ANSYS Programming Design Language (APDL) is a sophisticated language with a vast array of capability.
4. Start the MADPL Product Launcher interface on the computing machine and:
a: Set Simulation Environment to ANSYS Batch
b. Navigate to your Working Directory
c. Set the jobname to the same name as that of the *.rdb file
d. Browse to the input file you generated in Step 3
e. Give your output file a descriptive name
f. Adjust parallel processing and memory settings as desired
6. Write “nonlinear” in a text file and save it as jobname.abt inside the Working Directory to cleanly interrupt the run and generate restart files when desired
Read more about the jobname.abt functionality in the Help Documentation links at the end of this article.
8. Back in the Mechanical application, highlight the Solution branch of the model tree, select Tools menu>Read Results Files… and navigate to the Solver Files Directory and read the updated *.rst file
After you have read in the results file, notice that the restart file generated from the interruption through the jobname.abt process appears as an option within the Mechanical interface under Analysis Settings
9. Review intermediate results to determine if analysis should continue or if adjustments need to be made
10. Repeat entire process to continue analysis using the new current loadstep and substep
Here are some useful Help Documentation sections in ANSYS 15 for your reference:
And, as always, please contact PADT with your questions!
We got our monthly report from Amazon on our book “Introduction to the ANSYS Parametric Design Language (APDL)” and we noticed that it has been one year since we published it. This was our first foray into self publishing so we thought it was worth noting that it has been a year.
Being engineers, we are kind of obsessed with numbers. The first number is a bit discouraging, 194 units sold. That is not going to make any best seller lists (more on lessons learned below). 51% were sold on Amazon.com, 19% by Amazon Europe, and 16% on Amazon UK, with 13% sold by non-Amazon affiliates.
This is our first time doing self publishing we have learned some lessons worth sharing:
If you are one of the select few, maybe write a review and help us out a bit?
One of the cool features in the ANSYS Workbench is the ability to set up a design study and kick off a bunch of runs that bring back key parameters. This is great for a design exploration but sometimes you actually would like a result plot, or maybe the info in a text file as well. When a design study is done, unless you tell Workbench to save all your run files, it deletes all the files.
To do the posting on ICEM CFD in the workbench project page, I needed to do just that, so I thought I would share my method in case others want to use it.
The way I do it is pretty simple:
Here is what it looks like:
See how it uses /inquire to get the directory, then strpos(), strsub(), and strcat() to get the design point name. Then it simply changes the file name, does a /show,png and plots. The results are copied using a system command.
Two important things to note:
You can attach this to a MAPDL system or as a code snippet.