v2106: New and improved numerics

Improved AMI performance

TOP

The new faceAreaWeightAMI2D AMI method has been added as an alternative to the faceAreaWeightAMI method. The main differences are:

  • triangle intersection areas are performed using a new triangle class that uses 2D point co-ordinates;
  • candidate faces between the source and target patches are identified using an axis-aligned bounding box (AABB) -based approach.

Tests have indicated that the new method generates similar interpolation weights and addressing to faceAreaWeightAMI whilst reducing typical overall run-times by more than 5%.

Usage

The new option is set using the AMIMethod entry when specifying the AMI in the constant/polyMesh/boundary file, e.g.

AMI
{
    type            cyclicACMI;
    AMIMethod       faceAreaWeightAMI2D; // new method
    Cbb             0.1; // optional coefficient
    nFaces          1000;
    startFace       100000;
    matchTolerance  0.0001;
    transform       noOrdering;
    neighbourPatch  AMI1;
    nonOverlapPatch AMI1_non_overlap;
}

The optional Cbb coefficient controls the size of the bounding box used when looking for candidate face pairs; the default value of 0.1 worked well for a large range of test cases. For badly matched AMI patch pairs, e.g. for rotational cases where differences in spatial discretisation lead to 'large' gaps between the patches, this may need to be increased.

Source code