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 and Marangoni flows (https://www.cfd-online.com/Forums/openfoam-solving/73085-vof-method-marangoni-flows.html)

fmuldoo February 26, 2010 05:02

VOF method and Marangoni flows
 
Hello,

I was wondering if it is possible to model temperature dependent surface tension (Marangoni) effects in OpenFOAM while using the VOF method.

Cheers,
Frank

feijooos February 27, 2010 13:39

Frank,

No, I don't OF has that capability yet. But you can always program it yourself.

jackslot September 16, 2015 16:09

Did anyone find any update on the VOF+Marangoni
 
Hi I am facing the same problem. So I am wondering if anyone has update on this issue.

Thanks,

Lotte

kal1943335 February 22, 2017 15:30

Dear all,
I have been working on implementation tangential surface tension component to simulate marngoni flows due to temperature differences. I'm having a hard time validating my results with the existing analytical work.

Have you guys managed to figure out a way to simulate this.
Thanking you in advance.
Kalpana.

cyw November 22, 2018 10:15

Quote:

Originally Posted by kal1943335 (Post 638121)
Dear all,
I have been working on implementation tangential surface tension component to simulate marngoni flows due to temperature differences. I'm having a hard time validating my results with the existing analytical work.

Have you guys managed to figure out a way to simulate this.
Thanking you in advance.
Kalpana.

have you implemented tangential surface tension component?

kal1943335 November 26, 2018 18:15

Yes, I did. the only problem is the validation. I compared it with the analytical solution, but had a hard time with spurious currents (analytical solution is available for small capillary numbers)

kalpana

cyw November 27, 2018 03:55

1 Attachment(s)
Quote:

Originally Posted by kal1943335 (Post 716939)
Yes, I did. the only problem is the validation. I compared it with the analytical solution, but had a hard time with spurious currents (analytical solution is available for small capillary numbers)

kalpana

Thank you for you reply. Yes, spurious current is a big problem for interFoam. Here is a discussion on it https://www.cfd-online.com/Forums/op...rents-vof.html.
Can I ask you how did you implement the equations in the attached file? My email is yuanwei.cao@tum.de we can discuss it in detail if you would of can you tell me your email address?

kal1943335 November 27, 2018 09:18

Hi,
the equation, you showed there has to be changed a bit if you are using for thermocapillary flows with constant d(sigma)/dT. I'll send you an email and would like to discuss it with you.

navidamin May 6, 2019 04:31

implemention of marangoni force
 
Quote:

Originally Posted by kal1943335 (Post 717039)
Hi,
the equation, you showed there has to be changed a bit if you are using for thermocapillary flows with constant d(sigma)/dT. I'll send you an email and would like to discuss it with you.


Hey guys!
I am having the same problem. Kalpana, would you please also post here the correct implementation of the equation?

kal1943335 May 6, 2019 10:35

Quote:

Originally Posted by navidamin (Post 732796)
Hey guys!
I am having the same problem. Kalpana, would you please also post here the correct implementation of the equation?

The equation mentioned by Cao is correct for a general Marangoni flows where you have a surface tension gradient. I have implemented that equation as it is in my solver. However, when you are going to validate, you have to use the thermocapillary flow cases provided in literature. In most cases, they used the assumption of d(sigma)/dT = constant. So there equation should be

ST_force = sigma_0*kappa*n + d(sigma)/dT (grad(T)-n(n.grad(T))

Mathematically both equations are correct given that sigma = sigma_0 + (d(sigma)/dT)* (T-T_0)

Hope it helped.
Kalpana

navidamin May 6, 2019 12:05

Quote:

Originally Posted by kal1943335 (Post 732851)
The equation mentioned by Cao is correct for a general Marangoni flows where you have a surface tension gradient. I have implemented that equation as it is in my solver. However, when you are going to validate, you have to use the thermocapillary flow cases provided in literature. In most cases, they used the assumption of d(sigma)/dT = constant. So there equation should be

ST_force = sigma_0*kappa*n + d(sigma)/dT (grad(T)-n(n.grad(T))

Mathematically both equations are correct given that sigma = sigma_0 + (d(sigma)/dT)* (T-T_0)

Hope it helped.
Kalpana


Yes, I have done the same. But my problem is how to add this to the Ueqn? the term ST_force that you mentioned above is finally a surfaceVectorfield, right? how can we add such type to momentum equation?

kal1943335 May 6, 2019 12:17

It can be done in two ways.

One is to include in the UEqn.H under fvVectorMatrix as volVectorField. The other way is to include in pEqn.H as a surfaceScalarField. Check how the normal surface tension force is implemented in interFoam in older openfoam versions (2.3.0 or 3.0)

Method 1
in UEqn.H
fvVectorMatrix UEqn
(
fvm::ddt(rho, U)
+ fvm::div(rhoPhi, U)
+ turbulence->divDevRhoReff(rho, U)
//include it here as a volVectorField
);


Method 2
in pEqn.H
surfaceScalarField phig
(
(
fvc::interpolate(interface.sigmaK())*fvc::snGrad(a lpha1)
// you can add your tangential component here.
- ghf*fvc::snGrad(rho)
)*rAUf*mesh.magSf()
);

then in UEqn.H (only if you use momentum predictor)
if (pimple.momentumPredictor())
{
solve
(
UEqn
==
fvc::reconstruct
(
(
fvc::interpolate(interface.sigmaK())*fvc::snGrad(a lpha1)
//add it here
- ghf*fvc::snGrad(rho)
- fvc::snGrad(p_rgh)
) * mesh.magSf()
)
);
}


Kalpana

navidamin May 6, 2019 12:53

Quote:

Originally Posted by kal1943335 (Post 732866)
It can be done in two ways.

One is to include in the UEqn.H under fvVectorMatrix as volVectorField. The other way is to include in pEqn.H as a surfaceScalarField. Check how the normal surface tension force is implemented in interFoam in older openfoam versions (2.3.0 or 3.0)

Method 1
in UEqn.H
fvVectorMatrix UEqn
(
fvm::ddt(rho, U)
+ fvm::div(rhoPhi, U)
+ turbulence->divDevRhoReff(rho, U)
//include it here as a volVectorField
);


Method 2
in pEqn.H
surfaceScalarField phig
(
(
fvc::interpolate(interface.sigmaK())*fvc::snGrad(a lpha1)
// you can add your tangential component here.
- ghf*fvc::snGrad(rho)
)*rAUf*mesh.magSf()
);

then in UEqn.H (only if you use momentum predictor)
if (pimple.momentumPredictor())
{
solve
(
UEqn
==
fvc::reconstruct
(
(
fvc::interpolate(interface.sigmaK())*fvc::snGrad(a lpha1)
//add it here
- ghf*fvc::snGrad(rho)
- fvc::snGrad(p_rgh)
) * mesh.magSf()
)
);
}


Kalpana

That's exactly my problem. in the term (grad(T)-n(n.grad(T)), n is a surfaceVectorField, right? so I have to interpolate grad(T) to a surfaceVectorField. then the result would be inevitably suraceVectorField. what I am getting wrong here?

kal1943335 May 6, 2019 12:57

You have to manually calculate n.

Kalpana

navidamin May 7, 2019 06:02

d(sigma)/dT Value
 
Quote:

Originally Posted by kal1943335 (Post 732870)
You have to manually calculate n.

Kalpana

Thanks man, I could compile it. now I want to make sure it works. what sample cases did you use to validate?


Also, do you have any reference for d(sigma)/dT value?

kal1943335 May 7, 2019 09:58

Quote:

Originally Posted by navidamin (Post 732934)
Thanks man, I could compile it. now I want to make sure it works. what sample cases did you use to validate?


Also, do you have any reference for d(sigma)/dT value?

There are so many literature on validation of tangential surface tension force. I cannot remember the specifics.

Kalpana

cyw May 14, 2019 10:32

Quote:

Originally Posted by navidamin (Post 732934)
Thanks man, I could compile it. now I want to make sure it works. what sample cases did you use to validate?


Also, do you have any reference for d(sigma)/dT value?

Hi, have you validated your solver? How is the result?

Cao

Nikhil2511 October 29, 2019 06:58

hello,
I am using marangoni BC in simpleFoam solver, I am attaching my solver can anybody please tell whether it is correct way to define sigma(surface tension) as a function of temperature.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Info<< "Reading transportProperties\n" << endl;

IOdictionary transportProperties
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);


Info<< "Reading diffusivity DT\n" << endl;

dimensionedScalar DT
(
transportProperties.lookup("DT")
);
///////////////////////////////////////////////////////////////

Info<< "Reading diffusivity betatn\n" << endl; ////// d(sigma)/dT

dimensionedScalar betatn
(
transportProperties.lookup("betatn")
);

Info<< "Reading diffusivity TRef\n" << endl;

dimensionedScalar TRef
(
transportProperties.lookup("TRef")
);
//////////////////////////////////////////////////////////////////////NC

Info<< "Reading diffusivity sigma\n" << endl;

dimensionedScalar sigma
(
transportProperties.lookup("sigma")
);

Info<< "Reading field Sg\n" << endl;
volScalarField Sg
(
IOobject
(
"Sg",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
sigma - betatn*(T-TRef)
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

thank you

BuzzB February 3, 2020 09:08

Hey guys,

I'm also working on the implementation of the tangential surface tension terms in order to calculate marangoni driven convection.
I want to add them in the surfaceTensionForce() function in phaseSystem.C, since I want to use icoReactingMultiphaseInterFoam.
However, I'm having a hard time implementing it there.

Now, I came across this thread and recognized that you implemented the tangential component seperately in UEqn and pEqn.
It seems that you (kal1943335, cyw, navidamin) managed to get it to work correctly.
Would you mind sharing how exactly you have implemented the neccessary new terms?

Your help is very much appreciated

BuzzB February 7, 2020 10:43

Hey again,


just to give an update, i managed to implement the tangential surface tension force in the phaseSystem library. It works reasonable but is not yet validated, though.

ahomaru January 13, 2021 05:10

Marangoni convection
 
Quote:

Originally Posted by BuzzB (Post 757165)
Hey again,


just to give an update, i managed to implement the tangential surface tension force in the phaseSystem library. It works reasonable but is not yet validated, though.

Hello, BuzzB!
In the VOF method and Marangoni convection post, I learned that you implemented tangential surface tension in the phase System library of icoReactingMultiphaseInterFOAM.
I'm having trouble implementing it, can you please tell me how?

Schmidtgen June 3, 2021 12:52

Quote:

Originally Posted by BuzzB (Post 757165)
Hey again,


just to give an update, i managed to implement the tangential surface tension force in the phaseSystem library. It works reasonable but is not yet validated, though.

Hi BuzzB,

how did you manage the Implementaion? Currently, Im starting to work on the same Problem.

BuzzB June 3, 2021 13:59

Dear Fellow-Foamers,

I received a lot of requests about the tangential surface tension force implementation both in icoReactingMultiphaseInterFoam and condensatingEvaporatingFoam. They both give the exact same results and have been tested with 2 different testcases more or less successfully. Unfortunately, I'm still not allowed to share the code here without publishing it beforehand. I will, however, try to get the permission to share it with you guys asap. It would be nice if we could test and improve it further. Together!

So please excuse the delay and stay tuned!

Schmidtgen June 3, 2021 23:12

That's amazing to hear.

flo(w) February 2, 2022 09:52

Dear all, I have successfully implemented the Marangi effect in the icoReactingMultiphaseInterFoam solver. If you want to know, how this can be done, you can read that in our most recent publication: https://iopscience.iop.org/article/1...61-651X/ac4a26

gentodin April 27, 2022 20:31

Marangoni
 
Quote:

Originally Posted by flo(w) (Post 821444)
Dear all, I have successfully implemented the Marangi effect in the icoReactingMultiphaseInterFoam solver. If you want to know, how this can be done, you can read that in our most recent publication: https://iopscience.iop.org/article/1...61-651X/ac4a26

Do you know how to implement it in OF8/9 InterFOAM?

Your version is under ESI which I'm not sure 100% is compatible with OF8/9.

TeresaT April 28, 2022 06:06

Hi gentodin,

as far as I know icoReactingMultiphaseInterFoam is not available in OF8/9 and it might be a lot of work to implement it. Please correct me if I am wrong.

If I may ask, why do you want to use OF8/9? Or do you just want the Marangoni Effect with OF8/9 specific solvers?

Regards,
Teresa

Berin Šeta May 21, 2022 13:15

Compilation and test case
 
Quote:

Originally Posted by flo(w) (Post 821444)
Dear all, I have successfully implemented the Marangi effect in the icoReactingMultiphaseInterFoam solver. If you want to know, how this can be done, you can read that in our most recent publication: https://iopscience.iop.org/article/1...61-651X/ac4a26

First of all congrats on your work. Very elegant solution to change phasesystem file instead of changing momentum equation within solver.

I wonder how did you compile newly modified phasesystem file and called it by icoReactingMultiphaseInterFoam? Did you had to change anything apart of that phasesystem file to run those cases from the article?

Moreover, could you share benchmark test case file by Sen&Davis? I would like to know how you defined dsigma/dT in your case.

Best regards,
Berin

flo(w) May 23, 2022 05:28

1 Attachment(s)
Hi Berin,
I copied the icoReactingMultiphaseInterFoam solver, changed its name, made the changes in the source files and compiled it. That's all. Attached you can find the benchmark test case files. There, I named the new solver floWSolver2.
With the current implementation, you don't specify dsigma/dT, but a table with temperatures and corresponding surface tension values.

Best regards,
Florian

gentodin August 25, 2022 02:52

Of8
 
Quote:

Originally Posted by TeresaT (Post 827101)
Hi gentodin,

as far as I know icoReactingMultiphaseInterFoam is not available in OF8/9 and it might be a lot of work to implement it. Please correct me if I am wrong.

If I may ask, why do you want to use OF8/9? Or do you just want the Marangoni Effect with OF8/9 specific solvers?

Regards,
Teresa

Hi Teresa,

I chose to work with OF8 initially as I obtained training for it specifically. The other training under ESI I did not realize it until I have already implemented most of my physics.

Nevertheless, I figured out how to implement the physics already.

Cheers.

VINIT October 21, 2022 01:47

Quote:

Originally Posted by flo(w) (Post 821444)
Dear all, I have successfully implemented the Marangi effect in the icoReactingMultiphaseInterFoam solver. If you want to know, how this can be done, you can read that in our most recent publication: https://iopscience.iop.org/article/1...61-651X/ac4a26


Hello Florian



I am trying to implement marangoni by adding the equation to phasesystem file but it is a read only file. Could you please let me know how you did you do it?


Is there something I am missing?

TeresaT October 21, 2022 03:02

Quote:

Originally Posted by VINIT (Post 837940)
Hello Florian



I am trying to implement marangoni by adding the equation to phasesystem file but it is a read only file. Could you please let me know how you did you do it?


Is there something I am missing?

User rights of files are changed with system specific commands. So you could google with the info what system you are using and find out how to change the permissions for the file. Often it makes sense to save files before changing them or to change only copies.

Krishna Thombare August 10, 2023 06:28

can you please explain what "kappa" means in this formula?

Thank you.

flo(w) August 10, 2023 06:46

"Kappa" usually denotes the interface curvature.


All times are GMT -4. The time now is 08:11.