spurious currents and few questions on Basilisk.

639 views
Skip to first unread message

saideep pavuluri

unread,
Jun 6, 2016, 9:14:32 AM6/6/16
to basilisk-fr
Hi everyone;

I recently started to look into Basilisk. I have not gone through internal structure of the codes yet but wanted to know some very basic stuff related to structure of basilisk and a test case of "Spurious currents related to equilibrium droplet".

1. Does Basilisk provide us a chance to compare - field units[kg/m/s/...]? I basically learn a lot comparing and relating units of any scalar/ vector fields. So, I was wondering about this.

2. How can we select/ differentiate between a 2D/ 3D case? Is it only through specification of a Neumann B.C along third dimension and by default everything is assumed to be in 3D?

3. Regarding spuriousCurrent (equilibrium droplet case - I am guessing its a 3D case as of now but using gfsView2D for analysis confuses me) I came across this specific portion in test case description:

//We set the constant viscosity field…

  const face vector muc[] = {MU,MU};
  μ = muc;

I get an error here but I used MU which is a preprocessor for
μ.

4. A silly question,
While comparing dimless time against dimless Velocity I guess it is not dimless.
Something like Ca(for U_max) and (t*sigma)/(MU*DIAMETER) (for time) should work.
Is it so or else I understood it wrong?


Thanks;
Saideep
      

Stephane Popinet

unread,
Jun 6, 2016, 9:30:46 AM6/6/16
to basil...@googlegroups.com

> 1. Does Basilisk provide us a chance to compare - field
> units[kg/m/s/...]? I basically learn a lot comparing and relating units
> of any scalar/ vector fields. So, I was wondering about this.

I don't understand your question. If what you mean is what are the units
used by Basilisk? the answer: whatever units you choose (e.g. you could
choose to express the problem in S.I. units or c.g.s. units etc...).

> 2. How can we select/ differentiate between a 2D/ 3D case? Is it only
> through specification of a Neumann B.C along third dimension and by
> default everything is assumed to be in 3D?

By default Basilisk uses a quadtree (i.e. 2D) adaptive grid. To use a 1D
adaptive grid, you could do (at the top of the file):

#include "grid/bitree.h"

or a 3D adaptive grid:

#include "grid/octree.h"

> 3. Regarding spuriousCurrent (equilibrium droplet case - I am guessing
> its a 3D case as of now but using gfsView2D for analysis confuses me)

It is 2D.

> I came across this specific portion in test case description:
>
> //We set the constant viscosity field…
>
> |const face <http://basilisk.fr/Basilisk%20C#face-and-vertex-fields>
> vector muc[] = {MU,MU}; μ = muc;
>
> I get an error here but I used MU which is a preprocessor for ||μ.||

Don't cut and paste code from the web page, use the "raw page" source
code (follow the "Raw page source" link in the "This page" menu on the
left-hand-side):

http://basilisk.fr/_showraw/src/test/spurious.c

> 4. A silly question,
> While comparing dimless time against dimless Velocity I guess it is not
> dimless.
> Something like Ca(for U_max) and (t*sigma)/(MU*DIAMETER) (for time)
> should work.
> Is it so or else I understood it wrong?

As indicated in the legend of the figure, the dimensionless time is
t\mu/D^2 and the dimensionless velocity is U\sqrt{D/\sigma}.

cheers

Stephane

saideep pavuluri

unread,
Jun 6, 2016, 9:57:50 AM6/6/16
to basilisk-fr
Thanks Stephane;

I understand things a bit better now.

Sorry that I did not make myself clear about the system of units.
What I meant was: does Basilisk point out errors when I am trying to add two different fields with different dimensions?
For example (it is a bad one but just for explaining my question better), U = U + div(flux); {[m/s] = [m/s] + [1/s], not possible in reality}.
--
Regarding dimless units its clear now.
I was relating MU as dynamic viscosity[kg/m.s] but I now see that it is Kinetic viscosity[m2/s] rather. 
 
Thanks a lot!!
Saideep

Stephane Popinet

unread,
Jun 6, 2016, 9:59:17 AM6/6/16
to basil...@googlegroups.com

> Sorry that I did not make myself clear about the system of units.
> What I meant was: does Basilisk point out errors when I am trying to add
> two different fields with different dimensions?

No, it's up to you to ensure consistency.

Stephane

saideep pavuluri

unread,
Jun 8, 2016, 7:26:53 AM6/8/16
to basilisk-fr, pop...@basilisk.fr
Thanks Stephane;

I am interested in the microfluidics/ pore network models part and I am presently going through your paper.
https://hal.archives-ouvertes.fr/hal-01312931/document

How can we change the size(or rescale) of domain in Basilisk to something around 1e-6m? size() function manipulates number of square cells in domain rather?

Is there any cases where contact angle parameter is used for analysis of multiphase flow touching wall surface?  

Thanks;
Saideep

Stephane Popinet

unread,
Jun 8, 2016, 7:40:11 AM6/8/16
to basilisk-fr
> How can we change the size(or rescale) of domain in Basilisk to
> something around 1e-6m? size() function manipulates number of square
> cells in domain rather?

size (1e-6);

> Is there any cases where contact angle parameter is used for analysis of
> multiphase flow touching wall surface?

Not yet.

Stephane

saideep pavuluri

unread,
Jun 8, 2016, 8:56:38 AM6/8/16
to basilisk-fr, pop...@basilisk.fr
I have had tried that as well but I get the following during runtime. (Attached is my file for reference).

/basilisk/src/grid/events.h:227: dtnext: Assertion `n < 2147483647' failed.
Aborted (core dumped)


When my size (50e-4) with refinement level of 7 works, but going down to size(50e-5) only level 4 and below works but the mesh is quite coarse.

Thinking it could be due to CFL criteria, I tried to reduce U but seems not to be the reason.

Saideep   
microChannel.c

saideep pavuluri

unread,
Jun 9, 2016, 8:27:58 AM6/9/16
to basilisk-fr
Hi Stephane;

Is there any help page for gfsView. I rather find it uncomfortable the way X/Y axis are oriented i.e. (X - vertical axis, Y - horizontal axis, I am used to see things the other way round). Is there a quick fix for this? Also when I try to represent stream lines of flow I end up with representation of cells in the domain. Just wanted to know if visualization with paraview is possible.

Based on the micro channel paper of yours, is there a way to initialize the volume fraction of a fluid as a rectangle? Defining an equation for a rectangle is a bit tricky.
I have tried something like fraction (f,(x-a)*(y-b)*(x-c)*(y-d)) but not sure if Basilisk fraction function really understands what I wanted to do.
 
Thanks;
Saideep

On Monday, 6 June 2016 14:14:32 UTC+1, saideep pavuluri wrote:

Stephane Popinet

unread,
Jun 9, 2016, 9:57:10 AM6/9/16
to basilisk-fr
> Is there any help page for gfsView. I rather find it uncomfortable the
> way X/Y axis are oriented i.e. (X - vertical axis, Y - horizontal axis,
> I am used to see things the other way round). Is there a quick fix for
> this?

You can rotate the figure by left-clicking and moving the mouse.

> Also when I try to represent stream lines of flow I end up with
> representation of cells in the domain. Just wanted to know if
> visualization with paraview is possible.

There is a VTK output option:

http://basilisk.fr/src/vtk.h

> Based on the micro channel paper of yours, is there a way to initialize
> the volume fraction of a fluid as a rectangle? Defining an equation for
> a rectangle is a bit tricky.
> I have tried something like fraction (f,(x-a)*(y-b)*(x-c)*(y-d)) but not
> sure if Basilisk fraction function really understands what I wanted to do.

See the "Boolean operations" section in:

http://gfs.sourceforge.net/wiki/index.php/GfsSurface

You could also use something like:

foreach()
f[] = fabs(x) < a && fabs(y) < b;
boundary ({f});

Stephane

saideep pavuluri

unread,
Jun 20, 2016, 10:43:01 AM6/20/16
to basilisk-fr
Hi Stephane;

I am trying to work on droplet motion in a micro-channel based on your recent paper.

I was trying to run a complete droplet in micro-channel (based on specified dimensions) instead of a symmetric condition that you used for 2D case.

The droplet gets severely distorted (for large and small Ca's) and gets advected touching the wall instead of forming a lubricating film (for low Ca, as Ca reduces film thickness decreases but I guess c.a. should play a role here).

Attached is the script I used and I took reference from Karman, riseBubble test cases.

Any idea why the behaviour is non-physical?


Saideep  


On Monday, 6 June 2016 14:14:32 UTC+1, saideep pavuluri wrote:
chanFlow.c
Reply all
Reply to author
Forward
0 new messages