CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Paraview & paraFoam (http://www.cfd-online.com/Forums/openfoam-paraview/)
-   -   Obtain average pressure over a range of slices? (http://www.cfd-online.com/Forums/openfoam-paraview/116033-obtain-average-pressure-over-range-slices.html)

Nucleophobe April 11, 2013 10:55

Obtain average pressure over a range of slices?
 
I am trying to post-process some data in an irregular geometry with internal flow.

I have created a range of x-normal slices, and would like to calculate the average pressure over each slice. However, when I apply the 'Integrate Variables' filter in paraview, I obtain the average pressure over the entire range instead of the average pressure over each slice.

I could of course manually move a single slice and write down data points, but this is tedious if I want the average at say 100 different x-positions.

Is there a faster way to do this?

Thanks!
-Nuc

gschaider April 11, 2013 11:45

Quote:

Originally Posted by Nucleophobe (Post 419903)
I am trying to post-process some data in an irregular geometry with internal flow.

I have created a range of x-normal slices, and would like to calculate the average pressure over each slice. However, when I apply the 'Integrate Variables' filter in paraview, I obtain the average pressure over the entire range instead of the average pressure over each slice.

I could of course manually move a single slice and write down data points, but this is tedious if I want the average at say 100 different x-positions.

Is there a faster way to do this?

Thanks!
-Nuc

In OpenFOAM the way to go would be a sampleSurface. I'm a bit ignorant and not sure whether there is a built-in utility in OF that does averaging on them (sample at least writes them out). I'd do it in swak4foam where you can do calculations on those (area weighted average pressure would be "sum(area()*p)/sum(area())"). The thing that swak does not solve is the 100 slices. But instead of tediously generating them by hand you could generate the definition of the 100 functionObjects via a script ... which stretches the definition of easy for most people ... I know (there is even something built into swak to do the generation on the fly ...)

Nucleophobe April 11, 2013 12:52

Hmmm.. This isn't exactly what I'm looking for. The advantage of doing this is in Paraview is that I can clip the geometry so that the slice only passes through the region in which I am interested.

I have been trying to accomplish my goal by:
1) Creating a slice, say at x = 0
2) Applying the 'Integrate Variables' filter to the slice
3) Animating the slice offset, so that it moves from x = 0 to x = 10 over 10 seconds
4) Applying 'Plot selection over time' to the result of 'Integrate Variables'

This ALMOST works. The variables in the 'Integrate Variables' table update during the animation as desired. However, the plot (step 4) does not work, and the data from the table is not saved during the animation.

Edit:
Basically I'm trying to do the same thing as what was discussed here:
http://www.paraview.org/pipermail/pa...er/019544.html
It looks like programming an extra filter is the best way to go?
Any ideas on how to save the results from 'Integrate Variables' at each animation time step?

gschaider April 11, 2013 13:11

Quote:

Originally Posted by Nucleophobe (Post 419936)
Hmmm.. This isn't exactly what I'm looking for. The advantage of doing this is in Paraview is that I can clip the geometry so that the slice only passes through the region in which I am interested.

I have been trying to accomplish my goal by:
1) Creating a slice, say at x = 0
2) Applying the 'Integrate Variables' filter to the slice
3) Animating the slice offset, so that it moves from x = 0 to x = 10 over 10 seconds
4) Applying 'Plot selection over time' to the result of 'Integrate Variables'

This ALMOST works. The variables in the 'Integrate Variables' table update during the animation as desired. However, the plot (step 4) does not work, and the data from the table is not saved during the animation.

Edit:
Basically I'm trying to do the same thing as what was discussed here:
http://www.paraview.org/pipermail/pa...er/019544.html
It looks like programming an extra filter is the best way to go?
Any ideas on how to save the results from 'Integrate Variables' at each animation time step?

"Programmable Filter" where you can have a small Python-program do whatever you want with the input (you'll need a Python-enabled Paraview for that anyway). And if you can do "whatever" then you could for instance append the data that comes in to a file. But don't ask me how to do it exactly. Last time I experimented with this is quite some time ago (and you'll probably have to erase the file before starting the animation)

Nucleophobe April 11, 2013 13:43

Got it:

Code:

pdi = self.GetInputDataObject(0,0) 
localAArray = pdi.GetCellData().GetArray("Area")
localPArray = pdi.GetCellData().GetArray("p")
localA = localAArray.GetTuple(0)[0]
localP = localPArray.GetTuple(0)[0]
fout = open("/home/myUserName/results.txt",'a')
print localA
print localP
data=str(localA)+'\t'+str(localP)+'\n'
fout.write(data) 
fout.close()



All times are GMT -4. The time now is 14:48.