|
[Sponsors] |
How to compute liquid volume of the NOT whole domain |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
March 24, 2008, 23:17 |
Hi,
I'd like to compute
|
#1 |
Senior Member
|
Hi,
I'd like to compute the liquid volume left in a restricted domain after an interFoam simulation. I'd like to know the liquid volume in the region of z < 1, for instance. I have found the thread "How to compute total liquid volume of the whole domain?" related to my question. http://www.cfd-online.com/OpenFOAM_D...tml?1184365098 The source code in the thread is quite impressive. However, I don't know how to limit the region with sum() function. Would you please give some advice or drop a hint to me? |
|
March 25, 2008, 15:05 |
Hi
You can iterate over the
|
#2 |
Senior Member
Join Date: Mar 2009
Posts: 248
Rep Power: 18 |
Hi
You can iterate over the cells in the domain while checking if cellcentre.z() < 1.0 and if the condition satisfies then add the liquid in that cell to your running sum. hope that helps Regards Jaswi |
|
March 27, 2008, 23:53 |
Hi Jaswi
Thank you very muc
|
#3 |
Senior Member
|
Hi Jaswi
Thank you very much for your advice. I'm gonna try to write short code, though I have to learn a bit more about OpenFOAM source code. Thanks, snakagawa |
|
June 25, 2008, 00:19 |
Hi,
I added the following s
|
#4 |
Senior Member
|
Hi,
I added the following short code to calculate liquid volume in the specified region. ---------------- Info << " Liquid (whole domain): " << sum(mesh.V()*gamma) << endl; sumVol = 0; forAll(mesh.cells(),cellI) { if( mesh.C()[cellI].component(0) >= validXmin & mesh.C()[cellI].component(0) <= validXmax & mesh.C()[cellI].component(1) >= validYmin & mesh.C()[cellI].component(1) <= validYmax & mesh.C()[cellI].component(2) >= validZmin & mesh.C()[cellI].component(2) <= validZmax ) {sumVol = sumVol + mesh.V()[cellI]*gamma[cellI]; } } Info << " Liquid in specified region: " << sumVol << endl; Info << endl; ---------------- It works fine for a single processor calculation. With multi-processors, however, the calculated liquid volume in the specified region is not correct. Liquid volume in whole domain is correct. I think that my code have some problem in handling the coordinates in decomposed field. Would you please give some advice to modify the code? Thank you in advance, snakagawa |
|
June 25, 2008, 08:34 |
A
reduce(sumVol,plusOp
|
#5 |
Assistant Moderator
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51 |
A
reduce(sumVol,plusOp<scalar>()); before the Info might solve that. Have a look elsewhere what it actually does. Bernhard
__________________
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 |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to calculate liquid volume as the interface moves for interFoam Solver | asaha | OpenFOAM Running, Solving & CFD | 25 | October 21, 2009 05:34 |
surfaces inside a volume (domain) | Johannes | CFX | 1 | December 22, 2008 11:17 |
Liquid phase volume fraction | sega | OpenFOAM Running, Solving & CFD | 23 | August 21, 2008 06:58 |
How to compute total liquid volume of the whole domain | hsieh | OpenFOAM Post-Processing | 2 | July 13, 2007 19:18 |
Compute volume | Tony | Main CFD Forum | 1 | October 2, 2001 18:39 |