|
[Sponsors] |
Calculate fields and profiles for velocity time average and standard deviation |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
August 25, 2013, 15:18 |
Calculate fields and profiles for velocity time average and standard deviation
|
#1 |
Senior Member
Pete Bachant
Join Date: Jun 2012
Location: Boston, MA
Posts: 173
Rep Power: 14 |
Hi There,
I'm looking to post process a velocity field by computing mean and standard deviation, but it doesn't look like there is a built in utility for that. Can/should I use foamCalc? If so, how would I go about doing this? After that, I'd like to plot mean and std cross-stream profiles at specified streamwise and vertical positions. It would be nice to parse the data with Python so I can generate plots with matplotlib. Is there any simple way to do this? pyFOAM perhaps? |
|
August 26, 2013, 13:02 |
|
#2 | |
Assistant Moderator
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51 |
Quote:
One alternative would be PythonFlu which is a Python-wrapper around the OpenFOAM-libraries. You could read the data files using that and then do your matplotlib-thing. Another possibility would be swak4Foam. Just computing the mean (you mean the volume weighted average by that?) and standard-deviation (that depends on your definition of "mean") can be done with simple expressions. For more advance postprocessing I just recently pushed something to the publicly available development version: funkyPythonPostproc. That utility reads OF-data files, executes swak-functionObjects on those and hands over results (via global variables) to a python-script as numpy-arrays. And numpy is the de-facto-standary for scientific/numeric libraries in Python .... Only problem is that there is just one Example for that in the swak-distro, but I think it should be sufficient to understand how to do that yourself. Ah. And behaviour in parallel may still be subject to change. That's why it's not in a release yet.
__________________
Note: I don't use "Friend"-feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request |
||
September 1, 2013, 13:23 |
|
#3 | |
Senior Member
Pete Bachant
Join Date: Jun 2012
Location: Boston, MA
Posts: 173
Rep Power: 14 |
Quote:
It seems that it's also possible to export *.csv files and do Python scripting from ParaView. Would this be a reasonable approach as well? I'm not fully familiar with the capabilities. |
||
September 2, 2013, 19:34 |
|
#4 | ||
Assistant Moderator
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51 |
Quote:
I just haven't updated that version compatibility in a long time Quote:
And I'm not a big fan of the graph-plots in Paraview. For that gnuplot or matplotlib might be more flexible for you (Your milage may vary)
__________________
Note: I don't use "Friend"-feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request |
|||
September 3, 2013, 04:55 |
|
#5 |
Senior Member
Gerhard Holzinger
Join Date: Feb 2012
Location: Austria
Posts: 342
Rep Power: 28 |
What about re-running the case with active fieldAverage functionObject, or maybe run the functionObject on the finished solution?
The mean velocity is straight forward and the prime2mean quantity may be related to the standard deviation, but don't nail me on that. Code:
fieldAverage1 { type fieldAverage; functionObjectLibs ( "libfieldFunctionObjects.so" ); outputControl outputTime; fields ( U1 { mean on; prime2Mean off; base time; } ); } |
|
September 3, 2013, 06:07 |
|
#6 | |
Assistant Moderator
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51 |
Quote:
__________________
Note: I don't use "Friend"-feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request |
||
September 3, 2013, 12:43 |
|
#7 | |
Senior Member
Pete Bachant
Join Date: Jun 2012
Location: Boston, MA
Posts: 173
Rep Power: 14 |
Quote:
If I use prime2mean, this will compute the variance, correct? If I could then take the square root I'd have my standard deviation, but I'm still left with the question of how to get the cell values into Numpy arrays. |
||
September 3, 2013, 16:01 |
|
#8 | ||
Assistant Moderator
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51 |
Quote:
Quote:
- pythonFlu - From the field file strip off the stuff before and after the internalField and read it directly with numpy - Maybe I'm obnoxious. But with the development version of swak (it's not yet in a release) something like this is possible: http://sourceforge.net/p/openfoam-ex...ythonPostproc/ (Just preload the fields generated by fieldAverage and pass them to the python-code)
__________________
Note: I don't use "Friend"-feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request |
|||
September 4, 2013, 15:09 |
|
#9 | |
Senior Member
Pete Bachant
Join Date: Jun 2012
Location: Boston, MA
Posts: 173
Rep Power: 14 |
Quote:
|
||
June 28, 2019, 07:09 |
|
#10 |
Member
|
Dear Pete,
did you get a solution for this task? I am also interested in calcuating mean and standard deviation. According to the mixing quality I dont need a field of velocity, but a field of concentration. Can you give me some hints on this problem?
__________________
Greetings Philipp Conen |
|
June 28, 2019, 09:20 |
|
#11 | |
Senior Member
Pete Bachant
Join Date: Jun 2012
Location: Boston, MA
Posts: 173
Rep Power: 14 |
Quote:
Here is a case that does that, with some extra code for parameterization via Python: https://github.com/petebachant/UNH-RVAT-turbinesFoam |
||
August 16, 2019, 07:24 |
|
#12 |
Member
|
Dear Pete,
I was not able to fix my problem in this kind of way. I was glad to find anothere way to determinate the mixing quality. If someone else has trouble with this you can find the solution here. https://www.cfd-online.com/Forums/bl...ity-index.html
__________________
Greetings Philipp Conen |
|
|
|