CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   VOF method (https://www.cfd-online.com/Forums/openfoam-solving/58063-vof-method.html)

ata October 12, 2010 08:57

paper request
 
Hi Dear FOAMers
May any one tell me how can I get the paper
"Drop impact onto a liquid layer of finite thickness: Dynamics of the cavity evolution"?
Best regards

kumar October 12, 2010 09:05

Hi ata give me your email I.D . I can send it to you.

regards
K.Suresh kumar

ata October 12, 2010 09:15

Hi Kumar
I sent you via a private message in the forum.
Thank you very much

algin February 4, 2011 13:56

Hi ata,
Could you send me paper "Drop impact onto a liquid layer of finite thickness: Dynamics of the cavity evolution"?

My email: alexeyginevsky@gmail.com
Thank you in advance.

ata February 5, 2011 00:05

Drop impact onto a liquid layer of finite thickness Dynamics of the cavity evolution
 
Hi
I sent it.
Good luck

schnitzlein April 8, 2011 05:26

Hi ata,
please could you send me your paper "Drop impact onto a liquid layer of finite thickness: Dynamics of the cavity evolution", too?

My email: klaus@rt.tu-cottbus.de
Thanks in advance.

linoth

ata April 8, 2011 11:39

Hi
I sent it.
Good luck

nygbook September 8, 2011 03:35

Dear foamer
I have review the code of interFoam and interPhaseChangeFoam. However, I can't understand the function usage of MULES. It write in interPhaseChangeFoam: MULES::explicitSolve(oneField(), alpha1, phi, phiAlpha, Sp, Su, 1, 0). What mean does 'Su' in the code. Anybody can me a reference about MULES method?

akidess September 8, 2011 04:39

Sp and Su are implicit and explicit source terms (e.g. for cavitation simulations).

nygbook September 8, 2011 23:49

Quote:

Originally Posted by akidess (Post 323374)
Sp and Su are implicit and explicit source terms (e.g. for cavitation simulations).

Thank you for your reply! However, I still have a question. The code of pEqn.H in interPhaseChangeFoam is below
Code:

fvScalarMatrix pEqn
        (
            fvc::div(phi) - fvm::laplacian(rUAf, p)
          - (vDotvP - vDotcP)*pSat + fvm::Sp(vDotvP - vDotcP, p)
        );

why isn't fvm::Su((vDotvP-vDotcP)*pSat, p)?

akidess September 9, 2011 03:11

Because there is no fvm::Su() function. Explicit source terms are used without any additional notation.

nygbook September 9, 2011 03:38

Quote:

Originally Posted by akidess (Post 323495)
Because there is no fvm::Su() function. Explicit source terms are used without any additional notation.

no! no! I think it's wrong. The code of fvm::Su() can be found in fvmSup.c
Code:

00032 template<class Type>
00033 Foam::tmp<Foam::fvMatrix<Type> >
00034 Foam::fvm::Su
00035 (
00036    const DimensionedField<Type, volMesh>& su,
00037    const GeometricField<Type, fvPatchField, volMesh>& vf
00038 )
00039 {
00040    const fvMesh& mesh = vf.mesh();
00041
00042    tmp<fvMatrix<Type> > tfvm
00043    (
00044        new fvMatrix<Type>
00045        (
00046            vf,
00047            dimVol*su.dimensions()
00048        )
00049    );
00050    fvMatrix<Type>& fvm = tfvm();
00051
00052    fvm.source() -= mesh.V()*su.field();
00053
00054    return tfvm;
00055 }

It is evident that fvm::Su mean explicit source term multiply by the volume of mesh. The code of fvm::Sp can also be found in fvmSup.C that
Code:

00098 template<class Type>
00099 Foam::tmp<Foam::fvMatrix<Type> >
00100 Foam::fvm::Sp
00101 (
00102    const DimensionedField<scalar, volMesh>& sp,
00103    const GeometricField<Type, fvPatchField, volMesh>& vf
00104 )
00105 {
00106    const fvMesh& mesh = vf.mesh();
00107
00108    tmp<fvMatrix<Type> > tfvm
00109    (
00110        new fvMatrix<Type>
00111        (
00112            vf,
00113            dimVol*sp.dimensions()*vf.dimensions()
00114        )
00115    );
00116    fvMatrix<Type>& fvm = tfvm();
00117
00118    fvm.diag() += mesh.V()*sp.field();
00119
00120    return tfvm;
00121 }

The relative theory can be found in p.87 of Jasak' thesis.

akidess September 9, 2011 04:52

Mea culpa! I do still believe that writing "fvm::Su((vDotvP-vDotcP)*pSat, p)" is equivalent to "(vDotvP-vDotcP)*pSat*p". Anyway, I think the gist of your question is why the source term is treated implicitly? My guess is that (vDotvP-vDotcP) is usually larger zero, so when including the expression in the matrix instead of moving it to the right hand side of the equation system you will increase diagonal dominance.

nygbook September 9, 2011 06:51

Quote:

I do still believe that writing "fvm::Su((vDotvP-vDotcP)*pSat, p)" is equivalent to "(vDotvP-vDotcP)*pSat*p".
Yes, It should equal to (vDotvP-vDotcP)*pSat*p.mesh().v(). I mean if it doesn't use fvm::Su, the explicit source item isn't multiplied by mesh().v(). Is it right?

ehsan March 25, 2012 12:18

Dear all

I need a reference which describes by more details the new local-time stepping (LTS) approach applied in VOF in openfoam.

Thanks

pharg_yrartibra May 18, 2012 00:20

Summary + some questions
 
I found this thread when I was looking for reference documentation for InterFoam, and decided to make like a short summary of it and at the same time ask some interesting questions that I think is still left unanswered.

Quote:

Originally Posted by Henry Weller (Henry) (Post 202992)
> i.e. is it CICSAM or a different one

It's a new technique I developed a few years ago to resolve some of the fundamental problems of CICSAM and other traditional VOF interface compression methods. The differences have already been debated at length, have a look through previous threads on the subject.

Can you please link to any of these threads? I don't know the name of your method so I don't really know what to search for. I have already tried searching for CICSAM and InterFoam, but the hits I get are no good.

Quote:

Originally Posted by Ali (Ali) (Post 202993)
I was wondering what's the actual and preferred expression for the compressive term in gamma equation and a very brief explanation of how it is derived. The formula for 'phir' in the code differs from what Henrik has mentioned in (Eq. (4.15)). In the code:

phir=cGamma()*mag(phi/mesh.magSf())*interface.nHatf()

while Henrik's suggests (if I have formulated it correctly):

phir=cGamma*nhatf*max(nhat * phi / mesh.magSf()**2 )

Hi Ali, where can I find that expression in the interFoam code? Could you refer me to the file and line number, please?

Quote:

Originally Posted by henry (Post 202996)
Sorry, I haven't written many papers; it's too time consuming and stops me doing the interesting work.

Well, you should! :) Your method seems very interesting and I'm sure there are a lot of people (including me of course) who would be very interested in reading how it works. Unless there already is a lot of information about it on the web, but as I said, I haven't been able to find any...

Quote:

Originally Posted by hjasak (Post 202997)
There is a decent description of the implemented Interface-Capturing Methodology (probably a bit out of date now) in a PhD Thesis by dr. Henrik Rusche:

Computational Fluid Dynamics of Dispersed Two-Phase Flows at High Phase Fractions, Henrik Rusche, Imperial College of Science, Technology & Medicine, December 2002.

Hrv

Quote:

Originally Posted by henry (Post 202998)
That describes an old version of my method, not the one currently in interFoam.

Okay.

Quote:

Originally Posted by sega (Post 202999)
I'm currently having a look into the gammaEqn.H from OF 1.4.1

Well, some parts look like the equation (4.15) from Rusches PhD thesis.

But still I'm not sure about some issues:

- Where is the time derivative of gamma?
- What is interface.nHatf()? Is it the normal vector to the cell face?
- What doese MULES::explicitSolve01(gamma, phi, phiGamma) mean?

Thanks so far!

Quote:

Originally Posted by caw (Post 203000)
Dear Sebastian,

the time derivative is not there because of the usage of MULES. Look at OpenFOAM-1.5.x\src\finiteVolume\fvMatrices\solvers\MULES\MU LES.H for details:

" MULES: Multidimensional universal limiter with explicit solution

So I guess MULES is the name of the advection scheme used in InterFoam. Good to know!

Quote:

Originally Posted by sega (Post 203007)
Dear Edin.

Thanks for your answere.
So, the equation will take this form?

Hi Sebastian, did you get any luck in finding the correct expression for the equation used in InterFoam that describes the advection of gamma?

Quote:

Originally Posted by kumar (Post 264794)
Hello Edin Berberovic and santiago,
I have been following this post closely to understand the MULES and VOF methodology implemented in OpenFOAM.
I just got the paper "Drop impact onto a liquid layer of finite thickness: Dynamics of the cavity evolution". Thanks santiago for mentioning it, since i have been looking for a paper which explains the MULES.
I want to confirm that the MULES concept explained in that paper is the one implemented in OF-1.5, in the interFoam solver
What about OF-1.6.x, in which the pressure difference is handled in a different way. So could anybody tell me what is the major difference between the MULES explained in the paper and the one currently in OF-1.6.x, interFoam solver.

regards
K.Suresh kumar

Quote:

Originally Posted by santiagomarquezd (Post 264804)
Kumar, Edin's paper is one of the most comprehensive papers about interFoam that I have found. It's true, it explains interFoam version 1.5 but the part about MULES is valid in 1.6.x also.

Hi Kumar and Santiago, Edin's paper looks very interesting, thank you for sharing this information with us. So I guess this is like the documentation for MULES?

Quote:

Originally Posted by eberberovic (Post 277860)
Hi Isabel,

I've just sent you the paper PRE 2009. There is one typo in it, namely Eq. (24) represents the face flux rather than velocity at the cell-face. Sorry for this, it went also unnoticed by the reviewers.

Edin.

Okay, good to know. Once again, your paper seems very interesting (I'm about to read it soon!). I have a question about MULES, though, does it conserve mass? Can mass get 'clipped' away, or is it just the flux between cells that can get clipped?

Quote:

Originally Posted by ehsan (Post 351364)
Dear all

I need a reference which describes by more details the new local-time stepping (LTS) approach applied in VOF in openfoam.

Thanks

I didn't even know that local-time stepping existed, but I it seems like a good idea if a very small fraction of all cells need to be solved with a much smaller time step than the rest of the cells, to prevent the whole simulation to be significantly slowed down by a few "troublesome cells". All I could find about the method was what was written on this page. I would also really like to see some reference for how this method works... Maybe the LTS approach isn't a part of InterFoam, but it would be interesting to know more about it now that it has been brought up.

--Pharg

sharonyue June 13, 2013 00:24

Hi All,

I found all of you guys are working around VOF method, I am a newbie here, but I am facing a problem regarding the changeable viscosity in VOF. For example: if the liquid is kind of non-newtonian fluid. More details I wrote it here, http://www.cfd-online.com/Forums/ope...-wierd-nu.html

Can you guys help me check this out? Is this a problem only regarding with the viscosity model or with VOF? Thanks in advance.

jameswilson620 November 5, 2014 15:32

@isabel

"
In the interFoam solver, what these lines in the file gamma.Eqn.H mean?

surfaceScalarField phiGamma =
fvc::flux
(
phi,
gamma,
gammaScheme
)
+ fvc::flux
(
-fvc::flux(-phir, scalar(1) - gamma, gammarScheme),
gamma,
gammarScheme
);
"

this refers to the compression term used in MULES. note (gamma) and (1-gamma). These filter the velocity field and gives us a way to evaluate Ur = U1 - U2 which is used in the interface compression term. Also look up fvcFlux.* in your install directory. this will shed some light on what phiGamma becomes.

see: http://infoscience.epfl.ch/record/130534

and

http://powerlab.fsb.hr/ped/kturbo/Op...chePhD2002.pdf

to see the interface compression term.

Tushar@cfd June 8, 2015 09:05

Quote:

Originally Posted by santiagomarquezd (Post 264804)
Kumar, Edin's paper is one of the most comprehensive papers about interFoam that I have found. It's true, it explains interFoam version 1.5 but the part about MULES is valid in 1.6.x also.
Changes in pressure treatment from pd to p are not affecting the MULES part, I've been studying MULES and it's important only in solving the non-linear advection equation (Eq. 15), in fact it is not mentioned in Edin's paper. Changes in pd affects only in mommentum equation formulation (Eq. 20).
Calling MULES is a strategy to solve Eq. 15, taking a look of alphaEqn.H we have,

Code:

00009    for (int aCorr=0; aCorr<nAlphaCorr; aCorr++)
00010    {
00011        surfaceScalarField phiAlpha =
00012            fvc::flux
00013            (
00014                phi,
00015                alpha1,
00016                alphaScheme
00017            )
00018          + fvc::flux
00019            (
00020                -fvc::flux(-phir, scalar(1) - alpha1, alpharScheme),
00021                alpha1,
00022                alpharScheme
00023            );
00024
00025        MULES::explicitSolve(alpha1, phi, phiAlpha, 1, 0);
00026
00027        rhoPhi = phiAlpha*(rho1 - rho2) + phi*rho2;
00028    }

by means of this solving and Eq. 31 a new flux is assembled in order
to solve the mommentum equation.
Hope these insights can be helpful, and will be valuable if other
foamers correct me and add more info. Please share your findings.

Regards

Dear S M Damian and others,

Since this post is very old and some of you might have dig into the code. Hence, I am posting my doubt in this thread.

If we look at the MULES solver as pointed by SM Damian, new flux is assembled for the momentum equation.

Doubt: In case of interface, the "rhoPhi" term can be easily related to the equation. Now, How to relate the "rhoPhi" term for the phase 1 or phase 2 cells (where no interface is present)?

Please correct me, if I misinterpret anything.

-
Thanks in Advance :)

Tushar@cfd June 13, 2015 02:50

Dear All,

Thanks again for your time. I have understood the term "rhoPhi". Hence I am sharing this info, may be it will be beneficial to others.

For phase 1:
rhoPhi = phi*rho1;

For phase 2:
rhoPhi = phi*rho2;

For interface:
rhoPhi = phiAlpha*(rho1 - rho2) + phi*rho2;

-
:)


All times are GMT -4. The time now is 06:21.