CFD Online Logo CFD Online URL
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

Breakup of VOF droplets due to adaptive mesh refinement

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

LinkBack Thread Tools Search this Thread Display Modes
Old   November 3, 2022, 10:23
Default Breakup of VOF droplets due to adaptive mesh refinement
New Member
Dennis Thuy
Join Date: Apr 2022
Posts: 10
Rep Power: 4
dplthuy is on a distinguished road

I want to use adaptive mesh refinement for the simulation of droplets in OpenFOAM v2106. I am using the interIsoFoam solver, combined with dynamicRefineFvMesh, which should refine based on the volume fraction field of the VOF simulations.
When performing a simple case of advection of droplets, I found that the adaptive mesh refinement causes breakup of the droplets near the interface. This is problematic since I am ultimately interested in the droplet size distribution of a spray.

So far, I have found three parameters that seem to influence the shattering of the droplets: the refineInterval, maxRefinement in the dynamicMeshDict, and the reconstructionScheme for alpha in fvSolution. In short, they have the following effect:

- refineInterval: Droplets are more likely to breakup when the number of timesteps between remeshing is larger. I have varied this parameter between 1 and 5.

- maxRefinement: Droplets are more likely to breakup when the maximum refinement is larger. I have varied this parameter between 1 and 3.

- reconstructionScheme: Droplets are more likely to breakup when the isoAlpha scheme is used, as compared to plicRDF. Higher values of the previous two parameters are allowed when using plicRDF. A comparison of the performance of these schemes can be seen in the figures, with maxRefinement = 2 and refineInterval = 3.

The comparison of the reconstructionSchemes also shows worrysome behavior of the surface after the first mesh refinement. For both schemes, the droplets do not have a smooth surface anymore after refinement. This is more pronounced for isoAlpha than for plicRDF. It is my suspicion that this causes the issue of the breakup of the droplets. In the final image, the differences can clearly be seen.

I will be glad to take any suggestions as to how I can avoid this behavior. In my opinion, the surface of the droplets should stay smooth when applying the adaptive mesh refinement, but I don't know how to achieve this. I have attached my complete case for those interested.

Thank you for your insights!
Attached Images
File Type: jpg droplets_final_state.jpg (44.1 KB, 54 views)
File Type: jpg droplets_first_mesh_refinement.jpg (45.9 KB, 36 views)
File Type: jpg droplets_initialization.jpg (42.9 KB, 43 views)
Attached Files
File Type: gz dropletsAMR.tar.gz (3.3 KB, 5 views)
dplthuy is offline   Reply With Quote

Old   November 16, 2022, 08:02
New Member
Jun Liu
Join Date: Jan 2020
Posts: 3
Rep Power: 6
Jun_93 is on a distinguished road
Hi Dennis,

Have you found the reason/solution for this problem. I recently also tried running interIsoFoam with ARM and encountered the same issue you mentioned. I applied interIsoFoam with the same AMR configuration to test a rising bubble case and a droplets' collision case. The combination runs well for the rising bubble case, but badly for the droplets' collision case. In the collision case, I observed the same unphysical scattered small droplets as you displayed in your results. Hm, I don't know how to insert images into the reply. If you want to know more about my cases, PM me plz.


Last edited by Jun_93; November 16, 2022 at 10:57.
Jun_93 is offline   Reply With Quote

Old   November 21, 2022, 09:58
New Member
Dennis Thuy
Join Date: Apr 2022
Posts: 10
Rep Power: 4
dplthuy is on a distinguished road
Hi Jun,

Thanks for your reply. Have you tried running your case with both the iso-Alpha and the plicRDF reconstruction scheme? Do you observe the same difference that I do?

After reading the publication by Scheufler & Roenby on the different surface reconstruction schemes (, I have a hypothesis as to why iso-Alpha shows the shattering and plicRDF does not.

In section 3.3 you can read that plicRDF uses the surface normal obtained in a previous time step as an initial guess in the surface reconstruction of the current time step. Iso-Alpha does not do this, and calculates the surface normals independently every time step.

When applying the first refinement to the spheres, it seems that the smoothness of the surface is not exactly preserved (see my previous post). However, since plicRDF uses the surface normals of the previous time step (where the surface was still smooth), it is able to suppress this. The iso-Alpha scheme is not able to do so, since it does not use this information.

This hypothesis leads to a question, which I am currently trying to answer:
Does the shattering also occur when the VOF interface is not initiated by a setFieldsDict entry?

In other words, if we have an inlet of alpha=1 into a domain with initially alpha=0 everywhere, will we also observe the shattering? I would expect not, since in this case the cells at the interface are already refined before the interface enters the domain. I am investigating this with a case of cylindrical jet breakup (see attached image). So far, I have not observed the shattering for iso-Alpha, nor for plicRDF. However, results are still preliminary.

Please let me know if my train of thought makes any sense to you!
Attached Images
File Type: jpg cylindricalJet.jpg (23.8 KB, 23 views)
dplthuy is offline   Reply With Quote


amr, isoadvector, surface, vof simulation

Thread Tools Search this Thread
Search this Thread:

Advanced Search
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 Off
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
[snappyHexMesh] snappyHexMesh can't create refimenet region clktp OpenFOAM Meshing & Mesh Conversion 3 February 27, 2022 09:26
problem with parallel calculations OF8 mpirun otaolafr OpenFOAM Programming & Development 0 January 5, 2021 07:33
[snappyHexMesh] snappyHexMesh does not create any mesh except one for the reference cell Arman_N OpenFOAM Meshing & Mesh Conversion 1 May 20, 2019 17:16
[snappyHexMesh] Error snappyhexmesh - Multiple outside loops avinashjagdale OpenFOAM Meshing & Mesh Conversion 53 March 8, 2019 09:42
[mesh manipulation] Importing Multiple Meshes thomasnwalshiii OpenFOAM Meshing & Mesh Conversion 18 December 19, 2015 18:57

All times are GMT -4. The time now is 17:24.