CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   AMI simulation with VOF (http://www.cfd-online.com/Forums/openfoam-solving/117148-ami-simulation-vof.html)

 Ya_Squall2010 May 3, 2013 04:50

AMI simulation with VOF

2 Attachment(s)
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,

Attachment 21428

Attachment 21429

 Ya_Squall2010 May 3, 2013 04:56

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 May 3, 2013 05:00

1 Attachment(s)
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?

Attachment 21430

 sharonyue May 6, 2013 03:28

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.

 vasava May 6, 2013 04:46

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?

 sharonyue May 6, 2013 06:18

Quote:
 Originally Posted by vasava (Post 425500) 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 May 6, 2013 06:20

Oh sorry,I think you are asking me...I did not see the first line.my bad.

 vasava May 6, 2013 06:22

Thats ok. I now know how to make AMI. Thanks you anyways.

 Ya_Squall2010 May 6, 2013 23:20

Quote:
 Originally Posted by sharonyue (Post 425479) 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 May 6, 2013 23:22

Quote:
 Originally Posted by vasava (Post 425500) 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!

 sharonyue May 6, 2013 23:50

Quote:
 Originally Posted by Ya_Squall2010 (Post 425722) 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.

 KeniWu May 7, 2013 00:02

Thanks, sharonyue

Have you seen any gap or discontinuity across the AMI interface in your simulation now?

 sharonyue May 7, 2013 00:15

4 Attachment(s)
Quote:
 Originally Posted by KeniWu (Post 425726) 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.

 Ya_Squall2010 May 7, 2013 00:43

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?

 KeniWu May 7, 2013 01:18

5 Attachment(s)
Quote:
 Originally Posted by sharonyue (Post 425727) 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~~

Attachment 21533

Attachment 21534

Attachment 21535

Attachment 21536

Attachment 21537

 sharonyue May 7, 2013 03:11

1 Attachment(s)
Quote:
 Originally Posted by Ya_Squall2010 (Post 425731) 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..

 Ya_Squall2010 May 7, 2013 10:50

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?

 sharonyue May 7, 2013 19:24

4 Attachment(s)
Quote:
 Originally Posted by Ya_Squall2010 (Post 425877) 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.

 Ya_Squall2010 May 8, 2013 00:27

2 Attachment(s)
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

 sharonyue May 8, 2013 04:04

Quote:
 Originally Posted by Ya_Squall2010 (Post 425990) 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.

All times are GMT -4. The time now is 11:51.