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 |
Frank,
No, I don't OF has that capability yet. But you can always program it yourself. |
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 |
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. |
Quote:
|
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 |
1 Attachment(s)
Quote:
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? |
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. |
implemention of marangoni force
Quote:
Hey guys! I am having the same problem. Kalpana, would you please also post here the correct implementation of the equation? |
Quote:
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 |
Quote:
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? |
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 |
Quote:
|
You have to manually calculate n.
Kalpana |
d(sigma)/dT Value
Quote:
Also, do you have any reference for d(sigma)/dT value? |
Quote:
Kalpana |
Quote:
Cao |
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 |
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 |
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. |