|
[Sponsors] |
Artificial high velocities at the interface using interFoam |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
February 24, 2011, 15:10 |
Artificial high velocities at the interface using interFoam
|
#1 |
Senior Member
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18 |
Hi all,
I'm simulation flow of water around an object using the interFoam solver and k-Omega SST turbulence model. At the moment, I'm struggling with some artificial high velocities which occur at the interface in the upper air zone. At the beginning of the simulation, some air interface cells have velocities of up to 20 times the normal maximum velocities in my water zone, which really reduce my time steps or let the simulation crash. For the meshing, I used blockMesh and sHM including layers. checkMesh gives ... Minumum face area = 3.3007033e-07. Maximum face area = 0.0026526524. Face area magnitudes OK. Min volume = 4.735839e-10. Max volume = 5.2955194e-05. Total volume = 1.6946638. Cell volumes OK. Mesh non-orthogonality Max: 74.576967 average: 6.9868146 *Number of severely non-orthogonal faces: 70. Non-orthogonality check OK. <<Writing 70 non-orthogonal faces to set nonOrthoFaces Face pyramids OK. Max skewness = 2.4098523 OK. Mesh OK. As I'm not interested in what is happening on the air part, I already changed the interFoam solver to ignore the convective term on the air side. This improved the simulation, but it's still not running very well. Can someone give me a hint on how to modify my solver settings or improve my mesh? A picture and the settings are attached/given below. BTW: Is it somehow possible to 'sharpen' the interface by changing the settings? Or is this only possible by refining the mesh at the interface? Arne |
|
February 24, 2011, 17:34 |
|
#2 |
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36 |
Hi,
try using a limited scheme for div(rho*phi,U). You are currently using central differences (linear), which is not necessarily stable (is your cell Re < 2)? Maybe try div(rho*phi,U) Gauss limitedLinearV 1; which should be quite accurate, if it works. If you need something more robust: div(rho*phi,U) Gauss linearUpwindV cellLimited Gauss linear 1; Best,
__________________
Alberto Passalacqua GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541) OpenQBMM - An open-source implementation of quadrature-based moment methods. To obtain more accurate answers, please specify the version of OpenFOAM you are using. |
|
February 25, 2011, 05:21 |
|
#3 |
Senior Member
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18 |
Thanks Alberto,
I guess you saved a lot of my time! I tried both schemes, and both simulations are working. The Gauss limitedLinearV 1 seems more reliable and accurate to me. Nevertheless, artificial velocities at the interface still occure, but are much lower. They are "generated" directly at the simulation start, and never disappear (the latter maybe because the convective term on the air side is ignored?). Do you have an idea where they are coming from and, what is more important, how I can completely avoid them? Any hints on which direction I could have a closer look? Initial and BC: For the initial state, the whole water domain has a unique velocity given by setFields. Air has zero velocity. At the inlet, velocity is set as constant at the water part using groovyBC and zero for the air part during the simulation. For the initial state, I also changed this to a smoother transition for alpha and U giving the interface cells half values (0.5 and half water velocity). This did not solve it as well... Arne |
|
February 25, 2011, 23:33 |
|
#4 | ||
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36 |
Quote:
Quote:
Best, Alberto
__________________
Alberto Passalacqua GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541) OpenQBMM - An open-source implementation of quadrature-based moment methods. To obtain more accurate answers, please specify the version of OpenFOAM you are using. |
|||
February 28, 2011, 10:52 |
|
#5 | |
Senior Member
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18 |
Hi Alberto,
Quote:
I noticed that some small cells in the boundary layer around the structure at the water/air transition have a very high value for k, in an order of 10 times the normal value for cells around the structure. But I don't exactly know what to do with them... Another question: Do you also have a suggestion for the 'right' fvSolution settings (PCG, GAMG) in terms of speed and accuracy for interFoam and around 2 million cells? Arne |
||
February 28, 2011, 14:47 |
|
#6 | ||
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36 |
Quote:
Quote:
Best, Alberto
__________________
Alberto Passalacqua GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541) OpenQBMM - An open-source implementation of quadrature-based moment methods. To obtain more accurate answers, please specify the version of OpenFOAM you are using. |
|||
June 6, 2011, 15:23 |
|
#7 |
Senior Member
Pablo
Join Date: Mar 2009
Posts: 102
Rep Power: 17 |
Hello Arne,
I am interested in ignore the convective term on the air side, can you let me known how did you do?, is it improving your simulation? (i mean if you are avoiding very small time steps? Advanced thanks Pablo |
|
June 6, 2011, 15:49 |
|
#8 |
Senior Member
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18 |
Pablo, it did not really improve the simulation with regard to smaller time steps and high velocities in the air phase.
Depending on what you want to do and if the air phase is not of great importance for you, you could try modifying the solver (e.g. interFoam, copied and compiled to my_interFoam) and set the velocities in alpha1 (all cels smaller than a value of lets say 0.05) to zero every timestep. For my case, this saved computational time. Nevertheless, in case of surface waves, you have to be careful with regard to wave damping. Ignoring the convective term would also be done in the solver within the U equation. Arne |
|
June 6, 2011, 17:54 |
|
#9 |
Senior Member
Pablo
Join Date: Mar 2009
Posts: 102
Rep Power: 17 |
Hello Arne,
Set velocities 0 when alpha1<0.05 is clear for me, it is like a BC in every timestep, but modify the convertive term, i can not see too clear to implement. We have fvVectorMatrix UEqn ( fvm::ddt(rho, U) + fvm::div(rhoPhi, U) So we can modify U or rhoPhi, but how??, can you be more explicit? Advanced thanks |
|
June 7, 2011, 03:36 |
|
#10 |
Senior Member
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18 |
Please have a look at the slides from Eric Paterson: http://www.google.de/url?sa=t&source...bWpkzA&cad=rja
Here, gamma/alpha1 is explicitly included in the equation and therefore the term becomes zero in air phase. |
|
June 7, 2011, 06:09 |
|
#11 |
Senior Member
Pablo
Join Date: Mar 2009
Posts: 102
Rep Power: 17 |
Now it is very clear and easy. Thank you very much.
Pablo |
|
June 9, 2011, 16:39 |
|
#12 |
Senior Member
Pablo
Join Date: Mar 2009
Posts: 102
Rep Power: 17 |
Hi Arne,
My version from interFoam is rotational and inviscid, and i modify with ; fvVectorMatrix UEqn ( fvm::ddt(rho, U) + alpha1*fvm::div(rhoPhi, U) but surprised that i got unstable solution. Any idea? if i need to modify another piece of code? Pablo |
|
June 13, 2011, 15:28 |
|
#13 | |
New Member
Join Date: Jun 2011
Posts: 5
Rep Power: 15 |
Quote:
Hello, I am trying to set the velocities to 0 in the air phase as you have mentioned. could you please share how did you do that? I am new to OpenFoam. Thanks |
||
June 13, 2011, 18:04 |
|
#14 |
Senior Member
Pablo
Join Date: Mar 2009
Posts: 102
Rep Power: 17 |
You can try something like this:
forAll(U, celli) { if (alpha1[celli] < 0.01) { U[celli] = 0.0; } } Info <<"/////////////////////// update U Air ///////////////////////////////// " << nl; You can write in a file like mycorrectAir.H, and call from UEqn.H, after convective term. Pablo |
|
June 14, 2011, 02:29 |
|
#15 | |
Senior Member
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18 |
Quote:
@ cfd_user2011: Concerning setting the velocity in air to zero: You have to modify the (interFoam) solver, like Pablo said. Please have a look at this tutorial http://openfoamwiki.net/index.php/Ho...ure_to_icoFoam to see how a copy of the solver can be modified and compiled. @ Pablo: I'm encountering that the deltaT significantly drops (by a factor 2) durin the whole simulation (using modified solver), compared to normal interFoam. Do you get the same? |
||
June 14, 2011, 07:45 |
|
#16 |
Senior Member
Pablo
Join Date: Mar 2009
Posts: 102
Rep Power: 17 |
Hi Arne,
I am not using exactly 0 for velocities at the air, i think that is too agressive. I am relaxing only the air phase and i am getting nice results, i mean i am running mesh that before was stopped because unstabilities at the air. About alpha1*fvm::div(rhoPhi, U) the idea looks right but maybe the mesh , allways i got unstable. Pablo |
|
June 14, 2011, 11:41 |
|
#17 |
Senior Member
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18 |
||
December 7, 2011, 09:33 |
|
#18 |
Senior Member
Bernhard
Join Date: Sep 2009
Location: Delft
Posts: 790
Rep Power: 22 |
I'd like to add something to this thread, since I encoutered similar problems for my case. This problems disappeared with reducing the density ratio in my case from 1000 to 10.
Since I don't like the clipping in the air velocity I was able to get better results by applying the argument of Brackbill ( http://www.sciencedirect.com/science...2199919290240Y ) for surface tension, on the additional source term in the Navier-Stokes equations resutling for the reformulation of the pressure. Basically what I did, was replacing this (in pEqn.H and UEqn.H of interFoam) Code:
- ghf*fvc::snGrad(rho) Code:
- ghf*fvc::snGrad(rho)*2.0*fvc::interpolate(alpha1) For me it solved the issues with the high air velocities, and this implementation is at least more justified than just clipping U. |
|
December 20, 2011, 08:14 |
|
#19 |
Senior Member
Pablo
Join Date: Mar 2009
Posts: 102
Rep Power: 17 |
Thanks to share Bernhard, i will try to test ASAP.
Pablo |
|
February 15, 2012, 12:25 |
|
#20 | ||
New Member
Join Date: May 2011
Posts: 15
Rep Power: 15 |
Hi, the solution
Quote:
Quote:
thanks in advance ! Joris |
|||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Wind turbine simulation | Saturn | CFX | 60 | July 17, 2024 06:45 |
InterFoam Artificially High Velocities | andersson.j | OpenFOAM Running, Solving & CFD | 0 | February 8, 2011 11:43 |
RPM in Wind Turbine | Pankaj | CFX | 9 | November 23, 2009 05:05 |
Multicomponent fluid | Andrea | CFX | 2 | October 11, 2004 06:12 |
Replace periodic by inlet-outlet pair | lego | CFX | 3 | November 5, 2002 21:09 |