OpenFOAM® v2.1.0: Arbitrary Mesh Interface (AMI)

OpenFOAM® v2.1.0: Arbitrary Mesh Interface (AMI)

19th December 2011
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.

Propeller

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

Velocity slice
Vorticity contours

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