diff --git a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C index 1fa157adf4beba91a23f23484de439c8aae9eaf5..e5dcad0c8d5f86f83673e08b4b5cf9a30ccd006b 100644 --- a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C +++ b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C @@ -962,6 +962,13 @@ void Foam::AMIInterpolation<SourcePatch, TargetPatch>::update newTgtPoints ); + scalarField newTgtMagSf(newTgtPatch.size()); + forAll(newTgtPatch, faceI) + { + newTgtMagSf[faceI] = newTgtPatch[faceI].mag(newTgtPatch.points()); + } + + // calculate AMI interpolation autoPtr<AMIMethod<SourcePatch, TargetPatch> > AMIPtr ( @@ -971,7 +978,7 @@ void Foam::AMIInterpolation<SourcePatch, TargetPatch>::update srcPatch, newTgtPatch, srcMagSf_, - tgtMagSf_, + newTgtMagSf, triMode_, reverseTarget_, requireMatch_ && (lowWeightCorrection_ < 0) @@ -993,6 +1000,11 @@ void Foam::AMIInterpolation<SourcePatch, TargetPatch>::update // tgtAddress_ : per newTgtPatch (not tgtPatch) face a list of the // srcPatch faces it overlaps + if (debug) + { + writeFaceConnectivity(srcPatch, newTgtPatch, srcAddress_); + } + // Rework newTgtPatch indices into globalIndices of tgtPatch // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1056,11 +1068,6 @@ void Foam::AMIInterpolation<SourcePatch, TargetPatch>::update List<Map<label> > cMap; srcMapPtr_.reset(new mapDistribute(globalSrcFaces, tgtAddress_, cMap)); tgtMapPtr_.reset(new mapDistribute(globalTgtFaces, srcAddress_, cMap)); - - if (debug) - { - writeFaceConnectivity(srcPatch, newTgtPatch, srcAddress_); - } } else {