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 06: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 14:39

Frank,

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

jackslot September 16, 2015 17: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 16: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 11: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 19: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 04: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 10: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 05: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 11: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 13: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 13: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 13: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 13:57

You have to manually calculate n.

Kalpana

navidamin May 7, 2019 07: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 10: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 11: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 07: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 10: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 11: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.


All times are GMT -4. The time now is 10:34.