Beyond Clicking: Named Selections Move to the Worksheet

It seems like a minor thing.  For many users who have not known the glory that is APDL selection logic, they are not even aware of the power that surges through your fingers when you grab all the vertices between X = 1.2 and X=1.8, grab the lines attached to those vertices, then the areas defined by those lines.  It sometimes borders on a magical incantation.  It is not a minor thing.  It is reaching into your model and grabbing it by the throat and asserting your control over it.

OK, maybe that is an exaggeration.  But it has been a frustration for many of us to only be able to create named selections by clicking on geometry in Workbench.  At release 13 the friendly developers working on ANSYS Mechanical have added a very cool adaptation of the MAPDL selection logic into the workbench world: Worksheet Named Selections.  Right now they only work with geometry, but look for nodes in future releases. 

Creating a Worksheet Based Named Selection

Most people don’t know about this feature because it is not really obvious that it is there.  If you have no Named Selections in your model, the Named Selections Icon in the toolbar doesn’t even show up unless you click on the Model top branch of your tree:

nsw_F1Figure 1: Accessing Names Selections for the first time in a model

If you have some already in your model, just click on the Named Selection branch and you will see the Named Selection icon on the tool bar.

To create a Named Selection… OK.  Stop.

 <RANT> Someday I’ll find the committee that decided to call these groups of entities “Named Selections” and give them a bill for my coming carpal tunnel syndrome.  I think it is a good descriptive name and as long as I’m just clicking on it in a GUI, the name is fine.  But when I’m talking or typing about it… what a pain to have two words to describe it.  I miss the days of only having 8 characters for entity and routine names in FORTRAN.  There is too much verbosity in the world!  Down with long, descriptive names!  Up with short, non-descriptive names that you have to “know” in order to use!  Why couldn’t we call it a set, or a group, or an assembly – better yet, asmb.  Anyhow, from now on I will refer to Named Selections as NSs or a NS.</RANT>  

To create a NS using a worksheet, you simply clock on the NS icon.  This adds a NS Branch and a NS to that branch.  If you look at the details View for the NS you will see that the Scoping Method is set to Geometry Selection by default.  Click on the Geometry Selection and you get a drop down menu that now offers you the choice of using the Worksheet.  Make that choice:

nsw_f2Figure 2: Telling Workbench you want it to reveal Worksheet method of creating a NS

Now you should see a new tab in your graphics window called Worksheet, and in that Worksheet you should see a Generate button and a table.  If you window is large enough, it will look like this:

imageFigure 3: The NS Worksheet

If it is too small to show the whole table, a scroll bar will be at the bottom and cover up that blank row. Don’t panic, it is supposed to do that.

image
Figure 4: The NS Worksheet with Scroll Bar covering the first row

If you are like me you get to this point and you go “What Next”  It is not obvious what the next step is (well, to me anyway.  But it may be trivial to those with younger brains).  Clicking on the blank row doesn’t do anything. To start creating you selection you right click on the table and choose Add.  You are now ready to specify your NS.

Building a Worksheet Based Named Selection

This tool is pretty clever.  You basically add rows to the table that act on geometry from top to bottom.  In many cases you just use one line.  But for more sophisticated selections, you can really stack them up and get complicated.  After each line is executed, the active set changes based on what is on that row.  The final active set is what goes into the named selection.

Lets take a look at the table and each column in it.

nsw_f5
Figure 5: NS Table

Action
This is the most important column. It tells workbench what you want to do in this step of applying the filter.  Under action you have the following options:

  • Add: Adds the entities defined by the row to the active set.
    • This is a UNION in set theory
    • For the first row in the table:
      • This is a CREATE operation in set theory
      • There is no “active set” so the first line add’s to a null set (xSEL,S,,, in APDL)
    • For the second and subsequent rows:
      • In order for it to work, the value in the Type column has to be the same.  If they are not the same, then nothing gets selected.
      • This is an OR operation.  So if you have one line that selects all vertices with X > 0 and a second with Y > 0 you will get vertices that are X > 0 OR Y>0.
      • xSEL,A,,, in APDL
  • Remove: Removes the entities specified on the row from the set.
    • Think of it as an unselect: xSEL,U,,, in APDL
  • Filter: Selects a subset from the active set
    • This is an INTERSECTION in set theory
    • This is an AND operation.  It puts everything in the active set that is also defined by the row in the active set.
    • xSEL,R,,, in APDL
  • Invert:  Selects everything not in the active set of the current active set type, and makes it active
    • This is a COMPLIMENT in set theory
    • This is a NOT using the everything of the current type vs. the active set.
    • xSEL,INVE in APDL
  • Convert:  Selects all of the entities of the type specified in the Geometry Type column that are connected to the active set and makes those entities the new active set
    • Must go up or down in topology tree by one step:  vertex <-> Edge <-> Face <-> Body
    • When going up it selects ANY entity that is attached to the current select set.  There is no way to specify just those that are fully defined
    • xSLx in APDL:  LSLA, ASLL, KSLL, LSLK, etc…

Geometry Type
Right now it only selects the standard geometry topology types:

Workbench

CAD Name

MAPDL Name

Body

Solid Volume
Face Surface Area
Edge Curve Line
Vertex Vertex Key Point

Remember that you can only have one Geometry Type in the active set at a time.

Criterion
This tells the program what filter you want to apply to select geometry.  The table below shows the different criterion and what Geometry Type’s they apply to:

  Vertex Edge Face Body Comment

Size

 

X

X

X

Selects entities by whose Length (Edge), Area (Face), Volume (Body) fall within the specified values

Type

 

X

X

X

Finds entities of a certain underlying shape:
Body: Solid, Surface, Line
Face: Plane, Cylinder, Cone, torus, Sphere, Spline, Faceted
Edge: Line, Circle, Spline, Faceted

Location X

X

 

X

X

You can specify a value or a range and you can also specify a coordinate system to use!

Location Y

X

X

X

X

You can specify a value or a range and you can also specify a coordinate system to use!

Location Z

X

X

X

X

You can specify a value or a range and you can also specify a coordinate system to use!

Face Connections

 

X

   

Used to pick edges by the number of faces they are connected to:  0 would be all free edges, 1 would be all edge on only one face, 2 would be shared by 2 faces, etc…

Operator
This is where you specify how you want to control your selection.  You have your standard if() type operators as well as the ability to specify a range.  For range you put values in the Lower and Upper Bound columns and for all others, the Value column.  The options are:

  • Equal, Not Equal, Less Than, Less than or Equal, Greater Than, Greater Than or Equal
  • Range

Units
Like most things in Workbench, you can change the units here if you want.

Value
Here is where you put in value you want to select on (unless it is a range).  Put in a numerical value for Criterion = Size or Location X/Y/Z.  Use the values in the table above for Criterion = Type. And lastly, if you are doing Face Connections, put in the number of faces.

Lower Bound, Upper Bound
When Criterion is set to Range, you specify the range here.

The other thing you should know is how to modify your table.  To change a value in a cell, just click on it.  To delete a row, click on a cell  in the row then RMB and select delete.  Do the same thing to insert a new row before the currently selected row.

Lastly, remember to hit the generate button!  If you don’t, it does not update and even though you have a green checkbox next to your NS in the tree, it is not up to date.  You have to hit generate or select the NS branch and RMB->Generate Named Selections

Starting with Picking

A nice way to start a NS using a worksheet is to actually pick an entity on the screen then RMB->Create Named Selection.  this brings up a dialog box where you can specify the name and if you want to turn it into a Worksheet named selection:

imageFigure 6: Selection Name and Options Dialog

If you choose “Apply Selected Geometry” it makes a standard Scoping Method of “Geometry Selection”  This is the default.  But if you pick “Apply geometry items of same:” and then pick one of the options, it creates a NS with a Scoping Method of “Worksheet.”  Now you can go into the worksheet and add rows to it.

Tips on Using the Worksheet Named Selections

That was a lot of information! If you need more clarification you can get even more from the Help menu:

// Mechanical User’s Guide // Basics // The Mechanical Application Interface // Named Selections // Worksheet Rules for Specifying Named Selection Criteria

When you want to use these selections it is fairly simple.  Each time you add a row you modify the selected set.  Like most things it is a good idea to take a crawl-walk-run approach. Add a row and click the generate button and see how many entities you get in the details view.  Or simply click on the graphics tab to visually see what was selected. Then add the next row, and so on until you have what you want.

As always, it is a good idea to give descriptive names to your NSs.  The default of Selection, Selection 1, Selection 2 doesn’t hold up in 4 months when you try to figure out what you were trying to do.

Some Examples

The most common way that we have used this is to select all the holes of a certain size.  There are a couple of ways to do this, but the one I prefer has the following steps.

  1. First you need to know the circumference of an edge on your hole.  You can do this by multiplying your diameter by PI or just select one of the edges and read the length of the edge on the bottom of the screen (because multiplying by PI is too hard)
    nsw_f7
    Figure 7: Avoiding the use of the first thing you learned in 5th grade geometry
  2. Now click on the Named Selection icon and change the Scoping Method to Worksheet.  Add a line and set it to: ADD, EDGE, TYPE, EQUAL, CIRCLE
    This gives you all the circle edges
  3. Next Add another row and set it to: FILTER, EDGE, SIZE, EQUAL, 0.7854 (That is the length of my hole’s circumference for this example).  Note that we used FILTER, not ADD!
    View the results and you should now see the edges of you holes. It is often good to switch to wireframe to see all the edges:

    image                                                   Figure 8: Edges Selected on Holes of Diameter 0.25”

  4. The next step is to get the cylinders.  We do this with a new row that uses Convert To: CONVERT TO, FACE.  This gives us the holes we want, but also the top and bottom faces that are attached to the hole edge:
    image                                                                   Figure 9: Faces attached to hole edges
  5. The last step is to select all the cylinders in the active group.  Add a row with: FILTER, FACE, TYPE, EQUAL, CYLINDER:

    image                                                                      Figure 10: Holes are selected!

Final Thoughts

And that is a basic introduction to using the worksheet to do selections.  As always, the best way to get good with this is to use it.  The help is a pretty good reference as well.  Users can get very creative with this and really make some big improvements to productivity, eliminating the need for a few more APDL Code Snippets in the tree.

Random Thoughts on RSM, ANSYS people, and my new iPad2 and my Son’s 3DS

Warning, when you get done reading this you might be a little disappointed.   A couple of our engineers promised nice chunky articles for this week but then got hammered with billable work.  And I was off doing paperwork all week so I didn’t have time to write anything truly useful.  So, a day late, here are some random thoughts disgorge as a stream of consciousness prattling.

I’m Digging RSM

We have been redoing our compute server setup for a while now and it is getting pretty robust and useful.  When I recently had an opportunity to run a real model I initially submitted it on my desktop, then found that it bogged it down so much that I could not continue my slug through HR documents and financial reports… and the livelihood of PADT depends on my ability to slug through such things. The obvious solution was to batch off my ANSYS Mechanical solve on one of our servers.  And RSM made it easy.

I have to give credit to Jason Krantz and our IT team for getting things set up right a while back.  So when it came time for me to use it, it was real easy.  Now the graph on Ted2 (the server, not Ted Harris) is humming along using 7 CPU’s and about 13GB of RAM and my job is on LS3 and the force value is plunging towards convergence.  Good times… Good times…

To make this article somewhat worthwhile I thought I’d pass along a couple of things I had to remember or that Doug reminded me of.

Controlling the solve options on the remote machine

If you want to set the number of CPU’s, memory usage or any other options that go on the ANSYS command line, you do that by going to Tools->Solve Process Settings… in ANSYS Mechanical.  Pick the queue on the remote machine (if you don’t see it, you don’t have RSM set up right and that is a subject for a real posting…)  then click on Advanced.  Here you will see you options for using DANSYS, specifying your memory (always a good idea in my opinion), the number of CPU’s, additional command line options, Unix options, etc…  the most important ones, and the ones you should always check before you run are the number of processors and memory.

image

Monitoring your run

Since you are running remote your output file and your various convergence graphs don’t get displayed automatically.  I have to admit I sat at may desk for a while before I realized nothing was going to happen on its own.  Then Doug reminded me, only with a small amount of disdain in his voice, that you have to prompt the remote solver for such information.  You do this by Clicking on Solution Information in the tree and RMB –> Retrieve.  It will send off a request to the solving machine to send back the data.  It takes some time but eventually you will get updated Solution Information.

Of course the old-foggy way of doing it is to SSH over to the solving machine (I use PUTTY) and go to the solving directory and do a tail on the solve.out file.  The graph is much more useful but having a file scrolling convergence information across your screen is much more impressive and makes you look much busier to people who wander buy and glance at your screen.  At least in contrast to Facebook.

imageimageimage

Which makes you look more impressive or productive?  trail –f solve.out, ANSYS Mechanical Convergence Plot, or Facebook?  Maybe I should set the terminal for the trail file to be green on black…

Getting Files Back

One downside of RSM as it is now configured is that it doesn’t copy back all the files that you may create during your run.  It can’t read your mind so it doesn’t know that “frc_hist.csv” is something you need.  A simple work around is to add an APDL Code Snippet to the post processing part of your tree and add a line at the end with something like:  /sys, cp frc_hist.csv ~

This copies the file to your home directory on the remote machine.  Then, when the job is done you an go over and retrieve it.

ANSYS People

I get to interact a lot with the people that work at ANSYS, Inc.  Sales, Support, Development.  The whole company.  And over the last two weeks we have been fortunate enough to have some folks come out and visit our largest customer, Honeywell.  This has been going on for years now, since we started PADT 17 years ago.

Last night we took three of these ANSYS folks to dinner.  One from HQ here in the US, one from ANSYS India and one from ANSYS France.  We started at 7’ish and got chased out of the restaurant at 10:00.  We talked about old ANSYS stuff, new ANSYS stuff, development methods, solvers, computers, strange animals, traveling, the competition, graphing, jScript, UDF’s, automatic report generation, morphing, blah, blah, blah.  Three hours was gone in a blink of the eye.  Fun. 

My point – the best thing about ANSYS, Inc. is the people who work there.  Smart, passionate, knowledgeable, hard working, and their hearts are always in the right place. 

Just thought I’d pass that along.  If you get a chance to really spend some quality time with any of them, do it.

ANSYS Commercial

And if you haven’t seen it yet, check out the new ANSYS commercial on the home page: http://www.ansys.com  Click on “View Video”  Put aside your engineers detachment and strong desire to pick anything that looks like marketing to little pieces.  I think it is super cool and makes me even well up a bit.  I really like the new tag line: Realize Your Product Promise. 

image

My new iPad2 and my Son’s 3DS

Love it.  3G version.  Take it everywhere. Instant access, on a screen I don’t have to strain to read, to information.

But from an engineering standpoint, I bring it up to not only fill up space in this posting.  I bring it up because we have been wondering a lot about the fact that the type of interface on an iPad is probably going to become the dominant interface.  How should the GUI on an simulation tool change to take advantage of that? 

About the same time as I got my iPad2, my son got a Nintendo 3DS.  It has a small but very clear 3D screen that you don’t need glasses to view.  How cool would it be if one of your monitors was like that. If you could put your graphics window on the 3D monitor and view your model in 3D without dorky glasses? Would that be a productivity increase or just a source of additional eye strain?

Back to paperwork

OK, I’ve filled up a posting.  Now on to filling out FORM BRDI-1A: 2010 BUSINESS R&D AND INNOVATION SURVEY.  The first words under the title are “Your Response is Required by Law” so I better get cracking… wait, my model just converged. Let me go retrieve that csv file and see if the answers make sense. 

Making Pretty Plots in ANSYS Mechanical and Mechanical APDL

imageI was looking for some new images for our web page and all of the plots I had were pretty much screen grabs.  Not the high quality I was looking for.  And putting a picture of Angelina behind a mode plot probably won’t go over too well, or will go over too well and will distract everyone.  So I brought up the original models and started playing around trying to get a better quality image, and did pretty well.  And, needing an article for this week, I thought I’d share what I found. If you don’t use MAPDL, skip on down to the ANSYS Mechanical bit.

ANSYS Mechanical APDL

For my MAPDL plots I actually referred back to an old “The Focus” article I did in 2002. Yes, 2002.  You can go back to that article for the details but here are the important bits below:

  • Invest in a good image editing tool. If you are ultra-cheap, use the open source GIMP.  But Adobe Photoshop and Corel Paint Shop Pro are worth the investment.  With Paint Shop Pro having the price/performance advantage if you don’t already have Photo Shop
  • You don’t want to do screen grabs.  MAPDL has great plotting to file abilities and you want to use those.
  • Use the /show command to output high quality graphics and skip using the pixels on your screen. You have two great options:
    • Use /SHOW,PNG to tell MAPDL to write to a PNG file when you issue plot commands
      •   PNG is the best choice for smaller files and high resolution.  JPG may be more common but you will find that the images can be fuzzy, especially around edges.  Go PNG.

image

  • If you are really hard-core and you want an exact representation of you model that can be scaled, then do a /show,PSCR,,,8.  This makes an encapsulated postscript file.
    • If you don’t know what that is, we advice you don’t bother.
    • But if you do, pop it into Illustrator, group it and now you have a vector graphic you can scale, trim, edit and really do cool things with.
  • Get to know how to use the /ERASE, /NOERASE button for making multiple plots on a page.  You can use /win with the standard view commands to show results from different modes, different load steps, or if you get real clever, even different models.   Here is an example for plotting 4 different mode shapes:

! Plots first 4 modes
/erase
/win,1,ltop $/win,2,rtop
/win,3,lbot $/win,4,rbot
/view,all,1,1,1,1
/vup,all,Z
/angle,all,0
/dist,all,1.3
/focus,all,.2,.08,.05
/win,2,off $/win,3,off $/win,4,off
/plopt,info,0
/annot,delete
/TSPEC, 15,0.700,1,0,0
*dim,anx,,4
*dim,any,,4
*dim,frq,,4
anx(1) = -.98, .4, -.98, .4
any(1) = .01, .01, -.92,-.92
*do,i,1,4
set,1,I
*get,frq(i),mode,i,freq
plnsol,u,sum
/win,i,off
/win,i+1,on
/noerase
*enddo
/tlab,anx(1),any(1),Mode 1: %frq(1)% Hz/t
/tlab,anx(2),any(2),Mode 2: %frq(2)% Hz/t
/tlab,anx(3),any(3),Mode 3: %frq(3)% Hz/t
/tlab,anx(4),any(4),Mode 4: %frq(4)% Hz/t
/replot
/erase
anx=
any= 
image
  • Get rid of that black or blue-blue background by changing your screen to reverse video.
    • Through the GUI: PlotCtrls->Style->Colors->Reverse Video
    • Or put the following in a macro:
      /RGB,INDEX,100,100,100, 0
      /RGB,INDEX, 80, 80, 80,13
      /RGB,INDEX, 60, 60, 60,14
      /RGB,INDEX, 0, 0, 0,15

image

  • Use /TYPE to turn on slower, but higher quality hidden line removal
    • Default is z-buffer, which is fast but not a accurate
    • Precise is the best: /TYPE,,4 for hidden
  • Get smoother curved surfaces by increasing the number of facets on your polygons with /EFACET
    • /GRAPH,POWER is needed for it to work (default)
    • /EFACET,4 puts 16 (4/edge) faces on every element face.

image

  • Getting lots of pixels is the most important.  Just make a big file with lots of pixels by using /GFILE, 2400.
    • This gives you a file that is 2400 pixels tall
    •   You can then scale it down when you want to use it and get nice clean images.

There is a lot more you can do, like annotation, backgrounds, changing fonts, etc… But this covers the basics that everyone should know.  Take a look at the original article and help on the following command for more: /PLOPT, /EDGE, /TRIAD, /LIGHT, /DEV,FONT, /TEXTRE, /GFORMAT, /ANNOT.

ANSYS Mechanical

Now things get a little different. In that MAPDL is old, older than some of you reading this article, it has some wicked cool tools that were put in there from the days when many of us didn’t even have a color monitor.  Now the world is online and everything is about an 200pixel wide JPEG file to be uploaded onto Facebook, you don’t have as many options to get high quality images out of the Workbench interface.  But the good news is that the default image, is better than most of the high quality ones you have to work for to get out of MAPDL.

The Basics for ANSYS Mechanical

So, for a lot of cases, just doing a screen grab of your graphics window in ANSYS Mechanical is good enough. But if you want nicer plots, here are some suggestions:

  • If you are on Windows Vista or 7, then you need to turn of Windows Aero.  This is the transparent fancy-pants options for how windows are displayed. But the screen capture used in ANSYS Mechanical doesn’t work if it is turned on.  So if you are going to be doing Images or Animations, you need to turn it off.
  • Beyond the basic screen grab you should become familiar with the options under the little “New Figure or Image” Icon on the main icon bar

image

  • If you choose Figure or Image it adds a Figure or Image object under whatever object you have selected.
    • A figure is a 3D image that updates every time you click on it.  It stores the view settings when it is made, but you can rotate and zoom at any time.  It is a 3D picture
    • An image is a screen capture that is stored in the tree.  You can also import an image from your hard drive.
  • The easiest way to get a nice plot is to get what you want on the screen and use “Image to File”.
    • By default this will make a PNG file that is the resolution of the image on your screen.
  • For a higher quality image, make your graphics window bigger.  Remember, all ANSYS is doing is grabbing your screen and saving it to a file.
  • The default background is a bit annoying for plots, especially if you want just your model.  To turn it off go back to your project page and use Tools->Options->Appearance and set Background Style to Solid and Background color to white.
    • If you want to go old school and have white text and black background, you can set that here as well.

bg1bg2bg3

  • If you want to make an image that can float in your PowerPoint (no background, transparent) then I like to turn off all the decorations.  Do this by making sure your background is solid (white is usually good enough) and then go to View in the menu and uncheck Ruler, Legend, and Triad.
    • Once in PowerPoint, use the “Set Transparent Color” feature to set the white bits to clear.
    • Or, use you fancy image editing software to remove the background. (and put a cheesy one in if you want, as shown here:)
      image
  • Play with the options to get the image you want.  The contour style, if you want your elements shown or not, etc…
  • Another thing to know is how to change the default format for saving the images.  The default is PNG, which we recommend.  But if you need JPEG or BMP you can change it in Mechanical under  Tools>Options>Mechanical>Miscellaneous>Image>Image Transfer Type.

Getting Better Resolution on a Single Plot in ANSYS Mechanical

The above will work for most plots, but what to do if the image you get from screen grabs is just not good enough?  Maybe you are on a laptop and you can’t get the resolution you need. I especially find this true when I want to view my mesh.  This is the default I get with mesh on:

sc1

By using the Print Preview tab, I can get a very high resolution image:

  • Get the view you want in the graphics window.
  • Click on the Print Preview tab at the bottom of the graphics window
  • You should see what you saw on the screen.  Don’t panic.
  • On the Print Preview tool bar click on the little picture and choose High Resolution
  • It should update with a very nice high-rez image.
  • This is an HTML page, so you can right click on the image and copy it, or save it to disk.

preview

Getting Better Resolution on a Multiple Plots in ANSYS Mechanical

The above will work for a single image but can be a pain if you want a bunch.  For that we recommend that you leverage the Report Writer capability, even if you don’t want the report.  The Report Writer makes an HTML report of everything in your Model tree.  So if you put Figures in your tree, it will make those for you when you do a Report Preview, all in one nice little directory.  Here is how to use it:

  • For every plot you want, click on the object you want the plot of and then sue the “New Figure or Image” drop down to insert figures for every view you want.
    • Don’t use Images, remember those are just screen grabs and won’t give you better resolution.
  • When you are done, click on the “Report Preview” tab under the Graphics Window.
  • ANSYS Mechanical will go of and think for a while, then it will show you your HTML report.
  • You can cut and paste from the report if you don’t have a lot of images.
  • If you do have a lot of images, you will want to click on the Publish button
    • This brings up a dialog.  Don’t use the default Single file format, change it to “Page, Figures in Subfolder (*.html)” and pick a directory
    • they will be sitting in the Project_Files directory.
  • The default images are 600 pixels wide, which may be OK.  But if not, then you need to go into Options and tell ANSYS to make bigger, better images.
  • Go to Tools->Options->Mechanical->Report->Figure Dimensions
    • Set the Graphics Height and Width higher.  I like 1800 x 1500.  That is three time more than the default
    • You can get even more resolution by changing the Graphics Resolution to 2:1 or 4:1.  This makes the pictures 2 or 4 times larger.  But that can take a while…
  • Now go back and redo the Report Preview and you should see much larger images, and much higher quality.
  • To save to a folder, publish them.
  • Click on the images below to see them in their full resolution:

Figure0008
Default 600px wide image

Figure0008
1800px wide image

Figure0008
3600px wide image

Conclusion

And those are the high points.  Like everything else, the help is your friend and has much more detailed information.  And don’t be afraid to just try stuff out.  Explore the options and settings, make lots of images.  That worst thing that can happen is that you will create some files you need to delete.

We hope this will help you make pretty pictures for your next report so that project guy won’t grill you on stuff he really doesn’t understand…

FE Modeler Part 3: Morphing Meshes

Morph-lady-catIn the first two parts of this series we talked about how to use FE Modeler to translate meshes and how to create geometry from meshes.  The third “big” thing that this tool does is allow you to morph a mesh to a new shape.  There are a few less important things that FE Modeler does, and we will cover those in the last article of this series.

First, let’s take a good long look at the picture to the left.  Mesh morphing is nothing like what the image shows, but it is pretty creepy to look at so I thought I’d throw it up there.

Mesh morphing in FE Modeler works by taking the faceted surface geometry you can create, covered in the previous article, and allowing the user to apply transformations or a projection to that geometry.  You would use this if you want to change your geometry while keeping the same basic mesh.  This is because when you are doing optimization or parametric study and changing the CAD geometry, you force a remesh every time and sometimes the change in mesh is large enough to effect your study.  You would also need to use this method if all you had was an FE mesh.

Basic Process

Let’s start with a very simple example to show how it is done. 

Figure 1 shows a piece of example geometry.  It has some nice features that we will do more complex morphs on.

f1_geometry
Figure 1: Simple Example Geometry, Itching to be Morphed

To start off we do the same geometry (covered in detail in Part 2 of this series):

  1. Read in geometry
  2. Select Geometry Synthesis in the tree and make sure Use Node components is Yes
  3. Click on the Initial Geometry Icon
  4. If everything works you should have a solid that you can now work with

Now you need to define how you want to modify the faceted geometry.  Do this by selecting Initial Geometry in the tree and then clicking on the “New Target Configuration” Icon.  See Figure 2.

 

f2_MakeTargetConfigurationFigure 2: Creating the Target Configuration

When you do this the program will go out and configure some things internally and then add two new things to the tree: 1) a “Target Configuration” that is a child of Initial Geometry and 2) a Parameterized configuration branch. Figure 3 shows the result in the tree.

 

f3_Tree_After_Target_ConfigFigure 3: Model Tree After Creation of Target Configuration

So, at this point you might be trying to figure out why there are branches and children where they are. The way I think about it is that the Geometry Synthesis listing is not a branch and is not a child of something.  It is it’s own “tree”  So everything on the first level under it, its children, are different things you can do with Geometry Synthesis:  Find skins, define working Geometry,  Set up mesh Morphing (Initial Geometry), and view what the current mesh looks like based on the current parameters (Parameterized Configuration).  I feel that the Initial Geometry branch is mislabeled and should say Mesh Morphing, but it is too late to change the name now.

Back to morphing meshes…  The way you specify what you want morphed is to define Design Points that have some sort of translation or projection.  Then you specify how far to translate with a parameter that you control in the Project Schematic.  For our first run through, we are going to offset a surface. 

Do this by clicking on Design Point and then on the Transformation Icon and Select “Face Offset” (or RMB –>Insert->Face Offset) and fill out the details view.  For this example I used the end face and set the maximum offset value to 30 mm.  Note, even though it doesn’t say it in the GUI, the help points out that you should put in your maximum value that you might use.  the program then scales from the original to this value as you change the offset parameter.  Figure 4 shows the setup for this example.

f4_Offset_face
Figure 4: Specifying the Face Offset, Before Generation

Click on Generate the Design Point to see what the offset looks like:

f5_Offset_Face_2
Figure 5: The Offset Face after Generation

Here is where it gets a little tricky.  All you did was define a potential geometry change.  That change is not applied to the model until you actually set parameters and apply them.   And, the parameter is controlled at the Project Schematic level, not within FE Modeler.  The value you put in under Design Point, that is simply a maximum value that the program uses to figure out how to do the Morphing.  The actual morphing uses the parameter as defined in the Project Schematic.

To see this click on Parameterized Configuration and you will see that there is 1 parameter, it is called Mesh.Morpher.1, and its value is 0.  (Figure 6).

f6_ParamValues
Figure 6: Configuration Information after Offset is Defined

Therefore, your next step is to go to the project schematic and change the offset value to some new value you want to morph the mesh to (remember, the value we put in for the Design Point is our guess at the maximum value, we can use any value we want for the parameter value).  To change the value in the Project Schematic, bring up the schematic and click on the parameter bar.  You should now see the parameter in the Outline view. For this example, I changed it to 17.354.  Now exit back to the parameter manager and click on Update Project.  Go back to your FE Modeler window, click on Parameterized Mesh, and you should see the morphed mesh:

f7_morphed_mesh
Figure 7: Morphed Mesh

Figure 8 shows an animation from an offset of 0 to 30: 

SimpleMorph1

Figure 8: Mesh Morphing from an Offset of 0mm to 30mm

To get the mesh out and usable in your model you have one more step.  If you click on Write Solver File now you will get your original geometry.  You need to click on Parameterized Mesh then click on the Update FE Modeler Mesh icon.  Now set your Target System and chose Write Solver file.  Or, if you are staying in workbench, drag a new system onto the Model in the Project Schematic.  The cool thing about this is that you now have a parametric model that is linked to an analysis in Workbench. It is therefore easy to do design studies, optimization, and the rest of the cool things Workbench is great at, and without CAD geometry!  Figure 9 shows an example of using the mesh for a modal analysis.

f9_Use_Morphed_MeshFigure 9: Using the Morphed Mesh in a Modal Analysis

Getting More Complicated

Although the process is the same, you can get a lot more complicated.  The program allows for five different translations, offsets or projections, and some of them have multiple options within. They are all kind of self explanatory.

  f10_tranlation_options
Figure 10: Morphing Options

Here is the description from the help as a reference:

  • Translation (of vertices, edges, surfaces, or parts): A translation is given in the global Cartesian coordinate system or by the definition of a translation vector between two points.
  • Rotation (of vertices, edges, surfaces, or parts): You must define a rotation axis between two points or a point and a vector and then give a rotation angle in degrees or radians.
  • Face (Surface) Offset – a Face Offset can be:
    • Uniform – Enter a negative or positive Offset Value to move the face inward or outward.
    • Non Uniform – Enter a negative or positive Offset Value to move the face inward or outward. With this transformation, you can offset a surface with a nonlinear curve. In addition, a Non Uniform surface offset includes the following options:
      • Distance to the edges – Define the distance from the edges to the maximum displacement of the transformed face.
      • Function type – Select a function type based on the shape you want to obtain, options include: Linear, Double Tangent, Linear-tangent, Tangent-linear.
      • Immobile edges – By default, all of the edges for the target surface are selected. You can de-select edges if desired.
  • Edge Offset: An offset of one edge along a face by a specified distance; always with a given sign depending on the edge normal.
  • Projection: a projection of a face, an edge, or a vertex onto a face, edge, or vertex or a group of faces or a group of edges. The Projection transformation works in tandem with the Working Geometries feature. Using an imported Working Geometry, you can project the entities of a Target Configuration onto the entities of the imported (Working) geometry.

For this example I added a rotation for the block sticking up, a translation for the top circle face of the cylinder, and an edge offset for the lower right edge.  the result is shown in Figure 11. 

 f11_Morphed-Unmorphed
Figure 11: Part with Offset, Rotation, Translation and Edge Offset Applied. Overlaid on Original Mesh

f12_Morphed_With_labels

Figure 12: Part with Offset, Rotation, Translation and Edge Offset Applied. Labeled. 

Mesh_Morph2

Figure 13: Animation of Morphing

Whew, that is a lot of material, and we are out of time to get this article back.  Look for a Part 3.5 in the near future filling in some missing pieces and a few more examples.

If you want to try this yourself, ask you sales professional for  temp Key of the ANSYS Mesh Morpher. And as always, start simple and work your way to more complex parts.

Mapped Face Meshing in ANSYS Workbench

In the era of automatic tetrahedral meshing, many have lost their way.  Wondering analysts simply read in their geometry, specify a few sizing controls, hit a mesh button and get a mesh.  But in the end, they receive a mesh that is not ideal, especially on the surface.  What these meandering meshers need is a map… a mapped mesh. 

OK, that is a pretty lame introduction, but I’ve run out of Monty Python references and I don’t have Doug’s B movie knowledge. 

Bad intro aside, many users are not aware of the strong capabilities available in Workbench meshing for creating really nice mapped meshes on surfaces.  Once created, these mapped meshes can be used to mesh 2D and shell models as well as to extrude a mesh (sweep method) for a 3D Hex mesh or a ‘seed’ mesh for a tetrahedral mesh (patch conforming algorithm).  By using a controlled mapped mesh, users can ‘find’ their way to a better mesh.

Mapped Mesh Method

The Mapped Mesh Method has been an Mesh Control that has been in ANSYS for a while.  It is found in the Mesh Control menu item when you are in the Mesh part of the tree, or by RMB->Insert->Mapped Face Meshing.  For simple geometry, and some not so simple, you simply slap that control on a face or faces and let ANSYS figure out the best way to make a mapped mesh.

F1-Add_MethodFigure 1: Insert Mapped Face Meshing

In the past, the area had to be a pretty “square” topology – four easily identified edges.  But over the last couple of releases more intelligence has been added to recognize complex geometries as mapable. Figure 2 shows several different topologies and how the mesher does a nice job of mapping them with no user modification.

F2-MapExamplesFigure 2: Automatic Meshing of Complex Topologies with Mapped Meshes

Note that the last topology did not map mesh.  We will come back to that.  But the other five all meshed with a nice looking mapped mesh. So how does ANSYS figure out how to do this? 

What they do is take geometry and break it up into 4 sided chunks.  They call this making Submaps.  But to do this they need to identify the outside edges in terms of squarish topology. The secret to doing this is identifying the vertices (points where edges connect) as either a corner, a side or an edge.  Figure 3 (stolen from the user manual) shows an example of each:

F3-Vertex_Types
Figure 3: Vertex Types

The algorithm identifies the vertex type by looking at the inside (mesh side) angle formed by the two edges attached to the vertex using based on the following table:

Vertex Type

Angle Range

Number of Elements Connected

Image

End

0°-135°

1

T1-EndVertex

Side

136°-224°

2

T2-SideVertex

Corner

225°-314°

3

T3-CornerVertex

You can get a feel for the algorithm (but not the actual one, it is much more complex) by stepping through breaking up the geometry in Figure 3 and follow the following steps in your head:

  1. Mesh the edges creating nodes on the edges based on local and global meshing settings
  2. March around the edges making virtual edges that combine by combining any edges linked by Side vertices (the only one is F-G-A in this example).
  3. Go to the first corner you encountered.  Shoot a line along the vector from B-C until you intersect with an edge. Find F-E.
  4. Count number of nodes from A-B, call it N. Then count N nodes from F toward E and make the Nth node a virtual vertex H.
  5. Draw a virtual edge from C-H. Note, B-C-H is now one virtual edge because in B-C-H, C is now a Side vertex.
  6. Keep marching around from H till you get back to A.  You end up with 4 corners so now you have a sub map.
  7. Go back to where you broke off, C, and march around to C (remember H-C is now an edge and C looks like an End in this topology) until you get another corner.  You now have the second sub map.

Pretty cool, huh. I wish I would have thought of that.  The actual method is of course much more complex and has allsorts of checks and “if this, than do that” stuff in it.  

Helping the Algorithm Out

Sometimes the angles just don’t work out so you need to go in and tell the mesher what is a corner, side, or end.  You do this in the Details view for the Mapped Face Meshing method you attach to the face.

F4-DetailsArea
Figure 4: Details View for Mapped Face Meshing Method

You basically click on the cell for Sides, Corners and Ends and then identify the vertices for each.  The last example in figure three has rounded corners so the algorithm identifies the vertices on the rounds as Sides because they are 180° apart. The result is the free mesh shown in Figure 5. If you want a mapped mesh, you need to specify the vertices on the rounds. Figure 6 shows the result. Well, maybe sometimes the free mesh is better.

F5_RoundedCornerFreeMesh
Figure 5: Resulting Free Mesh with Automatic Identification of Vertices

f6-RoundedCornerMapMeshed
Figure 6: Mapped Mesh after Manual Identification of Vertices

The other option on really nasty geometry is to take it into DesignModeler and imprint the surfaces to create your own sub maps.

Conclusions

In most cases, just putting a Mapped Face Meshing control on a surface will give you a nice mapped mesh.  The mapped mesh is usually more uniform, has less distorted elements, no triangles, and usually has less nodes. But a mapped mesh is not always better, you need to use your engineering judgment to decide which is best in each application.  I like to use this control on fillets and on blocky parts.

So, when you are not liking the look of the default surface mesh, even if you are not hex meshing your model, turn off the autopilot, and try a Mapped Face Meshing control. 

FE Modeler Part 2: Converting a Mesh to Geometry

HolyGrailofFEA_thumb1One of the “Holy Grails” of simulation is the ability to take a Finite Element mesh and convert it into geometry that you can then use to create a new mesh or import it into a CAD system as CAD geometry.  What most users do not know is that ANSYS, Inc. has a product that can do this -  FE Modeler.  With the addition of a very affordable Mesh Morpher License users have access to a straightforward process to convert a mesh into geometry.

People usually want to do such a conversion for one of two reasons.  The first is the “legacy mesh.”  They have a FEA mesh from the past that has no geometry associated with it and they want to make a new mesh or use it to create a mesh around it for CFD.  This can also be an STL file from somewhere.  The second is that they want to do an analysis or get a CAD part of a part that is distorted in some way by a load.  They may want to do a metal forming simulation and get the final shape for their assembly model or they may need to do a flow analysis on a piece of geometry that gets highly distorted.

The Basics:Mesh_Witch_thumb

If you have ever tried to take a mesh to geometry yourself using other tools or a CAD tool, you know it is very hard to do unless you are working with a part made out of nothing but flat planes.  This is because the way a tool like this must work is to:

  1. Take a 3D FEA model and finds only external faces.
  2. Find edges between faces that can be considered an edge.  This is done by looking at the angle between the normals of the faces and if they are above a certain criteria, they are tagged as an edge.
  3. Gather the edges into loops and find all the element faces enclosed by those loops.
  4. Fit a cylinder, plane, cone, or NURB surface to the faces and bound them with the edge loops.

If you have a simple, blocky part where all the faces meet at right angles, no problem. But add a few fillets and boom, the tools can never sort out the loops. So what to do?

You need to help the algorithm out by splitting up your faces into components (or Named Selections in Workbench speak) and make sure that those components define a chunk of external element faces that are fairly easy for the program to work with. Figures 1-4 show this for some simple blocks.

Block 1 has right angle corners so the algorithm makes quick work of it and finds six surface and 12 edges.  Unfortunately, real parts rarely have all right angles.

Block 2 has fillets and a fine enough mesh such that the algorithm can’t find any edges.  It tries to turn the entire outer surface of the mesh into one big surface, and fails.  No closed loops, bummer.

Block 3 is the same as 2, except that the top surface patch is defined by a nodal component.  This gives the algorithm enough information to create two loops and therefore a valid solid. But maybe not what you want because the larger surface kind of wraps around most of the block, and when you try to turn that into a Parasolid it usually fails, as shown in Figure 4.

The 4th block has a component defined for each surface in the original CAD model.  The algorithm loves this and makes each patch into a nice surface that then converts to usable CAD geometry.  This is fairly easy (if a bit tedious) to do if you are starting with CAD geometry, meshing it, and using the deformed shape to create a new mesh.  But if you have just a mesh you will need to be a bit of a Mechanical APDL selection guru to make it happen, but more on that below.

p2_f1_Mesh_thumb

Figure 1: Mesh from *.CDB File

p2_f2_NodalComponents_thumb

Figure 2: Nodal Components

p2_f3_Surfaces_thumb

Figure 3: Surfaces After Detection

p2_f4_CAD_Geometry_thumb

Figure 4: CAD Surfaces

The Process:

To illustrate the process, we will assume we have a real world problem:  You have a piece of tubing as shown in Figure 5 that you want to install into place, but to do so you really have to distort it (Figure 6 is the stress analysis results in the installed shape).  As you can see, there is significant ovalization and you need to figure out what the flow will be in this distorted shape.

p2_f5_TubeCADGeometry_thumb

p2_f6_TubeDeflectedShape_thumb

Figure 5: CAD Geometry

Figure 6: Installed Shape

p2_f7_SystemSchematic_thumb
Figure 7: Project Schematic of Stress and Fluid Runs

So the first step is really in the CAD area.  You need to use ANSYS DesignModeler to split your geometry up into surfaces that can be easily found and refit by FE Modeler.  One thing that always helps is to split any cylinders in half.  Break up long, nasty surfaces and merge together any small and complex ones.  You can create your components (Named Selections) here or in ANSYS Mechanical, your call.  But either way every surface that is not a plane needs to be given an individual name.  If your CAD systems supports it, you can do it in the CAD system as well before you slice and prep in ANSYS DesignModeler.

While I was writing this article Matt Sutton was doing Part 3 of his Mechanical Scripting HOWTO.  I asked him if he could make an example script that would automatically create a Named Selection for each surface in a part.  You can find it here:

http://www.padtinc.com/blog/post/2011/01/05/An-ANSYS-Mechanical-Scripting-Example.aspx

If you have complex geometry, this script is highly recommended.

Next, move into ANSYS mechanical and set up your analysis like you normally would.  If you didn’t bring over Named Selections, define them now.  Now you need to insert a simple code snippet into the  Solution Branch with two commands:

      upcoord, 1
      cdwrite

p2_f8_command_snippet_thumb2
Figure 8: Command Snippet

The UPCOORD command tells MAPDL to take the current solution (by default the last load step. If you want a different point in the solution, you need to add a SET command first) and move the nodes to the deflected shape that has been calculated. After this command your nodes are in your deformed shape. The CDWRITE command simply writes the model to a text file, and because your nodes are in the deflected position, that file will contain your distorted geometry.  Run your analysis and when it is done, the snippet is executed and the *.cdb file is written.  If you already have a solution and do not want to rerun, just go into ANSYS MAPDL and type the commands into /POST1.

Now that you have the distorted mesh, you need to get it into FE modeler.  Create a new standalone FE Modeler system and RMB on Model and choose Add Input Mesh…  Your *.cdb file is going to be in your project directory in the dp0/sys/Mech directory (of course, this assumes that you only have the one model in your project.  Use the appropriate dp* and sys* to identify your file if you are using something other than the first model in your project).

If you are not using SI units you will need to set the properties for the FE Modeler system and for the file in the Project Schematic or things will get all messed up. To do this RMB on the Model cell and choose properties.  Set the units for FE Modeler here.  Then RMB again on the cell and choose Manage Input Meshes.  This shows the file in the outline view and when you click on it, you can change the Unit System property.

Up2_f8p5_SettingUnits_thumb

Figure 8.5: Setting Units on FE Modeler and on your input mesh file

Launch FE modeler and make sure your mesh came in without any problems.  Check the Bodies and the Element types, etc…  Then look at your components in the tree.  Note that it not only captured the surface components you defined, any nodal constraint or load that you defined will show up as well.  You may need to delete some components. You can also use the selection capabilities in FE Modeler to make new components.

Once you are happy with that, it is time to let the program find faces.  Select Geometry Synthesis in the tree and then in the Details make sure that “Use Node Components” is set to Yes!  This is very important and the most common mistake users make. 

p2_f9_components_in_FEM_thumb

Figure 9: Nodal Components in FE Modeler

Now click on the Initial Geometry icon and it will go do its thing.

If you get bad surfaces, you need to go back and add more components and break things up a bit.  but if it works you should see a solid of your part.  You are not done yet.  These are not “CAD” surfaces but rather faceted (a bunch of triangles) surfaces. 

p2_f10_InitialGeometry_thumb

Figure 10: Deformed Faceted Surface

Select Initial Geometry in the tree and you should see a “Convert to Parasolid” icon on the ribbon bar.  Click that and it will use the Parasolid modeling kernal to try and fit your surfaces.  This can take a while on a complex part.  If you split things up well enough and your mesh was fine enough, you should now have a surface model of your geometry! 

p2_f11_ParasolidSurfaces_thumb

Figure 11: Parasolid Surface Geometry in FE Modeler

If you geometry is simple, it will even sew it into a solid.  But if the little icon next to your part in the tree is a surface and not a block, you still need to sew things together.  Do this by choosing the Add a Sew Tool icon or RMB-> Add a Sew Tool.  Select the surfaces you want to sew, using the tree being the easiest way to select all of them.  Then hit the generate button and see what you get.  If it does not make a solid, make the tolerance number a bit bigger.  If that still does not work, you may need to export the surfaces to a CAD tool with good surfacing and sew it there. 

To export your distorted geometry, select Parasolid Geometry in the tree and choose Export to a Parasolid File or RMB-> Export to a Parasolid File.

You have done it, you have real CAD geometry of your deformed shape!

p2_f12_SolidWorksDistortedModel_thum

Figure 12: The Holy Grail: You Distorted Geometry in Your CAD System

Getting the distorted shape into CAD is pretty critical, at least now your drawings are realistic instead of some guess at the installed shape.  But if you need to do more analysis, that proceeds like any other simulation.  You read in your CAD geometry (CAD geometry you made from distorted nodes, yea, that is what I’m talking about! Hoooo haaaa!) and set it up for your analysis and run it.  In our example we took the Parasolid file into DM and created a fluid volume inside the pipe (which is way easy to do in DM) and then did a CFD run.

p2_f13_CFD_Solution_thumb1

All in ANSYS products, all within the Workbench Environment. 

Starting with a Legacy Mesh or STL file:

The reason why the above method worked so well is that we had original CAD geometry that we could make components for.  When you start with just a legacy mesh without components you need to get in there an make nodal components on the surface.  FE Modeler has some basic node picking capabilities that you can use, but for real parts you really need to get into ANSYS Mechanical APDL and use the following method:

    1. Use ESURF with MESH200 elements to create a surface mesh from your solid mesh. 
    2. Delete the solid mesh
    3. Use picking, selection commands and such to break those elements into surfaceable chunks.
    4. When you have things split up fairly well, CDWRITE to make a CDB file for FE Modeler.

This can be pretty tedious, but a bit of up-front work will result in nicer surfaces, or determine if you even get a solid model.

Comments:

The guts of this product have been around for many release with a couple of different names, Paramesh being the most common.  At R13 we have really found that it is robust and usable for simple to moderately complex geometry. The key are the nodal components.  Set those up right and it should work out.

We have also found that working with a refined mesh is much better than a coarse one.  So if you are running an analysis to get a distorted shape, you may want more refinement than the analysis actually requires, in order to get good surfaces for a distorted solid model.

It should be noted, that although this is a pretty amazing tool, it can not do miracles.  Really complex, distorted or coarse meshes just will not work.  But do not give up.  Get what surface you can into your CAD system and patch it up there.  Bring_me_a_Shrubbery_thumb

You can download the project that has the blocks and the distorted tube and take a look at this yourself, or try it with your own geometry.  You will need to ask your ANSYS sales professional for a temp key of ANSYS Mesh Morpher to use this tool.  Play with it, get a feel for it.

So, next time your boss says “Bring me…. a…… CAD file of a Deflected Shrubbery!”  you know what to do.

AMD Opteron Magny-Cours Processor Wins InfoWorld Best CPU (Parallel Processing)

It was nice to see that the chip PADT has been using to build very inexpensive compute clusters just got recognition from an industry leading magazine:

Read the InfoWorld article here.

When we talk about these systems some folks look at us like we are a bit insane, “AMD can’t be a better solution than Intel”  It is good to see that some experts are agreeing with us.  Makes us feel less lonely out there waving the Opteron flag.

New Year, New Articles, And New Features on The Focus Blog

Sorry about the multiple posts of the customization articles.  We are still figuring out the most efficient way to post things to this blog.  LiveWriter seems the best, but we have trouble editing a post or publishing with formating.  Still learning.

We also upgraded to BlogEngine V2.0.  Things seem more stable and a bit faster.  

And lastly, we hooked the blog up to Disqus.com.  This is a community sight for blog comments that does spam filtering and controls access a bit.  We hope it will keep the offers for a very special private video chat from Amber, a bored student, to a minimum.  

The article buffer is filling up.  Look for information on a nice tool for logging on to Linux machines from Windows (NX), more information on using FE Modeler, and some useful CFD hints and tips in the comming weeks.

Happy Holidays From PADT to the ANSYS Community

aa1aa2aa3aa4

Well, another year is coming to an end and we are about to enter the Holiday Season.  It is a difficult time for many of us, leaving our computers at work, not being allowed to  log in from home, and being forced to interact with our families.  But after  a long and challenging year, even CAE elves need a break.

We want to take some time to offer a special thanks to all of you out there who read The Focus.  You have stuck with us through the transition from Newsletter to Blog, through all the bad puns, and most of all the ‘B’ movie references.  We do appreciate all the kinds words and comments that we receive.

We hope that all of you have a a fantastic holiday we wish you safe and prosperous simulation in the new year.

SnowManCFD1

Finding the Location of a Value in a Common Block – Again

CMNDIF

Every once in a while you need to do something fairly tedious and you know you’ve written a tool to do it, but you can’t find it. That happened to Matt today when he was trying to remember an easy way to locate an important variable that gets stored in one of the common blocks that ANSYS uses.  We both kind of had an tickle in the back of our heads that one of us wrote something a while back but we couldn’t find it.  “It was in the Focus… search… no luck. 

Then I checked www.XANSYS.org and boom, there it was.  Once we found the name there, we found the focus article in Issue 58 from 2007.  Then I found it on Sheldon’s ANSYS.net

Turns out, it is all over the place… we just couldn’t find it on our own hard drive.  Aging sucks, but now we have Google.  Anyhow, we figured since we forgot about it, other ANSYS MAPDL customization types may also have want a reminder.

And the Composite World Rejoiced: FiberSIM and ANSYS ACP Hook-Up

An early Christmas for those of us who use ANSYS with composites.  ANSYS and VISTAGY just announced that they will offer bi-directional linkage between FiberSIM and ANSYS through ANSYS Composite PrepPost.  The key statement from the press release:

ANSYS, Inc. … , and VISTAGY, Inc., … , have taken a major step in closing the loop between composites design and analysis by integrating ANSYS®13.0 Composite PrepPost and FiberSIM® 2010 composites engineering software. This bi-directional integration, enabled by FiberSIM’s Analysis Interface, allows customers to exchange detailed lay-up information between design and analysis quickly and accurately. As a result, users can optimize parts, assemblies and structures more efficiently.

Read the whole press release at:

http://www.businesswire.com/news/home/20101214005251/en/ANSYS-VISTAGY-Integrate-ANSYS-Composite-PrepPost-FiberSIM

Looks like there will be a Webinar on February 3: http://events.vistagy.com/vistagy-ansys-webcast.

If you are interested, contact your ANSYS Sales professional.   No word on when it will be released, but our guess is after the February webcast.

Quick Note: Nice Article on GPU Usage at R13 with ANSYS Mechanical Solvers

image_thumbI was chatting with a  product manager at ANSYS, Inc. about HPC. We got on the topic of GPU’s and he pointed out that there is a good article on the ANSYS Advantage magazine website on this very topic.

We get a ton of questions all the time about how GPU’s work and the kind of performance you can get from them.  This article goes into some good detail and has benchmarking data on R13.  Worth a read!

http://www.ansys.com/magazine/issues/vol4-iss2-2010/AN-Advantage-GPU.pdf

HPC on the Cheap: 48 cores for $11k

imageEvery once in a while computer hardware takes a big step forward, either in performance or lower cost.  Recently AMD, Intel’s biggest rival in CPU chips, and Super Micro Computers, a maker of high-performance motherboards and other hardware, have both come out with products that have changed the landscape of affordable High Performance computing forever.  About a month ago PADT put together a single system with 48 cores, 128 GB SDRAM, and 3TB of disk for just over $11,000.  And it is not too good to be true, the machine is fast and reliable.

We were able to get this type of price performance by leveraging the 12 Core server processors coupled with a motherboard that supports four chips: 4×12 = 48, something that only exists in the AMD world. We kind of stumbled upon this when our IT guy thought it would be good to see what AMD is up to.  We have been buying and using Intel based systems for a while now since they leapfrogged AMD the last time.  Once he started hunting around he found that AMD still supported four chips on a board, and that they had working 12 core chips.  So he went off to New Egg and built a shopping cart.  It came up at around $10,000 because we already had some of the hardware we needed.  Next came his hardest task, convincing management (me) that it wasn’t too good to be true.

After some research we found that others were benchmarking this chip and finding good performance on parallel tasks.  It is a slower clock speed than the top Intel chips, but because you can fit so many cores in one box, you get better performance for your money on applications that are parallel – like CFD.  After pulling the trigger on the order and sweating a bit the order showed up:

clip_image002

An Early Christmas at PADT:
A Barebones 1U Box, 4 Parts (48 cores), 32 SDRAM Sticks, and 3 Hard Drives

This created a bit of a buzz in the office, almost as big as when one of our customers brought his Tesla over for a test drive.  For those of us who started our career running on million dollar “super computers” with the same power as my cell phone, this was a pretty cool site to see.

The Box:

Here is what we purchased:

4 AMD Opteron 6174 Magny-Cours 2.2 GHZ 12 Core Server Processors 48 Core
32 4GB DDR3 Kingston 240 pin Registered SDRAM 128 GB RAM
3 1TB Western Digital RE3  7200 RPM, SATA 3.0 Hard Drives 3 TB Disk
1 80GB Intel X18-M Solid State Drive 80 GB / Drive
1 Supermicro AS-1042G-TF 1U Barebones Server 1 Box

We put it together, loaded it with CentOS and booted it up.  We got a little silly when we saw the boot screen:

clip_image002[4] 

None of us had seen a boot screen with a count of 48, nor one with that much RAM on a single system.  And we had to keep telling ourselves that it was only $11,000.

We had no issues with drivers or software.  ANSYS FLUENT, CFX and Mechanical APDL loaded up just fine and ran smoothly.

The Benchmarks:

The first thing we did is run a customer problem that was given to us as a test for a sale. The sales was being held up because we couldn’t get time on our existing systems to run it.  No surprise, it ran fast.  As we upped the number of CPU’s we could see that for a medium sized CFD problem, it was scaling well to 24 cores, then tapered off above that.  Once that problem was done we ran the ANSYS standard benchmarks to see how larger problems went.

First we ran the CFX benchmarks. They use something called “Speedup” which is simply the run time on one core divided by the run time on N cores. Or, how many times faster it is.

imageimage
imageimage

As you can see, you get the usual variation from problem to problem.  The Indy Car run actually did better than parallel, indicating that there is some sort of bottleneck with one processor and something about that problem that this system likes.  They other cases did well against a much more expensive IBM XEON system with a faster clock speed CPU.

Next, we looked at the performance on FLUENT.  They must have a bigger staff for benchmarking because we had a lot more machines to compare to.  But they use a different scale called a “Rating” It is 24 hours divided by the run time in hours on N Cores.  So a 1 would mean it runs in 1 day and 256 means it runs in 5.625 minutes.

imageimage

imageimage

Our takeaway from these studies is that 1) the system is pretty linear on large problems, and 2) that although it is slower than other systems, it is a lot less money, sometimes less than 25% as much.

The next thing to look at is what the speed is per core between Nehalem and AMD based systems.  For the data we have on FLUENT problems we compared a 2.9GHz Intel Nehalem based system to our 2.2GHz AMD system. These other systems have faster drives and cost 3 to 4 times as much.  What we found was that our AMD system was anywhere from 52% to 65% of the speed of the faster clock speed Intel chips.

Remember, to get to 48 cores on the Intel platform you will need six systems or blades, because each system or blade can only support two chips with four cores per chip, so 8 cores per board.  Let’s say the Intel chips are twice as fast.  So to get the same performance you would need 24 cores, or three 8 core boxes.  Then you need Infiniband with a switch and three cables.  So now you are talking three to four times the cost of the 48 core single box AMD system.

imageDon’t Forget Power

One of the knocks against the last time AMD had really competitive chips was heat and power consumption.  Well, these guys run cool and low power. We found that the power consumption maxed at 800 watts and average 760. When you consider that there are 48 cores chugging away at 100%, that is pretty impressive.  17watts per core!

  • Max Watts reached during test: 800
    • Watt usage settled down to around: 761
  • Number of hours for usage test: 167
  • Max Volts: 116 Volts
  • Amps: 6.60
  • $ rate used per/kWh: $0.11
  • Costs per/kWh:
    • Hour: $0.08
    • Day: $1.98
    • Week: $13.89
    • Month: $59.55
    • Year: $724
  • 200 Watts per part (CPU)
    • 17 Watts per core

Other Things to Consider

This particular configuration is very exciting, and it also opens up a lot of doors to other options and combinations.  The power of this system comes from parallel processing, so you need to consider the cost of adding parallel solves. Right now ANSYS, Inc. has a licensing option called HPC packs that are perfect for this application.  If you buy one pack, you can run on 8 cores, 2 packs is good for 32 cores, and 3 packs allow you to run on 128.

This doesn’t line up to well with 12 cores per chip.  But AMD does make a chip with 8 cores that run at a slightly higher clock speed (2.4 GHz vs. 2.2 GHz) that also cost less ($750ea vs. $1299ea)  So you could buy two HPC packs for 32 cores and then put together a system for less than $10,000.

Or, if that is not enough punch, you could also upgrade the motherboard to the next level up and purchase two barebones server boxes.  This allows you to use Supermicro’s Infiniband card to connect two boxes together over Infiniband without a hub.  Now you are talking 96 cores connected with a high speed interconnect, 256 GB of RAM, and all for under $27,000.

The last thing to consider is the fact that AMD has announced that they will be releasing a 16 core server chip to be widely available in 3Q11.  These will work with the motherboards we are talking about here, so you can upgrade your machines to have 4 more core per chip – so if you invest in a 96 core dual box system now, you can upgrade it to 128 cores next year.  Not bad.

Right for You?

After the initial excitement dies down for this much horsepower for this little of an investment, most users will ask themselves if this type of system is right for them.  You need to think it over and ask yourself some questions:

  1. Will I benefit from that much parallel?
    Remember, a single core actually runs slower than a top of the line 2.9GHz Intel system.  If you run Mechanical or have small problems, you may be better off paying for fewer, faster cores.
  2. Can I build my own system?
    We have the luxury at PADT of not having a corporate IT department that would freak out over a home-built system.  We also have an IT department with the skills to put systems together.  Run this idea by your IT before you go to far.  You can purchase systems with similar guts from HP and Dell, but a large bit of the cost savings go away when you do that.
  3. Do I have the Parallel Task Licenses?
    See what parallel you already own and contact your ANSYS sales person to see what it would cost to add more, especially HPC Packs.

If your problems are large and have long run times, this hardware and the needed software licenses will pay for themselves very quickly.  For us, a job that was running over 5 days now finishes in half a day.  That is huge as far as being able to either up the problem size to get more accuracy or getting results to our customers much faster.

Interested in Getting a System from PADT?

Several of our customers have expressed interest in purchasing our leasing one of these low-cost cluster systems from PADT. So We are offering a purchase or a lease on custom systems if you are located in Arizona, New Mexico, Colorado, Utah or Nevada.  Shoot
sales@padtinc.com an e-mail if you would like more information.  If you are outside of PADT’s ANSYS sales territory, we are more than happy to answer any questions you may have via e-mail to help you put your own system together, but we just don’t have the bandwidth to support outside of our area.

General Update on the Blog and News

Well, we are now a couple of weeks into this blog experiment and it is going well.  As part of being more "bloggy" and less "newslettery" we are going to stick in little updates and news items like this.

First off, thanks to a few dedicated users who requested a better way to print out the articles. We found a chunk of code that we added in to the templates for the postings and you should now see a "Print" option down in the lower right corner (with Permalink and comments) of each posting.  this brings the posting up in a separate window that is more printer friendly.  Just print this from your browser and you have hard copy.

The next thing we are going to work on are comments.  We had it turned on for about two days when we went live and received some incredible offers to visit sights where we could: 1) increase our "size" in a few weeks, 2) obtain various drugs very cheaply, 3) meet a very nice girl that wants to show off her new webcam, and 4) help the widow of a former Nigerian minister of the interior get some money back from where the a bank is holding it.  So we turned off commenting. We are looking at a couple of open source tools that have spam filters for commenting and will hook up to one of those to get comments working.

In the area of news, we are very happy to report that our last seminar on Geometry Tools in ANSYS, Inc. Products had 145 people signed up and about 90 attendees.  We’ll post upcoming seminars in the right column of this blog, or you can subscribe to receive invites by using the same subscription service that controls your e-mail about this blog.  Click the arrow to the right to manage your subscriptions.

Thanks!

Learning about blogging

Update: 4:50,

For any of you who are blogging or thinking of it, I just tried out the free tool from Microsoft: Windows Live Writer.  It works very well.  I will try the next couple of articles that way.

– Eric

 

Well, it seems that it is a bad idea to paste from MS Word into the Blog editing tool.  Funny enough, you can view such an entry on Firefox or Chrome, but it doesn’t work on MS Internet Explorer ?!?!

So this wednesday’s post has been fixed with a new version that was pasted as text then formated in the blog editor.  Live and learn.

 

– Eric Miller