[Gfs-devel] about thermocapillary flow

151 views
Skip to first unread message

Gibbs.Leonid

unread,
Jan 1, 2011, 11:20:01 PM1/1/11
to gfs-devel
Hi, Stephane and all
    
      I plane to develop  the branch of thermocapillary flow into Gerris, in which the surface tension
depends on the temperature that the Marangoni effect drives the flow.
 
      The equations are obtained that a tangential component of surface tension due to temperature
gradient should be added  into the pressure correction step. The CSF model is also adopted here.
 
       Before I start to implement the branch, I think it's better to discuss with you about the numerical
scheme I should select to keep the scheme consistent and conservative
 
      the normal surface tension is expressed as sigma*kappa*(\nabla C) on cell face and integrated into
 u^{\star}. With the Gauss theorem, the surface integral of surface tension can be written as
 
      \Sigma ( sigma*kappa*\nabla C)*n
 
 and (\nabla C*n) is calculated with gfs_face_gradient.
 
     However, in considering the tangential component of surface tension, we should calculate the norm of (\nabla C) and
the inner product of (\nabla C)*(\nabla T) , that means all three directions (3D) of gradient vector on cell face should be calculated.
 
     Suppose the cell face is normal to x-direction, then the x-direction gradient vector is easily obtained by gfs_face_gradient.
The problem lies in how to properly calculate the y- and z-direction gradient vector on cell face.
 
      I've two scheme for this. The first, use the "gfs_center_gradient" to calculate them on cell center, and interpolate
them onto cell face.     The second, interpolate the value of C and T onto cell vertex and then obtain the gradient vector
 using the interpolated vertex value. I'm not sure which one is better and if they are appropriate. Maybe a better scheme should
be adopted because the surface tension simulation is a complex work and sensitive with the numerical technique.
 
      By the way, I'm not sure if anyone has implement this thermalcapillary flow branch, it's just on my working plane and any
suggestion or interest from anyone is appreciated.
 
       Then , Merry Christmas 
 
Cheers
 
Leonid

Stephane Popinet

unread,
Jan 8, 2013, 10:52:27 PM1/8/13
to Gibbs.Leonid, GFS developper discussion list
Hi Leonid,

> I plane to develop the branch of thermocapillary flow into Gerris, in
> which the surface tension
> depends on the temperature that the Marangoni effect drives the flow.

Yes, that sounds like an excellent project. I am not aware of anybody
working on this at present, although the idea has been "in the air"
for a while.

> I've two scheme for this. The first, use the "gfs_center_gradient" to
> calculate them on cell center, and interpolate
> them onto cell face. The second, interpolate the value of C and T onto
> cell vertex and then obtain the gradient vector
> using the interpolated vertex value. I'm not sure which one is better and
> if they are appropriate. Maybe a better scheme should
> be adopted because the surface tension simulation is a complex work and
> sensitive with the numerical technique.

I don't really have arguments for or against either technique,
although the "vertex interpolation" scheme will lead to a wider
stencil which may lead to smoother results. I think you should have
the option to do either and evaluates their respective merits using
test cases. Also, people probably have already looked at this issue
and there may be some literature on the topic.

Please keep in touch on a regular basis (send small code patches
etc...) as this makes collaboration much easier (than a very large bit
of code in a year's time!) and provides people with an opportunity to
give feedback which may be useful to you.

cheers

Stephane

------------------------------------------------------------------------------
Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery
and much more. Keep your Java skills current with LearnJavaNow -
200+ hours of step-by-step video tutorials by Java experts.
SALE $49.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122612
_______________________________________________
Gfs-devel mailing list
Gfs-...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gfs-devel

Gibbs.Leonid

unread,
Jan 10, 2011, 10:50:50 AM1/10/11
to Stephane Popinet, gfs-devel
Hi, Stephane
 
       I've read some literatures on this topic and compile a piece of code for this, see it attached.
 
1.  For thermocapillary flow , the surface tension coefficient varies linearly with the temperature
 
       sigma=sigma_0 + sigma_t*(T-T_0)
    
      and the main algorithm I choose is adhered in the attachment.
 
2.   As depicted in the algorithm file, the surface tension in thermocappilary flow falls into  two parts,
 the normal component and  the tangential component.  For the normal component should be balanced
 by pressure gradient, so it's calculated in the correct step of projection method. But the tangential
component of surface tension is balanced by the vicious sheer stress, so in the code, I place this in the
 prediction step as a source term which is computed in the cell center.  I'm not sure if this is really appropriate?
 
3.   The third document I attach is the parameter file and the non-dimensional parameter is set according
to the paper of Nas and Tryggvason (2003, International journal of multiphase flow ).  Then the comparison
 of rise velocity is presented in fig1, it seems promising.
 
*4.  However, if I add  "AdaptGradient {istep=1} {cmax=1.0e-6 minlevel=5 maxlevel=6} T " in the parameter
 file, the  result seems to be incorrect as showed in fig2 that it's smaller than the reference, and through examination
 I found this faulty comes from the tangential component of surface tension. I'm not sure why this happens when
 the mesh is non-uniform. Maybe it's a slight mistake in my code......
 
5.   I've simulated another two cases of low Marangoni number, and the terminal velocity of drop is also in good
 agreement with  the analytic solution. Of cause, they are conducted on uniform meshes.
 
*6.   I'd like to try another way to complete this branch, that is calculating the tangential component of surface tension
together with the normal component in the correct step , but I don't think it can be complied in an independent module
 because the surface tension added in Gerris is written in 'gfs_velocity_face_sources' in Timestep.c and it is
binding with pressure gradient in the function of  'correct_normal_velocity'.  it will be more complicated and
the consistency should be considered since it's calculated on face. According to your advice, I'll try 'vertex interpolation' first.
 
     Wait for your suggestion.
 
Cheers
 
Leonid

Gibbs.Leonid
 
 
source_marangoni.c
algorithm.pdf
tra.gfs
6-level.eps
5-6adapt.eps
Reply all
Reply to author
Forward
0 new messages