Run VOF advection on sub-mesh

Issue #6 new
Tormod Landet created an issue

Currently the VOF advection starts with projecting the convecting velocity w from DG2 to DGT0, a normal flux velocity that is constant on each facet. This is a large waste of information, especially since the VOF advection is very fast compared to solving the Navier-Stokes equations.

An "easy" fix is to define a submesh in each Navier-Stokes cell. Inside each cell the velocity w is pointwise divergence free, so any division of such a cell should in principle lead to the DGT0 fluxes on each sub-cell summing to zero. This will increase the resolution of the free surface capturing while not slowing down the Navier-Stokes solver. It would be better over all if the VOF advection took say 10% of the running time instead of less than 1% as it is currently.

Points to figure out:

  1. A good way to divide each cell + how many sub-cells to create.
  2. How to efficiently project DG2 w on the Navier-Stokes cells onto DGT0 on the sub-cell facets. This should be a local operation.
  3. The ramifications of having the density and viscosity defined on a different (but nested) mesh when solving the Navier-Stokes equations.
    • Perhaps this is unproblematic and does not slow down the assembly much at all, the density and viscosity can be kept on the sub-mesh?
    • Maybe projecting back to DG2 on each cell may be beneficial, but then Gibbs is an issue ....
    • It could be that some smart interpolation is enough as long as the sub-mesh is the ground truth when it comes to amount of mass in domain etc

PS: I will not implement this during my PhD, there is just not enough time left

Comments (0)

  1. Log in to comment