CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

VOF method and Marangoni flows

Register Blogs Community New Posts Updated Threads Search

Like Tree2Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 26, 2010, 06:02
Default VOF method and Marangoni flows
  #1
New Member
 
Frank
Join Date: Apr 2009
Posts: 7
Rep Power: 17
fmuldoo is on a distinguished road
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
fmuldoo is offline   Reply With Quote

Old   February 27, 2010, 14:39
Default
  #2
Member
 
Eelco Gehring
Join Date: Mar 2009
Posts: 70
Rep Power: 17
feijooos is on a distinguished road
Frank,

No, I don't OF has that capability yet. But you can always program it yourself.
feijooos is offline   Reply With Quote

Old   September 16, 2015, 17:09
Default Did anyone find any update on the VOF+Marangoni
  #3
New Member
 
Lotte
Join Date: Nov 2012
Posts: 4
Rep Power: 14
jackslot is on a distinguished road
Hi I am facing the same problem. So I am wondering if anyone has update on this issue.

Thanks,

Lotte
jackslot is offline   Reply With Quote

Old   February 22, 2017, 16:30
Default
  #4
Member
 
Kalpana Hanthanan Arachchilage
Join Date: May 2015
Location: Orlando, Florida, USA
Posts: 30
Rep Power: 11
kal1943335 is on a distinguished road
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.
kal1943335 is offline   Reply With Quote

Old   November 22, 2018, 11:15
Default
  #5
cyw
Member
 
Yuanwei Cao
Join Date: Jun 2017
Location: Munich,Germany
Posts: 54
Rep Power: 9
cyw is on a distinguished road
Quote:
Originally Posted by kal1943335 View Post
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?
cyw is offline   Reply With Quote

Old   November 26, 2018, 19:15
Default
  #6
Member
 
Kalpana Hanthanan Arachchilage
Join Date: May 2015
Location: Orlando, Florida, USA
Posts: 30
Rep Power: 11
kal1943335 is on a distinguished road
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
kal1943335 is offline   Reply With Quote

Old   November 27, 2018, 04:55
Default
  #7
cyw
Member
 
Yuanwei Cao
Join Date: Jun 2017
Location: Munich,Germany
Posts: 54
Rep Power: 9
cyw is on a distinguished road
Quote:
Originally Posted by kal1943335 View Post
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 In attempt to decrease spurious currents in VOF.
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?
Attached Images
File Type: png Unbenannt.PNG (2.8 KB, 190 views)
cyw is offline   Reply With Quote

Old   November 27, 2018, 10:18
Default
  #8
Member
 
Kalpana Hanthanan Arachchilage
Join Date: May 2015
Location: Orlando, Florida, USA
Posts: 30
Rep Power: 11
kal1943335 is on a distinguished road
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.
ST_ likes this.
kal1943335 is offline   Reply With Quote

Old   May 6, 2019, 05:31
Default implemention of marangoni force
  #9
New Member
 
Navid
Join Date: Nov 2015
Posts: 20
Rep Power: 11
navidamin is on a distinguished road
Quote:
Originally Posted by kal1943335 View Post
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?
navidamin is offline   Reply With Quote

Old   May 6, 2019, 11:35
Default
  #10
Member
 
Kalpana Hanthanan Arachchilage
Join Date: May 2015
Location: Orlando, Florida, USA
Posts: 30
Rep Power: 11
kal1943335 is on a distinguished road
Quote:
Originally Posted by navidamin View Post
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
kal1943335 is offline   Reply With Quote

Old   May 6, 2019, 13:05
Default
  #11
New Member
 
Navid
Join Date: Nov 2015
Posts: 20
Rep Power: 11
navidamin is on a distinguished road
Quote:
Originally Posted by kal1943335 View Post
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?
navidamin is offline   Reply With Quote

Old   May 6, 2019, 13:17
Default
  #12
Member
 
Kalpana Hanthanan Arachchilage
Join Date: May 2015
Location: Orlando, Florida, USA
Posts: 30
Rep Power: 11
kal1943335 is on a distinguished road
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
kal1943335 is offline   Reply With Quote

Old   May 6, 2019, 13:53
Default
  #13
New Member
 
Navid
Join Date: Nov 2015
Posts: 20
Rep Power: 11
navidamin is on a distinguished road
Quote:
Originally Posted by kal1943335 View Post
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?
navidamin is offline   Reply With Quote

Old   May 6, 2019, 13:57
Default
  #14
Member
 
Kalpana Hanthanan Arachchilage
Join Date: May 2015
Location: Orlando, Florida, USA
Posts: 30
Rep Power: 11
kal1943335 is on a distinguished road
You have to manually calculate n.

Kalpana
kal1943335 is offline   Reply With Quote

Old   May 7, 2019, 07:02
Default d(sigma)/dT Value
  #15
New Member
 
Navid
Join Date: Nov 2015
Posts: 20
Rep Power: 11
navidamin is on a distinguished road
Quote:
Originally Posted by kal1943335 View Post
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?
navidamin is offline   Reply With Quote

Old   May 7, 2019, 10:58
Default
  #16
Member
 
Kalpana Hanthanan Arachchilage
Join Date: May 2015
Location: Orlando, Florida, USA
Posts: 30
Rep Power: 11
kal1943335 is on a distinguished road
Quote:
Originally Posted by navidamin View Post
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
kal1943335 is offline   Reply With Quote

Old   May 14, 2019, 11:32
Default
  #17
cyw
Member
 
Yuanwei Cao
Join Date: Jun 2017
Location: Munich,Germany
Posts: 54
Rep Power: 9
cyw is on a distinguished road
Quote:
Originally Posted by navidamin View Post
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
cyw is offline   Reply With Quote

Old   October 29, 2019, 07:58
Default
  #18
New Member
 
Nikhil Chitnavis
Join Date: Sep 2019
Location: India
Posts: 19
Rep Power: 7
Nikhil2511 is on a distinguished road
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
Nikhil2511 is offline   Reply With Quote

Old   February 3, 2020, 10:08
Default
  #19
New Member
 
Sebastian
Join Date: Sep 2013
Posts: 14
Rep Power: 13
BuzzB is on a distinguished road
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 is offline   Reply With Quote

Old   February 7, 2020, 11:43
Default
  #20
New Member
 
Sebastian
Join Date: Sep 2013
Posts: 14
Rep Power: 13
BuzzB is on a distinguished road
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.
BuzzB is offline   Reply With Quote

Reply

Tags
marangoni vof


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On



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