Understanding Honeycomb Structures in Additive Manufacturing – Three Papers from ASU and PADT

PADT is currently partnering with Arizona State University’s 3DXResearch group on exploring bio-inspired geometries for 3D Printing. As part of that effort, one of our engineers involved in the project, Alex Grishin, PhD, was a co-author on several papers that have been published during this project.

Below is a brief summary from Alex of each article, along with links.


An Examination of the Low Strain Rate Sensitivity of Additively Manufactured Polymer, Composite and Metallic Honeycomb Structures

PADT participated in the research with the above title recently published in the open-access online journal MDPI ( https://www.mdpi.com/1996-1944/12/20/3455/htm ). This work was funded by the America Makes Program under a project titled “A Non-Empirical Predictive Model for Additively Manufactured Lattice Structures” and is based on research sponsored by the Air Force Research Laboratory under agreement number FA8650-12-2-7230.

Current ASU professor and former PADT employee Dhruv Bhate was the Lead Investigator and wrote the original proposal. Dhruv’s research interests involve bio-inspired design (the study of structures found in nature to help inform human design efforts) and additive manufacturing. Dhruv is particularly interested in the bulk properties of various lattice arrangements. While investigating the highly nonlinear force-deflection response of various additively manufactured honeycomb specimens under compression, Dhruv discovered that polymer and composite honeycombs showed extreme sensitivity to strain rates –showing peak responses substantially higher than theory predicts at various (low) strain rates. This paper explores and quantifies this behavior.

The paper investigates hexagonal honeycomb structures manufactured with four different additive manufacturing processes: one polymer (fused deposition modeling, or material extrusion with ABS), one composite (nylon and continuous carbon fiber extrusion) and two metallic (laser powder bed fusion of Inconel 718 and electron beam melting of Ti6Al4V). The strain rate sensitivities of the effective elastic moduli, and the peak loads for all four processes were compared. Results show significant sensitivity to strain rate in the polymer and composite process for both these metrics, and mild sensitivity for the metallic honeycombs for the peak load.

PADT contributed to this research by providing ANSYS simulations of these structures assuming viscoplastic material properties derived from solid dog-bone test specimens. PADT’s simulations helped provide Dhruv with a proposed mechanism to explain why INSTRON compression tests of the honeycomb structures showed higher peak responses (corresponding to classical ultimate stress) for these specimens than the solid specimens.


Bioinspired Honeycomb Core Design: An Experimental Study of the Role of Corner Radius, Coping and Interface

PADT participated in the NASA-funded research with the above title recently published in the open-access online journal MDPI (https://www.mdpi.com/2313-7673/5/4/59/htm ). This work was guided by former PADT engineer and current ASU Associate Professor Dhruv Bhate.  Professor Bhate’s primary research interests are Bio-Inspired Design and Additive Manufacturing. It was only natural that he would secure a grant for this research from NASA’s  Periodic Table of Life ( PeTaL) project. To quote from the website, “the primary objective…is to expand the domain of inquiry for human processes that seek to model those that are, were or could be found in nature…”

This paper focuses on the morphology of bee honeycombs found in nature –the goal being to identify key characteristics of their structure, which might inform structural performance in man-made designs incorporating similar lattice structures. To this end, the paper identifies three such characteristics: The honeycomb cell corner radius, the cell wall “coping” (a localized thickening of the cell wall at the mouth of each cell seen in a lateral cross-section), and the cell array “interface” (a zigzag pattern seen at the interface of two opposing, or “stacked” arrays).

Most of this work involved material testing and measuring dozens of natural honeycombs (most coming from various museums of natural history found in the United States) at ASU’s state-of-the-art facilities. PADT  contributed substantially by verifying and guiding tests with simulation using the ANSYS suite of software.


A Comparison of Modeling Methods for Predicting the Elastic-Plastic Response of Additively Manufactured Honeycomb Structures

PADT participated in this research found in the reviewed article published in Proceedings of the 29th Annual International Solid Freeform Fabrication Symposium – An Additive Manufacturing Conference.

Figure 14. (left) 2D plane strain model with platens connected to honeycomb with frictional contacts and (right) close-up of an individual cell showing the mesh size as well as corner radius modeled after experimental measurements

The lead investigator was current ASU professor and former PADT employee Dhruv Bhate, whose research interests involve Bio-Inspired Design (the study of natural structures to help inform human design processes) and Additive Manufacturing. In this research, Dhruv investigates discrepancies between published (bulk) material properties for the Fused Deposition Modeling (FDM) of ABS honeycomb structures. The discrepancies arise as substantial differences between published material properties, such as Young’s Modulus and yield stress, and those determined experimentally from FDM dog-bone specimens of the same material (which he refers to as “member” properties).

Figure 4. (left) Homogenization enables the replacement of a cellular material with a solid of effective properties, (right) which can greatly reduce computational expense when simulating engineering structures

PADT’s role in this research was crucial for demonstrating that the differences in base material characterization are greatly exacerbated in nonlinear compression simulations of the ABS honeycomb structures. PADT used both the manufacturer’s published properties, and the dog-bone data to show substantial differences in peak stress under the two assumptions.

https://www.scopus.com/record/display.uri?eid=2-s2.0-85084948560&origin=inward&txGid=a19776da6deb7846e12bc8f7573181ab

6 – An update on outputting results in Ansys Mechanical: 3D Printing Results

To support some new marketing efforts I had to make some different types of results output from models in Ansys Mechanical:

  • A 3D plot on a webpage
    Post 5
  • A physical printout on our 3D Printer
    Post 6

All of the posts are here.

This post is the final, of six, and we finally get to the topic that we get the most questions on: “How do I convert my Ansys Results to a 3D Printed Model.” This article will cover taking Ansys Mechanical FEA results, stress, vibration, and heat transfer, and make a cool 3D plot on Stratasys full-color printers. The process should work on other color printers, but we have only tested it with Stratasys.

3D Printing and Color

Since the beginning of 3D Printing, we have been using a file format called STL. The format only contains the external surface of an object represented as triangles, and it does not support color. But there is good news, a new format, 3MF, or 3D Manufacturing Format was recently introduced to replace STL. It is one of several 3D formats that contain not only triangles on the surface of an object, but they support color information for each triangle. 3MF is for 3D Printing. PLY, OBJ, X3D, and others are for rendering and viewing.

But there is bad news. At this time (2020 R2), no Ansys products support 3MF. So we need to get our results into a format that Stratasys can read color data from, which is the latest version of OBJ. Because of this, we will use our favorite Ansys post-processor, EnSight, to create a PLY file, then an open-source 3rd Party tool, Meshlab, to make an OBJ.

Note 1: As soon as Ansys supports 3MF or OBJ or someone adds a 3MF/OBJ ACT Extension, we will update this article.

Note 2: The steps below are actually covered in the post in Post 2 on how to use EnSight and Post 5 on how to make usable 3D result files. But I’ll repeat them here since you may have only come to learn how to make a 3D result file.

Step 1: Get what you want to print as PLY in Ansys EnSight

Ansys Ensight is a powerful tool that does so much more than make 3D result files. But we will focus on this particular capability because we can use it to get our 3D Printed results.

In Post 2 of this series, I go over how to get a high-quality 2D image from EnSight. Review it if you want more details or if you run into problems following these steps.

Before we get going, one key thing you should know is that Ansys EnSight reads a ton of formats, and one of them is the result files from Ansys Mechanical APDL. So we will start with getting that file.

The program reads Ansys Mechanical APDL result files. These are created when you run Ansys Mechanical and are stored in your project directory under dp0/SYS/MECH and is called file.rst or file.rth. I like to copy the result file from that directory to a folder where I’m going to store my plots and also rename it so I know what it is. For our impeller model, I called it impeller-thin-modal-1.rst.

Once you have your rst file, go ahead and launch EnSight.

That brings up a blank sessions. To get started click File > Open

This will bring up a dialog box for specifying a results file. If you click on the “File type:” dropdown, you will see the long list of supported files it can work with. Take a look while you are there and see if any other tools you use are listed. Of course, Ansys FLUENT and CFX are in there.

But the one we want is Ansys Results (*.rst *.rth *.rfl *.rmg). Chose that, then go to the directory where you put your Ansys result file.

EnSight will read the file and put it in a Case. It will list the results as Part 0 under Case 1.

The left part of the screen shows what you have to work with, and the right shows your model. The “Time” control, circled in green, is where you specify what time, substep, or mode you want. The “Parts” control lets you deal with parts, which we really won’t use. And the “Variables” control, circled in orange, is how you specify what result you want to view.

We want to plot deflection, which is a vector. Click on the + sign next to Vectors, and you get a list of what values you can show. The only supported result for model analysis is Displacment__Vibration_mode. Click on that. Then hold down the right mouse button and select “Color Part” > All.

This tells the program to use that result to shade the part. You should now see your contour.

Our example is a modal result. If you use a structural result file, you will be able to plot the displacement vector, as well as many stress results, under “Scalars”

By default, EnSight shows an undeformed object. If you want to see the deflected shape, click on the part then on the “Displacement” icon above the graphics window. Select the vector result you want to use, displacement in this case. Note, the default displacement factor may not be a good guess, change that till you get the amount of deflection you want.

Note, the default displacement factor may not be a good guess, change that till you get the amount of deflection you want.

The other thing you may want to change is the contours. It has a full library of colors you can change to, but I like the default. What I don’t like is that the min and max may not be where I want them, especially for modal deflection results. The min and max values are the min and max in the result file, and unless you normalize your results, you should tweak the values for your 3D print.

Here is the default color scheme for my 40th mode:

To change the range, click on the contour key and Right-Mouse-Button on the legend, and select Edit… This brings up the Create/edit annotation (legends) dialog. Then click “Edit Pallet…” at the top of that dialog to get to the Pallete editor.

You can make lots of changes here, but what I recommend you do is only change the min and max values. If I set the max to 50, I get this contour on my result:

Next, we wan to save as PLY.

Go to File > Export > Geomtric Entities.

In the dialog, chose PLY Polygonal File Format. This will be the generic format we can convert into something GrabCad likes. Make sure you specify which times or modes you want. By default, it will make a PLY for each one. Also, make sure you have selected the part.

Now you have a color-coded, faceted representation of your results, in a 3D file format. Just not one that GrabCADPrint currently supports.

Step 2: Convert to OBJ in MeshLab

Now we need MeshLab. There are many other tools the read PLY files and output to other formats, but MeshLab has not let me down yet. It is opensource, does everything, and is a pain to use. You will laugh at the user interface. But as ugly as it is, it works. You can download MeshLab from www.meshlab.net. Once you have it installed, follow these steps:

  • Open MeshLab
  • Chose File > Import Mesh
  • Spin it around, look at it. You could scale and transform. But we just want to convert it.
  • Chose File > Export Mesh As
  • Scroll down in the File of Type dropdown and pick Alias Wavefront Object (*.obj)
  • Save
  • Make sure you have only Color checked for Vert. Then click OK

Here is an OBJ file from the example above.

That is it. Import that file into Stratasys GrabCAD Print and have at it.

I printed a different mode shape, but I think it looks fantastic. Click to get the full-resolution version.

Closing thoughts

And this ends our series on getting output from Ansys Mechanical, circa early 2021. It was just going to be one article on getting higher resolution images, but it grew a bit. We hope you find it useful.

Remember, PADT is here to help. We are proud to be an Ansys Elite Channel Partner offering Ansys products across the southwestern US.

PADT has been doing this for a while, and we can offer help in terms of one-on-one support, training, customization, and consulting services. Although this article focused on Ansys Mechanical, we cover the physics across the Ansys product line with experienced engineers in every area. And don’t forget we do 3D Printing as a service as well as product design.

Please contact us to learn more.

5 – An update on outputting results in Ansys Mechanical: 3D Result Objects

To support some new marketing efforts I had to make some different types of results output from models in Ansys Mechanical:

  • A 3D plot on a webpage
    Post 5
  • A physical printout on our 3D Printer
    Post 6

All of the posts are here.

This post is the fifth of six and it is about creating results objects that can be viewed in 3D by people who don’t own Ansys Mechanical. You can use the Ansys Viewer, 3D PDF, make rendering files, and display on a web page. Using the Ansys viewer is simple and 3D PDF requires a plugin. For rendering or web viewing, it is not a direct shot, but with the help of EnSight and a few open-source tools, you can share complex 3D results with a lot of people.

Using the Ansys Viewer format and Ansys Viewer

Ansys solves the problem of sharing 3D results across their product line with people who don’t have Ansys through the Ansys Viewer. It is free, simple to use, and should be used in most situations. Right now you can export results from Ansys CFX, CFD-Post (for CFX or Fluent results), TurboGrid, and Ansys Mechanical to this format.

You can download the viewer here.

Making the file is very simple. Just Right-Mouse-Button on the object you want to share. Then select Export > Ansys Result Viewer

Then open this file in Ansys viewer and view away. We have not had any problems with customers of all skill levels use this tool.

For most real engineering situations, you should stop here. This is a robust way to share 3D result objects with anyone, and they don’t need a license of Ansys. But if you need more, including higher-quality 3D objects, keep going.

What about 3D PDF?

If you want to use 3D PDF, there is a plugin for this on the Ansys app store. One of the European channel partners, 7tech, has created More-PDF. Note, it is not free. Free to download and try, but there is a cost. It works in Ansys Mechanical as a plugin and has a stand-alone version that works with CFD Pre/Post, Electronics Desktop, or MAPDL. I won’t get into how to install or use it because the help files that come with are outstanding.

Here is a sample Ansys result that they have provided. You can view it in Acrobat Reader.

If you want to share results in PDF, this seems to be a good tool for that. I’m not sure what the pricing is for it. More information is here, including more example files.

Making a Generic 3D File: PLY

If you read the article on making high-quality images, you saw that Ansys Ensight is a very powerful tool. One thing it does is support a bunch of different 3D file formats. One of those formats is a PLY file, which is a great intermediate format for so much more.

Get started by following the instructions in the previous article about high-quality images using EnSight. But instead of exporting to an image, we are going to save as PLY.

When you have the result you want, go to File > Export > Geomtric Entities.

In the dialog, chose PLY Polygonal File Format. This will be our generic format we can convert into many different things (including 3D printer files, discussed in the next article.) Make sure you specify which times or modes you want. By default, it will make a PLY for each one.

You can now take that PLY file into any fancy rendering program. If you want to show your results in the middle of a rendered scene of something else, the PLY file is the file to use.

I downloaded the opensource tool Blender and gave it a try. The user interface in these tools is nothing like CAD or CAE tools, so it took me a while to get something useful. I think Keyshot Pro would be a better tool for those who don’t know “artist” tools like Blender.

If you do want to give it a try, you can get your color contours by clicking on the object after you import it, then click on the material icon and choose Surface, then set Surface to Specular, Base Color to Vertex Color | Color, and make sure the specular color is dark or black.

One could spend hours (days) learning a rendering tool and playing with surface reflection and transparency. But if you need something high quality for the marketing team, pass them a PLY file and let their graphic artists do their thing.

Here is the file to help if you do want to dig in yourself.

3D Web Results with X3D (and what happened to VRML?)

Early in the days of the web, there were a lot of people that saw the platform as a way to share and interact with three-dimensional virtual space. They create the Virtual Reality Modeling Language, VRML, as a way to represent 3D objects using triangles with detailed information on each triangle about color, texture, transparency, and shininess. It is fundamentally a file format that represents what your graphics card needs to do 3D graphics but in a common format. The fact that simulation results are basically the same thing made it a nice fit for sharing results, geometry, and meshes with other people.

It was pretty cool and you can still save Ansys information in VRML from various programs. But the viewers were clunky and were focused on the virtual reality experience and not showing 3D objects. It also never really took off because you needed a VRML viewer to see the object. That was always a pain.

As it drifted out of favor, an organization replaced it with a new, better format and a JavaScript viewer that would get loaded automatically: the result, X3D graphics.

Here is the result. Click on the impeller and spin away. Here are some basic commands:

Spin: Left Mouse Button
Pan: Middle Mouse Button
Zoom: Scroll Wheel

Reset: r
Show all: a

Are you sure you want to do this?

Now that I’ve gotten you excited about doing this, let me scare you. This is not for the faint of heart. You need to use an Ansys Mechanical APDL result file in Ansys Ensight to make the file. Then you need to do some HTML/CSS. If you are comfortable with going down that path, read on.

The obvious question is, “when will Ansys add these file formates to the Export capability?” Right now you can only export 3D results to a deformed STL (not color info) and the Ansys in-house Ansys Viewer Format, *.avz.

Getting an X3D from PLY

Now we need MeshLab. There are many other tools the read PLY files and output to other formats, but MeshLab has not let me down yet. It is opensource, does everything, and is a pain to use. You will laugh at the user interface. But if you want 3D objects on your website (or to 3D Print results) this is the best path. You can download MeshLab from www.meshlab.net. Once you have it installed, follow these steps:

  • Open MeshLab
  • Chose File > Import Mesh
  • Spin it around, look at it. You could scale and transform. But we just want to convert it.
  • Chose File > Export Mesh As
  • Scroll down in the File of Type dropdown and pick X3D File Format (*.x3d)
  • Save
  • Make sure you have onlly Color checked for Vert. Then click OK

Now we are really close… but not really. We have a X3D file.

Here are both the PLY and X3D files:

I hosted the x3d file on our web server as well.

Here is where the HTML/CSS happens. And explaining that is way beyond this post. Here is the code to show the solution of mode 35 of our impeller, as shown above:

<script src="https://x3dom.org/release/x3dom.js"></script>

<link rel="stylesheet" href="https://x3dom.org/release/x3dom.css" />
<style>
#imp1 {
    background: #000;
    border: 1px solid orange;
    margin-left: auto;
    margin-right: auto;
    width: 80%;
}
</style>
<x3d id="imp1" x="10px" y="10px" width="400px" height="400px" >
  <scene render="true">
    <environment id="myEnv" ssao="true" ssaoamount="0.5" 
	ssaoblurdepthtreshold="1.0" ssaoradius="0.4" 
	ssaorandomtexturesize="8" sorttrans="true" 
	gammacorrectiondefault="linear" tonemapping="none" 
	frustumculling="true" smallfeaturethreshold="1" 
	lowprioritythreshold="1" minframerate="1" 
	maxframerate="62.5" userdatafactor="-1" 
	smallfeaturefactor="-1" 
	occlusionvisibilityfactor="-1" 
	lowpriorityfactor="-1" 
	tessellationerrorfactor="-1">
    </environment>
    <SpotLight id='spot' on ="TRUE" beamWidth='0.9' 
	color='0 0 1' cutOffAngle='0.78' 
	location='0 0 12' radius='22' > 
    </SpotLight>
    <NavigationInfo id="head" headlight='true' type='"EXAMINE"'>      
    </NavigationInfo>
    <Transform translation = '0 0 -2'>
      <inline 
	url="https://www.padtinc.com/downloads/i1-m35-3d-a.x3d"> 
      </inline>
    </transform>
  </scene>
</x3d>

The above code works for our example and has a smattering of options available to make your image show the way you want it. There are hundreds more. If the code makes sense to you, use the documentation at x3dom.org to do more. If it looks like gobly-gook, find someone who can help you or buckle down and learn. It’s not hard, just different for us simulation types.

Some Tough Talk about 3D Results

The truth of the matter is that Ansys Mechanical is great for looking at 3D Results in Mechanical or in the Ansys Viewer. It is not set up to support other 3D file formats. And there is a reason for that. Do you really need to have a 3D PDF? Is having a 3D result on your website just cool, or do you really need it?

The fact is, for most projects, you need a 2D image of your key results in your report. Most of the fancy 3D viewable is to help people who don’t have Ansys understand results better. Or you need it for marketing. For the first case, just use the Ansys viewer. For the second, it can be a bit of work but you can create some eye-catching geometry.

However, one advantage of having a 3D result object is that you can convert it into something you can 3D print. And that is the subject of our next, and final post on this topic: “6 – An update on outputting results in Ansys Mechanical: 3D Printing Results.

4 – An update on outputting results in Ansys Mechanical: Animated GIFs

To support some new marketing efforts I had to make some different types of results output from models in Ansys Mechanical:

  • A 3D plot on a webpage
    Post 5
  • A physical printout on our 3D Printer
    Post 6

All of the posts are here.

This post is the fourth of six, and it is about making animation files that are not videos, called Animated GIFs (pronounced with a J like Jeff, not G like Garry).
For a couple of reasons, making an animated gif is not as easy as we would like, but with a few tips below, it is not so difficult.

Animated GIFs explained

The GIF image file, Graphics Interchange Format, was invented in 1987 when color computing was new and the internet was not around yet. It is compact and allows only 256 colors (remember that part) and supported animation. The animated format was very popular on dial-up services and the early internet. They then fell out of favor until their use in messaging apps and social media to send animations to people that did not require a player. Everyone could see your cat falling off the table, instantly.

Or their dog being woken up in the middle of an afternoon nap. I just took my iPhone, turned around in my chair, and took this video. Then I converted it to a GIF. It took me less than 30 seconds to make and share this gem:

For those of us in the world of simulation, they have been a popular format for the same reason—almost all applications, from email to web browsers to Microsoft Powerpoint, support animated GIFs. The file contains as many images as you want and a tag for each layer documenting how long to display each frame. The difference is we are not capturing our overweight mutt struggling to roll over. We have specific information we are trying to convey.

Ansys Mechanical Default

If you read the post about making videos, you will remember that one of the output options was GIF. Well, here is what you get when you use that option. Note, it only plays once, to play it again.

And by default, the file does not repeat. Also, to make things worse, the way Ansys stores the GIF is an order of magnitude larger than a video.

As a contrast, here is the same result as video played through YouTube

Video to GIF is much better

So, unless you need something in 30 seconds, don’t use the default save video as GIF in Ansys Mechanical. A much better option is to convert a good video to a GIF.

So, go back to the article on making videos and get what you want for your animation using that info and save it to *.mp4 format. Then use one of the methods below to convert that to GIF.

Ezgif.com

If I take the video above that I posted on YouTube and run it through the free conversion tool, ezgif.com, I get this:

It is not as nice as the video, but it does not need a player. It just plays. Ezgif.com is free (lots of advertising) but has a lot of options. Not only does it covert quickly, but it also lets you crop, resize, add effects, change the speed, add text, and overlay.

The downside, if you have proprietary information you are letting someone else see it. My guess is uploading to a free server in the cloud will violate any NDA or security you have in place. But if not, ezgif.com is the simplest way to get a GIF from a video.

Adobe PhotoShop

The first option, if you can’t use a free cloud-based tool like ezgif.com, is the Photoshop suite. Photoshop is the defacto tool for image editing and processing, and it has a lot of tools for making sophisticated animated GIFs, including importing a video, editing the frames from the video, and outputting a GIF.

Here is the process:

  1. Open Adobe Photoshop
  2. Chose File > Import > Vidio to Layers
  3. Chose your MP4 file
  4. In the “Import Video to Layers” dialog, make sure “From Beginning to End” is chosen and “Make Frame Animation” is checked on.
  5. Click OK
    1. At this point, you can do a huge amount of modifying and editing. But that is way beyond the scope of this post. We just want a GIF made. But if you know Adobe Photoshop, have at it. I often crop and change the size here. Maybe even run some filters on it. Or, if I’m getting really fancy, delete the background from each frame to have a transparent animation.
  6. Go to File > Export > Save for Web (Legacy)
  7. Chose GIF as the file format.
    1. Set colors to 256
    2. I like to set Dither to 100%
    3. Make sure Animation > Looping Options at the bottom is set to Forever.
    4. Click Save… and give it a file name.

Here is what the result looks like:

Adobe Premier

Adobe Premiere is, well, the premier tool for video editing and creation. Many professional videos are made with this tool. It is massive, powerful, and made for people who speak video. If you want to add to your animation, do fancy things with it, use Premiere. Otherwise, stick with Photoshop or an open-source or cloud tool.

But, if you want to use Premier, here is that basic process without any bells or whistles (literally and figuratively) added in:

  1. Open a new Project
  2. Specify a good directory for the project
  3. Drop your MP4into the Project Window
  4. The drag it to the Timeline
    1. Here is where you do your editing magic on the video.
  5. When you are ready to make your file, click File > Export > Media
  6. Chose Animated GIF for the format
    1. Do not pick GIF. That will make an image of every frame.
  7. Click on the name next to “Output Name” to set the name and directory.
  8. Make any other changes you feel are correct if you know Premier.
  9. Click Export

This is what you get.

GifTuna

if you don’t have access to any Adobe tools, I recommend GifTuna. Yes, the name is stupid. But it works and it is free.

Go to giftuna.io and download the app. it comes as a ZIP file. Just extract the zip file and run the executable, GifTuna.exe. It will then ask you to install FFMPEG. This is the same library that ezgif.com uses.

Once everything is installed:

  1. Click “Select File”
  2. Select the video you saved in Ansys Mechanical.
  3. Change the size if you want to
  4. Keep all the other defaults for your first pass.
  5. Click Export

You get a pretty nice video. Play with the dither options if it looks kind of fuzzy.

Making an Animated GIF out of Images

In all the examples above, we created animations by converting a good video into the animated GIF format. What if we just have a bunch of images and want to make a slide show out of them. Or maybe we want to show a series of geometry changes. Maybe the various steps in an animation.

In that case, save an image to a PNG or JPEG file for each frame you want, then use ezgif.com or PhotoShop to make your animation.

A word about APNG

The only real problem with Animated GIFS is that the GIF format only supports 256 colors. In many ways, PNG took over for GIF as the preferred file format. It is compact, handles transparency, and has the advantage of not being restricted on colors. The problem, only browsers support APNG. PowerPoint and most mail programs do not. And many tools like the Adobe Suite do not output in that format. But, ezgif.com does.

In fact, WordPress does not support the format. To view the APNG file, download this file and then open it in a browser:

Maybe someday this will be supported better. Hopefully in Microsoft products soon.

Moving from Motion to 3D

This should help you get a nice animation that you can put on a website and not have to worry about hosting so people can see it. The same goes for Email and PowerPoint. If you can live with fewer colors, it really is the best format for animations of results when you need to show them anywhere.

Now its time to move from 2D results to 3D. We will cover how to create 3D objects of your results in “5 – An update on outputting results in Ansys Mechanical: 3D Result Objects.

3 – An update on outputting results in Ansys Mechanical: Making Videos

To support some new marketing efforts I had to make some different types of results output from models in Ansys Mechanical:

  • A 3D plot on a webpage
    Post 5
  • A physical printout on our 3D Printer
    Post 6

All of the posts are here.

This post is the third of six and it is an update on making videos of results animations with Ansys Mechanical. A lot of improvements have been made in recent releases and you can get good quality videos that are very useful for sharing results with others.

Getting a video of what you see on the screen

In most cases, you can get the video you need by using the animation tools built into Ansys Mechanical. By default, the animation tool shows up at the top of the animation window. If it is not there, go to Home > Layout > Reset Layout. Or add it with Home > Layout > Manage > Graph.

The key thing to know about making videos of results in Ansys Mechanical is that the “save to file” commands do a screengrab of what you see on the screen. So the size, orientation, and resolution are what is in front of you.

The Export Video File button is how you save the animation to a file.

As the tip in the image shows, the command supports AVI, MP4, WMV, and GIF formats. We will discuss the formats below and improving quality in the next section. Most of the time, you should pick MP4 and save the file.

But first, you should know that there are four things you can animate and save to a video file: modal results, static results, results over time, and motion of the camera (keyframe).

Plotting Mode Shapes

Modal results are the simplest. In our example impeller, you need to pick the mode you want to view, get the orientation you want, and then click the play button. When you are ready to make your video file, click the”Export Video File” button and save it.

Now is a good time to explore the different formats. For the sample model I’m using, the file size for the three video formats is pretty much the same:

MP41,139 KB
WMV1,320 KB
AVI1,120 KB
GIF29,072 KB

The Animated GIF is much larger, and it turns out, a much lower quality format. We will cover that in the next article, let’s just ignore GIF for now.

Taking a look at the 3 videos, I’m not sure I can tell a difference. Note, you need to download them and play them on your desktop to see any differences. If we upload to a streaming service then the format gets changed by the service.

And here it is embedded as a YouTube Video, which we will do for all the other examples. I used the MP4 format because I think it might look a little better.

Static Results

This one is very simple and is identical to mode shapes. It plots one result from initial conditions to the final result. Although in our example, it’s not so useful, for complex bending with lots of different loads, it can be handy.

Results Over Time/Steps

The most common use for animation is looking at results over time or over multiple load steps. I was too lazy to build a transient example, so I just put some strange acceleration loads on our impeller and varied them over 5 timesteps.

This gave some movement of the rotor (we will cover changing deflection exaggeration in the next section) so you can see what is going on.

To get your animation, select the result you want from the tree and orient things in a way that shows what you need to show. Push play to view. Tweak as needed then save as we did with modal results. This is what you get:

With the default settings, it creates the specified number of frames across the whole result set. This uses the “Distributed” setting, the green icon. If you watch the vertical line as it animates, you can see it linearly interpolating results between result steps.

If you don’t want this, then click the blue icon to get one frame per solution on the result file. This is a good idea, and even critical, for many transient runs or nonlinear runs where linear interpolation is not correct. Notice how the field for specifying frames is grayed out and set to 5. That is because we have 5 result sets.

To show the difference, including the graph at the bottom, I actually did a screen recording, which we will cover in the last section.

It really is simple. Get what you want going on your screen, then save it to a file.

Making it better

The default settings are great for most situations, but you can get better results with a few small changes.

Distortion

For any type of mechanical simulation, you are solving for deflection, and you usually want the distorted shape to show up in your animation. Most of the time the program calculated exaggeration is just fine. But if you need to change it, use Result > Display and the drop-down for the Deformation Scale Factor. Change it and see what happens.

Background

The first thing I always do is get rid of the blue gradient background. One reason for this is that the compression algorithms that various video formats use can cause the background gradient to shift slightly over the video. Or it might reduce the colors. Having a solid background gets rid of that. And, if you ask me, it just looks better.

You can set your preferences for images to always have a white background, but you can’t do that in Animation. So you need to change the Workbench background.

Go to Workbench > Tools> Options…

Then select Appearance. Set Background Style to Uniform and the first color to the color you want. I use White.

But a rich purple is kind of cool and makes the other colors stand out:

Remember to change this back when you are done making your animations. If you are working debugging a really tricky model, that purple will burn a hole in your head.

Size

Remember, Mechanical is just doing a screen capture in the background, so the size of your plot on your computer screen determines the output. Sometimes you may want a small video, sometimes a big one. Let’s look at getting the highest resolution possible.

The graphics window size is determined by everything around it. By default, the graphics window is embedded, but with a little trick, you can set it free.

Here is the default on my monitor, my rotor is 584 pixels tall. (my screen is 1080 pixels high.

  1. Go into full-screen mode by pressing F11 or clicking Home > Layout > Full Screen
  2. Then click the X Tabular data windows to remove it.
  3. Grab the blue strip on the Graph window and drag it to pull it out of the window. You need to keep that window to save your animation.
  4. Press CTRL-O to get rid of the outline
  5. Press CTRL-D to remove the details window.

That gives you a nice big window of your results. Now my impeller is 911 pixels tall. And I can zoom in a little to get it a bit bigger.

But you will notice the screen is wide. If I animate now, for my geometry, I’m wasting a lot of bits storing the background. Click on the “Restore Down” button in the upper right of your window to get it out of windows full screen. Then drag the edges to get the size and shape that are just big enough to show your results.

If you want another 20 pixels (now we are getting greedy) you can get rid of the toolbar at the top. Click on the tiny down arrow on the far right of the toolbar. Then click Add or Remove Buttons > Customize. Then uncheck “Graphics.”

Now run your animation. Then, when you are happy, save it. You can bring the outline back with CTRL+O if you need it. If you need more pixels, get a higher resolution monitor or stretch the graphics window over multiple monitors.

I’m working on a Microsoft Surface, and I’ve been doing my animations on my portable monitor, which is only 1080 pixels high. To get the best image, I moved over to the main screen, which is 1824 high.

So with all the tricks and on my highest resolution monitor, I get a video that is 1785 pixels high, and it looks pretty good, even after YouTube compresses it:

Here is the file to view on your own machine:

Important! To get back hit F11 then Home > Layout > Reset Layout. You may have to also do Home > Layout > Manage > Tabular Data to get that window back and Home > Layout > Manage > Graphics Toolbar to add that back to the top of the graphics window

Frames & Time

The last thing to play with is the number of frames and the length. A good rule of thumb is to not have less than 10 frames per second. And greater than 20 is good. Set it to 5 Frames and 5 Seconds to see blocky. Then 100 Frames and 5 Seconds (20 frames/sec) to see everything smooth.

Moving the object with Keyframe animation

If you want the object to move during an animation, you can use what is called Keyframe animation. To be honest, I am not sure I’m using it right in the program, but I got it to work somewhat, so I’ll share what I did. I’m also only going to cover the basics, see the documentation for more.

First, open the Keyframe Animation tool with Home > Tools > Keyframe Animation.

Orient your parts the way you want them, and click the add Keyframe button. The one with the green plus.

Now pick your second orientation, and add it to the list. Keep going till you have all your orientations in there. Set the time to somehting like 4 or 5 seconds, and hit play.

Now, getting a little fancy, you can add pauses at any Keyframe if you want. Do this by double-clickingon the Keyframe step to orient the part, then click the Insert Keyframe icon (top row, 4th from the left) to make a copy. You now how two keyframes at the same orientation so your part won’t move.

This window has a save animation button as well, so save it. When I used it, this is what I got:

This spins the final distorted shape, not the animated shape.

If you look at results that are not from a modal run, you will see that you can animate the results over time by clicking on the Keyframe icon in the animation bar:

The first icon, red circle, tells the program to change the orientation as defined in the Keyframe Animation Window while it animates your results. Click on the second icon, green circle, to use the frame counts you have specified in your Keyframe Animation Window.

This is what the multi-step results look like over the motion:

What about modal? Well in theory you can’t plot a mode shape with keyframe animation. But… if you set up a keyframe for a non-modal result, run it. Then move to a modal result, it works, sort of. The results animate if you have two keyframes that are the same next to each other. This is not a documented feature and may even be a bug. But here is how it looks:

When all else fails, make your own recording

Sometimes you can’t get what you need saved to a file, but you can see it on the screen. Including the Graph window is a good example. Rotating a modal result, since Keyframe really doesn’t work with modal, is another good example. Now that we all have learned to use online meeting software through COVID-19, we know how to do a screen capture of the animation. I use MS Teams and it works just fine.

But, the quality is OK and you get artifacts from the meeting, like my icon on the bottom for attendees. Those can be edited out, but not ideal. Here is a sample:

If you need better quality, a dedicated screen capture program may be better.

And it turns out that Windows 10 had a built-in screen recorder. It’s called XBOX Game Bar, and it works pretty well. Here is a link on how to use it.

And I get a nice full screen video:

Play, but not too much, and RTM.

The last bit of advice we can give on animating in Ansys Mechanical is that if you want something beyond the defaults, set aside some time to play. There are a lot of options, many we have not even looked at. But at the same time, in your quest for an Oscar, you may be spending time on something that is not going to make a difference. So use your time wisely.

And as always, Read the Manual. There is a wealth of detailed information there.

Getting the right Animated GIF

Now that we have covered creating various video formats, what about making an animation that doesn’t need some sort of player? The next post, “4 – An update on outputting results in Ansys Mechanical: Animated GIFs” explains how to do that.

2 – An update on outputting results in Ansys Mechanical: Taking it to the Next Level with Ansys EnSight

To support some new marketing efforts I had to make some different types of results output from models in Ansys Mechanical:

  • A 3D plot on a webpage
    Post 5
  • A physical printout on our 3D Printer
    Post 6

All of the posts are here.

This post is the second of six on what I’ve learned after fiddling around for a while. It is looking at a post-processing tool that Ansys acquired a few years back called Ansys EnSight. It takes making output to the next level in functionality and quality.

More options and ray tracing with Ansys EnSight

Back in 2017, 3 years ago, if you don’t account for COVID-19 time dilation, Ansys, Inc. acquired a company called Computational Engineering International. They had a product called EnSight, which was the best post-processing tool on the market. Many FLUENT, CFX, and LS-DYNA users would use EnSight to do advanced result interrogation and output. Its capabilities focus on doing complex visualization and automation. Along with real engineering tools and support for an extensive range of tools, it also makes really nice plots. For this post, we will focus on that part. This is an amazingly capable tool, and I’ll only cover the bare minimum that you need to know to get a result from Ansys Mechanical in and plotted. See the help or online training for more on this fantastic tool.

Ansys EnSight is its own stand-alone program. It can be licensed on its own or as part of various CFD bundles. If you are a larger company that does CFD, you probably have one or more seats.

The program reads Ansys Mechanical APDL result files. These are created when you run Ansys Mechanical and are stored in your project directory under dp0/SYS/MECH and is called file.rst or file.rth. I like to copy the result file from that directory to a folder where I’m going to store my plots and also rename it so I know what it is. For our impeller model, I called it impeller-thin-modal-1.rst.

Once you have your rst file, go ahead and launch EnSight.

Setting up images in Ansys Ensight

That brings up a blank sessions. To get started click File > Open

This will bring up a dialog box for specifying a results file. If you click on the “File type:” dropdown you will see the long list of supported files it can work with. Take a look while you are there and see if any other tools you use are listed. Of course, Ansys FLUENT and CFX are listed. This is first and foremost a CVD post-processor.

But the one we want is Ansys Results (*.rst *.rth *.rfl *.rmg). Chose that then go to the directory where you put your Ansys result file.

EnSight will read the file and put it in a Case. It will list the results as Part 0 under Case 1.

The left part of the screen shows what you have to work with, and the right shows your model. The “Time” control, circled in green, is where you specify what time, substep, or mode you want. The “Parts” control lets you deal with parts, which we really won’t use. And the “Variables” control, circled in orange, is how you specify what result you want to view.

We want to plot deflection, which is a vector. Click on the + sign next to Vectors, and you get a list of what values you can show. The only supported result for model analysis is Displacement__Vibration_mode. Click on that. Then hold down the right mouse button and select “Color Part” > All.

This tells the program to use that result to shade the part. You should now see your contour.

Our example is a modal result. If you use a structural result file, you will be able to plot the displacement vector, as well as many stress results under “Scalars”

Next, you will want to clean things up. Go to View and turn things on and off as you see fit. I like to turn off perspective, the Axis triad, and sometimes the legend.

You may notice the “Lighting…” option. If you really want to get fancy, you can specify various lights to get shadows and such. I like to add a spotlight above and slightly off-center from the part. You can waste a lot of time playing with lights, so try to avoid it if you can.

To pick which mode or timestep you want, use the “Time” control. Clicking on the step forward or step back buttons (triangle with a small rectangle at the base) steps you through the results on your file. Or you can drag the slider.

By default, EnSight shows an undeformed object. If you want to see the deflected shape, click on the part then on the “Displacement” icon above the graphics window. Select the vector result you want to use, displacement in this case.

Note, the default displacement factor may not be a good guess, change that till you get the amount of deflection you want.

These are only a few of the dozens of options available. But we can get most of what we need with these, so let’s look at saving the plot.

Saving your image

Now its time to get a rendered plot. Go to File > Export > Image

There is a lot to do in the “Save image” dialog. First, set the format (red circle.) I always use PNG. Then set the filename and path.

Expand the Advanced area and click “RayTrace the scene” (orange circle). Then you need to tell it how many pixels you want. Go big. You can always shrink it later.

Click OK and generate your plot. Check it out, things may be fine.

Leveraging Ray Tracing in Ansys EnSight

If you want to make the plot even better, go back to the Save image dialog and click “Raytrace settings…” and move the Quality slider all the way to the right. Do know that it can take a while to ray trace a large image with lots of surfaces.

And this is what you get. Click on the image to see it larger.

There is are many more options in this tool. Spend some time exploring these features to get even better plots:

  • You can change the shading of the surface by double-clicking on the part in the “Parts” control and then setting the surface lighting parameters. To get there, click on advanced, scroll down, and expand General. I like to up shininess. Play with these to see what works best.
  • You can also create multiple views in the same window. Right mouse clock in the graphics window and select “Viewports” and pick what you want. You can’t ray trace but you can still get output of multiple windows.

Here is what the output looks like, whithot ray tracing. Not bad.

  • Sometimes you may want to make your part transparent. You can set that in the controls under General, where you can change the lighting.

And you get a very cool plot. I’m not sure when you would use it, but if you need it, it is handy. CFD users need this all the time.

The problem with this tool is that it has so many great features, you could burn a lot of time just changing things. But if you stick to the basics, you can take your plot to that next level for your website or brochure.

Plotting a single part in a multi-part file

There is one last detail to mention. What do you do if your model is an assembly but you only want to plot one part. EnSight treats a given RST file as one part. So you can’t really scope to just the part you want.

The solution is to open your RST file in Mechanical APDL and save out the parts you want to plot in a seperate result file. You do this with the APDL command: rsplit

Here are the steps:

  1. Get into APDL
  2. Use “set” to read the results file
  3. Select the elements you want as separate parts for plotting using standard APDL commands or the GUI.
  4. Create element components for them (cm,name,elem, or the GUI)
  5. Use rsplit to write an RST for each part: rsplit,all,all,cmname where cmname is the component name you created in step 4.
  6. This makes an rst file called cmname.rst. Now use this rst file for the above process

Let’s make a movie next

This post and the previous one focused on high-quality 2D plots. What if you want to show motion? Read on to the third post in the series to learn how to create outstanding videos in Ansys Mechanical – “3 – An update on outputting results in Ansys Mechanical: Making Videos

1 – An update on outputting results in Ansys Mechanical: Making High-Resolution Images

To support some new marketing efforts I had to make some different types of results output from models in Ansys Mechanical:

  • A 3D plot on a webpage
    Post 5
  • A physical printout on our 3D Printer
    Post 6

All of the posts are here.

This post is the first of six on what I’ve learned after fiddling around for a while. It is an update to an article I did back in 2009 on the same topic, as well as plotting well in Mechanical APDL

Getting high-quality Pixels in Ansys Mechanical

To get started, let’s meet our sample model, an impeller we were working with a while ago for some Additive Manufacturing simulation. The modal results are good for exploring plotting:

Getting an image file in Ansys Mechanical is pretty simple. You click on the object you want a plot of, then select Home > Insert > Images > “Image to File …”

The default preferences are good for most plots. You basically get what you see on the screen.

This is the dialog where we can start making some simple modifications to increase the quality. here is how it comes out. Click to see full size:

I’m not a big fan of that. It is OK for sticking in an email or small on a PowerPoint. But I like better resolution, not just for marketing, but also to allow zooming.

The simplest change is to up the resolution – the number of dots per inch. First, you have to unclick the “Current Graphics Display.”

Playing with the resolution, here is the same image at the three different resolutions (1:1, 2:1, 4:1) (click to see it full size or look at the zoomed views below)

For most uses, the middle image, 2:1 is good enough. Image quality is driven by the number of color dots, or pixels. The base size is determined by how big the window is on your monitor. For this part the images are:

ScalePixel SizeFile Size
1:1939 x 621140 KB
2:1878 x 1242349 KB
4:13756 x 2484884 KB

But if we zoom in we can see the difference. You really only need the 4:1 for printing, or as we needed, the ability to blow it up for a booth or banner.

1:1
2:1
4:1

The blue-to-white gradient looks good on the screen and cuts down on eye fatigue, but can be a pain for images, especially if you are removing backgrounds or pasting into other documents. So the next thing I always do is change the background to white:

And you get a great picture, here it is 2:1, white background:

With the white background, it is easy to remove it, so you can place things behind it. That is very handy in PowerPoint.

If you are not familiar with that feature in Microsft Office applications, it is under: Picture Format > Adjust > Color > Set Transparent Color. Then click on a white pixel in your image.

This example shows a gray background, but it works with much fancier backgrounds. Here is the impeller in Sedona, Arizona.

I deleted the white background, the key, and the triad in Photoshop. I usally turn off the scale and triad in Ansys Mechanical: Display > Show then pick what you want on your plot.

These plots all use solid colors for each contour band, which is easier to read if you are doing actuall engineer. But if we are making marketing plots, I swap to smouth contours: Result > Display > Contours > Smooth Contours.

With a little Photoshop work you can get somethign pretty snazzy:

The last thing to talk about is what format to save in. This used to make a big difference because some of the formats traded quality for file size. But now the quality of the more efficient files is good.

You chose the format when you specify the file name. The choices are PNG, JPEG, TIFF, Windows Bitmap, and EPS.

As you can see in the closeup below, the different format really don’t lose quality, but their size varies a lot. Take a look at the next image, I can’t spot the difference. I recommend PNG because it is small but doesn’t lose any quality. But if you have a lot of plots and size is an issue, use JPEG. I have no idea why TIFF and especially Windows Bitmap or so large, but unless someone asks you for those formats, I’d avoid them.

Which leads us to the EPS or Encapsulated Postscript format. This is the last option. Now, EPS is usually what we call a vector format – not pixels but actual shaded polygons. The advantage of vector is that you can scale it up and down all you want and nothing is lost. The image is always sharp.

So you may get excited when you see EPS. In Ansys Mechanical APDL it does create a vector file (a way to get vector graphics of your results if you need them. Use /show,PSCR,,,8) But Ansys Mechanical just creates a bitmap image and puts it into Postscript format. It is not vector. You can see this if you open it in Adobe Illustrator. Bummer.

I hope this helps, and for 90% of your plotting needs, these tips should get the job done. But if you want to go further, read on to the next post in the series: “2 – An update on outputting results in Ansys Mechanical: Taking it to the Next Level with Ansys EnSight

Using Ansys Icepak Results in Ansys Mechanical

With Icepak now falling under the umbrella of Electronics products in the Ansys Pro Premium Enterprise licensing scheme, it is easier than ever to obtain conjugate heat transfer simulation results without a dedicated Fluids license. Because of this, we have received multiple requests regarding methods to transfer Icepak’s results to a workbench environment for more accurate thermal and Mechanical results. So, without further ado, I will outline the procedure for four different methods along with their general use-cases.

1: Temperature from Classic Icepak

The first, and most straightforward, method is simply transferring body temperature directly from the Icepak (Classic) workbench application. This may be the preferred method for the majority of use-cases where getting thermal CHT results into a mechanical project is the goal. The Icepak node needs to be solved as normal, and then the solution can simply be dragged over to the setup node of another project, such as steady state thermal or static structural. Once this has been linked and updated, the transferred body temperatures are accessed through an “Imported Load” folder where the temperatures for individual bodies can be mapped over. The benefits are that as long as the Icepak simulation is set up as needed, you won’t need to resolve anything on the thermal side, and there is no extra manipulation of data required on the user’s end.

2: Heat Transfer Coefficients from Classic Ansys Icepak

The second method that sits natively within Workbench involves mapping heat transfer coefficients onto surfaces. This of course means that the thermal problem must be solved again, but it does provide extra accuracy over uniform HTC approximations, and some extra flexibility for recalculating body temperatures that result from changing power input conditions. This might be the desired approach if you are working with a forced flow and are looking at thermal stress results across a range of CPU loads, for example. HTC coordinate maps can be exported from Classic Icepak through the “Full Report” command with “Only summary information” disabled. 

The complicating factor for this method is that the file format and information is not compatible with Workbench for External Data mapping in its default form.

I wrote a simple python script for this purpose – it reads in the HTC coordinate data, makes it all positive, rewrites it as a CSV, and adds the necessary reference (ambient) temperature column. It is important to note here that there can be an error in reported HTC sign from Icepak. This is because the sign is determined by the direction of heat transfer, which is reported without consideration to the solid body surface normal direction. So, for entirely convex shapes, the sign will be correct, but for more complicated structures like heatsinks with surfaces facing every which way, the signs will be inconsistent. Once this is done, each column needs to be correctly associated in the external data definition and then mapped to the setup of your thermal simulation. In Mechanical, this causes an Imported Load to show up under Analysis, which you will then insert a Convection Coefficient into. This can be scoped to individual faces, which should of course be included with those chosen when exporting from Icepak.

For reference, the python script may look something like:

############################################
import numpy as np
import sys

##Usage is 'python HTCCleanup.py inputfilepath AmbientTemperature'
inputfile = sys.argv[1]
Temperature = float(sys.argv[2])

#Bring in Icepak data file as argument
data = np.loadtxt(inputfile,skiprows=25)

#Make all HTCs positive
data[:,4] = abs(data[:,4])

#Create and append a reference temperature column
temparray = np.ones([len(data[:,0]),1])*Temperature
data = np.append(data,temparray,axis=1)

#Write to file
np.savetxt('ProcessedReport.csv',data,delimiter=',',fmt='%.5e',header='Node#, x, y, z, HTC, TRef')
############################################

3: Temperatures from EDT Icepak

The electronics desktop version of Icepak is a newer and, in my opinion, a more user-friendly environment for Icepak simulations. However, since it does not integrate directly with Workbench, mapping over result data for further structural simulation is not as straightforward. Luckily for us, other users have already addressed this obstacle via an ACT extension!

This is the “Write Thermal Loads” extension that can be downloaded for free from the Ansys App Store (https://catalog.ansys.com).

Once loaded, the interface looks like this:

Basically, this is a guided wizard that will export an external data file with coordinate defined temperatures according to the EDT bodies you select with the Wizard. The wizard also generates some workbench script files that can be used to automate the import process, but the most important part to know is that the temperature data file is brought in through External Data in essentially the same way as the aforementioned HTC file. For those who are familiar with the EDT environment and want to take thermal results straight into a structural analysis, this is the preferred approach.

4: HTCs from EDT Icepak

This is perhaps the most awkward (and advanced) workflow, but it provides the same flexibility as with Classic Icepak HTCs, without the potential error in HTC sign, and with the benefit of working in the EDT environment. The portion of this flow most likely to contain errors is generating the HTC data file, as we must make use of a normally inaccessible operation in the Field Calculator. After solving an Icepak project and generating results, we should first create a face list including all of the convection faces of interest – this is done by selecting those faces in the GUI and then using the Modeler > List > Create > Face List to generate this face. Once the list is created, open the field calculator (Icepak > Fields > Calculator), and then perform the following steps:

  1. Input > Quantity > Heat Transfer Coefficient
  2. Input > Geometry > Surface > Face List
  3. Scalar > Mean > Undo (ONE TIME)
  4. Output > Write

The single undo operation grants us access to the intermediate step where HTC data is accessible as a “SclSrf: SurfaveValue(Surface,HTC)” datatype, and can also be accessed by performing undo after any other scalar operation on a scalar field definition. (such as integration over a surface or body or a min/max calculation, for example)

The .fld file produced with the write operation is close to usable in workbench, but still must be slightly reformatted and appended with a reference temperature column. I would suggest a python script that is very similar to the one used for Classic HTCs.

One thing to note is that these files generated by EDT can end up being much larger than you may expect. This is because the field calculator essentially forms a list of all the surface elements on the surfaces you have specified, decomposes them into triangular elements if necessary, and then reports the HTC value of that triangular element at each connected corner node. So, you end up with 3 times as many data entries as you have surface elements, multiple HTCs reported for each node that touches more than one surface element, and a correspondingly large file for fine meshes on complicated geometries. Still, Workbench will interpret this whole thing fairly well, and you should end up with a good HTC map to make use of in Mechanical. 

Managing a Subscription List with a Flow in Microsoft Power Automate

This is an unusual HOW-TO post for our blog. Most of the time, we post useful technical content about Ansys, Flownex, 3D Printing, Scanning, and product development. But I’ve been on a no-code kick using Microsoft Power Automate and the flows you can create there. But as I’ve learned the tool, I’ve found a lack of good resources that are similar to the type of content we like to do for our Ansys users, so I thought I’d break the mold and post about a simple flow I did that shows how to add and modify data in Microsoft Excel from the results from a Microsoft form.

It all started with a virtual happy hour I started back at the beginning of the pandemic. I invited a handful of people that I’m used to seeing at Arizona tech community events. Over time, I invited more people, and the regulars invited their friends. The invite list got long. Also, I found that no-one was being asked to be taken off the list, but many people have never shown up.

I needed a subscribe and unsubscribe form that updated my list.

Rather than using a perfectly good and free online tool to manage the list, I decided to use this need as a reason to learn more about flows in MS Power Automate.

Here is what I wanted:

  • Subscribe
    • Person goes to form, enters their email
    • Email is checked against list
    • If the email was on the list:
      • If the email is flagged as unsubscribed
        • Flip flag to subscribed
        • Send a success email
      • If the email was flagged as subscribed
        • Send an email to the person letting them know they are already subscribed
    • If the email was not on the list:
      • Add them to the bottom of the list
      • Send an email letting them know they were added
  • Unsubscribe
    • Person goes to form, enters their email
    • Email is located in list
    • If the email was on the list
      • The email is flagged as Unsubscribed (TRUE in second column)
    • If it was not on the list
      • Send an email letting them know that their email was not found.

So how do we do this in MS Flow? It is actually pretty simple. The basic concept behind flows is that you have some sort of an event on a document or a form that you set a watch on. Then you take the information from that event and do something with other Microsoft tools, and some 3rd party tools. All with no writing of code! You set up a flow chart and fill in forms.

The other thing I like about this example is it shows how to deal with errors and branch when something doesn’t go right.

I’m going to assume if you are reading this, you have a basic familiarity with the tool. If not, run through some basic tutorials and come back.

Before you start doing the flow, you need to create a subscribe form, an unsubscribe form, and an Excel spreadsheet. The forms just ask for an email.

The Subscribe Microsoft Form
The Unsubscribe Microsoft Form

Because flows work on tables, create a table with two columns. The first is for emails, and the second is for a flag on if they have asked to unsubscribe. You can have other fields on your forms and other columns in your table if you want more information, like company or names. For my happy hour, I just want emails. You can start with dummy emails or just your own. Save the file to a SharePoint site that you are part of.

The Table in Microsoft Excel

Unsubscribe

The unsubscribe is simpler, so let’s start there. My flow looks like this:

Let’s look at each block to understand how things work:

I start the flow when my Unsubscribe form is submitted. (If you have Office365 and you are using a different form tool, stop and check out MS Forms. We have been very happy with it. ) All you need to do is pick the form you want. Note, I changed to the title with … > Rename so when I come back in 6 months, I can remember what is going on.

Each block creates output that can go to the next block. All that the form trigger does is return the ID for the response. So we need to now get the information that was submitted with a “Get response details” block:

Notice that you have to re-identify the form. It does not assume that the previous block is where the information is. So select the form again.

For the Response ID value, we will use the results from the trigger block. Any time you fill in a field that is not a dropdown, you get a popup that shows you information passed down from previous blocks. At this point, all we have is the response ID. Click on that to fill the form out. These chunks of information are called Dynamic Content and will have an icon next to their label that reflects the application the information came from.

Now that we have the email address to add, we need to try to add it to a table in Excel. We use an Update a row block for that. Our goal is to set the value to TRUE for the unsubscribe flag.

Flows use files stored in SharePoint. So you need to find first specify the site you stored your Excel file on. Then the folder, then the file. All of these self-populate as you go.

Now, pick the table you want to update. The way this works is you specify a “key column” and a value to look for. The first row that has the supplied value in it gets updated. So we need to specify our “email” column and then the submitted email from the dynamic content.

It auto-populates with the columns in the table, so we can see our two columns that can be updated. We will leave email alone and set Unsubscribe to TRUE.

Now, if that all works just fine, we want to send a confirmation email. If it doesn’t, because the flow could not find the email given, we want to send an email letting the person know if it didn’t work.

We use the failure of the “update a row” block as a way to decide which way to branch. First, we need to make the branch. Add the success email:

Put the submitted email in the To: box and put in a descriptive subject. I then explain what is going on in the body and include the email so they can see what they submitted. I also put a link to the subscribe form if they want to get back at some point.

So that is great; if all goes well, they are marked as unsubscribed and get an email. But if their email was not on the list already, we need to let them know. To do this, you create a parallel branch and set “Configure Run After” to branch for an error.

Click on the + and chose add a parallel branch:

Do another email for that second option. I add in the body that they should use the email address that was in the last invite they got.

Now is the branching part. If you leave it like it is, the flow will send both emails if the update is successful and nothing if it fails. We need to tell the “fail email” to only send on a failure.

Do this by clicking on the … then chose “Configure run after.”

That brings up a form that lets you specify when the block should be run based on the exit status of the previous block. Check only “has failed” and Done.

Notice how the down arrow leading to the block is reddish. This tells you that it only runs if the previous block did not run successfully.

And that is a simple unsubscribe flow! I tried it out by unsubscribing myself and then using an email that is not in the list.

Subscribe: More logic and branching

For subscribing, we are going to add a row to our table, and we also need to check and make sure that the email was not already on the list, which lets us use some “has failed” branching, but we also want to change them from Unsubscribed = TRUE if they are already in the list but want to re-subscribe.

Here is the flow:

The first two blocks are the same. But the third block is a get a row block. It grabs the contents of the first row that matches the supplied Key Value for the Key Column. Some input, but the output is a list of the row values rather than letting them update the row. So we supply the Email column and the email address given.

For the case where it finds the row (we will come back and branch on the failure), we need to first check to see if the Unsubscribe flag is TRUE. So we insert a Condition Block. We put the returned value for Unsubscribe in the first field, set the condition to “is equal to,” and set the third field to true. See in the Dynamic Content dialog how the row results show up?

Note: Excel returns all lower case “true” or “false.” That tripped me up. So use all lower case.

That block generates an If yes and an If no branch.

For the If yes branch, we need to change the value of the row to FALSE and then send an email saying that the person has been resubscribed. So in the If yes block, we first add an Update Row block:

We do everything just like the unsubscribe changing of the row, except the value is now FALSE.

Then we add a new email, letting them know they were turned back on:

Now, if someone tried to subscribe and was already on the list and was subscribed, we should let them know with an email. So we add another email block into the If no Block

Next, we need to go back to handle the case when looking for the row of data showed that they were not already in the list.

We add a parallel Branch that points to an “Add a Row into a Table” block.

The block looks a lot like the other two blocks we have used for excel, except there is no Key Column or Value. You point to the table, then supply the value you want added. For our flow, the email and FALSE for Unsubscribe.

Remember, we add the row when it was not already there, the “get the row” block failed. So use “… > configure run after” and set it to “has failed” only.

Then add a success email after that block:

I have also added an email to me if the attempt to add a row failed. That is not necessary; if a flow fails, you get an email. But I thought it was the right thing to do. So I added one more email block parallel to the success email:

Remember to set its “configure after run” to only execute on a failure.

And it all works! Or seems to so far. And not one line of code.

Final Thoughts

One thing I didn’t do was BCC or CC myself on the emails. If you click “Show advanced options” at the bottom of the email blocks, they let you do a lot more, including BCC and CC addresses.

I could have also created a single form and had a check box for subscribing or unsubscribing. Then added a Condition block to branch based on that value.

As mentioned above, I could have done this with a dozen different free or paid tools. But this was a great way to up my Flow skills for something more serious, like the tool we are building to manage NDA agreements or our project numbers. Powerful stuff.

Or you can build your own list as an excuse to start your own Happy Hour.

PADT has developed expertise in many areas since our founding in 1994, and automating processes and integrating different tools are two areas demonstrated in this example. Please reach out if you need to make your workflows more efficient or need simulation, design, or 3D Printing tools, training, consulting, or services.

Cheers!

Press Release: Expanding its Product Development Expertise, PADT Adds Dr. Tyler Shaw, Former Head of Advanced Manufacturing at PING, as Director of Engineering

Change is an important part of growth. Our mission within the Engineering Services team at PADT is:

Delivering Premier Engineering Services to Enable World-Changing Product Development.

To do that, we need a world class leader. And when our long-time Director of Engineering decided to move to something different, we searched high and low for a new person. The ability and experience of the applicants was amazing and making a decision was difficult. In the end we were fortunate to have Dr. Tyler Shaw join PADT.

Read the official press release below to learn more. We are excited about this new phase for our consulting offering. Tyler’s background and knowlede open new and excited doors.

If you would like to explore how PADT can provide product development or simulation assistance to your organization, contact us, and Tyler along with the rest of the team will be eager to learn more.


Expanding its Product Development Expertise, PADT Adds Dr. Tyler Shaw, Former Head of Advanced Manufacturing at PING, as Director of Engineering

Shaw Tapped to Lead PADT’s Simulation and Product Development Team Who Provide Services Across Industries Worldwide

TEMPE, Ariz., December 3, 2020 PADT, a globally recognized provider of numerical simulation, product development, and 3D printing products and services, today announced it has hired Dr. Tyler Shaw as its Director of Engineering to oversee the company’s simulation and product development consulting team effective immediately. Shaw most recently served as the head of Advanced Manufacturing and Innovation at PING golf, and has worked as an engineer, product manager, and educator across a diverse range of industries for more than 20 years.

“PADT’s ability to help our customers solve tough problems is a key industry differentiator, and we’re thrilled to welcome Tyler as a leader to oversee our team of simulation and design experts,” said Eric Miller, co-founder and principal of PADT. “His experience and impressive technical background will enable us to continue our high-quality service while providing fresh, innovative ideas for developing products to their full potential.”

Dr. Shaw replaces Rob Rowan as the director of Engineering. Rowan spent nearly 20 years with PADT and is credited for driving the growth of PADT’s engineering services and capabilities. “We owe a tremendous debt of gratitude to Rob for his dedication and leadership,” said Miller. “He was greatly admired for his broad engineering knowledge and business acumen and we wish him the best in his future endeavors.”

After a comprehensive search, Dr. Shaw emerged as the most technically advanced, skilled, and capable candidate to assume the role as PADT’s engineering leader. Dr. Shaw will focus on setting strategy, managing resources, and providing technical expertise to solve customer challenges. Prior to working at PADT and PING, Dr. Shaw served as a product manager for Vestas where he led customer-specific technical and commercial solutions for wind turbine sales across North, Central, and South America. He was also a principal systems engineer for Orbital Sciences Corporation, now Northrop Grumman, where he managed projects related to the development of world-class rockets, satellites, and other space systems.

“I am thrilled to join PADT and am ready for the challenge of taking its engineering services to the next level,” said Dr. Shaw. “I’ve worked with PADT in my previous post and was impressed with their capabilities and portfolio of clients, which covers a diverse set of industries. My background and technical knowledge across many of these sectors will serve PADT’s customers well.”

To learn more about Dr. Shaw and PADT’s simulation and product development services, please visit www.padtinc.com.

About PADT

PADT is an engineering product and services company that focuses on helping customers who develop physical products by providing Numerical Simulation, Product Development, and 3D Printing solutions. PADT’s worldwide reputation for technical excellence and experienced staff is based on its proven record of building long-term win-win partnerships with vendors and customers. Since its establishment in 1994, companies have relied on PADT because “We Make Innovation Work.” With over 90 employees, PADT services customers from its headquarters at the Arizona State University Research Park in Tempe, Arizona, and from offices in Torrance, California, Littleton, Colorado, Albuquerque, New Mexico, Austin, Texas, and Murray, Utah, as well as through staff members located around the country. More information on PADT can be found at www.PADTINC.com.

# # #

More formal versions of this Press Release are available here in PDF and here in HTML.

Building a System Model of the RL-10 Rocket Engine in Flownex

When we engineers are building a new system or iterating on an existing design it can be expensive.  Simulating a full system-level model in a 3D CFD program can take days.  Making iterative changes to an existing system can be costly or even impossible. Utilizing a one-dimensional system modeler like Flownex allows us to analyze many different designs very quickly, on the order of seconds or minutes.

Flownex is a thermal-fluid network modeler.  It is a simulation tool that allows for 1D fluid modeling and 2D heat transfer.  It uses a variety of flow components, nodes, and heat transfer elements to model the entire system we are interested in analyzing.  It solves conservation of mass, momentum, and energy to obtain the mass flow, pressure, and temperature of fluids and solids throughout the complete network.  Because of this approach we can analyze large, complex networks very quickly, iterate on designs, and even run short or long transient simulations with ease.

In the example today we are looking at a version of the RL-10 rocket engine, which has been a staple in the delivery of satellites into orbit and an essential part of many spacecraft. The specific iteration of the RL-10 we will be using for building our network model is the RL10A-3-3A. A good place to begin with any system model is a system schematic:

Figure 2: RL10A-3-3A Engine System Schematic – Image from https://ntrs.nasa.gov/citations/19970010379

In Flownex we can assign an image (could be from a P&ID diagram, a CAD cross-section, or even a satellite image!) as the background for our drawing canvas. We simply need to right-click on the drawing canvas and select Edit Page to bring up the drawing canvas properties.

Clicking on the action button under Appearance Style brings up the Styles Editor.  Here we can change the fill style to Image and select the appropriate image for our background.

In the case of the RL-10 we can use the image from figure 2 as our background image.  We may want to consider adjusting the opacity of the image so that it blends into the background a little bit more.

In Flownex building a system model is as simple as drag and drop.  We can build our rocket engine using a variety of flow components from the Flow Solver library. To build the RL-10 system model we will be using the following components:

CEA Adiabatic Flame component to model combustion.

Composite Heat Transfer component to model thermal transport through pipe-walls to ambient and to model the regen.

Boundary Conditions to constrain our system at the inlets and outlet.

Basic Valves to model the different valves in the system,

Flow Resistances to model specified losses where appropriate.

Flow Interfaces to model the fluids entering the combustion chamber (to transfer fluid properties as we switch from two-phase O2 and H2 to gaseous fluids for modeling combustion.

Pipes for modeling various flow-paths.

Restrictors with Discharge Coefficient for our injection ports to the combustion chamber.

Restrictors with Loss Coefficient to model both the Calibrated Orifice and the Venturi contraction/expansion.

Basic Centrifugal Pumps for our Fuel and LOX pumps.

Simple Turbine to model the Fuel Turbine

Shafts to connect our different pumps mechanically.

Gearbox is used to connect the shafts between the LOX pump and the Fuel Pump.

Exit Thrust Nozzle to determine total thrust.

Script is used in assigning O2 properties prior to combustion.

The components may be dragged and dropped from the component library onto the drawing canvas to build our system model. We can also copy and paste components that are already on the canvas into different locations. This can be especially useful when the same inputs for say, a pipe, are used consistently throughout the model. All components have both Inputs and a Results associated with them as seen in the figure below. This is how we will define our flow components.

The completed model of the RL-10 Rocket Engine can be seen below. There are a few simplifications; we are using composite heat transfer components to model free convection to a specified ambient temperature (as though this was a land-based test). Rather than tie the actual temperatures and flow conditions in the nozzle to the regen we are using assumed temperatures and convective heat transfer coefficients. For additional fidelity we could model the heat transfer between these two flow paths with calculated convective heat transfer coefficients and we could model cross-conduction along the pipes which deliver the fuel and oxidizer to the combustion chamber. With additional effort, more complex use cases could also be simulated.

For the sake of demonstration we set up a transient action to slowly vary the oxidizer control valve fraction open; starting at 30% and ending at 100% open and observer the change in thrust at the nozzle as a function of this changing transient action.

Plots may be easily added by dragging a Line Graph from the Visualization > Graphs section of the component library onto our canvas. To choose the characteristics we would like plotted against time we simply need to drag and drop the desired inputs or results onto our newly placed line graph.

RL-10 Transient Thrust Plot

We can plot both the oxidizer control valve fraction open and the thrust versus time to observe the thrust reaction to the opening of the valve. The thrust plot has some jumps that are likely due to numerical singularities – with additional work this could be improved.

As can be seen, setting up complex system models in Flownex is relatively simple with most operations being drag and drop. For ease of sharing models with colleagues or customers adding a background image makes it very easy to see how the flow components in the model correspond with a system schematic. Setting up and plotting the effects of operational transients is a breeze!

For more information on Flownex please reach out to Dan Christensen at dan.christensen@padtinc.com.

Meshing in the New Ansys Fluent Task-based Workflows

Working with a variety of users with different levels of CFD (Computational Fluid Dynamics) backgrounds, I have to admit that Fluent meshing used to be a challenging and confusing task for beginners and even intermediate users.

Ansys has addressed this challenge by redesigning the Fluent user interface to provide a task-based workflow for meshing that enables engineers to do more and solve more complex problems than ever before in less time. The new Fluent task-based workflow streamlines the user experience by providing a single window that offers only relevant choices and options and prompts the user with best practices that deliver better simulation results.

Best practices are embedded into the workflow in the form of defaults and messages to the user. This reduces the amount of training required to start using the software and makes it easier for occasional users to return to the software.

How to Mesh Watertight CFD Geometry in the New Ansys Fluent Task-based Workflow

In order to use this workflow, you need a relatively clean watertight solid and/or fluid regions that can be meshed by surface meshing and then volume filling (no wrapping required.) Geometry can consist of single or multiple bodies.

Going through the task-based workflow is straightforward. You are presented with several steps, like:

  • Surface mesh.
  • Describe geometry. (Fluid and/or solid)
  • Capping. (If you are creating an internal flow volume, then the capping tools in Fluent makes extraction easy)
  • Volume meshing. (If you wish to use the latest Mosaic meshing technology, select “Poly-hexcore”)
Mosaic Meshing Technology

Now, click on “Switch-to-Solution,” to bring the mesh into a familiar Fluent interface.

Fault-Tolerant Workflow for Ansys Fluent Meshing Wraps and Seals Leaks and Gaps

Sometimes CFD simulations contain dirty, non-watertight geometries. For instance, 3D scanned or manufacturing geometry files. These geometries may contain missing faces, gaps, holes, overlaps, and other issues. As a result, they require extensive cleanup before simulation.

To overcome this obstacle, Ansys offers a new Fluent meshing workflow that wraps dirty geometry without cleanup.

The workflow for non-watertight geometry offers distinct advantages over other meshing technologies such as:

Part management:

Users can perform CAD-level changes to any geometry or assembly, including dragging and dropping objects from the CAD model into the simulation model.

Leakages and overlaps:

The fault-tolerant workflow seals leakages caused by gaps and misalignments between solid bodies. This significantly reduces the manual efforts required to clean up geometry.

The fault-tolerant workflow can easily wrap leaky geometry

STL file input

The workflow can create fluid regions directly from STL files or scanned data. This eliminates the need to convert STL files into solid geometry for the biomedical, oil and gas, automotive and other industries.

Imported STL File

2020R2 updates:

There are a few important improvements both in Watertight meshing (WTM) and Fault-Tolerant meshing (FTM) workflows in the 2020R2 release.

FTM/WTM: Wild card selection in lists

The Meshing Workflows now have an option to use a persistent Wildcard string for selecting labels or zones. This is in addition to the Filter Text option previously available. The new Use WildCard option stores the wildcard string itself in recorded workflows instead of an explicit list of locations so that when they are played back with new geometries, the matching will be performed again and pick up any matching zones/labels that were not in the earlier geometry.

WTM: Support of Region-specific Sizing 

You can specify region-specific Max Size and Growth Rates during the Volume Meshing task.  If you enable Region-based Sizing, Fluent will compute default sizing specifications for each region.  These can then be adjusted as required for each region.

WTM: Start From Imported Surface Mesh

This is useful if you have an established surface-meshing workflow or if you already have a mesh generated (perhaps from another preprocessor or an existing Fluent case) and want to use that as a starting point for Fluent meshing. Once you import the surface mesh you have the option of using it as it is, or selectively adding additional Local Size controls and/or remeshing particular surfaces as needed.

FTM: Continuous prism layers for Poly and Poly-Hexcore for Fluids

For the Fault-Tolerant Meshing Workflow you can now create continuous prism layers without stair-stepping within poly and poly-hexcore fluid regions.  Note that this will apply in all zones of the region.

WTM: Support of Local Sizing on Labeled Edges

Once you have labeled the edges, you can select Edge Size in Add Local Sizing to prescribe a target size on the selected edge(s).

Efficient and Accurate Simulation of Antenna Arrays in Ansys HFSS – Part 2

Finite Arrays

In addition to explicit modeling of finite arrays in Ansys HFSS, there are three other methods based on using unit cells. To learn more about the unit cell, please see part 1 of this blog.

In part 2, I will introduce and compare these 3 methods (1) Finite array defined using the array setting in unit cell, (2) Finite Array using Domain Decomposition Method (FADDM), (3) 3D component arrays (Figure 1). Please note that that the method 3 requires HFSS 2020R1 or newer.

(a)

(b)

(c)

Figure 1. (a) Unit cell, (b) FADDM, (c) 3D component array.

Finite Array using Unit Cell

After defining a unit cell (Figure 1a), you may simply define the number of elements, the spacing between them, and the scan angle. The assumption is that there is no mutual coupling, every element has the same radiation pattern and the same excitation. This is a good approximation for large arrays (10×10 or larger). This method may not be accurate enough in some cases, for example for a small number of elements; and when the antenna elements have main beams toward the angles that are close to the plane of the array and toward the other elements, causing a higher level of mutual coupling. However, smaller arrays won’t require as large of a compute resource as a large array.

The advantage of this method is its simulation speed. It requires the minimum memory and time to provide a quick array simulation. To define the array (after running the analysis for unit cell), right-click on Radiation from the Project Manager window. Select Antenna Array Setup, and then Regular Array Setup. In the Antenna Array Setup under Regular Array type, define the location of the first cell, the direction, the distance between the cells and number of cells in each direction.

(a)  

(b)

(c)

Figure 2. Steps to define a finite array, (a) Antenna array setup, (b) & (c) Regular array setup.

Finite Array using Domain Decomposition Method

General Domain Decomposition (DDM) for a single domain provides a way to reduce memory requirement, however, it does not reduce the meshing time for large explicit arrays. Using Finite Array DDM (FADDM) addresses this shortcoming. The FADDM bypasses the adaptive meshing stage by duplicating the mesh that was generated for a unit cell. While the unit cell is used to create the mesh, the assumption of uniform excitation is no longer present. Each element in FADDM can have different magnitude and phase and is individually modeled, however, the mesh created in the unit cell is used to generate the overall mesh, therefore, no CPU time is spent on generating the mesh. This can be seen in Figure 3, by linking the mesh of the unit cell to the FADDM, the mesh is copied, and no mesh refinement will be needed. You may compare it with the explicit array of the same size (Figure 3(c)) where the entire array has to be meshed and mesh refinement will be necessary for adaptive meshing. This can be a huge simulation time saving when the array size is large.

(a)

(b)

(c)

Figure 3. (a) Mesh from a unit cell, (b) mesh linked to FADDM, (c) explicit array mesh.

To create FADDM from unit cell, create a new HFSS design. Then copy the unit cell into the new design. In the Project Manager window, right-click on Model and choose Create Array, as shown in Figure 4. This opens the window that allows user to define the number of elements of the array along the lattice directions. By selecting “Active Cells” tab, user can define where active, passive and padding cells are located. This gives the user a means of creating different lattice shapes.

Please note that padding cells defined in the General tab represent the size of vacuum buffer surrounding the array. They are not visible to the users but are included in the FADDM simulation. The same mesh from the unit cell simulation is duplicated to padding cells (Figure 5). It is also possible to add padding cells in the Active Cells tab, and those cells are also invisible, but can be used to create the array lattice of the desired shape (Figure 6).

Figure 4. The steps to create a DDM array, the Padding Cells are used to create the vacuum box and are invisible to the user.

Figure 5. The FADDM needs a padding cell to create a vacuum box around the design. The padding cells are invisible to the user.

(a)

(b)

Figure 6. (a) Padding cells can be used to create a lattice, (b) the lattice created does not show the padding cells.

The next step is to link the mesh to the unit cell. First, an analysis setup should be created. Choose Advanced Solution Setup. In the Driven Solution Setup General tab, reduce the number of Maximum Number of Passes to 1, as shown in Figure 7(a), then choose Advanced tab and click on Import Mesh (Figure 7(b)). Click on Setup Link. This is to link the simulation to the mesh of a unit cell. There are two steps needed here. First, choose the file or design that contains the mesh information (Figure 7(c)), second is to map the variables Figure 7(d). The last step to setting up the analysis is selecting Advanced Mesh Operation tab and selecting “Ignore mesh operation in target design” (Figure 7(d)). Now the array is ready and simulation can be run. You notice that adaptive meshing goes to only one pass. If in Setup Link window the option of “Simulate source design as needed” is checked (Figure 7(c)), then if a design variable that affects the geometry is changed, the meshing of the unit cell is repeated as needed. After the simulation is completed the elements magnitude and phases can be changed as a post processing step by “Edit Sources” (right-click on Excitations). The source names provided in the edit sources is slightly different than an explicit array (Figure 8)

(a)

(b)

(c)

(d)

(e)

Figure 7. Different windows related to setting up a linked mesh in FADDM.

Figure 8. Edit sources gives the ability to change the magnitude and phase of each element.

To compare the run-time and array patterns an example of circular polarized microstrip patch antenna of a 5 ´ 5 element array is shown in Figure 9 and Figure 10. The differences can be seen at angles away from the broadside angle. This shows how the edge effects are ignored in the unit cell approximation. Table 1 shows the comparison of memory and runtime for the three methods.

Table 1. Comparing run time and memory needed for a 5 x 5 array, explicit array vs FADDM.

Elapsed Time (min:sec) Memory (MB)
Unit cell01:0683.1
FADDM03:1781.4
Explicit Array25:0694.7

Figure 9. Comparison of the far-field patterns for LHCP (co-polarization) created using FADDM and unit cell array.

Figure 10. Comparison of the far-field patterns for RHCP (cross-polarization) created using FADDM and unit cell array.

Finally, we compare the co-polarization pattern with an explicit 5 x 5 element array for scan angles of 0 and 30 degrees in  Figure 11 and Figure 12, respectively.

Figure 11. Comparison of far-field LHCP created by explicit array vs. FADDM.

Figure 12. Comparison of scanned far-field LHCP, scan angle of 30 degrees.

3D Component Array

In 2020R1 the option of 3D component array was added. This option provides a means of combining different unit cells in one array. The unit cells are defined and imported as 3D components. To create a 3D component unit cell, define each type of the cells in a separate HFSS design, run the analysis, then select all objects in the model. In the Model ribbon, click on Create 3D Component, assign a name (no spaces are allowed in the name), add any information you like to add such as owner, email, company, etc., then click OK. Once all the 3D component cells are created, create a new HFSS design for the 3D component FADDM.

The next step is to create Relative CS for each of the 3D component elements in the HFSS design that will contain the array. For this step you need to plan the array lattice ahead of time, so the components are placed in the proper locations (Figure 13). Overlap is not allowed.

The unit cells should have the followings:

  • Identical dimensions of the bounding boxes
  • Identical Primary/Secondary (Master/Slave) boundary on the unit cells.

The generation of FADDM is similar to single unit cell array, except that when you select Model->Create Array, the window will be shown as 3D Component Array Properties (Figure 14). After choosing the number of elements and the number of padding cells, the unit cells window (Figure 15) will give you options of choosing one of the 3D component unit cells for each location of the elements in the lattice. The cells can be color coded. In the example shown in Figure 16  there are 3 components, the blank cell, the vertical cell and the horizontal cell. The sources under Edit Sources window are also arranged based on the name of the 3D component cells. At this point there is no option of linking the mesh. Therefore, the number of passes for adaptive mesh should be set to a number that is appropriate for getting a convergence.

Figure 13. 3D component unit cells are arranged to create a 3D component array.

Figure 14. The 3D component array can be created the same way as creating FADDM using a unit cell.

Figure 15. The unit cells are color coded for easier lattice creation.

Figure 16. The result of lattice created using 3D component array.

Conclusion

Unit cell and Finite Array Domain Decomposition are excellent options for simulating large finite arrays within a reasonable runtime and memory requirements. The 3D component finite array is a nice added feature in 2020R1 that now provides a way to combine unit cells with different geometries in one array.

If you would like more information related to this topic or have any questions, please reach out to us at info@padtinc.com.

SPISim – New addition to the Ansys Electronics family

In this article, I would like to introduce some new features added to the Ansys Electronics Solution 2020R2 release called SPISim. Since this is a new tool, I’ll focus on describing its capabilities as well as some possible applications.

What is SPISim?

Signal, Power Integrity and Simulation (SPISim) focuses on system-level and on-chip SI/PI modeling, simulation, and analysis. The tool presents a variety of different features, which are split on separate modules shown below.

Let us look at each module individually and highlight the key functionality.

There are 2 main Modules VPro and MPro. All the other features (sub-modules) are split between these main two.

VPro Core

This is a versatile GUI for viewing waveforms. It supports a wide variety of formats including .tr0, .ac0, .ibis, .csv, .mat, .raw, .snp, .citi, and more. Besides simple viewing capabilities, VPro can also be used for waveform analysis:

  • Overshoot and Undershoot (for Peaks and Valleys)
  • Threshold Crossings
  • Min/Max Peak-2-Peak
  • Root-Mean-Square Value 
  • FFT, iFFT
  • Correlation
  • Pulse to PDA

Using the information about waveforms, this tool can also plot an eye diagram, perform simple correlations, and run measurements. The viewer also supports framework scripting on JavaScript, Ruby, TCL, etc.

DPro Unit (VPro Module)

DPro (short for DDR Pro) provides comprehensive DDR related post-processing analysis. Key functionalities of this tool:

  • Batch mode of processing one or more waveform files
  • Support of multiple receiver processing
  • Built-in and customizable derating table and derating processing
  • Built-in 100+ measurement functions for typical DDR signal analysis
  • Results cross-probing and show problematic location automatically

The feature is organized in a wizard-like style. The user simply needs to fill out information in 6 tabs and click the ‘Run’ button. Overall, it is very intuitive to use, but like any new features, there is a learning curve for a new user.

TPro Unit (VPro Module)

It provides comprehensive transmission line related modeling, analysis, post-processing, and viewing capabilities. Here are several main functionalities offered by this add-on:

  • Comprehensive stackup planner to model t-lines’ performance in different stackup configurations
  • Advanced t-line modeling viewer for rapid analysis such as impedance, crosstalk, or propagation delay analysis
  • A table viewer for RLCG frequency content
  • What-if analysis for quick impedance/crosstalk calculation, and data processing, such as trimming and merging of frequency points
  • Batch mode processing and measurements for one or more t-line model files, result is a plain .csv file ready for further modeling or analysis

This feature helps the user to run pre-layout ‘what-if’ analysis. Both ‘transmission line analyzer’ and ‘layer stackup planner’ give the user a flexible way of understanding potential design constrains and guidelines.

SPro Unit (VPro Module)

This module is similar to TPro in a sense of the capabilities. However, it is directed to view and analyze S-parameters instead of tabular transmission line data. Also, in contrast to TPro, this feature has a separate tab ‘S-Param’ with all the features listed there.

Here are major capabilities of SPro:

  • Advanced s-parameter viewer for speedy analysis such TDR/TDR or PDA analysis
  • Table viewer for frequency content; export s-parameter data to matlab .mat format and more
  • 20+ advanced analysis functions such as mixed-mode conversion, cascading and renormalization
  • Batch mode processing and measurements for one or more s-parameter files
  • Support customizable s-parameter reporting generation for lab automation and beyond

Besides the conceptual similarities with the TPro, S-parameter’s waveform viewer based on VPro waveform viewer. Therefore, all operations available in VPro can also be found in S-parameter viewer.

Signal Generator Unit

This tool allows the user to generate a signal and use it in a future analysis. The generator offers wide variety of signal patterns (such as PRBS, Pulse, Sine, Square, Sawtooth etc) in combination with the PAM4 and NRZ modulation schemes. The user needs only to specify parameters for the signal and then create it.

This simple, but very powerful feature helps to save time for the engineer. 

MPro Core

By definition, MPro is a modeling unit, which helps the user to work with the data. However, modeling can mean different things. The main advantage of MPro is providing the user with the simple environment for data manipulation. Here are all main functionalities of this core module:

  • Table data processing: combine, extract, summarize statistically, etc
  • Plan sampling with design of experiments, full factorial, Monte Carlo, etc
  • Simulate or collect data using customizable scripts, supporting multi-CPU/multi-thread
  • Visualize data in statistical, 2D or 3D plots
  • Model data using response surface modeling, neural network (feed forward and radial basis), etc
  • Optimization using linear, nonlinear, or genetic algorithm methods

BPro IBIS and AMI Unit (MPro Module)

BPro is one unit, however in this description I have purposefully separated it into two – BPro IBIS and BPro AMI, because the functionality of BPro is very broad. It is easier to focus on a one thing at a time.

Generally, BPro brings comprehensive IBIS related modeling, analysis, post-processing, and viewing capabilities to user. In more detail:

  • Has an inspector to view IBIS model’s textual content and visualize various waveform/current table easily. Tool also allows manual editing of model data with a simple mouse click and drag
  • Built-in advanced IBIS model generation flow from either scratch or existing simulation data. Tool will guide user from modeling setup, spice decks generations, simulation, modeling, syntax checking with golden parser, validation to final figure of merits (FOM) reporting
  • Support batch mode generations of performance reports for one or more model files. Results are in .csv file format and can be used for further analysis
  • IBIS model generation from Spec. or data sheet without performing any simulation. Generated model will also have two sets of waveforms under different loading conditions

Under ‘IBIS’ menu tab, the user will find separate sets of commands for both IBIS and AMI, as well as commands for IBIS-AMI in general.

Summary

This new addition to Ansys Electronics Solution brings a very wide variety of features to engineers. All Waveform Viewer, Signal Generator, IBIS-AMI modeling, DDR analysis, Data optimization, and Transmission line planner are united under one tool – SPISim. We can launch this tool either from within Ansys 3D Layout or SIwave, and, in 2020R2, is accessible through the Electronics Enterprise license.

Here is an overview of the SPISIm functionality:

Besides developing the help documentation and video demos, SPISim engineer team provides users with the detailed information about the tool in their blog – http://www.spisim.com/blogs/blog-articles-index/  and helps to fill out the technical ‘gaps’ by sharing the reference material – http://www.spisim.com/products/ami-spisims-ibis-ami/academic-serdes-ami-reference/

If you would like more information related to this topic or have any questions, please reach out to us at info@padtinc.com.

Windows Update KB4571756 Triggers Error 3221227010 for Ansys Electronics Products

On September 7, 2020 Microsoft released a Windows update KB4571756, which may cause the Ansys electronic products to fail with the Error:

3221227010 at ‘reg_ansysedt.exe’ and ‘reg_siwave.exe’ registration.

This is the error message, users would see if they right-mouse-click and run the following file as administrator:

C:\Program Files\AnsysEM\AnsysEM20.2\Win64\config\ConfigureThisMachine.exe

To resolve this issue, here are the steps we recommend users take:

  1. Revert the updates.
    1. If the issue is not resolved or something your IT won’t let you do, continue to the next steps.
  2. Set an environment variable that turns off the driver that is causing the error. 
    1. Use windows search and type “system environment” and click on “Edit the system environment variables”
    2. This opens the “System Properties” tool
    3. Go to the “Advanced” tab
    4. Click on “Environment Variables…” at the bottom
    5. In the System Variables window click on “New…”
    6. Create the following variable:

      Variable Name: ANSYS_EM_DONOT_PRELOAD_3DDRIVER_DLL
      Variable Value: 1
    7. Click OK 3 times to exit out of the tool and save your changes. 
  3. If the issue is still not resolved, there is one more step:
    1. Go to C:\Program Files\AnsysEM\AnsysEM20.2\Win64\config\
    2. Right-Mouse-Click on “ConfigureThisMachine.exe” and run as Admin. 

If these steps helped to resolve the issue, you will see the following info message when ‘ConfigureThisMachine.exe’ is run:

If this does not work, please contact your Ansys support provider.