Close

19th December 2011

OpenFOAM 2.1.0: Arbitrary Mesh Interface

Arbitrary Mesh Interface (AMI) for non-conformal patches has been implemented based on the algorithm described in P. E. Farrell and J. R. Maddison, Comput. Methods Appl. Mech Engrg 200:89 (2011). AMI is a technique that allows simulation across disconnected, but adjacent, mesh domains. The domains can be stationary or move relative to one another.

The implementation is fully parallelised, with the AMI being either distributed across several subdomains, or confined to a single subdomain by the new constrained decomposition. AMI is integrated into boundary patch classes in OpenFOAM and is currently available for:

  • un-matched/non-conformal cyclic patch pairs;
  • sliding interfaces, e.g. for rotating machinery;
  • mapped patches, e.g. for coupling simulations between separate mesh regions, such as surface film and bulk flow.

By default, AMI operates by projecting one of the patches’ geometry onto the other. However, it is also possible to project both patches to an intermediate surface, such as triangulated surface geometry or a continuous surface (defined by some function).

The sliding interface capability has been tested on engineering geometries, including a propeller. The following image shows the mesh regions and their parallel decomposition, where the different colours indicate the processor indices.

AMI_procID

Flow was simulated using the pimpleDyMFoam solver. The following images show, respectively, the velocity magnitude and vorticity contours.

slice_UInterp

contour_magVorticity

Source code

  • AMIInterpolation classes
    $FOAM_SRC/meshTools/AMIInterpolation
  • cyclicAMI classes
    $FOAM_SRC/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI
    $FOAM_SRC/finiteVolume/fields/fvsPatchFields/constraint/cyclicAMI
    $FOAM_SRC/finiteVolume/fvMesh/fvPatches/constraint/cyclicAMI

Examples

  • 2D spinning rotor and stationary stator
    $FOAM_TUTORIALS/incompressible/pimpleDyMFoam/mixerVessel2DAMI
  • 3D propeller, meshed with snappyHexMesh with feature line conformance
    $FOAM_TUTORIALS/incompressible/pimpleDyMFoam/propeller
  • quarter-pipe approximation for swirling flow with unmatched cyclic patches
    $FOAM_TUTORIALS/incompressible/simpleFoam/pipeCyclic