
[Sponsors] 
November 23, 2016, 08:25 
IsoAdvector release

#1 
Member
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 19 
Dear foam’ers
Today we release the first version of our new geometric VolumeofFluid (VOF) algorithm for general meshes, isoAdvector: https://github.com/isoAdvector/isoAdvector The performance of and conceptueal ideas behind the method are described in the paper, “A computational method for sharp interface advection” just published in Royal Society Open Science: http://dx.doi.org/10.1098/rsos.160405 We hope the large part of the CFD community working with interfacial flows will benefit from the improved accuracy and interface sharpness obtained with isoAdvector. The isoAdvector code and concept are still under development. Therefore, if you test the code, we would appreciate if you could give us a few lines of feedback with description of your case setup and the effect isoAdvector has on your runs. The best way to give feedback is to write a post on cfdonline.com/Forums/openfoam/ under the relevant category and tag the post 'isoadvector'. Kind regards, Johan Roenby 

November 24, 2016, 05:45 

#2 
Senior Member
Andrea Ferrari
Join Date: Dec 2010
Posts: 319
Rep Power: 15 
Hi Johan,
It looks a very interesting and promising work for the whole CFD community dealing with interfacial flows. I ll test the code as soon as possible! I have just a side question. You probably know that one of the biggest problem reported by the interFoam users is the appearance of spurious velocity in the vicinity of the interface in case of surface tensiondominated two phase flows. The origin of these non physical velocity are manifold: inaccuracies in the interface normal vector calculation, inconsistent discrete balance between pressure gradient and surface tension but also inacuraccies coming from the advection step (difficult to get second order convergence with standard compression schemes as MULES). Did you observe any improvement on this side using isoAdvector with respect to MULES? Do you think we can tale advantages from isoAdvector to improve the calculation of the normal vector at the interface (maybe using the isosurface instead of differentiating alpha1...but here i am just guessing)? Best, Andrea 

November 24, 2016, 06:37 

#3 
Member
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 19 
Dear Andrea
Thanks for you question, which is indeed a very good one. So, did I observe any improvement on the appearance of spurious velocity in the vicinity of the interface in case of surface tensiondominated two phase flows using isoAdvector? The short answer is "No". The long one follows below: My field of application is large breaking ocean wave with no attempt of resolving all droplets and bubbles down to scales where surface tension is relevant. In our wave simulations, setting the surface tension to zero or its physical value has no effect at all. We do, however, experience strange kinematics at the interface. These are altered when using isoAdvector for advection because of the razor sharp interface. Mostly for the better in my experience so far, but I still don't have solid documentation for this. Anyway, the main problem persists. Which in my understanding is the somewhat naive way the existence of a density jump is dealt with (or rather, not dealt with) in ther pressurevelocity coupling, i.e. in the PISO loop. Some very interesting work on treating this more consistenly has been done by Vuko Vukcevic in his PhD with Prof. Jasak at University of Zagreb (still not published, I think). They use the "Embedded free surface method" which seems to kill the spurious velocities in our type of flows without surface tension. I have some alternative ideas, which I am currently working on, about how to exploit the subcell fluid distribution information obtained with isoAdvector to solve the problem. And, yes, working with the normal of the "isoface" rather than doing a gradient calculation is definitely one of the tricks which I hope will improve things. For you surface tension people, I believe you will also need an improved estimate of the curvature, right? This information is somehow contained in the difference in surface normal direction between adjacent surface cells. Hmm... still thinking about how to cook this up in a consistent and robust way for general meshes... I hope this sort of answers your questions. Cheers, Johan 

November 25, 2016, 12:57 

#4 
Senior Member
Andrea Ferrari
Join Date: Dec 2010
Posts: 319
Rep Power: 15 
Dear Johan
this definitely answers my question.. Another short one, does it support axisymmetric meshes? Best, andrea 

November 28, 2016, 08:21 

#5 
Member
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 19 
I have not tried isoAdvector with an axisymmetric case. I don't see why it shouldn't work, though. If you try it with an axisymmetric case, I'd like to know if it works at it should.
Cheers, Johan 

November 28, 2016, 08:53 

#6 
Senior Member
Andrea Ferrari
Join Date: Dec 2010
Posts: 319
Rep Power: 15 
I asked because i tried simulating an axisymmetric bubble in a microchannel and i got floating point error, but i am not 100% sure i set up everything correctly. The mesh is nonuniform, more refined close to the channel wall with a maximum aspect ration of about 30. The same case works with interFoam but i got a lot of alpha diffusion in the nonuniform mesh region.
I ll try to play a bit with the isoAdvector options to see if i can get rid of the error. Ill let you know Best, Andrea 

December 16, 2016, 06:20 
Great work!!!

#7 
New Member
Xinze
Join Date: Mar 2009
Location: Shenyang, China
Posts: 14
Rep Power: 15 
Firstly, Thank you very much for your sharing these state of the art work.
Today, I git the latest codes from github.com I compiled the code based on OF4.1. No any error. I tested your run directory, it works perfectly. Then I rerun a case using interFlow, which has been tested using interFoam, and I obtained the following a lot of warnings. " > FOAM Warning : From function void Foam::isoAdvection::timeIntegratedFlux() in file isoAdvection/isoAdvection.C at line 205 mag(n0) = 4.4512e13 < 1e6*minMagSf_ for cell 483737 > FOAM Warning : From function void Foam::isoAdvection::timeIntegratedFlux() in file isoAdvection/isoAdvection.C at line 205 mag(n0) = 2.24526e13 < 1e6*minMagSf_ for cell 483877 > FOAM Warning : From function void Foam::isoAdvection::timeIntegratedFlux() in file isoAdvection/isoAdvection.C at line 205 mag(n0) = 4.22936e12 < 1e6*minMagSf_ for cell 486725 " Will these warnings change the correct of numerical solution or any effect? How to circumvent these warnings? I have read the code in isoAdvection.C and I known these warnings come from the cell cut is too either full or empty, but in physics will this process change the conversion of momentum/mass? Another question is after using isoAdvector method whether Adapt Refine Method, such as interDyMFoam family, will loose the significance. Finally, is there any plan to extend this method into mulphaseInterFlow, compressibleMulphaseInterFlow? Best, XZ 

December 18, 2016, 10:19 

#8  
Senior Member
Arjun
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 1,134
Rep Power: 29 
Quote:
A small comment on this issue. In starccm+ Samir added something called momentum dissipation which seems to reduce this spurious velocities greatly. I did have small talk with samir and my understanding is that he adds a dissipation term that try to balance the force imblance due to density difference. I don't know the exact formulation but there was a ppt where Samir (and milovan peric) presented this. I will try to search it. If I find i will attach to it. 

December 19, 2016, 05:21 

#9  
Senior Member
Anton Kidess
Join Date: May 2009
Location: Germany
Posts: 1,377
Rep Power: 28 
Quote:
Denner, F., Evrard, F., Serfaty, R., van Wachem, B. G. M., Jan. 2017. Artificial viscosity model to mitigate numerical artefacts at fluid interfaces with surface tension. Computers & Fluids 143, 5972. URL http://dx.doi.org/10.1016/j.compfluid.2016.11.006
__________________
*On twitter @akidTwit *Spend as much time formulating your questions as you expect people to spend on their answer. 

December 19, 2016, 09:36 

#10  
Senior Member
Arjun
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 1,134
Rep Power: 29 
Quote:
Thank you for the paper. You are right it is along the lines what it mentions, though I am not aware of exact details. I will try what this paper mentions and see how it goes. 

January 27, 2017, 14:03 

#11 
Senior Member
PeiYing Hsieh
Join Date: Mar 2009
Posts: 334
Rep Power: 16 
Hi, Johan,
Is there a short descriptions (steps) on how to install isoAdvector and run cases? Thanks! PeiYing 

April 20, 2017, 13:15 

#12 
Senior Member
Cyprien
Join Date: Feb 2010
Location: Stanford University
Posts: 299
Rep Power: 16 
Hi Johan et al.,
I read your paper and tried isoAdvector. Very interesting work. To follow up with Andrea question, I have a question regarding the coupling with NavierStokes and the computation of surface tension force. Do you use the original approach of interFoam to compute the normal to the interface in every cell or do you compute the normal based on the isoface you computed during the advection of the interface? (seems to me that the second approach will be more accurate). For info, I tried the code (interFlow) on the static droplet case (a droplet in a square box without any flow), and the results are completely unphysical (not only we have spurious velocities but we also have a fragmentation of the droplet.. Cheers, Cyprien 

April 20, 2017, 16:04 

#13 
Member
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 19 
Hi Cyprien
I have not altered the surface tension implementation of interFoam in the interFlow solver since focus was more on the isolated interface advection problem in my postdoc and because surface tension is of minor importance in my type of applications. You can have a look here to confirm that the surface tension contribution to the flux source term in the pressure poisson equation is indeed unaltered: https://github.com/isoAdvector/isoAd...terFlow/pEqn.H I now realise that a lot of interFoam users are dealing with surface tension dominated flow problems and that the sharper interface obtained with isoadvector might make the snGrad(rho) more noisy. I'd really like to dive into this problem but for now I am unfortunately very short of time for anything that is not essential to my own line of work. One thing you could try is to work with snGrad(smoothedCopyOfAlpha1) instead of snGrad(alpha1) in the surface tension force term. As far as I remember, one of the guys in the first Free Surface Flows session at OFW11 had success with this approach. If you do try it out then please let us know if it works. Kind regards, Johan [Moderator note: There was a line of discussion below that was moved to a new thread: https://www.cfdonline.com/Forums/op...hangefoam.html ] Last edited by wyldckat; August 27, 2017 at 09:42. Reason: see "Moderator note:" 

September 21, 2017, 05:17 

#14 
Senior Member
AA Azarafza
Join Date: Jan 2013
Posts: 226
Rep Power: 13 
Hi Cyprien,
I also faced the same problem while simulating a droplet approaching a fiber using interFoam. The droplet moves haphazardly without any physical meaning . Unfortunately, I have not been able to solve the issue yet. Anything new in this, would be highly appreciated in advance. Cheers, Abouzar
__________________
Regard yours 

October 22, 2017, 14:39 

#15 
Senior Member
sandy
Join Date: Feb 2016
Location: .
Posts: 117
Rep Power: 9 
hello everyone
i am seeking advice how to add isoadvector to intercondensatingevaporatingfoam do i simply follow steps of change from interfoam to interflow solver or is there some additional steps of change?? i am using openfoam v1612+ from ESI, i can also use v1706+ 

July 28, 2018, 01:29 

#16  
New Member
TongweiZhang
Join Date: Jan 2018
Posts: 5
Rep Power: 7 
Quote:
As argued in §2.1, the correct isovalue to use is the one recovering the cell volume fraction. That is, we should find f ∗ such that α˜( f ∗) = αi. In the current implementation, f ∗ is found by the following procedure. First, we geometrically calculate α˜(f) for the vertex values, f1, ... , fN. Of these, we then find the closest value below and above f ∗, say, fk and fl, such that f ∗ ∈ [fk, fl]. On this interval, we know that α˜( f) varies monotonically like a cubic polynomial. Thus, evaluating α˜( f) geometrically at two points between fk and fl, we have four equations for the four polynomial coefficients. The resulting linear 4 × 4 Vandermonde matrix system we solve using LU decomposition. With a polynomial expression for α˜( f) at hand, we can use Newton’s root finding method to efficiently find f ∗ such that  ˜α( f ∗) − αi < , where is a userspecified tolerance, typically set to = 10−8. In rare cases, the LU solution does not give useful coefficients because the 4 × 4 matrix is illconditioned, so the method does not converge. In these cases, we use Newton’s root finding method with direct geometric evaluation of α˜(f) instead of the much cheaper polynomial evaluation. 

July 28, 2018, 10:17 

#17 
Member
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 19 
Hi TongweiZhang
Have a look at my isoAdvector related papers, which can be found here. Else, please try to be much more specific about what exactly it is you don't understand. Kind regards, Johan 

July 29, 2018, 05:38 

#18  
New Member
TongweiZhang
Join Date: Jan 2018
Posts: 5
Rep Power: 7 
Quote:
Thanks for your advice! I browse your works on researchgate roughly. I will read it in detail About PLIC in openfoam, its implementation is easy？Is there any related openfoam code about it. I want to research geometric surface reconstruction algorithm by openfoam thank you for your suggestion! 

July 29, 2018, 17:51 

#19 
Member
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 19 

July 29, 2018, 21:16 

#20  
New Member
TongweiZhang
Join Date: Jan 2018
Posts: 5
Rep Power: 7 
Quote:
In your paperAccurate and efficient surface reconstruction from volume fraction data on general meshes. The method of "plicRDFN" was reported, Is this the implementation of PLIC in OpenFOAM? 

Tags 
isoadvector 
Thread Tools  Search this Thread 
Display Modes  

