db7fac3f24
git-svn-id: https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Core/OpenFOAM-1.5-dev@1731 e4e07f05-0c2f-0410-a05a-b8ba57e0c909
48 lines
1.6 KiB
C
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();
|
|
}
|
|
}
|
|
}
|