Contact line pinning and incorrect contact angle with Navier slip in high-viscosity / high contact angle at fine mesh Basilisk simulations

65 views
Skip to first unread message

gopal chakka

unread,
Apr 2, 2026, 4:45:04 AM (2 days ago) Apr 2
to basilisk-fr

Hi everyone,

I am working on two-phase simulations in Basilisk that involve contact-line dynamics with high-viscosity fluids. I am trying to impose a static contact angle of 90°, but the contact line remains effectively pinned, and the apparent contact angle deviates from 90°, especially at high viscosity.

Setup:
  • I am using a Navier slip boundary condition at the wall:

u.n[left] = dirichlet(0.0); u.t[left] = dirichlet(u.t[] * lambda / (lambda + mesh));
  • Definitions:

#define mesh ((Ldomain)/pow(2,MAXlevel)) #define lambda 5*mesh
  • Far-field boundary conditions:

u.n[right] = neumann(0.); p[right] = dirichlet(0.0); u.n[top] = neumann(0.); p[top] = dirichlet(0.0); 
  •          CFL condition using in simulations
CFL = 0.1;

Observations:
  • The contact line appears pinned (wall-adjacent cells do not move).

  • The measured contact angle deviates from the imposed 90°.

  • The issue becomes more pronounced as viscosity increases and also at high contact angles ~135 degree at high refinement ~2.5 micronswall_sticking.png.

Questions:
  1. Is the slip length (λ = 5Δ) too small for resolving contact line motion in Basilisk?

  2. For high viscosity flows, what is a recommended range of slip length relative to grid size?

  3. Could this be primarily a resolution issue near the wall/interface?

  4. Are there recommended practices in Basilisk for ensuring accurate contact angle imposition with moving contact lines?

Any suggestions or references would be very helpful.

Thanks in advance!


Shyam Sunder Yadav

unread,
Apr 2, 2026, 5:19:04 AM (2 days ago) Apr 2
to gopal chakka, basilisk-fr
Dear Gopal

Search for "contact.h" on Basilisk webpage, you will gets lots of examples on how to apply static contact angle.

That may help you...

If you do not apply dirichlet boundary condition for volume fraction f  then the interface should take 90 deg angle...

In the image you attached, I notice that drop is sheared at the contact point...Are you studying drop impact kind of problem or may be you are having high gravity? Why the drop is shearing that way is the question...


Just try with lower drop viscosity once...


Dr. Shyam Sunder Yadav
Associate Professor
Mechanical Engineering
BITS Pilani
09902346342
http://www.bits-pilani.ac.in/pilani/ssyadav/Profile

--
You received this message because you are subscribed to the Google Groups "basilisk-fr" group.
To unsubscribe from this group and stop receiving emails from it, send an email to basilisk-fr...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/basilisk-fr/6af6a67b-64d9-4d43-8322-d499797e15cen%40googlegroups.com.

The information contained in this electronic communication is intended solely for the individual(s) or entity to which it is addressed. It may contain proprietary, confidential and/or legally privileged information. Any review, retransmission, dissemination, printing, copying or other use of, or taking any action in reliance on the contents of this information by person(s) or entities other than the intended recipient is strictly prohibited and may be unlawful. If you have received this communication in error, please notify us by responding to this email or telephone and immediately and permanently delete all copies of this message and any attachments from your system(s). The contents of this message do not necessarily represent the views or policies of BITS Pilani.

gopal chakka

unread,
Apr 2, 2026, 7:25:21 AM (2 days ago) Apr 2
to basilisk-fr

Dear Dr. Yadav,

Thank you for your response. I have already implemented the contact angle using the height function exactly as shown in the Basilisk examples.

vector h[];
h.t[left] = contact_angle(theta_e * pi / 180.);
f.height = h;

There is no Dirichlet BC on f anywhere in the code. The issue persists specifically for high-viscosity fluids (Oh > 0.004) despite correct implementation. My problem is drop impact spreading.

Is there anything additional that needs to be done differently in Basilisk for high-viscosity flows to ensure correct contact angle imposition and contact line motion?

Best regards, 

Gopal Chakka

Shyam Sunder Yadav

unread,
Apr 2, 2026, 7:58:08 AM (2 days ago) Apr 2
to gopal chakka, basilisk-fr
Dear Gopal

Should not the Navier-Slip condition imply the following?
u.t[left] = u.y[]*( (2.0*lambda - mesh)/(2.0*lambda + mesh) );

We have the definition of Navier slip boundary condition as  u_slip = u_wall = lambda*(d u_t / dn)

Now u_wall = (u.t[left]+u.y[])/2.0     and   d u_t / dn = (u.y[] - u.t[left])/mesh

Putting these, we get the relation 

u.t[left] = u.y[]*( (2.0*lambda - mesh)/(2.0*lambda + mesh) );

You have to enforce the above relation inside an event through a foreach_boundary loop as shown below (It should work I think...)

event navier_slip (i++)

{

foreach_boundary(left) {

u.t[ghost] = u.y[]*( (2.0*lambda - mesh)/(2.0*lambda + mesh) );
//u.t[-1,0] = u.y[]*( (2.0*lambda - mesh)/(2.0*lambda + mesh) );

}

}

Try one of the above forms...

See if it gives better results...


Best wishes

--
Dr. Shyam Sunder Yadav
Associate Professor
Mechanical Engineering
BITS Pilani
09902346342
http://www.bits-pilani.ac.in/pilani/ssyadav/Profile

gopal chakka

unread,
Apr 2, 2026, 9:18:33 AM (2 days ago) Apr 2
to basilisk-fr

Dear Dr. Yadav,

Thank you very much for your suggestion. The Navier-slip formulation you provided is working correctly and the contact line pinning issue has been resolved.

I sincerely appreciate your time and help.

Best regards, 

Ramgopal

Edoardo Cipriano

unread,
Apr 2, 2026, 10:55:35 AM (2 days ago) Apr 2
to basilisk-fr
Hello,

Just for reference, the Navier slip boundary condition has recently been added to Basilisk (a couple of weeks ago):


It can be used as follows:

u.t[boundary] = navier (value, sliplength);

Best,
Edoardo

Shyam Sunder Yadav

unread,
Apr 2, 2026, 11:36:29 AM (2 days ago) Apr 2
to Edoardo Cipriano, basilisk-fr
Dear Edoardo

Thanks for pointing out the Navier boundary condition implementation!

It will be useful...

Regards



Dr. Shyam Sunder Yadav
Associate Professor
Mechanical Engineering
BITS Pilani
09902346342
http://www.bits-pilani.ac.in/pilani/ssyadav/Profile
Reply all
Reply to author
Forward
0 new messages