Hi,
I'd like to compute
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? |
Hi
You can iterate over the
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 |
Hi Jaswi
Thank you very muc
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 |
Hi,
I added the following s
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 |
A
reduce(sumVol,plusOp
A
reduce(sumVol,plusOp<scalar>()); before the Info might solve that. Have a look elsewhere what it actually does. Bernhard |
All times are GMT -4. The time now is 21:52. |