The overset framework is a generic implementation of overset (also referred to as Chimera) meshes, for both static and dynamic cases. Cell-to-cell mappings between multiple, disconnected mesh regions are employed to generate a composite domain. This permits complex mesh motions and interactions without the penalties associated with deforming meshes, for single- and multiphase flows.

How does it work?

Consider the following 2-D case from the tutorials:

The mesh comprises three regions; the background mesh: and two rotors: combined to give:

Various concepts are used:

  • Donor cells : cells that provide values
  • Acceptor cells : these are the cells whose value gets set from interpolation
  • Hole cells : unreachable/inactive cells
  • Mesh zone : indicator field to denote potentially overlapping mesh regions
  • Overset patches : patch type next to cells that are to be interpolated

The mapping determines which parts of the mesh are:

  • solved, calculated;
  • interpolated from solution cells, interpolated; and
  • not used, holes.

For the twoSimpleRotors case, the background mesh yields: where the colours correspond to:

  • blue: calculated
  • white: interpolated
  • red: blocked (holes)


The case must have at least one patch of type overset; ideally this is the first patch. As a constraint type, it will automatically assume a boundary condition type overset when including the default set-up file in the boundaryField section of the field files:

#includeEtc "caseDicts/setConstraintTypes"

Any cells on the outside of the mesh that require interpolation should be on this patch. Set the mesh type to dynamicOversetFvMesh in the dynamicMeshDict file (located in the constant directory)

dynamicFvMesh       dynamicOversetFvMesh;

solver              displacementLaplacian;

    diffusivity     uniform 1;

Generate a 0/zoneID volScalarField indicating the mesh zone

not to be confused with cellZones

This field can usually be generated using standard OpenFOAM tools, e.g. topoSet, setFields. It should start at 0 and be consecutively numbered. There is no limit to the number of zones.

In the fvSchemes dictionary select the relevant overset interpolation method and which additional variables should be included. By default, all solved-for variables and some solver-specific fields use overset interpolation.

    method          inverseDistance;

If necessary adapt the wall distance calculation to a continuous method, e.g. Poisson, advectionDiffusion. The default meshWave method does not walk through the overset interpolation.

Update the solver to an asymmetric variant in the fvSolution dictionary (the matrix resulting from interpolation is asymmetric). All asymmetric solvers except from GAMG are supported. In practice a good choice is the [smooth](guide-solvers-smooth-smooth) solver with symGaussSeidel smoother for transport equations (U, k, etc.) and PBiCGStab with DILU preconditioner for elliptic equations (p, yPsi).

Further information

Source code:

Would you like to suggest an improvement to this page? Create an issue

Copyright © 2019 OpenCFD Ltd.

Licensed under the Creative Commons License BY-NC-ND Creative Commons License