This repository has been archived on 2023-11-20. You can view files and clone it, but cannot push or open issues or pull requests.
foam-extend4.1-coherent-io/applications/utilities/parallelProcessing/reconstructPar/checkFaceAddressingComp.H

48 lines
1.6 KiB
C++

{
// Foam version 2.1 changes the addressing of faces in faceProcAddressing
// The following code checks and modifies the addressing for cases where
// the decomposition has been done with the foam2.0 and earlier tools, but
// the reconstruction is attempted with version 2.1 or later
label minFaceIndex = labelMax;
PtrList<labelIOList>& faceProcAddressing = procMeshes.faceProcAddressing();
forAll (faceProcAddressing, procI)
{
const labelList& curFaceAddr = faceProcAddressing[procI];
forAll (curFaceAddr, faceI)
{
if (mag(curFaceAddr[faceI]) < minFaceIndex)
{
minFaceIndex = mag(curFaceAddr[faceI]);
}
}
}
if (minFaceIndex < 1)
{
WarningIn(args.executable())
<< "parallel decomposition addressing." << endl
<< "It looks like you are trying to reconstruct the case "
<< "decomposed with an earlier version of FOAM, which could\n"
<< "potentially cause compatibility problems. The code will "
<< "attempt to update the addressing automatically; in case of\n"
<< "failure, please repeat the decomposition of the case using "
<< "the current version fo decomposePar"
<< endl;
forAll (faceProcAddressing, procI)
{
labelList& curFaceAddr = faceProcAddressing[procI];
forAll (curFaceAddr, faceI)
{
curFaceAddr[faceI] += sign(curFaceAddr[faceI]);
}
faceProcAddressing[procI].write();
}
}
}