How to compute surface area of rising bubble
Hello,
Is there an accurate way to compute the surface area of a rising bubble as it deforms? I'm trying to compute the effective diameter using volume-surfaceArea ratio. I already computed the volume using (1-gamma[cellI])*mesh.V()[cellI]. Or is there an alternative way to compute the diameter? Thanks in advance. |
Hi Foamers,
I'm still expecting a response on how to compute bubble surface area at the interface. I read on page 29 of OF2.1.1 programmer's guide that Sf() is the access function for face area vector so I called the area of each mesh using mesh.sf()[cellI] but it won't even compile. Below is what I tried even though I should use an averaged value between 0<alpha1<1 of neighboring cells instead of (1-alpha1) to represent the interface (I don't know how to do this either). (1-alpha1[cellI])*mesh.Sf()[cellI] Any suggestions on how to go about computing this area? Thanks. |
I am not sure if you can calculate this accurately with simple integration. Maybe by integration of (1-gamma)*gamma, which is only non-zero at the interface (assuming you use interFoam). Howver, you will still get a volume, and not an area. Maybe if you divide this by the average interface thickness you get an estimate.
An alternative procedure, is to store the gamma=0.5 isosurface, and calculate the surface area of such a system by some external tools (I could not tell you how, however). |
Thanks. I'll give your idea a little more thought.
|
Quote:
My proposal: let OpenFOAM calculate a sampledSurface on the iso-surface of 0.5 (or whatever threshold you think is appropriate) then sum up area of the faces in that sampledSurface. The easiest way to do this (I think, but I'm extremely biased on this topic) is with swak4Foam: there is even a demo-case (a variation of the capillaryRise-case) where this (calculation of the interface-area) is done |
Quote:
|
Quote:
|
Thanks. I saw this link you gave from your Talk:Tip Surface elevation in time discussion. I've searched but all the links I found won't open for some reason. Few of these links are given below. That's why I requested you to provide the working link to the case. Thanks.
http://openfoam-extend.hg.sourceforg.../capillaryRise http://openfoam-extend.hg.sourceforg...em/controlDict |
Quote:
|
Oh, I get. I thought you meant that it was located at an online page. I've seen the case in the swak4Foam download that I use. I'll follow it to compute the interfacial area. Thanks for your awesome work on swak4Foam.
On a side note, I already some ran cases that takes days to complete. Is there a way to do some post processing using this tool without having to rerun my cases? |
Quote:
Hi Bernard, I followed your advice to create an iso-surface with alpha=0.5 and used this to compute the surface area of the bubble. I did a little test run copying the additional code from system/controlDict file of your capillaryRise example and added to my 2D bubble test case but I have few questions here: 1) The surface area computed is quite large (3.32e-4) at 1st time step compared to (7.85e-5) obtained if you check with pi*R^2 as initialized. I used "area()" instead of your "area()/0.001" in my controlDict expression. I initialized with funkysetFields with radius of 0.005. This bring me to why you used "area/0.001" in the surface expression? My guess is you probably divided by the cellsize. I checked your blockmesh and the z-axis mesh width is 0.001. So I simply used "area()" instead. 2) How can I compute the volume in swak4Foam, do I simply use "volume()"? I want to compare with using (1-alpha[cellI])*mesh.V()[cellI]. 3) can I compute the bubble center velocity similarly? Thanks. libs ( "libOpenFOAM.so" // keeps paraFoam happy "libtwoPhaseInterfaceProperties.so" "libinterfaceProperties.so" "libsimpleSwakFunctionObjects.so" "libswakFunctionObjects.so" ); functions ( createInterface { type createSampledSurface; outputControl timeStep; outputInterval 1; surfaceName interface; surface { type isoSurface; isoField alpha1; isoValue 0.5; interpolate true; } surface { type swakExpression; valueType surface; surfaceName interface; verbose true; expression "area()/0.001"; accumulations ( sum ); ); |
Quote:
About the discrepancy in size: no idea. Of course the isoSurface is naive about what you want to achive. So if in your simulation you have a bubble and a water surface then an iso-value of 0.5 will pick up the bubble AND the surface (that would explain the order-of-magnitude error). A bit creative playing around with the expressionField-functionObject might help here Quote:
Quote:
|
Hi
I am not sure if swak4FOAM is something I need, but I have a question which seems to be related to this thread. Do you know maybe how to extract isosurface of the field (e.g. field T, isosurface for T = 0) during runtime ? I would need it coordinate in my solver. Thanks ZM |
Quote:
BTW: T is NOT the temperature, right? Because then that isosurface wouldn't exist anyway |
Thanks for your replay.
T is just some random field. But I need to do this during runtime, in my solver, for farther calculations in my solver. Not just passively to write on disc ... Best |
Quote:
|
Quote:
I want calculate bubble diameter,bubble surface area,surface diameter and rising velocity for simulation rising bubble (2D&3D) .how I can calculate these parameters? I see ,in this thread that use swak4Foam but I don't find in capillaryRise-case about diameter and Are you sure this code (in capilary case) is correct?? |
Quote:
What do you mean with "is it correct"? You are doubting the expressions in the controlDict (I only sanity-checked them some time ago)? That's OK (doubting). These are just examples what can be done but the expressions for your application you've got to "develop" yourself |
Quote:
I use capilary-case controldict for my case,and I have a question about that: 1-I want calculate surface area bubble and in this code I think : Code:
functions 2-for calculating changing diameter can I use this code??: Code:
Yheight Thank you |
Hi all,
i guess that the total interfacial area can be simply calculated using: \Sum_i=1:N \grad\alpha_i * \deltaV_i where N is total numer of cells in your domain. This gives you an area in m^2, so if your case is 2-D and you just need the lenght of the interfacial line you have to normalized by the thickness. This is consistent with the CSF method implemented in interFoam. Best andrea |
All times are GMT -4. The time now is 05:54. |