Active Solution Monitoring during a solve in ANSYS CFX

One of the cool new features in CFX 18 is the ability to actively review results while the calculation is running. It is supported for steady state and transient calculations, and now includes support for rotating reference frames as well.

What follows are some tutorial-esque steps to get you started.


ANSYS CFX Solver Manager Instructions for Linux

Since PADT has been building the CUBE machines (, we have developed a need for clear-cut instructions for running parallel benchmarks with ANSYS software tools on the CUBE machines (which come standard with the CentOS Linux 64-bit operating system).  The computational fluid dynamics (CFD) solver ANSYS CFX is one such tool.  I have summarized instructions here for starting the CFX Solver-Manager on a Linux machine, loading the *.def file, configuring it for a parallel run, and then running it.

Step 1: Place the benchmark input file (*.def file) for CFX in /home/user.

We’ll assume the benchmark file is the standard CFX airfoil benchmark:

*.def file = “perf_Airfoil_R12_PADT.def”.

Step 2: Start CFX on the command line: type “/ansys_inc/v121/CFX/bin/cfx5”.


Figure 1 – Command to launch CFX

Step 3: Set the Working Directory / Start the Solver Manager

a) The CFX Launcher will display based on the command entered in Step 2.

b) Check that the “Working Directory” corresponds to /home/user (red rectangle in Figure 2).  If it is something different, select the folder icon contained in the red rectangle in Figure 2, and navigate to /home/user.

c) Select the “CFX-Solver Manager” (black rectangle in Figure 2)


Figure 2 – Set the Working Directory and open the CFX-Solver Manager

Step 4: Define Run

a) Select “File – Define Run” (Figure 3)

b) Check “Show Advanced Controls” (Figure 3)


Figure 3 – Define the Run

Step 5: Read the *.def file

a) Select the folder icon (Figure 4).

b) Pick “perf_Airfoil_R12_PADT.def” (Figure 4).

c) Select Open (Figure 4).


Figure 4 – Read the *.def file

Step 6: Set the Run Mode

a) Select the pull-down next the “Run Mode” (Figure 5).

b) Pick “HP-MPI Local Parallel” (Figure 5).


Figure 5 – Set the Run Mode

Step 7: Partitioner Settings

a) Go to the “Partitioner” tab (Figure 6)

b) Under “Partitioning Detail” select “Multidomain Option – Coupled Partitioning” (Figure 6)


Figure 6 – Partitioner Settings

Step 8: Add partitions and Run

a) Click the “plus” sign to add partitions (the number of partitions should be the same as the number of processors for the run) (Figure 7).

b) Select “Start Run” (Figure 7).


Now, your job should start up and you will see the residuals/imbalances:


Figure 8  – CFX-Solver Manager with running job

Happy solving…

Parallel Performance: ANSYS FLUENT R13 with Service Pack 2

Recently, PADT has conducted some parallel benchmarks with our Linux cluster.  The model used for the tests is an ANSYS FLUENT *.cas file with 26.5 million cells and 6.5 million nodes.  The physics in this model are fairly simple; it is modeling external, steady airflow over an object.  Simulations of 10 iterations were conducted using as many as 144 processors over three 48-core systems (the machine names are “cs0”, “cs1”, and “cube48”, and are summarized in Table 1).  The first two machines in Table 1 (cs0 and cs1) are connected together via Infiniband, so they effectively form a 96-core machine.  Furthremore, the cs0 and cs1 machines are connected to cube48 via GigE network ports.  Each of the machines has two GigE network ports each which connect to a Gigabit switch to allow for trunking.

Table 1 – Benchmark machine specifications


Processor Type

Processor Count


2.3 GHz AMD Opteron 6176SE



2.3 GHz AMD Opteron 6176SE



2.2 GHz AMD Opteron 6176SE

Two versions of FLUENT were tested; the original version 13 (R13), and the new Service Pack 2 for version 13 (R13 SP2).  The results were scaled according to the one-processor solve time to compute the “speedup” (defined as the solve time on 1 processor divided by the solve time on “N” processors), and are presented in Figure 1 with a comparison to “Linear” or ideal speedup (ideal speedup implies that the speedup value is equal to the number of processors for a given processor count).


Figure 1 – Speedup vs. Processors with 6.5 million node ANSYS FLUENT model

The first result in Figure 1 (blue curve) was obtained using as many as 48 processors on the cs0 machine before installing the Service Pack 2 for FLUENT version 13.  As illustrated in Figure 1, the speedup values of the blue result decrease as the number of processors increases.  The next result (green curve with triangles) was calculated using Service Pack 2 for ANSYS FLUENT version 13 on the cube48 machine using as many as 48 processors.  This result on cube48 presents perfect correspondence with Linear speedup, and even displays some values which are “super-linear”.  This behavior led us to suspect that the improvements in Service Pack 2 for ANSYS FLUENT version 13 were the primary cause of the increase in performance demonstrated by the cube48 speedup result.

However, further testing of the cs0 and cs1 machine with Service Pack 2 for ANSYS FLUENT seems to suggest otherwise.  These data are represented by the red squares in Figure 1.  Runs were conducted on as many as 144 processors, which involved a distributed run using 48 processors on cs0, 48 processors on cs1, and 48 processors on cube48.  The general trend of this result is the same as that recorded on cs0 before installing Service Pack 2 for ANSYS FLUENT version 13, suggesting that some other effect (likely machine-related) is present.   Our current hypothesis is that the socket 2 processor (which handles the Infiniband UIO card hardware) is causing the slowdown, primarily because the Infiniband switch is present only on the cs0 + cs1  machine, and not on the cube48 machine.  This was suggested by the manufacturer of Infiniband switch (SuperMicro).  Testing to asses this problem is on-going.

Keyframe Animation with CFD-Post

Creating useful visualizations of your fluid simulation results can be sometimes be a challenge. Images of contour plots, isosurfaces, or streamlines may not be sufficient to communicate your point. Sometimes you need to combine results together and use visual effects to transition between them. Cue up keyframe animation. In case you are not familiar with the term, “keyframe” means that multiple visualization techniques (zooming, flying around, fading, time-animation, contours, isosurfaces, etc.) are combined together in one animation file.  Keyframe animations generally require some planning and testing before creating the final result, especially as you get more skilled and start adding more results/effects.  However, if you are willing to put in a bit of extra effort, you may find that you have not only communicated your point well, but have also visually engaged your target audience, whether the audience is your managers, your customers, or that hostile crowd at a technical conference.

CFD-Post, the post-processing tool of choice for the ANSYS CFD solvers, presents a straightforward interface for creating keyframe animations. If you click on the “film” icon along the top row of GUI, the Animation Dialog appears.


Figure 1 – Animation Dialog in CFD-Post

The basic idea of a keyframe animation is that you create multiple keyframes, which are connected by transition frames.  Each keyframe is essentially a snapshot of whatever is in the GUI window, and when you animate them together CFD-Post interpolates in three-dimensional space to create transitions between your keyframes. 

Let’s walk through an example. I want to do a zoom effect on my race car model. I’ll start from a “global” view of the entire model (Figure 2a).


Figure 2a – Global view of car model

Next, I’ll insert my first keyframe by clicking the blank page icon in the keyframe animation dialog menu. This keyframe will have 80 distinct frames (interpolation points) between itself and the next specified keyframe.


Figure 2b – Create first keyframe: 80 intermediate frames

Now, since I want to animate the “zoom” portion, I’ll zoom in closer (Figure 3a).


Figure 3a – Zoom view of car model

Next, create the second keyframe at this position.


Figure 3b – Create second keyframe: 80 intermediate frames

Click “Save Movie” box, and then select the “Play” button to record it. Here is the result:


Figure 4 – 80-frame animation from Keyframe 1 to Keyframe 2

For the next part of my keyframe animation example, I’ll add in a CFD result: pressure contours on the surface of the car. First, the solid color on the surface of the car will need to be faded out, and then we can fade in the pressure contour.

I can create Keyframe 3 to account for the fading out of the sold blue on the surface. First, I need to specify that the transparency = 1 (“0” denotes no transparency, “1” denotes 100% transparent) for the surface group that comprises the surface of the car (Surface Group 1). This will allow the algorithm to start with transparency = 0 at Keyframe 2 (the default), and end with transparency = 1 at Keyframe 3. Next, I need to account for the fading in of the pressure contour. Thus, I create a contour of the static pressure on the surface of the car (Contour 1) and set its transparency = 1. Then, select the new keyframe icon to create Keyframe 3.


Figure 5 – Create Keyframe 3 to represent fade-out of blue surface

Finally, I can create Keyframe 4 to account for the fading in of the pressure contours on the surface. Now, all that is required to set the transparency of the pressure contour (Contour 1) to “Transparency = 0”. Then, select the new keyframe icon for Keyframe 4 (reference Figure 6).


Figure 6 – Create Keyframe 4 to represent fade-in of pressure contour

Now,to record/save the keyframe animation, select “Save Movie” in the Animation dialog menu shown in Figure 6. I typically select “Loop”, and “Repeat” = 1.  The “Bounce” option reverses the animation when it reaches the end.  The finished product is shown in Figure 7.keyframe1234

Figure 7– 160-frame animation from Keyframe 1 through Keyframe 4

Now that I have demonstrated how the keyframe functionality works in CFD-Post, it becomes apparent how to create keyframes. The first step is plan out the keyframes in the animation; essentially, visualize an image that represents each keyframe. Then, experiment with the transitions between them; fading, zooming, flying around, etc. Finally, put the entire keyframe animation (keyframes plus transitions) together and let your customer, manager, or colleagues watch in awe.

Using the Solar Load Model in Fluent

One of the useful features in ANSYS Fluent is the solar load model. This capability can be used to calculate the effective radiation load based on the position on the earth’s surface (latitude and longitude), the model orientation with respect to North, the time of day, the season, and established conditions for clear or cloudy weather. The applications are widespread, but readily apparent are calculations of radiative heating on automotive cabins and buildings.

Two options are available for the solar load model; solar ray tracing or discrete ordinates. Solar ray tracing is coupled to Fluent by computing heat fluxes from incident solar radiation using a ray tracing and shading algorithm, and then applies the calculated heat flux on element faces of semi-transparent walls. Solar ray tracing presents less computational overhead than discrete ordinates, as it calculates the solar loads once at the beginning of a steady-state simulation. However, it uses some simplifying assumptions to do so (another example of the accuracy/solution time tradeoff that simulation analysts often encounter). It does not calculate the emission from surfaces, and the reflecting component of the incident load is distributed uniformly across all participating surfaces rather than retained locally at the surfaces reflected to. However, solar ray tracing can be coupled with one of the supported radiation models (P-1, Rosseland, Surface-to-Surface) if surface emission effects are important.

The discrete ordinates method is coupled to Fluent by calculating radiation heat fluxes on semi-transparent walls. The discrete ordinates approach directly calculates the irradiation flux as a boundary condition for the solution of the radiative transfer equation.

A key part of the Solar Load Model in Fluent is the Solar Calculator, which calculates the solar beam direction and irradiation for a known time and position. The Solar Calculator inputs are displayed in Figure 1, followed by an explanation of each.


Figure 1 – Solar Calculator Panel for Fluent’s Solar Load Model

The inputs for the Solar Calculator are:

· Global position (latitude, longitude, and time zone). The time zone is measured as a plus or minus from Greenwich Mean Time (GMT).

· Starting date and time

· Orientation of the model with respect to North/East

· Solar irradiation method

· Sunshine factor

There are two choices for the irradiation method; Fair Weather Conditions (ASHRAE) and Theoretical Maximum (NREL). These methods are similar, but the Fair Weather Conditions method applies greater attenuation on the radiative load. The sunshine factor is simply a linear multiplier that allows the incident load to be reduced in order to account for cloud cover. Once the irradiation and solar beam direction are known, they are applied as inputs to the solar ray tracing algorithm or the discrete ordinates method.

After selecting the appropriate input conditions for the Flatiron Solar Calculator, you can click “Apply” to generate the irradiation and solar beam direction information. This information is printed to the Fluent TUI (text user interface) window, and typically looks something like:

Theoretical Maximum:

Sun Direction Vector: X: -0.0722563, Y: 0.799654, Z: -0.596097

Sunshine Fraction: 1

Direct Normal Solar Irradiation (at Earth’s surface) [W/m^2]: 1327.15

Diffuse Solar Irradiation – vertical surface: [W/m^2]: 105.195

Diffuse Solar Irradiation – horizontal surface [W/m^2]: 113.693

Ground Reflected Solar Irradiation – vertical surface [W/m^2]: 117.495

Figure 2 – Printed result in the Fluent interface after applying the Solar Calculator

This information is printed so that it can be used in the specification of boundary conditions. The Solar Load Model (for both Ray Tracing and Discrete Ordinates) applies a calculated solar flux on semi-transparent surfaces only, so if there are opaque surfaces in the model, the solar load will have to be applied as a boundary condition on the opaque surfaces explicitly.

The explicit application of the solar load to the opaque surfaces in the model requires the calculation of the heat flux on that surface. The solar load is a vector quantity applied to the model along the “Sun Direction Vector” (Figure 2). The incident solar load on a particular surface will be the component of this vector projected into the direction of the local surface normal vector. The result of the projection is then multiplied by the “Direct Normal Solar Irradiation” shown in the printed output in Figure 2. This value represents the heat flux which must be applied as a boundary condition on the opaque surfaces of the model. Intuitively, if the result of the dot product between the “Sun Direction Vector” and the unit normal on the surface is a negative scalar, then the surface in question is not irradiated by the sun.

The Solar Load Model is applied to calculate the load on a simple model of two solid aluminum blocks subjected to solar heating in Phoenix on a summer day at 1 pm with an ambient temperature of 100 degrees Fahrenheit (see Figure 3). The view in Figure 3 is from the South (positive y direction).


Figure 3 – Simple geometry for coupled thermal and fluid solution with solar loading

The grid contains ~200e3 cells, and uses hex elements to resolve the interior of the blocks and tetra elements to resolve the air volume of the surroundings. Inflation layers are used at the interfaces between the air volume and the solids. The solar loads on each surface and contributions from natural convection (in the form of heat transfer coefficients) are applied as heat flux conditions on the walls of the aluminum blocks. In this case, the Solar Calculator is used to get the sun direction vector and applied load, which are applied as individual boundary conditions. The Solar ray tracing and the coupling of the Solar Load model with the radiation models is not utilized in this example, primarily because the boundaries on which the solar loads are applied are all opaque, and the re-radiation of energy is not accounted for. The coupled solver with pseudo-transient relaxation is applied for the solution of the momentum, energy, and turbulence equations. A few representative plots are shown in Figure 4 a-c.



(a)                                                                (b)                                                              (c)

Figure 4 – Simulation results: (a) Temperature contours on aluminum blocks; (b) Temperature contours in a plane; (c) Vertical velocity contours in a plane

In summary, the Solar Load Model in Fluent presents a way to easily calculate details about the solar heat flux conditions given a certain geographical location, season, and time of day. Furthermore, Fluent’s Solar Load model has the capability to resolve the physics associated with solar heating of transparent media and re-radiation problems.