bubble not convected

120 views
Skip to first unread message

Boqiao HUANG

unread,
Jun 7, 2025, 9:22:45 AMJun 7
to basilisk-fr
Dear all,

I am working on a case where an initialized bubble would be convected by the inflow in a channel (see Sim_intro.png). 

In this simulation, I used vof method to describe the interface and used the navier-stokes/centered-evaporation and navier-stokes/centered-double in the sandbox ecipriano to include a phase-change model.

However, when I run the simulation, I found that the bubble was not transported to the downstream as if there were not inflow. The issue is presented in Prob_sim.png, where the background is the velocity u.x. I think the velocity is certainly great enough to transport the bubble.

Do you have any idea why the bubble was not transported ? Thank you very much 

P.S. The source code (channel_flow.c) is attached below.


Sim_intro.png
channel_flow.c
Prob_sim.png

HANGPENG JIANG

unread,
Jun 7, 2025, 10:03:24 AMJun 7
to basilisk-fr
Hi Boqiao,

I'm also using ecipriano's phase-change model.
I added the boundary conditions of uext and pext, and the bubble was transported by the flow.

////////////////////////////////////////////////////////////////////////////////////
  u.n[left] = dirichlet(4. * u0 * y * (H - y) / sq(H));
  u.t[left] = dirichlet(0.);
  p[left] = neumann(0.);
  pf[left] = neumann(0.);

  uext.n[left] = dirichlet(4. * u0 * y * (H - y) / sq(H));
  uext.t[left] = dirichlet(0.);
  pext[left] = neumann(0.);
  pfext[left] = neumann(0.);

  p[right] = dirichlet(0.);
  u.n[right] = neumann(0.);
  u.t[right] = neumann(0.);

  pext[right] = dirichlet(0.);
  uext.n[right] = neumann(0.);
  uext.t[right] = neumann(0.);

  u.n[embed] = dirichlet(0.);
  u.t[embed] = dirichlet(0.);

  u.n[bottom] = dirichlet(0.);
  u.t[bottom] = dirichlet(0.);

  TL[left] = dirichlet(Tin);
  TL[right] = neumann(0.);
  T[bottom] = dirichlet(100.);
  T[embed] = dirichlet(100.);
////////////////////////////////////////////////////////////////////////////////////

I hope this can help you.

Best,
Hangpeng

Edoardo Cipriano

unread,
Jun 7, 2025, 4:42:56 PMJun 7
to basilisk-fr
Dear Boqiao,

Hangpeng correctly identified the issue.

You can also inherit the (initial and) boundary conditions for uext and pext directly from u and p.

Or, if you have a bubble in forced convection you can also try with a single velocity, avoiding centered-doubled.h.

The boundary conditions for T are useless since only TL and TG are resolved, according to the two-field solution of the scalar transport equations. T is just the sum of TL and TG.

Please find attached a refined version of your setup which includes both these strategies.

In general, I suggest you to start from the simulation setups of other boiling test cases, for example this one:


Hope this helps.

Cheers,
Edoardo
channel_flow.c

Boqiao HUANG

unread,
Jun 9, 2025, 8:21:06 AMJun 9
to basilisk-fr
Dear Hangpeng,

Thank you so much for your help !

Best,
Boqiao
###################################

Dear Edoardo,

Thank you so much for your help !

I noticed that you did not use <embed.h> in the refined version to modify the size of the domain. I am trying to impose a BC on temperature at the top and the bottom of the domain, could I simply do TL[top] = dirichlet(105.) and TL[bottom] = dirichlet(105.) ? 

I tried this strategy but I found that the temperature field was not symmetric (as shown in T_field.png), which seems not correct to me.

Please find attached the source code (channel_flow_refined.c).

Thank you very much !

Best,
Boqiao

channel_flow_refined.c
T_field.png
Reply all
Reply to author
Forward
0 new messages