CFX Expression Language–Part 5: Using CEL for Solution Monitoring

In four previous entries we introduced CFX Expression Language, CEL:

After a break to teach some ANSYS classes in beautiful northern Utah we’re back to conclude our series on CFX Expression Language.


In our fifth and final installment on CEL we will discuss the use of CEL in monitoring items of interest while the CFX solution is progressing. Back in the first installment in this series, we showed how to create expressions for results quantities in CFD Post. By creating expressions in similar fashion for results quantities in CFX Pre, we can use these expressions to monitor items during solution.

Here is an example. In CFX Pre we have defined three expressions which are really extracting and operating on results data.

forceX1 = resulting force on one face of the structure
forceX2 =resulting force on another face of the structure
fdiffx = the difference between these two values or the net force acting on the structure

This shows these three expressions in the CFX Pre outline tree:


Still within CFX Pre, click on Insert > Solver > Output Control. That will add an Output Control tab on the left side of the CFX Pre window. Click on the Monitor tab, expand Monitor Points and Expressions, and then click on the button near the right of the window below that to add a monitor point:


Set the Option to Expression and in the Expression Value box left click then right click to select from your list of defined expressions:


The CFX Pre tree will now have one or more Monitor Points listed under Output Control:


When we initiate the solution, these user-defined monitor points will be available for real time display in addition to the normal Momentum and Mass and Turbulent kinetic energy monitors. All we need to do is click on the User Points tab during solution to view our expressions as monitors. In the example shown below, Monitor 1 is forceX1, Monitor 2 is forceX2, and Monitor 3 is fdiffx, the difference between the first two quantities. These could have been renamed during their definition to make it easier to understand the monitor plot. Here is a snapshot of the quantities being monitored during the solution:


So, as we have seen in the last 5 CFX Expression Language blog entries, CEL exposes a lot of powerful capability to CFX users (and to Fluent users within CFD Post). In this case we have seen how to add additional items to monitor during the solution process. The advantages of this are to help us determine on the fly if the solution is progressing as expected and to give us an idea of the values of certain results quantities before the solution is fully completed.

We certainly hope you now have a better understanding for how CEL can be used to increase the capabilities and useful information available from CFX and CFD Post.

CFX Expression Language–Part 4: Applying Ramped and Stepped Boundary Conditions Using CEL

In three previous entries we introduced CFX Expression Language, CEL:

In this fourth installment we will demonstrate the use of CEL to apply ramped or stepped boundary conditions. In certain circumstances we might want to ramp a load rather than apply it all at once. For example, convergence difficulties can sometimes arise when a fast rotation rate is applied initially in rotating machinery simulations. Starting off with a smaller value of load and ramping it to the final value can aid in convergence in these circumstances.

Note that the rate of load application can be manually changed during the solution in the solver manager, but why not take advantage of CEL and do it automatically? As we will see, this is fairly easy to do.

The ability to ramp a load makes use of a built-in CEL variable labeled “aiturn”, which is the accumulated value of the iteration number. If we assign an expression for the number of iterations we want, we can then create a combined expression for the ramped load:


In the above list of expressions, Flow999 is our desired full amount of flow at the end of ramping. Iter is defined to have a value of 100. Both of those are names that we picked. We then defined expression flowapplied, which is the value of Flow999 times the built-in expression aitern (the current solver iteration number) divided by the total number of iterations desired for the ramping, Iter. Once aitern = 100, then the value of flowapplied will equal Flo999 or 9.99 ft/sec in this case.

Here is a plot of the expression flowapplied for values of aitern between 0 and 100. The plot is in m/s but the peak works out to be 9.99 ft/sec.


As we have seen in prior entries in this series, we plug in the expression name for the input in the appropriate field. In this case, the name of the expression flowapplied is entered in the Normal Speed field in the Inlet boundary details.

After solution, we can verify that at the end of the solution the applied inlet velocity had reached the full value of 9.99 ft/sec. in CFD Post:


The next step might be rerun the solution while maintaining a constant value of the applied load for an extended period of time. This can be accomplished by modifying the expression which defines the load so that it has some additional values:


In the above expression we have added a step() function, which can either be typed in or added by right clicking, Functions > CEL > step. This causes the ramped load to peak at the value of Flow999 when aitern reaches the previously defined value of Iter at 100, then drop to zero after that. This happens because if Iter-aitern is greater than one, step=1, but if Iter-aitern is less than one, step=0. Here is the resulting plot in CFX Pre:


That’s not quite what we want, but if we tweak the expression a bit more, we can get it to ramp to the full value then remain constant.


Now we have another term involving the step() function, but with the expression names inside the step function reversed. This means that once aitern exceeds the value of Iter, the first term becomes zero and the second term takes over with a constant value of the load equal to Flow999, as shown here:


By using similar expressions involving time, we can create a load history that turns off and on at desired time points.

Hopefully by now you’re starting to see the value of CEL. We are just scratching the surface here, but once you start using it you will find that CEL has a lot of potential powerful uses. In the next installment we’ll cover some additional capabilities available in CEL.

CFX Expression Language–Part 3: Applying Boundary Conditions Using CEL

In two previous entries we introduced CFX Expression Language, CEL:

Part 1: Accessing CFD Simulation Information in CFX (and FLUENT)

Part 2: Augmenting Material Property Assignments in ANSYS CFX

In this third installment we will see how to use CEL to apply boundary conditions as equations rather than constant values. For example, if a non-constant velocity profile can be defined as an equation, we can use CEL to define as well as apply the profile.

Let’s look at an example in which the velocity profile is a function of y coordinate:

u(y) = 6 * Umax * y / H * (1 – y/H) (m/s)

Using the procedure we learned in part 1 of this series, in CFX Pre we have defined expressions for H and Umax. We then defined the equation for the velocity profile as Uprofile:


Next we go to the Plot tab within the Expressions editor to verify that our velocity profile matches expectations:


To use our new expression in CFX Pre, we just enter the expression name in the appropriate field when defining the inlet velocity:


Finally, this velocity plot from CFD Post shows that indeed our desired velocity profile was applied at the inlet.


Hopefully this demonstrates how easy it can be to use CFX Expressions to define non-constant boundary conditions. In the next part of the series, we will look at using expressions to ramp or step apply loads.

2000 Core Milestone Passed for CUBE HVPC Systems

IMG_9548As we put the finishing touches on the latest 512 core CUBE HVPC cluster, PADT is happy to report that there are now 2,042 cores worth of High Value Performance Computing (HVPC) power out there in the form of PADT’s CUBE computer systems.  That is 2,042 Intel or AMD cores crunching away in workstations, compute servers, and mini-clusters chugging on CFD, Explicit Dynamics, and good old fashioned structural models – producing more accurate results in less time for less cost.

When PADT started selling CUBE HVPC systems it was for a very simple reason: our customers wanted to buy more compute horsepower but they could not afford it within their existing budgets. They saw the systems we were using and asked if we could build one for them.  We did. And now we have put together enough systems to get to 2,042 cores and over 9.5TB of RAM.


Our Latest Cluster is Ready to Ship

We just finished testing ANSYS, FLUENT, and HFSS on our latest build, a 512 core AMD based cluster. IT is a nice system:

  • 512 2.5GHz AMD Opteron 6380 Processors: 16 cores per chip, 4 chips per node, 8 nodes
  • 2,048 GB RAM, 256GB per node, 8 nodes
  • 24 TB disk space – RAID0:  3TB per node, 8 nodes
  • 16 Port 40Gbps Infiniband Switch (so they can connect to their older cluster as well)
  • Linux

All for well under $180,000.

It was so pretty that we took some time to take some nice images of it (click to see the full size):

CUBE-HVPC-512-core-front1-1000h CUBE-HVPC-512-core-service1-1000h CUBE-HVPC-512-core-stairs-1000h

And it sounded so awesome, that we took this video so everyone can here it spooling up on an FLUENT benchmark:

If that made you smile, you are a simulation geek!

Next we are building two 64 core compute servers, for another repeat customer, with an Infiniband switch to hook up to their two existing CUBE systems. This will get them to a 256 core cluster.

We will let you know when we get to 5000 cores out there!

Are you ready to step out of the box, and step into a CUBE?  Contact us to get a quote for your next simulation workstation, compute server, or cluster.

CFX Expression Language – Part 2: Augmenting Material Property Assignments in ANSYS CFX

In a previous entry we introduced CFX Expression Language, CEL.  You can view that post here

Before we get started, there are some key things to remember:

  1. Expressions can be easily created by right-clicking in the Expressions tab after double clicking on Expressions in the CFX Pre object tree.
  2. Expressions and their contents are case sensitive.

In this next part of the series, we’ll show how to use CEL to augment your material property definitions in CFX. If material properties are constants then their input is straightforward. However, if the properties are defined as equations, we can use CEL to input those equations in CFX.

For example, if viscosity is defined as a function of shear strain rate, we need to define viscosity using an equation that captures that relationship, such as

m = K * gn-1

Below are shown two ways in which that equation can be captured using CFX Expression Language, visc1 and visc2. The second equation, visc2, is more flexible in that we have defined the constant terms as expressions themselves.


It’s always a good idea to verify the input. Most expressions can be easily plotted by clicking on the Plot tab in the Details view. Here is a plot of the viscosity vs. shear strain rates between 0 and 1, as calculated by expression visc2:


Similarly, the Evaluate tab can be used to evaluate the expression for desired values of the inputs.

So, we have defined an expression for a material property, viscosity in this case. How do we get CFX to use that expression? In the material property input, we click on the expression icon to the right of the particular material property we are defining, then enter the name of the expression, as shown here for expression visc2:


Summing it up, we can use CFX Expression Language to define material property equations for non-constant material values. In the next installment we will look at how to use CEL to define changing boundary conditions, such as a ramped load.

CFX Expression Language – Part 1: Accessing CFD Simulation Information in CFX (and FLUENT)

This week we are presenting an introduction to CFX Expression Language. If you’re not familiar with CFX, it is one of the two CFD tools available from ANSYS, Inc., the other being Fluent. CFX has been part of the ANSYS family of engineering tools since 2003. It is relatively easy to use and can be run stand-alone or tightly integrated with other ANSYS products within ANSYS Workbench. We have some general information on CFX available at this link.

CFX Expression Language, or CEL, is the scripting language that allows us to define inputs as variables, capture outputs as variables, and perform operations on those variables. Through the use of CEL we can be more efficient in our CFD runs and better capture results that we need. With CEL we can access and manipulate information without needing to recompile code or access separate routines besides the main CFX applications.

Also note that since CEL can be used in CFD Post, it is useful for postprocessing FLUENT solutions in addition to CFX, since CFD Post is common to both CFX and FLUENT. There are some things to be aware of regarding FLUENT In CFD Post. This link in to the ANSYS 14.5 Help system explains it:

// User’s Guide :: 0 // 7. CFD-Post File Menu // 7.15. File Types Used and Produced by CFD-Post // 7.15.10. Limitations with FLUENT Files

If you are a user of APDL, ANSYS Parametric Design Language, what I have written above about CEL should look familiar. One difference, though, is that while Mechanical APDL is dimensionless, CFX is not. Therefore, CEL definitions contain units where appropriate.

CEL is typically used in CFX-Pre and CFD-Post. A handy editor is available to assist in the definition of the expressions. Most of the activity is enabled by right clicking.

Virtually any quantity in CFX that requires a value input can make use of CEL, including boundary conditions and material properties. CEL can also be used to access and enhance results information. Expressions defined in CEL can be used in design point studies in ANSYS Workbench, either as input or output parameters.

So, what kind of things can you do in an expression? In addition to accessing simulation information and storing it as a variable, you can manipulate values using operators such as add, subtract, multiply, divide, and raise to a power. You can also use built-in functions such as sine, cosine, tangent and other trig functions, exponent, log, square root, absolute value, minimum, maximum, etc.

There are many predefined values, including some common CFD constants such as pi, the universal gas constant, and Avogadro’s number. The available options are different in CFX pre vs. CFD Post, with relevant choices for each.

In CFX Pre, expressions are accessed by double clicking on Expressions in the tree. That takes you to the expression editor, as shown here:


Notice how units are defined for each expression, but they can be mixed if desired.

Regarding CFD Post, the example below shows three expressions defined in CFD Post. The expressions within the box are user-defined. The other expressions listed are setup automatically.

The values for forceX1 and forceX2 are calculated by extracting X-direction forces on two different surfaces. The surface names were defined in ANSYS Meshing in this case, as Named Selections. The value fdiffx is calculated by subtracting forceX1 from forceX2. The resulting value, fdiffx, has been specified as an output parameter in Workbench; hence the P-> symbol next to the name.


New expressions are created by right-clicking in the Expressions tab. The new expression value is given a name, then the definition is input, typically by right clicking and selecting from the menus of available quantities, like this:


The location of application for an expression can also be selected by right clicking:


So we’ve got our variables defined using CEL. Now what? Here are some things we can do with CEL variables:

1. Use them as inputs such as material properties or boundary condition values in CFX. If we are running multiple cases, it is typically much easier to define quantities that we want to vary this way. The values can then be changes in the Expression Window, or if defined as a parameter in Workbench, in the parameters view as part of a parameter study.

2. Use them for reporting results quantities of interest, such as forces at a desired location.

3. Use them as input or output parameters in a design point study or design optimization.

Hopefully this brief introduction gives you a glimpse at the power of CEL. In a future article we will look at using CEL for more advanced functionality, such as applying ramped or time varying boundary conditions, using IF statements, and monitoring expression values during solution.

ANSYS Acquires EVEN, the Makers of the ANSYS Composite PrepPost Tool (ACP)

Good news out there in ANSYS land.  ANSYS, Inc.  just made the relationship with EVEN as close as possible – by acquiring them.  Here at PADT it was love at first sight when we first were introduced to the ANSYS Composite PrepPost (ACP) add-on.  The solver capabilities in ANSYS Mechanical APDL have been very strong for composite modeling for some time.  But the pain and suffering required to set up a complex composite geometry kept many users from accessing those fantastic elements.  ACP solved that problem by providing a tool that takes care of the bookeeping and geometry issues involved in building an accurate model of composite layups.

Here is the official press release.


With this acquisition ANSYS, Inc. has secured the future development of this tool and given all of us in the ANSYS world even better access to the consulting team at EVEN.  You can learn more about the ACP tool on our ACP page.  We also have an older blog posting on ACP when it came out.  We also did a seminar on the last release, here is the recording to that. [probably time to write an updated posting on newer capabilities…].

Learn more about EVEN on their web site.

This is great news, and we can not wait to see further improvements in the composite modeling capabilities for the ANSYS Product family.

Yes! Concurrent Design Point Solves Using New ANSYS HPC Parametric Pack Licensing



Design Optimization – Design Point Studies.

These are terms that for many years now have been tossed about as powerful simulation tools. Indeed they are powerful tools, but for anything but relatively small models, the computing resources and time involved to get solutions have been prohibitive in many cases.

We are now in the 2010’s and computing power is far greater than it was just a few years ago. To help us better take advantage of those horsepower increases, ANSYS, Inc. has released a new license product with version 14.5, called the ANSYS HPC Parametric Pack.

How does a six minute turnaround time for 4 design points look when compared to a two hour time for a single design point? If you find that intriguing, please keep reading.

Simply put, the Parametric Pack license allows us to solve simultaneous design points on multi-core systems. For the most part, design point runs have been serial up to now. With Parametric Packs, you can solve several design points at the same time, each running in parallel.

What ANSYS, Inc. has done with the Parametric Pack concept is to allow you to multiply your existing licenses for use in simultaneous solutions of design points. Each Parametric Pack license provides a multiplier on existing licenses. If you currently have one Mechanical or ANSYS CFD license, with a Parametric Pack license it now becomes equivalent to 4 licenses for the purposes of solving concurrent design points. The more parametric pack licenses, the greater the multiplier, as shown in the following table. Note that the maximum allowed number of Parametric Pack licenses for a given study is 5.

# Parametric Pack Licenses # Simultaneous Design Point Solves
1 4
2 8
3 16
4 32
5 64

The Parametric Pack license multipliers apply in two scenarios. With scenario one, a design point study has been setup in ANSYS Workbench in which there is a set of input parameters and a set of output parameters. A table of various values of the input parameters has been defined for which we want to track the outputs. An example of this is shown below. The other scenario in which Parametric Pack licenses can be used is with design optimization using an ANSYS DesignXplorer license. We will focus on scenario one in this article, while a future article will address scenario two.

The example we will use is a Fluent study. It could just as well be an ANSYS structural or thermal solution, CFX solution, coupled field solution, etc.


In this case, we just have one varying input parameter (inlet velocity) and one varying output parameter (mass flow at the outlet) for the sake of simplicity.


Design point updates with the Parametric Pack license work through the ANSYS Remote Solve Manager, RSM. The runs can be made either on the local machine or on a remote number cruncher, but either way they need to be submitted with RSM. RSM comes with ANSYS automatically, but needs to be configured the first time you use it.

For the example shown here, I set it up to run on one of our Linux PADT Cube systems. The submission to RSM was made from my local Windows box while the solving was done on the remote Cube on PADT’s cluster.

ANSYS has to be told to use an available Parametric Pack license. It also has to be told which licenses to be used on conjunction with the Parametric Pack license. This information is defined from within Workbench, by right-clicking on the Parameter Set box and displaying Properties. Once License Checkout is set to Reserved, we click on the Reserve Licenses link to select the desired licenses to be used:


In the window below you can see I have reserved 1 ANSYS CFD license which allows for 1 Fluent solve. I have also reserved one ANSYS HPC Pack which allows for up to 8 parallel tasks per solve. By also reserving one ANSYS HPC Parametric Pack license, the other two are amplified. As the last column shows, the reported number of concurrent licenses is 4 for the ANSYS CFD license and 4 for the ANSYS HPC Pack license (meaning 4*8 or 32 total cores for 4 simultaneous solves).


More HPC Parametric Packs would amplify the licenses further. It’s important to note that not all ANSYS licenses can be amplified by the Parametric Pack license. In general, the licenses that can’t are products that rely on a third party for some of the technology, such as DesignModeler which uses the Parasolid kernel. That doesn’t mean that DesignModeler can’t be part of a study that utilizes the Parametric Pack licenses, though. It just means that that the DesignModeler tasks will be automatically completed before the jobs are submitted for simultaneous solving.

Getting back to the example, we asked ANSYS Workbench to solve 4 design points. Without Parametric Pack licensing, that would have been done sequentially. On my local Workstation, solving on a single core each design point takes about 2 hours to solve. Using 8 cores on our Cube machine, each design point takes about 6 minutes to solve. What happens when I activate the simultaneous solution with the Parametric Pack license? All 4 design points solve in 6 minutes. This particular Cube has 64 cores, so solving a single design point on 8 cores or four design points concurrently using 32 total cores both take six minutes. That is a very significant speedup. I say it’s a game changing speedup.

Here is a graph of CPU utilization during the concurrent design point solution. 32 processors utilized and the elapsed time was about 6 minutes.


The resulting design point info including the as-solved output parameters:


The bottom line:

What do you need to be able to take advantage of this capability?

1. A regular license enabling the solver you need, such as ANSYS Mechanical, Multiphysics, ANSYS CFD, ANSYS Fluent, ANSYS CFX, etc.

2. ANSYS HPC or ANSYS HPC Pack licenses which allow you to solve on more than two processors/cores for each design point.

3. At least one ANSYS HPC Parametric Pack license which allows the simultaneous design point studies and the amplification of the existing licenses. Talk to your local ANSYS rep or ANSYS Channel Partner for more info.

4. A multi-core machine, such as one of PADT’s Cube systems. More info:

In a future article we will look at the use of the HPC Parametric Pack license in conjunction with a design optimization study.

Direct Coupled-Field Elements in Mechanical APDL

We received one of those tech support calls last week that you hate getting.  It was something like “I need to transfer my ANSYS model to this other FEA package, how do I do that?”  We of course asked “Why do you need to go to this other package?” The answer was “Because they have elements that solve for stress and thermal degrees of freedom in the same element.”  Well, so does ANSYS Mechanical APDL, and it has for years.  But as a Workbench user they had only been exposed to Multiphysics that uses Load transfer as the mechanism to solve different domains in the same run

Therefore, a The Focus posting is born.

In this posting we will go over the basics of direct coupled-field elements and simulation to make everyone aware of what is available.

Direct Coupled-Field vs. Load Transfer

When most people talk about Multiphysics they are talking about Fluid-Structural Interaction (FSI) or some other interaction between two different models where the program solves each physics by itself and transfers the resulting values from one physics as a load on the next physics.  This is called load transfer Multiphysics and it is very useful and powerful.  But it requires a solve for each physics for each step in your solving process, and often more because you have to iterate back and forth between physics till things converge before you can move to the next substep.

There is a whole other way to do Multiphysics if you have the same mesh for each physics: you can modify your finite element equations to cover all the different physics in one set of equations, therefore in one matrix, and therefore in one pass through the solver for each solve.  This capability has been in the ANSYS Mechanical APDL solver for a very long time and has been expanded over time to cover some surprising combinations of physics.

So when should you use one over the other? That depends. Here are some thoughts:

  • Load Transfer Approach:
    • Your meshes need to be or are different
    • Fluid flow with something other then heat-transfer
  • Direct Approach:
    • The interaction between two physics is strongly coupled
    • The interaction is non-linear
    • Acoustics is involved
    • Piezoelectric is involved
    • Porous fluid flow is involved
    • Diffusion is involved

In general, if you can use Direct Coupling and you know MAPDL well, it is the preferred way to go, it is just a lot easier to do. But if you are not familiar with MAPDL for running and post processing, you may be better off with the Load Transfer approach.

The Coupled-Field Elements

You access the coupled-field capabilities in the solver through the use of the coupled-field elements.  Although there are some legacy elements that can be used as well, we will focus on the three standard coupled-field elements. They all have the same capability, and just vary in topology:

  • PLANE223: 2D 8 Node Quad
  • SOLID226: 3D 20 Node Hex
  • SOLID227: 3D 10 Node Tet

All of these support the following physics, DOF’s, forces and reaction loads:

Field DOF Label Force Label Reaction Solution
Structural UX, UY, UZ FX, FY, FZ Force
Thermal TEMP HEAT Heat Flow
Electric Conduction VOLT AMPS Electric Current
Electrostatic/Piezo VOLT CHRG Electric Charge
Diffusion CONC RATE Diffusion Flow Rate

You use a combination of KEYOPTS and material properties to enable the various types of coupling.  Take a look at the element documentation to see how it all works.

In addition to these, there are some specialty elements worth discussion. The first are FLUID29/FLUID30. These are the Acoustic field elements. These solve for displacement and pressure. They also can share the displacement DOF’s with structural elements where they touch.

Unfortunately the electromagnetic coupled field elements have been put on legacy status, as ANSYS Maxwell is where the development effort is going in this area. But you can still use them for coupled-field simulation that involves the MAG degree of freedom.  The elements are: PLANE13, SOLID5, SOLID98. ANSYS MAPDL still has actively supported electromagnetic elements, but they are electromagnetic only and do no support displacement or thermal degrees of freedom.

Flow in a fully saturated porous media can be modeled with the Coupled Pore-Pressure elements. These elements: CPT212/213/215/216/217, solve for pressure and deflection and are used for things like modeling nuclear waste issues, soil subsidence, oil well stability, and bone deformation and healing.

We should also mention that ANSYS supports circuit simulation using the CIRCU124 element.  This element can be coupled to other elements that have VOLT, CURR, or EMF capability.


Running Direct Coupled-Field Multiphysics in ANSYS Mechanical APDL

When I wrote this section heading it seemed like a good idea. But this is supposed to be a short blog entry and not a full one day training class. So I will wimp out and share where you can find more information in the help:

There is a whole manual dedicated to coupled-field analysis: Mechanical APDL // Coupled Field Analysis Guide. Within that guide is the Direct Coupled-Field Analysis section, Chapter 2.  In it you will not only find discussions about how to do what you need to do, but also a whole bunch of simple examples that are very helpful.

In general, you run like any other simulation.  There is really nothing special or unique and you do not have to deal with managing the load transfer like you do with load transfer coupled field simulations.

Running Direct Coupled-Field Multiphysics in ANSYS Mechanical

This is a question that comes up a lot. Unfortunately only one type of direct coupling is supported, Thermal-Electric.  What we recommend people do is they build their models in ANSYS mechanical for one of the physics, then use code snippets to change the elements to the proper direct coupled-field type and to also do any post processing. It will run when you solve, but it will come back with an error, and you need to post processes via APDL code or you need to post process in MAPDL interactively.

NEW INFO:  Edward points out in the comment below that you can get this to work.  I’ll repeat it here:

“We’ve had some success post-processing U-TEMP-VOLT analyses in Mechanical. Mechanical seems to accept a model as solved, so long as it sees a result file of the correct type in the Solver Files directory. The coupled field analysis in this case output a .rst file, so we used a Static Structural object as the base model. 
We could access the structural results directly and used User-defined results to access most of the thermal and electric results.
I seem to recall that we also had success using a Thermal analysis as a base and then changing the result file extension from .rst to .rth, but I can’t find my test model to confirm this.”

I can verify that both of these approaches work. I added a /sys, copy file.rst to file.rth to a code segment for the thermal base.  But it was simpler to just use the structural as the base.  If you do this you can do your post processing for the most part in ANSYS Mechanical. [E. Miller 3/28/2013)


So this was, as promised, a very high level overview. The fact of the matter is that there are a significant number of users, especially in the MEMS industry, that use these direct coupled-field elements all the time.  They are powerful and robust with as many uses as you can dream up, truly expanding the reach of what you can model and the accuracy of those models.

Over the years we have found some good tricks for using these elements effectively:

  1. Pick one of the physics and get a static run of that physics by itself running first. Debugging your model this way is usually faster and clears out any issues before you deal with the direct coupling issues. If you have more than two physics, add them in one at a time.
  2. Pay attention to units. When you start mixing voltage and distance or what not, it is easy to get confused. If you are doing MEMS devices, you need to make sure you are using the MEMS units and that you are consistent.  Unlike ANSYS Mechanical, ANSYS Mechanical APLD is unitless and requires the user to make sure the are consistent across physics.
  3. Try not to use the legacy elements if you don’t have to. They may not be around in the future.
  4. If you are doing EMAG, you may want to look at using load coupling with Maxwell or MAPDL instead of using the legacy direct coupled elements.  Maxwell and the newer elements in MAPDL have more capabilities and are more efficient.
  5. Make sure you really understand how your physics interact. Go through the thought experiment of predicting the interaction on as simple of a problem as you can, while keeping it relevant. Think about what loads interact with what structures and what that interaction implies.

Introduction to the ANSYS Parametric Design Language (APDL) Book Now Available on Amazon!

PADT-Intro-APDL-Amazon-PagePADT’s popular “ANSYS Customization with the ANSYS Parametric Design Language Guide” Has been updated and reformatted as a book and published as “Introduction to the ANSYS Parametric Design Language”  in both softcover and Kindle formats.

This book started life as a class that PADT taught for many years. Then over time people asked if they could buy the notes.  And then they asked for a real book.  The bulk of the content came from Jeff Strain with input from most of our technical staff.  Much of the editing and new content was done by Susanna Young and Eric Miller.

Here is the Description from

The definitive guide to the ANSYS Parametric Design Language (APDL), the command language for the ANSYS Mechanical APDL product from ANSYS, Inc. PADT has converted their popular “Introduction to APDL” class into a guide so that users can teach themselves the APDL language at their own pace. Its 12 chapters include reference information, examples, tips and hints, and eight workshops. Topics covered include:
– Parameters
– User Interfacing
– Program Flow
– Retrieving Database Information
– Arrays, Tables, and Strings
– Importing Data
– Writing Output to Files
– Menu Customization

At only $75.00 it is an investment that will pay for itself quickly.  Even if you are an ANSYS Mechanical user, you can still benefit from knowing APDL, allowing you to add code snippets to your models. We have put some images below and you can also learn more and purchase your copy on  They can ship anywhere in the world.







The Cost of ANSYS, Fluent, CFX, Maxwell, ICEM CFD, etc. Training

How much does training cost for ANSYS, Fluent, CFX, Maxwell, ICEM CFD, Icepak, AQWA, etc.? This is a question many engineers and managers often ask when considering training in the ANSYS family of products. The answer is that it can cost anywhere from zero to several thousand dollars, depending on a variety of factors.

How can training be free? If you are a current customer you may find that you can download training files or view some videos on various ANSYS product simulation topics. This training really isn’t free, since you or your company is paying for maintenance of the ANSYS software which gives you access to the customer portal. We at PADT also provide free content, typically in the form of our webinars which can be viewed at Click on, “PADT ANSYS Webinar Series.”

You might also find some free training out there on the internet. Alternatively, you might find that training is free or reduced but with a catch, such as the need to purchase more software.

That all being said, as I’m sure you are aware, you get what you pay for. Maybe what you find for free is good enough for what you are trying to do. However, you most likely won’t be able to find free training that’s tailored to your needs or your organization’s specific simulation applications. If you have a question about the training material or what the recorded instructor just said, you most likely will not be able to ask about it. You’ll either be left in the dark, or will have to expend extra effort to figure it out on your own. There are costs associated with both of those options.

So, what about the cost of paying for training? If you are attending a class by yourself, you can expect to pay a minimum of about US$500.00 per day for your training class. You may have travel expenses to consider in addition to that.

If you are part of a group that needs training, then group rates come into play which can significantly reduce the cost of training per student. A few thousand dollars to train a group of 8 or 10 engineers will typically be a small investment relative to the cost of the simulation software. Further, at PADT we often customize our training material for our training customers. This is a further benefit of group training.


At PADT group rates kick in at about the 4 students per class size. Using group rates can be a very effective way to get productive training into your organization, especially if travel is involved since only one instructor may need to travel vs. several students. Web-based training is another option. This was discussed by Eric Miller of PADT in a prior blog entry,

Further, PADT’s customer feedback has consistently shown that our training classes pay for themselves. In other words, increases in productivity due to a quick jump up the learning curve can very quickly return the fees paid for training.

There are other factors to consider in training as well. What is the experience base of the organization providing the training? Do they have real-world experience in using the simulation tools for which they are providing training? What about location, flexibility, and scheduling? Will the provider cancel your class with short notice if there aren’t enough students? These are all things to consider when picking a training provider.

The bottom line is that consideration must be made for the relative benefits of training vs. the amount spent on the training. We at PADT would be glad to answer your questions about training in the ANSYS family of products. You can reach me at You can view our current training offerings at

There’s an Extension for That!

My mother in law is still getting used to the concept of a smart phone.

MIL: “Do you have a GPS so you know how to get there?”

Me: “There’s an App for that.”

MIL: “Do you have a flashlight?”

Me: “There’s an App for that.”

MIL: “Do you have a chromatic tuner?”

Me: “There’s an app for that.”

OK, maybe my mother-in-law didn’t ask about the tuner, but there is in fact an app for that.

In similar fashion, now that ACT (ANSYS Customization Toolkit) is a reality, we can start answering questions with, “There’s an Extension for that.” What is an extension? It’s a bit of customized software that you can integrate with ANSYS Workbench to have it do things that aren’t built in to the current menus.

We’ll leave the nuts and bolts of how Extensions work for another article, but please be aware that current ANSYS customers can now download several Extensions from the ANSYS Customer Portal. We’ll take a look at one of these in this blog entry.

To access the currently available extensions, you must have a login to the ANSYS Customer Portal and be current on maintenance (TECS). Within the customer portal, the Extensions are available by clicking on Downloads > Extension Library; then click on ACT Library.

As of this writing there are 12 extensions available for download. These vary from the sophisticated Acoustics Extension for 14.5 to simpler extensions such as the one we’ll look at here which allows you to change the material property numbers of entities in Workbench Mechanical.

Once you have downloaded the desired extension, you’ll need to install it. For use in the current project, you click on Extensions at the menu near the top of the Workbench Window and click on Install Extension.


After clicking on Install Extension, you browse to the folder in which you have saved the downloaded extension. The Extension file extension (I’m not making this up) is .wbex. Here is what it looks like when loading the material change extension:


Click Open.

Next you must click on Extensions again the Workbench window, and click on Manage Extensions. That will bring up this window.


Check the box next to any extensions you want to load, then click Close. If you have already launched the Mechanical editor, you will probably need to exit Workbench and get back in or at least click on File > New and reload for the new extension to show up.

When you open the Mechanical editor, the new extension should show up in the menus. Here is what the material change button looks like after the extension has been loaded:


Each time you open a new Workbench session, you’ll need to click on Extensions > Manage Extensions if you want an extension to be loaded into the Mechanical editor.

Alternatively, you can have an extension load every time by clicking on Tools > Options from the Workbench window, followed by a click on Extensions. Enter the name of the desired extension in the box, as shown here.


After clicking OK, any new Mechanical editor session will have the material change extension loaded.

So, what good is it? I will now show a simple example of implementation of the material change extension. The idea here is that we have a bolted connection and we want to look at two different conditions by changing the material properties of the washers to see what effect that has on the results. Using the material change extension, I can force the washers (and nuts and bolts too) to have a specific material number rather than the default value assigned by Workbench. The material number is used in the Mechanical APDL batch input file created by Workbench to identify which elements have which material properties.

Now before you APDL gurus get all riled up, yes, I know this can be done with the magic ‘matid’ parameter. That’s how we’ve been doing things like this for years. The material number extension is nicer since it’s an actual button built into the GUI. We’re really trying to show how extensions work here, not necessarily the best way to simulate a model with changing material properties.

That all being said, here is what it looks like. Clicking on the ‘matchange’ button in the menus inserts a new matchange object in the tree under the analysis type branch. In this example, the matchange button has been clicked three times, resulting in three matchange objects.


The matchange functionality requires that we create Named Selections for any entities for which we want to change material property numbers. How do I know that? When I downloaded the extension from the ANSYS Customer Portal, a nice read me .pdf file came along with it.

Here I have clicked on matchange 2 in the tree and identified the Named Selection for the entities I want to change, in this case the named selection Washers. I then entered my desired integer material number for these entities, 102.


Finally, in order to demonstrate that it works, I added on command snippet under the Static Structural branch, containing these APDL commands:

esel,s,mat,,102 ! select material 102 – washers.

Those commands select the washers by my user-defined material number (I could have also selected by named selection). The commands then define new material properties for material 102. Again, there are other ways to do this, but this shows the effect of the extension. Note that this command snippet is set in the details view to only be active for load step number 3. Load step one applies bolt pretension. Load step 2 solves for the operating load with the original material properties and load step 3 solves for the same loads but with the modified material properties for the washers.

This plot shows von Mises stress in the washers vs. loadstep/substep. As you can see in the graph below the stress plot, indeed the von Mises stress is changing due to the material change from step 2 to step 3. This was a nonlinear analysis with large deflection turned on.


So, this should give you a taste of what extensions are and what can be done with them. The next time you are asked to do something in Workbench for which there isn’t a built-in menu, you may be able to say, “There’s an extension for that!”

The Importance of Updating Graphics Drivers

Users of graphics-intensive software like the ANSYS family of products occasionally encounter problems caused by graphics or video drivers. It’s important to keep your drivers up to date. In this entry we will summarize some of the symptoms of driver problems and will let you know how to find and install the latest drivers if needed.

Recently I found two issues with my software tools that ended up getting fixed by simply updating the graphics driver. I first noticed the problem with ANSYS Maxwell. While Maxwell had displayed on my machine with no trouble in the past, I found after installing the latest version that it would not load past the initial splash screen. Older versions now had the same problem as well. Also possibly related, I noticed that certain plots in ANSYS DesignXplorer were showing up as big red X’s rather than the response surface plots I was expecting. Most software and plotting worked just fine. There were just a couple of things that were not working. With some input from the helpful staff at ANSYS, Inc., the Maxwell problem was diagnosed as a probable graphics driver issue. Sure enough, once I downloaded and installed the latest driver for my graphics card, goodness was restored and both Maxwell and DesignXplorer were back to normal on my computer.

imageHow can you obtain the specs on your graphics card so you can determine if you have the latest driver or not? On Windows 7, one way to do it is to open up the Control Panel. In the View By setting at upper right, specify Small icons. Then click on Performance Information and Tools. Next click on the link labeled “View and print detailed performance and system information.” The resulting window will have a Graphics section which will list your display adapter type (graphics card manufacturer and model) along with the version number of the installed driver.

There are a couple of ways to check on whether the driver you have is the latest or not. One way is to use Windows Update, although keep reading to see why this is not recommended. On Windows 7 this can be done by right clicking on the desktop and selecting Screen Resolution, then Advanced Settings, then Properties on the Adapter tab, then Driver tab, Update Driver. However, as the helpful staff at ANSYS, Inc. has pointed out to me, Windows Update is not always aware of the absolute latest drivers available. I ended up learning that one the hard way.

imageTherefore, the recommended method of checking on your graphics driver version is to go to the manufacturer’s website. My graphics card happens to be an AMD FirePro V5900. A web search on AMD FirePro easily gets me to the AMD website page for FirePro professional graphics cards. There is a “Find a Driver” link at upper right. Using that link and knowing the model number of my card, I can easily find the latest driver version and download and install it if it’s newer than the version currently installed. Similarly, the nVidia website has a prominent “Drivers” link on their home page.

The bottom line: it’s always a good idea to make sure you have the latest driver installed for your graphics card. Certainly if you notice that your software is not displaying correctly or just hanging for no reason, one of the first and easiest things to check is whether or not you have the latest graphics driver installed.

Legacy Training Material: Tcl/Tk for ANSYS Mechanical APDL

The Graphical User Interface (GUI) for ANSYS Mechanical APDL is written in a toolset called Tcl/Tk. This is actually the same GUI toolset that ICEM CFD uses.  Way back in the days when dinosaurs roamed the earth and the .com bubble was bursting, PADT wrote and Advanced Customization class for what was then just called ANSYS.  We still use a large portion of that class today, but one area that has really been mothballed is the chapter on Tcl/Tk.

But some users may find some value there so we present it here, in its un-edited and un-verified totality as a resource for the community.

ANSYS Mechanical APDL Tcl/TK Legacy Training

Use it with success, but at your own risk.


Monster in the Closet: PADT Goes Live with 512 Core HVPC CUBE Cluster

imageThere is a closet in the back of PADT’s product development lab. It does not store empty boxes, old files, or obsolete hardware.  Within that closet is a monster.  Not the sort of monster that scares little children at night.  No, this is a monster that puts fear into the heart of those who try to paint high performance computing as a difficult and expensive task only to be undertaking by those who are in the priesthood.  It makes salespeople who earn fat commissions by selling consulting services and unnecessary add-ons quake in fear.

This closet holds PADT’s latest upgrade to our compute infrastructure: a 512 core CUBE HVPC Cluster.  No data center, no special consultants, no expensive add-ons. Just 512 cores chugging away at solving FLUENT and CFX problems, and pumping a large amount of heat up into the ceiling.

Here are the specifics:

CUBE C512 Columbia Class Cluster

  • 512 AMD 2.4GHz Cores (in 8 nodes, 4 sockets per node, 16 cores per socket)
  • 2TB RAM (256 GB per node of DDR3 1600 ECC RAM)
  • Raid Controller Card (1 per node)
  • 24TB Data Disk Space (3TB per node of SAS2 15k drives in RAID0)
  • Infiniband (8 Port switch, 40 Gbps)
  • 52 Port GIGE switch connected to 2 GIGE ports per node
  • 42 U Rack with thermal convection ducting (chimney)
  • Keyboard, monitor, mouse in drawer
  • CENTOS (switching to RedHat soon)

We built this system with CFD simulation in mind.  The original goal was to provide a proof of concept to expand our CUBE HVPC offering, showing that you can create a cluster of this size, with very good speed, for a price that small and medium sized companies can afford.  We also needed a way to run large problems for benchmarks in support of our ANSYS sales efforts and to provide faster technical support our FLUENT and CFX customers.  We already have a growing queue of benchmarks waiting to get into the machine.

The image above is the glamour shot.  Here is what it looks like in the closet:


Keeping with our theme of High Value Performance Computing we stuck it into this closet that was built for telephone equipment and networking equipment back at the turn of the century when Motorola had this suite.  We were able to fit a modern rack in next to an old rack that was in there. We then used the included duct to push the air up into our ceiling space and moved the A/C ducting to duct right into the front of the units.  We did need to keep the flow going into the rack instead of into the area under the networking and telephone switches, so we used an old video game poster:

Anyone remember Ratchet and Clank? 
Best PS2 games ever.

It works well and adds a little color to the closet.

So far our testing has shown some great numbers. Not the fastest cluster out there, but if you look at the cost, it offers incredible performance.   You could add a drive array over Infiniband, faster chips, and some redundant power. And it will run faster and more reliably, but it will cost much more.  We are cheap so we like this solution.

Oh yea, with the parts from our old CFD cluster and some new bits, we will be building a smaller mini-cluster using INTEL chips, a GPU or two, and a ton of fast disk and RAM as our FEA cluster.  Look for an update on that in a couple of months.

Interested in getting a cluster like this for you computing pleasure?  A system configured like this one will run about $150,000 (video game poster is extra). Visit our CUBE page to learn more or just shoot an email to  Don’t worry, we don’t sell these with sales people, someone from IT will get back with you.