CFD Online Discussion Forums

CFD Online Discussion Forums (
-   CFX (
-   -   CFD Post: Difference between calculated surface values using different methods (

Shawn_A July 6, 2013 23:56

CFD Post: Difference between calculated surface values using different methods

I'm getting different torque values depending on whether I use a surface that was defined in the solution or a user surface covering the same surface that was defined from a contour in Post.

First, I have my blade, blade1, which is a straight blade defined as a non-slip wall in CFX-Pre. There is a symmetry plane and condition at the middle of the blade, so it is really half of the blade. I defined a monitor point called TorqueZ_Blade1 with a definition of torque_z()@blade1. In the Table Viewer section of Post I put =torque_z()@blade1 and get the same value as the monitor point.

Since I would like to see the torque distribution along the blade, in Post I have defined a contour along this blade in the Z direction which essentially divides the blade into a number of slices. If I then create a User Surface based on the Z contour and attempt to sum torque_z()blade1contour1 through torque_z()@blade1contourN my sum is different from torque_z()@blade1.

After noticing the discrepancy between the two approaches, I tried to simplify problem by reducing the number of contours. The first contour has no area, so the simplest case is uses 2 contours, where contour 2 makes up the entire blade and therefore should be equivalent to the torque on the entire blade. Using this approach gave the same result as summing torques from the individual contours.

My next thought was perhaps that my Zmin and Zmax limits for the contour were inadvertently cutting of some area from the blade, so I redefined the limits to extend 1% beyond the blade on each side. Unfortunately this did not change the result.

I get a similar behaviour for forces as well.

So I am currently stuck with a discrepancy between the value of torque as calculated using the two methods described above. Has anyone encountered something like this or have any ideas why it is happening?


ghorrocks July 7, 2013 06:16

I have heard of problems with the force and torque calculations before but have never got to the bottom of it, so I do not know the cause. It might be a bug in CFD-Post. I would report it to ANSYS support.

mjgraf July 7, 2013 15:00

same here Glenn, mention of it but never really researched in depth.
I do know accurate torque calculation is sensitive to mesh quality/density and currently seeing how sensitive it is to yplus levels (boundary layer resolution).

Plot the Force on the blade surface and set range to local. If you notice localized spikes in the force you may need to refine your mesh. Plot the mesh lines and it will be apparent. Plot the pressure the same way and it is typically smooth in contrast.

I am curious, are you using blade1 as the location for the contour or something else?

Maybe a bit off topic, but one may need to check the following, because there is an expert parameter necessary during the solver if a reference pressure is used. It will print in the out file when reviewed it carefully.

Pressure integrals exclude the reference pressure. To include it, set the expert parameter 'include pref in forces = t'.

mjgraf July 7, 2013 15:29

just opened and checked torques on a blade.

Created Surface Group from mesh regions for the blade.
Torque on Surface Group 1
torque_z_Coordinate Frame 1()@Surface Group 1
-0.114972 [N m]

Created two Contours using Surface Group 1 as location: One with 2 levels, other with 5 levels.

Wrote some expressions
torque_z_Coordinate Frame 1()@Surface Group 1 - torque_z_Coordinate Frame 1()@User Surface 0
= -0.000747375 [N m] (so small difference)

torque_z_Coordinate Frame 1()@User Surface 0 - (torque_z_Coordinate Frame 1()@User Surface 1 + torque_z_Coordinate Frame 1()@User Surface 2 + torque_z_Coordinate Frame 1()@User Surface 3 + torque_z_Coordinate Frame 1()@User Surface 4)
= -9.68575e-008 [N m]

So difference between the User Surfaces created from the contour is minimal.
difference between the Surface Group of mesh regions and User Surface from single contour level, minor difference for my calculation.

Difference between the sum of individual torques for the mesh regions compared to the Surface Group = 0.0 (no difference).

so my question remains, what surface/s is being used for the contour.

Shawn_A July 7, 2013 16:19

4 Attachment(s)
blade1 is being used as the location for the contour, after which I've selected the user surface to use contour #2 from that contour. There do not appear to be any discontinuities in the plot of Force Y on the surface of blade 2. However, there is something wonky going on near the symmetry plane.

In the attached images, blade1 is green, blade3 is blue and blade 2 has a contour plot of Force Y.

This is for a vertical axis turbine. A center domain spins inside a stationary outer domain. Flow direction is along the x-axis. Blade2 is therefore traveling directly upstream at the particular moment in time shown.

(On a separate note, it looks like the ANSYS customer portal login page was hacked, also in the attached images)

ghorrocks July 7, 2013 18:23

The ANSYS Customer page appears to be back on line as normal.

What is happening near the symmetry plane?

Shawn_A July 7, 2013 20:08

2 Attachment(s)
That's odd, the 'hacked' version still loads for me at and also on another computer at a separate location that I just logged into.

As for the symmetry plane, I was expecting there to be nearly zero-gradient in the forces perpendicular to the symmetry plane. The attached image shows Force Y plotted on the blade nearest the symmetry end of the blade. The blade is a 2D extruded mesh and the plot of Force Y on the surface looks good up to the nearest plane of nodes from the symmetry plane. On the layer closest to the symmetry plane the values of force appear significantly different from layers 2 and 3.

Pressure values have zero gradient perpendicular to the symmetry plane though. I wonder if the pressure and viscous forces have been separated.

mjgraf July 7, 2013 20:35

go directly to

But I am having trouble accessing the Service Request portion.

ghorrocks July 8, 2013 08:00

Assuming we are looking at the end of the blade with a symmetry plane then your images are strange, the normal gradient of all variables at asymmetry plane should be zero. Are you sure this is adequately converged? And the symmetry plane is perpendicular to the blades?

Shawn_A July 8, 2013 15:45

The solution is very well converged at this point and the symmetry plane is normal to the blade. I can't say that it's 100% converged, but the average torque over the whole turbine is changing less than 0.1% per revolution and this is after more than 15 revolutions. I plotted pressure on the blade surface and it appeared spot on, no normal gradient whatsoever.

Shawn_A July 29, 2013 19:44

I ended up talking with Ansys CFX support. The CFX solver code and Post have slightly different ways that values of Force and Torque are calculate. The monitor points and anything else accessible by the solver (for example surfaces that existing during the solution stage) are more accurate than surfaces created afterwards in Post. The differences are apparently mostly due to the wall shear calculation.

So, in order to get torque strips on the blades, I have to separately integrate and sum the pressure and wall shear within Post. What would that CEL expression look like?

Shawn_A July 30, 2013 13:07

The bahaviour of Post regarding forces can be found here ( and states that:

CFD-Post calculates the approximate force as follows:
  • If the locator is a wall boundary, the force is equal to the pressure force.
  • For all other locators, the force is equal to the pressure force plus the mass flow force (due to the advection of momentum).
  • In all cases, if wall shear data exists in the results file, the viscous force is added to the calculated force.
So my forces/torques are missing the viscous forces because my blades are walls or because the wall shear data is not included in the results file, most likely the former because I've output all variables to the results file.

To remedy this problem, the forces can be calculated by integrating the pressure and wall shear force components in the X and Y (or any arbitrary) directions:
Fx = areaInt_x(Pressure)@locator + areaInt(Wall Shear X)@locator
Fy = areaInt_y(Pressure)@locator + areaInt(Wall Shear Y)@locator

and the torque can be calculated as:
Tz due to Fx: areaInt_x(Pressure * Y)@locator + areaInt(Wall Shear X * Y)@locator
Tz doe to Fy: areaInt_y(Pressure * X)@locator + areaInt(Wall Shear Y * X)@locator

All times are GMT -4. The time now is 17:47.