# How to compute liquid volume of the NOT whole domain

 User Name Remember Me Password
 Register Blogs Members List Search Today's Posts Mark Forums Read

 LinkBack Thread Tools Display Modes
 March 24, 2008, 23:17 Hi, I'd like to compute #1 New Member   shinji nakagawa Join Date: Mar 2009 Location: Japan Posts: 25 Rep Power: 8 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: 9 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 New Member   shinji nakagawa Join Date: Mar 2009 Location: Japan Posts: 25 Rep Power: 8 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 24, 2008, 23:19 Hi, I added the following s #4 New Member   shinji nakagawa Join Date: Mar 2009 Location: Japan Posts: 25 Rep Power: 8 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, 07:34 A reduce(sumVol,plusOp #5 Assistant Moderator   Bernhard Gschaider Join Date: Mar 2009 Posts: 3,912 Rep Power: 40 A reduce(sumVol,plusOp()); before the Info might solve that. Have a look elsewhere what it actually does. Bernhard ThorgrimmCFD likes this. __________________ 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

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post asaha OpenFOAM Running, Solving & CFD 25 October 21, 2009 04:34 Johannes CFX 1 December 22, 2008 11:17 sega OpenFOAM Running, Solving & CFD 23 August 21, 2008 05:58 hsieh OpenFOAM Post-Processing 2 July 13, 2007 18:18 Tony Main CFD Forum 1 October 2, 2001 17:39

All times are GMT -4. The time now is 02:32.

 Contact Us - CFD Online - Top