CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Running, Solving & CFD

AMI simulation with VOF

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   May 3, 2013, 04:50
Default AMI simulation with VOF
  #1
Member
 
YS
Join Date: Jan 2010
Posts: 67
Rep Power: 7
Ya_Squall2010 is on a distinguished road
Hello, everyone

I am currently trying to simulation a rotating object interacting with free surface. The object is contained by a cylinder shaped domain, and the boundary of which has been set as the AMI. It runs fine but extremely slow due to the ridiculously small time step size (10^-5 s). When checking the result, I found unphysical gap exists right at the same location of the AMI. I wonder if this is typical for AMI working with VOF scheme or if there's something I have missed during the setup. Many thanks for your comments.

Best,

2013-5-3 16-38-30.png

2013-5-3 16-47-22.png
Ya_Squall2010 is offline   Reply With Quote

Old   May 3, 2013, 04:56
Default
  #2
Member
 
YS
Join Date: Jan 2010
Posts: 67
Rep Power: 7
Ya_Squall2010 is on a distinguished road
And here is the latest output:

Interface Courant Number mean: 0.000113674199245 max: 0.0456657062131
Courant Number mean: 0.00117181186645 max: 0.349797949217
deltaT = 2.85966340452e-05
Time = 1.768115

sixDoFRigidBodyMotion constraints converged in 3 iterations
Constraint force: (0 0 0)
Constraint moment: (-46.2558655352 0 100.133884185)
Centre of mass: (0.788627295142 -4.92549529332 0.380243808408)
Linear velocity: (-0.363459602054 -5.97517588423 -0.0649978436717)
Angular velocity: (-1.1261827207e-06 -4.55253915863 1.75204401811e-06)
Orientation: (0.304692532186 3.52476591315e-07 0.952450765567 2.80451448939e-08 1 -3.79045038945e-07 -0.952450765567 1.42203812454e-07 0.304692532186)
solidBodyMotionFunctions::freeRotatingMotion::tran sformation(): Time = 1.76811475304 Radial Velocity: (-0 -4.55253915863 -0)
AMI: Creating addressing and weights between 25381 source faces and 21172 target faces
AMI: Patch source weights min/max/average = 0.998652509993, 1.37541800289, 1.00010173901
AMI: Patch target weights min/max/average = 0.921261238568, 1.01762766706, 1.00012727807
Execution time for mesh.update() = 0.589999999997 s
time step continuity errors : sum local = 9.44780824397e-12, global = -4.70839914446e-13, cumulative = 2.36152990992e-05
GAMGPCG: Solving for pcorr, Initial residual = 1, Final residual = 3.4921224907e-06, No Iterations 7
time step continuity errors : sum local = 5.48884332833e-16, global = 1.11291297836e-17, cumulative = 2.36152990992e-05
MULES: Solving for alpha1
Phase-1 volume fraction = 0.549661255967 Min(alpha1) = -3.4482697542e-20 Max(alpha1) = 1.00000000001
MULES: Solving for alpha1
Phase-1 volume fraction = 0.549661255869 Min(alpha1) = -1.0423883416e-20 Max(alpha1) = 1.00000000001
MULES: Solving for alpha1
Phase-1 volume fraction = 0.549661255776 Min(alpha1) = -3.93755298503e-20 Max(alpha1) = 1.00000000001
GAMG: Solving for p_rgh, Initial residual = 2.85088772799e-05, Final residual = 1.72802384711e-07, No Iterations 2
time step continuity errors : sum local = 2.79473796529e-10, global = 6.18060432167e-13, cumulative = 2.36152997173e-05
GAMGPCG: Solving for p_rgh, Initial residual = 1.44709724156e-06, Final residual = 6.70595497874e-09, No Iterations 2
time step continuity errors : sum local = 1.08455646083e-11, global = -9.99413431153e-13, cumulative = 2.36152987178e-05
smoothSolver: Solving for epsilon, Initial residual = 0.000120934411215, Final residual = 6.92567932192e-07, No Iterations 1
smoothSolver: Solving for k, Initial residual = 9.54220112974e-05, Final residual = 5.67484650421e-07, No Iterations 1
ExecutionTime = 254492.64 s ClockTime = 258622 s
Ya_Squall2010 is offline   Reply With Quote

Old   May 3, 2013, 05:00
Default
  #3
Member
 
YS
Join Date: Jan 2010
Posts: 67
Rep Power: 7
Ya_Squall2010 is on a distinguished road
Another issue is that it is obvious that the calculated alpha1 is between 0 ~ 1, but when I load the result in ParaView, the interpolated alpha1 value range becomes 0 ~ 1.14. This is not seen in any of my previous runs without AMI. What is happening?

2013-5-3 17-02-42.png
Ya_Squall2010 is offline   Reply With Quote

Old   May 6, 2013, 03:28
Default
  #4
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 676
Rep Power: 8
sharonyue is on a distinguished road
Looks like you are missing the facezone of AMI?

I happened to run into this problems about several months ago.What incur my problem is deleting the AMI faces.I dont know how to deal with AMI that time.so...maybe this would not help,but wish it could give you some light in the dark.
sharonyue is offline   Reply With Quote

Old   May 6, 2013, 04:46
Default
  #5
Senior Member
 
Paritosh Vasava
Join Date: Oct 2012
Location: Lappeenranta, Finland
Posts: 545
Rep Power: 12
vasava will become famous soon enough
Hello Ya_Squall2010

Can you explain how you created AMI? I am trying to simulate mixing by an impeller. I have made two meshes and tried to merge them but I still do not know how to make the AMI?
vasava is offline   Reply With Quote

Old   May 6, 2013, 06:18
Default
  #6
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 676
Rep Power: 8
sharonyue is on a distinguished road
Quote:
Originally Posted by vasava View Post
Hello Ya_Squall2010

Can you explain how you created AMI? I am trying to simulate mixing by an impeller. I have made two meshes and tried to merge them but I still do not know how to make the AMI?
Its simple if you are using ICEM.
1. make the rotating mesh.and call some one of your patch AMI1.
2. make the stationary mesh.and call the coresponding patch AMI2.
3. Open a new project in ICEM, open the rotating mesh,then open the stationary
mesh and select merge.
4. Then you will see there are AMI1 and AMI2 in the PART.then export as .msh.
5.fluent3DMeshToFoam.you will have the AMI1 and AMI2 patch in your boundary.
6.Change it to

Code:
AMI2
    {
        type            cyclicAMI;
        nFaces          4966;
        startFace       595314;Do not modify this.
       neighbourPatch AMI1;
       transform noOrdering;
    }
7.Then it should worked.

So generally if you are using ICEM. you dont need to use toposet and createbaffles and something else.Its easy.

Regards.
sharonyue is offline   Reply With Quote

Old   May 6, 2013, 06:20
Default
  #7
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 676
Rep Power: 8
sharonyue is on a distinguished road
Oh sorry,I think you are asking me...I did not see the first line.my bad.
sharonyue is offline   Reply With Quote

Old   May 6, 2013, 06:22
Default
  #8
Senior Member
 
Paritosh Vasava
Join Date: Oct 2012
Location: Lappeenranta, Finland
Posts: 545
Rep Power: 12
vasava will become famous soon enough
Thats ok. I now know how to make AMI. Thanks you anyways.
vasava is offline   Reply With Quote

Old   May 6, 2013, 23:20
Default
  #9
Member
 
YS
Join Date: Jan 2010
Posts: 67
Rep Power: 7
Ya_Squall2010 is on a distinguished road
Quote:
Originally Posted by sharonyue View Post
Looks like you are missing the facezone of AMI?

I happened to run into this problems about several months ago.What incur my problem is deleting the AMI faces.I dont know how to deal with AMI that time.so...maybe this would not help,but wish it could give you some light in the dark.
Hi sharonyue,

many thanks for your comments! I am using OF 2.1.1 and followed these steps to prepare my AMI case, and there's only a cellzone file under the constant/polymesh/ folder. Please point out where should (and how could) I create the AMI facezone? Thanks again!

1. Create the mesh in other mesh tools (starccm, icem, or gambit), using 1 face as interface
2. Save every domain separately by deleting the other parts for instance. save with the interfaces, by rename it to AMI1 for example. The other domain will have AMI2 obviously
3. Export the mesh using corresponding convergor (ccm26ToFoam for starccm, fluent3DMeshToFoam for fluent V6 format files by icem and gambit)
4. Create separate case directories, put the .ccm/.msh files there
5. Run "ccm26ToFoam/fluent3DMeshToFoam" for every directories
6. Run "mergeMeshes masterDir Slavedir" command as many times as much domains you have
7. Modifiy the files in constant(polymesh/boundary), system and 0 directory as usual to reflect the new addition of AMI1 and AMI2 (by using the propeller tutorial for instance)
8. Type "setSet" from your case directory.
9. "cellSet c0 new cylinderToCell (0 0 0) (0 0 1) 0.5" // first vector refers to the centre of the circle at one end, second refers to that of the other end. The scalar is the radius
10. "cellZoneSet c0Zone new setToCellZone c0", your rotating zone will be c0Zone. By the way, c0 ans c0Zone are just made-up names, you can choose your own.

and now it should work. Just proceed to decomposePar and submit the job or simplely run the ***DyMFoam.
Ya_Squall2010 is offline   Reply With Quote

Old   May 6, 2013, 23:22
Default
  #10
Member
 
YS
Join Date: Jan 2010
Posts: 67
Rep Power: 7
Ya_Squall2010 is on a distinguished road
Quote:
Originally Posted by vasava View Post
Hello Ya_Squall2010

Can you explain how you created AMI? I am trying to simulate mixing by an impeller. I have made two meshes and tried to merge them but I still do not know how to make the AMI?
Hi vasava,

Please refer to my previous post. It's pretty much similar to what sharonyue have posted by in more detail.

Best luck!
Ya_Squall2010 is offline   Reply With Quote

Old   May 6, 2013, 23:50
Default
  #11
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 676
Rep Power: 8
sharonyue is on a distinguished road
Quote:
Originally Posted by Ya_Squall2010 View Post
Hi sharonyue,

many thanks for your comments! I am using OF 2.1.1 and followed these steps to prepare my AMI case, and there's only a cellzone file under the constant/polymesh/ folder. Please point out where should (and how could) I create the AMI facezone? Thanks again!

1. Create the mesh in other mesh tools (starccm, icem, or gambit), using 1 face as interface
2. Save every domain separately by deleting the other parts for instance. save with the interfaces, by rename it to AMI1 for example. The other domain will have AMI2 obviously
3. Export the mesh using corresponding convergor (ccm26ToFoam for starccm, fluent3DMeshToFoam for fluent V6 format files by icem and gambit)
4. Create separate case directories, put the .ccm/.msh files there
5. Run "ccm26ToFoam/fluent3DMeshToFoam" for every directories
6. Run "mergeMeshes masterDir Slavedir" command as many times as much domains you have
7. Modifiy the files in constant(polymesh/boundary), system and 0 directory as usual to reflect the new addition of AMI1 and AMI2 (by using the propeller tutorial for instance)
8. Type "setSet" from your case directory.
9. "cellSet c0 new cylinderToCell (0 0 0) (0 0 1) 0.5" // first vector refers to the centre of the circle at one end, second refers to that of the other end. The scalar is the radius
10. "cellZoneSet c0Zone new setToCellZone c0", your rotating zone will be c0Zone. By the way, c0 ans c0Zone are just made-up names, you can choose your own.

and now it should work. Just proceed to decomposePar and submit the job or simplely run the ***DyMFoam.
Um, if you use the utility in FOAM, its comlicated.Generally I use this ulitities to createAMIpatch just when I make mesh by SHM. I never use the third party software to make mesh and use the toposet or setset together.But ofcourse it should works.

Regarding to your case.just as I depicted above,I make the different domain seperately,every mesh has a patch called AMI or something.But I dont convert it to interface.If you do this, after you fluentmeshtofoam you cannot see the AMI patch. so u have to make this patch by the utility such as createbaffles or something else.
So my suggestion is Dont convert it to interface.then you will have two AMI patch in your boundary . but it type are walls.just modify it manully.at first I also doubt it weather its right. but it works.Just try it.

Wish this would give you some hints.

BTW,are you sure its a real gap?Did you check this out in another edition paraview? or dont show the internalmesh just show the AMI patch?

Regards.
sharonyue is offline   Reply With Quote

Old   May 7, 2013, 00:02
Default
  #12
New Member
 
keniWu
Join Date: Nov 2012
Posts: 2
Rep Power: 0
KeniWu is on a distinguished road
Thanks, sharonyue

Have you seen any gap or discontinuity across the AMI interface in your simulation now?
KeniWu is offline   Reply With Quote

Old   May 7, 2013, 00:15
Default
  #13
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 676
Rep Power: 8
sharonyue is on a distinguished road
Quote:
Originally Posted by KeniWu View Post
Thanks, sharonyue

Have you seen any gap or discontinuity across the AMI interface in your simulation now?
Nope, in my cases, AMI's result is the same with MRF.Looks at the 2D simple case. its alpha field.
Another case is a 3D case.
Attached Images
File Type: jpg 1.jpg (8.8 KB, 24 views)
File Type: jpg 2.jpg (9.4 KB, 25 views)
File Type: jpg 3.jpg (8.5 KB, 24 views)
File Type: jpg 4.jpg (21.0 KB, 27 views)
sharonyue is offline   Reply With Quote

Old   May 7, 2013, 00:43
Default
  #14
Member
 
YS
Join Date: Jan 2010
Posts: 67
Rep Power: 7
Ya_Squall2010 is on a distinguished road
Then is there anyway to check whether I have made the AMI correctly? In the simulation, what I can see is that the pressure, velocity and alpha fields are "propagating" properly across the AMI, despite that a small but very obvious gap or discontinuity is right at the location of AMI.

Here's my U file setup (the others are similar):

FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 1 -1 0 0 0 0];

internalField uniform (0 0 0);

boundaryField
{
stationaryWalls
{
type fixedValue;
value uniform (0 0 0);
}
atmosphere
{
type pressureInletOutletVelocity;
value uniform (0 0 0);
}
floatingObject
{
type movingWallVelocity;
value uniform (0 0 0);
}

AMI1
{
type cyclicAMI;
value uniform (0 0 0);
}

AMI2
{
type cyclicAMI;
value uniform (0 0 0);
}
}

And here's my constant/polymesh/boundary:

FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "0.015/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

5
(
floatingObject
{
type wall;
nFaces 10000;
startFace 878484;
}
AMI2
{
type cyclicAMI;
nFaces 12936;
startFace 888484;
matchTolerance 0.0001;
neighbourPatch AMI1;
transform noOrdering;
}
AMI1
{
type cyclicAMI;
nFaces 14144;
startFace 901420;
matchTolerance 0.0001;
neighbourPatch AMI2;
transform noOrdering;
}
atmosphere
{
type patch;
nFaces 560;
startFace 915564;
}
stationaryWalls
{
type wall;
nFaces 7520;
startFace 916124;
}
)


Any clue?
Ya_Squall2010 is offline   Reply With Quote

Old   May 7, 2013, 01:18
Default
  #15
New Member
 
keniWu
Join Date: Nov 2012
Posts: 2
Rep Power: 0
KeniWu is on a distinguished road
Quote:
Originally Posted by sharonyue View Post
nope, in my cases, ami's result is the same with mrf.looks at the 2d simple case. Its alpha field.
Another case is a 3d case.
Thanks, sharonyue. But in my case, I found some unreal value in AMI.
Please look at the 2D airfoil case (I use pimpleDyMFoam). When the airfoil is rotating (6DOF), some flow passing through AMI will be taken with the rotating interface. So we can found discontinuous velocity filed across the AMI.

Is this correct and physical?

Thanks~~

animation.0001.jpg

animation.0003.jpg

animation.0004.jpg

animation.0005.jpg

animation.0007.jpg
KeniWu is offline   Reply With Quote

Old   May 7, 2013, 03:11
Default
  #16
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 676
Rep Power: 8
sharonyue is on a distinguished road
Quote:
Originally Posted by Ya_Squall2010 View Post
Then is there anyway to check whether I have made the AMI correctly?
Looks like your boundary condition is rite,but I think if there was a gap, its your mesh's problem.
Check it out like this:this image I have zoomed in several times.and there is no gap between the two AMI patch. and you can see its tight just like one patch!


keniWu,

I cannot catch what do you mean...I am sorry for that.But your veocity field looks like unnormal..
Attached Images
File Type: jpg 1.jpg (73.8 KB, 18 views)
sharonyue is offline   Reply With Quote

Old   May 7, 2013, 10:50
Default
  #17
Member
 
YS
Join Date: Jan 2010
Posts: 67
Rep Power: 7
Ya_Squall2010 is on a distinguished road
I will have a look of my AMI patches tmr, even though I recall I have done this kind of check before. By the way, by looking at Keni's images, very obvious unphysical trace of AMI also presents. I wonder in your tests, whether this kind of artificial circular shaped discontinuities can be spot or not? Especially when there's a free surface cutting right through the AMI. Also, what is your typical time step size for AMI run?
Ya_Squall2010 is offline   Reply With Quote

Old   May 7, 2013, 19:24
Default
  #18
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 676
Rep Power: 8
sharonyue is on a distinguished road
Quote:
Originally Posted by Ya_Squall2010 View Post
I will have a look of my AMI patches tmr, even though I recall I have done this kind of check before. By the way, by looking at Keni's images, very obvious unphysical trace of AMI also presents. I wonder in your tests, whether this kind of artificial circular shaped discontinuities can be spot or not? Especially when there's a free surface cutting right through the AMI. Also, what is your typical time step size for AMI run?
Hi

I think I figure it out.I am sorry for that I might have mislead you.I think the gap is normal.I made some tests,and I found some cases there is a gap!Check your AMI face so see if its a absolute smooth,if its absolute smooth(just like the image),there would be no gap when its rotating.If its not very smooth.It will have a gap after it rotate. But it will be no gap if it rotate after one cycle.

BTW,check it out in your case for me and see if Im right.Thanks

The first image there is no gap when its rotating.
The others there exists a gap.But I think it does not affect the result.
Attached Images
File Type: jpg absolute smooth.jpg (50.0 KB, 25 views)
File Type: jpg 2.jpg (67.9 KB, 19 views)
File Type: jpg 3.jpg (17.7 KB, 18 views)
File Type: jpg 4.jpg (18.7 KB, 13 views)
sharonyue is offline   Reply With Quote

Old   May 8, 2013, 00:27
Default
  #19
Member
 
YS
Join Date: Jan 2010
Posts: 67
Rep Power: 7
Ya_Squall2010 is on a distinguished road
Please see attached image. There is indeed a gap in the patches but only visible after zoomed in for many many many times. The gap in the results, however, is much much more bigger than the physical one. Also, from the other picture where the view angle is from below the free surface, we can easily see a thin layer of water is "leaking" in between the AMI gap!

gap.jpg
leak.jpg
Ya_Squall2010 is offline   Reply With Quote

Old   May 8, 2013, 04:04
Default
  #20
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 676
Rep Power: 8
sharonyue is on a distinguished road
Quote:
Originally Posted by Ya_Squall2010 View Post
Please see attached image. There is indeed a gap in the patches but only visible after zoomed in for many many many times. The gap in the results, however, is much much more bigger than the physical one. Also, from the other picture where the view angle is from below the free surface, we can easily see a thin layer of water is "leaking" in between the AMI gap!

Attachment 21570
Attachment 21571
I will try my case which is similary with you and see the result.then update this post.
sharonyue is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
mixerVesselAMI2D's mass is not balancing sharonyue OpenFOAM Running, Solving & CFD 6 June 10, 2013 09:34
VOF models on venturi scrubber simulation toda FLUENT 2 January 15, 2013 05:31
VOF simulation problem parisa- Main CFD Forum 0 January 10, 2012 09:33
Simulation of filling a pool by Vof Asghari_M FLUENT 8 February 16, 2010 03:30
vof simulation in batch mode vof_grid FLUENT 0 July 6, 2007 08:47


All times are GMT -4. The time now is 02:08.