CFD Online Discussion Forums

CFD Online Discussion Forums (
-   CFX (
-   -   Force distribution plots - Exporting to structural (

Norflow September 6, 2011 11:19

Force distribution plots - Exporting to structural
1 Attachment(s)
I have attached a .jpeg of a force contour plot on a kaplan turbine in CFX Post. My geometry is a single body and therefore cannot find torque values about the blade axis. I am wondering, can I export the contour values and reload them in a structural analysis with geometry of multiple bodies and a proper coordinate frame? Any help would be appreciated!

ghorrocks September 6, 2011 19:07

CFX can work out torque values just fine. If this is what you want to do you can do this easily in the post processor.

Norflow September 9, 2011 08:42

Thanks for your reply.


Originally Posted by ghorrocks (Post 323200)
CFX can work out torque values just fine. If this is what you want to do...

My original question though asks, is there a way to export these results into any other usuable file?


Originally Posted by ghorrocks (Post 323200) can do this easily in the post processor.

Any ideas on how to go about doing this? The function calculator requires an axis of rotation for torque values, as does any contour plot. Since my geometry is one body, I rely solely on the global coordinate system who's origin runs through the middle of the unit but not through the middle of the blade stem.

ghorrocks September 12, 2011 19:24


is there a way to export these results
In the solver manager, tools/export results

Torque is not a surface variable. It is a single vector, so has X, Y, Z components and is not a field variable. You cannot plot this meaningfully over a rotor surface. You probably want wall shear stress or pressure.

Shawn_A May 10, 2012 11:46

Force X, Y & Z are also vectors, and they can be plotted by selecting them from the standard list of variables. I imagine there is a way that Torque Z (or X or Y) could be plotted in the same way on a surface.

I haven't figured out how to do this though...any suggestions?


Shawn_A May 10, 2012 11:51

Although now that I look a little closer, Force X/Y/Z are defined as scalars. So there should be a way to define Torque Z as a scalar also.

Shawn_A May 10, 2012 13:22

So I created an expression, torquez1:

(Force X * cos(3.14159* (Current Time Step)/180) + (Force Y * sin(3.14159* (Current Time Step)/180))) * - 1.45

where 1.45 was my radial distance. Then I created a variable, Torque Z1 which was defined using my expression torquez1. I was then able to plot the torque on the surface.

Now I just need to figure out if I can divide my blade up into a number of spanwise slices (rings) say 10mm thick and plot the net torque from of each slice so that I can see the variation of torque along the axis of the blade since the circumferential torque distribution - although interesting - is not really of interest.

....I'm open to suggestions.


ghorrocks May 10, 2012 23:56

This seems to be a simple post processing exercise. Define a contour surface with contour lines every 10mm, then use a user defined surface from those contour lines. Then do your function on these resulting surfaces.

Also, no need to write 3.14159, just use the function "pi". Also be careful about units in your sin and cos, your expression evaluates to [s] so you probably want it to be (pi*Current Time Step/180[s]) to make sure it is unitless.

Shawn_A May 11, 2012 02:27

Firstly, thanks for the suggestion Glenn. Here's how I made out:

I first created a contour on the surface of my blade using the "Contour" plot tool with which I plotted the variable Z using a user specified range of 0 [m] to 1.5 [m] (since this is the length of my blade) and specified 151 countours. This should give me 150 strips that are each 0.01 [m] high.

I next created a location using the "User Surface" tool in which I selected "From Contour" as the method, the "Z" Contour I previously created as the Contour Name and for a test picked the 50th Contour Level. This gave me a strip about 0.5 [m] from my boundary which looked to be about 0.01 [m] wide.

I then simply plotted my torque function on that "user surface" and, as I expected, I got a plot that looked the same as just plotting the function on the entire blade. I found out that I can simply use torque_z@location_name instead of having to write my own function, which is nice. However, for each surface that I define, I need to write an expression like torque_z@contour50 plus I need to define the surface beforehand. And if I actually want to plot it I need to then create a variable for each contour and then obviously a contour plot on each contour. So...

Since I'm dividing my blades up into 150 pieces, and I have 3 blades to do this for, I really don't want to have to go through the tedious tasks of a) creating a user surface for each contour level then b) writing an expression for each level ...

Is there some way I could specify a general expression like torque_z@<locator> where <locator> could be variable so that I could apply the expression on any surface? And might there also be a way that I could create all the individual contours using a table instead of manually making 450 contours? I've been trying to use the table view as well, but it seems to be more limited than MS Excel in terms of using the values from adjacent cells in calculations/expressions.


ghorrocks May 11, 2012 07:01

Use a CFD-Post session file and you can journal up anything you like. If you feel advanced you can imbed perl in it so you can use loops, branching, variables, etc.

Shawn_A May 28, 2013 21:55

I was never able to make a plot of torque_z() on the blade surface. I tried to make an expression using torque_z() (from which I could create a variable) but it requires a locator to be specified therefore I would need a separate plot, expression and variable for each contour to plot it. Unless someone can offer an alternative approach. So I decided to just make a table with a number of torque_z()@contour# entries and create a separate chart from the values. However...

Something odd, I divided up the blade into a number of contour height "rings" and summed the individual torque_z()@contour# values over the blade and they don't equal to torque_z()@blade. The difference is quite large, >10%. torque_z()blade in Post does equal to torque_z()@blade from the monitor plot though. Not sure what is happening. I tried using finer divisions, but this did not solve the problem. I'm wondering if some of the values near the contour boundaries are being double-counted. Changing from hybrid to conservative boundary data did not change the result, not that I was expecting it would.

Any ideas?

All times are GMT -4. The time now is 09:28.