Bug fix: bridging
This commit is contained in:
parent
b4b316b5d6
commit
fcfb486807
2 changed files with 18 additions and 9 deletions
|
@ -115,7 +115,7 @@ void GGIInterpolation<MasterPatch, SlavePatch>::maskedBridge
|
||||||
const Field<Type>& bridgeField,
|
const Field<Type>& bridgeField,
|
||||||
Field<Type>& ff,
|
Field<Type>& ff,
|
||||||
const labelList& mask,
|
const labelList& mask,
|
||||||
const labelList& addr
|
const labelList& uncoveredFaces
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// Note: tricky algorithm
|
// Note: tricky algorithm
|
||||||
|
@ -124,23 +124,32 @@ void GGIInterpolation<MasterPatch, SlavePatch>::maskedBridge
|
||||||
// This implies an n-squared search, but we can use the fact that
|
// This implies an n-squared search, but we can use the fact that
|
||||||
// both lists are ordered.
|
// both lists are ordered.
|
||||||
|
|
||||||
label curAddrI = 0;
|
label maskAddrI = 0;
|
||||||
|
|
||||||
forAll (mask, maskI)
|
forAll (uncoveredFaces, uncoI)
|
||||||
{
|
{
|
||||||
// Pick the masked face
|
// Pick the uncovered face
|
||||||
const label faceI = mask[maskI];
|
const label faceI = uncoveredFaces[uncoI];
|
||||||
|
|
||||||
for (; curAddrI < addr.size(); curAddrI++)
|
// Search through the mask
|
||||||
|
for (; maskAddrI < mask.size(); maskAddrI++)
|
||||||
{
|
{
|
||||||
if (faceI == addr[curAddrI])
|
if (faceI == mask[maskAddrI])
|
||||||
{
|
{
|
||||||
// Found masked bridged face
|
// Found masked bridged face
|
||||||
// Put the result into condensed list: masked faces only
|
// Put the result into condensed list: masked faces only
|
||||||
ff[maskI] = bridgeField[faceI];
|
ff[maskAddrI] = bridgeField[maskAddrI];
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
else if (mask[maskAddrI] > faceI)
|
||||||
|
{
|
||||||
|
// Gone beyond my index: my face is not present in the mask
|
||||||
|
// Go one back and check for next uncovered face
|
||||||
|
|
||||||
|
maskAddrI--;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -393,7 +393,7 @@ class GGIInterpolation
|
||||||
const Field<Type>& bridgeField,
|
const Field<Type>& bridgeField,
|
||||||
Field<Type>& ff,
|
Field<Type>& ff,
|
||||||
const labelList& mask,
|
const labelList& mask,
|
||||||
const labelList& addr
|
const labelList& uncoveredFaces
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Is a transform required?
|
//- Is a transform required?
|
||||||
|
|
Reference in a new issue