CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Verification & Validation (https://www.cfd-online.com/Forums/openfoam-verification-validation/)
-   -   interFoam - validation for bubble/droplet flows in microfluidics (https://www.cfd-online.com/Forums/openfoam-verification-validation/124363-interfoam-validation-bubble-droplet-flows-microfluidics.html)

duongquaphim October 3, 2013 08:36

interFoam - validation for bubble/droplet flows in microfluidics
 
Dear all,

It is a bit ashamed but I would like to share one of our work on the validations of interFoam, titled "Benchmark numerical simulations of segmented two-phase flows in microchannels using the Volume of Fluid method". In this work, we presented three benchmark cases - the steady motion of bubbles in a straight two-dimensional channel, the formation of bubbles in two- and three-dimensional T-junctions, and the breakup of droplets in three-dimensional T-junctions - and provided guidelines to set appropriate numerical settings for a simulation of microbubble/microdroplet flows.

Please find here the link to the paper: http://dx.doi.org/10.1016/j.compfluid.2013.06.024

If you can not download the paper, I am more than happy to send you a copy of it.

With best regards,

Duong


kwardle October 4, 2013 12:52

Quote:

Originally Posted by duongquaphim (Post 454869)

It is a bit ashamed but I would like to share one of our work on the validations of interFoam, titled "Benchmark numerical simulations of segmented two-phase flows in microchannels using the Volume of Fluid method".

No need to be ashamed. Thanks for sharing!
-Kent

alighaffari January 9, 2014 11:14

Hi Dear Duong
Thanks for your good paper.
I am new in interFoam. I have two simple questions.
1) how can we apply the smoother function (Eq.9 in your paper) in our problem? I think it can be set: system/fvSolution dictionary, PISO loop subsection was set with m corrections (nCorrectors)
is it true?
2) where should be determined the value of adjustable coefficient "Cγ in Eq.7"?
Thanks
Ali


norkistar July 11, 2014 03:32

Could you please share the case setup for openfoam? Best regards

duongquaphim January 28, 2015 16:02

4 Attachment(s)
Dear all,

I just got a bit of free time lately to reorganize my data. Here you can find the code and the test cases I have run for my validation. Please be aware that all these validations have been performed with OF-1.6-ext.

Best regards,

Duong

Pedro24 February 17, 2015 04:06

Hi,

I'm not sure but I think that the function fvc::average already exists and do the same operation as your "smooth function".

In the OpenFOAM C++ doc, you can read:

volField = fvc::average(SurfaceField)
Area-weighted average a surfaceField creating a volField.

So you can do your smoothing by :

Code:

alpha_smoothed = fvc::average(fvc::interpolate(alpha));
Regards,

Pierre

duongquaphim February 17, 2015 05:15

Quote:

Originally Posted by Pedro24 (Post 532124)
Hi,

I'm not sure but I think that the function fvc::average already exists and do the same operation as your "smooth function".

In the OpenFOAM C++ doc, you can read:

volField = fvc::average(SurfaceField)
Area-weighted average a surfaceField creating a volField.

So you can do your smoothing by :

Code:

alpha_smoothed = fvc::average(fvc::interpolate(alpha));
Regards,

Pierre

Indeed you can also use that function. And it is much simpler I agree.

At the time I implemented that, I would like to have controls on the level of smoothing (averaging) and also to be able to implement different smoothers (which I did not find superior to that simple Laplacian). So that's why you have such a piece of code.

Best,

Duong

Sripadaraja September 30, 2015 02:43

Hi Duong,

I just downloded your file (bubble_generation). I am able to blockMesh.

Check topology

Basic statistics
Number of internal faces : 44
Number of boundary faces : 56
Number of defined boundary faces : 56
Number of undefined boundary faces : 0
Checking patch -> block consistency

Creating block offsets
Creating merge list


Further when I run "interFoam" solver I get this error.

paramesh@HP-WS3:~/OpenFOAM/paramesh-2.4.0/run/tutorials/incompressible/pimpleFoam/bubble_generation$ interFoam
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.4.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 2.4.0-f0842aea0e77
Exec : interFoam
Date : Sep 30 2015
Time : 12:12:41
Host : "HP-WS3"
PID : 10778
Case : /home/paramesh/OpenFOAM/paramesh-2.4.0/run/tutorials/incompressible/pimpleFoam/bubble_generation
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0



--> FOAM FATAL IO ERROR:
keyword PIMPLE is undefined in dictionary "/home/paramesh/OpenFOAM/paramesh-2.4.0/run/tutorials/incompressible/pimpleFoam/bubble_generation/system/fvSolution"

file: /home/paramesh/OpenFOAM/paramesh-2.4.0/run/tutorials/incompressible/pimpleFoam/bubble_generation/system/fvSolution from line 55 to line 132.

From function dictionary::subDict(const word& keyword) const
in file db/dictionary/dictionary.C at line 648.

FOAM exiting


What is the problem?



-Sripad

akidess October 12, 2015 02:28

Quote:

Originally Posted by Sripadaraja (Post 565924)
keyword PIMPLE is undefined

That's the problem. As Duong stated the case setup is for OF-1.6. You'll need to update the dictionaries for 2.4.0. Compare the case with the tutorial cases and you will fix the error quickly.

Sripadaraja December 16, 2015 04:02

Akidess. I notice the next error


PIMPLE: Operating solver in PISO mode

Reading field p_rgh



--> FOAM FATAL IO ERROR:
cannot find file

file: /home/paramesh/OpenFOAM/paramesh-3.0.0/run/tutorials/multiphase/interFoam/bubble_generation_trial/0/p_rgh at line 0.

From function regIOobject::readStream()
in file db/regIOobject/regIOobjectRead.C at line 73.

FOAM exiting

akidess December 16, 2015 04:59

You are missing the file p_rgh. Please have a look at the interFoam tutorials.

DevD_10 August 10, 2016 06:56

hey.. do you still have these files?
I wanted to download them and i am unable to get the files from this link

Problem solved, able to download now.

kerim December 18, 2016 15:15

Could you please share the copy of your paper? Best regards

pfavreau April 20, 2017 10:35

Quote:

Originally Posted by duongquaphim (Post 529436)
Dear all,

I just got a bit of free time lately to reorganize my data. Here you can find the code and the test cases I have run for my validation. Please be aware that all these validations have been performed with OF-1.6-ext.

Best regards,

Duong

Hi,

I tried to update your solver to run on OpenFOAM 4.1. Unfortunately, I have obtained so much errors... Did you adapt your code to this version of OpenFOAM ? How can I achieve that ?

Best Regards,

Peter.

duongquaphim May 2, 2017 03:11

Hi,

I think that it should be quite straightforward to adapt/implement the Laplacian solver in interFOAM version. However, I did not work on this topic for a while, so I do not know any details to tell you. The only thing I could think about is the difference in library name and the change of alpha field.

Duong

pfavreau May 19, 2017 10:22

Thank you for the reply. I will try to update the solver, if someone is interested by this update, please contact me, I will share.

Best regards,

Peter

floquation May 24, 2017 05:37

Quote:

Originally Posted by pfavreau (Post 649577)
Thank you for the reply. I will try to update the solver, if someone is interested by this update, please contact me, I will share.

Best regards,

Peter

Have a look at the following.


OF-4.x implementation of 'vofsmooth':
I have implemented Duong's "vofsmooth" in OF-4.x.
It was implemented using OF's run-time selection mechanism and a dynamic library trick, such that it should work with any solver (that uses OF's libinterfaceProperties.so: inter(DyM)Foam, compressibleInter(DyM)Foam, multiphaseInter(DyM)Foam, interPhaseChange(DyM)Foam and very likely some more.)
[Disclaimer: I have only tried inter(DyM)Foam in my work.]

See the README.md on GitHub:
https://github.com/floquation/OF-kva...faceProperties

pfavreau June 21, 2017 05:18

Thanks a lot for sharing your code :-)

Best regards,

Peter

pfavreau June 21, 2017 09:30

Quote:

Originally Posted by floquation (Post 650088)
Have a look at the following.


OF-4.x implementation of 'vofsmooth':
I have implemented Duong's "vofsmooth" in OF-4.x.
It was implemented using OF's run-time selection mechanism and a dynamic library trick, such that it should work with any solver (that uses OF's libinterfaceProperties.so: inter(DyM)Foam, compressibleInter(DyM)Foam, multiphaseInter(DyM)Foam, interPhaseChange(DyM)Foam and very likely some more.)
[Disclaimer: I have only tried inter(DyM)Foam in my work.]

See the README.md on GitHub:
https://github.com/floquation/OF-kva...faceProperties

It's weird, but when I compile your code it works. Bun when I'm running the damBreak case, it returns the following error :

Selecting incompressible transport model Newtonian
Selecting incompressible transport model Newtonian
Selecting curvatureModel vofsmooth
kva: curvatureModel::read(vofsmooth);
kva: curvatureModels::vofsmooth::read();
kva: curvatureModel::read(vofsmooth);
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::sigSegv::sigHandler(int) at ??:?
#2 ? in "/lib/x86_64-linux-gnu/libc.so.6"
Erreur de segmentation (core dumped)

Any idea ??

floquation June 21, 2017 10:38

That had certainly puzzled me for some time as well, because the code is correct... However, since I am a self-educated fool (which I bet most of us are) whose messing with dynamic libraries, I was only thinking in terms of code. But although there is nothing wrong with the code, I did mess up the binary-compatibility, as I didn't know that any such thing (ABI) existed.

I am working on a proper "fix", which I should have soon. (That is, I should regain the binary-compatibility.) For the time being, you can easily work around this, as I described right here:
https://github.com/floquation/OF-kva...rties/issues/2
That solution boils down to recompiling your solver; or rather compiling a clone of your solver that is linked against my library.


All times are GMT -4. The time now is 18:25.